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// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2127// with awserr.Error's Code and Message methods to get detailed information about
2128// the error.
2129//
2130// See the AWS API reference guide for AWS IoT's
2131// API operation CreateDomainConfiguration for usage and error information.
2132//
2133// Returned Error Types:
2134//   * LimitExceededException
2135//   A limit has been exceeded.
2136//
2137//   * CertificateValidationException
2138//   The certificate is invalid.
2139//
2140//   * ResourceAlreadyExistsException
2141//   The resource already exists.
2142//
2143//   * ServiceUnavailableException
2144//   The service is temporarily unavailable.
2145//
2146//   * InternalFailureException
2147//   An unexpected error has occurred.
2148//
2149//   * InvalidRequestException
2150//   The request is not valid.
2151//
2152//   * UnauthorizedException
2153//   You are not authorized to perform this operation.
2154//
2155//   * ThrottlingException
2156//   The rate exceeds the limit.
2157//
2158func (c *IoT) CreateDomainConfiguration(input *CreateDomainConfigurationInput) (*CreateDomainConfigurationOutput, error) {
2159	req, out := c.CreateDomainConfigurationRequest(input)
2160	return out, req.Send()
2161}
2162
2163// CreateDomainConfigurationWithContext is the same as CreateDomainConfiguration with the addition of
2164// the ability to pass a context and additional request options.
2165//
2166// See CreateDomainConfiguration for details on how to use this API operation.
2167//
2168// The context must be non-nil and will be used for request cancellation. If
2169// the context is nil a panic will occur. In the future the SDK may create
2170// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2171// for more information on using Contexts.
2172func (c *IoT) CreateDomainConfigurationWithContext(ctx aws.Context, input *CreateDomainConfigurationInput, opts ...request.Option) (*CreateDomainConfigurationOutput, error) {
2173	req, out := c.CreateDomainConfigurationRequest(input)
2174	req.SetContext(ctx)
2175	req.ApplyOptions(opts...)
2176	return out, req.Send()
2177}
2178
2179const opCreateDynamicThingGroup = "CreateDynamicThingGroup"
2180
2181// CreateDynamicThingGroupRequest generates a "aws/request.Request" representing the
2182// client's request for the CreateDynamicThingGroup operation. The "output" return
2183// value will be populated with the request's response once the request completes
2184// successfully.
2185//
2186// Use "Send" method on the returned Request to send the API call to the service.
2187// the "output" return value is not valid until after Send returns without error.
2188//
2189// See CreateDynamicThingGroup for more information on using the CreateDynamicThingGroup
2190// API call, and error handling.
2191//
2192// This method is useful when you want to inject custom logic or configuration
2193// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2194//
2195//
2196//    // Example sending a request using the CreateDynamicThingGroupRequest method.
2197//    req, resp := client.CreateDynamicThingGroupRequest(params)
2198//
2199//    err := req.Send()
2200//    if err == nil { // resp is now filled
2201//        fmt.Println(resp)
2202//    }
2203func (c *IoT) CreateDynamicThingGroupRequest(input *CreateDynamicThingGroupInput) (req *request.Request, output *CreateDynamicThingGroupOutput) {
2204	op := &request.Operation{
2205		Name:       opCreateDynamicThingGroup,
2206		HTTPMethod: "POST",
2207		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
2208	}
2209
2210	if input == nil {
2211		input = &CreateDynamicThingGroupInput{}
2212	}
2213
2214	output = &CreateDynamicThingGroupOutput{}
2215	req = c.newRequest(op, input, output)
2216	return
2217}
2218
2219// CreateDynamicThingGroup API operation for AWS IoT.
2220//
2221// Creates a dynamic thing group.
2222//
2223// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2224// with awserr.Error's Code and Message methods to get detailed information about
2225// the error.
2226//
2227// See the AWS API reference guide for AWS IoT's
2228// API operation CreateDynamicThingGroup for usage and error information.
2229//
2230// Returned Error Types:
2231//   * InvalidRequestException
2232//   The request is not valid.
2233//
2234//   * ResourceAlreadyExistsException
2235//   The resource already exists.
2236//
2237//   * ResourceNotFoundException
2238//   The specified resource does not exist.
2239//
2240//   * ThrottlingException
2241//   The rate exceeds the limit.
2242//
2243//   * InternalFailureException
2244//   An unexpected error has occurred.
2245//
2246//   * InvalidQueryException
2247//   The query is invalid.
2248//
2249//   * LimitExceededException
2250//   A limit has been exceeded.
2251//
2252func (c *IoT) CreateDynamicThingGroup(input *CreateDynamicThingGroupInput) (*CreateDynamicThingGroupOutput, error) {
2253	req, out := c.CreateDynamicThingGroupRequest(input)
2254	return out, req.Send()
2255}
2256
2257// CreateDynamicThingGroupWithContext is the same as CreateDynamicThingGroup with the addition of
2258// the ability to pass a context and additional request options.
2259//
2260// See CreateDynamicThingGroup for details on how to use this API operation.
2261//
2262// The context must be non-nil and will be used for request cancellation. If
2263// the context is nil a panic will occur. In the future the SDK may create
2264// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2265// for more information on using Contexts.
2266func (c *IoT) CreateDynamicThingGroupWithContext(ctx aws.Context, input *CreateDynamicThingGroupInput, opts ...request.Option) (*CreateDynamicThingGroupOutput, error) {
2267	req, out := c.CreateDynamicThingGroupRequest(input)
2268	req.SetContext(ctx)
2269	req.ApplyOptions(opts...)
2270	return out, req.Send()
2271}
2272
2273const opCreateJob = "CreateJob"
2274
2275// CreateJobRequest generates a "aws/request.Request" representing the
2276// client's request for the CreateJob operation. The "output" return
2277// value will be populated with the request's response once the request completes
2278// successfully.
2279//
2280// Use "Send" method on the returned Request to send the API call to the service.
2281// the "output" return value is not valid until after Send returns without error.
2282//
2283// See CreateJob for more information on using the CreateJob
2284// API call, and error handling.
2285//
2286// This method is useful when you want to inject custom logic or configuration
2287// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2288//
2289//
2290//    // Example sending a request using the CreateJobRequest method.
2291//    req, resp := client.CreateJobRequest(params)
2292//
2293//    err := req.Send()
2294//    if err == nil { // resp is now filled
2295//        fmt.Println(resp)
2296//    }
2297func (c *IoT) CreateJobRequest(input *CreateJobInput) (req *request.Request, output *CreateJobOutput) {
2298	op := &request.Operation{
2299		Name:       opCreateJob,
2300		HTTPMethod: "PUT",
2301		HTTPPath:   "/jobs/{jobId}",
2302	}
2303
2304	if input == nil {
2305		input = &CreateJobInput{}
2306	}
2307
2308	output = &CreateJobOutput{}
2309	req = c.newRequest(op, input, output)
2310	return
2311}
2312
2313// CreateJob API operation for AWS IoT.
2314//
2315// Creates a job.
2316//
2317// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2318// with awserr.Error's Code and Message methods to get detailed information about
2319// the error.
2320//
2321// See the AWS API reference guide for AWS IoT's
2322// API operation CreateJob for usage and error information.
2323//
2324// Returned Error Types:
2325//   * InvalidRequestException
2326//   The request is not valid.
2327//
2328//   * ResourceNotFoundException
2329//   The specified resource does not exist.
2330//
2331//   * ResourceAlreadyExistsException
2332//   The resource already exists.
2333//
2334//   * LimitExceededException
2335//   A limit has been exceeded.
2336//
2337//   * ThrottlingException
2338//   The rate exceeds the limit.
2339//
2340//   * ServiceUnavailableException
2341//   The service is temporarily unavailable.
2342//
2343func (c *IoT) CreateJob(input *CreateJobInput) (*CreateJobOutput, error) {
2344	req, out := c.CreateJobRequest(input)
2345	return out, req.Send()
2346}
2347
2348// CreateJobWithContext is the same as CreateJob with the addition of
2349// the ability to pass a context and additional request options.
2350//
2351// See CreateJob for details on how to use this API operation.
2352//
2353// The context must be non-nil and will be used for request cancellation. If
2354// the context is nil a panic will occur. In the future the SDK may create
2355// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2356// for more information on using Contexts.
2357func (c *IoT) CreateJobWithContext(ctx aws.Context, input *CreateJobInput, opts ...request.Option) (*CreateJobOutput, error) {
2358	req, out := c.CreateJobRequest(input)
2359	req.SetContext(ctx)
2360	req.ApplyOptions(opts...)
2361	return out, req.Send()
2362}
2363
2364const opCreateJobTemplate = "CreateJobTemplate"
2365
2366// CreateJobTemplateRequest generates a "aws/request.Request" representing the
2367// client's request for the CreateJobTemplate operation. The "output" return
2368// value will be populated with the request's response once the request completes
2369// successfully.
2370//
2371// Use "Send" method on the returned Request to send the API call to the service.
2372// the "output" return value is not valid until after Send returns without error.
2373//
2374// See CreateJobTemplate for more information on using the CreateJobTemplate
2375// API call, and error handling.
2376//
2377// This method is useful when you want to inject custom logic or configuration
2378// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2379//
2380//
2381//    // Example sending a request using the CreateJobTemplateRequest method.
2382//    req, resp := client.CreateJobTemplateRequest(params)
2383//
2384//    err := req.Send()
2385//    if err == nil { // resp is now filled
2386//        fmt.Println(resp)
2387//    }
2388func (c *IoT) CreateJobTemplateRequest(input *CreateJobTemplateInput) (req *request.Request, output *CreateJobTemplateOutput) {
2389	op := &request.Operation{
2390		Name:       opCreateJobTemplate,
2391		HTTPMethod: "PUT",
2392		HTTPPath:   "/job-templates/{jobTemplateId}",
2393	}
2394
2395	if input == nil {
2396		input = &CreateJobTemplateInput{}
2397	}
2398
2399	output = &CreateJobTemplateOutput{}
2400	req = c.newRequest(op, input, output)
2401	return
2402}
2403
2404// CreateJobTemplate API operation for AWS IoT.
2405//
2406// Creates a job template.
2407//
2408// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2409// with awserr.Error's Code and Message methods to get detailed information about
2410// the error.
2411//
2412// See the AWS API reference guide for AWS IoT's
2413// API operation CreateJobTemplate for usage and error information.
2414//
2415// Returned Error Types:
2416//   * InvalidRequestException
2417//   The request is not valid.
2418//
2419//   * ResourceNotFoundException
2420//   The specified resource does not exist.
2421//
2422//   * ConflictException
2423//   A resource with the same name already exists.
2424//
2425//   * LimitExceededException
2426//   A limit has been exceeded.
2427//
2428//   * ThrottlingException
2429//   The rate exceeds the limit.
2430//
2431//   * InternalFailureException
2432//   An unexpected error has occurred.
2433//
2434func (c *IoT) CreateJobTemplate(input *CreateJobTemplateInput) (*CreateJobTemplateOutput, error) {
2435	req, out := c.CreateJobTemplateRequest(input)
2436	return out, req.Send()
2437}
2438
2439// CreateJobTemplateWithContext is the same as CreateJobTemplate with the addition of
2440// the ability to pass a context and additional request options.
2441//
2442// See CreateJobTemplate for details on how to use this API operation.
2443//
2444// The context must be non-nil and will be used for request cancellation. If
2445// the context is nil a panic will occur. In the future the SDK may create
2446// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2447// for more information on using Contexts.
2448func (c *IoT) CreateJobTemplateWithContext(ctx aws.Context, input *CreateJobTemplateInput, opts ...request.Option) (*CreateJobTemplateOutput, error) {
2449	req, out := c.CreateJobTemplateRequest(input)
2450	req.SetContext(ctx)
2451	req.ApplyOptions(opts...)
2452	return out, req.Send()
2453}
2454
2455const opCreateKeysAndCertificate = "CreateKeysAndCertificate"
2456
2457// CreateKeysAndCertificateRequest generates a "aws/request.Request" representing the
2458// client's request for the CreateKeysAndCertificate operation. The "output" return
2459// value will be populated with the request's response once the request completes
2460// successfully.
2461//
2462// Use "Send" method on the returned Request to send the API call to the service.
2463// the "output" return value is not valid until after Send returns without error.
2464//
2465// See CreateKeysAndCertificate for more information on using the CreateKeysAndCertificate
2466// API call, and error handling.
2467//
2468// This method is useful when you want to inject custom logic or configuration
2469// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2470//
2471//
2472//    // Example sending a request using the CreateKeysAndCertificateRequest method.
2473//    req, resp := client.CreateKeysAndCertificateRequest(params)
2474//
2475//    err := req.Send()
2476//    if err == nil { // resp is now filled
2477//        fmt.Println(resp)
2478//    }
2479func (c *IoT) CreateKeysAndCertificateRequest(input *CreateKeysAndCertificateInput) (req *request.Request, output *CreateKeysAndCertificateOutput) {
2480	op := &request.Operation{
2481		Name:       opCreateKeysAndCertificate,
2482		HTTPMethod: "POST",
2483		HTTPPath:   "/keys-and-certificate",
2484	}
2485
2486	if input == nil {
2487		input = &CreateKeysAndCertificateInput{}
2488	}
2489
2490	output = &CreateKeysAndCertificateOutput{}
2491	req = c.newRequest(op, input, output)
2492	return
2493}
2494
2495// CreateKeysAndCertificate API operation for AWS IoT.
2496//
2497// Creates a 2048-bit RSA key pair and issues an X.509 certificate using the
2498// issued public key. You can also call CreateKeysAndCertificate over MQTT from
2499// a device, for more information, see Provisioning MQTT API (https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#provision-mqtt-api).
2500//
2501// Note This is the only time AWS IoT issues the private key for this certificate,
2502// so it is important to keep it in a secure location.
2503//
2504// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2505// with awserr.Error's Code and Message methods to get detailed information about
2506// the error.
2507//
2508// See the AWS API reference guide for AWS IoT's
2509// API operation CreateKeysAndCertificate for usage and error information.
2510//
2511// Returned Error Types:
2512//   * InvalidRequestException
2513//   The request is not valid.
2514//
2515//   * ThrottlingException
2516//   The rate exceeds the limit.
2517//
2518//   * UnauthorizedException
2519//   You are not authorized to perform this operation.
2520//
2521//   * ServiceUnavailableException
2522//   The service is temporarily unavailable.
2523//
2524//   * InternalFailureException
2525//   An unexpected error has occurred.
2526//
2527func (c *IoT) CreateKeysAndCertificate(input *CreateKeysAndCertificateInput) (*CreateKeysAndCertificateOutput, error) {
2528	req, out := c.CreateKeysAndCertificateRequest(input)
2529	return out, req.Send()
2530}
2531
2532// CreateKeysAndCertificateWithContext is the same as CreateKeysAndCertificate with the addition of
2533// the ability to pass a context and additional request options.
2534//
2535// See CreateKeysAndCertificate for details on how to use this API operation.
2536//
2537// The context must be non-nil and will be used for request cancellation. If
2538// the context is nil a panic will occur. In the future the SDK may create
2539// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2540// for more information on using Contexts.
2541func (c *IoT) CreateKeysAndCertificateWithContext(ctx aws.Context, input *CreateKeysAndCertificateInput, opts ...request.Option) (*CreateKeysAndCertificateOutput, error) {
2542	req, out := c.CreateKeysAndCertificateRequest(input)
2543	req.SetContext(ctx)
2544	req.ApplyOptions(opts...)
2545	return out, req.Send()
2546}
2547
2548const opCreateMitigationAction = "CreateMitigationAction"
2549
2550// CreateMitigationActionRequest generates a "aws/request.Request" representing the
2551// client's request for the CreateMitigationAction operation. The "output" return
2552// value will be populated with the request's response once the request completes
2553// successfully.
2554//
2555// Use "Send" method on the returned Request to send the API call to the service.
2556// the "output" return value is not valid until after Send returns without error.
2557//
2558// See CreateMitigationAction for more information on using the CreateMitigationAction
2559// API call, and error handling.
2560//
2561// This method is useful when you want to inject custom logic or configuration
2562// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2563//
2564//
2565//    // Example sending a request using the CreateMitigationActionRequest method.
2566//    req, resp := client.CreateMitigationActionRequest(params)
2567//
2568//    err := req.Send()
2569//    if err == nil { // resp is now filled
2570//        fmt.Println(resp)
2571//    }
2572func (c *IoT) CreateMitigationActionRequest(input *CreateMitigationActionInput) (req *request.Request, output *CreateMitigationActionOutput) {
2573	op := &request.Operation{
2574		Name:       opCreateMitigationAction,
2575		HTTPMethod: "POST",
2576		HTTPPath:   "/mitigationactions/actions/{actionName}",
2577	}
2578
2579	if input == nil {
2580		input = &CreateMitigationActionInput{}
2581	}
2582
2583	output = &CreateMitigationActionOutput{}
2584	req = c.newRequest(op, input, output)
2585	return
2586}
2587
2588// CreateMitigationAction API operation for AWS IoT.
2589//
2590// Defines an action that can be applied to audit findings by using StartAuditMitigationActionsTask.
2591// Only certain types of mitigation actions can be applied to specific check
2592// names. For more information, see Mitigation actions (https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-mitigation-actions.html).
2593// Each mitigation action can apply only one type of change.
2594//
2595// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2596// with awserr.Error's Code and Message methods to get detailed information about
2597// the error.
2598//
2599// See the AWS API reference guide for AWS IoT's
2600// API operation CreateMitigationAction for usage and error information.
2601//
2602// Returned Error Types:
2603//   * InvalidRequestException
2604//   The request is not valid.
2605//
2606//   * ResourceAlreadyExistsException
2607//   The resource already exists.
2608//
2609//   * LimitExceededException
2610//   A limit has been exceeded.
2611//
2612//   * ThrottlingException
2613//   The rate exceeds the limit.
2614//
2615//   * InternalFailureException
2616//   An unexpected error has occurred.
2617//
2618func (c *IoT) CreateMitigationAction(input *CreateMitigationActionInput) (*CreateMitigationActionOutput, error) {
2619	req, out := c.CreateMitigationActionRequest(input)
2620	return out, req.Send()
2621}
2622
2623// CreateMitigationActionWithContext is the same as CreateMitigationAction with the addition of
2624// the ability to pass a context and additional request options.
2625//
2626// See CreateMitigationAction for details on how to use this API operation.
2627//
2628// The context must be non-nil and will be used for request cancellation. If
2629// the context is nil a panic will occur. In the future the SDK may create
2630// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2631// for more information on using Contexts.
2632func (c *IoT) CreateMitigationActionWithContext(ctx aws.Context, input *CreateMitigationActionInput, opts ...request.Option) (*CreateMitigationActionOutput, error) {
2633	req, out := c.CreateMitigationActionRequest(input)
2634	req.SetContext(ctx)
2635	req.ApplyOptions(opts...)
2636	return out, req.Send()
2637}
2638
2639const opCreateOTAUpdate = "CreateOTAUpdate"
2640
2641// CreateOTAUpdateRequest generates a "aws/request.Request" representing the
2642// client's request for the CreateOTAUpdate operation. The "output" return
2643// value will be populated with the request's response once the request completes
2644// successfully.
2645//
2646// Use "Send" method on the returned Request to send the API call to the service.
2647// the "output" return value is not valid until after Send returns without error.
2648//
2649// See CreateOTAUpdate for more information on using the CreateOTAUpdate
2650// API call, and error handling.
2651//
2652// This method is useful when you want to inject custom logic or configuration
2653// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2654//
2655//
2656//    // Example sending a request using the CreateOTAUpdateRequest method.
2657//    req, resp := client.CreateOTAUpdateRequest(params)
2658//
2659//    err := req.Send()
2660//    if err == nil { // resp is now filled
2661//        fmt.Println(resp)
2662//    }
2663func (c *IoT) CreateOTAUpdateRequest(input *CreateOTAUpdateInput) (req *request.Request, output *CreateOTAUpdateOutput) {
2664	op := &request.Operation{
2665		Name:       opCreateOTAUpdate,
2666		HTTPMethod: "POST",
2667		HTTPPath:   "/otaUpdates/{otaUpdateId}",
2668	}
2669
2670	if input == nil {
2671		input = &CreateOTAUpdateInput{}
2672	}
2673
2674	output = &CreateOTAUpdateOutput{}
2675	req = c.newRequest(op, input, output)
2676	return
2677}
2678
2679// CreateOTAUpdate API operation for AWS IoT.
2680//
2681// Creates an AWS IoT OTAUpdate on a target group of things or groups.
2682//
2683// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2684// with awserr.Error's Code and Message methods to get detailed information about
2685// the error.
2686//
2687// See the AWS API reference guide for AWS IoT's
2688// API operation CreateOTAUpdate for usage and error information.
2689//
2690// Returned Error Types:
2691//   * InvalidRequestException
2692//   The request is not valid.
2693//
2694//   * LimitExceededException
2695//   A limit has been exceeded.
2696//
2697//   * ResourceNotFoundException
2698//   The specified resource does not exist.
2699//
2700//   * ResourceAlreadyExistsException
2701//   The resource already exists.
2702//
2703//   * ThrottlingException
2704//   The rate exceeds the limit.
2705//
2706//   * UnauthorizedException
2707//   You are not authorized to perform this operation.
2708//
2709//   * InternalFailureException
2710//   An unexpected error has occurred.
2711//
2712//   * ServiceUnavailableException
2713//   The service is temporarily unavailable.
2714//
2715func (c *IoT) CreateOTAUpdate(input *CreateOTAUpdateInput) (*CreateOTAUpdateOutput, error) {
2716	req, out := c.CreateOTAUpdateRequest(input)
2717	return out, req.Send()
2718}
2719
2720// CreateOTAUpdateWithContext is the same as CreateOTAUpdate with the addition of
2721// the ability to pass a context and additional request options.
2722//
2723// See CreateOTAUpdate for details on how to use this API operation.
2724//
2725// The context must be non-nil and will be used for request cancellation. If
2726// the context is nil a panic will occur. In the future the SDK may create
2727// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2728// for more information on using Contexts.
2729func (c *IoT) CreateOTAUpdateWithContext(ctx aws.Context, input *CreateOTAUpdateInput, opts ...request.Option) (*CreateOTAUpdateOutput, error) {
2730	req, out := c.CreateOTAUpdateRequest(input)
2731	req.SetContext(ctx)
2732	req.ApplyOptions(opts...)
2733	return out, req.Send()
2734}
2735
2736const opCreatePolicy = "CreatePolicy"
2737
2738// CreatePolicyRequest generates a "aws/request.Request" representing the
2739// client's request for the CreatePolicy operation. The "output" return
2740// value will be populated with the request's response once the request completes
2741// successfully.
2742//
2743// Use "Send" method on the returned Request to send the API call to the service.
2744// the "output" return value is not valid until after Send returns without error.
2745//
2746// See CreatePolicy for more information on using the CreatePolicy
2747// API call, and error handling.
2748//
2749// This method is useful when you want to inject custom logic or configuration
2750// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2751//
2752//
2753//    // Example sending a request using the CreatePolicyRequest method.
2754//    req, resp := client.CreatePolicyRequest(params)
2755//
2756//    err := req.Send()
2757//    if err == nil { // resp is now filled
2758//        fmt.Println(resp)
2759//    }
2760func (c *IoT) CreatePolicyRequest(input *CreatePolicyInput) (req *request.Request, output *CreatePolicyOutput) {
2761	op := &request.Operation{
2762		Name:       opCreatePolicy,
2763		HTTPMethod: "POST",
2764		HTTPPath:   "/policies/{policyName}",
2765	}
2766
2767	if input == nil {
2768		input = &CreatePolicyInput{}
2769	}
2770
2771	output = &CreatePolicyOutput{}
2772	req = c.newRequest(op, input, output)
2773	return
2774}
2775
2776// CreatePolicy API operation for AWS IoT.
2777//
2778// Creates an AWS IoT policy.
2779//
2780// The created policy is the default version for the policy. This operation
2781// creates a policy version with a version identifier of 1 and sets 1 as the
2782// policy's default version.
2783//
2784// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2785// with awserr.Error's Code and Message methods to get detailed information about
2786// the error.
2787//
2788// See the AWS API reference guide for AWS IoT's
2789// API operation CreatePolicy for usage and error information.
2790//
2791// Returned Error Types:
2792//   * ResourceAlreadyExistsException
2793//   The resource already exists.
2794//
2795//   * MalformedPolicyException
2796//   The policy documentation is not valid.
2797//
2798//   * InvalidRequestException
2799//   The request is not valid.
2800//
2801//   * ThrottlingException
2802//   The rate exceeds the limit.
2803//
2804//   * UnauthorizedException
2805//   You are not authorized to perform this operation.
2806//
2807//   * ServiceUnavailableException
2808//   The service is temporarily unavailable.
2809//
2810//   * InternalFailureException
2811//   An unexpected error has occurred.
2812//
2813func (c *IoT) CreatePolicy(input *CreatePolicyInput) (*CreatePolicyOutput, error) {
2814	req, out := c.CreatePolicyRequest(input)
2815	return out, req.Send()
2816}
2817
2818// CreatePolicyWithContext is the same as CreatePolicy with the addition of
2819// the ability to pass a context and additional request options.
2820//
2821// See CreatePolicy for details on how to use this API operation.
2822//
2823// The context must be non-nil and will be used for request cancellation. If
2824// the context is nil a panic will occur. In the future the SDK may create
2825// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2826// for more information on using Contexts.
2827func (c *IoT) CreatePolicyWithContext(ctx aws.Context, input *CreatePolicyInput, opts ...request.Option) (*CreatePolicyOutput, error) {
2828	req, out := c.CreatePolicyRequest(input)
2829	req.SetContext(ctx)
2830	req.ApplyOptions(opts...)
2831	return out, req.Send()
2832}
2833
2834const opCreatePolicyVersion = "CreatePolicyVersion"
2835
2836// CreatePolicyVersionRequest generates a "aws/request.Request" representing the
2837// client's request for the CreatePolicyVersion operation. The "output" return
2838// value will be populated with the request's response once the request completes
2839// successfully.
2840//
2841// Use "Send" method on the returned Request to send the API call to the service.
2842// the "output" return value is not valid until after Send returns without error.
2843//
2844// See CreatePolicyVersion for more information on using the CreatePolicyVersion
2845// API call, and error handling.
2846//
2847// This method is useful when you want to inject custom logic or configuration
2848// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2849//
2850//
2851//    // Example sending a request using the CreatePolicyVersionRequest method.
2852//    req, resp := client.CreatePolicyVersionRequest(params)
2853//
2854//    err := req.Send()
2855//    if err == nil { // resp is now filled
2856//        fmt.Println(resp)
2857//    }
2858func (c *IoT) CreatePolicyVersionRequest(input *CreatePolicyVersionInput) (req *request.Request, output *CreatePolicyVersionOutput) {
2859	op := &request.Operation{
2860		Name:       opCreatePolicyVersion,
2861		HTTPMethod: "POST",
2862		HTTPPath:   "/policies/{policyName}/version",
2863	}
2864
2865	if input == nil {
2866		input = &CreatePolicyVersionInput{}
2867	}
2868
2869	output = &CreatePolicyVersionOutput{}
2870	req = c.newRequest(op, input, output)
2871	return
2872}
2873
2874// CreatePolicyVersion API operation for AWS IoT.
2875//
2876// Creates a new version of the specified AWS IoT policy. To update a policy,
2877// create a new policy version. A managed policy can have up to five versions.
2878// If the policy has five versions, you must use DeletePolicyVersion to delete
2879// an existing version before you create a new one.
2880//
2881// Optionally, you can set the new version as the policy's default version.
2882// The default version is the operative version (that is, the version that is
2883// in effect for the certificates to which the policy is attached).
2884//
2885// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2886// with awserr.Error's Code and Message methods to get detailed information about
2887// the error.
2888//
2889// See the AWS API reference guide for AWS IoT's
2890// API operation CreatePolicyVersion for usage and error information.
2891//
2892// Returned Error Types:
2893//   * ResourceNotFoundException
2894//   The specified resource does not exist.
2895//
2896//   * MalformedPolicyException
2897//   The policy documentation is not valid.
2898//
2899//   * VersionsLimitExceededException
2900//   The number of policy versions exceeds the limit.
2901//
2902//   * InvalidRequestException
2903//   The request is not valid.
2904//
2905//   * ThrottlingException
2906//   The rate exceeds the limit.
2907//
2908//   * UnauthorizedException
2909//   You are not authorized to perform this operation.
2910//
2911//   * ServiceUnavailableException
2912//   The service is temporarily unavailable.
2913//
2914//   * InternalFailureException
2915//   An unexpected error has occurred.
2916//
2917func (c *IoT) CreatePolicyVersion(input *CreatePolicyVersionInput) (*CreatePolicyVersionOutput, error) {
2918	req, out := c.CreatePolicyVersionRequest(input)
2919	return out, req.Send()
2920}
2921
2922// CreatePolicyVersionWithContext is the same as CreatePolicyVersion with the addition of
2923// the ability to pass a context and additional request options.
2924//
2925// See CreatePolicyVersion for details on how to use this API operation.
2926//
2927// The context must be non-nil and will be used for request cancellation. If
2928// the context is nil a panic will occur. In the future the SDK may create
2929// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2930// for more information on using Contexts.
2931func (c *IoT) CreatePolicyVersionWithContext(ctx aws.Context, input *CreatePolicyVersionInput, opts ...request.Option) (*CreatePolicyVersionOutput, error) {
2932	req, out := c.CreatePolicyVersionRequest(input)
2933	req.SetContext(ctx)
2934	req.ApplyOptions(opts...)
2935	return out, req.Send()
2936}
2937
2938const opCreateProvisioningClaim = "CreateProvisioningClaim"
2939
2940// CreateProvisioningClaimRequest generates a "aws/request.Request" representing the
2941// client's request for the CreateProvisioningClaim operation. The "output" return
2942// value will be populated with the request's response once the request completes
2943// successfully.
2944//
2945// Use "Send" method on the returned Request to send the API call to the service.
2946// the "output" return value is not valid until after Send returns without error.
2947//
2948// See CreateProvisioningClaim for more information on using the CreateProvisioningClaim
2949// API call, and error handling.
2950//
2951// This method is useful when you want to inject custom logic or configuration
2952// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2953//
2954//
2955//    // Example sending a request using the CreateProvisioningClaimRequest method.
2956//    req, resp := client.CreateProvisioningClaimRequest(params)
2957//
2958//    err := req.Send()
2959//    if err == nil { // resp is now filled
2960//        fmt.Println(resp)
2961//    }
2962func (c *IoT) CreateProvisioningClaimRequest(input *CreateProvisioningClaimInput) (req *request.Request, output *CreateProvisioningClaimOutput) {
2963	op := &request.Operation{
2964		Name:       opCreateProvisioningClaim,
2965		HTTPMethod: "POST",
2966		HTTPPath:   "/provisioning-templates/{templateName}/provisioning-claim",
2967	}
2968
2969	if input == nil {
2970		input = &CreateProvisioningClaimInput{}
2971	}
2972
2973	output = &CreateProvisioningClaimOutput{}
2974	req = c.newRequest(op, input, output)
2975	return
2976}
2977
2978// CreateProvisioningClaim API operation for AWS IoT.
2979//
2980// Creates a provisioning claim.
2981//
2982// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2983// with awserr.Error's Code and Message methods to get detailed information about
2984// the error.
2985//
2986// See the AWS API reference guide for AWS IoT's
2987// API operation CreateProvisioningClaim for usage and error information.
2988//
2989// Returned Error Types:
2990//   * InvalidRequestException
2991//   The request is not valid.
2992//
2993//   * ResourceNotFoundException
2994//   The specified resource does not exist.
2995//
2996//   * ThrottlingException
2997//   The rate exceeds the limit.
2998//
2999//   * UnauthorizedException
3000//   You are not authorized to perform this operation.
3001//
3002//   * ServiceUnavailableException
3003//   The service is temporarily unavailable.
3004//
3005//   * InternalFailureException
3006//   An unexpected error has occurred.
3007//
3008func (c *IoT) CreateProvisioningClaim(input *CreateProvisioningClaimInput) (*CreateProvisioningClaimOutput, error) {
3009	req, out := c.CreateProvisioningClaimRequest(input)
3010	return out, req.Send()
3011}
3012
3013// CreateProvisioningClaimWithContext is the same as CreateProvisioningClaim with the addition of
3014// the ability to pass a context and additional request options.
3015//
3016// See CreateProvisioningClaim for details on how to use this API operation.
3017//
3018// The context must be non-nil and will be used for request cancellation. If
3019// the context is nil a panic will occur. In the future the SDK may create
3020// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3021// for more information on using Contexts.
3022func (c *IoT) CreateProvisioningClaimWithContext(ctx aws.Context, input *CreateProvisioningClaimInput, opts ...request.Option) (*CreateProvisioningClaimOutput, error) {
3023	req, out := c.CreateProvisioningClaimRequest(input)
3024	req.SetContext(ctx)
3025	req.ApplyOptions(opts...)
3026	return out, req.Send()
3027}
3028
3029const opCreateProvisioningTemplate = "CreateProvisioningTemplate"
3030
3031// CreateProvisioningTemplateRequest generates a "aws/request.Request" representing the
3032// client's request for the CreateProvisioningTemplate operation. The "output" return
3033// value will be populated with the request's response once the request completes
3034// successfully.
3035//
3036// Use "Send" method on the returned Request to send the API call to the service.
3037// the "output" return value is not valid until after Send returns without error.
3038//
3039// See CreateProvisioningTemplate for more information on using the CreateProvisioningTemplate
3040// API call, and error handling.
3041//
3042// This method is useful when you want to inject custom logic or configuration
3043// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3044//
3045//
3046//    // Example sending a request using the CreateProvisioningTemplateRequest method.
3047//    req, resp := client.CreateProvisioningTemplateRequest(params)
3048//
3049//    err := req.Send()
3050//    if err == nil { // resp is now filled
3051//        fmt.Println(resp)
3052//    }
3053func (c *IoT) CreateProvisioningTemplateRequest(input *CreateProvisioningTemplateInput) (req *request.Request, output *CreateProvisioningTemplateOutput) {
3054	op := &request.Operation{
3055		Name:       opCreateProvisioningTemplate,
3056		HTTPMethod: "POST",
3057		HTTPPath:   "/provisioning-templates",
3058	}
3059
3060	if input == nil {
3061		input = &CreateProvisioningTemplateInput{}
3062	}
3063
3064	output = &CreateProvisioningTemplateOutput{}
3065	req = c.newRequest(op, input, output)
3066	return
3067}
3068
3069// CreateProvisioningTemplate API operation for AWS IoT.
3070//
3071// Creates a fleet provisioning template.
3072//
3073// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3074// with awserr.Error's Code and Message methods to get detailed information about
3075// the error.
3076//
3077// See the AWS API reference guide for AWS IoT's
3078// API operation CreateProvisioningTemplate for usage and error information.
3079//
3080// Returned Error Types:
3081//   * InternalFailureException
3082//   An unexpected error has occurred.
3083//
3084//   * InvalidRequestException
3085//   The request is not valid.
3086//
3087//   * LimitExceededException
3088//   A limit has been exceeded.
3089//
3090//   * ThrottlingException
3091//   The rate exceeds the limit.
3092//
3093//   * UnauthorizedException
3094//   You are not authorized to perform this operation.
3095//
3096//   * ResourceAlreadyExistsException
3097//   The resource already exists.
3098//
3099func (c *IoT) CreateProvisioningTemplate(input *CreateProvisioningTemplateInput) (*CreateProvisioningTemplateOutput, error) {
3100	req, out := c.CreateProvisioningTemplateRequest(input)
3101	return out, req.Send()
3102}
3103
3104// CreateProvisioningTemplateWithContext is the same as CreateProvisioningTemplate with the addition of
3105// the ability to pass a context and additional request options.
3106//
3107// See CreateProvisioningTemplate for details on how to use this API operation.
3108//
3109// The context must be non-nil and will be used for request cancellation. If
3110// the context is nil a panic will occur. In the future the SDK may create
3111// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3112// for more information on using Contexts.
3113func (c *IoT) CreateProvisioningTemplateWithContext(ctx aws.Context, input *CreateProvisioningTemplateInput, opts ...request.Option) (*CreateProvisioningTemplateOutput, error) {
3114	req, out := c.CreateProvisioningTemplateRequest(input)
3115	req.SetContext(ctx)
3116	req.ApplyOptions(opts...)
3117	return out, req.Send()
3118}
3119
3120const opCreateProvisioningTemplateVersion = "CreateProvisioningTemplateVersion"
3121
3122// CreateProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
3123// client's request for the CreateProvisioningTemplateVersion operation. The "output" return
3124// value will be populated with the request's response once the request completes
3125// successfully.
3126//
3127// Use "Send" method on the returned Request to send the API call to the service.
3128// the "output" return value is not valid until after Send returns without error.
3129//
3130// See CreateProvisioningTemplateVersion for more information on using the CreateProvisioningTemplateVersion
3131// API call, and error handling.
3132//
3133// This method is useful when you want to inject custom logic or configuration
3134// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3135//
3136//
3137//    // Example sending a request using the CreateProvisioningTemplateVersionRequest method.
3138//    req, resp := client.CreateProvisioningTemplateVersionRequest(params)
3139//
3140//    err := req.Send()
3141//    if err == nil { // resp is now filled
3142//        fmt.Println(resp)
3143//    }
3144func (c *IoT) CreateProvisioningTemplateVersionRequest(input *CreateProvisioningTemplateVersionInput) (req *request.Request, output *CreateProvisioningTemplateVersionOutput) {
3145	op := &request.Operation{
3146		Name:       opCreateProvisioningTemplateVersion,
3147		HTTPMethod: "POST",
3148		HTTPPath:   "/provisioning-templates/{templateName}/versions",
3149	}
3150
3151	if input == nil {
3152		input = &CreateProvisioningTemplateVersionInput{}
3153	}
3154
3155	output = &CreateProvisioningTemplateVersionOutput{}
3156	req = c.newRequest(op, input, output)
3157	return
3158}
3159
3160// CreateProvisioningTemplateVersion API operation for AWS IoT.
3161//
3162// Creates a new version of a fleet provisioning template.
3163//
3164// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3165// with awserr.Error's Code and Message methods to get detailed information about
3166// the error.
3167//
3168// See the AWS API reference guide for AWS IoT's
3169// API operation CreateProvisioningTemplateVersion for usage and error information.
3170//
3171// Returned Error Types:
3172//   * VersionsLimitExceededException
3173//   The number of policy versions exceeds the limit.
3174//
3175//   * InternalFailureException
3176//   An unexpected error has occurred.
3177//
3178//   * InvalidRequestException
3179//   The request is not valid.
3180//
3181//   * ThrottlingException
3182//   The rate exceeds the limit.
3183//
3184//   * ResourceNotFoundException
3185//   The specified resource does not exist.
3186//
3187//   * UnauthorizedException
3188//   You are not authorized to perform this operation.
3189//
3190//   * ConflictingResourceUpdateException
3191//   A conflicting resource update exception. This exception is thrown when two
3192//   pending updates cause a conflict.
3193//
3194func (c *IoT) CreateProvisioningTemplateVersion(input *CreateProvisioningTemplateVersionInput) (*CreateProvisioningTemplateVersionOutput, error) {
3195	req, out := c.CreateProvisioningTemplateVersionRequest(input)
3196	return out, req.Send()
3197}
3198
3199// CreateProvisioningTemplateVersionWithContext is the same as CreateProvisioningTemplateVersion with the addition of
3200// the ability to pass a context and additional request options.
3201//
3202// See CreateProvisioningTemplateVersion for details on how to use this API operation.
3203//
3204// The context must be non-nil and will be used for request cancellation. If
3205// the context is nil a panic will occur. In the future the SDK may create
3206// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3207// for more information on using Contexts.
3208func (c *IoT) CreateProvisioningTemplateVersionWithContext(ctx aws.Context, input *CreateProvisioningTemplateVersionInput, opts ...request.Option) (*CreateProvisioningTemplateVersionOutput, error) {
3209	req, out := c.CreateProvisioningTemplateVersionRequest(input)
3210	req.SetContext(ctx)
3211	req.ApplyOptions(opts...)
3212	return out, req.Send()
3213}
3214
3215const opCreateRoleAlias = "CreateRoleAlias"
3216
3217// CreateRoleAliasRequest generates a "aws/request.Request" representing the
3218// client's request for the CreateRoleAlias operation. The "output" return
3219// value will be populated with the request's response once the request completes
3220// successfully.
3221//
3222// Use "Send" method on the returned Request to send the API call to the service.
3223// the "output" return value is not valid until after Send returns without error.
3224//
3225// See CreateRoleAlias for more information on using the CreateRoleAlias
3226// API call, and error handling.
3227//
3228// This method is useful when you want to inject custom logic or configuration
3229// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3230//
3231//
3232//    // Example sending a request using the CreateRoleAliasRequest method.
3233//    req, resp := client.CreateRoleAliasRequest(params)
3234//
3235//    err := req.Send()
3236//    if err == nil { // resp is now filled
3237//        fmt.Println(resp)
3238//    }
3239func (c *IoT) CreateRoleAliasRequest(input *CreateRoleAliasInput) (req *request.Request, output *CreateRoleAliasOutput) {
3240	op := &request.Operation{
3241		Name:       opCreateRoleAlias,
3242		HTTPMethod: "POST",
3243		HTTPPath:   "/role-aliases/{roleAlias}",
3244	}
3245
3246	if input == nil {
3247		input = &CreateRoleAliasInput{}
3248	}
3249
3250	output = &CreateRoleAliasOutput{}
3251	req = c.newRequest(op, input, output)
3252	return
3253}
3254
3255// CreateRoleAlias API operation for AWS IoT.
3256//
3257// Creates a role alias.
3258//
3259// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3260// with awserr.Error's Code and Message methods to get detailed information about
3261// the error.
3262//
3263// See the AWS API reference guide for AWS IoT's
3264// API operation CreateRoleAlias for usage and error information.
3265//
3266// Returned Error Types:
3267//   * ResourceAlreadyExistsException
3268//   The resource already exists.
3269//
3270//   * InvalidRequestException
3271//   The request is not valid.
3272//
3273//   * LimitExceededException
3274//   A limit has been exceeded.
3275//
3276//   * ThrottlingException
3277//   The rate exceeds the limit.
3278//
3279//   * UnauthorizedException
3280//   You are not authorized to perform this operation.
3281//
3282//   * ServiceUnavailableException
3283//   The service is temporarily unavailable.
3284//
3285//   * InternalFailureException
3286//   An unexpected error has occurred.
3287//
3288func (c *IoT) CreateRoleAlias(input *CreateRoleAliasInput) (*CreateRoleAliasOutput, error) {
3289	req, out := c.CreateRoleAliasRequest(input)
3290	return out, req.Send()
3291}
3292
3293// CreateRoleAliasWithContext is the same as CreateRoleAlias with the addition of
3294// the ability to pass a context and additional request options.
3295//
3296// See CreateRoleAlias for details on how to use this API operation.
3297//
3298// The context must be non-nil and will be used for request cancellation. If
3299// the context is nil a panic will occur. In the future the SDK may create
3300// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3301// for more information on using Contexts.
3302func (c *IoT) CreateRoleAliasWithContext(ctx aws.Context, input *CreateRoleAliasInput, opts ...request.Option) (*CreateRoleAliasOutput, error) {
3303	req, out := c.CreateRoleAliasRequest(input)
3304	req.SetContext(ctx)
3305	req.ApplyOptions(opts...)
3306	return out, req.Send()
3307}
3308
3309const opCreateScheduledAudit = "CreateScheduledAudit"
3310
3311// CreateScheduledAuditRequest generates a "aws/request.Request" representing the
3312// client's request for the CreateScheduledAudit operation. The "output" return
3313// value will be populated with the request's response once the request completes
3314// successfully.
3315//
3316// Use "Send" method on the returned Request to send the API call to the service.
3317// the "output" return value is not valid until after Send returns without error.
3318//
3319// See CreateScheduledAudit for more information on using the CreateScheduledAudit
3320// API call, and error handling.
3321//
3322// This method is useful when you want to inject custom logic or configuration
3323// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3324//
3325//
3326//    // Example sending a request using the CreateScheduledAuditRequest method.
3327//    req, resp := client.CreateScheduledAuditRequest(params)
3328//
3329//    err := req.Send()
3330//    if err == nil { // resp is now filled
3331//        fmt.Println(resp)
3332//    }
3333func (c *IoT) CreateScheduledAuditRequest(input *CreateScheduledAuditInput) (req *request.Request, output *CreateScheduledAuditOutput) {
3334	op := &request.Operation{
3335		Name:       opCreateScheduledAudit,
3336		HTTPMethod: "POST",
3337		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
3338	}
3339
3340	if input == nil {
3341		input = &CreateScheduledAuditInput{}
3342	}
3343
3344	output = &CreateScheduledAuditOutput{}
3345	req = c.newRequest(op, input, output)
3346	return
3347}
3348
3349// CreateScheduledAudit API operation for AWS IoT.
3350//
3351// Creates a scheduled audit that is run at a specified time interval.
3352//
3353// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3354// with awserr.Error's Code and Message methods to get detailed information about
3355// the error.
3356//
3357// See the AWS API reference guide for AWS IoT's
3358// API operation CreateScheduledAudit for usage and error information.
3359//
3360// Returned Error Types:
3361//   * InvalidRequestException
3362//   The request is not valid.
3363//
3364//   * ResourceAlreadyExistsException
3365//   The resource already exists.
3366//
3367//   * ThrottlingException
3368//   The rate exceeds the limit.
3369//
3370//   * InternalFailureException
3371//   An unexpected error has occurred.
3372//
3373//   * LimitExceededException
3374//   A limit has been exceeded.
3375//
3376func (c *IoT) CreateScheduledAudit(input *CreateScheduledAuditInput) (*CreateScheduledAuditOutput, error) {
3377	req, out := c.CreateScheduledAuditRequest(input)
3378	return out, req.Send()
3379}
3380
3381// CreateScheduledAuditWithContext is the same as CreateScheduledAudit with the addition of
3382// the ability to pass a context and additional request options.
3383//
3384// See CreateScheduledAudit for details on how to use this API operation.
3385//
3386// The context must be non-nil and will be used for request cancellation. If
3387// the context is nil a panic will occur. In the future the SDK may create
3388// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3389// for more information on using Contexts.
3390func (c *IoT) CreateScheduledAuditWithContext(ctx aws.Context, input *CreateScheduledAuditInput, opts ...request.Option) (*CreateScheduledAuditOutput, error) {
3391	req, out := c.CreateScheduledAuditRequest(input)
3392	req.SetContext(ctx)
3393	req.ApplyOptions(opts...)
3394	return out, req.Send()
3395}
3396
3397const opCreateSecurityProfile = "CreateSecurityProfile"
3398
3399// CreateSecurityProfileRequest generates a "aws/request.Request" representing the
3400// client's request for the CreateSecurityProfile operation. The "output" return
3401// value will be populated with the request's response once the request completes
3402// successfully.
3403//
3404// Use "Send" method on the returned Request to send the API call to the service.
3405// the "output" return value is not valid until after Send returns without error.
3406//
3407// See CreateSecurityProfile for more information on using the CreateSecurityProfile
3408// API call, and error handling.
3409//
3410// This method is useful when you want to inject custom logic or configuration
3411// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3412//
3413//
3414//    // Example sending a request using the CreateSecurityProfileRequest method.
3415//    req, resp := client.CreateSecurityProfileRequest(params)
3416//
3417//    err := req.Send()
3418//    if err == nil { // resp is now filled
3419//        fmt.Println(resp)
3420//    }
3421func (c *IoT) CreateSecurityProfileRequest(input *CreateSecurityProfileInput) (req *request.Request, output *CreateSecurityProfileOutput) {
3422	op := &request.Operation{
3423		Name:       opCreateSecurityProfile,
3424		HTTPMethod: "POST",
3425		HTTPPath:   "/security-profiles/{securityProfileName}",
3426	}
3427
3428	if input == nil {
3429		input = &CreateSecurityProfileInput{}
3430	}
3431
3432	output = &CreateSecurityProfileOutput{}
3433	req = c.newRequest(op, input, output)
3434	return
3435}
3436
3437// CreateSecurityProfile API operation for AWS IoT.
3438//
3439// Creates a Device Defender security profile.
3440//
3441// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3442// with awserr.Error's Code and Message methods to get detailed information about
3443// the error.
3444//
3445// See the AWS API reference guide for AWS IoT's
3446// API operation CreateSecurityProfile for usage and error information.
3447//
3448// Returned Error Types:
3449//   * InvalidRequestException
3450//   The request is not valid.
3451//
3452//   * ResourceAlreadyExistsException
3453//   The resource already exists.
3454//
3455//   * ThrottlingException
3456//   The rate exceeds the limit.
3457//
3458//   * InternalFailureException
3459//   An unexpected error has occurred.
3460//
3461func (c *IoT) CreateSecurityProfile(input *CreateSecurityProfileInput) (*CreateSecurityProfileOutput, error) {
3462	req, out := c.CreateSecurityProfileRequest(input)
3463	return out, req.Send()
3464}
3465
3466// CreateSecurityProfileWithContext is the same as CreateSecurityProfile with the addition of
3467// the ability to pass a context and additional request options.
3468//
3469// See CreateSecurityProfile for details on how to use this API operation.
3470//
3471// The context must be non-nil and will be used for request cancellation. If
3472// the context is nil a panic will occur. In the future the SDK may create
3473// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3474// for more information on using Contexts.
3475func (c *IoT) CreateSecurityProfileWithContext(ctx aws.Context, input *CreateSecurityProfileInput, opts ...request.Option) (*CreateSecurityProfileOutput, error) {
3476	req, out := c.CreateSecurityProfileRequest(input)
3477	req.SetContext(ctx)
3478	req.ApplyOptions(opts...)
3479	return out, req.Send()
3480}
3481
3482const opCreateStream = "CreateStream"
3483
3484// CreateStreamRequest generates a "aws/request.Request" representing the
3485// client's request for the CreateStream operation. The "output" return
3486// value will be populated with the request's response once the request completes
3487// successfully.
3488//
3489// Use "Send" method on the returned Request to send the API call to the service.
3490// the "output" return value is not valid until after Send returns without error.
3491//
3492// See CreateStream for more information on using the CreateStream
3493// API call, and error handling.
3494//
3495// This method is useful when you want to inject custom logic or configuration
3496// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3497//
3498//
3499//    // Example sending a request using the CreateStreamRequest method.
3500//    req, resp := client.CreateStreamRequest(params)
3501//
3502//    err := req.Send()
3503//    if err == nil { // resp is now filled
3504//        fmt.Println(resp)
3505//    }
3506func (c *IoT) CreateStreamRequest(input *CreateStreamInput) (req *request.Request, output *CreateStreamOutput) {
3507	op := &request.Operation{
3508		Name:       opCreateStream,
3509		HTTPMethod: "POST",
3510		HTTPPath:   "/streams/{streamId}",
3511	}
3512
3513	if input == nil {
3514		input = &CreateStreamInput{}
3515	}
3516
3517	output = &CreateStreamOutput{}
3518	req = c.newRequest(op, input, output)
3519	return
3520}
3521
3522// CreateStream API operation for AWS IoT.
3523//
3524// Creates a stream for delivering one or more large files in chunks over MQTT.
3525// A stream transports data bytes in chunks or blocks packaged as MQTT messages
3526// from a source like S3. You can have one or more files associated with a stream.
3527//
3528// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3529// with awserr.Error's Code and Message methods to get detailed information about
3530// the error.
3531//
3532// See the AWS API reference guide for AWS IoT's
3533// API operation CreateStream for usage and error information.
3534//
3535// Returned Error Types:
3536//   * InvalidRequestException
3537//   The request is not valid.
3538//
3539//   * LimitExceededException
3540//   A limit has been exceeded.
3541//
3542//   * ResourceNotFoundException
3543//   The specified resource does not exist.
3544//
3545//   * ResourceAlreadyExistsException
3546//   The resource already exists.
3547//
3548//   * ThrottlingException
3549//   The rate exceeds the limit.
3550//
3551//   * UnauthorizedException
3552//   You are not authorized to perform this operation.
3553//
3554//   * ServiceUnavailableException
3555//   The service is temporarily unavailable.
3556//
3557//   * InternalFailureException
3558//   An unexpected error has occurred.
3559//
3560func (c *IoT) CreateStream(input *CreateStreamInput) (*CreateStreamOutput, error) {
3561	req, out := c.CreateStreamRequest(input)
3562	return out, req.Send()
3563}
3564
3565// CreateStreamWithContext is the same as CreateStream with the addition of
3566// the ability to pass a context and additional request options.
3567//
3568// See CreateStream for details on how to use this API operation.
3569//
3570// The context must be non-nil and will be used for request cancellation. If
3571// the context is nil a panic will occur. In the future the SDK may create
3572// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3573// for more information on using Contexts.
3574func (c *IoT) CreateStreamWithContext(ctx aws.Context, input *CreateStreamInput, opts ...request.Option) (*CreateStreamOutput, error) {
3575	req, out := c.CreateStreamRequest(input)
3576	req.SetContext(ctx)
3577	req.ApplyOptions(opts...)
3578	return out, req.Send()
3579}
3580
3581const opCreateThing = "CreateThing"
3582
3583// CreateThingRequest generates a "aws/request.Request" representing the
3584// client's request for the CreateThing operation. The "output" return
3585// value will be populated with the request's response once the request completes
3586// successfully.
3587//
3588// Use "Send" method on the returned Request to send the API call to the service.
3589// the "output" return value is not valid until after Send returns without error.
3590//
3591// See CreateThing for more information on using the CreateThing
3592// API call, and error handling.
3593//
3594// This method is useful when you want to inject custom logic or configuration
3595// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3596//
3597//
3598//    // Example sending a request using the CreateThingRequest method.
3599//    req, resp := client.CreateThingRequest(params)
3600//
3601//    err := req.Send()
3602//    if err == nil { // resp is now filled
3603//        fmt.Println(resp)
3604//    }
3605func (c *IoT) CreateThingRequest(input *CreateThingInput) (req *request.Request, output *CreateThingOutput) {
3606	op := &request.Operation{
3607		Name:       opCreateThing,
3608		HTTPMethod: "POST",
3609		HTTPPath:   "/things/{thingName}",
3610	}
3611
3612	if input == nil {
3613		input = &CreateThingInput{}
3614	}
3615
3616	output = &CreateThingOutput{}
3617	req = c.newRequest(op, input, output)
3618	return
3619}
3620
3621// CreateThing API operation for AWS IoT.
3622//
3623// Creates a thing record in the registry. If this call is made multiple times
3624// using the same thing name and configuration, the call will succeed. If this
3625// call is made with the same thing name but different configuration a ResourceAlreadyExistsException
3626// is thrown.
3627//
3628// This is a control plane operation. See Authorization (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html)
3629// for information about authorizing control plane actions.
3630//
3631// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3632// with awserr.Error's Code and Message methods to get detailed information about
3633// the error.
3634//
3635// See the AWS API reference guide for AWS IoT's
3636// API operation CreateThing for usage and error information.
3637//
3638// Returned Error Types:
3639//   * InvalidRequestException
3640//   The request is not valid.
3641//
3642//   * ThrottlingException
3643//   The rate exceeds the limit.
3644//
3645//   * UnauthorizedException
3646//   You are not authorized to perform this operation.
3647//
3648//   * ServiceUnavailableException
3649//   The service is temporarily unavailable.
3650//
3651//   * InternalFailureException
3652//   An unexpected error has occurred.
3653//
3654//   * ResourceAlreadyExistsException
3655//   The resource already exists.
3656//
3657//   * ResourceNotFoundException
3658//   The specified resource does not exist.
3659//
3660func (c *IoT) CreateThing(input *CreateThingInput) (*CreateThingOutput, error) {
3661	req, out := c.CreateThingRequest(input)
3662	return out, req.Send()
3663}
3664
3665// CreateThingWithContext is the same as CreateThing with the addition of
3666// the ability to pass a context and additional request options.
3667//
3668// See CreateThing for details on how to use this API operation.
3669//
3670// The context must be non-nil and will be used for request cancellation. If
3671// the context is nil a panic will occur. In the future the SDK may create
3672// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3673// for more information on using Contexts.
3674func (c *IoT) CreateThingWithContext(ctx aws.Context, input *CreateThingInput, opts ...request.Option) (*CreateThingOutput, error) {
3675	req, out := c.CreateThingRequest(input)
3676	req.SetContext(ctx)
3677	req.ApplyOptions(opts...)
3678	return out, req.Send()
3679}
3680
3681const opCreateThingGroup = "CreateThingGroup"
3682
3683// CreateThingGroupRequest generates a "aws/request.Request" representing the
3684// client's request for the CreateThingGroup operation. The "output" return
3685// value will be populated with the request's response once the request completes
3686// successfully.
3687//
3688// Use "Send" method on the returned Request to send the API call to the service.
3689// the "output" return value is not valid until after Send returns without error.
3690//
3691// See CreateThingGroup for more information on using the CreateThingGroup
3692// API call, and error handling.
3693//
3694// This method is useful when you want to inject custom logic or configuration
3695// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3696//
3697//
3698//    // Example sending a request using the CreateThingGroupRequest method.
3699//    req, resp := client.CreateThingGroupRequest(params)
3700//
3701//    err := req.Send()
3702//    if err == nil { // resp is now filled
3703//        fmt.Println(resp)
3704//    }
3705func (c *IoT) CreateThingGroupRequest(input *CreateThingGroupInput) (req *request.Request, output *CreateThingGroupOutput) {
3706	op := &request.Operation{
3707		Name:       opCreateThingGroup,
3708		HTTPMethod: "POST",
3709		HTTPPath:   "/thing-groups/{thingGroupName}",
3710	}
3711
3712	if input == nil {
3713		input = &CreateThingGroupInput{}
3714	}
3715
3716	output = &CreateThingGroupOutput{}
3717	req = c.newRequest(op, input, output)
3718	return
3719}
3720
3721// CreateThingGroup API operation for AWS IoT.
3722//
3723// Create a thing group.
3724//
3725// This is a control plane operation. See Authorization (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html)
3726// for information about authorizing control plane actions.
3727//
3728// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3729// with awserr.Error's Code and Message methods to get detailed information about
3730// the error.
3731//
3732// See the AWS API reference guide for AWS IoT's
3733// API operation CreateThingGroup for usage and error information.
3734//
3735// Returned Error Types:
3736//   * InvalidRequestException
3737//   The request is not valid.
3738//
3739//   * ResourceAlreadyExistsException
3740//   The resource already exists.
3741//
3742//   * ThrottlingException
3743//   The rate exceeds the limit.
3744//
3745//   * InternalFailureException
3746//   An unexpected error has occurred.
3747//
3748func (c *IoT) CreateThingGroup(input *CreateThingGroupInput) (*CreateThingGroupOutput, error) {
3749	req, out := c.CreateThingGroupRequest(input)
3750	return out, req.Send()
3751}
3752
3753// CreateThingGroupWithContext is the same as CreateThingGroup with the addition of
3754// the ability to pass a context and additional request options.
3755//
3756// See CreateThingGroup for details on how to use this API operation.
3757//
3758// The context must be non-nil and will be used for request cancellation. If
3759// the context is nil a panic will occur. In the future the SDK may create
3760// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3761// for more information on using Contexts.
3762func (c *IoT) CreateThingGroupWithContext(ctx aws.Context, input *CreateThingGroupInput, opts ...request.Option) (*CreateThingGroupOutput, error) {
3763	req, out := c.CreateThingGroupRequest(input)
3764	req.SetContext(ctx)
3765	req.ApplyOptions(opts...)
3766	return out, req.Send()
3767}
3768
3769const opCreateThingType = "CreateThingType"
3770
3771// CreateThingTypeRequest generates a "aws/request.Request" representing the
3772// client's request for the CreateThingType operation. The "output" return
3773// value will be populated with the request's response once the request completes
3774// successfully.
3775//
3776// Use "Send" method on the returned Request to send the API call to the service.
3777// the "output" return value is not valid until after Send returns without error.
3778//
3779// See CreateThingType for more information on using the CreateThingType
3780// API call, and error handling.
3781//
3782// This method is useful when you want to inject custom logic or configuration
3783// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3784//
3785//
3786//    // Example sending a request using the CreateThingTypeRequest method.
3787//    req, resp := client.CreateThingTypeRequest(params)
3788//
3789//    err := req.Send()
3790//    if err == nil { // resp is now filled
3791//        fmt.Println(resp)
3792//    }
3793func (c *IoT) CreateThingTypeRequest(input *CreateThingTypeInput) (req *request.Request, output *CreateThingTypeOutput) {
3794	op := &request.Operation{
3795		Name:       opCreateThingType,
3796		HTTPMethod: "POST",
3797		HTTPPath:   "/thing-types/{thingTypeName}",
3798	}
3799
3800	if input == nil {
3801		input = &CreateThingTypeInput{}
3802	}
3803
3804	output = &CreateThingTypeOutput{}
3805	req = c.newRequest(op, input, output)
3806	return
3807}
3808
3809// CreateThingType API operation for AWS IoT.
3810//
3811// Creates a new thing type.
3812//
3813// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3814// with awserr.Error's Code and Message methods to get detailed information about
3815// the error.
3816//
3817// See the AWS API reference guide for AWS IoT's
3818// API operation CreateThingType for usage and error information.
3819//
3820// Returned Error Types:
3821//   * InvalidRequestException
3822//   The request is not valid.
3823//
3824//   * ThrottlingException
3825//   The rate exceeds the limit.
3826//
3827//   * UnauthorizedException
3828//   You are not authorized to perform this operation.
3829//
3830//   * ServiceUnavailableException
3831//   The service is temporarily unavailable.
3832//
3833//   * InternalFailureException
3834//   An unexpected error has occurred.
3835//
3836//   * ResourceAlreadyExistsException
3837//   The resource already exists.
3838//
3839func (c *IoT) CreateThingType(input *CreateThingTypeInput) (*CreateThingTypeOutput, error) {
3840	req, out := c.CreateThingTypeRequest(input)
3841	return out, req.Send()
3842}
3843
3844// CreateThingTypeWithContext is the same as CreateThingType with the addition of
3845// the ability to pass a context and additional request options.
3846//
3847// See CreateThingType for details on how to use this API operation.
3848//
3849// The context must be non-nil and will be used for request cancellation. If
3850// the context is nil a panic will occur. In the future the SDK may create
3851// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3852// for more information on using Contexts.
3853func (c *IoT) CreateThingTypeWithContext(ctx aws.Context, input *CreateThingTypeInput, opts ...request.Option) (*CreateThingTypeOutput, error) {
3854	req, out := c.CreateThingTypeRequest(input)
3855	req.SetContext(ctx)
3856	req.ApplyOptions(opts...)
3857	return out, req.Send()
3858}
3859
3860const opCreateTopicRule = "CreateTopicRule"
3861
3862// CreateTopicRuleRequest generates a "aws/request.Request" representing the
3863// client's request for the CreateTopicRule operation. The "output" return
3864// value will be populated with the request's response once the request completes
3865// successfully.
3866//
3867// Use "Send" method on the returned Request to send the API call to the service.
3868// the "output" return value is not valid until after Send returns without error.
3869//
3870// See CreateTopicRule for more information on using the CreateTopicRule
3871// API call, and error handling.
3872//
3873// This method is useful when you want to inject custom logic or configuration
3874// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3875//
3876//
3877//    // Example sending a request using the CreateTopicRuleRequest method.
3878//    req, resp := client.CreateTopicRuleRequest(params)
3879//
3880//    err := req.Send()
3881//    if err == nil { // resp is now filled
3882//        fmt.Println(resp)
3883//    }
3884func (c *IoT) CreateTopicRuleRequest(input *CreateTopicRuleInput) (req *request.Request, output *CreateTopicRuleOutput) {
3885	op := &request.Operation{
3886		Name:       opCreateTopicRule,
3887		HTTPMethod: "POST",
3888		HTTPPath:   "/rules/{ruleName}",
3889	}
3890
3891	if input == nil {
3892		input = &CreateTopicRuleInput{}
3893	}
3894
3895	output = &CreateTopicRuleOutput{}
3896	req = c.newRequest(op, input, output)
3897	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3898	return
3899}
3900
3901// CreateTopicRule API operation for AWS IoT.
3902//
3903// Creates a rule. Creating rules is an administrator-level action. Any user
3904// who has permission to create rules will be able to access data processed
3905// by the rule.
3906//
3907// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3908// with awserr.Error's Code and Message methods to get detailed information about
3909// the error.
3910//
3911// See the AWS API reference guide for AWS IoT's
3912// API operation CreateTopicRule for usage and error information.
3913//
3914// Returned Error Types:
3915//   * SqlParseException
3916//   The Rule-SQL expression can't be parsed correctly.
3917//
3918//   * InternalException
3919//   An unexpected error has occurred.
3920//
3921//   * InvalidRequestException
3922//   The request is not valid.
3923//
3924//   * ResourceAlreadyExistsException
3925//   The resource already exists.
3926//
3927//   * ServiceUnavailableException
3928//   The service is temporarily unavailable.
3929//
3930//   * ConflictingResourceUpdateException
3931//   A conflicting resource update exception. This exception is thrown when two
3932//   pending updates cause a conflict.
3933//
3934func (c *IoT) CreateTopicRule(input *CreateTopicRuleInput) (*CreateTopicRuleOutput, error) {
3935	req, out := c.CreateTopicRuleRequest(input)
3936	return out, req.Send()
3937}
3938
3939// CreateTopicRuleWithContext is the same as CreateTopicRule with the addition of
3940// the ability to pass a context and additional request options.
3941//
3942// See CreateTopicRule for details on how to use this API operation.
3943//
3944// The context must be non-nil and will be used for request cancellation. If
3945// the context is nil a panic will occur. In the future the SDK may create
3946// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3947// for more information on using Contexts.
3948func (c *IoT) CreateTopicRuleWithContext(ctx aws.Context, input *CreateTopicRuleInput, opts ...request.Option) (*CreateTopicRuleOutput, error) {
3949	req, out := c.CreateTopicRuleRequest(input)
3950	req.SetContext(ctx)
3951	req.ApplyOptions(opts...)
3952	return out, req.Send()
3953}
3954
3955const opCreateTopicRuleDestination = "CreateTopicRuleDestination"
3956
3957// CreateTopicRuleDestinationRequest generates a "aws/request.Request" representing the
3958// client's request for the CreateTopicRuleDestination operation. The "output" return
3959// value will be populated with the request's response once the request completes
3960// successfully.
3961//
3962// Use "Send" method on the returned Request to send the API call to the service.
3963// the "output" return value is not valid until after Send returns without error.
3964//
3965// See CreateTopicRuleDestination for more information on using the CreateTopicRuleDestination
3966// API call, and error handling.
3967//
3968// This method is useful when you want to inject custom logic or configuration
3969// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3970//
3971//
3972//    // Example sending a request using the CreateTopicRuleDestinationRequest method.
3973//    req, resp := client.CreateTopicRuleDestinationRequest(params)
3974//
3975//    err := req.Send()
3976//    if err == nil { // resp is now filled
3977//        fmt.Println(resp)
3978//    }
3979func (c *IoT) CreateTopicRuleDestinationRequest(input *CreateTopicRuleDestinationInput) (req *request.Request, output *CreateTopicRuleDestinationOutput) {
3980	op := &request.Operation{
3981		Name:       opCreateTopicRuleDestination,
3982		HTTPMethod: "POST",
3983		HTTPPath:   "/destinations",
3984	}
3985
3986	if input == nil {
3987		input = &CreateTopicRuleDestinationInput{}
3988	}
3989
3990	output = &CreateTopicRuleDestinationOutput{}
3991	req = c.newRequest(op, input, output)
3992	return
3993}
3994
3995// CreateTopicRuleDestination API operation for AWS IoT.
3996//
3997// Creates a topic rule destination. The destination must be confirmed prior
3998// to use.
3999//
4000// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4001// with awserr.Error's Code and Message methods to get detailed information about
4002// the error.
4003//
4004// See the AWS API reference guide for AWS IoT's
4005// API operation CreateTopicRuleDestination for usage and error information.
4006//
4007// Returned Error Types:
4008//   * InternalException
4009//   An unexpected error has occurred.
4010//
4011//   * InvalidRequestException
4012//   The request is not valid.
4013//
4014//   * ResourceAlreadyExistsException
4015//   The resource already exists.
4016//
4017//   * ServiceUnavailableException
4018//   The service is temporarily unavailable.
4019//
4020//   * ConflictingResourceUpdateException
4021//   A conflicting resource update exception. This exception is thrown when two
4022//   pending updates cause a conflict.
4023//
4024func (c *IoT) CreateTopicRuleDestination(input *CreateTopicRuleDestinationInput) (*CreateTopicRuleDestinationOutput, error) {
4025	req, out := c.CreateTopicRuleDestinationRequest(input)
4026	return out, req.Send()
4027}
4028
4029// CreateTopicRuleDestinationWithContext is the same as CreateTopicRuleDestination with the addition of
4030// the ability to pass a context and additional request options.
4031//
4032// See CreateTopicRuleDestination for details on how to use this API operation.
4033//
4034// The context must be non-nil and will be used for request cancellation. If
4035// the context is nil a panic will occur. In the future the SDK may create
4036// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4037// for more information on using Contexts.
4038func (c *IoT) CreateTopicRuleDestinationWithContext(ctx aws.Context, input *CreateTopicRuleDestinationInput, opts ...request.Option) (*CreateTopicRuleDestinationOutput, error) {
4039	req, out := c.CreateTopicRuleDestinationRequest(input)
4040	req.SetContext(ctx)
4041	req.ApplyOptions(opts...)
4042	return out, req.Send()
4043}
4044
4045const opDeleteAccountAuditConfiguration = "DeleteAccountAuditConfiguration"
4046
4047// DeleteAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
4048// client's request for the DeleteAccountAuditConfiguration operation. The "output" return
4049// value will be populated with the request's response once the request completes
4050// successfully.
4051//
4052// Use "Send" method on the returned Request to send the API call to the service.
4053// the "output" return value is not valid until after Send returns without error.
4054//
4055// See DeleteAccountAuditConfiguration for more information on using the DeleteAccountAuditConfiguration
4056// API call, and error handling.
4057//
4058// This method is useful when you want to inject custom logic or configuration
4059// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4060//
4061//
4062//    // Example sending a request using the DeleteAccountAuditConfigurationRequest method.
4063//    req, resp := client.DeleteAccountAuditConfigurationRequest(params)
4064//
4065//    err := req.Send()
4066//    if err == nil { // resp is now filled
4067//        fmt.Println(resp)
4068//    }
4069func (c *IoT) DeleteAccountAuditConfigurationRequest(input *DeleteAccountAuditConfigurationInput) (req *request.Request, output *DeleteAccountAuditConfigurationOutput) {
4070	op := &request.Operation{
4071		Name:       opDeleteAccountAuditConfiguration,
4072		HTTPMethod: "DELETE",
4073		HTTPPath:   "/audit/configuration",
4074	}
4075
4076	if input == nil {
4077		input = &DeleteAccountAuditConfigurationInput{}
4078	}
4079
4080	output = &DeleteAccountAuditConfigurationOutput{}
4081	req = c.newRequest(op, input, output)
4082	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4083	return
4084}
4085
4086// DeleteAccountAuditConfiguration API operation for AWS IoT.
4087//
4088// Restores the default settings for Device Defender audits for this account.
4089// Any configuration data you entered is deleted and all audit checks are reset
4090// to disabled.
4091//
4092// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4093// with awserr.Error's Code and Message methods to get detailed information about
4094// the error.
4095//
4096// See the AWS API reference guide for AWS IoT's
4097// API operation DeleteAccountAuditConfiguration for usage and error information.
4098//
4099// Returned Error Types:
4100//   * InvalidRequestException
4101//   The request is not valid.
4102//
4103//   * ResourceNotFoundException
4104//   The specified resource does not exist.
4105//
4106//   * ThrottlingException
4107//   The rate exceeds the limit.
4108//
4109//   * InternalFailureException
4110//   An unexpected error has occurred.
4111//
4112func (c *IoT) DeleteAccountAuditConfiguration(input *DeleteAccountAuditConfigurationInput) (*DeleteAccountAuditConfigurationOutput, error) {
4113	req, out := c.DeleteAccountAuditConfigurationRequest(input)
4114	return out, req.Send()
4115}
4116
4117// DeleteAccountAuditConfigurationWithContext is the same as DeleteAccountAuditConfiguration with the addition of
4118// the ability to pass a context and additional request options.
4119//
4120// See DeleteAccountAuditConfiguration for details on how to use this API operation.
4121//
4122// The context must be non-nil and will be used for request cancellation. If
4123// the context is nil a panic will occur. In the future the SDK may create
4124// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4125// for more information on using Contexts.
4126func (c *IoT) DeleteAccountAuditConfigurationWithContext(ctx aws.Context, input *DeleteAccountAuditConfigurationInput, opts ...request.Option) (*DeleteAccountAuditConfigurationOutput, error) {
4127	req, out := c.DeleteAccountAuditConfigurationRequest(input)
4128	req.SetContext(ctx)
4129	req.ApplyOptions(opts...)
4130	return out, req.Send()
4131}
4132
4133const opDeleteAuditSuppression = "DeleteAuditSuppression"
4134
4135// DeleteAuditSuppressionRequest generates a "aws/request.Request" representing the
4136// client's request for the DeleteAuditSuppression operation. The "output" return
4137// value will be populated with the request's response once the request completes
4138// successfully.
4139//
4140// Use "Send" method on the returned Request to send the API call to the service.
4141// the "output" return value is not valid until after Send returns without error.
4142//
4143// See DeleteAuditSuppression for more information on using the DeleteAuditSuppression
4144// API call, and error handling.
4145//
4146// This method is useful when you want to inject custom logic or configuration
4147// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4148//
4149//
4150//    // Example sending a request using the DeleteAuditSuppressionRequest method.
4151//    req, resp := client.DeleteAuditSuppressionRequest(params)
4152//
4153//    err := req.Send()
4154//    if err == nil { // resp is now filled
4155//        fmt.Println(resp)
4156//    }
4157func (c *IoT) DeleteAuditSuppressionRequest(input *DeleteAuditSuppressionInput) (req *request.Request, output *DeleteAuditSuppressionOutput) {
4158	op := &request.Operation{
4159		Name:       opDeleteAuditSuppression,
4160		HTTPMethod: "POST",
4161		HTTPPath:   "/audit/suppressions/delete",
4162	}
4163
4164	if input == nil {
4165		input = &DeleteAuditSuppressionInput{}
4166	}
4167
4168	output = &DeleteAuditSuppressionOutput{}
4169	req = c.newRequest(op, input, output)
4170	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4171	return
4172}
4173
4174// DeleteAuditSuppression API operation for AWS IoT.
4175//
4176// Deletes a Device Defender audit suppression.
4177//
4178// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4179// with awserr.Error's Code and Message methods to get detailed information about
4180// the error.
4181//
4182// See the AWS API reference guide for AWS IoT's
4183// API operation DeleteAuditSuppression for usage and error information.
4184//
4185// Returned Error Types:
4186//   * InvalidRequestException
4187//   The request is not valid.
4188//
4189//   * ThrottlingException
4190//   The rate exceeds the limit.
4191//
4192//   * InternalFailureException
4193//   An unexpected error has occurred.
4194//
4195func (c *IoT) DeleteAuditSuppression(input *DeleteAuditSuppressionInput) (*DeleteAuditSuppressionOutput, error) {
4196	req, out := c.DeleteAuditSuppressionRequest(input)
4197	return out, req.Send()
4198}
4199
4200// DeleteAuditSuppressionWithContext is the same as DeleteAuditSuppression with the addition of
4201// the ability to pass a context and additional request options.
4202//
4203// See DeleteAuditSuppression for details on how to use this API operation.
4204//
4205// The context must be non-nil and will be used for request cancellation. If
4206// the context is nil a panic will occur. In the future the SDK may create
4207// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4208// for more information on using Contexts.
4209func (c *IoT) DeleteAuditSuppressionWithContext(ctx aws.Context, input *DeleteAuditSuppressionInput, opts ...request.Option) (*DeleteAuditSuppressionOutput, error) {
4210	req, out := c.DeleteAuditSuppressionRequest(input)
4211	req.SetContext(ctx)
4212	req.ApplyOptions(opts...)
4213	return out, req.Send()
4214}
4215
4216const opDeleteAuthorizer = "DeleteAuthorizer"
4217
4218// DeleteAuthorizerRequest generates a "aws/request.Request" representing the
4219// client's request for the DeleteAuthorizer operation. The "output" return
4220// value will be populated with the request's response once the request completes
4221// successfully.
4222//
4223// Use "Send" method on the returned Request to send the API call to the service.
4224// the "output" return value is not valid until after Send returns without error.
4225//
4226// See DeleteAuthorizer for more information on using the DeleteAuthorizer
4227// API call, and error handling.
4228//
4229// This method is useful when you want to inject custom logic or configuration
4230// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4231//
4232//
4233//    // Example sending a request using the DeleteAuthorizerRequest method.
4234//    req, resp := client.DeleteAuthorizerRequest(params)
4235//
4236//    err := req.Send()
4237//    if err == nil { // resp is now filled
4238//        fmt.Println(resp)
4239//    }
4240func (c *IoT) DeleteAuthorizerRequest(input *DeleteAuthorizerInput) (req *request.Request, output *DeleteAuthorizerOutput) {
4241	op := &request.Operation{
4242		Name:       opDeleteAuthorizer,
4243		HTTPMethod: "DELETE",
4244		HTTPPath:   "/authorizer/{authorizerName}",
4245	}
4246
4247	if input == nil {
4248		input = &DeleteAuthorizerInput{}
4249	}
4250
4251	output = &DeleteAuthorizerOutput{}
4252	req = c.newRequest(op, input, output)
4253	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4254	return
4255}
4256
4257// DeleteAuthorizer API operation for AWS IoT.
4258//
4259// Deletes an authorizer.
4260//
4261// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4262// with awserr.Error's Code and Message methods to get detailed information about
4263// the error.
4264//
4265// See the AWS API reference guide for AWS IoT's
4266// API operation DeleteAuthorizer for usage and error information.
4267//
4268// Returned Error Types:
4269//   * DeleteConflictException
4270//   You can't delete the resource because it is attached to one or more resources.
4271//
4272//   * ResourceNotFoundException
4273//   The specified resource does not exist.
4274//
4275//   * InvalidRequestException
4276//   The request is not valid.
4277//
4278//   * ThrottlingException
4279//   The rate exceeds the limit.
4280//
4281//   * UnauthorizedException
4282//   You are not authorized to perform this operation.
4283//
4284//   * ServiceUnavailableException
4285//   The service is temporarily unavailable.
4286//
4287//   * InternalFailureException
4288//   An unexpected error has occurred.
4289//
4290func (c *IoT) DeleteAuthorizer(input *DeleteAuthorizerInput) (*DeleteAuthorizerOutput, error) {
4291	req, out := c.DeleteAuthorizerRequest(input)
4292	return out, req.Send()
4293}
4294
4295// DeleteAuthorizerWithContext is the same as DeleteAuthorizer with the addition of
4296// the ability to pass a context and additional request options.
4297//
4298// See DeleteAuthorizer for details on how to use this API operation.
4299//
4300// The context must be non-nil and will be used for request cancellation. If
4301// the context is nil a panic will occur. In the future the SDK may create
4302// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4303// for more information on using Contexts.
4304func (c *IoT) DeleteAuthorizerWithContext(ctx aws.Context, input *DeleteAuthorizerInput, opts ...request.Option) (*DeleteAuthorizerOutput, error) {
4305	req, out := c.DeleteAuthorizerRequest(input)
4306	req.SetContext(ctx)
4307	req.ApplyOptions(opts...)
4308	return out, req.Send()
4309}
4310
4311const opDeleteBillingGroup = "DeleteBillingGroup"
4312
4313// DeleteBillingGroupRequest generates a "aws/request.Request" representing the
4314// client's request for the DeleteBillingGroup operation. The "output" return
4315// value will be populated with the request's response once the request completes
4316// successfully.
4317//
4318// Use "Send" method on the returned Request to send the API call to the service.
4319// the "output" return value is not valid until after Send returns without error.
4320//
4321// See DeleteBillingGroup for more information on using the DeleteBillingGroup
4322// API call, and error handling.
4323//
4324// This method is useful when you want to inject custom logic or configuration
4325// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4326//
4327//
4328//    // Example sending a request using the DeleteBillingGroupRequest method.
4329//    req, resp := client.DeleteBillingGroupRequest(params)
4330//
4331//    err := req.Send()
4332//    if err == nil { // resp is now filled
4333//        fmt.Println(resp)
4334//    }
4335func (c *IoT) DeleteBillingGroupRequest(input *DeleteBillingGroupInput) (req *request.Request, output *DeleteBillingGroupOutput) {
4336	op := &request.Operation{
4337		Name:       opDeleteBillingGroup,
4338		HTTPMethod: "DELETE",
4339		HTTPPath:   "/billing-groups/{billingGroupName}",
4340	}
4341
4342	if input == nil {
4343		input = &DeleteBillingGroupInput{}
4344	}
4345
4346	output = &DeleteBillingGroupOutput{}
4347	req = c.newRequest(op, input, output)
4348	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4349	return
4350}
4351
4352// DeleteBillingGroup API operation for AWS IoT.
4353//
4354// Deletes the billing group.
4355//
4356// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4357// with awserr.Error's Code and Message methods to get detailed information about
4358// the error.
4359//
4360// See the AWS API reference guide for AWS IoT's
4361// API operation DeleteBillingGroup for usage and error information.
4362//
4363// Returned Error Types:
4364//   * InvalidRequestException
4365//   The request is not valid.
4366//
4367//   * VersionConflictException
4368//   An exception thrown when the version of an entity specified with the expectedVersion
4369//   parameter does not match the latest version in the system.
4370//
4371//   * ThrottlingException
4372//   The rate exceeds the limit.
4373//
4374//   * InternalFailureException
4375//   An unexpected error has occurred.
4376//
4377func (c *IoT) DeleteBillingGroup(input *DeleteBillingGroupInput) (*DeleteBillingGroupOutput, error) {
4378	req, out := c.DeleteBillingGroupRequest(input)
4379	return out, req.Send()
4380}
4381
4382// DeleteBillingGroupWithContext is the same as DeleteBillingGroup with the addition of
4383// the ability to pass a context and additional request options.
4384//
4385// See DeleteBillingGroup for details on how to use this API operation.
4386//
4387// The context must be non-nil and will be used for request cancellation. If
4388// the context is nil a panic will occur. In the future the SDK may create
4389// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4390// for more information on using Contexts.
4391func (c *IoT) DeleteBillingGroupWithContext(ctx aws.Context, input *DeleteBillingGroupInput, opts ...request.Option) (*DeleteBillingGroupOutput, error) {
4392	req, out := c.DeleteBillingGroupRequest(input)
4393	req.SetContext(ctx)
4394	req.ApplyOptions(opts...)
4395	return out, req.Send()
4396}
4397
4398const opDeleteCACertificate = "DeleteCACertificate"
4399
4400// DeleteCACertificateRequest generates a "aws/request.Request" representing the
4401// client's request for the DeleteCACertificate operation. The "output" return
4402// value will be populated with the request's response once the request completes
4403// successfully.
4404//
4405// Use "Send" method on the returned Request to send the API call to the service.
4406// the "output" return value is not valid until after Send returns without error.
4407//
4408// See DeleteCACertificate for more information on using the DeleteCACertificate
4409// API call, and error handling.
4410//
4411// This method is useful when you want to inject custom logic or configuration
4412// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4413//
4414//
4415//    // Example sending a request using the DeleteCACertificateRequest method.
4416//    req, resp := client.DeleteCACertificateRequest(params)
4417//
4418//    err := req.Send()
4419//    if err == nil { // resp is now filled
4420//        fmt.Println(resp)
4421//    }
4422func (c *IoT) DeleteCACertificateRequest(input *DeleteCACertificateInput) (req *request.Request, output *DeleteCACertificateOutput) {
4423	op := &request.Operation{
4424		Name:       opDeleteCACertificate,
4425		HTTPMethod: "DELETE",
4426		HTTPPath:   "/cacertificate/{caCertificateId}",
4427	}
4428
4429	if input == nil {
4430		input = &DeleteCACertificateInput{}
4431	}
4432
4433	output = &DeleteCACertificateOutput{}
4434	req = c.newRequest(op, input, output)
4435	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4436	return
4437}
4438
4439// DeleteCACertificate API operation for AWS IoT.
4440//
4441// Deletes a registered CA certificate.
4442//
4443// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4444// with awserr.Error's Code and Message methods to get detailed information about
4445// the error.
4446//
4447// See the AWS API reference guide for AWS IoT's
4448// API operation DeleteCACertificate for usage and error information.
4449//
4450// Returned Error Types:
4451//   * InvalidRequestException
4452//   The request is not valid.
4453//
4454//   * CertificateStateException
4455//   The certificate operation is not allowed.
4456//
4457//   * ThrottlingException
4458//   The rate exceeds the limit.
4459//
4460//   * UnauthorizedException
4461//   You are not authorized to perform this operation.
4462//
4463//   * ServiceUnavailableException
4464//   The service is temporarily unavailable.
4465//
4466//   * InternalFailureException
4467//   An unexpected error has occurred.
4468//
4469//   * ResourceNotFoundException
4470//   The specified resource does not exist.
4471//
4472func (c *IoT) DeleteCACertificate(input *DeleteCACertificateInput) (*DeleteCACertificateOutput, error) {
4473	req, out := c.DeleteCACertificateRequest(input)
4474	return out, req.Send()
4475}
4476
4477// DeleteCACertificateWithContext is the same as DeleteCACertificate with the addition of
4478// the ability to pass a context and additional request options.
4479//
4480// See DeleteCACertificate for details on how to use this API operation.
4481//
4482// The context must be non-nil and will be used for request cancellation. If
4483// the context is nil a panic will occur. In the future the SDK may create
4484// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4485// for more information on using Contexts.
4486func (c *IoT) DeleteCACertificateWithContext(ctx aws.Context, input *DeleteCACertificateInput, opts ...request.Option) (*DeleteCACertificateOutput, error) {
4487	req, out := c.DeleteCACertificateRequest(input)
4488	req.SetContext(ctx)
4489	req.ApplyOptions(opts...)
4490	return out, req.Send()
4491}
4492
4493const opDeleteCertificate = "DeleteCertificate"
4494
4495// DeleteCertificateRequest generates a "aws/request.Request" representing the
4496// client's request for the DeleteCertificate operation. The "output" return
4497// value will be populated with the request's response once the request completes
4498// successfully.
4499//
4500// Use "Send" method on the returned Request to send the API call to the service.
4501// the "output" return value is not valid until after Send returns without error.
4502//
4503// See DeleteCertificate for more information on using the DeleteCertificate
4504// API call, and error handling.
4505//
4506// This method is useful when you want to inject custom logic or configuration
4507// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4508//
4509//
4510//    // Example sending a request using the DeleteCertificateRequest method.
4511//    req, resp := client.DeleteCertificateRequest(params)
4512//
4513//    err := req.Send()
4514//    if err == nil { // resp is now filled
4515//        fmt.Println(resp)
4516//    }
4517func (c *IoT) DeleteCertificateRequest(input *DeleteCertificateInput) (req *request.Request, output *DeleteCertificateOutput) {
4518	op := &request.Operation{
4519		Name:       opDeleteCertificate,
4520		HTTPMethod: "DELETE",
4521		HTTPPath:   "/certificates/{certificateId}",
4522	}
4523
4524	if input == nil {
4525		input = &DeleteCertificateInput{}
4526	}
4527
4528	output = &DeleteCertificateOutput{}
4529	req = c.newRequest(op, input, output)
4530	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4531	return
4532}
4533
4534// DeleteCertificate API operation for AWS IoT.
4535//
4536// Deletes the specified certificate.
4537//
4538// A certificate cannot be deleted if it has a policy or IoT thing attached
4539// to it or if its status is set to ACTIVE. To delete a certificate, first use
4540// the DetachPrincipalPolicy API to detach all policies. Next, use the UpdateCertificate
4541// API to set the certificate to the INACTIVE status.
4542//
4543// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4544// with awserr.Error's Code and Message methods to get detailed information about
4545// the error.
4546//
4547// See the AWS API reference guide for AWS IoT's
4548// API operation DeleteCertificate for usage and error information.
4549//
4550// Returned Error Types:
4551//   * CertificateStateException
4552//   The certificate operation is not allowed.
4553//
4554//   * DeleteConflictException
4555//   You can't delete the resource because it is attached to one or more resources.
4556//
4557//   * InvalidRequestException
4558//   The request is not valid.
4559//
4560//   * ThrottlingException
4561//   The rate exceeds the limit.
4562//
4563//   * UnauthorizedException
4564//   You are not authorized to perform this operation.
4565//
4566//   * ServiceUnavailableException
4567//   The service is temporarily unavailable.
4568//
4569//   * InternalFailureException
4570//   An unexpected error has occurred.
4571//
4572//   * ResourceNotFoundException
4573//   The specified resource does not exist.
4574//
4575func (c *IoT) DeleteCertificate(input *DeleteCertificateInput) (*DeleteCertificateOutput, error) {
4576	req, out := c.DeleteCertificateRequest(input)
4577	return out, req.Send()
4578}
4579
4580// DeleteCertificateWithContext is the same as DeleteCertificate with the addition of
4581// the ability to pass a context and additional request options.
4582//
4583// See DeleteCertificate 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) DeleteCertificateWithContext(ctx aws.Context, input *DeleteCertificateInput, opts ...request.Option) (*DeleteCertificateOutput, error) {
4590	req, out := c.DeleteCertificateRequest(input)
4591	req.SetContext(ctx)
4592	req.ApplyOptions(opts...)
4593	return out, req.Send()
4594}
4595
4596const opDeleteCustomMetric = "DeleteCustomMetric"
4597
4598// DeleteCustomMetricRequest generates a "aws/request.Request" representing the
4599// client's request for the DeleteCustomMetric 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 DeleteCustomMetric for more information on using the DeleteCustomMetric
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 DeleteCustomMetricRequest method.
4614//    req, resp := client.DeleteCustomMetricRequest(params)
4615//
4616//    err := req.Send()
4617//    if err == nil { // resp is now filled
4618//        fmt.Println(resp)
4619//    }
4620func (c *IoT) DeleteCustomMetricRequest(input *DeleteCustomMetricInput) (req *request.Request, output *DeleteCustomMetricOutput) {
4621	op := &request.Operation{
4622		Name:       opDeleteCustomMetric,
4623		HTTPMethod: "DELETE",
4624		HTTPPath:   "/custom-metric/{metricName}",
4625	}
4626
4627	if input == nil {
4628		input = &DeleteCustomMetricInput{}
4629	}
4630
4631	output = &DeleteCustomMetricOutput{}
4632	req = c.newRequest(op, input, output)
4633	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4634	return
4635}
4636
4637// DeleteCustomMetric API operation for AWS IoT.
4638//
4639//
4640// Before you can delete a custom metric, you must first remove the custom metric
4641// from all security profiles it's a part of. The security profile associated
4642// with the custom metric can be found using the ListSecurityProfiles (https://docs.aws.amazon.com/iot/latest/apireference/API_ListSecurityProfiles.html)
4643// API with metricName set to your custom metric name.
4644//
4645// Deletes a Device Defender detect custom metric.
4646//
4647// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4648// with awserr.Error's Code and Message methods to get detailed information about
4649// the error.
4650//
4651// See the AWS API reference guide for AWS IoT's
4652// API operation DeleteCustomMetric for usage and error information.
4653//
4654// Returned Error Types:
4655//   * InvalidRequestException
4656//   The request is not valid.
4657//
4658//   * ThrottlingException
4659//   The rate exceeds the limit.
4660//
4661//   * InternalFailureException
4662//   An unexpected error has occurred.
4663//
4664func (c *IoT) DeleteCustomMetric(input *DeleteCustomMetricInput) (*DeleteCustomMetricOutput, error) {
4665	req, out := c.DeleteCustomMetricRequest(input)
4666	return out, req.Send()
4667}
4668
4669// DeleteCustomMetricWithContext is the same as DeleteCustomMetric with the addition of
4670// the ability to pass a context and additional request options.
4671//
4672// See DeleteCustomMetric for details on how to use this API operation.
4673//
4674// The context must be non-nil and will be used for request cancellation. If
4675// the context is nil a panic will occur. In the future the SDK may create
4676// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4677// for more information on using Contexts.
4678func (c *IoT) DeleteCustomMetricWithContext(ctx aws.Context, input *DeleteCustomMetricInput, opts ...request.Option) (*DeleteCustomMetricOutput, error) {
4679	req, out := c.DeleteCustomMetricRequest(input)
4680	req.SetContext(ctx)
4681	req.ApplyOptions(opts...)
4682	return out, req.Send()
4683}
4684
4685const opDeleteDimension = "DeleteDimension"
4686
4687// DeleteDimensionRequest generates a "aws/request.Request" representing the
4688// client's request for the DeleteDimension operation. The "output" return
4689// value will be populated with the request's response once the request completes
4690// successfully.
4691//
4692// Use "Send" method on the returned Request to send the API call to the service.
4693// the "output" return value is not valid until after Send returns without error.
4694//
4695// See DeleteDimension for more information on using the DeleteDimension
4696// API call, and error handling.
4697//
4698// This method is useful when you want to inject custom logic or configuration
4699// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4700//
4701//
4702//    // Example sending a request using the DeleteDimensionRequest method.
4703//    req, resp := client.DeleteDimensionRequest(params)
4704//
4705//    err := req.Send()
4706//    if err == nil { // resp is now filled
4707//        fmt.Println(resp)
4708//    }
4709func (c *IoT) DeleteDimensionRequest(input *DeleteDimensionInput) (req *request.Request, output *DeleteDimensionOutput) {
4710	op := &request.Operation{
4711		Name:       opDeleteDimension,
4712		HTTPMethod: "DELETE",
4713		HTTPPath:   "/dimensions/{name}",
4714	}
4715
4716	if input == nil {
4717		input = &DeleteDimensionInput{}
4718	}
4719
4720	output = &DeleteDimensionOutput{}
4721	req = c.newRequest(op, input, output)
4722	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4723	return
4724}
4725
4726// DeleteDimension API operation for AWS IoT.
4727//
4728// Removes the specified dimension from your AWS account.
4729//
4730// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4731// with awserr.Error's Code and Message methods to get detailed information about
4732// the error.
4733//
4734// See the AWS API reference guide for AWS IoT's
4735// API operation DeleteDimension for usage and error information.
4736//
4737// Returned Error Types:
4738//   * InternalFailureException
4739//   An unexpected error has occurred.
4740//
4741//   * InvalidRequestException
4742//   The request is not valid.
4743//
4744//   * ThrottlingException
4745//   The rate exceeds the limit.
4746//
4747func (c *IoT) DeleteDimension(input *DeleteDimensionInput) (*DeleteDimensionOutput, error) {
4748	req, out := c.DeleteDimensionRequest(input)
4749	return out, req.Send()
4750}
4751
4752// DeleteDimensionWithContext is the same as DeleteDimension with the addition of
4753// the ability to pass a context and additional request options.
4754//
4755// See DeleteDimension for details on how to use this API operation.
4756//
4757// The context must be non-nil and will be used for request cancellation. If
4758// the context is nil a panic will occur. In the future the SDK may create
4759// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4760// for more information on using Contexts.
4761func (c *IoT) DeleteDimensionWithContext(ctx aws.Context, input *DeleteDimensionInput, opts ...request.Option) (*DeleteDimensionOutput, error) {
4762	req, out := c.DeleteDimensionRequest(input)
4763	req.SetContext(ctx)
4764	req.ApplyOptions(opts...)
4765	return out, req.Send()
4766}
4767
4768const opDeleteDomainConfiguration = "DeleteDomainConfiguration"
4769
4770// DeleteDomainConfigurationRequest generates a "aws/request.Request" representing the
4771// client's request for the DeleteDomainConfiguration operation. The "output" return
4772// value will be populated with the request's response once the request completes
4773// successfully.
4774//
4775// Use "Send" method on the returned Request to send the API call to the service.
4776// the "output" return value is not valid until after Send returns without error.
4777//
4778// See DeleteDomainConfiguration for more information on using the DeleteDomainConfiguration
4779// API call, and error handling.
4780//
4781// This method is useful when you want to inject custom logic or configuration
4782// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4783//
4784//
4785//    // Example sending a request using the DeleteDomainConfigurationRequest method.
4786//    req, resp := client.DeleteDomainConfigurationRequest(params)
4787//
4788//    err := req.Send()
4789//    if err == nil { // resp is now filled
4790//        fmt.Println(resp)
4791//    }
4792func (c *IoT) DeleteDomainConfigurationRequest(input *DeleteDomainConfigurationInput) (req *request.Request, output *DeleteDomainConfigurationOutput) {
4793	op := &request.Operation{
4794		Name:       opDeleteDomainConfiguration,
4795		HTTPMethod: "DELETE",
4796		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
4797	}
4798
4799	if input == nil {
4800		input = &DeleteDomainConfigurationInput{}
4801	}
4802
4803	output = &DeleteDomainConfigurationOutput{}
4804	req = c.newRequest(op, input, output)
4805	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4806	return
4807}
4808
4809// DeleteDomainConfiguration API operation for AWS IoT.
4810//
4811// Deletes the specified domain configuration.
4812//
4813// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4814// with awserr.Error's Code and Message methods to get detailed information about
4815// the error.
4816//
4817// See the AWS API reference guide for AWS IoT's
4818// API operation DeleteDomainConfiguration for usage and error information.
4819//
4820// Returned Error Types:
4821//   * ResourceNotFoundException
4822//   The specified resource does not exist.
4823//
4824//   * ThrottlingException
4825//   The rate exceeds the limit.
4826//
4827//   * UnauthorizedException
4828//   You are not authorized to perform this operation.
4829//
4830//   * ServiceUnavailableException
4831//   The service is temporarily unavailable.
4832//
4833//   * InternalFailureException
4834//   An unexpected error has occurred.
4835//
4836//   * InvalidRequestException
4837//   The request is not valid.
4838//
4839func (c *IoT) DeleteDomainConfiguration(input *DeleteDomainConfigurationInput) (*DeleteDomainConfigurationOutput, error) {
4840	req, out := c.DeleteDomainConfigurationRequest(input)
4841	return out, req.Send()
4842}
4843
4844// DeleteDomainConfigurationWithContext is the same as DeleteDomainConfiguration with the addition of
4845// the ability to pass a context and additional request options.
4846//
4847// See DeleteDomainConfiguration 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) DeleteDomainConfigurationWithContext(ctx aws.Context, input *DeleteDomainConfigurationInput, opts ...request.Option) (*DeleteDomainConfigurationOutput, error) {
4854	req, out := c.DeleteDomainConfigurationRequest(input)
4855	req.SetContext(ctx)
4856	req.ApplyOptions(opts...)
4857	return out, req.Send()
4858}
4859
4860const opDeleteDynamicThingGroup = "DeleteDynamicThingGroup"
4861
4862// DeleteDynamicThingGroupRequest generates a "aws/request.Request" representing the
4863// client's request for the DeleteDynamicThingGroup 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 DeleteDynamicThingGroup for more information on using the DeleteDynamicThingGroup
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 DeleteDynamicThingGroupRequest method.
4878//    req, resp := client.DeleteDynamicThingGroupRequest(params)
4879//
4880//    err := req.Send()
4881//    if err == nil { // resp is now filled
4882//        fmt.Println(resp)
4883//    }
4884func (c *IoT) DeleteDynamicThingGroupRequest(input *DeleteDynamicThingGroupInput) (req *request.Request, output *DeleteDynamicThingGroupOutput) {
4885	op := &request.Operation{
4886		Name:       opDeleteDynamicThingGroup,
4887		HTTPMethod: "DELETE",
4888		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
4889	}
4890
4891	if input == nil {
4892		input = &DeleteDynamicThingGroupInput{}
4893	}
4894
4895	output = &DeleteDynamicThingGroupOutput{}
4896	req = c.newRequest(op, input, output)
4897	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4898	return
4899}
4900
4901// DeleteDynamicThingGroup API operation for AWS IoT.
4902//
4903// Deletes a dynamic thing group.
4904//
4905// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4906// with awserr.Error's Code and Message methods to get detailed information about
4907// the error.
4908//
4909// See the AWS API reference guide for AWS IoT's
4910// API operation DeleteDynamicThingGroup for usage and error information.
4911//
4912// Returned Error Types:
4913//   * InvalidRequestException
4914//   The request is not valid.
4915//
4916//   * VersionConflictException
4917//   An exception thrown when the version of an entity specified with the expectedVersion
4918//   parameter does not match the latest version in the system.
4919//
4920//   * ThrottlingException
4921//   The rate exceeds the limit.
4922//
4923//   * InternalFailureException
4924//   An unexpected error has occurred.
4925//
4926func (c *IoT) DeleteDynamicThingGroup(input *DeleteDynamicThingGroupInput) (*DeleteDynamicThingGroupOutput, error) {
4927	req, out := c.DeleteDynamicThingGroupRequest(input)
4928	return out, req.Send()
4929}
4930
4931// DeleteDynamicThingGroupWithContext is the same as DeleteDynamicThingGroup with the addition of
4932// the ability to pass a context and additional request options.
4933//
4934// See DeleteDynamicThingGroup for details on how to use this API operation.
4935//
4936// The context must be non-nil and will be used for request cancellation. If
4937// the context is nil a panic will occur. In the future the SDK may create
4938// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4939// for more information on using Contexts.
4940func (c *IoT) DeleteDynamicThingGroupWithContext(ctx aws.Context, input *DeleteDynamicThingGroupInput, opts ...request.Option) (*DeleteDynamicThingGroupOutput, error) {
4941	req, out := c.DeleteDynamicThingGroupRequest(input)
4942	req.SetContext(ctx)
4943	req.ApplyOptions(opts...)
4944	return out, req.Send()
4945}
4946
4947const opDeleteJob = "DeleteJob"
4948
4949// DeleteJobRequest generates a "aws/request.Request" representing the
4950// client's request for the DeleteJob operation. The "output" return
4951// value will be populated with the request's response once the request completes
4952// successfully.
4953//
4954// Use "Send" method on the returned Request to send the API call to the service.
4955// the "output" return value is not valid until after Send returns without error.
4956//
4957// See DeleteJob for more information on using the DeleteJob
4958// API call, and error handling.
4959//
4960// This method is useful when you want to inject custom logic or configuration
4961// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4962//
4963//
4964//    // Example sending a request using the DeleteJobRequest method.
4965//    req, resp := client.DeleteJobRequest(params)
4966//
4967//    err := req.Send()
4968//    if err == nil { // resp is now filled
4969//        fmt.Println(resp)
4970//    }
4971func (c *IoT) DeleteJobRequest(input *DeleteJobInput) (req *request.Request, output *DeleteJobOutput) {
4972	op := &request.Operation{
4973		Name:       opDeleteJob,
4974		HTTPMethod: "DELETE",
4975		HTTPPath:   "/jobs/{jobId}",
4976	}
4977
4978	if input == nil {
4979		input = &DeleteJobInput{}
4980	}
4981
4982	output = &DeleteJobOutput{}
4983	req = c.newRequest(op, input, output)
4984	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4985	return
4986}
4987
4988// DeleteJob API operation for AWS IoT.
4989//
4990// Deletes a job and its related job executions.
4991//
4992// Deleting a job may take time, depending on the number of job executions created
4993// for the job and various other factors. While the job is being deleted, the
4994// status of the job will be shown as "DELETION_IN_PROGRESS". Attempting to
4995// delete or cancel a job whose status is already "DELETION_IN_PROGRESS" will
4996// result in an error.
4997//
4998// Only 10 jobs may have status "DELETION_IN_PROGRESS" at the same time, or
4999// a LimitExceededException will occur.
5000//
5001// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5002// with awserr.Error's Code and Message methods to get detailed information about
5003// the error.
5004//
5005// See the AWS API reference guide for AWS IoT's
5006// API operation DeleteJob for usage and error information.
5007//
5008// Returned Error Types:
5009//   * InvalidRequestException
5010//   The request is not valid.
5011//
5012//   * InvalidStateTransitionException
5013//   An attempt was made to change to an invalid state, for example by deleting
5014//   a job or a job execution which is "IN_PROGRESS" without setting the force
5015//   parameter.
5016//
5017//   * ResourceNotFoundException
5018//   The specified resource does not exist.
5019//
5020//   * LimitExceededException
5021//   A limit has been exceeded.
5022//
5023//   * ThrottlingException
5024//   The rate exceeds the limit.
5025//
5026//   * ServiceUnavailableException
5027//   The service is temporarily unavailable.
5028//
5029func (c *IoT) DeleteJob(input *DeleteJobInput) (*DeleteJobOutput, error) {
5030	req, out := c.DeleteJobRequest(input)
5031	return out, req.Send()
5032}
5033
5034// DeleteJobWithContext is the same as DeleteJob with the addition of
5035// the ability to pass a context and additional request options.
5036//
5037// See DeleteJob for details on how to use this API operation.
5038//
5039// The context must be non-nil and will be used for request cancellation. If
5040// the context is nil a panic will occur. In the future the SDK may create
5041// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5042// for more information on using Contexts.
5043func (c *IoT) DeleteJobWithContext(ctx aws.Context, input *DeleteJobInput, opts ...request.Option) (*DeleteJobOutput, error) {
5044	req, out := c.DeleteJobRequest(input)
5045	req.SetContext(ctx)
5046	req.ApplyOptions(opts...)
5047	return out, req.Send()
5048}
5049
5050const opDeleteJobExecution = "DeleteJobExecution"
5051
5052// DeleteJobExecutionRequest generates a "aws/request.Request" representing the
5053// client's request for the DeleteJobExecution operation. The "output" return
5054// value will be populated with the request's response once the request completes
5055// successfully.
5056//
5057// Use "Send" method on the returned Request to send the API call to the service.
5058// the "output" return value is not valid until after Send returns without error.
5059//
5060// See DeleteJobExecution for more information on using the DeleteJobExecution
5061// API call, and error handling.
5062//
5063// This method is useful when you want to inject custom logic or configuration
5064// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5065//
5066//
5067//    // Example sending a request using the DeleteJobExecutionRequest method.
5068//    req, resp := client.DeleteJobExecutionRequest(params)
5069//
5070//    err := req.Send()
5071//    if err == nil { // resp is now filled
5072//        fmt.Println(resp)
5073//    }
5074func (c *IoT) DeleteJobExecutionRequest(input *DeleteJobExecutionInput) (req *request.Request, output *DeleteJobExecutionOutput) {
5075	op := &request.Operation{
5076		Name:       opDeleteJobExecution,
5077		HTTPMethod: "DELETE",
5078		HTTPPath:   "/things/{thingName}/jobs/{jobId}/executionNumber/{executionNumber}",
5079	}
5080
5081	if input == nil {
5082		input = &DeleteJobExecutionInput{}
5083	}
5084
5085	output = &DeleteJobExecutionOutput{}
5086	req = c.newRequest(op, input, output)
5087	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5088	return
5089}
5090
5091// DeleteJobExecution API operation for AWS IoT.
5092//
5093// Deletes a job execution.
5094//
5095// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5096// with awserr.Error's Code and Message methods to get detailed information about
5097// the error.
5098//
5099// See the AWS API reference guide for AWS IoT's
5100// API operation DeleteJobExecution for usage and error information.
5101//
5102// Returned Error Types:
5103//   * InvalidRequestException
5104//   The request is not valid.
5105//
5106//   * InvalidStateTransitionException
5107//   An attempt was made to change to an invalid state, for example by deleting
5108//   a job or a job execution which is "IN_PROGRESS" without setting the force
5109//   parameter.
5110//
5111//   * ResourceNotFoundException
5112//   The specified resource does not exist.
5113//
5114//   * ThrottlingException
5115//   The rate exceeds the limit.
5116//
5117//   * ServiceUnavailableException
5118//   The service is temporarily unavailable.
5119//
5120func (c *IoT) DeleteJobExecution(input *DeleteJobExecutionInput) (*DeleteJobExecutionOutput, error) {
5121	req, out := c.DeleteJobExecutionRequest(input)
5122	return out, req.Send()
5123}
5124
5125// DeleteJobExecutionWithContext is the same as DeleteJobExecution with the addition of
5126// the ability to pass a context and additional request options.
5127//
5128// See DeleteJobExecution for details on how to use this API operation.
5129//
5130// The context must be non-nil and will be used for request cancellation. If
5131// the context is nil a panic will occur. In the future the SDK may create
5132// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5133// for more information on using Contexts.
5134func (c *IoT) DeleteJobExecutionWithContext(ctx aws.Context, input *DeleteJobExecutionInput, opts ...request.Option) (*DeleteJobExecutionOutput, error) {
5135	req, out := c.DeleteJobExecutionRequest(input)
5136	req.SetContext(ctx)
5137	req.ApplyOptions(opts...)
5138	return out, req.Send()
5139}
5140
5141const opDeleteJobTemplate = "DeleteJobTemplate"
5142
5143// DeleteJobTemplateRequest generates a "aws/request.Request" representing the
5144// client's request for the DeleteJobTemplate operation. The "output" return
5145// value will be populated with the request's response once the request completes
5146// successfully.
5147//
5148// Use "Send" method on the returned Request to send the API call to the service.
5149// the "output" return value is not valid until after Send returns without error.
5150//
5151// See DeleteJobTemplate for more information on using the DeleteJobTemplate
5152// API call, and error handling.
5153//
5154// This method is useful when you want to inject custom logic or configuration
5155// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5156//
5157//
5158//    // Example sending a request using the DeleteJobTemplateRequest method.
5159//    req, resp := client.DeleteJobTemplateRequest(params)
5160//
5161//    err := req.Send()
5162//    if err == nil { // resp is now filled
5163//        fmt.Println(resp)
5164//    }
5165func (c *IoT) DeleteJobTemplateRequest(input *DeleteJobTemplateInput) (req *request.Request, output *DeleteJobTemplateOutput) {
5166	op := &request.Operation{
5167		Name:       opDeleteJobTemplate,
5168		HTTPMethod: "DELETE",
5169		HTTPPath:   "/job-templates/{jobTemplateId}",
5170	}
5171
5172	if input == nil {
5173		input = &DeleteJobTemplateInput{}
5174	}
5175
5176	output = &DeleteJobTemplateOutput{}
5177	req = c.newRequest(op, input, output)
5178	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5179	return
5180}
5181
5182// DeleteJobTemplate API operation for AWS IoT.
5183//
5184// Deletes the specified job template.
5185//
5186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5187// with awserr.Error's Code and Message methods to get detailed information about
5188// the error.
5189//
5190// See the AWS API reference guide for AWS IoT's
5191// API operation DeleteJobTemplate for usage and error information.
5192//
5193// Returned Error Types:
5194//   * InvalidRequestException
5195//   The request is not valid.
5196//
5197//   * ResourceNotFoundException
5198//   The specified resource does not exist.
5199//
5200//   * ThrottlingException
5201//   The rate exceeds the limit.
5202//
5203//   * InternalFailureException
5204//   An unexpected error has occurred.
5205//
5206func (c *IoT) DeleteJobTemplate(input *DeleteJobTemplateInput) (*DeleteJobTemplateOutput, error) {
5207	req, out := c.DeleteJobTemplateRequest(input)
5208	return out, req.Send()
5209}
5210
5211// DeleteJobTemplateWithContext is the same as DeleteJobTemplate with the addition of
5212// the ability to pass a context and additional request options.
5213//
5214// See DeleteJobTemplate for details on how to use this API operation.
5215//
5216// The context must be non-nil and will be used for request cancellation. If
5217// the context is nil a panic will occur. In the future the SDK may create
5218// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5219// for more information on using Contexts.
5220func (c *IoT) DeleteJobTemplateWithContext(ctx aws.Context, input *DeleteJobTemplateInput, opts ...request.Option) (*DeleteJobTemplateOutput, error) {
5221	req, out := c.DeleteJobTemplateRequest(input)
5222	req.SetContext(ctx)
5223	req.ApplyOptions(opts...)
5224	return out, req.Send()
5225}
5226
5227const opDeleteMitigationAction = "DeleteMitigationAction"
5228
5229// DeleteMitigationActionRequest generates a "aws/request.Request" representing the
5230// client's request for the DeleteMitigationAction operation. The "output" return
5231// value will be populated with the request's response once the request completes
5232// successfully.
5233//
5234// Use "Send" method on the returned Request to send the API call to the service.
5235// the "output" return value is not valid until after Send returns without error.
5236//
5237// See DeleteMitigationAction for more information on using the DeleteMitigationAction
5238// API call, and error handling.
5239//
5240// This method is useful when you want to inject custom logic or configuration
5241// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5242//
5243//
5244//    // Example sending a request using the DeleteMitigationActionRequest method.
5245//    req, resp := client.DeleteMitigationActionRequest(params)
5246//
5247//    err := req.Send()
5248//    if err == nil { // resp is now filled
5249//        fmt.Println(resp)
5250//    }
5251func (c *IoT) DeleteMitigationActionRequest(input *DeleteMitigationActionInput) (req *request.Request, output *DeleteMitigationActionOutput) {
5252	op := &request.Operation{
5253		Name:       opDeleteMitigationAction,
5254		HTTPMethod: "DELETE",
5255		HTTPPath:   "/mitigationactions/actions/{actionName}",
5256	}
5257
5258	if input == nil {
5259		input = &DeleteMitigationActionInput{}
5260	}
5261
5262	output = &DeleteMitigationActionOutput{}
5263	req = c.newRequest(op, input, output)
5264	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5265	return
5266}
5267
5268// DeleteMitigationAction API operation for AWS IoT.
5269//
5270// Deletes a defined mitigation action from your AWS account.
5271//
5272// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5273// with awserr.Error's Code and Message methods to get detailed information about
5274// the error.
5275//
5276// See the AWS API reference guide for AWS IoT's
5277// API operation DeleteMitigationAction for usage and error information.
5278//
5279// Returned Error Types:
5280//   * InvalidRequestException
5281//   The request is not valid.
5282//
5283//   * ThrottlingException
5284//   The rate exceeds the limit.
5285//
5286//   * InternalFailureException
5287//   An unexpected error has occurred.
5288//
5289func (c *IoT) DeleteMitigationAction(input *DeleteMitigationActionInput) (*DeleteMitigationActionOutput, error) {
5290	req, out := c.DeleteMitigationActionRequest(input)
5291	return out, req.Send()
5292}
5293
5294// DeleteMitigationActionWithContext is the same as DeleteMitigationAction with the addition of
5295// the ability to pass a context and additional request options.
5296//
5297// See DeleteMitigationAction for details on how to use this API operation.
5298//
5299// The context must be non-nil and will be used for request cancellation. If
5300// the context is nil a panic will occur. In the future the SDK may create
5301// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5302// for more information on using Contexts.
5303func (c *IoT) DeleteMitigationActionWithContext(ctx aws.Context, input *DeleteMitigationActionInput, opts ...request.Option) (*DeleteMitigationActionOutput, error) {
5304	req, out := c.DeleteMitigationActionRequest(input)
5305	req.SetContext(ctx)
5306	req.ApplyOptions(opts...)
5307	return out, req.Send()
5308}
5309
5310const opDeleteOTAUpdate = "DeleteOTAUpdate"
5311
5312// DeleteOTAUpdateRequest generates a "aws/request.Request" representing the
5313// client's request for the DeleteOTAUpdate operation. The "output" return
5314// value will be populated with the request's response once the request completes
5315// successfully.
5316//
5317// Use "Send" method on the returned Request to send the API call to the service.
5318// the "output" return value is not valid until after Send returns without error.
5319//
5320// See DeleteOTAUpdate for more information on using the DeleteOTAUpdate
5321// API call, and error handling.
5322//
5323// This method is useful when you want to inject custom logic or configuration
5324// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5325//
5326//
5327//    // Example sending a request using the DeleteOTAUpdateRequest method.
5328//    req, resp := client.DeleteOTAUpdateRequest(params)
5329//
5330//    err := req.Send()
5331//    if err == nil { // resp is now filled
5332//        fmt.Println(resp)
5333//    }
5334func (c *IoT) DeleteOTAUpdateRequest(input *DeleteOTAUpdateInput) (req *request.Request, output *DeleteOTAUpdateOutput) {
5335	op := &request.Operation{
5336		Name:       opDeleteOTAUpdate,
5337		HTTPMethod: "DELETE",
5338		HTTPPath:   "/otaUpdates/{otaUpdateId}",
5339	}
5340
5341	if input == nil {
5342		input = &DeleteOTAUpdateInput{}
5343	}
5344
5345	output = &DeleteOTAUpdateOutput{}
5346	req = c.newRequest(op, input, output)
5347	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5348	return
5349}
5350
5351// DeleteOTAUpdate API operation for AWS IoT.
5352//
5353// Delete an OTA update.
5354//
5355// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5356// with awserr.Error's Code and Message methods to get detailed information about
5357// the error.
5358//
5359// See the AWS API reference guide for AWS IoT's
5360// API operation DeleteOTAUpdate for usage and error information.
5361//
5362// Returned Error Types:
5363//   * InvalidRequestException
5364//   The request is not valid.
5365//
5366//   * ResourceNotFoundException
5367//   The specified resource does not exist.
5368//
5369//   * ThrottlingException
5370//   The rate exceeds the limit.
5371//
5372//   * UnauthorizedException
5373//   You are not authorized to perform this operation.
5374//
5375//   * InternalFailureException
5376//   An unexpected error has occurred.
5377//
5378//   * ServiceUnavailableException
5379//   The service is temporarily unavailable.
5380//
5381//   * VersionConflictException
5382//   An exception thrown when the version of an entity specified with the expectedVersion
5383//   parameter does not match the latest version in the system.
5384//
5385func (c *IoT) DeleteOTAUpdate(input *DeleteOTAUpdateInput) (*DeleteOTAUpdateOutput, error) {
5386	req, out := c.DeleteOTAUpdateRequest(input)
5387	return out, req.Send()
5388}
5389
5390// DeleteOTAUpdateWithContext is the same as DeleteOTAUpdate with the addition of
5391// the ability to pass a context and additional request options.
5392//
5393// See DeleteOTAUpdate for details on how to use this API operation.
5394//
5395// The context must be non-nil and will be used for request cancellation. If
5396// the context is nil a panic will occur. In the future the SDK may create
5397// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5398// for more information on using Contexts.
5399func (c *IoT) DeleteOTAUpdateWithContext(ctx aws.Context, input *DeleteOTAUpdateInput, opts ...request.Option) (*DeleteOTAUpdateOutput, error) {
5400	req, out := c.DeleteOTAUpdateRequest(input)
5401	req.SetContext(ctx)
5402	req.ApplyOptions(opts...)
5403	return out, req.Send()
5404}
5405
5406const opDeletePolicy = "DeletePolicy"
5407
5408// DeletePolicyRequest generates a "aws/request.Request" representing the
5409// client's request for the DeletePolicy operation. The "output" return
5410// value will be populated with the request's response once the request completes
5411// successfully.
5412//
5413// Use "Send" method on the returned Request to send the API call to the service.
5414// the "output" return value is not valid until after Send returns without error.
5415//
5416// See DeletePolicy for more information on using the DeletePolicy
5417// API call, and error handling.
5418//
5419// This method is useful when you want to inject custom logic or configuration
5420// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5421//
5422//
5423//    // Example sending a request using the DeletePolicyRequest method.
5424//    req, resp := client.DeletePolicyRequest(params)
5425//
5426//    err := req.Send()
5427//    if err == nil { // resp is now filled
5428//        fmt.Println(resp)
5429//    }
5430func (c *IoT) DeletePolicyRequest(input *DeletePolicyInput) (req *request.Request, output *DeletePolicyOutput) {
5431	op := &request.Operation{
5432		Name:       opDeletePolicy,
5433		HTTPMethod: "DELETE",
5434		HTTPPath:   "/policies/{policyName}",
5435	}
5436
5437	if input == nil {
5438		input = &DeletePolicyInput{}
5439	}
5440
5441	output = &DeletePolicyOutput{}
5442	req = c.newRequest(op, input, output)
5443	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5444	return
5445}
5446
5447// DeletePolicy API operation for AWS IoT.
5448//
5449// Deletes the specified policy.
5450//
5451// A policy cannot be deleted if it has non-default versions or it is attached
5452// to any certificate.
5453//
5454// To delete a policy, use the DeletePolicyVersion API to delete all non-default
5455// versions of the policy; use the DetachPrincipalPolicy API to detach the policy
5456// from any certificate; and then use the DeletePolicy API to delete the policy.
5457//
5458// When a policy is deleted using DeletePolicy, its default version is deleted
5459// with it.
5460//
5461// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5462// with awserr.Error's Code and Message methods to get detailed information about
5463// the error.
5464//
5465// See the AWS API reference guide for AWS IoT's
5466// API operation DeletePolicy for usage and error information.
5467//
5468// Returned Error Types:
5469//   * DeleteConflictException
5470//   You can't delete the resource because it is attached to one or more resources.
5471//
5472//   * ResourceNotFoundException
5473//   The specified resource does not exist.
5474//
5475//   * InvalidRequestException
5476//   The request is not valid.
5477//
5478//   * ThrottlingException
5479//   The rate exceeds the limit.
5480//
5481//   * UnauthorizedException
5482//   You are not authorized to perform this operation.
5483//
5484//   * ServiceUnavailableException
5485//   The service is temporarily unavailable.
5486//
5487//   * InternalFailureException
5488//   An unexpected error has occurred.
5489//
5490func (c *IoT) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
5491	req, out := c.DeletePolicyRequest(input)
5492	return out, req.Send()
5493}
5494
5495// DeletePolicyWithContext is the same as DeletePolicy with the addition of
5496// the ability to pass a context and additional request options.
5497//
5498// See DeletePolicy for details on how to use this API operation.
5499//
5500// The context must be non-nil and will be used for request cancellation. If
5501// the context is nil a panic will occur. In the future the SDK may create
5502// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5503// for more information on using Contexts.
5504func (c *IoT) DeletePolicyWithContext(ctx aws.Context, input *DeletePolicyInput, opts ...request.Option) (*DeletePolicyOutput, error) {
5505	req, out := c.DeletePolicyRequest(input)
5506	req.SetContext(ctx)
5507	req.ApplyOptions(opts...)
5508	return out, req.Send()
5509}
5510
5511const opDeletePolicyVersion = "DeletePolicyVersion"
5512
5513// DeletePolicyVersionRequest generates a "aws/request.Request" representing the
5514// client's request for the DeletePolicyVersion operation. The "output" return
5515// value will be populated with the request's response once the request completes
5516// successfully.
5517//
5518// Use "Send" method on the returned Request to send the API call to the service.
5519// the "output" return value is not valid until after Send returns without error.
5520//
5521// See DeletePolicyVersion for more information on using the DeletePolicyVersion
5522// API call, and error handling.
5523//
5524// This method is useful when you want to inject custom logic or configuration
5525// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5526//
5527//
5528//    // Example sending a request using the DeletePolicyVersionRequest method.
5529//    req, resp := client.DeletePolicyVersionRequest(params)
5530//
5531//    err := req.Send()
5532//    if err == nil { // resp is now filled
5533//        fmt.Println(resp)
5534//    }
5535func (c *IoT) DeletePolicyVersionRequest(input *DeletePolicyVersionInput) (req *request.Request, output *DeletePolicyVersionOutput) {
5536	op := &request.Operation{
5537		Name:       opDeletePolicyVersion,
5538		HTTPMethod: "DELETE",
5539		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
5540	}
5541
5542	if input == nil {
5543		input = &DeletePolicyVersionInput{}
5544	}
5545
5546	output = &DeletePolicyVersionOutput{}
5547	req = c.newRequest(op, input, output)
5548	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5549	return
5550}
5551
5552// DeletePolicyVersion API operation for AWS IoT.
5553//
5554// Deletes the specified version of the specified policy. You cannot delete
5555// the default version of a policy using this API. To delete the default version
5556// of a policy, use DeletePolicy. To find out which version of a policy is marked
5557// as the default version, use ListPolicyVersions.
5558//
5559// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5560// with awserr.Error's Code and Message methods to get detailed information about
5561// the error.
5562//
5563// See the AWS API reference guide for AWS IoT's
5564// API operation DeletePolicyVersion for usage and error information.
5565//
5566// Returned Error Types:
5567//   * DeleteConflictException
5568//   You can't delete the resource because it is attached to one or more resources.
5569//
5570//   * ResourceNotFoundException
5571//   The specified resource does not exist.
5572//
5573//   * InvalidRequestException
5574//   The request is not valid.
5575//
5576//   * ThrottlingException
5577//   The rate exceeds the limit.
5578//
5579//   * UnauthorizedException
5580//   You are not authorized to perform this operation.
5581//
5582//   * ServiceUnavailableException
5583//   The service is temporarily unavailable.
5584//
5585//   * InternalFailureException
5586//   An unexpected error has occurred.
5587//
5588func (c *IoT) DeletePolicyVersion(input *DeletePolicyVersionInput) (*DeletePolicyVersionOutput, error) {
5589	req, out := c.DeletePolicyVersionRequest(input)
5590	return out, req.Send()
5591}
5592
5593// DeletePolicyVersionWithContext is the same as DeletePolicyVersion with the addition of
5594// the ability to pass a context and additional request options.
5595//
5596// See DeletePolicyVersion for details on how to use this API operation.
5597//
5598// The context must be non-nil and will be used for request cancellation. If
5599// the context is nil a panic will occur. In the future the SDK may create
5600// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5601// for more information on using Contexts.
5602func (c *IoT) DeletePolicyVersionWithContext(ctx aws.Context, input *DeletePolicyVersionInput, opts ...request.Option) (*DeletePolicyVersionOutput, error) {
5603	req, out := c.DeletePolicyVersionRequest(input)
5604	req.SetContext(ctx)
5605	req.ApplyOptions(opts...)
5606	return out, req.Send()
5607}
5608
5609const opDeleteProvisioningTemplate = "DeleteProvisioningTemplate"
5610
5611// DeleteProvisioningTemplateRequest generates a "aws/request.Request" representing the
5612// client's request for the DeleteProvisioningTemplate operation. The "output" return
5613// value will be populated with the request's response once the request completes
5614// successfully.
5615//
5616// Use "Send" method on the returned Request to send the API call to the service.
5617// the "output" return value is not valid until after Send returns without error.
5618//
5619// See DeleteProvisioningTemplate for more information on using the DeleteProvisioningTemplate
5620// API call, and error handling.
5621//
5622// This method is useful when you want to inject custom logic or configuration
5623// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5624//
5625//
5626//    // Example sending a request using the DeleteProvisioningTemplateRequest method.
5627//    req, resp := client.DeleteProvisioningTemplateRequest(params)
5628//
5629//    err := req.Send()
5630//    if err == nil { // resp is now filled
5631//        fmt.Println(resp)
5632//    }
5633func (c *IoT) DeleteProvisioningTemplateRequest(input *DeleteProvisioningTemplateInput) (req *request.Request, output *DeleteProvisioningTemplateOutput) {
5634	op := &request.Operation{
5635		Name:       opDeleteProvisioningTemplate,
5636		HTTPMethod: "DELETE",
5637		HTTPPath:   "/provisioning-templates/{templateName}",
5638	}
5639
5640	if input == nil {
5641		input = &DeleteProvisioningTemplateInput{}
5642	}
5643
5644	output = &DeleteProvisioningTemplateOutput{}
5645	req = c.newRequest(op, input, output)
5646	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5647	return
5648}
5649
5650// DeleteProvisioningTemplate API operation for AWS IoT.
5651//
5652// Deletes a fleet provisioning template.
5653//
5654// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5655// with awserr.Error's Code and Message methods to get detailed information about
5656// the error.
5657//
5658// See the AWS API reference guide for AWS IoT's
5659// API operation DeleteProvisioningTemplate for usage and error information.
5660//
5661// Returned Error Types:
5662//   * InternalFailureException
5663//   An unexpected error has occurred.
5664//
5665//   * InvalidRequestException
5666//   The request is not valid.
5667//
5668//   * ResourceNotFoundException
5669//   The specified resource does not exist.
5670//
5671//   * DeleteConflictException
5672//   You can't delete the resource because it is attached to one or more resources.
5673//
5674//   * ThrottlingException
5675//   The rate exceeds the limit.
5676//
5677//   * ConflictingResourceUpdateException
5678//   A conflicting resource update exception. This exception is thrown when two
5679//   pending updates cause a conflict.
5680//
5681//   * UnauthorizedException
5682//   You are not authorized to perform this operation.
5683//
5684func (c *IoT) DeleteProvisioningTemplate(input *DeleteProvisioningTemplateInput) (*DeleteProvisioningTemplateOutput, error) {
5685	req, out := c.DeleteProvisioningTemplateRequest(input)
5686	return out, req.Send()
5687}
5688
5689// DeleteProvisioningTemplateWithContext is the same as DeleteProvisioningTemplate with the addition of
5690// the ability to pass a context and additional request options.
5691//
5692// See DeleteProvisioningTemplate for details on how to use this API operation.
5693//
5694// The context must be non-nil and will be used for request cancellation. If
5695// the context is nil a panic will occur. In the future the SDK may create
5696// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5697// for more information on using Contexts.
5698func (c *IoT) DeleteProvisioningTemplateWithContext(ctx aws.Context, input *DeleteProvisioningTemplateInput, opts ...request.Option) (*DeleteProvisioningTemplateOutput, error) {
5699	req, out := c.DeleteProvisioningTemplateRequest(input)
5700	req.SetContext(ctx)
5701	req.ApplyOptions(opts...)
5702	return out, req.Send()
5703}
5704
5705const opDeleteProvisioningTemplateVersion = "DeleteProvisioningTemplateVersion"
5706
5707// DeleteProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
5708// client's request for the DeleteProvisioningTemplateVersion operation. The "output" return
5709// value will be populated with the request's response once the request completes
5710// successfully.
5711//
5712// Use "Send" method on the returned Request to send the API call to the service.
5713// the "output" return value is not valid until after Send returns without error.
5714//
5715// See DeleteProvisioningTemplateVersion for more information on using the DeleteProvisioningTemplateVersion
5716// API call, and error handling.
5717//
5718// This method is useful when you want to inject custom logic or configuration
5719// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5720//
5721//
5722//    // Example sending a request using the DeleteProvisioningTemplateVersionRequest method.
5723//    req, resp := client.DeleteProvisioningTemplateVersionRequest(params)
5724//
5725//    err := req.Send()
5726//    if err == nil { // resp is now filled
5727//        fmt.Println(resp)
5728//    }
5729func (c *IoT) DeleteProvisioningTemplateVersionRequest(input *DeleteProvisioningTemplateVersionInput) (req *request.Request, output *DeleteProvisioningTemplateVersionOutput) {
5730	op := &request.Operation{
5731		Name:       opDeleteProvisioningTemplateVersion,
5732		HTTPMethod: "DELETE",
5733		HTTPPath:   "/provisioning-templates/{templateName}/versions/{versionId}",
5734	}
5735
5736	if input == nil {
5737		input = &DeleteProvisioningTemplateVersionInput{}
5738	}
5739
5740	output = &DeleteProvisioningTemplateVersionOutput{}
5741	req = c.newRequest(op, input, output)
5742	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5743	return
5744}
5745
5746// DeleteProvisioningTemplateVersion API operation for AWS IoT.
5747//
5748// Deletes a fleet provisioning template version.
5749//
5750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5751// with awserr.Error's Code and Message methods to get detailed information about
5752// the error.
5753//
5754// See the AWS API reference guide for AWS IoT's
5755// API operation DeleteProvisioningTemplateVersion for usage and error information.
5756//
5757// Returned Error Types:
5758//   * InternalFailureException
5759//   An unexpected error has occurred.
5760//
5761//   * InvalidRequestException
5762//   The request is not valid.
5763//
5764//   * ThrottlingException
5765//   The rate exceeds the limit.
5766//
5767//   * ResourceNotFoundException
5768//   The specified resource does not exist.
5769//
5770//   * UnauthorizedException
5771//   You are not authorized to perform this operation.
5772//
5773//   * ConflictingResourceUpdateException
5774//   A conflicting resource update exception. This exception is thrown when two
5775//   pending updates cause a conflict.
5776//
5777//   * DeleteConflictException
5778//   You can't delete the resource because it is attached to one or more resources.
5779//
5780func (c *IoT) DeleteProvisioningTemplateVersion(input *DeleteProvisioningTemplateVersionInput) (*DeleteProvisioningTemplateVersionOutput, error) {
5781	req, out := c.DeleteProvisioningTemplateVersionRequest(input)
5782	return out, req.Send()
5783}
5784
5785// DeleteProvisioningTemplateVersionWithContext is the same as DeleteProvisioningTemplateVersion with the addition of
5786// the ability to pass a context and additional request options.
5787//
5788// See DeleteProvisioningTemplateVersion for details on how to use this API operation.
5789//
5790// The context must be non-nil and will be used for request cancellation. If
5791// the context is nil a panic will occur. In the future the SDK may create
5792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5793// for more information on using Contexts.
5794func (c *IoT) DeleteProvisioningTemplateVersionWithContext(ctx aws.Context, input *DeleteProvisioningTemplateVersionInput, opts ...request.Option) (*DeleteProvisioningTemplateVersionOutput, error) {
5795	req, out := c.DeleteProvisioningTemplateVersionRequest(input)
5796	req.SetContext(ctx)
5797	req.ApplyOptions(opts...)
5798	return out, req.Send()
5799}
5800
5801const opDeleteRegistrationCode = "DeleteRegistrationCode"
5802
5803// DeleteRegistrationCodeRequest generates a "aws/request.Request" representing the
5804// client's request for the DeleteRegistrationCode operation. The "output" return
5805// value will be populated with the request's response once the request completes
5806// successfully.
5807//
5808// Use "Send" method on the returned Request to send the API call to the service.
5809// the "output" return value is not valid until after Send returns without error.
5810//
5811// See DeleteRegistrationCode for more information on using the DeleteRegistrationCode
5812// API call, and error handling.
5813//
5814// This method is useful when you want to inject custom logic or configuration
5815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5816//
5817//
5818//    // Example sending a request using the DeleteRegistrationCodeRequest method.
5819//    req, resp := client.DeleteRegistrationCodeRequest(params)
5820//
5821//    err := req.Send()
5822//    if err == nil { // resp is now filled
5823//        fmt.Println(resp)
5824//    }
5825func (c *IoT) DeleteRegistrationCodeRequest(input *DeleteRegistrationCodeInput) (req *request.Request, output *DeleteRegistrationCodeOutput) {
5826	op := &request.Operation{
5827		Name:       opDeleteRegistrationCode,
5828		HTTPMethod: "DELETE",
5829		HTTPPath:   "/registrationcode",
5830	}
5831
5832	if input == nil {
5833		input = &DeleteRegistrationCodeInput{}
5834	}
5835
5836	output = &DeleteRegistrationCodeOutput{}
5837	req = c.newRequest(op, input, output)
5838	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5839	return
5840}
5841
5842// DeleteRegistrationCode API operation for AWS IoT.
5843//
5844// Deletes a CA certificate registration code.
5845//
5846// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5847// with awserr.Error's Code and Message methods to get detailed information about
5848// the error.
5849//
5850// See the AWS API reference guide for AWS IoT's
5851// API operation DeleteRegistrationCode for usage and error information.
5852//
5853// Returned Error Types:
5854//   * ThrottlingException
5855//   The rate exceeds the limit.
5856//
5857//   * ResourceNotFoundException
5858//   The specified resource does not exist.
5859//
5860//   * UnauthorizedException
5861//   You are not authorized to perform this operation.
5862//
5863//   * ServiceUnavailableException
5864//   The service is temporarily unavailable.
5865//
5866//   * InternalFailureException
5867//   An unexpected error has occurred.
5868//
5869func (c *IoT) DeleteRegistrationCode(input *DeleteRegistrationCodeInput) (*DeleteRegistrationCodeOutput, error) {
5870	req, out := c.DeleteRegistrationCodeRequest(input)
5871	return out, req.Send()
5872}
5873
5874// DeleteRegistrationCodeWithContext is the same as DeleteRegistrationCode with the addition of
5875// the ability to pass a context and additional request options.
5876//
5877// See DeleteRegistrationCode for details on how to use this API operation.
5878//
5879// The context must be non-nil and will be used for request cancellation. If
5880// the context is nil a panic will occur. In the future the SDK may create
5881// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5882// for more information on using Contexts.
5883func (c *IoT) DeleteRegistrationCodeWithContext(ctx aws.Context, input *DeleteRegistrationCodeInput, opts ...request.Option) (*DeleteRegistrationCodeOutput, error) {
5884	req, out := c.DeleteRegistrationCodeRequest(input)
5885	req.SetContext(ctx)
5886	req.ApplyOptions(opts...)
5887	return out, req.Send()
5888}
5889
5890const opDeleteRoleAlias = "DeleteRoleAlias"
5891
5892// DeleteRoleAliasRequest generates a "aws/request.Request" representing the
5893// client's request for the DeleteRoleAlias operation. The "output" return
5894// value will be populated with the request's response once the request completes
5895// successfully.
5896//
5897// Use "Send" method on the returned Request to send the API call to the service.
5898// the "output" return value is not valid until after Send returns without error.
5899//
5900// See DeleteRoleAlias for more information on using the DeleteRoleAlias
5901// API call, and error handling.
5902//
5903// This method is useful when you want to inject custom logic or configuration
5904// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5905//
5906//
5907//    // Example sending a request using the DeleteRoleAliasRequest method.
5908//    req, resp := client.DeleteRoleAliasRequest(params)
5909//
5910//    err := req.Send()
5911//    if err == nil { // resp is now filled
5912//        fmt.Println(resp)
5913//    }
5914func (c *IoT) DeleteRoleAliasRequest(input *DeleteRoleAliasInput) (req *request.Request, output *DeleteRoleAliasOutput) {
5915	op := &request.Operation{
5916		Name:       opDeleteRoleAlias,
5917		HTTPMethod: "DELETE",
5918		HTTPPath:   "/role-aliases/{roleAlias}",
5919	}
5920
5921	if input == nil {
5922		input = &DeleteRoleAliasInput{}
5923	}
5924
5925	output = &DeleteRoleAliasOutput{}
5926	req = c.newRequest(op, input, output)
5927	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5928	return
5929}
5930
5931// DeleteRoleAlias API operation for AWS IoT.
5932//
5933// Deletes a role alias
5934//
5935// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5936// with awserr.Error's Code and Message methods to get detailed information about
5937// the error.
5938//
5939// See the AWS API reference guide for AWS IoT's
5940// API operation DeleteRoleAlias for usage and error information.
5941//
5942// Returned Error Types:
5943//   * DeleteConflictException
5944//   You can't delete the resource because it is attached to one or more resources.
5945//
5946//   * InvalidRequestException
5947//   The request is not valid.
5948//
5949//   * ThrottlingException
5950//   The rate exceeds the limit.
5951//
5952//   * UnauthorizedException
5953//   You are not authorized to perform this operation.
5954//
5955//   * ServiceUnavailableException
5956//   The service is temporarily unavailable.
5957//
5958//   * InternalFailureException
5959//   An unexpected error has occurred.
5960//
5961//   * ResourceNotFoundException
5962//   The specified resource does not exist.
5963//
5964func (c *IoT) DeleteRoleAlias(input *DeleteRoleAliasInput) (*DeleteRoleAliasOutput, error) {
5965	req, out := c.DeleteRoleAliasRequest(input)
5966	return out, req.Send()
5967}
5968
5969// DeleteRoleAliasWithContext is the same as DeleteRoleAlias with the addition of
5970// the ability to pass a context and additional request options.
5971//
5972// See DeleteRoleAlias 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) DeleteRoleAliasWithContext(ctx aws.Context, input *DeleteRoleAliasInput, opts ...request.Option) (*DeleteRoleAliasOutput, error) {
5979	req, out := c.DeleteRoleAliasRequest(input)
5980	req.SetContext(ctx)
5981	req.ApplyOptions(opts...)
5982	return out, req.Send()
5983}
5984
5985const opDeleteScheduledAudit = "DeleteScheduledAudit"
5986
5987// DeleteScheduledAuditRequest generates a "aws/request.Request" representing the
5988// client's request for the DeleteScheduledAudit 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 DeleteScheduledAudit for more information on using the DeleteScheduledAudit
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 DeleteScheduledAuditRequest method.
6003//    req, resp := client.DeleteScheduledAuditRequest(params)
6004//
6005//    err := req.Send()
6006//    if err == nil { // resp is now filled
6007//        fmt.Println(resp)
6008//    }
6009func (c *IoT) DeleteScheduledAuditRequest(input *DeleteScheduledAuditInput) (req *request.Request, output *DeleteScheduledAuditOutput) {
6010	op := &request.Operation{
6011		Name:       opDeleteScheduledAudit,
6012		HTTPMethod: "DELETE",
6013		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
6014	}
6015
6016	if input == nil {
6017		input = &DeleteScheduledAuditInput{}
6018	}
6019
6020	output = &DeleteScheduledAuditOutput{}
6021	req = c.newRequest(op, input, output)
6022	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6023	return
6024}
6025
6026// DeleteScheduledAudit API operation for AWS IoT.
6027//
6028// Deletes a scheduled audit.
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 DeleteScheduledAudit for usage and error information.
6036//
6037// Returned Error Types:
6038//   * InvalidRequestException
6039//   The request is not valid.
6040//
6041//   * ResourceNotFoundException
6042//   The specified resource does not exist.
6043//
6044//   * ThrottlingException
6045//   The rate exceeds the limit.
6046//
6047//   * InternalFailureException
6048//   An unexpected error has occurred.
6049//
6050func (c *IoT) DeleteScheduledAudit(input *DeleteScheduledAuditInput) (*DeleteScheduledAuditOutput, error) {
6051	req, out := c.DeleteScheduledAuditRequest(input)
6052	return out, req.Send()
6053}
6054
6055// DeleteScheduledAuditWithContext is the same as DeleteScheduledAudit with the addition of
6056// the ability to pass a context and additional request options.
6057//
6058// See DeleteScheduledAudit for details on how to use this API operation.
6059//
6060// The context must be non-nil and will be used for request cancellation. If
6061// the context is nil a panic will occur. In the future the SDK may create
6062// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6063// for more information on using Contexts.
6064func (c *IoT) DeleteScheduledAuditWithContext(ctx aws.Context, input *DeleteScheduledAuditInput, opts ...request.Option) (*DeleteScheduledAuditOutput, error) {
6065	req, out := c.DeleteScheduledAuditRequest(input)
6066	req.SetContext(ctx)
6067	req.ApplyOptions(opts...)
6068	return out, req.Send()
6069}
6070
6071const opDeleteSecurityProfile = "DeleteSecurityProfile"
6072
6073// DeleteSecurityProfileRequest generates a "aws/request.Request" representing the
6074// client's request for the DeleteSecurityProfile operation. The "output" return
6075// value will be populated with the request's response once the request completes
6076// successfully.
6077//
6078// Use "Send" method on the returned Request to send the API call to the service.
6079// the "output" return value is not valid until after Send returns without error.
6080//
6081// See DeleteSecurityProfile for more information on using the DeleteSecurityProfile
6082// API call, and error handling.
6083//
6084// This method is useful when you want to inject custom logic or configuration
6085// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6086//
6087//
6088//    // Example sending a request using the DeleteSecurityProfileRequest method.
6089//    req, resp := client.DeleteSecurityProfileRequest(params)
6090//
6091//    err := req.Send()
6092//    if err == nil { // resp is now filled
6093//        fmt.Println(resp)
6094//    }
6095func (c *IoT) DeleteSecurityProfileRequest(input *DeleteSecurityProfileInput) (req *request.Request, output *DeleteSecurityProfileOutput) {
6096	op := &request.Operation{
6097		Name:       opDeleteSecurityProfile,
6098		HTTPMethod: "DELETE",
6099		HTTPPath:   "/security-profiles/{securityProfileName}",
6100	}
6101
6102	if input == nil {
6103		input = &DeleteSecurityProfileInput{}
6104	}
6105
6106	output = &DeleteSecurityProfileOutput{}
6107	req = c.newRequest(op, input, output)
6108	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6109	return
6110}
6111
6112// DeleteSecurityProfile API operation for AWS IoT.
6113//
6114// Deletes a Device Defender security profile.
6115//
6116// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6117// with awserr.Error's Code and Message methods to get detailed information about
6118// the error.
6119//
6120// See the AWS API reference guide for AWS IoT's
6121// API operation DeleteSecurityProfile for usage and error information.
6122//
6123// Returned Error Types:
6124//   * InvalidRequestException
6125//   The request is not valid.
6126//
6127//   * ThrottlingException
6128//   The rate exceeds the limit.
6129//
6130//   * InternalFailureException
6131//   An unexpected error has occurred.
6132//
6133//   * VersionConflictException
6134//   An exception thrown when the version of an entity specified with the expectedVersion
6135//   parameter does not match the latest version in the system.
6136//
6137func (c *IoT) DeleteSecurityProfile(input *DeleteSecurityProfileInput) (*DeleteSecurityProfileOutput, error) {
6138	req, out := c.DeleteSecurityProfileRequest(input)
6139	return out, req.Send()
6140}
6141
6142// DeleteSecurityProfileWithContext is the same as DeleteSecurityProfile with the addition of
6143// the ability to pass a context and additional request options.
6144//
6145// See DeleteSecurityProfile for details on how to use this API operation.
6146//
6147// The context must be non-nil and will be used for request cancellation. If
6148// the context is nil a panic will occur. In the future the SDK may create
6149// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6150// for more information on using Contexts.
6151func (c *IoT) DeleteSecurityProfileWithContext(ctx aws.Context, input *DeleteSecurityProfileInput, opts ...request.Option) (*DeleteSecurityProfileOutput, error) {
6152	req, out := c.DeleteSecurityProfileRequest(input)
6153	req.SetContext(ctx)
6154	req.ApplyOptions(opts...)
6155	return out, req.Send()
6156}
6157
6158const opDeleteStream = "DeleteStream"
6159
6160// DeleteStreamRequest generates a "aws/request.Request" representing the
6161// client's request for the DeleteStream operation. The "output" return
6162// value will be populated with the request's response once the request completes
6163// successfully.
6164//
6165// Use "Send" method on the returned Request to send the API call to the service.
6166// the "output" return value is not valid until after Send returns without error.
6167//
6168// See DeleteStream for more information on using the DeleteStream
6169// API call, and error handling.
6170//
6171// This method is useful when you want to inject custom logic or configuration
6172// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6173//
6174//
6175//    // Example sending a request using the DeleteStreamRequest method.
6176//    req, resp := client.DeleteStreamRequest(params)
6177//
6178//    err := req.Send()
6179//    if err == nil { // resp is now filled
6180//        fmt.Println(resp)
6181//    }
6182func (c *IoT) DeleteStreamRequest(input *DeleteStreamInput) (req *request.Request, output *DeleteStreamOutput) {
6183	op := &request.Operation{
6184		Name:       opDeleteStream,
6185		HTTPMethod: "DELETE",
6186		HTTPPath:   "/streams/{streamId}",
6187	}
6188
6189	if input == nil {
6190		input = &DeleteStreamInput{}
6191	}
6192
6193	output = &DeleteStreamOutput{}
6194	req = c.newRequest(op, input, output)
6195	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6196	return
6197}
6198
6199// DeleteStream API operation for AWS IoT.
6200//
6201// Deletes a stream.
6202//
6203// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6204// with awserr.Error's Code and Message methods to get detailed information about
6205// the error.
6206//
6207// See the AWS API reference guide for AWS IoT's
6208// API operation DeleteStream for usage and error information.
6209//
6210// Returned Error Types:
6211//   * ResourceNotFoundException
6212//   The specified resource does not exist.
6213//
6214//   * DeleteConflictException
6215//   You can't delete the resource because it is attached to one or more resources.
6216//
6217//   * InvalidRequestException
6218//   The request is not valid.
6219//
6220//   * ThrottlingException
6221//   The rate exceeds the limit.
6222//
6223//   * UnauthorizedException
6224//   You are not authorized to perform this operation.
6225//
6226//   * ServiceUnavailableException
6227//   The service is temporarily unavailable.
6228//
6229//   * InternalFailureException
6230//   An unexpected error has occurred.
6231//
6232func (c *IoT) DeleteStream(input *DeleteStreamInput) (*DeleteStreamOutput, error) {
6233	req, out := c.DeleteStreamRequest(input)
6234	return out, req.Send()
6235}
6236
6237// DeleteStreamWithContext is the same as DeleteStream with the addition of
6238// the ability to pass a context and additional request options.
6239//
6240// See DeleteStream for details on how to use this API operation.
6241//
6242// The context must be non-nil and will be used for request cancellation. If
6243// the context is nil a panic will occur. In the future the SDK may create
6244// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6245// for more information on using Contexts.
6246func (c *IoT) DeleteStreamWithContext(ctx aws.Context, input *DeleteStreamInput, opts ...request.Option) (*DeleteStreamOutput, error) {
6247	req, out := c.DeleteStreamRequest(input)
6248	req.SetContext(ctx)
6249	req.ApplyOptions(opts...)
6250	return out, req.Send()
6251}
6252
6253const opDeleteThing = "DeleteThing"
6254
6255// DeleteThingRequest generates a "aws/request.Request" representing the
6256// client's request for the DeleteThing operation. The "output" return
6257// value will be populated with the request's response once the request completes
6258// successfully.
6259//
6260// Use "Send" method on the returned Request to send the API call to the service.
6261// the "output" return value is not valid until after Send returns without error.
6262//
6263// See DeleteThing for more information on using the DeleteThing
6264// API call, and error handling.
6265//
6266// This method is useful when you want to inject custom logic or configuration
6267// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6268//
6269//
6270//    // Example sending a request using the DeleteThingRequest method.
6271//    req, resp := client.DeleteThingRequest(params)
6272//
6273//    err := req.Send()
6274//    if err == nil { // resp is now filled
6275//        fmt.Println(resp)
6276//    }
6277func (c *IoT) DeleteThingRequest(input *DeleteThingInput) (req *request.Request, output *DeleteThingOutput) {
6278	op := &request.Operation{
6279		Name:       opDeleteThing,
6280		HTTPMethod: "DELETE",
6281		HTTPPath:   "/things/{thingName}",
6282	}
6283
6284	if input == nil {
6285		input = &DeleteThingInput{}
6286	}
6287
6288	output = &DeleteThingOutput{}
6289	req = c.newRequest(op, input, output)
6290	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6291	return
6292}
6293
6294// DeleteThing API operation for AWS IoT.
6295//
6296// Deletes the specified thing. Returns successfully with no error if the deletion
6297// is successful or you specify a thing that doesn't exist.
6298//
6299// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6300// with awserr.Error's Code and Message methods to get detailed information about
6301// the error.
6302//
6303// See the AWS API reference guide for AWS IoT's
6304// API operation DeleteThing for usage and error information.
6305//
6306// Returned Error Types:
6307//   * ResourceNotFoundException
6308//   The specified resource does not exist.
6309//
6310//   * VersionConflictException
6311//   An exception thrown when the version of an entity specified with the expectedVersion
6312//   parameter does not match the latest version in the system.
6313//
6314//   * InvalidRequestException
6315//   The request is not valid.
6316//
6317//   * ThrottlingException
6318//   The rate exceeds the limit.
6319//
6320//   * UnauthorizedException
6321//   You are not authorized to perform this operation.
6322//
6323//   * ServiceUnavailableException
6324//   The service is temporarily unavailable.
6325//
6326//   * InternalFailureException
6327//   An unexpected error has occurred.
6328//
6329func (c *IoT) DeleteThing(input *DeleteThingInput) (*DeleteThingOutput, error) {
6330	req, out := c.DeleteThingRequest(input)
6331	return out, req.Send()
6332}
6333
6334// DeleteThingWithContext is the same as DeleteThing with the addition of
6335// the ability to pass a context and additional request options.
6336//
6337// See DeleteThing for details on how to use this API operation.
6338//
6339// The context must be non-nil and will be used for request cancellation. If
6340// the context is nil a panic will occur. In the future the SDK may create
6341// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6342// for more information on using Contexts.
6343func (c *IoT) DeleteThingWithContext(ctx aws.Context, input *DeleteThingInput, opts ...request.Option) (*DeleteThingOutput, error) {
6344	req, out := c.DeleteThingRequest(input)
6345	req.SetContext(ctx)
6346	req.ApplyOptions(opts...)
6347	return out, req.Send()
6348}
6349
6350const opDeleteThingGroup = "DeleteThingGroup"
6351
6352// DeleteThingGroupRequest generates a "aws/request.Request" representing the
6353// client's request for the DeleteThingGroup operation. The "output" return
6354// value will be populated with the request's response once the request completes
6355// successfully.
6356//
6357// Use "Send" method on the returned Request to send the API call to the service.
6358// the "output" return value is not valid until after Send returns without error.
6359//
6360// See DeleteThingGroup for more information on using the DeleteThingGroup
6361// API call, and error handling.
6362//
6363// This method is useful when you want to inject custom logic or configuration
6364// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6365//
6366//
6367//    // Example sending a request using the DeleteThingGroupRequest method.
6368//    req, resp := client.DeleteThingGroupRequest(params)
6369//
6370//    err := req.Send()
6371//    if err == nil { // resp is now filled
6372//        fmt.Println(resp)
6373//    }
6374func (c *IoT) DeleteThingGroupRequest(input *DeleteThingGroupInput) (req *request.Request, output *DeleteThingGroupOutput) {
6375	op := &request.Operation{
6376		Name:       opDeleteThingGroup,
6377		HTTPMethod: "DELETE",
6378		HTTPPath:   "/thing-groups/{thingGroupName}",
6379	}
6380
6381	if input == nil {
6382		input = &DeleteThingGroupInput{}
6383	}
6384
6385	output = &DeleteThingGroupOutput{}
6386	req = c.newRequest(op, input, output)
6387	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6388	return
6389}
6390
6391// DeleteThingGroup API operation for AWS IoT.
6392//
6393// Deletes a thing group.
6394//
6395// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6396// with awserr.Error's Code and Message methods to get detailed information about
6397// the error.
6398//
6399// See the AWS API reference guide for AWS IoT's
6400// API operation DeleteThingGroup for usage and error information.
6401//
6402// Returned Error Types:
6403//   * InvalidRequestException
6404//   The request is not valid.
6405//
6406//   * VersionConflictException
6407//   An exception thrown when the version of an entity specified with the expectedVersion
6408//   parameter does not match the latest version in the system.
6409//
6410//   * ThrottlingException
6411//   The rate exceeds the limit.
6412//
6413//   * InternalFailureException
6414//   An unexpected error has occurred.
6415//
6416func (c *IoT) DeleteThingGroup(input *DeleteThingGroupInput) (*DeleteThingGroupOutput, error) {
6417	req, out := c.DeleteThingGroupRequest(input)
6418	return out, req.Send()
6419}
6420
6421// DeleteThingGroupWithContext is the same as DeleteThingGroup with the addition of
6422// the ability to pass a context and additional request options.
6423//
6424// See DeleteThingGroup for details on how to use this API operation.
6425//
6426// The context must be non-nil and will be used for request cancellation. If
6427// the context is nil a panic will occur. In the future the SDK may create
6428// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6429// for more information on using Contexts.
6430func (c *IoT) DeleteThingGroupWithContext(ctx aws.Context, input *DeleteThingGroupInput, opts ...request.Option) (*DeleteThingGroupOutput, error) {
6431	req, out := c.DeleteThingGroupRequest(input)
6432	req.SetContext(ctx)
6433	req.ApplyOptions(opts...)
6434	return out, req.Send()
6435}
6436
6437const opDeleteThingType = "DeleteThingType"
6438
6439// DeleteThingTypeRequest generates a "aws/request.Request" representing the
6440// client's request for the DeleteThingType operation. The "output" return
6441// value will be populated with the request's response once the request completes
6442// successfully.
6443//
6444// Use "Send" method on the returned Request to send the API call to the service.
6445// the "output" return value is not valid until after Send returns without error.
6446//
6447// See DeleteThingType for more information on using the DeleteThingType
6448// API call, and error handling.
6449//
6450// This method is useful when you want to inject custom logic or configuration
6451// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6452//
6453//
6454//    // Example sending a request using the DeleteThingTypeRequest method.
6455//    req, resp := client.DeleteThingTypeRequest(params)
6456//
6457//    err := req.Send()
6458//    if err == nil { // resp is now filled
6459//        fmt.Println(resp)
6460//    }
6461func (c *IoT) DeleteThingTypeRequest(input *DeleteThingTypeInput) (req *request.Request, output *DeleteThingTypeOutput) {
6462	op := &request.Operation{
6463		Name:       opDeleteThingType,
6464		HTTPMethod: "DELETE",
6465		HTTPPath:   "/thing-types/{thingTypeName}",
6466	}
6467
6468	if input == nil {
6469		input = &DeleteThingTypeInput{}
6470	}
6471
6472	output = &DeleteThingTypeOutput{}
6473	req = c.newRequest(op, input, output)
6474	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6475	return
6476}
6477
6478// DeleteThingType API operation for AWS IoT.
6479//
6480// Deletes the specified thing type. You cannot delete a thing type if it has
6481// things associated with it. To delete a thing type, first mark it as deprecated
6482// by calling DeprecateThingType, then remove any associated things by calling
6483// UpdateThing to change the thing type on any associated thing, and finally
6484// use DeleteThingType to delete the thing type.
6485//
6486// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6487// with awserr.Error's Code and Message methods to get detailed information about
6488// the error.
6489//
6490// See the AWS API reference guide for AWS IoT's
6491// API operation DeleteThingType for usage and error information.
6492//
6493// Returned Error Types:
6494//   * ResourceNotFoundException
6495//   The specified resource does not exist.
6496//
6497//   * InvalidRequestException
6498//   The request is not valid.
6499//
6500//   * ThrottlingException
6501//   The rate exceeds the limit.
6502//
6503//   * UnauthorizedException
6504//   You are not authorized to perform this operation.
6505//
6506//   * ServiceUnavailableException
6507//   The service is temporarily unavailable.
6508//
6509//   * InternalFailureException
6510//   An unexpected error has occurred.
6511//
6512func (c *IoT) DeleteThingType(input *DeleteThingTypeInput) (*DeleteThingTypeOutput, error) {
6513	req, out := c.DeleteThingTypeRequest(input)
6514	return out, req.Send()
6515}
6516
6517// DeleteThingTypeWithContext is the same as DeleteThingType with the addition of
6518// the ability to pass a context and additional request options.
6519//
6520// See DeleteThingType for details on how to use this API operation.
6521//
6522// The context must be non-nil and will be used for request cancellation. If
6523// the context is nil a panic will occur. In the future the SDK may create
6524// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6525// for more information on using Contexts.
6526func (c *IoT) DeleteThingTypeWithContext(ctx aws.Context, input *DeleteThingTypeInput, opts ...request.Option) (*DeleteThingTypeOutput, error) {
6527	req, out := c.DeleteThingTypeRequest(input)
6528	req.SetContext(ctx)
6529	req.ApplyOptions(opts...)
6530	return out, req.Send()
6531}
6532
6533const opDeleteTopicRule = "DeleteTopicRule"
6534
6535// DeleteTopicRuleRequest generates a "aws/request.Request" representing the
6536// client's request for the DeleteTopicRule operation. The "output" return
6537// value will be populated with the request's response once the request completes
6538// successfully.
6539//
6540// Use "Send" method on the returned Request to send the API call to the service.
6541// the "output" return value is not valid until after Send returns without error.
6542//
6543// See DeleteTopicRule for more information on using the DeleteTopicRule
6544// API call, and error handling.
6545//
6546// This method is useful when you want to inject custom logic or configuration
6547// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6548//
6549//
6550//    // Example sending a request using the DeleteTopicRuleRequest method.
6551//    req, resp := client.DeleteTopicRuleRequest(params)
6552//
6553//    err := req.Send()
6554//    if err == nil { // resp is now filled
6555//        fmt.Println(resp)
6556//    }
6557func (c *IoT) DeleteTopicRuleRequest(input *DeleteTopicRuleInput) (req *request.Request, output *DeleteTopicRuleOutput) {
6558	op := &request.Operation{
6559		Name:       opDeleteTopicRule,
6560		HTTPMethod: "DELETE",
6561		HTTPPath:   "/rules/{ruleName}",
6562	}
6563
6564	if input == nil {
6565		input = &DeleteTopicRuleInput{}
6566	}
6567
6568	output = &DeleteTopicRuleOutput{}
6569	req = c.newRequest(op, input, output)
6570	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6571	return
6572}
6573
6574// DeleteTopicRule API operation for AWS IoT.
6575//
6576// Deletes the rule.
6577//
6578// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6579// with awserr.Error's Code and Message methods to get detailed information about
6580// the error.
6581//
6582// See the AWS API reference guide for AWS IoT's
6583// API operation DeleteTopicRule for usage and error information.
6584//
6585// Returned Error Types:
6586//   * InternalException
6587//   An unexpected error has occurred.
6588//
6589//   * InvalidRequestException
6590//   The request is not valid.
6591//
6592//   * ServiceUnavailableException
6593//   The service is temporarily unavailable.
6594//
6595//   * UnauthorizedException
6596//   You are not authorized to perform this operation.
6597//
6598//   * ConflictingResourceUpdateException
6599//   A conflicting resource update exception. This exception is thrown when two
6600//   pending updates cause a conflict.
6601//
6602func (c *IoT) DeleteTopicRule(input *DeleteTopicRuleInput) (*DeleteTopicRuleOutput, error) {
6603	req, out := c.DeleteTopicRuleRequest(input)
6604	return out, req.Send()
6605}
6606
6607// DeleteTopicRuleWithContext is the same as DeleteTopicRule with the addition of
6608// the ability to pass a context and additional request options.
6609//
6610// See DeleteTopicRule 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) DeleteTopicRuleWithContext(ctx aws.Context, input *DeleteTopicRuleInput, opts ...request.Option) (*DeleteTopicRuleOutput, error) {
6617	req, out := c.DeleteTopicRuleRequest(input)
6618	req.SetContext(ctx)
6619	req.ApplyOptions(opts...)
6620	return out, req.Send()
6621}
6622
6623const opDeleteTopicRuleDestination = "DeleteTopicRuleDestination"
6624
6625// DeleteTopicRuleDestinationRequest generates a "aws/request.Request" representing the
6626// client's request for the DeleteTopicRuleDestination 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 DeleteTopicRuleDestination for more information on using the DeleteTopicRuleDestination
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 DeleteTopicRuleDestinationRequest method.
6641//    req, resp := client.DeleteTopicRuleDestinationRequest(params)
6642//
6643//    err := req.Send()
6644//    if err == nil { // resp is now filled
6645//        fmt.Println(resp)
6646//    }
6647func (c *IoT) DeleteTopicRuleDestinationRequest(input *DeleteTopicRuleDestinationInput) (req *request.Request, output *DeleteTopicRuleDestinationOutput) {
6648	op := &request.Operation{
6649		Name:       opDeleteTopicRuleDestination,
6650		HTTPMethod: "DELETE",
6651		HTTPPath:   "/destinations/{arn+}",
6652	}
6653
6654	if input == nil {
6655		input = &DeleteTopicRuleDestinationInput{}
6656	}
6657
6658	output = &DeleteTopicRuleDestinationOutput{}
6659	req = c.newRequest(op, input, output)
6660	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6661	return
6662}
6663
6664// DeleteTopicRuleDestination API operation for AWS IoT.
6665//
6666// Deletes a topic rule destination.
6667//
6668// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6669// with awserr.Error's Code and Message methods to get detailed information about
6670// the error.
6671//
6672// See the AWS API reference guide for AWS IoT's
6673// API operation DeleteTopicRuleDestination for usage and error information.
6674//
6675// Returned Error Types:
6676//   * InternalException
6677//   An unexpected error has occurred.
6678//
6679//   * InvalidRequestException
6680//   The request is not valid.
6681//
6682//   * ServiceUnavailableException
6683//   The service is temporarily unavailable.
6684//
6685//   * UnauthorizedException
6686//   You are not authorized to perform this operation.
6687//
6688//   * ConflictingResourceUpdateException
6689//   A conflicting resource update exception. This exception is thrown when two
6690//   pending updates cause a conflict.
6691//
6692func (c *IoT) DeleteTopicRuleDestination(input *DeleteTopicRuleDestinationInput) (*DeleteTopicRuleDestinationOutput, error) {
6693	req, out := c.DeleteTopicRuleDestinationRequest(input)
6694	return out, req.Send()
6695}
6696
6697// DeleteTopicRuleDestinationWithContext is the same as DeleteTopicRuleDestination with the addition of
6698// the ability to pass a context and additional request options.
6699//
6700// See DeleteTopicRuleDestination for details on how to use this API operation.
6701//
6702// The context must be non-nil and will be used for request cancellation. If
6703// the context is nil a panic will occur. In the future the SDK may create
6704// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6705// for more information on using Contexts.
6706func (c *IoT) DeleteTopicRuleDestinationWithContext(ctx aws.Context, input *DeleteTopicRuleDestinationInput, opts ...request.Option) (*DeleteTopicRuleDestinationOutput, error) {
6707	req, out := c.DeleteTopicRuleDestinationRequest(input)
6708	req.SetContext(ctx)
6709	req.ApplyOptions(opts...)
6710	return out, req.Send()
6711}
6712
6713const opDeleteV2LoggingLevel = "DeleteV2LoggingLevel"
6714
6715// DeleteV2LoggingLevelRequest generates a "aws/request.Request" representing the
6716// client's request for the DeleteV2LoggingLevel operation. The "output" return
6717// value will be populated with the request's response once the request completes
6718// successfully.
6719//
6720// Use "Send" method on the returned Request to send the API call to the service.
6721// the "output" return value is not valid until after Send returns without error.
6722//
6723// See DeleteV2LoggingLevel for more information on using the DeleteV2LoggingLevel
6724// API call, and error handling.
6725//
6726// This method is useful when you want to inject custom logic or configuration
6727// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6728//
6729//
6730//    // Example sending a request using the DeleteV2LoggingLevelRequest method.
6731//    req, resp := client.DeleteV2LoggingLevelRequest(params)
6732//
6733//    err := req.Send()
6734//    if err == nil { // resp is now filled
6735//        fmt.Println(resp)
6736//    }
6737func (c *IoT) DeleteV2LoggingLevelRequest(input *DeleteV2LoggingLevelInput) (req *request.Request, output *DeleteV2LoggingLevelOutput) {
6738	op := &request.Operation{
6739		Name:       opDeleteV2LoggingLevel,
6740		HTTPMethod: "DELETE",
6741		HTTPPath:   "/v2LoggingLevel",
6742	}
6743
6744	if input == nil {
6745		input = &DeleteV2LoggingLevelInput{}
6746	}
6747
6748	output = &DeleteV2LoggingLevelOutput{}
6749	req = c.newRequest(op, input, output)
6750	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6751	return
6752}
6753
6754// DeleteV2LoggingLevel API operation for AWS IoT.
6755//
6756// Deletes a logging level.
6757//
6758// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6759// with awserr.Error's Code and Message methods to get detailed information about
6760// the error.
6761//
6762// See the AWS API reference guide for AWS IoT's
6763// API operation DeleteV2LoggingLevel for usage and error information.
6764//
6765// Returned Error Types:
6766//   * InternalException
6767//   An unexpected error has occurred.
6768//
6769//   * InvalidRequestException
6770//   The request is not valid.
6771//
6772//   * ServiceUnavailableException
6773//   The service is temporarily unavailable.
6774//
6775func (c *IoT) DeleteV2LoggingLevel(input *DeleteV2LoggingLevelInput) (*DeleteV2LoggingLevelOutput, error) {
6776	req, out := c.DeleteV2LoggingLevelRequest(input)
6777	return out, req.Send()
6778}
6779
6780// DeleteV2LoggingLevelWithContext is the same as DeleteV2LoggingLevel with the addition of
6781// the ability to pass a context and additional request options.
6782//
6783// See DeleteV2LoggingLevel for details on how to use this API operation.
6784//
6785// The context must be non-nil and will be used for request cancellation. If
6786// the context is nil a panic will occur. In the future the SDK may create
6787// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6788// for more information on using Contexts.
6789func (c *IoT) DeleteV2LoggingLevelWithContext(ctx aws.Context, input *DeleteV2LoggingLevelInput, opts ...request.Option) (*DeleteV2LoggingLevelOutput, error) {
6790	req, out := c.DeleteV2LoggingLevelRequest(input)
6791	req.SetContext(ctx)
6792	req.ApplyOptions(opts...)
6793	return out, req.Send()
6794}
6795
6796const opDeprecateThingType = "DeprecateThingType"
6797
6798// DeprecateThingTypeRequest generates a "aws/request.Request" representing the
6799// client's request for the DeprecateThingType operation. The "output" return
6800// value will be populated with the request's response once the request completes
6801// successfully.
6802//
6803// Use "Send" method on the returned Request to send the API call to the service.
6804// the "output" return value is not valid until after Send returns without error.
6805//
6806// See DeprecateThingType for more information on using the DeprecateThingType
6807// API call, and error handling.
6808//
6809// This method is useful when you want to inject custom logic or configuration
6810// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6811//
6812//
6813//    // Example sending a request using the DeprecateThingTypeRequest method.
6814//    req, resp := client.DeprecateThingTypeRequest(params)
6815//
6816//    err := req.Send()
6817//    if err == nil { // resp is now filled
6818//        fmt.Println(resp)
6819//    }
6820func (c *IoT) DeprecateThingTypeRequest(input *DeprecateThingTypeInput) (req *request.Request, output *DeprecateThingTypeOutput) {
6821	op := &request.Operation{
6822		Name:       opDeprecateThingType,
6823		HTTPMethod: "POST",
6824		HTTPPath:   "/thing-types/{thingTypeName}/deprecate",
6825	}
6826
6827	if input == nil {
6828		input = &DeprecateThingTypeInput{}
6829	}
6830
6831	output = &DeprecateThingTypeOutput{}
6832	req = c.newRequest(op, input, output)
6833	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6834	return
6835}
6836
6837// DeprecateThingType API operation for AWS IoT.
6838//
6839// Deprecates a thing type. You can not associate new things with deprecated
6840// thing type.
6841//
6842// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6843// with awserr.Error's Code and Message methods to get detailed information about
6844// the error.
6845//
6846// See the AWS API reference guide for AWS IoT's
6847// API operation DeprecateThingType for usage and error information.
6848//
6849// Returned Error Types:
6850//   * ResourceNotFoundException
6851//   The specified resource does not exist.
6852//
6853//   * InvalidRequestException
6854//   The request is not valid.
6855//
6856//   * ThrottlingException
6857//   The rate exceeds the limit.
6858//
6859//   * UnauthorizedException
6860//   You are not authorized to perform this operation.
6861//
6862//   * ServiceUnavailableException
6863//   The service is temporarily unavailable.
6864//
6865//   * InternalFailureException
6866//   An unexpected error has occurred.
6867//
6868func (c *IoT) DeprecateThingType(input *DeprecateThingTypeInput) (*DeprecateThingTypeOutput, error) {
6869	req, out := c.DeprecateThingTypeRequest(input)
6870	return out, req.Send()
6871}
6872
6873// DeprecateThingTypeWithContext is the same as DeprecateThingType with the addition of
6874// the ability to pass a context and additional request options.
6875//
6876// See DeprecateThingType for details on how to use this API operation.
6877//
6878// The context must be non-nil and will be used for request cancellation. If
6879// the context is nil a panic will occur. In the future the SDK may create
6880// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6881// for more information on using Contexts.
6882func (c *IoT) DeprecateThingTypeWithContext(ctx aws.Context, input *DeprecateThingTypeInput, opts ...request.Option) (*DeprecateThingTypeOutput, error) {
6883	req, out := c.DeprecateThingTypeRequest(input)
6884	req.SetContext(ctx)
6885	req.ApplyOptions(opts...)
6886	return out, req.Send()
6887}
6888
6889const opDescribeAccountAuditConfiguration = "DescribeAccountAuditConfiguration"
6890
6891// DescribeAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
6892// client's request for the DescribeAccountAuditConfiguration operation. The "output" return
6893// value will be populated with the request's response once the request completes
6894// successfully.
6895//
6896// Use "Send" method on the returned Request to send the API call to the service.
6897// the "output" return value is not valid until after Send returns without error.
6898//
6899// See DescribeAccountAuditConfiguration for more information on using the DescribeAccountAuditConfiguration
6900// API call, and error handling.
6901//
6902// This method is useful when you want to inject custom logic or configuration
6903// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6904//
6905//
6906//    // Example sending a request using the DescribeAccountAuditConfigurationRequest method.
6907//    req, resp := client.DescribeAccountAuditConfigurationRequest(params)
6908//
6909//    err := req.Send()
6910//    if err == nil { // resp is now filled
6911//        fmt.Println(resp)
6912//    }
6913func (c *IoT) DescribeAccountAuditConfigurationRequest(input *DescribeAccountAuditConfigurationInput) (req *request.Request, output *DescribeAccountAuditConfigurationOutput) {
6914	op := &request.Operation{
6915		Name:       opDescribeAccountAuditConfiguration,
6916		HTTPMethod: "GET",
6917		HTTPPath:   "/audit/configuration",
6918	}
6919
6920	if input == nil {
6921		input = &DescribeAccountAuditConfigurationInput{}
6922	}
6923
6924	output = &DescribeAccountAuditConfigurationOutput{}
6925	req = c.newRequest(op, input, output)
6926	return
6927}
6928
6929// DescribeAccountAuditConfiguration API operation for AWS IoT.
6930//
6931// Gets information about the Device Defender audit settings for this account.
6932// Settings include how audit notifications are sent and which audit checks
6933// are enabled or disabled.
6934//
6935// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6936// with awserr.Error's Code and Message methods to get detailed information about
6937// the error.
6938//
6939// See the AWS API reference guide for AWS IoT's
6940// API operation DescribeAccountAuditConfiguration for usage and error information.
6941//
6942// Returned Error Types:
6943//   * ThrottlingException
6944//   The rate exceeds the limit.
6945//
6946//   * InternalFailureException
6947//   An unexpected error has occurred.
6948//
6949func (c *IoT) DescribeAccountAuditConfiguration(input *DescribeAccountAuditConfigurationInput) (*DescribeAccountAuditConfigurationOutput, error) {
6950	req, out := c.DescribeAccountAuditConfigurationRequest(input)
6951	return out, req.Send()
6952}
6953
6954// DescribeAccountAuditConfigurationWithContext is the same as DescribeAccountAuditConfiguration with the addition of
6955// the ability to pass a context and additional request options.
6956//
6957// See DescribeAccountAuditConfiguration for details on how to use this API operation.
6958//
6959// The context must be non-nil and will be used for request cancellation. If
6960// the context is nil a panic will occur. In the future the SDK may create
6961// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6962// for more information on using Contexts.
6963func (c *IoT) DescribeAccountAuditConfigurationWithContext(ctx aws.Context, input *DescribeAccountAuditConfigurationInput, opts ...request.Option) (*DescribeAccountAuditConfigurationOutput, error) {
6964	req, out := c.DescribeAccountAuditConfigurationRequest(input)
6965	req.SetContext(ctx)
6966	req.ApplyOptions(opts...)
6967	return out, req.Send()
6968}
6969
6970const opDescribeAuditFinding = "DescribeAuditFinding"
6971
6972// DescribeAuditFindingRequest generates a "aws/request.Request" representing the
6973// client's request for the DescribeAuditFinding operation. The "output" return
6974// value will be populated with the request's response once the request completes
6975// successfully.
6976//
6977// Use "Send" method on the returned Request to send the API call to the service.
6978// the "output" return value is not valid until after Send returns without error.
6979//
6980// See DescribeAuditFinding for more information on using the DescribeAuditFinding
6981// API call, and error handling.
6982//
6983// This method is useful when you want to inject custom logic or configuration
6984// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6985//
6986//
6987//    // Example sending a request using the DescribeAuditFindingRequest method.
6988//    req, resp := client.DescribeAuditFindingRequest(params)
6989//
6990//    err := req.Send()
6991//    if err == nil { // resp is now filled
6992//        fmt.Println(resp)
6993//    }
6994func (c *IoT) DescribeAuditFindingRequest(input *DescribeAuditFindingInput) (req *request.Request, output *DescribeAuditFindingOutput) {
6995	op := &request.Operation{
6996		Name:       opDescribeAuditFinding,
6997		HTTPMethod: "GET",
6998		HTTPPath:   "/audit/findings/{findingId}",
6999	}
7000
7001	if input == nil {
7002		input = &DescribeAuditFindingInput{}
7003	}
7004
7005	output = &DescribeAuditFindingOutput{}
7006	req = c.newRequest(op, input, output)
7007	return
7008}
7009
7010// DescribeAuditFinding API operation for AWS IoT.
7011//
7012// Gets information about a single audit finding. Properties include the reason
7013// for noncompliance, the severity of the issue, and the start time when the
7014// audit that returned the finding.
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 DescribeAuditFinding for usage and error information.
7022//
7023// Returned Error Types:
7024//   * ResourceNotFoundException
7025//   The specified resource does not exist.
7026//
7027//   * InvalidRequestException
7028//   The request is not valid.
7029//
7030//   * ThrottlingException
7031//   The rate exceeds the limit.
7032//
7033//   * InternalFailureException
7034//   An unexpected error has occurred.
7035//
7036func (c *IoT) DescribeAuditFinding(input *DescribeAuditFindingInput) (*DescribeAuditFindingOutput, error) {
7037	req, out := c.DescribeAuditFindingRequest(input)
7038	return out, req.Send()
7039}
7040
7041// DescribeAuditFindingWithContext is the same as DescribeAuditFinding with the addition of
7042// the ability to pass a context and additional request options.
7043//
7044// See DescribeAuditFinding 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) DescribeAuditFindingWithContext(ctx aws.Context, input *DescribeAuditFindingInput, opts ...request.Option) (*DescribeAuditFindingOutput, error) {
7051	req, out := c.DescribeAuditFindingRequest(input)
7052	req.SetContext(ctx)
7053	req.ApplyOptions(opts...)
7054	return out, req.Send()
7055}
7056
7057const opDescribeAuditMitigationActionsTask = "DescribeAuditMitigationActionsTask"
7058
7059// DescribeAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
7060// client's request for the DescribeAuditMitigationActionsTask 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 DescribeAuditMitigationActionsTask for more information on using the DescribeAuditMitigationActionsTask
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 DescribeAuditMitigationActionsTaskRequest method.
7075//    req, resp := client.DescribeAuditMitigationActionsTaskRequest(params)
7076//
7077//    err := req.Send()
7078//    if err == nil { // resp is now filled
7079//        fmt.Println(resp)
7080//    }
7081func (c *IoT) DescribeAuditMitigationActionsTaskRequest(input *DescribeAuditMitigationActionsTaskInput) (req *request.Request, output *DescribeAuditMitigationActionsTaskOutput) {
7082	op := &request.Operation{
7083		Name:       opDescribeAuditMitigationActionsTask,
7084		HTTPMethod: "GET",
7085		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}",
7086	}
7087
7088	if input == nil {
7089		input = &DescribeAuditMitigationActionsTaskInput{}
7090	}
7091
7092	output = &DescribeAuditMitigationActionsTaskOutput{}
7093	req = c.newRequest(op, input, output)
7094	return
7095}
7096
7097// DescribeAuditMitigationActionsTask API operation for AWS IoT.
7098//
7099// Gets information about an audit mitigation task that is used to apply mitigation
7100// actions to a set of audit findings. Properties include the actions being
7101// applied, the audit checks to which they're being applied, the task status,
7102// and aggregated task statistics.
7103//
7104// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7105// with awserr.Error's Code and Message methods to get detailed information about
7106// the error.
7107//
7108// See the AWS API reference guide for AWS IoT's
7109// API operation DescribeAuditMitigationActionsTask for usage and error information.
7110//
7111// Returned Error Types:
7112//   * InvalidRequestException
7113//   The request is not valid.
7114//
7115//   * ResourceNotFoundException
7116//   The specified resource does not exist.
7117//
7118//   * ThrottlingException
7119//   The rate exceeds the limit.
7120//
7121//   * InternalFailureException
7122//   An unexpected error has occurred.
7123//
7124func (c *IoT) DescribeAuditMitigationActionsTask(input *DescribeAuditMitigationActionsTaskInput) (*DescribeAuditMitigationActionsTaskOutput, error) {
7125	req, out := c.DescribeAuditMitigationActionsTaskRequest(input)
7126	return out, req.Send()
7127}
7128
7129// DescribeAuditMitigationActionsTaskWithContext is the same as DescribeAuditMitigationActionsTask with the addition of
7130// the ability to pass a context and additional request options.
7131//
7132// See DescribeAuditMitigationActionsTask for details on how to use this API operation.
7133//
7134// The context must be non-nil and will be used for request cancellation. If
7135// the context is nil a panic will occur. In the future the SDK may create
7136// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7137// for more information on using Contexts.
7138func (c *IoT) DescribeAuditMitigationActionsTaskWithContext(ctx aws.Context, input *DescribeAuditMitigationActionsTaskInput, opts ...request.Option) (*DescribeAuditMitigationActionsTaskOutput, error) {
7139	req, out := c.DescribeAuditMitigationActionsTaskRequest(input)
7140	req.SetContext(ctx)
7141	req.ApplyOptions(opts...)
7142	return out, req.Send()
7143}
7144
7145const opDescribeAuditSuppression = "DescribeAuditSuppression"
7146
7147// DescribeAuditSuppressionRequest generates a "aws/request.Request" representing the
7148// client's request for the DescribeAuditSuppression operation. The "output" return
7149// value will be populated with the request's response once the request completes
7150// successfully.
7151//
7152// Use "Send" method on the returned Request to send the API call to the service.
7153// the "output" return value is not valid until after Send returns without error.
7154//
7155// See DescribeAuditSuppression for more information on using the DescribeAuditSuppression
7156// API call, and error handling.
7157//
7158// This method is useful when you want to inject custom logic or configuration
7159// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7160//
7161//
7162//    // Example sending a request using the DescribeAuditSuppressionRequest method.
7163//    req, resp := client.DescribeAuditSuppressionRequest(params)
7164//
7165//    err := req.Send()
7166//    if err == nil { // resp is now filled
7167//        fmt.Println(resp)
7168//    }
7169func (c *IoT) DescribeAuditSuppressionRequest(input *DescribeAuditSuppressionInput) (req *request.Request, output *DescribeAuditSuppressionOutput) {
7170	op := &request.Operation{
7171		Name:       opDescribeAuditSuppression,
7172		HTTPMethod: "POST",
7173		HTTPPath:   "/audit/suppressions/describe",
7174	}
7175
7176	if input == nil {
7177		input = &DescribeAuditSuppressionInput{}
7178	}
7179
7180	output = &DescribeAuditSuppressionOutput{}
7181	req = c.newRequest(op, input, output)
7182	return
7183}
7184
7185// DescribeAuditSuppression API operation for AWS IoT.
7186//
7187// Gets information about a Device Defender audit suppression.
7188//
7189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7190// with awserr.Error's Code and Message methods to get detailed information about
7191// the error.
7192//
7193// See the AWS API reference guide for AWS IoT's
7194// API operation DescribeAuditSuppression for usage and error information.
7195//
7196// Returned Error Types:
7197//   * InvalidRequestException
7198//   The request is not valid.
7199//
7200//   * ResourceNotFoundException
7201//   The specified resource does not exist.
7202//
7203//   * ThrottlingException
7204//   The rate exceeds the limit.
7205//
7206//   * InternalFailureException
7207//   An unexpected error has occurred.
7208//
7209func (c *IoT) DescribeAuditSuppression(input *DescribeAuditSuppressionInput) (*DescribeAuditSuppressionOutput, error) {
7210	req, out := c.DescribeAuditSuppressionRequest(input)
7211	return out, req.Send()
7212}
7213
7214// DescribeAuditSuppressionWithContext is the same as DescribeAuditSuppression with the addition of
7215// the ability to pass a context and additional request options.
7216//
7217// See DescribeAuditSuppression for details on how to use this API operation.
7218//
7219// The context must be non-nil and will be used for request cancellation. If
7220// the context is nil a panic will occur. In the future the SDK may create
7221// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7222// for more information on using Contexts.
7223func (c *IoT) DescribeAuditSuppressionWithContext(ctx aws.Context, input *DescribeAuditSuppressionInput, opts ...request.Option) (*DescribeAuditSuppressionOutput, error) {
7224	req, out := c.DescribeAuditSuppressionRequest(input)
7225	req.SetContext(ctx)
7226	req.ApplyOptions(opts...)
7227	return out, req.Send()
7228}
7229
7230const opDescribeAuditTask = "DescribeAuditTask"
7231
7232// DescribeAuditTaskRequest generates a "aws/request.Request" representing the
7233// client's request for the DescribeAuditTask operation. The "output" return
7234// value will be populated with the request's response once the request completes
7235// successfully.
7236//
7237// Use "Send" method on the returned Request to send the API call to the service.
7238// the "output" return value is not valid until after Send returns without error.
7239//
7240// See DescribeAuditTask for more information on using the DescribeAuditTask
7241// API call, and error handling.
7242//
7243// This method is useful when you want to inject custom logic or configuration
7244// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7245//
7246//
7247//    // Example sending a request using the DescribeAuditTaskRequest method.
7248//    req, resp := client.DescribeAuditTaskRequest(params)
7249//
7250//    err := req.Send()
7251//    if err == nil { // resp is now filled
7252//        fmt.Println(resp)
7253//    }
7254func (c *IoT) DescribeAuditTaskRequest(input *DescribeAuditTaskInput) (req *request.Request, output *DescribeAuditTaskOutput) {
7255	op := &request.Operation{
7256		Name:       opDescribeAuditTask,
7257		HTTPMethod: "GET",
7258		HTTPPath:   "/audit/tasks/{taskId}",
7259	}
7260
7261	if input == nil {
7262		input = &DescribeAuditTaskInput{}
7263	}
7264
7265	output = &DescribeAuditTaskOutput{}
7266	req = c.newRequest(op, input, output)
7267	return
7268}
7269
7270// DescribeAuditTask API operation for AWS IoT.
7271//
7272// Gets information about a Device Defender audit.
7273//
7274// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7275// with awserr.Error's Code and Message methods to get detailed information about
7276// the error.
7277//
7278// See the AWS API reference guide for AWS IoT's
7279// API operation DescribeAuditTask for usage and error information.
7280//
7281// Returned Error Types:
7282//   * InvalidRequestException
7283//   The request is not valid.
7284//
7285//   * ResourceNotFoundException
7286//   The specified resource does not exist.
7287//
7288//   * ThrottlingException
7289//   The rate exceeds the limit.
7290//
7291//   * InternalFailureException
7292//   An unexpected error has occurred.
7293//
7294func (c *IoT) DescribeAuditTask(input *DescribeAuditTaskInput) (*DescribeAuditTaskOutput, error) {
7295	req, out := c.DescribeAuditTaskRequest(input)
7296	return out, req.Send()
7297}
7298
7299// DescribeAuditTaskWithContext is the same as DescribeAuditTask with the addition of
7300// the ability to pass a context and additional request options.
7301//
7302// See DescribeAuditTask for details on how to use this API operation.
7303//
7304// The context must be non-nil and will be used for request cancellation. If
7305// the context is nil a panic will occur. In the future the SDK may create
7306// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7307// for more information on using Contexts.
7308func (c *IoT) DescribeAuditTaskWithContext(ctx aws.Context, input *DescribeAuditTaskInput, opts ...request.Option) (*DescribeAuditTaskOutput, error) {
7309	req, out := c.DescribeAuditTaskRequest(input)
7310	req.SetContext(ctx)
7311	req.ApplyOptions(opts...)
7312	return out, req.Send()
7313}
7314
7315const opDescribeAuthorizer = "DescribeAuthorizer"
7316
7317// DescribeAuthorizerRequest generates a "aws/request.Request" representing the
7318// client's request for the DescribeAuthorizer operation. The "output" return
7319// value will be populated with the request's response once the request completes
7320// successfully.
7321//
7322// Use "Send" method on the returned Request to send the API call to the service.
7323// the "output" return value is not valid until after Send returns without error.
7324//
7325// See DescribeAuthorizer for more information on using the DescribeAuthorizer
7326// API call, and error handling.
7327//
7328// This method is useful when you want to inject custom logic or configuration
7329// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7330//
7331//
7332//    // Example sending a request using the DescribeAuthorizerRequest method.
7333//    req, resp := client.DescribeAuthorizerRequest(params)
7334//
7335//    err := req.Send()
7336//    if err == nil { // resp is now filled
7337//        fmt.Println(resp)
7338//    }
7339func (c *IoT) DescribeAuthorizerRequest(input *DescribeAuthorizerInput) (req *request.Request, output *DescribeAuthorizerOutput) {
7340	op := &request.Operation{
7341		Name:       opDescribeAuthorizer,
7342		HTTPMethod: "GET",
7343		HTTPPath:   "/authorizer/{authorizerName}",
7344	}
7345
7346	if input == nil {
7347		input = &DescribeAuthorizerInput{}
7348	}
7349
7350	output = &DescribeAuthorizerOutput{}
7351	req = c.newRequest(op, input, output)
7352	return
7353}
7354
7355// DescribeAuthorizer API operation for AWS IoT.
7356//
7357// Describes an authorizer.
7358//
7359// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7360// with awserr.Error's Code and Message methods to get detailed information about
7361// the error.
7362//
7363// See the AWS API reference guide for AWS IoT's
7364// API operation DescribeAuthorizer for usage and error information.
7365//
7366// Returned Error Types:
7367//   * ResourceNotFoundException
7368//   The specified resource does not exist.
7369//
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//
7385func (c *IoT) DescribeAuthorizer(input *DescribeAuthorizerInput) (*DescribeAuthorizerOutput, error) {
7386	req, out := c.DescribeAuthorizerRequest(input)
7387	return out, req.Send()
7388}
7389
7390// DescribeAuthorizerWithContext is the same as DescribeAuthorizer with the addition of
7391// the ability to pass a context and additional request options.
7392//
7393// See DescribeAuthorizer for details on how to use this API operation.
7394//
7395// The context must be non-nil and will be used for request cancellation. If
7396// the context is nil a panic will occur. In the future the SDK may create
7397// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7398// for more information on using Contexts.
7399func (c *IoT) DescribeAuthorizerWithContext(ctx aws.Context, input *DescribeAuthorizerInput, opts ...request.Option) (*DescribeAuthorizerOutput, error) {
7400	req, out := c.DescribeAuthorizerRequest(input)
7401	req.SetContext(ctx)
7402	req.ApplyOptions(opts...)
7403	return out, req.Send()
7404}
7405
7406const opDescribeBillingGroup = "DescribeBillingGroup"
7407
7408// DescribeBillingGroupRequest generates a "aws/request.Request" representing the
7409// client's request for the DescribeBillingGroup operation. The "output" return
7410// value will be populated with the request's response once the request completes
7411// successfully.
7412//
7413// Use "Send" method on the returned Request to send the API call to the service.
7414// the "output" return value is not valid until after Send returns without error.
7415//
7416// See DescribeBillingGroup for more information on using the DescribeBillingGroup
7417// API call, and error handling.
7418//
7419// This method is useful when you want to inject custom logic or configuration
7420// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7421//
7422//
7423//    // Example sending a request using the DescribeBillingGroupRequest method.
7424//    req, resp := client.DescribeBillingGroupRequest(params)
7425//
7426//    err := req.Send()
7427//    if err == nil { // resp is now filled
7428//        fmt.Println(resp)
7429//    }
7430func (c *IoT) DescribeBillingGroupRequest(input *DescribeBillingGroupInput) (req *request.Request, output *DescribeBillingGroupOutput) {
7431	op := &request.Operation{
7432		Name:       opDescribeBillingGroup,
7433		HTTPMethod: "GET",
7434		HTTPPath:   "/billing-groups/{billingGroupName}",
7435	}
7436
7437	if input == nil {
7438		input = &DescribeBillingGroupInput{}
7439	}
7440
7441	output = &DescribeBillingGroupOutput{}
7442	req = c.newRequest(op, input, output)
7443	return
7444}
7445
7446// DescribeBillingGroup API operation for AWS IoT.
7447//
7448// Returns information about a billing group.
7449//
7450// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7451// with awserr.Error's Code and Message methods to get detailed information about
7452// the error.
7453//
7454// See the AWS API reference guide for AWS IoT's
7455// API operation DescribeBillingGroup for usage and error information.
7456//
7457// Returned Error Types:
7458//   * InvalidRequestException
7459//   The request is not valid.
7460//
7461//   * ThrottlingException
7462//   The rate exceeds the limit.
7463//
7464//   * InternalFailureException
7465//   An unexpected error has occurred.
7466//
7467//   * ResourceNotFoundException
7468//   The specified resource does not exist.
7469//
7470func (c *IoT) DescribeBillingGroup(input *DescribeBillingGroupInput) (*DescribeBillingGroupOutput, error) {
7471	req, out := c.DescribeBillingGroupRequest(input)
7472	return out, req.Send()
7473}
7474
7475// DescribeBillingGroupWithContext is the same as DescribeBillingGroup with the addition of
7476// the ability to pass a context and additional request options.
7477//
7478// See DescribeBillingGroup for details on how to use this API operation.
7479//
7480// The context must be non-nil and will be used for request cancellation. If
7481// the context is nil a panic will occur. In the future the SDK may create
7482// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7483// for more information on using Contexts.
7484func (c *IoT) DescribeBillingGroupWithContext(ctx aws.Context, input *DescribeBillingGroupInput, opts ...request.Option) (*DescribeBillingGroupOutput, error) {
7485	req, out := c.DescribeBillingGroupRequest(input)
7486	req.SetContext(ctx)
7487	req.ApplyOptions(opts...)
7488	return out, req.Send()
7489}
7490
7491const opDescribeCACertificate = "DescribeCACertificate"
7492
7493// DescribeCACertificateRequest generates a "aws/request.Request" representing the
7494// client's request for the DescribeCACertificate operation. The "output" return
7495// value will be populated with the request's response once the request completes
7496// successfully.
7497//
7498// Use "Send" method on the returned Request to send the API call to the service.
7499// the "output" return value is not valid until after Send returns without error.
7500//
7501// See DescribeCACertificate for more information on using the DescribeCACertificate
7502// API call, and error handling.
7503//
7504// This method is useful when you want to inject custom logic or configuration
7505// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7506//
7507//
7508//    // Example sending a request using the DescribeCACertificateRequest method.
7509//    req, resp := client.DescribeCACertificateRequest(params)
7510//
7511//    err := req.Send()
7512//    if err == nil { // resp is now filled
7513//        fmt.Println(resp)
7514//    }
7515func (c *IoT) DescribeCACertificateRequest(input *DescribeCACertificateInput) (req *request.Request, output *DescribeCACertificateOutput) {
7516	op := &request.Operation{
7517		Name:       opDescribeCACertificate,
7518		HTTPMethod: "GET",
7519		HTTPPath:   "/cacertificate/{caCertificateId}",
7520	}
7521
7522	if input == nil {
7523		input = &DescribeCACertificateInput{}
7524	}
7525
7526	output = &DescribeCACertificateOutput{}
7527	req = c.newRequest(op, input, output)
7528	return
7529}
7530
7531// DescribeCACertificate API operation for AWS IoT.
7532//
7533// Describes a registered CA certificate.
7534//
7535// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7536// with awserr.Error's Code and Message methods to get detailed information about
7537// the error.
7538//
7539// See the AWS API reference guide for AWS IoT's
7540// API operation DescribeCACertificate for usage and error information.
7541//
7542// Returned Error Types:
7543//   * InvalidRequestException
7544//   The request is not valid.
7545//
7546//   * ThrottlingException
7547//   The rate exceeds the limit.
7548//
7549//   * UnauthorizedException
7550//   You are not authorized to perform this operation.
7551//
7552//   * ServiceUnavailableException
7553//   The service is temporarily unavailable.
7554//
7555//   * InternalFailureException
7556//   An unexpected error has occurred.
7557//
7558//   * ResourceNotFoundException
7559//   The specified resource does not exist.
7560//
7561func (c *IoT) DescribeCACertificate(input *DescribeCACertificateInput) (*DescribeCACertificateOutput, error) {
7562	req, out := c.DescribeCACertificateRequest(input)
7563	return out, req.Send()
7564}
7565
7566// DescribeCACertificateWithContext is the same as DescribeCACertificate with the addition of
7567// the ability to pass a context and additional request options.
7568//
7569// See DescribeCACertificate for details on how to use this API operation.
7570//
7571// The context must be non-nil and will be used for request cancellation. If
7572// the context is nil a panic will occur. In the future the SDK may create
7573// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7574// for more information on using Contexts.
7575func (c *IoT) DescribeCACertificateWithContext(ctx aws.Context, input *DescribeCACertificateInput, opts ...request.Option) (*DescribeCACertificateOutput, error) {
7576	req, out := c.DescribeCACertificateRequest(input)
7577	req.SetContext(ctx)
7578	req.ApplyOptions(opts...)
7579	return out, req.Send()
7580}
7581
7582const opDescribeCertificate = "DescribeCertificate"
7583
7584// DescribeCertificateRequest generates a "aws/request.Request" representing the
7585// client's request for the DescribeCertificate operation. The "output" return
7586// value will be populated with the request's response once the request completes
7587// successfully.
7588//
7589// Use "Send" method on the returned Request to send the API call to the service.
7590// the "output" return value is not valid until after Send returns without error.
7591//
7592// See DescribeCertificate for more information on using the DescribeCertificate
7593// API call, and error handling.
7594//
7595// This method is useful when you want to inject custom logic or configuration
7596// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7597//
7598//
7599//    // Example sending a request using the DescribeCertificateRequest method.
7600//    req, resp := client.DescribeCertificateRequest(params)
7601//
7602//    err := req.Send()
7603//    if err == nil { // resp is now filled
7604//        fmt.Println(resp)
7605//    }
7606func (c *IoT) DescribeCertificateRequest(input *DescribeCertificateInput) (req *request.Request, output *DescribeCertificateOutput) {
7607	op := &request.Operation{
7608		Name:       opDescribeCertificate,
7609		HTTPMethod: "GET",
7610		HTTPPath:   "/certificates/{certificateId}",
7611	}
7612
7613	if input == nil {
7614		input = &DescribeCertificateInput{}
7615	}
7616
7617	output = &DescribeCertificateOutput{}
7618	req = c.newRequest(op, input, output)
7619	return
7620}
7621
7622// DescribeCertificate API operation for AWS IoT.
7623//
7624// Gets information about the specified certificate.
7625//
7626// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7627// with awserr.Error's Code and Message methods to get detailed information about
7628// the error.
7629//
7630// See the AWS API reference guide for AWS IoT's
7631// API operation DescribeCertificate for usage and error information.
7632//
7633// Returned Error Types:
7634//   * InvalidRequestException
7635//   The request is not valid.
7636//
7637//   * ThrottlingException
7638//   The rate exceeds the limit.
7639//
7640//   * UnauthorizedException
7641//   You are not authorized to perform this operation.
7642//
7643//   * ServiceUnavailableException
7644//   The service is temporarily unavailable.
7645//
7646//   * InternalFailureException
7647//   An unexpected error has occurred.
7648//
7649//   * ResourceNotFoundException
7650//   The specified resource does not exist.
7651//
7652func (c *IoT) DescribeCertificate(input *DescribeCertificateInput) (*DescribeCertificateOutput, error) {
7653	req, out := c.DescribeCertificateRequest(input)
7654	return out, req.Send()
7655}
7656
7657// DescribeCertificateWithContext is the same as DescribeCertificate with the addition of
7658// the ability to pass a context and additional request options.
7659//
7660// See DescribeCertificate for details on how to use this API operation.
7661//
7662// The context must be non-nil and will be used for request cancellation. If
7663// the context is nil a panic will occur. In the future the SDK may create
7664// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7665// for more information on using Contexts.
7666func (c *IoT) DescribeCertificateWithContext(ctx aws.Context, input *DescribeCertificateInput, opts ...request.Option) (*DescribeCertificateOutput, error) {
7667	req, out := c.DescribeCertificateRequest(input)
7668	req.SetContext(ctx)
7669	req.ApplyOptions(opts...)
7670	return out, req.Send()
7671}
7672
7673const opDescribeCustomMetric = "DescribeCustomMetric"
7674
7675// DescribeCustomMetricRequest generates a "aws/request.Request" representing the
7676// client's request for the DescribeCustomMetric operation. The "output" return
7677// value will be populated with the request's response once the request completes
7678// successfully.
7679//
7680// Use "Send" method on the returned Request to send the API call to the service.
7681// the "output" return value is not valid until after Send returns without error.
7682//
7683// See DescribeCustomMetric for more information on using the DescribeCustomMetric
7684// API call, and error handling.
7685//
7686// This method is useful when you want to inject custom logic or configuration
7687// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7688//
7689//
7690//    // Example sending a request using the DescribeCustomMetricRequest method.
7691//    req, resp := client.DescribeCustomMetricRequest(params)
7692//
7693//    err := req.Send()
7694//    if err == nil { // resp is now filled
7695//        fmt.Println(resp)
7696//    }
7697func (c *IoT) DescribeCustomMetricRequest(input *DescribeCustomMetricInput) (req *request.Request, output *DescribeCustomMetricOutput) {
7698	op := &request.Operation{
7699		Name:       opDescribeCustomMetric,
7700		HTTPMethod: "GET",
7701		HTTPPath:   "/custom-metric/{metricName}",
7702	}
7703
7704	if input == nil {
7705		input = &DescribeCustomMetricInput{}
7706	}
7707
7708	output = &DescribeCustomMetricOutput{}
7709	req = c.newRequest(op, input, output)
7710	return
7711}
7712
7713// DescribeCustomMetric API operation for AWS IoT.
7714//
7715// Gets information about a Device Defender detect custom metric.
7716//
7717// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7718// with awserr.Error's Code and Message methods to get detailed information about
7719// the error.
7720//
7721// See the AWS API reference guide for AWS IoT's
7722// API operation DescribeCustomMetric for usage and error information.
7723//
7724// Returned Error Types:
7725//   * InvalidRequestException
7726//   The request is not valid.
7727//
7728//   * ResourceNotFoundException
7729//   The specified resource does not exist.
7730//
7731//   * ThrottlingException
7732//   The rate exceeds the limit.
7733//
7734//   * InternalFailureException
7735//   An unexpected error has occurred.
7736//
7737func (c *IoT) DescribeCustomMetric(input *DescribeCustomMetricInput) (*DescribeCustomMetricOutput, error) {
7738	req, out := c.DescribeCustomMetricRequest(input)
7739	return out, req.Send()
7740}
7741
7742// DescribeCustomMetricWithContext is the same as DescribeCustomMetric with the addition of
7743// the ability to pass a context and additional request options.
7744//
7745// See DescribeCustomMetric for details on how to use this API operation.
7746//
7747// The context must be non-nil and will be used for request cancellation. If
7748// the context is nil a panic will occur. In the future the SDK may create
7749// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7750// for more information on using Contexts.
7751func (c *IoT) DescribeCustomMetricWithContext(ctx aws.Context, input *DescribeCustomMetricInput, opts ...request.Option) (*DescribeCustomMetricOutput, error) {
7752	req, out := c.DescribeCustomMetricRequest(input)
7753	req.SetContext(ctx)
7754	req.ApplyOptions(opts...)
7755	return out, req.Send()
7756}
7757
7758const opDescribeDefaultAuthorizer = "DescribeDefaultAuthorizer"
7759
7760// DescribeDefaultAuthorizerRequest generates a "aws/request.Request" representing the
7761// client's request for the DescribeDefaultAuthorizer operation. The "output" return
7762// value will be populated with the request's response once the request completes
7763// successfully.
7764//
7765// Use "Send" method on the returned Request to send the API call to the service.
7766// the "output" return value is not valid until after Send returns without error.
7767//
7768// See DescribeDefaultAuthorizer for more information on using the DescribeDefaultAuthorizer
7769// API call, and error handling.
7770//
7771// This method is useful when you want to inject custom logic or configuration
7772// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7773//
7774//
7775//    // Example sending a request using the DescribeDefaultAuthorizerRequest method.
7776//    req, resp := client.DescribeDefaultAuthorizerRequest(params)
7777//
7778//    err := req.Send()
7779//    if err == nil { // resp is now filled
7780//        fmt.Println(resp)
7781//    }
7782func (c *IoT) DescribeDefaultAuthorizerRequest(input *DescribeDefaultAuthorizerInput) (req *request.Request, output *DescribeDefaultAuthorizerOutput) {
7783	op := &request.Operation{
7784		Name:       opDescribeDefaultAuthorizer,
7785		HTTPMethod: "GET",
7786		HTTPPath:   "/default-authorizer",
7787	}
7788
7789	if input == nil {
7790		input = &DescribeDefaultAuthorizerInput{}
7791	}
7792
7793	output = &DescribeDefaultAuthorizerOutput{}
7794	req = c.newRequest(op, input, output)
7795	return
7796}
7797
7798// DescribeDefaultAuthorizer API operation for AWS IoT.
7799//
7800// Describes the default authorizer.
7801//
7802// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7803// with awserr.Error's Code and Message methods to get detailed information about
7804// the error.
7805//
7806// See the AWS API reference guide for AWS IoT's
7807// API operation DescribeDefaultAuthorizer for usage and error information.
7808//
7809// Returned Error Types:
7810//   * ResourceNotFoundException
7811//   The specified resource does not exist.
7812//
7813//   * InvalidRequestException
7814//   The request is not valid.
7815//
7816//   * ThrottlingException
7817//   The rate exceeds the limit.
7818//
7819//   * UnauthorizedException
7820//   You are not authorized to perform this operation.
7821//
7822//   * ServiceUnavailableException
7823//   The service is temporarily unavailable.
7824//
7825//   * InternalFailureException
7826//   An unexpected error has occurred.
7827//
7828func (c *IoT) DescribeDefaultAuthorizer(input *DescribeDefaultAuthorizerInput) (*DescribeDefaultAuthorizerOutput, error) {
7829	req, out := c.DescribeDefaultAuthorizerRequest(input)
7830	return out, req.Send()
7831}
7832
7833// DescribeDefaultAuthorizerWithContext is the same as DescribeDefaultAuthorizer with the addition of
7834// the ability to pass a context and additional request options.
7835//
7836// See DescribeDefaultAuthorizer for details on how to use this API operation.
7837//
7838// The context must be non-nil and will be used for request cancellation. If
7839// the context is nil a panic will occur. In the future the SDK may create
7840// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7841// for more information on using Contexts.
7842func (c *IoT) DescribeDefaultAuthorizerWithContext(ctx aws.Context, input *DescribeDefaultAuthorizerInput, opts ...request.Option) (*DescribeDefaultAuthorizerOutput, error) {
7843	req, out := c.DescribeDefaultAuthorizerRequest(input)
7844	req.SetContext(ctx)
7845	req.ApplyOptions(opts...)
7846	return out, req.Send()
7847}
7848
7849const opDescribeDetectMitigationActionsTask = "DescribeDetectMitigationActionsTask"
7850
7851// DescribeDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
7852// client's request for the DescribeDetectMitigationActionsTask operation. The "output" return
7853// value will be populated with the request's response once the request completes
7854// successfully.
7855//
7856// Use "Send" method on the returned Request to send the API call to the service.
7857// the "output" return value is not valid until after Send returns without error.
7858//
7859// See DescribeDetectMitigationActionsTask for more information on using the DescribeDetectMitigationActionsTask
7860// API call, and error handling.
7861//
7862// This method is useful when you want to inject custom logic or configuration
7863// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7864//
7865//
7866//    // Example sending a request using the DescribeDetectMitigationActionsTaskRequest method.
7867//    req, resp := client.DescribeDetectMitigationActionsTaskRequest(params)
7868//
7869//    err := req.Send()
7870//    if err == nil { // resp is now filled
7871//        fmt.Println(resp)
7872//    }
7873func (c *IoT) DescribeDetectMitigationActionsTaskRequest(input *DescribeDetectMitigationActionsTaskInput) (req *request.Request, output *DescribeDetectMitigationActionsTaskOutput) {
7874	op := &request.Operation{
7875		Name:       opDescribeDetectMitigationActionsTask,
7876		HTTPMethod: "GET",
7877		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}",
7878	}
7879
7880	if input == nil {
7881		input = &DescribeDetectMitigationActionsTaskInput{}
7882	}
7883
7884	output = &DescribeDetectMitigationActionsTaskOutput{}
7885	req = c.newRequest(op, input, output)
7886	return
7887}
7888
7889// DescribeDetectMitigationActionsTask API operation for AWS IoT.
7890//
7891// Gets information about a Device Defender ML Detect mitigation action.
7892//
7893// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7894// with awserr.Error's Code and Message methods to get detailed information about
7895// the error.
7896//
7897// See the AWS API reference guide for AWS IoT's
7898// API operation DescribeDetectMitigationActionsTask for usage and error information.
7899//
7900// Returned Error Types:
7901//   * ResourceNotFoundException
7902//   The specified resource does not exist.
7903//
7904//   * InvalidRequestException
7905//   The request is not valid.
7906//
7907//   * ThrottlingException
7908//   The rate exceeds the limit.
7909//
7910//   * InternalFailureException
7911//   An unexpected error has occurred.
7912//
7913func (c *IoT) DescribeDetectMitigationActionsTask(input *DescribeDetectMitigationActionsTaskInput) (*DescribeDetectMitigationActionsTaskOutput, error) {
7914	req, out := c.DescribeDetectMitigationActionsTaskRequest(input)
7915	return out, req.Send()
7916}
7917
7918// DescribeDetectMitigationActionsTaskWithContext is the same as DescribeDetectMitigationActionsTask with the addition of
7919// the ability to pass a context and additional request options.
7920//
7921// See DescribeDetectMitigationActionsTask for details on how to use this API operation.
7922//
7923// The context must be non-nil and will be used for request cancellation. If
7924// the context is nil a panic will occur. In the future the SDK may create
7925// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7926// for more information on using Contexts.
7927func (c *IoT) DescribeDetectMitigationActionsTaskWithContext(ctx aws.Context, input *DescribeDetectMitigationActionsTaskInput, opts ...request.Option) (*DescribeDetectMitigationActionsTaskOutput, error) {
7928	req, out := c.DescribeDetectMitigationActionsTaskRequest(input)
7929	req.SetContext(ctx)
7930	req.ApplyOptions(opts...)
7931	return out, req.Send()
7932}
7933
7934const opDescribeDimension = "DescribeDimension"
7935
7936// DescribeDimensionRequest generates a "aws/request.Request" representing the
7937// client's request for the DescribeDimension operation. The "output" return
7938// value will be populated with the request's response once the request completes
7939// successfully.
7940//
7941// Use "Send" method on the returned Request to send the API call to the service.
7942// the "output" return value is not valid until after Send returns without error.
7943//
7944// See DescribeDimension for more information on using the DescribeDimension
7945// API call, and error handling.
7946//
7947// This method is useful when you want to inject custom logic or configuration
7948// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7949//
7950//
7951//    // Example sending a request using the DescribeDimensionRequest method.
7952//    req, resp := client.DescribeDimensionRequest(params)
7953//
7954//    err := req.Send()
7955//    if err == nil { // resp is now filled
7956//        fmt.Println(resp)
7957//    }
7958func (c *IoT) DescribeDimensionRequest(input *DescribeDimensionInput) (req *request.Request, output *DescribeDimensionOutput) {
7959	op := &request.Operation{
7960		Name:       opDescribeDimension,
7961		HTTPMethod: "GET",
7962		HTTPPath:   "/dimensions/{name}",
7963	}
7964
7965	if input == nil {
7966		input = &DescribeDimensionInput{}
7967	}
7968
7969	output = &DescribeDimensionOutput{}
7970	req = c.newRequest(op, input, output)
7971	return
7972}
7973
7974// DescribeDimension API operation for AWS IoT.
7975//
7976// Provides details about a dimension that is defined in your AWS account.
7977//
7978// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7979// with awserr.Error's Code and Message methods to get detailed information about
7980// the error.
7981//
7982// See the AWS API reference guide for AWS IoT's
7983// API operation DescribeDimension for usage and error information.
7984//
7985// Returned Error Types:
7986//   * InternalFailureException
7987//   An unexpected error has occurred.
7988//
7989//   * InvalidRequestException
7990//   The request is not valid.
7991//
7992//   * ResourceNotFoundException
7993//   The specified resource does not exist.
7994//
7995//   * ThrottlingException
7996//   The rate exceeds the limit.
7997//
7998func (c *IoT) DescribeDimension(input *DescribeDimensionInput) (*DescribeDimensionOutput, error) {
7999	req, out := c.DescribeDimensionRequest(input)
8000	return out, req.Send()
8001}
8002
8003// DescribeDimensionWithContext is the same as DescribeDimension with the addition of
8004// the ability to pass a context and additional request options.
8005//
8006// See DescribeDimension for details on how to use this API operation.
8007//
8008// The context must be non-nil and will be used for request cancellation. If
8009// the context is nil a panic will occur. In the future the SDK may create
8010// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8011// for more information on using Contexts.
8012func (c *IoT) DescribeDimensionWithContext(ctx aws.Context, input *DescribeDimensionInput, opts ...request.Option) (*DescribeDimensionOutput, error) {
8013	req, out := c.DescribeDimensionRequest(input)
8014	req.SetContext(ctx)
8015	req.ApplyOptions(opts...)
8016	return out, req.Send()
8017}
8018
8019const opDescribeDomainConfiguration = "DescribeDomainConfiguration"
8020
8021// DescribeDomainConfigurationRequest generates a "aws/request.Request" representing the
8022// client's request for the DescribeDomainConfiguration operation. The "output" return
8023// value will be populated with the request's response once the request completes
8024// successfully.
8025//
8026// Use "Send" method on the returned Request to send the API call to the service.
8027// the "output" return value is not valid until after Send returns without error.
8028//
8029// See DescribeDomainConfiguration for more information on using the DescribeDomainConfiguration
8030// API call, and error handling.
8031//
8032// This method is useful when you want to inject custom logic or configuration
8033// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8034//
8035//
8036//    // Example sending a request using the DescribeDomainConfigurationRequest method.
8037//    req, resp := client.DescribeDomainConfigurationRequest(params)
8038//
8039//    err := req.Send()
8040//    if err == nil { // resp is now filled
8041//        fmt.Println(resp)
8042//    }
8043func (c *IoT) DescribeDomainConfigurationRequest(input *DescribeDomainConfigurationInput) (req *request.Request, output *DescribeDomainConfigurationOutput) {
8044	op := &request.Operation{
8045		Name:       opDescribeDomainConfiguration,
8046		HTTPMethod: "GET",
8047		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
8048	}
8049
8050	if input == nil {
8051		input = &DescribeDomainConfigurationInput{}
8052	}
8053
8054	output = &DescribeDomainConfigurationOutput{}
8055	req = c.newRequest(op, input, output)
8056	return
8057}
8058
8059// DescribeDomainConfiguration API operation for AWS IoT.
8060//
8061// Gets summary information about a domain configuration.
8062//
8063// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8064// with awserr.Error's Code and Message methods to get detailed information about
8065// the error.
8066//
8067// See the AWS API reference guide for AWS IoT's
8068// API operation DescribeDomainConfiguration for usage and error information.
8069//
8070// Returned Error Types:
8071//   * ResourceNotFoundException
8072//   The specified resource does not exist.
8073//
8074//   * ThrottlingException
8075//   The rate exceeds the limit.
8076//
8077//   * InvalidRequestException
8078//   The request is not valid.
8079//
8080//   * UnauthorizedException
8081//   You are not authorized to perform this operation.
8082//
8083//   * ServiceUnavailableException
8084//   The service is temporarily unavailable.
8085//
8086//   * InternalFailureException
8087//   An unexpected error has occurred.
8088//
8089func (c *IoT) DescribeDomainConfiguration(input *DescribeDomainConfigurationInput) (*DescribeDomainConfigurationOutput, error) {
8090	req, out := c.DescribeDomainConfigurationRequest(input)
8091	return out, req.Send()
8092}
8093
8094// DescribeDomainConfigurationWithContext is the same as DescribeDomainConfiguration with the addition of
8095// the ability to pass a context and additional request options.
8096//
8097// See DescribeDomainConfiguration for details on how to use this API operation.
8098//
8099// The context must be non-nil and will be used for request cancellation. If
8100// the context is nil a panic will occur. In the future the SDK may create
8101// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8102// for more information on using Contexts.
8103func (c *IoT) DescribeDomainConfigurationWithContext(ctx aws.Context, input *DescribeDomainConfigurationInput, opts ...request.Option) (*DescribeDomainConfigurationOutput, error) {
8104	req, out := c.DescribeDomainConfigurationRequest(input)
8105	req.SetContext(ctx)
8106	req.ApplyOptions(opts...)
8107	return out, req.Send()
8108}
8109
8110const opDescribeEndpoint = "DescribeEndpoint"
8111
8112// DescribeEndpointRequest generates a "aws/request.Request" representing the
8113// client's request for the DescribeEndpoint operation. The "output" return
8114// value will be populated with the request's response once the request completes
8115// successfully.
8116//
8117// Use "Send" method on the returned Request to send the API call to the service.
8118// the "output" return value is not valid until after Send returns without error.
8119//
8120// See DescribeEndpoint for more information on using the DescribeEndpoint
8121// API call, and error handling.
8122//
8123// This method is useful when you want to inject custom logic or configuration
8124// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8125//
8126//
8127//    // Example sending a request using the DescribeEndpointRequest method.
8128//    req, resp := client.DescribeEndpointRequest(params)
8129//
8130//    err := req.Send()
8131//    if err == nil { // resp is now filled
8132//        fmt.Println(resp)
8133//    }
8134func (c *IoT) DescribeEndpointRequest(input *DescribeEndpointInput) (req *request.Request, output *DescribeEndpointOutput) {
8135	op := &request.Operation{
8136		Name:       opDescribeEndpoint,
8137		HTTPMethod: "GET",
8138		HTTPPath:   "/endpoint",
8139	}
8140
8141	if input == nil {
8142		input = &DescribeEndpointInput{}
8143	}
8144
8145	output = &DescribeEndpointOutput{}
8146	req = c.newRequest(op, input, output)
8147	return
8148}
8149
8150// DescribeEndpoint API operation for AWS IoT.
8151//
8152// Returns a unique endpoint specific to the AWS account making the call.
8153//
8154// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8155// with awserr.Error's Code and Message methods to get detailed information about
8156// the error.
8157//
8158// See the AWS API reference guide for AWS IoT's
8159// API operation DescribeEndpoint for usage and error information.
8160//
8161// Returned Error Types:
8162//   * InternalFailureException
8163//   An unexpected error has occurred.
8164//
8165//   * InvalidRequestException
8166//   The request is not valid.
8167//
8168//   * UnauthorizedException
8169//   You are not authorized to perform this operation.
8170//
8171//   * ThrottlingException
8172//   The rate exceeds the limit.
8173//
8174func (c *IoT) DescribeEndpoint(input *DescribeEndpointInput) (*DescribeEndpointOutput, error) {
8175	req, out := c.DescribeEndpointRequest(input)
8176	return out, req.Send()
8177}
8178
8179// DescribeEndpointWithContext is the same as DescribeEndpoint with the addition of
8180// the ability to pass a context and additional request options.
8181//
8182// See DescribeEndpoint for details on how to use this API operation.
8183//
8184// The context must be non-nil and will be used for request cancellation. If
8185// the context is nil a panic will occur. In the future the SDK may create
8186// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8187// for more information on using Contexts.
8188func (c *IoT) DescribeEndpointWithContext(ctx aws.Context, input *DescribeEndpointInput, opts ...request.Option) (*DescribeEndpointOutput, error) {
8189	req, out := c.DescribeEndpointRequest(input)
8190	req.SetContext(ctx)
8191	req.ApplyOptions(opts...)
8192	return out, req.Send()
8193}
8194
8195const opDescribeEventConfigurations = "DescribeEventConfigurations"
8196
8197// DescribeEventConfigurationsRequest generates a "aws/request.Request" representing the
8198// client's request for the DescribeEventConfigurations operation. The "output" return
8199// value will be populated with the request's response once the request completes
8200// successfully.
8201//
8202// Use "Send" method on the returned Request to send the API call to the service.
8203// the "output" return value is not valid until after Send returns without error.
8204//
8205// See DescribeEventConfigurations for more information on using the DescribeEventConfigurations
8206// API call, and error handling.
8207//
8208// This method is useful when you want to inject custom logic or configuration
8209// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8210//
8211//
8212//    // Example sending a request using the DescribeEventConfigurationsRequest method.
8213//    req, resp := client.DescribeEventConfigurationsRequest(params)
8214//
8215//    err := req.Send()
8216//    if err == nil { // resp is now filled
8217//        fmt.Println(resp)
8218//    }
8219func (c *IoT) DescribeEventConfigurationsRequest(input *DescribeEventConfigurationsInput) (req *request.Request, output *DescribeEventConfigurationsOutput) {
8220	op := &request.Operation{
8221		Name:       opDescribeEventConfigurations,
8222		HTTPMethod: "GET",
8223		HTTPPath:   "/event-configurations",
8224	}
8225
8226	if input == nil {
8227		input = &DescribeEventConfigurationsInput{}
8228	}
8229
8230	output = &DescribeEventConfigurationsOutput{}
8231	req = c.newRequest(op, input, output)
8232	return
8233}
8234
8235// DescribeEventConfigurations API operation for AWS IoT.
8236//
8237// Describes event configurations.
8238//
8239// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8240// with awserr.Error's Code and Message methods to get detailed information about
8241// the error.
8242//
8243// See the AWS API reference guide for AWS IoT's
8244// API operation DescribeEventConfigurations for usage and error information.
8245//
8246// Returned Error Types:
8247//   * InternalFailureException
8248//   An unexpected error has occurred.
8249//
8250//   * ThrottlingException
8251//   The rate exceeds the limit.
8252//
8253func (c *IoT) DescribeEventConfigurations(input *DescribeEventConfigurationsInput) (*DescribeEventConfigurationsOutput, error) {
8254	req, out := c.DescribeEventConfigurationsRequest(input)
8255	return out, req.Send()
8256}
8257
8258// DescribeEventConfigurationsWithContext is the same as DescribeEventConfigurations with the addition of
8259// the ability to pass a context and additional request options.
8260//
8261// See DescribeEventConfigurations for details on how to use this API operation.
8262//
8263// The context must be non-nil and will be used for request cancellation. If
8264// the context is nil a panic will occur. In the future the SDK may create
8265// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8266// for more information on using Contexts.
8267func (c *IoT) DescribeEventConfigurationsWithContext(ctx aws.Context, input *DescribeEventConfigurationsInput, opts ...request.Option) (*DescribeEventConfigurationsOutput, error) {
8268	req, out := c.DescribeEventConfigurationsRequest(input)
8269	req.SetContext(ctx)
8270	req.ApplyOptions(opts...)
8271	return out, req.Send()
8272}
8273
8274const opDescribeIndex = "DescribeIndex"
8275
8276// DescribeIndexRequest generates a "aws/request.Request" representing the
8277// client's request for the DescribeIndex operation. The "output" return
8278// value will be populated with the request's response once the request completes
8279// successfully.
8280//
8281// Use "Send" method on the returned Request to send the API call to the service.
8282// the "output" return value is not valid until after Send returns without error.
8283//
8284// See DescribeIndex for more information on using the DescribeIndex
8285// API call, and error handling.
8286//
8287// This method is useful when you want to inject custom logic or configuration
8288// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8289//
8290//
8291//    // Example sending a request using the DescribeIndexRequest method.
8292//    req, resp := client.DescribeIndexRequest(params)
8293//
8294//    err := req.Send()
8295//    if err == nil { // resp is now filled
8296//        fmt.Println(resp)
8297//    }
8298func (c *IoT) DescribeIndexRequest(input *DescribeIndexInput) (req *request.Request, output *DescribeIndexOutput) {
8299	op := &request.Operation{
8300		Name:       opDescribeIndex,
8301		HTTPMethod: "GET",
8302		HTTPPath:   "/indices/{indexName}",
8303	}
8304
8305	if input == nil {
8306		input = &DescribeIndexInput{}
8307	}
8308
8309	output = &DescribeIndexOutput{}
8310	req = c.newRequest(op, input, output)
8311	return
8312}
8313
8314// DescribeIndex API operation for AWS IoT.
8315//
8316// Describes a search index.
8317//
8318// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8319// with awserr.Error's Code and Message methods to get detailed information about
8320// the error.
8321//
8322// See the AWS API reference guide for AWS IoT's
8323// API operation DescribeIndex for usage and error information.
8324//
8325// Returned Error Types:
8326//   * InvalidRequestException
8327//   The request is not valid.
8328//
8329//   * ThrottlingException
8330//   The rate exceeds the limit.
8331//
8332//   * UnauthorizedException
8333//   You are not authorized to perform this operation.
8334//
8335//   * ServiceUnavailableException
8336//   The service is temporarily unavailable.
8337//
8338//   * InternalFailureException
8339//   An unexpected error has occurred.
8340//
8341//   * ResourceNotFoundException
8342//   The specified resource does not exist.
8343//
8344func (c *IoT) DescribeIndex(input *DescribeIndexInput) (*DescribeIndexOutput, error) {
8345	req, out := c.DescribeIndexRequest(input)
8346	return out, req.Send()
8347}
8348
8349// DescribeIndexWithContext is the same as DescribeIndex with the addition of
8350// the ability to pass a context and additional request options.
8351//
8352// See DescribeIndex for details on how to use this API operation.
8353//
8354// The context must be non-nil and will be used for request cancellation. If
8355// the context is nil a panic will occur. In the future the SDK may create
8356// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8357// for more information on using Contexts.
8358func (c *IoT) DescribeIndexWithContext(ctx aws.Context, input *DescribeIndexInput, opts ...request.Option) (*DescribeIndexOutput, error) {
8359	req, out := c.DescribeIndexRequest(input)
8360	req.SetContext(ctx)
8361	req.ApplyOptions(opts...)
8362	return out, req.Send()
8363}
8364
8365const opDescribeJob = "DescribeJob"
8366
8367// DescribeJobRequest generates a "aws/request.Request" representing the
8368// client's request for the DescribeJob operation. The "output" return
8369// value will be populated with the request's response once the request completes
8370// successfully.
8371//
8372// Use "Send" method on the returned Request to send the API call to the service.
8373// the "output" return value is not valid until after Send returns without error.
8374//
8375// See DescribeJob for more information on using the DescribeJob
8376// API call, and error handling.
8377//
8378// This method is useful when you want to inject custom logic or configuration
8379// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8380//
8381//
8382//    // Example sending a request using the DescribeJobRequest method.
8383//    req, resp := client.DescribeJobRequest(params)
8384//
8385//    err := req.Send()
8386//    if err == nil { // resp is now filled
8387//        fmt.Println(resp)
8388//    }
8389func (c *IoT) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
8390	op := &request.Operation{
8391		Name:       opDescribeJob,
8392		HTTPMethod: "GET",
8393		HTTPPath:   "/jobs/{jobId}",
8394	}
8395
8396	if input == nil {
8397		input = &DescribeJobInput{}
8398	}
8399
8400	output = &DescribeJobOutput{}
8401	req = c.newRequest(op, input, output)
8402	return
8403}
8404
8405// DescribeJob API operation for AWS IoT.
8406//
8407// Describes a job.
8408//
8409// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8410// with awserr.Error's Code and Message methods to get detailed information about
8411// the error.
8412//
8413// See the AWS API reference guide for AWS IoT's
8414// API operation DescribeJob for usage and error information.
8415//
8416// Returned Error Types:
8417//   * InvalidRequestException
8418//   The request is not valid.
8419//
8420//   * ResourceNotFoundException
8421//   The specified resource does not exist.
8422//
8423//   * ThrottlingException
8424//   The rate exceeds the limit.
8425//
8426//   * ServiceUnavailableException
8427//   The service is temporarily unavailable.
8428//
8429func (c *IoT) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
8430	req, out := c.DescribeJobRequest(input)
8431	return out, req.Send()
8432}
8433
8434// DescribeJobWithContext is the same as DescribeJob with the addition of
8435// the ability to pass a context and additional request options.
8436//
8437// See DescribeJob for details on how to use this API operation.
8438//
8439// The context must be non-nil and will be used for request cancellation. If
8440// the context is nil a panic will occur. In the future the SDK may create
8441// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8442// for more information on using Contexts.
8443func (c *IoT) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) {
8444	req, out := c.DescribeJobRequest(input)
8445	req.SetContext(ctx)
8446	req.ApplyOptions(opts...)
8447	return out, req.Send()
8448}
8449
8450const opDescribeJobExecution = "DescribeJobExecution"
8451
8452// DescribeJobExecutionRequest generates a "aws/request.Request" representing the
8453// client's request for the DescribeJobExecution operation. The "output" return
8454// value will be populated with the request's response once the request completes
8455// successfully.
8456//
8457// Use "Send" method on the returned Request to send the API call to the service.
8458// the "output" return value is not valid until after Send returns without error.
8459//
8460// See DescribeJobExecution for more information on using the DescribeJobExecution
8461// API call, and error handling.
8462//
8463// This method is useful when you want to inject custom logic or configuration
8464// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8465//
8466//
8467//    // Example sending a request using the DescribeJobExecutionRequest method.
8468//    req, resp := client.DescribeJobExecutionRequest(params)
8469//
8470//    err := req.Send()
8471//    if err == nil { // resp is now filled
8472//        fmt.Println(resp)
8473//    }
8474func (c *IoT) DescribeJobExecutionRequest(input *DescribeJobExecutionInput) (req *request.Request, output *DescribeJobExecutionOutput) {
8475	op := &request.Operation{
8476		Name:       opDescribeJobExecution,
8477		HTTPMethod: "GET",
8478		HTTPPath:   "/things/{thingName}/jobs/{jobId}",
8479	}
8480
8481	if input == nil {
8482		input = &DescribeJobExecutionInput{}
8483	}
8484
8485	output = &DescribeJobExecutionOutput{}
8486	req = c.newRequest(op, input, output)
8487	return
8488}
8489
8490// DescribeJobExecution API operation for AWS IoT.
8491//
8492// Describes a job execution.
8493//
8494// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8495// with awserr.Error's Code and Message methods to get detailed information about
8496// the error.
8497//
8498// See the AWS API reference guide for AWS IoT's
8499// API operation DescribeJobExecution for usage and error information.
8500//
8501// Returned Error Types:
8502//   * InvalidRequestException
8503//   The request is not valid.
8504//
8505//   * ResourceNotFoundException
8506//   The specified resource does not exist.
8507//
8508//   * ThrottlingException
8509//   The rate exceeds the limit.
8510//
8511//   * ServiceUnavailableException
8512//   The service is temporarily unavailable.
8513//
8514func (c *IoT) DescribeJobExecution(input *DescribeJobExecutionInput) (*DescribeJobExecutionOutput, error) {
8515	req, out := c.DescribeJobExecutionRequest(input)
8516	return out, req.Send()
8517}
8518
8519// DescribeJobExecutionWithContext is the same as DescribeJobExecution with the addition of
8520// the ability to pass a context and additional request options.
8521//
8522// See DescribeJobExecution for details on how to use this API operation.
8523//
8524// The context must be non-nil and will be used for request cancellation. If
8525// the context is nil a panic will occur. In the future the SDK may create
8526// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8527// for more information on using Contexts.
8528func (c *IoT) DescribeJobExecutionWithContext(ctx aws.Context, input *DescribeJobExecutionInput, opts ...request.Option) (*DescribeJobExecutionOutput, error) {
8529	req, out := c.DescribeJobExecutionRequest(input)
8530	req.SetContext(ctx)
8531	req.ApplyOptions(opts...)
8532	return out, req.Send()
8533}
8534
8535const opDescribeJobTemplate = "DescribeJobTemplate"
8536
8537// DescribeJobTemplateRequest generates a "aws/request.Request" representing the
8538// client's request for the DescribeJobTemplate operation. The "output" return
8539// value will be populated with the request's response once the request completes
8540// successfully.
8541//
8542// Use "Send" method on the returned Request to send the API call to the service.
8543// the "output" return value is not valid until after Send returns without error.
8544//
8545// See DescribeJobTemplate for more information on using the DescribeJobTemplate
8546// API call, and error handling.
8547//
8548// This method is useful when you want to inject custom logic or configuration
8549// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8550//
8551//
8552//    // Example sending a request using the DescribeJobTemplateRequest method.
8553//    req, resp := client.DescribeJobTemplateRequest(params)
8554//
8555//    err := req.Send()
8556//    if err == nil { // resp is now filled
8557//        fmt.Println(resp)
8558//    }
8559func (c *IoT) DescribeJobTemplateRequest(input *DescribeJobTemplateInput) (req *request.Request, output *DescribeJobTemplateOutput) {
8560	op := &request.Operation{
8561		Name:       opDescribeJobTemplate,
8562		HTTPMethod: "GET",
8563		HTTPPath:   "/job-templates/{jobTemplateId}",
8564	}
8565
8566	if input == nil {
8567		input = &DescribeJobTemplateInput{}
8568	}
8569
8570	output = &DescribeJobTemplateOutput{}
8571	req = c.newRequest(op, input, output)
8572	return
8573}
8574
8575// DescribeJobTemplate API operation for AWS IoT.
8576//
8577// Returns information about a job template.
8578//
8579// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8580// with awserr.Error's Code and Message methods to get detailed information about
8581// the error.
8582//
8583// See the AWS API reference guide for AWS IoT's
8584// API operation DescribeJobTemplate for usage and error information.
8585//
8586// Returned Error Types:
8587//   * InvalidRequestException
8588//   The request is not valid.
8589//
8590//   * ResourceNotFoundException
8591//   The specified resource does not exist.
8592//
8593//   * ThrottlingException
8594//   The rate exceeds the limit.
8595//
8596//   * InternalFailureException
8597//   An unexpected error has occurred.
8598//
8599func (c *IoT) DescribeJobTemplate(input *DescribeJobTemplateInput) (*DescribeJobTemplateOutput, error) {
8600	req, out := c.DescribeJobTemplateRequest(input)
8601	return out, req.Send()
8602}
8603
8604// DescribeJobTemplateWithContext is the same as DescribeJobTemplate with the addition of
8605// the ability to pass a context and additional request options.
8606//
8607// See DescribeJobTemplate for details on how to use this API operation.
8608//
8609// The context must be non-nil and will be used for request cancellation. If
8610// the context is nil a panic will occur. In the future the SDK may create
8611// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8612// for more information on using Contexts.
8613func (c *IoT) DescribeJobTemplateWithContext(ctx aws.Context, input *DescribeJobTemplateInput, opts ...request.Option) (*DescribeJobTemplateOutput, error) {
8614	req, out := c.DescribeJobTemplateRequest(input)
8615	req.SetContext(ctx)
8616	req.ApplyOptions(opts...)
8617	return out, req.Send()
8618}
8619
8620const opDescribeMitigationAction = "DescribeMitigationAction"
8621
8622// DescribeMitigationActionRequest generates a "aws/request.Request" representing the
8623// client's request for the DescribeMitigationAction operation. The "output" return
8624// value will be populated with the request's response once the request completes
8625// successfully.
8626//
8627// Use "Send" method on the returned Request to send the API call to the service.
8628// the "output" return value is not valid until after Send returns without error.
8629//
8630// See DescribeMitigationAction for more information on using the DescribeMitigationAction
8631// API call, and error handling.
8632//
8633// This method is useful when you want to inject custom logic or configuration
8634// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8635//
8636//
8637//    // Example sending a request using the DescribeMitigationActionRequest method.
8638//    req, resp := client.DescribeMitigationActionRequest(params)
8639//
8640//    err := req.Send()
8641//    if err == nil { // resp is now filled
8642//        fmt.Println(resp)
8643//    }
8644func (c *IoT) DescribeMitigationActionRequest(input *DescribeMitigationActionInput) (req *request.Request, output *DescribeMitigationActionOutput) {
8645	op := &request.Operation{
8646		Name:       opDescribeMitigationAction,
8647		HTTPMethod: "GET",
8648		HTTPPath:   "/mitigationactions/actions/{actionName}",
8649	}
8650
8651	if input == nil {
8652		input = &DescribeMitigationActionInput{}
8653	}
8654
8655	output = &DescribeMitigationActionOutput{}
8656	req = c.newRequest(op, input, output)
8657	return
8658}
8659
8660// DescribeMitigationAction API operation for AWS IoT.
8661//
8662// Gets information about a mitigation action.
8663//
8664// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8665// with awserr.Error's Code and Message methods to get detailed information about
8666// the error.
8667//
8668// See the AWS API reference guide for AWS IoT's
8669// API operation DescribeMitigationAction for usage and error information.
8670//
8671// Returned Error Types:
8672//   * InvalidRequestException
8673//   The request is not valid.
8674//
8675//   * ResourceNotFoundException
8676//   The specified resource does not exist.
8677//
8678//   * ThrottlingException
8679//   The rate exceeds the limit.
8680//
8681//   * InternalFailureException
8682//   An unexpected error has occurred.
8683//
8684func (c *IoT) DescribeMitigationAction(input *DescribeMitigationActionInput) (*DescribeMitigationActionOutput, error) {
8685	req, out := c.DescribeMitigationActionRequest(input)
8686	return out, req.Send()
8687}
8688
8689// DescribeMitigationActionWithContext is the same as DescribeMitigationAction with the addition of
8690// the ability to pass a context and additional request options.
8691//
8692// See DescribeMitigationAction for details on how to use this API operation.
8693//
8694// The context must be non-nil and will be used for request cancellation. If
8695// the context is nil a panic will occur. In the future the SDK may create
8696// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8697// for more information on using Contexts.
8698func (c *IoT) DescribeMitigationActionWithContext(ctx aws.Context, input *DescribeMitigationActionInput, opts ...request.Option) (*DescribeMitigationActionOutput, error) {
8699	req, out := c.DescribeMitigationActionRequest(input)
8700	req.SetContext(ctx)
8701	req.ApplyOptions(opts...)
8702	return out, req.Send()
8703}
8704
8705const opDescribeProvisioningTemplate = "DescribeProvisioningTemplate"
8706
8707// DescribeProvisioningTemplateRequest generates a "aws/request.Request" representing the
8708// client's request for the DescribeProvisioningTemplate operation. The "output" return
8709// value will be populated with the request's response once the request completes
8710// successfully.
8711//
8712// Use "Send" method on the returned Request to send the API call to the service.
8713// the "output" return value is not valid until after Send returns without error.
8714//
8715// See DescribeProvisioningTemplate for more information on using the DescribeProvisioningTemplate
8716// API call, and error handling.
8717//
8718// This method is useful when you want to inject custom logic or configuration
8719// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8720//
8721//
8722//    // Example sending a request using the DescribeProvisioningTemplateRequest method.
8723//    req, resp := client.DescribeProvisioningTemplateRequest(params)
8724//
8725//    err := req.Send()
8726//    if err == nil { // resp is now filled
8727//        fmt.Println(resp)
8728//    }
8729func (c *IoT) DescribeProvisioningTemplateRequest(input *DescribeProvisioningTemplateInput) (req *request.Request, output *DescribeProvisioningTemplateOutput) {
8730	op := &request.Operation{
8731		Name:       opDescribeProvisioningTemplate,
8732		HTTPMethod: "GET",
8733		HTTPPath:   "/provisioning-templates/{templateName}",
8734	}
8735
8736	if input == nil {
8737		input = &DescribeProvisioningTemplateInput{}
8738	}
8739
8740	output = &DescribeProvisioningTemplateOutput{}
8741	req = c.newRequest(op, input, output)
8742	return
8743}
8744
8745// DescribeProvisioningTemplate API operation for AWS IoT.
8746//
8747// Returns information about a fleet provisioning template.
8748//
8749// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8750// with awserr.Error's Code and Message methods to get detailed information about
8751// the error.
8752//
8753// See the AWS API reference guide for AWS IoT's
8754// API operation DescribeProvisioningTemplate for usage and error information.
8755//
8756// Returned Error Types:
8757//   * InternalFailureException
8758//   An unexpected error has occurred.
8759//
8760//   * InvalidRequestException
8761//   The request is not valid.
8762//
8763//   * ResourceNotFoundException
8764//   The specified resource does not exist.
8765//
8766//   * ThrottlingException
8767//   The rate exceeds the limit.
8768//
8769//   * UnauthorizedException
8770//   You are not authorized to perform this operation.
8771//
8772func (c *IoT) DescribeProvisioningTemplate(input *DescribeProvisioningTemplateInput) (*DescribeProvisioningTemplateOutput, error) {
8773	req, out := c.DescribeProvisioningTemplateRequest(input)
8774	return out, req.Send()
8775}
8776
8777// DescribeProvisioningTemplateWithContext is the same as DescribeProvisioningTemplate with the addition of
8778// the ability to pass a context and additional request options.
8779//
8780// See DescribeProvisioningTemplate for details on how to use this API operation.
8781//
8782// The context must be non-nil and will be used for request cancellation. If
8783// the context is nil a panic will occur. In the future the SDK may create
8784// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8785// for more information on using Contexts.
8786func (c *IoT) DescribeProvisioningTemplateWithContext(ctx aws.Context, input *DescribeProvisioningTemplateInput, opts ...request.Option) (*DescribeProvisioningTemplateOutput, error) {
8787	req, out := c.DescribeProvisioningTemplateRequest(input)
8788	req.SetContext(ctx)
8789	req.ApplyOptions(opts...)
8790	return out, req.Send()
8791}
8792
8793const opDescribeProvisioningTemplateVersion = "DescribeProvisioningTemplateVersion"
8794
8795// DescribeProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
8796// client's request for the DescribeProvisioningTemplateVersion operation. The "output" return
8797// value will be populated with the request's response once the request completes
8798// successfully.
8799//
8800// Use "Send" method on the returned Request to send the API call to the service.
8801// the "output" return value is not valid until after Send returns without error.
8802//
8803// See DescribeProvisioningTemplateVersion for more information on using the DescribeProvisioningTemplateVersion
8804// API call, and error handling.
8805//
8806// This method is useful when you want to inject custom logic or configuration
8807// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8808//
8809//
8810//    // Example sending a request using the DescribeProvisioningTemplateVersionRequest method.
8811//    req, resp := client.DescribeProvisioningTemplateVersionRequest(params)
8812//
8813//    err := req.Send()
8814//    if err == nil { // resp is now filled
8815//        fmt.Println(resp)
8816//    }
8817func (c *IoT) DescribeProvisioningTemplateVersionRequest(input *DescribeProvisioningTemplateVersionInput) (req *request.Request, output *DescribeProvisioningTemplateVersionOutput) {
8818	op := &request.Operation{
8819		Name:       opDescribeProvisioningTemplateVersion,
8820		HTTPMethod: "GET",
8821		HTTPPath:   "/provisioning-templates/{templateName}/versions/{versionId}",
8822	}
8823
8824	if input == nil {
8825		input = &DescribeProvisioningTemplateVersionInput{}
8826	}
8827
8828	output = &DescribeProvisioningTemplateVersionOutput{}
8829	req = c.newRequest(op, input, output)
8830	return
8831}
8832
8833// DescribeProvisioningTemplateVersion API operation for AWS IoT.
8834//
8835// Returns information about a fleet provisioning template version.
8836//
8837// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8838// with awserr.Error's Code and Message methods to get detailed information about
8839// the error.
8840//
8841// See the AWS API reference guide for AWS IoT's
8842// API operation DescribeProvisioningTemplateVersion for usage and error information.
8843//
8844// Returned Error Types:
8845//   * InternalFailureException
8846//   An unexpected error has occurred.
8847//
8848//   * InvalidRequestException
8849//   The request is not valid.
8850//
8851//   * ThrottlingException
8852//   The rate exceeds the limit.
8853//
8854//   * ResourceNotFoundException
8855//   The specified resource does not exist.
8856//
8857//   * UnauthorizedException
8858//   You are not authorized to perform this operation.
8859//
8860func (c *IoT) DescribeProvisioningTemplateVersion(input *DescribeProvisioningTemplateVersionInput) (*DescribeProvisioningTemplateVersionOutput, error) {
8861	req, out := c.DescribeProvisioningTemplateVersionRequest(input)
8862	return out, req.Send()
8863}
8864
8865// DescribeProvisioningTemplateVersionWithContext is the same as DescribeProvisioningTemplateVersion with the addition of
8866// the ability to pass a context and additional request options.
8867//
8868// See DescribeProvisioningTemplateVersion for details on how to use this API operation.
8869//
8870// The context must be non-nil and will be used for request cancellation. If
8871// the context is nil a panic will occur. In the future the SDK may create
8872// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8873// for more information on using Contexts.
8874func (c *IoT) DescribeProvisioningTemplateVersionWithContext(ctx aws.Context, input *DescribeProvisioningTemplateVersionInput, opts ...request.Option) (*DescribeProvisioningTemplateVersionOutput, error) {
8875	req, out := c.DescribeProvisioningTemplateVersionRequest(input)
8876	req.SetContext(ctx)
8877	req.ApplyOptions(opts...)
8878	return out, req.Send()
8879}
8880
8881const opDescribeRoleAlias = "DescribeRoleAlias"
8882
8883// DescribeRoleAliasRequest generates a "aws/request.Request" representing the
8884// client's request for the DescribeRoleAlias operation. The "output" return
8885// value will be populated with the request's response once the request completes
8886// successfully.
8887//
8888// Use "Send" method on the returned Request to send the API call to the service.
8889// the "output" return value is not valid until after Send returns without error.
8890//
8891// See DescribeRoleAlias for more information on using the DescribeRoleAlias
8892// API call, and error handling.
8893//
8894// This method is useful when you want to inject custom logic or configuration
8895// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8896//
8897//
8898//    // Example sending a request using the DescribeRoleAliasRequest method.
8899//    req, resp := client.DescribeRoleAliasRequest(params)
8900//
8901//    err := req.Send()
8902//    if err == nil { // resp is now filled
8903//        fmt.Println(resp)
8904//    }
8905func (c *IoT) DescribeRoleAliasRequest(input *DescribeRoleAliasInput) (req *request.Request, output *DescribeRoleAliasOutput) {
8906	op := &request.Operation{
8907		Name:       opDescribeRoleAlias,
8908		HTTPMethod: "GET",
8909		HTTPPath:   "/role-aliases/{roleAlias}",
8910	}
8911
8912	if input == nil {
8913		input = &DescribeRoleAliasInput{}
8914	}
8915
8916	output = &DescribeRoleAliasOutput{}
8917	req = c.newRequest(op, input, output)
8918	return
8919}
8920
8921// DescribeRoleAlias API operation for AWS IoT.
8922//
8923// Describes a role alias.
8924//
8925// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8926// with awserr.Error's Code and Message methods to get detailed information about
8927// the error.
8928//
8929// See the AWS API reference guide for AWS IoT's
8930// API operation DescribeRoleAlias for usage and error information.
8931//
8932// Returned Error Types:
8933//   * InvalidRequestException
8934//   The request is not valid.
8935//
8936//   * ThrottlingException
8937//   The rate exceeds the limit.
8938//
8939//   * UnauthorizedException
8940//   You are not authorized to perform this operation.
8941//
8942//   * ServiceUnavailableException
8943//   The service is temporarily unavailable.
8944//
8945//   * InternalFailureException
8946//   An unexpected error has occurred.
8947//
8948//   * ResourceNotFoundException
8949//   The specified resource does not exist.
8950//
8951func (c *IoT) DescribeRoleAlias(input *DescribeRoleAliasInput) (*DescribeRoleAliasOutput, error) {
8952	req, out := c.DescribeRoleAliasRequest(input)
8953	return out, req.Send()
8954}
8955
8956// DescribeRoleAliasWithContext is the same as DescribeRoleAlias with the addition of
8957// the ability to pass a context and additional request options.
8958//
8959// See DescribeRoleAlias for details on how to use this API operation.
8960//
8961// The context must be non-nil and will be used for request cancellation. If
8962// the context is nil a panic will occur. In the future the SDK may create
8963// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8964// for more information on using Contexts.
8965func (c *IoT) DescribeRoleAliasWithContext(ctx aws.Context, input *DescribeRoleAliasInput, opts ...request.Option) (*DescribeRoleAliasOutput, error) {
8966	req, out := c.DescribeRoleAliasRequest(input)
8967	req.SetContext(ctx)
8968	req.ApplyOptions(opts...)
8969	return out, req.Send()
8970}
8971
8972const opDescribeScheduledAudit = "DescribeScheduledAudit"
8973
8974// DescribeScheduledAuditRequest generates a "aws/request.Request" representing the
8975// client's request for the DescribeScheduledAudit operation. The "output" return
8976// value will be populated with the request's response once the request completes
8977// successfully.
8978//
8979// Use "Send" method on the returned Request to send the API call to the service.
8980// the "output" return value is not valid until after Send returns without error.
8981//
8982// See DescribeScheduledAudit for more information on using the DescribeScheduledAudit
8983// API call, and error handling.
8984//
8985// This method is useful when you want to inject custom logic or configuration
8986// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8987//
8988//
8989//    // Example sending a request using the DescribeScheduledAuditRequest method.
8990//    req, resp := client.DescribeScheduledAuditRequest(params)
8991//
8992//    err := req.Send()
8993//    if err == nil { // resp is now filled
8994//        fmt.Println(resp)
8995//    }
8996func (c *IoT) DescribeScheduledAuditRequest(input *DescribeScheduledAuditInput) (req *request.Request, output *DescribeScheduledAuditOutput) {
8997	op := &request.Operation{
8998		Name:       opDescribeScheduledAudit,
8999		HTTPMethod: "GET",
9000		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
9001	}
9002
9003	if input == nil {
9004		input = &DescribeScheduledAuditInput{}
9005	}
9006
9007	output = &DescribeScheduledAuditOutput{}
9008	req = c.newRequest(op, input, output)
9009	return
9010}
9011
9012// DescribeScheduledAudit API operation for AWS IoT.
9013//
9014// Gets information about a scheduled audit.
9015//
9016// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9017// with awserr.Error's Code and Message methods to get detailed information about
9018// the error.
9019//
9020// See the AWS API reference guide for AWS IoT's
9021// API operation DescribeScheduledAudit for usage and error information.
9022//
9023// Returned Error Types:
9024//   * InvalidRequestException
9025//   The request is not valid.
9026//
9027//   * ResourceNotFoundException
9028//   The specified resource does not exist.
9029//
9030//   * ThrottlingException
9031//   The rate exceeds the limit.
9032//
9033//   * InternalFailureException
9034//   An unexpected error has occurred.
9035//
9036func (c *IoT) DescribeScheduledAudit(input *DescribeScheduledAuditInput) (*DescribeScheduledAuditOutput, error) {
9037	req, out := c.DescribeScheduledAuditRequest(input)
9038	return out, req.Send()
9039}
9040
9041// DescribeScheduledAuditWithContext is the same as DescribeScheduledAudit with the addition of
9042// the ability to pass a context and additional request options.
9043//
9044// See DescribeScheduledAudit for details on how to use this API operation.
9045//
9046// The context must be non-nil and will be used for request cancellation. If
9047// the context is nil a panic will occur. In the future the SDK may create
9048// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9049// for more information on using Contexts.
9050func (c *IoT) DescribeScheduledAuditWithContext(ctx aws.Context, input *DescribeScheduledAuditInput, opts ...request.Option) (*DescribeScheduledAuditOutput, error) {
9051	req, out := c.DescribeScheduledAuditRequest(input)
9052	req.SetContext(ctx)
9053	req.ApplyOptions(opts...)
9054	return out, req.Send()
9055}
9056
9057const opDescribeSecurityProfile = "DescribeSecurityProfile"
9058
9059// DescribeSecurityProfileRequest generates a "aws/request.Request" representing the
9060// client's request for the DescribeSecurityProfile operation. The "output" return
9061// value will be populated with the request's response once the request completes
9062// successfully.
9063//
9064// Use "Send" method on the returned Request to send the API call to the service.
9065// the "output" return value is not valid until after Send returns without error.
9066//
9067// See DescribeSecurityProfile for more information on using the DescribeSecurityProfile
9068// API call, and error handling.
9069//
9070// This method is useful when you want to inject custom logic or configuration
9071// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9072//
9073//
9074//    // Example sending a request using the DescribeSecurityProfileRequest method.
9075//    req, resp := client.DescribeSecurityProfileRequest(params)
9076//
9077//    err := req.Send()
9078//    if err == nil { // resp is now filled
9079//        fmt.Println(resp)
9080//    }
9081func (c *IoT) DescribeSecurityProfileRequest(input *DescribeSecurityProfileInput) (req *request.Request, output *DescribeSecurityProfileOutput) {
9082	op := &request.Operation{
9083		Name:       opDescribeSecurityProfile,
9084		HTTPMethod: "GET",
9085		HTTPPath:   "/security-profiles/{securityProfileName}",
9086	}
9087
9088	if input == nil {
9089		input = &DescribeSecurityProfileInput{}
9090	}
9091
9092	output = &DescribeSecurityProfileOutput{}
9093	req = c.newRequest(op, input, output)
9094	return
9095}
9096
9097// DescribeSecurityProfile API operation for AWS IoT.
9098//
9099// Gets information about a Device Defender security profile.
9100//
9101// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9102// with awserr.Error's Code and Message methods to get detailed information about
9103// the error.
9104//
9105// See the AWS API reference guide for AWS IoT's
9106// API operation DescribeSecurityProfile for usage and error information.
9107//
9108// Returned Error Types:
9109//   * InvalidRequestException
9110//   The request is not valid.
9111//
9112//   * ResourceNotFoundException
9113//   The specified resource does not exist.
9114//
9115//   * ThrottlingException
9116//   The rate exceeds the limit.
9117//
9118//   * InternalFailureException
9119//   An unexpected error has occurred.
9120//
9121func (c *IoT) DescribeSecurityProfile(input *DescribeSecurityProfileInput) (*DescribeSecurityProfileOutput, error) {
9122	req, out := c.DescribeSecurityProfileRequest(input)
9123	return out, req.Send()
9124}
9125
9126// DescribeSecurityProfileWithContext is the same as DescribeSecurityProfile with the addition of
9127// the ability to pass a context and additional request options.
9128//
9129// See DescribeSecurityProfile for details on how to use this API operation.
9130//
9131// The context must be non-nil and will be used for request cancellation. If
9132// the context is nil a panic will occur. In the future the SDK may create
9133// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9134// for more information on using Contexts.
9135func (c *IoT) DescribeSecurityProfileWithContext(ctx aws.Context, input *DescribeSecurityProfileInput, opts ...request.Option) (*DescribeSecurityProfileOutput, error) {
9136	req, out := c.DescribeSecurityProfileRequest(input)
9137	req.SetContext(ctx)
9138	req.ApplyOptions(opts...)
9139	return out, req.Send()
9140}
9141
9142const opDescribeStream = "DescribeStream"
9143
9144// DescribeStreamRequest generates a "aws/request.Request" representing the
9145// client's request for the DescribeStream operation. The "output" return
9146// value will be populated with the request's response once the request completes
9147// successfully.
9148//
9149// Use "Send" method on the returned Request to send the API call to the service.
9150// the "output" return value is not valid until after Send returns without error.
9151//
9152// See DescribeStream for more information on using the DescribeStream
9153// API call, and error handling.
9154//
9155// This method is useful when you want to inject custom logic or configuration
9156// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9157//
9158//
9159//    // Example sending a request using the DescribeStreamRequest method.
9160//    req, resp := client.DescribeStreamRequest(params)
9161//
9162//    err := req.Send()
9163//    if err == nil { // resp is now filled
9164//        fmt.Println(resp)
9165//    }
9166func (c *IoT) DescribeStreamRequest(input *DescribeStreamInput) (req *request.Request, output *DescribeStreamOutput) {
9167	op := &request.Operation{
9168		Name:       opDescribeStream,
9169		HTTPMethod: "GET",
9170		HTTPPath:   "/streams/{streamId}",
9171	}
9172
9173	if input == nil {
9174		input = &DescribeStreamInput{}
9175	}
9176
9177	output = &DescribeStreamOutput{}
9178	req = c.newRequest(op, input, output)
9179	return
9180}
9181
9182// DescribeStream API operation for AWS IoT.
9183//
9184// Gets information about a stream.
9185//
9186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9187// with awserr.Error's Code and Message methods to get detailed information about
9188// the error.
9189//
9190// See the AWS API reference guide for AWS IoT's
9191// API operation DescribeStream for usage and error information.
9192//
9193// Returned Error Types:
9194//   * InvalidRequestException
9195//   The request is not valid.
9196//
9197//   * ResourceNotFoundException
9198//   The specified resource does not exist.
9199//
9200//   * ThrottlingException
9201//   The rate exceeds the limit.
9202//
9203//   * UnauthorizedException
9204//   You are not authorized to perform this operation.
9205//
9206//   * ServiceUnavailableException
9207//   The service is temporarily unavailable.
9208//
9209//   * InternalFailureException
9210//   An unexpected error has occurred.
9211//
9212func (c *IoT) DescribeStream(input *DescribeStreamInput) (*DescribeStreamOutput, error) {
9213	req, out := c.DescribeStreamRequest(input)
9214	return out, req.Send()
9215}
9216
9217// DescribeStreamWithContext is the same as DescribeStream with the addition of
9218// the ability to pass a context and additional request options.
9219//
9220// See DescribeStream for details on how to use this API operation.
9221//
9222// The context must be non-nil and will be used for request cancellation. If
9223// the context is nil a panic will occur. In the future the SDK may create
9224// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9225// for more information on using Contexts.
9226func (c *IoT) DescribeStreamWithContext(ctx aws.Context, input *DescribeStreamInput, opts ...request.Option) (*DescribeStreamOutput, error) {
9227	req, out := c.DescribeStreamRequest(input)
9228	req.SetContext(ctx)
9229	req.ApplyOptions(opts...)
9230	return out, req.Send()
9231}
9232
9233const opDescribeThing = "DescribeThing"
9234
9235// DescribeThingRequest generates a "aws/request.Request" representing the
9236// client's request for the DescribeThing operation. The "output" return
9237// value will be populated with the request's response once the request completes
9238// successfully.
9239//
9240// Use "Send" method on the returned Request to send the API call to the service.
9241// the "output" return value is not valid until after Send returns without error.
9242//
9243// See DescribeThing for more information on using the DescribeThing
9244// API call, and error handling.
9245//
9246// This method is useful when you want to inject custom logic or configuration
9247// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9248//
9249//
9250//    // Example sending a request using the DescribeThingRequest method.
9251//    req, resp := client.DescribeThingRequest(params)
9252//
9253//    err := req.Send()
9254//    if err == nil { // resp is now filled
9255//        fmt.Println(resp)
9256//    }
9257func (c *IoT) DescribeThingRequest(input *DescribeThingInput) (req *request.Request, output *DescribeThingOutput) {
9258	op := &request.Operation{
9259		Name:       opDescribeThing,
9260		HTTPMethod: "GET",
9261		HTTPPath:   "/things/{thingName}",
9262	}
9263
9264	if input == nil {
9265		input = &DescribeThingInput{}
9266	}
9267
9268	output = &DescribeThingOutput{}
9269	req = c.newRequest(op, input, output)
9270	return
9271}
9272
9273// DescribeThing API operation for AWS IoT.
9274//
9275// Gets information about the specified thing.
9276//
9277// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9278// with awserr.Error's Code and Message methods to get detailed information about
9279// the error.
9280//
9281// See the AWS API reference guide for AWS IoT's
9282// API operation DescribeThing for usage and error information.
9283//
9284// Returned Error Types:
9285//   * ResourceNotFoundException
9286//   The specified resource does not exist.
9287//
9288//   * InvalidRequestException
9289//   The request is not valid.
9290//
9291//   * ThrottlingException
9292//   The rate exceeds the limit.
9293//
9294//   * UnauthorizedException
9295//   You are not authorized to perform this operation.
9296//
9297//   * ServiceUnavailableException
9298//   The service is temporarily unavailable.
9299//
9300//   * InternalFailureException
9301//   An unexpected error has occurred.
9302//
9303func (c *IoT) DescribeThing(input *DescribeThingInput) (*DescribeThingOutput, error) {
9304	req, out := c.DescribeThingRequest(input)
9305	return out, req.Send()
9306}
9307
9308// DescribeThingWithContext is the same as DescribeThing with the addition of
9309// the ability to pass a context and additional request options.
9310//
9311// See DescribeThing for details on how to use this API operation.
9312//
9313// The context must be non-nil and will be used for request cancellation. If
9314// the context is nil a panic will occur. In the future the SDK may create
9315// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9316// for more information on using Contexts.
9317func (c *IoT) DescribeThingWithContext(ctx aws.Context, input *DescribeThingInput, opts ...request.Option) (*DescribeThingOutput, error) {
9318	req, out := c.DescribeThingRequest(input)
9319	req.SetContext(ctx)
9320	req.ApplyOptions(opts...)
9321	return out, req.Send()
9322}
9323
9324const opDescribeThingGroup = "DescribeThingGroup"
9325
9326// DescribeThingGroupRequest generates a "aws/request.Request" representing the
9327// client's request for the DescribeThingGroup operation. The "output" return
9328// value will be populated with the request's response once the request completes
9329// successfully.
9330//
9331// Use "Send" method on the returned Request to send the API call to the service.
9332// the "output" return value is not valid until after Send returns without error.
9333//
9334// See DescribeThingGroup for more information on using the DescribeThingGroup
9335// API call, and error handling.
9336//
9337// This method is useful when you want to inject custom logic or configuration
9338// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9339//
9340//
9341//    // Example sending a request using the DescribeThingGroupRequest method.
9342//    req, resp := client.DescribeThingGroupRequest(params)
9343//
9344//    err := req.Send()
9345//    if err == nil { // resp is now filled
9346//        fmt.Println(resp)
9347//    }
9348func (c *IoT) DescribeThingGroupRequest(input *DescribeThingGroupInput) (req *request.Request, output *DescribeThingGroupOutput) {
9349	op := &request.Operation{
9350		Name:       opDescribeThingGroup,
9351		HTTPMethod: "GET",
9352		HTTPPath:   "/thing-groups/{thingGroupName}",
9353	}
9354
9355	if input == nil {
9356		input = &DescribeThingGroupInput{}
9357	}
9358
9359	output = &DescribeThingGroupOutput{}
9360	req = c.newRequest(op, input, output)
9361	return
9362}
9363
9364// DescribeThingGroup API operation for AWS IoT.
9365//
9366// Describe a thing group.
9367//
9368// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9369// with awserr.Error's Code and Message methods to get detailed information about
9370// the error.
9371//
9372// See the AWS API reference guide for AWS IoT's
9373// API operation DescribeThingGroup for usage and error information.
9374//
9375// Returned Error Types:
9376//   * InvalidRequestException
9377//   The request is not valid.
9378//
9379//   * ThrottlingException
9380//   The rate exceeds the limit.
9381//
9382//   * InternalFailureException
9383//   An unexpected error has occurred.
9384//
9385//   * ResourceNotFoundException
9386//   The specified resource does not exist.
9387//
9388func (c *IoT) DescribeThingGroup(input *DescribeThingGroupInput) (*DescribeThingGroupOutput, error) {
9389	req, out := c.DescribeThingGroupRequest(input)
9390	return out, req.Send()
9391}
9392
9393// DescribeThingGroupWithContext is the same as DescribeThingGroup with the addition of
9394// the ability to pass a context and additional request options.
9395//
9396// See DescribeThingGroup for details on how to use this API operation.
9397//
9398// The context must be non-nil and will be used for request cancellation. If
9399// the context is nil a panic will occur. In the future the SDK may create
9400// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9401// for more information on using Contexts.
9402func (c *IoT) DescribeThingGroupWithContext(ctx aws.Context, input *DescribeThingGroupInput, opts ...request.Option) (*DescribeThingGroupOutput, error) {
9403	req, out := c.DescribeThingGroupRequest(input)
9404	req.SetContext(ctx)
9405	req.ApplyOptions(opts...)
9406	return out, req.Send()
9407}
9408
9409const opDescribeThingRegistrationTask = "DescribeThingRegistrationTask"
9410
9411// DescribeThingRegistrationTaskRequest generates a "aws/request.Request" representing the
9412// client's request for the DescribeThingRegistrationTask operation. The "output" return
9413// value will be populated with the request's response once the request completes
9414// successfully.
9415//
9416// Use "Send" method on the returned Request to send the API call to the service.
9417// the "output" return value is not valid until after Send returns without error.
9418//
9419// See DescribeThingRegistrationTask for more information on using the DescribeThingRegistrationTask
9420// API call, and error handling.
9421//
9422// This method is useful when you want to inject custom logic or configuration
9423// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9424//
9425//
9426//    // Example sending a request using the DescribeThingRegistrationTaskRequest method.
9427//    req, resp := client.DescribeThingRegistrationTaskRequest(params)
9428//
9429//    err := req.Send()
9430//    if err == nil { // resp is now filled
9431//        fmt.Println(resp)
9432//    }
9433func (c *IoT) DescribeThingRegistrationTaskRequest(input *DescribeThingRegistrationTaskInput) (req *request.Request, output *DescribeThingRegistrationTaskOutput) {
9434	op := &request.Operation{
9435		Name:       opDescribeThingRegistrationTask,
9436		HTTPMethod: "GET",
9437		HTTPPath:   "/thing-registration-tasks/{taskId}",
9438	}
9439
9440	if input == nil {
9441		input = &DescribeThingRegistrationTaskInput{}
9442	}
9443
9444	output = &DescribeThingRegistrationTaskOutput{}
9445	req = c.newRequest(op, input, output)
9446	return
9447}
9448
9449// DescribeThingRegistrationTask API operation for AWS IoT.
9450//
9451// Describes a bulk thing provisioning task.
9452//
9453// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9454// with awserr.Error's Code and Message methods to get detailed information about
9455// the error.
9456//
9457// See the AWS API reference guide for AWS IoT's
9458// API operation DescribeThingRegistrationTask for usage and error information.
9459//
9460// Returned Error Types:
9461//   * InvalidRequestException
9462//   The request is not valid.
9463//
9464//   * ThrottlingException
9465//   The rate exceeds the limit.
9466//
9467//   * UnauthorizedException
9468//   You are not authorized to perform this operation.
9469//
9470//   * InternalFailureException
9471//   An unexpected error has occurred.
9472//
9473//   * ResourceNotFoundException
9474//   The specified resource does not exist.
9475//
9476func (c *IoT) DescribeThingRegistrationTask(input *DescribeThingRegistrationTaskInput) (*DescribeThingRegistrationTaskOutput, error) {
9477	req, out := c.DescribeThingRegistrationTaskRequest(input)
9478	return out, req.Send()
9479}
9480
9481// DescribeThingRegistrationTaskWithContext is the same as DescribeThingRegistrationTask with the addition of
9482// the ability to pass a context and additional request options.
9483//
9484// See DescribeThingRegistrationTask for details on how to use this API operation.
9485//
9486// The context must be non-nil and will be used for request cancellation. If
9487// the context is nil a panic will occur. In the future the SDK may create
9488// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9489// for more information on using Contexts.
9490func (c *IoT) DescribeThingRegistrationTaskWithContext(ctx aws.Context, input *DescribeThingRegistrationTaskInput, opts ...request.Option) (*DescribeThingRegistrationTaskOutput, error) {
9491	req, out := c.DescribeThingRegistrationTaskRequest(input)
9492	req.SetContext(ctx)
9493	req.ApplyOptions(opts...)
9494	return out, req.Send()
9495}
9496
9497const opDescribeThingType = "DescribeThingType"
9498
9499// DescribeThingTypeRequest generates a "aws/request.Request" representing the
9500// client's request for the DescribeThingType operation. The "output" return
9501// value will be populated with the request's response once the request completes
9502// successfully.
9503//
9504// Use "Send" method on the returned Request to send the API call to the service.
9505// the "output" return value is not valid until after Send returns without error.
9506//
9507// See DescribeThingType for more information on using the DescribeThingType
9508// API call, and error handling.
9509//
9510// This method is useful when you want to inject custom logic or configuration
9511// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9512//
9513//
9514//    // Example sending a request using the DescribeThingTypeRequest method.
9515//    req, resp := client.DescribeThingTypeRequest(params)
9516//
9517//    err := req.Send()
9518//    if err == nil { // resp is now filled
9519//        fmt.Println(resp)
9520//    }
9521func (c *IoT) DescribeThingTypeRequest(input *DescribeThingTypeInput) (req *request.Request, output *DescribeThingTypeOutput) {
9522	op := &request.Operation{
9523		Name:       opDescribeThingType,
9524		HTTPMethod: "GET",
9525		HTTPPath:   "/thing-types/{thingTypeName}",
9526	}
9527
9528	if input == nil {
9529		input = &DescribeThingTypeInput{}
9530	}
9531
9532	output = &DescribeThingTypeOutput{}
9533	req = c.newRequest(op, input, output)
9534	return
9535}
9536
9537// DescribeThingType API operation for AWS IoT.
9538//
9539// Gets information about the specified thing type.
9540//
9541// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9542// with awserr.Error's Code and Message methods to get detailed information about
9543// the error.
9544//
9545// See the AWS API reference guide for AWS IoT's
9546// API operation DescribeThingType for usage and error information.
9547//
9548// Returned Error Types:
9549//   * ResourceNotFoundException
9550//   The specified resource does not exist.
9551//
9552//   * InvalidRequestException
9553//   The request is not valid.
9554//
9555//   * ThrottlingException
9556//   The rate exceeds the limit.
9557//
9558//   * UnauthorizedException
9559//   You are not authorized to perform this operation.
9560//
9561//   * ServiceUnavailableException
9562//   The service is temporarily unavailable.
9563//
9564//   * InternalFailureException
9565//   An unexpected error has occurred.
9566//
9567func (c *IoT) DescribeThingType(input *DescribeThingTypeInput) (*DescribeThingTypeOutput, error) {
9568	req, out := c.DescribeThingTypeRequest(input)
9569	return out, req.Send()
9570}
9571
9572// DescribeThingTypeWithContext is the same as DescribeThingType with the addition of
9573// the ability to pass a context and additional request options.
9574//
9575// See DescribeThingType for details on how to use this API operation.
9576//
9577// The context must be non-nil and will be used for request cancellation. If
9578// the context is nil a panic will occur. In the future the SDK may create
9579// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9580// for more information on using Contexts.
9581func (c *IoT) DescribeThingTypeWithContext(ctx aws.Context, input *DescribeThingTypeInput, opts ...request.Option) (*DescribeThingTypeOutput, error) {
9582	req, out := c.DescribeThingTypeRequest(input)
9583	req.SetContext(ctx)
9584	req.ApplyOptions(opts...)
9585	return out, req.Send()
9586}
9587
9588const opDetachPolicy = "DetachPolicy"
9589
9590// DetachPolicyRequest generates a "aws/request.Request" representing the
9591// client's request for the DetachPolicy operation. The "output" return
9592// value will be populated with the request's response once the request completes
9593// successfully.
9594//
9595// Use "Send" method on the returned Request to send the API call to the service.
9596// the "output" return value is not valid until after Send returns without error.
9597//
9598// See DetachPolicy for more information on using the DetachPolicy
9599// API call, and error handling.
9600//
9601// This method is useful when you want to inject custom logic or configuration
9602// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9603//
9604//
9605//    // Example sending a request using the DetachPolicyRequest method.
9606//    req, resp := client.DetachPolicyRequest(params)
9607//
9608//    err := req.Send()
9609//    if err == nil { // resp is now filled
9610//        fmt.Println(resp)
9611//    }
9612func (c *IoT) DetachPolicyRequest(input *DetachPolicyInput) (req *request.Request, output *DetachPolicyOutput) {
9613	op := &request.Operation{
9614		Name:       opDetachPolicy,
9615		HTTPMethod: "POST",
9616		HTTPPath:   "/target-policies/{policyName}",
9617	}
9618
9619	if input == nil {
9620		input = &DetachPolicyInput{}
9621	}
9622
9623	output = &DetachPolicyOutput{}
9624	req = c.newRequest(op, input, output)
9625	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9626	return
9627}
9628
9629// DetachPolicy API operation for AWS IoT.
9630//
9631// Detaches a policy from the specified target.
9632//
9633// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9634// with awserr.Error's Code and Message methods to get detailed information about
9635// the error.
9636//
9637// See the AWS API reference guide for AWS IoT's
9638// API operation DetachPolicy for usage and error information.
9639//
9640// Returned Error Types:
9641//   * InvalidRequestException
9642//   The request is not valid.
9643//
9644//   * ThrottlingException
9645//   The rate exceeds the limit.
9646//
9647//   * UnauthorizedException
9648//   You are not authorized to perform this operation.
9649//
9650//   * ServiceUnavailableException
9651//   The service is temporarily unavailable.
9652//
9653//   * InternalFailureException
9654//   An unexpected error has occurred.
9655//
9656//   * LimitExceededException
9657//   A limit has been exceeded.
9658//
9659func (c *IoT) DetachPolicy(input *DetachPolicyInput) (*DetachPolicyOutput, error) {
9660	req, out := c.DetachPolicyRequest(input)
9661	return out, req.Send()
9662}
9663
9664// DetachPolicyWithContext is the same as DetachPolicy with the addition of
9665// the ability to pass a context and additional request options.
9666//
9667// See DetachPolicy for details on how to use this API operation.
9668//
9669// The context must be non-nil and will be used for request cancellation. If
9670// the context is nil a panic will occur. In the future the SDK may create
9671// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9672// for more information on using Contexts.
9673func (c *IoT) DetachPolicyWithContext(ctx aws.Context, input *DetachPolicyInput, opts ...request.Option) (*DetachPolicyOutput, error) {
9674	req, out := c.DetachPolicyRequest(input)
9675	req.SetContext(ctx)
9676	req.ApplyOptions(opts...)
9677	return out, req.Send()
9678}
9679
9680const opDetachPrincipalPolicy = "DetachPrincipalPolicy"
9681
9682// DetachPrincipalPolicyRequest generates a "aws/request.Request" representing the
9683// client's request for the DetachPrincipalPolicy operation. The "output" return
9684// value will be populated with the request's response once the request completes
9685// successfully.
9686//
9687// Use "Send" method on the returned Request to send the API call to the service.
9688// the "output" return value is not valid until after Send returns without error.
9689//
9690// See DetachPrincipalPolicy for more information on using the DetachPrincipalPolicy
9691// API call, and error handling.
9692//
9693// This method is useful when you want to inject custom logic or configuration
9694// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9695//
9696//
9697//    // Example sending a request using the DetachPrincipalPolicyRequest method.
9698//    req, resp := client.DetachPrincipalPolicyRequest(params)
9699//
9700//    err := req.Send()
9701//    if err == nil { // resp is now filled
9702//        fmt.Println(resp)
9703//    }
9704//
9705// Deprecated: DetachPrincipalPolicy has been deprecated
9706func (c *IoT) DetachPrincipalPolicyRequest(input *DetachPrincipalPolicyInput) (req *request.Request, output *DetachPrincipalPolicyOutput) {
9707	if c.Client.Config.Logger != nil {
9708		c.Client.Config.Logger.Log("This operation, DetachPrincipalPolicy, has been deprecated")
9709	}
9710	op := &request.Operation{
9711		Name:       opDetachPrincipalPolicy,
9712		HTTPMethod: "DELETE",
9713		HTTPPath:   "/principal-policies/{policyName}",
9714	}
9715
9716	if input == nil {
9717		input = &DetachPrincipalPolicyInput{}
9718	}
9719
9720	output = &DetachPrincipalPolicyOutput{}
9721	req = c.newRequest(op, input, output)
9722	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9723	return
9724}
9725
9726// DetachPrincipalPolicy API operation for AWS IoT.
9727//
9728// Removes the specified policy from the specified certificate.
9729//
9730// Note: This API is deprecated. Please use DetachPolicy instead.
9731//
9732// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9733// with awserr.Error's Code and Message methods to get detailed information about
9734// the error.
9735//
9736// See the AWS API reference guide for AWS IoT's
9737// API operation DetachPrincipalPolicy for usage and error information.
9738//
9739// Returned Error Types:
9740//   * ResourceNotFoundException
9741//   The specified resource does not exist.
9742//
9743//   * InvalidRequestException
9744//   The request is not valid.
9745//
9746//   * ThrottlingException
9747//   The rate exceeds the limit.
9748//
9749//   * UnauthorizedException
9750//   You are not authorized to perform this operation.
9751//
9752//   * ServiceUnavailableException
9753//   The service is temporarily unavailable.
9754//
9755//   * InternalFailureException
9756//   An unexpected error has occurred.
9757//
9758//
9759// Deprecated: DetachPrincipalPolicy has been deprecated
9760func (c *IoT) DetachPrincipalPolicy(input *DetachPrincipalPolicyInput) (*DetachPrincipalPolicyOutput, error) {
9761	req, out := c.DetachPrincipalPolicyRequest(input)
9762	return out, req.Send()
9763}
9764
9765// DetachPrincipalPolicyWithContext is the same as DetachPrincipalPolicy with the addition of
9766// the ability to pass a context and additional request options.
9767//
9768// See DetachPrincipalPolicy for details on how to use this API operation.
9769//
9770// The context must be non-nil and will be used for request cancellation. If
9771// the context is nil a panic will occur. In the future the SDK may create
9772// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9773// for more information on using Contexts.
9774//
9775// Deprecated: DetachPrincipalPolicyWithContext has been deprecated
9776func (c *IoT) DetachPrincipalPolicyWithContext(ctx aws.Context, input *DetachPrincipalPolicyInput, opts ...request.Option) (*DetachPrincipalPolicyOutput, error) {
9777	req, out := c.DetachPrincipalPolicyRequest(input)
9778	req.SetContext(ctx)
9779	req.ApplyOptions(opts...)
9780	return out, req.Send()
9781}
9782
9783const opDetachSecurityProfile = "DetachSecurityProfile"
9784
9785// DetachSecurityProfileRequest generates a "aws/request.Request" representing the
9786// client's request for the DetachSecurityProfile operation. The "output" return
9787// value will be populated with the request's response once the request completes
9788// successfully.
9789//
9790// Use "Send" method on the returned Request to send the API call to the service.
9791// the "output" return value is not valid until after Send returns without error.
9792//
9793// See DetachSecurityProfile for more information on using the DetachSecurityProfile
9794// API call, and error handling.
9795//
9796// This method is useful when you want to inject custom logic or configuration
9797// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9798//
9799//
9800//    // Example sending a request using the DetachSecurityProfileRequest method.
9801//    req, resp := client.DetachSecurityProfileRequest(params)
9802//
9803//    err := req.Send()
9804//    if err == nil { // resp is now filled
9805//        fmt.Println(resp)
9806//    }
9807func (c *IoT) DetachSecurityProfileRequest(input *DetachSecurityProfileInput) (req *request.Request, output *DetachSecurityProfileOutput) {
9808	op := &request.Operation{
9809		Name:       opDetachSecurityProfile,
9810		HTTPMethod: "DELETE",
9811		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
9812	}
9813
9814	if input == nil {
9815		input = &DetachSecurityProfileInput{}
9816	}
9817
9818	output = &DetachSecurityProfileOutput{}
9819	req = c.newRequest(op, input, output)
9820	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9821	return
9822}
9823
9824// DetachSecurityProfile API operation for AWS IoT.
9825//
9826// Disassociates a Device Defender security profile from a thing group or from
9827// this account.
9828//
9829// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9830// with awserr.Error's Code and Message methods to get detailed information about
9831// the error.
9832//
9833// See the AWS API reference guide for AWS IoT's
9834// API operation DetachSecurityProfile for usage and error information.
9835//
9836// Returned Error Types:
9837//   * InvalidRequestException
9838//   The request is not valid.
9839//
9840//   * ResourceNotFoundException
9841//   The specified resource does not exist.
9842//
9843//   * ThrottlingException
9844//   The rate exceeds the limit.
9845//
9846//   * InternalFailureException
9847//   An unexpected error has occurred.
9848//
9849func (c *IoT) DetachSecurityProfile(input *DetachSecurityProfileInput) (*DetachSecurityProfileOutput, error) {
9850	req, out := c.DetachSecurityProfileRequest(input)
9851	return out, req.Send()
9852}
9853
9854// DetachSecurityProfileWithContext is the same as DetachSecurityProfile with the addition of
9855// the ability to pass a context and additional request options.
9856//
9857// See DetachSecurityProfile for details on how to use this API operation.
9858//
9859// The context must be non-nil and will be used for request cancellation. If
9860// the context is nil a panic will occur. In the future the SDK may create
9861// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9862// for more information on using Contexts.
9863func (c *IoT) DetachSecurityProfileWithContext(ctx aws.Context, input *DetachSecurityProfileInput, opts ...request.Option) (*DetachSecurityProfileOutput, error) {
9864	req, out := c.DetachSecurityProfileRequest(input)
9865	req.SetContext(ctx)
9866	req.ApplyOptions(opts...)
9867	return out, req.Send()
9868}
9869
9870const opDetachThingPrincipal = "DetachThingPrincipal"
9871
9872// DetachThingPrincipalRequest generates a "aws/request.Request" representing the
9873// client's request for the DetachThingPrincipal operation. The "output" return
9874// value will be populated with the request's response once the request completes
9875// successfully.
9876//
9877// Use "Send" method on the returned Request to send the API call to the service.
9878// the "output" return value is not valid until after Send returns without error.
9879//
9880// See DetachThingPrincipal for more information on using the DetachThingPrincipal
9881// API call, and error handling.
9882//
9883// This method is useful when you want to inject custom logic or configuration
9884// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9885//
9886//
9887//    // Example sending a request using the DetachThingPrincipalRequest method.
9888//    req, resp := client.DetachThingPrincipalRequest(params)
9889//
9890//    err := req.Send()
9891//    if err == nil { // resp is now filled
9892//        fmt.Println(resp)
9893//    }
9894func (c *IoT) DetachThingPrincipalRequest(input *DetachThingPrincipalInput) (req *request.Request, output *DetachThingPrincipalOutput) {
9895	op := &request.Operation{
9896		Name:       opDetachThingPrincipal,
9897		HTTPMethod: "DELETE",
9898		HTTPPath:   "/things/{thingName}/principals",
9899	}
9900
9901	if input == nil {
9902		input = &DetachThingPrincipalInput{}
9903	}
9904
9905	output = &DetachThingPrincipalOutput{}
9906	req = c.newRequest(op, input, output)
9907	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9908	return
9909}
9910
9911// DetachThingPrincipal API operation for AWS IoT.
9912//
9913// Detaches the specified principal from the specified thing. A principal can
9914// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
9915// or federated identities.
9916//
9917// This call is asynchronous. It might take several seconds for the detachment
9918// to propagate.
9919//
9920// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9921// with awserr.Error's Code and Message methods to get detailed information about
9922// the error.
9923//
9924// See the AWS API reference guide for AWS IoT's
9925// API operation DetachThingPrincipal for usage and error information.
9926//
9927// Returned Error Types:
9928//   * ResourceNotFoundException
9929//   The specified resource does not exist.
9930//
9931//   * InvalidRequestException
9932//   The request is not valid.
9933//
9934//   * ThrottlingException
9935//   The rate exceeds the limit.
9936//
9937//   * UnauthorizedException
9938//   You are not authorized to perform this operation.
9939//
9940//   * ServiceUnavailableException
9941//   The service is temporarily unavailable.
9942//
9943//   * InternalFailureException
9944//   An unexpected error has occurred.
9945//
9946func (c *IoT) DetachThingPrincipal(input *DetachThingPrincipalInput) (*DetachThingPrincipalOutput, error) {
9947	req, out := c.DetachThingPrincipalRequest(input)
9948	return out, req.Send()
9949}
9950
9951// DetachThingPrincipalWithContext is the same as DetachThingPrincipal with the addition of
9952// the ability to pass a context and additional request options.
9953//
9954// See DetachThingPrincipal for details on how to use this API operation.
9955//
9956// The context must be non-nil and will be used for request cancellation. If
9957// the context is nil a panic will occur. In the future the SDK may create
9958// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9959// for more information on using Contexts.
9960func (c *IoT) DetachThingPrincipalWithContext(ctx aws.Context, input *DetachThingPrincipalInput, opts ...request.Option) (*DetachThingPrincipalOutput, error) {
9961	req, out := c.DetachThingPrincipalRequest(input)
9962	req.SetContext(ctx)
9963	req.ApplyOptions(opts...)
9964	return out, req.Send()
9965}
9966
9967const opDisableTopicRule = "DisableTopicRule"
9968
9969// DisableTopicRuleRequest generates a "aws/request.Request" representing the
9970// client's request for the DisableTopicRule operation. The "output" return
9971// value will be populated with the request's response once the request completes
9972// successfully.
9973//
9974// Use "Send" method on the returned Request to send the API call to the service.
9975// the "output" return value is not valid until after Send returns without error.
9976//
9977// See DisableTopicRule for more information on using the DisableTopicRule
9978// API call, and error handling.
9979//
9980// This method is useful when you want to inject custom logic or configuration
9981// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9982//
9983//
9984//    // Example sending a request using the DisableTopicRuleRequest method.
9985//    req, resp := client.DisableTopicRuleRequest(params)
9986//
9987//    err := req.Send()
9988//    if err == nil { // resp is now filled
9989//        fmt.Println(resp)
9990//    }
9991func (c *IoT) DisableTopicRuleRequest(input *DisableTopicRuleInput) (req *request.Request, output *DisableTopicRuleOutput) {
9992	op := &request.Operation{
9993		Name:       opDisableTopicRule,
9994		HTTPMethod: "POST",
9995		HTTPPath:   "/rules/{ruleName}/disable",
9996	}
9997
9998	if input == nil {
9999		input = &DisableTopicRuleInput{}
10000	}
10001
10002	output = &DisableTopicRuleOutput{}
10003	req = c.newRequest(op, input, output)
10004	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
10005	return
10006}
10007
10008// DisableTopicRule API operation for AWS IoT.
10009//
10010// Disables the rule.
10011//
10012// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10013// with awserr.Error's Code and Message methods to get detailed information about
10014// the error.
10015//
10016// See the AWS API reference guide for AWS IoT's
10017// API operation DisableTopicRule for usage and error information.
10018//
10019// Returned Error Types:
10020//   * InternalException
10021//   An unexpected error has occurred.
10022//
10023//   * InvalidRequestException
10024//   The request is not valid.
10025//
10026//   * ServiceUnavailableException
10027//   The service is temporarily unavailable.
10028//
10029//   * UnauthorizedException
10030//   You are not authorized to perform this operation.
10031//
10032//   * ConflictingResourceUpdateException
10033//   A conflicting resource update exception. This exception is thrown when two
10034//   pending updates cause a conflict.
10035//
10036func (c *IoT) DisableTopicRule(input *DisableTopicRuleInput) (*DisableTopicRuleOutput, error) {
10037	req, out := c.DisableTopicRuleRequest(input)
10038	return out, req.Send()
10039}
10040
10041// DisableTopicRuleWithContext is the same as DisableTopicRule with the addition of
10042// the ability to pass a context and additional request options.
10043//
10044// See DisableTopicRule for details on how to use this API operation.
10045//
10046// The context must be non-nil and will be used for request cancellation. If
10047// the context is nil a panic will occur. In the future the SDK may create
10048// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10049// for more information on using Contexts.
10050func (c *IoT) DisableTopicRuleWithContext(ctx aws.Context, input *DisableTopicRuleInput, opts ...request.Option) (*DisableTopicRuleOutput, error) {
10051	req, out := c.DisableTopicRuleRequest(input)
10052	req.SetContext(ctx)
10053	req.ApplyOptions(opts...)
10054	return out, req.Send()
10055}
10056
10057const opEnableTopicRule = "EnableTopicRule"
10058
10059// EnableTopicRuleRequest generates a "aws/request.Request" representing the
10060// client's request for the EnableTopicRule operation. The "output" return
10061// value will be populated with the request's response once the request completes
10062// successfully.
10063//
10064// Use "Send" method on the returned Request to send the API call to the service.
10065// the "output" return value is not valid until after Send returns without error.
10066//
10067// See EnableTopicRule for more information on using the EnableTopicRule
10068// API call, and error handling.
10069//
10070// This method is useful when you want to inject custom logic or configuration
10071// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10072//
10073//
10074//    // Example sending a request using the EnableTopicRuleRequest method.
10075//    req, resp := client.EnableTopicRuleRequest(params)
10076//
10077//    err := req.Send()
10078//    if err == nil { // resp is now filled
10079//        fmt.Println(resp)
10080//    }
10081func (c *IoT) EnableTopicRuleRequest(input *EnableTopicRuleInput) (req *request.Request, output *EnableTopicRuleOutput) {
10082	op := &request.Operation{
10083		Name:       opEnableTopicRule,
10084		HTTPMethod: "POST",
10085		HTTPPath:   "/rules/{ruleName}/enable",
10086	}
10087
10088	if input == nil {
10089		input = &EnableTopicRuleInput{}
10090	}
10091
10092	output = &EnableTopicRuleOutput{}
10093	req = c.newRequest(op, input, output)
10094	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
10095	return
10096}
10097
10098// EnableTopicRule API operation for AWS IoT.
10099//
10100// Enables the rule.
10101//
10102// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10103// with awserr.Error's Code and Message methods to get detailed information about
10104// the error.
10105//
10106// See the AWS API reference guide for AWS IoT's
10107// API operation EnableTopicRule for usage and error information.
10108//
10109// Returned Error Types:
10110//   * InternalException
10111//   An unexpected error has occurred.
10112//
10113//   * InvalidRequestException
10114//   The request is not valid.
10115//
10116//   * ServiceUnavailableException
10117//   The service is temporarily unavailable.
10118//
10119//   * UnauthorizedException
10120//   You are not authorized to perform this operation.
10121//
10122//   * ConflictingResourceUpdateException
10123//   A conflicting resource update exception. This exception is thrown when two
10124//   pending updates cause a conflict.
10125//
10126func (c *IoT) EnableTopicRule(input *EnableTopicRuleInput) (*EnableTopicRuleOutput, error) {
10127	req, out := c.EnableTopicRuleRequest(input)
10128	return out, req.Send()
10129}
10130
10131// EnableTopicRuleWithContext is the same as EnableTopicRule with the addition of
10132// the ability to pass a context and additional request options.
10133//
10134// See EnableTopicRule for details on how to use this API operation.
10135//
10136// The context must be non-nil and will be used for request cancellation. If
10137// the context is nil a panic will occur. In the future the SDK may create
10138// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10139// for more information on using Contexts.
10140func (c *IoT) EnableTopicRuleWithContext(ctx aws.Context, input *EnableTopicRuleInput, opts ...request.Option) (*EnableTopicRuleOutput, error) {
10141	req, out := c.EnableTopicRuleRequest(input)
10142	req.SetContext(ctx)
10143	req.ApplyOptions(opts...)
10144	return out, req.Send()
10145}
10146
10147const opGetBehaviorModelTrainingSummaries = "GetBehaviorModelTrainingSummaries"
10148
10149// GetBehaviorModelTrainingSummariesRequest generates a "aws/request.Request" representing the
10150// client's request for the GetBehaviorModelTrainingSummaries operation. The "output" return
10151// value will be populated with the request's response once the request completes
10152// successfully.
10153//
10154// Use "Send" method on the returned Request to send the API call to the service.
10155// the "output" return value is not valid until after Send returns without error.
10156//
10157// See GetBehaviorModelTrainingSummaries for more information on using the GetBehaviorModelTrainingSummaries
10158// API call, and error handling.
10159//
10160// This method is useful when you want to inject custom logic or configuration
10161// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10162//
10163//
10164//    // Example sending a request using the GetBehaviorModelTrainingSummariesRequest method.
10165//    req, resp := client.GetBehaviorModelTrainingSummariesRequest(params)
10166//
10167//    err := req.Send()
10168//    if err == nil { // resp is now filled
10169//        fmt.Println(resp)
10170//    }
10171func (c *IoT) GetBehaviorModelTrainingSummariesRequest(input *GetBehaviorModelTrainingSummariesInput) (req *request.Request, output *GetBehaviorModelTrainingSummariesOutput) {
10172	op := &request.Operation{
10173		Name:       opGetBehaviorModelTrainingSummaries,
10174		HTTPMethod: "GET",
10175		HTTPPath:   "/behavior-model-training/summaries",
10176		Paginator: &request.Paginator{
10177			InputTokens:     []string{"nextToken"},
10178			OutputTokens:    []string{"nextToken"},
10179			LimitToken:      "maxResults",
10180			TruncationToken: "",
10181		},
10182	}
10183
10184	if input == nil {
10185		input = &GetBehaviorModelTrainingSummariesInput{}
10186	}
10187
10188	output = &GetBehaviorModelTrainingSummariesOutput{}
10189	req = c.newRequest(op, input, output)
10190	return
10191}
10192
10193// GetBehaviorModelTrainingSummaries API operation for AWS IoT.
10194//
10195// Returns a Device Defender's ML Detect Security Profile training model's status.
10196//
10197// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10198// with awserr.Error's Code and Message methods to get detailed information about
10199// the error.
10200//
10201// See the AWS API reference guide for AWS IoT's
10202// API operation GetBehaviorModelTrainingSummaries for usage and error information.
10203//
10204// Returned Error Types:
10205//   * InvalidRequestException
10206//   The request is not valid.
10207//
10208//   * ThrottlingException
10209//   The rate exceeds the limit.
10210//
10211//   * InternalFailureException
10212//   An unexpected error has occurred.
10213//
10214//   * ResourceNotFoundException
10215//   The specified resource does not exist.
10216//
10217func (c *IoT) GetBehaviorModelTrainingSummaries(input *GetBehaviorModelTrainingSummariesInput) (*GetBehaviorModelTrainingSummariesOutput, error) {
10218	req, out := c.GetBehaviorModelTrainingSummariesRequest(input)
10219	return out, req.Send()
10220}
10221
10222// GetBehaviorModelTrainingSummariesWithContext is the same as GetBehaviorModelTrainingSummaries with the addition of
10223// the ability to pass a context and additional request options.
10224//
10225// See GetBehaviorModelTrainingSummaries for details on how to use this API operation.
10226//
10227// The context must be non-nil and will be used for request cancellation. If
10228// the context is nil a panic will occur. In the future the SDK may create
10229// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10230// for more information on using Contexts.
10231func (c *IoT) GetBehaviorModelTrainingSummariesWithContext(ctx aws.Context, input *GetBehaviorModelTrainingSummariesInput, opts ...request.Option) (*GetBehaviorModelTrainingSummariesOutput, error) {
10232	req, out := c.GetBehaviorModelTrainingSummariesRequest(input)
10233	req.SetContext(ctx)
10234	req.ApplyOptions(opts...)
10235	return out, req.Send()
10236}
10237
10238// GetBehaviorModelTrainingSummariesPages iterates over the pages of a GetBehaviorModelTrainingSummaries operation,
10239// calling the "fn" function with the response data for each page. To stop
10240// iterating, return false from the fn function.
10241//
10242// See GetBehaviorModelTrainingSummaries method for more information on how to use this operation.
10243//
10244// Note: This operation can generate multiple requests to a service.
10245//
10246//    // Example iterating over at most 3 pages of a GetBehaviorModelTrainingSummaries operation.
10247//    pageNum := 0
10248//    err := client.GetBehaviorModelTrainingSummariesPages(params,
10249//        func(page *iot.GetBehaviorModelTrainingSummariesOutput, lastPage bool) bool {
10250//            pageNum++
10251//            fmt.Println(page)
10252//            return pageNum <= 3
10253//        })
10254//
10255func (c *IoT) GetBehaviorModelTrainingSummariesPages(input *GetBehaviorModelTrainingSummariesInput, fn func(*GetBehaviorModelTrainingSummariesOutput, bool) bool) error {
10256	return c.GetBehaviorModelTrainingSummariesPagesWithContext(aws.BackgroundContext(), input, fn)
10257}
10258
10259// GetBehaviorModelTrainingSummariesPagesWithContext same as GetBehaviorModelTrainingSummariesPages except
10260// it takes a Context and allows setting request options on the pages.
10261//
10262// The context must be non-nil and will be used for request cancellation. If
10263// the context is nil a panic will occur. In the future the SDK may create
10264// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10265// for more information on using Contexts.
10266func (c *IoT) GetBehaviorModelTrainingSummariesPagesWithContext(ctx aws.Context, input *GetBehaviorModelTrainingSummariesInput, fn func(*GetBehaviorModelTrainingSummariesOutput, bool) bool, opts ...request.Option) error {
10267	p := request.Pagination{
10268		NewRequest: func() (*request.Request, error) {
10269			var inCpy *GetBehaviorModelTrainingSummariesInput
10270			if input != nil {
10271				tmp := *input
10272				inCpy = &tmp
10273			}
10274			req, _ := c.GetBehaviorModelTrainingSummariesRequest(inCpy)
10275			req.SetContext(ctx)
10276			req.ApplyOptions(opts...)
10277			return req, nil
10278		},
10279	}
10280
10281	for p.Next() {
10282		if !fn(p.Page().(*GetBehaviorModelTrainingSummariesOutput), !p.HasNextPage()) {
10283			break
10284		}
10285	}
10286
10287	return p.Err()
10288}
10289
10290const opGetCardinality = "GetCardinality"
10291
10292// GetCardinalityRequest generates a "aws/request.Request" representing the
10293// client's request for the GetCardinality operation. The "output" return
10294// value will be populated with the request's response once the request completes
10295// successfully.
10296//
10297// Use "Send" method on the returned Request to send the API call to the service.
10298// the "output" return value is not valid until after Send returns without error.
10299//
10300// See GetCardinality for more information on using the GetCardinality
10301// API call, and error handling.
10302//
10303// This method is useful when you want to inject custom logic or configuration
10304// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10305//
10306//
10307//    // Example sending a request using the GetCardinalityRequest method.
10308//    req, resp := client.GetCardinalityRequest(params)
10309//
10310//    err := req.Send()
10311//    if err == nil { // resp is now filled
10312//        fmt.Println(resp)
10313//    }
10314func (c *IoT) GetCardinalityRequest(input *GetCardinalityInput) (req *request.Request, output *GetCardinalityOutput) {
10315	op := &request.Operation{
10316		Name:       opGetCardinality,
10317		HTTPMethod: "POST",
10318		HTTPPath:   "/indices/cardinality",
10319	}
10320
10321	if input == nil {
10322		input = &GetCardinalityInput{}
10323	}
10324
10325	output = &GetCardinalityOutput{}
10326	req = c.newRequest(op, input, output)
10327	return
10328}
10329
10330// GetCardinality API operation for AWS IoT.
10331//
10332// Returns the approximate count of unique values that match the query.
10333//
10334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10335// with awserr.Error's Code and Message methods to get detailed information about
10336// the error.
10337//
10338// See the AWS API reference guide for AWS IoT's
10339// API operation GetCardinality for usage and error information.
10340//
10341// Returned Error Types:
10342//   * InvalidRequestException
10343//   The request is not valid.
10344//
10345//   * ThrottlingException
10346//   The rate exceeds the limit.
10347//
10348//   * UnauthorizedException
10349//   You are not authorized to perform this operation.
10350//
10351//   * ServiceUnavailableException
10352//   The service is temporarily unavailable.
10353//
10354//   * InternalFailureException
10355//   An unexpected error has occurred.
10356//
10357//   * ResourceNotFoundException
10358//   The specified resource does not exist.
10359//
10360//   * InvalidQueryException
10361//   The query is invalid.
10362//
10363//   * InvalidAggregationException
10364//   The aggregation is invalid.
10365//
10366//   * IndexNotReadyException
10367//   The index is not ready.
10368//
10369func (c *IoT) GetCardinality(input *GetCardinalityInput) (*GetCardinalityOutput, error) {
10370	req, out := c.GetCardinalityRequest(input)
10371	return out, req.Send()
10372}
10373
10374// GetCardinalityWithContext is the same as GetCardinality with the addition of
10375// the ability to pass a context and additional request options.
10376//
10377// See GetCardinality for details on how to use this API operation.
10378//
10379// The context must be non-nil and will be used for request cancellation. If
10380// the context is nil a panic will occur. In the future the SDK may create
10381// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10382// for more information on using Contexts.
10383func (c *IoT) GetCardinalityWithContext(ctx aws.Context, input *GetCardinalityInput, opts ...request.Option) (*GetCardinalityOutput, error) {
10384	req, out := c.GetCardinalityRequest(input)
10385	req.SetContext(ctx)
10386	req.ApplyOptions(opts...)
10387	return out, req.Send()
10388}
10389
10390const opGetEffectivePolicies = "GetEffectivePolicies"
10391
10392// GetEffectivePoliciesRequest generates a "aws/request.Request" representing the
10393// client's request for the GetEffectivePolicies operation. The "output" return
10394// value will be populated with the request's response once the request completes
10395// successfully.
10396//
10397// Use "Send" method on the returned Request to send the API call to the service.
10398// the "output" return value is not valid until after Send returns without error.
10399//
10400// See GetEffectivePolicies for more information on using the GetEffectivePolicies
10401// API call, and error handling.
10402//
10403// This method is useful when you want to inject custom logic or configuration
10404// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10405//
10406//
10407//    // Example sending a request using the GetEffectivePoliciesRequest method.
10408//    req, resp := client.GetEffectivePoliciesRequest(params)
10409//
10410//    err := req.Send()
10411//    if err == nil { // resp is now filled
10412//        fmt.Println(resp)
10413//    }
10414func (c *IoT) GetEffectivePoliciesRequest(input *GetEffectivePoliciesInput) (req *request.Request, output *GetEffectivePoliciesOutput) {
10415	op := &request.Operation{
10416		Name:       opGetEffectivePolicies,
10417		HTTPMethod: "POST",
10418		HTTPPath:   "/effective-policies",
10419	}
10420
10421	if input == nil {
10422		input = &GetEffectivePoliciesInput{}
10423	}
10424
10425	output = &GetEffectivePoliciesOutput{}
10426	req = c.newRequest(op, input, output)
10427	return
10428}
10429
10430// GetEffectivePolicies API operation for AWS IoT.
10431//
10432// Gets a list of the policies that have an effect on the authorization behavior
10433// of the specified device when it connects to the AWS IoT device gateway.
10434//
10435// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10436// with awserr.Error's Code and Message methods to get detailed information about
10437// the error.
10438//
10439// See the AWS API reference guide for AWS IoT's
10440// API operation GetEffectivePolicies for usage and error information.
10441//
10442// Returned Error Types:
10443//   * ResourceNotFoundException
10444//   The specified resource does not exist.
10445//
10446//   * InvalidRequestException
10447//   The request is not valid.
10448//
10449//   * ThrottlingException
10450//   The rate exceeds the limit.
10451//
10452//   * UnauthorizedException
10453//   You are not authorized to perform this operation.
10454//
10455//   * ServiceUnavailableException
10456//   The service is temporarily unavailable.
10457//
10458//   * InternalFailureException
10459//   An unexpected error has occurred.
10460//
10461//   * LimitExceededException
10462//   A limit has been exceeded.
10463//
10464func (c *IoT) GetEffectivePolicies(input *GetEffectivePoliciesInput) (*GetEffectivePoliciesOutput, error) {
10465	req, out := c.GetEffectivePoliciesRequest(input)
10466	return out, req.Send()
10467}
10468
10469// GetEffectivePoliciesWithContext is the same as GetEffectivePolicies with the addition of
10470// the ability to pass a context and additional request options.
10471//
10472// See GetEffectivePolicies for details on how to use this API operation.
10473//
10474// The context must be non-nil and will be used for request cancellation. If
10475// the context is nil a panic will occur. In the future the SDK may create
10476// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10477// for more information on using Contexts.
10478func (c *IoT) GetEffectivePoliciesWithContext(ctx aws.Context, input *GetEffectivePoliciesInput, opts ...request.Option) (*GetEffectivePoliciesOutput, error) {
10479	req, out := c.GetEffectivePoliciesRequest(input)
10480	req.SetContext(ctx)
10481	req.ApplyOptions(opts...)
10482	return out, req.Send()
10483}
10484
10485const opGetIndexingConfiguration = "GetIndexingConfiguration"
10486
10487// GetIndexingConfigurationRequest generates a "aws/request.Request" representing the
10488// client's request for the GetIndexingConfiguration operation. The "output" return
10489// value will be populated with the request's response once the request completes
10490// successfully.
10491//
10492// Use "Send" method on the returned Request to send the API call to the service.
10493// the "output" return value is not valid until after Send returns without error.
10494//
10495// See GetIndexingConfiguration for more information on using the GetIndexingConfiguration
10496// API call, and error handling.
10497//
10498// This method is useful when you want to inject custom logic or configuration
10499// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10500//
10501//
10502//    // Example sending a request using the GetIndexingConfigurationRequest method.
10503//    req, resp := client.GetIndexingConfigurationRequest(params)
10504//
10505//    err := req.Send()
10506//    if err == nil { // resp is now filled
10507//        fmt.Println(resp)
10508//    }
10509func (c *IoT) GetIndexingConfigurationRequest(input *GetIndexingConfigurationInput) (req *request.Request, output *GetIndexingConfigurationOutput) {
10510	op := &request.Operation{
10511		Name:       opGetIndexingConfiguration,
10512		HTTPMethod: "GET",
10513		HTTPPath:   "/indexing/config",
10514	}
10515
10516	if input == nil {
10517		input = &GetIndexingConfigurationInput{}
10518	}
10519
10520	output = &GetIndexingConfigurationOutput{}
10521	req = c.newRequest(op, input, output)
10522	return
10523}
10524
10525// GetIndexingConfiguration API operation for AWS IoT.
10526//
10527// Gets the indexing configuration.
10528//
10529// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10530// with awserr.Error's Code and Message methods to get detailed information about
10531// the error.
10532//
10533// See the AWS API reference guide for AWS IoT's
10534// API operation GetIndexingConfiguration for usage and error information.
10535//
10536// Returned Error Types:
10537//   * InvalidRequestException
10538//   The request is not valid.
10539//
10540//   * ThrottlingException
10541//   The rate exceeds the limit.
10542//
10543//   * UnauthorizedException
10544//   You are not authorized to perform this operation.
10545//
10546//   * ServiceUnavailableException
10547//   The service is temporarily unavailable.
10548//
10549//   * InternalFailureException
10550//   An unexpected error has occurred.
10551//
10552func (c *IoT) GetIndexingConfiguration(input *GetIndexingConfigurationInput) (*GetIndexingConfigurationOutput, error) {
10553	req, out := c.GetIndexingConfigurationRequest(input)
10554	return out, req.Send()
10555}
10556
10557// GetIndexingConfigurationWithContext is the same as GetIndexingConfiguration with the addition of
10558// the ability to pass a context and additional request options.
10559//
10560// See GetIndexingConfiguration for details on how to use this API operation.
10561//
10562// The context must be non-nil and will be used for request cancellation. If
10563// the context is nil a panic will occur. In the future the SDK may create
10564// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10565// for more information on using Contexts.
10566func (c *IoT) GetIndexingConfigurationWithContext(ctx aws.Context, input *GetIndexingConfigurationInput, opts ...request.Option) (*GetIndexingConfigurationOutput, error) {
10567	req, out := c.GetIndexingConfigurationRequest(input)
10568	req.SetContext(ctx)
10569	req.ApplyOptions(opts...)
10570	return out, req.Send()
10571}
10572
10573const opGetJobDocument = "GetJobDocument"
10574
10575// GetJobDocumentRequest generates a "aws/request.Request" representing the
10576// client's request for the GetJobDocument operation. The "output" return
10577// value will be populated with the request's response once the request completes
10578// successfully.
10579//
10580// Use "Send" method on the returned Request to send the API call to the service.
10581// the "output" return value is not valid until after Send returns without error.
10582//
10583// See GetJobDocument for more information on using the GetJobDocument
10584// API call, and error handling.
10585//
10586// This method is useful when you want to inject custom logic or configuration
10587// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10588//
10589//
10590//    // Example sending a request using the GetJobDocumentRequest method.
10591//    req, resp := client.GetJobDocumentRequest(params)
10592//
10593//    err := req.Send()
10594//    if err == nil { // resp is now filled
10595//        fmt.Println(resp)
10596//    }
10597func (c *IoT) GetJobDocumentRequest(input *GetJobDocumentInput) (req *request.Request, output *GetJobDocumentOutput) {
10598	op := &request.Operation{
10599		Name:       opGetJobDocument,
10600		HTTPMethod: "GET",
10601		HTTPPath:   "/jobs/{jobId}/job-document",
10602	}
10603
10604	if input == nil {
10605		input = &GetJobDocumentInput{}
10606	}
10607
10608	output = &GetJobDocumentOutput{}
10609	req = c.newRequest(op, input, output)
10610	return
10611}
10612
10613// GetJobDocument API operation for AWS IoT.
10614//
10615// Gets a job document.
10616//
10617// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10618// with awserr.Error's Code and Message methods to get detailed information about
10619// the error.
10620//
10621// See the AWS API reference guide for AWS IoT's
10622// API operation GetJobDocument for usage and error information.
10623//
10624// Returned Error Types:
10625//   * InvalidRequestException
10626//   The request is not valid.
10627//
10628//   * ResourceNotFoundException
10629//   The specified resource does not exist.
10630//
10631//   * ThrottlingException
10632//   The rate exceeds the limit.
10633//
10634//   * ServiceUnavailableException
10635//   The service is temporarily unavailable.
10636//
10637func (c *IoT) GetJobDocument(input *GetJobDocumentInput) (*GetJobDocumentOutput, error) {
10638	req, out := c.GetJobDocumentRequest(input)
10639	return out, req.Send()
10640}
10641
10642// GetJobDocumentWithContext is the same as GetJobDocument with the addition of
10643// the ability to pass a context and additional request options.
10644//
10645// See GetJobDocument for details on how to use this API operation.
10646//
10647// The context must be non-nil and will be used for request cancellation. If
10648// the context is nil a panic will occur. In the future the SDK may create
10649// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10650// for more information on using Contexts.
10651func (c *IoT) GetJobDocumentWithContext(ctx aws.Context, input *GetJobDocumentInput, opts ...request.Option) (*GetJobDocumentOutput, error) {
10652	req, out := c.GetJobDocumentRequest(input)
10653	req.SetContext(ctx)
10654	req.ApplyOptions(opts...)
10655	return out, req.Send()
10656}
10657
10658const opGetLoggingOptions = "GetLoggingOptions"
10659
10660// GetLoggingOptionsRequest generates a "aws/request.Request" representing the
10661// client's request for the GetLoggingOptions operation. The "output" return
10662// value will be populated with the request's response once the request completes
10663// successfully.
10664//
10665// Use "Send" method on the returned Request to send the API call to the service.
10666// the "output" return value is not valid until after Send returns without error.
10667//
10668// See GetLoggingOptions for more information on using the GetLoggingOptions
10669// API call, and error handling.
10670//
10671// This method is useful when you want to inject custom logic or configuration
10672// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10673//
10674//
10675//    // Example sending a request using the GetLoggingOptionsRequest method.
10676//    req, resp := client.GetLoggingOptionsRequest(params)
10677//
10678//    err := req.Send()
10679//    if err == nil { // resp is now filled
10680//        fmt.Println(resp)
10681//    }
10682func (c *IoT) GetLoggingOptionsRequest(input *GetLoggingOptionsInput) (req *request.Request, output *GetLoggingOptionsOutput) {
10683	op := &request.Operation{
10684		Name:       opGetLoggingOptions,
10685		HTTPMethod: "GET",
10686		HTTPPath:   "/loggingOptions",
10687	}
10688
10689	if input == nil {
10690		input = &GetLoggingOptionsInput{}
10691	}
10692
10693	output = &GetLoggingOptionsOutput{}
10694	req = c.newRequest(op, input, output)
10695	return
10696}
10697
10698// GetLoggingOptions API operation for AWS IoT.
10699//
10700// Gets the logging options.
10701//
10702// NOTE: use of this command is not recommended. Use GetV2LoggingOptions instead.
10703//
10704// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10705// with awserr.Error's Code and Message methods to get detailed information about
10706// the error.
10707//
10708// See the AWS API reference guide for AWS IoT's
10709// API operation GetLoggingOptions for usage and error information.
10710//
10711// Returned Error Types:
10712//   * InternalException
10713//   An unexpected error has occurred.
10714//
10715//   * InvalidRequestException
10716//   The request is not valid.
10717//
10718//   * ServiceUnavailableException
10719//   The service is temporarily unavailable.
10720//
10721func (c *IoT) GetLoggingOptions(input *GetLoggingOptionsInput) (*GetLoggingOptionsOutput, error) {
10722	req, out := c.GetLoggingOptionsRequest(input)
10723	return out, req.Send()
10724}
10725
10726// GetLoggingOptionsWithContext is the same as GetLoggingOptions with the addition of
10727// the ability to pass a context and additional request options.
10728//
10729// See GetLoggingOptions for details on how to use this API operation.
10730//
10731// The context must be non-nil and will be used for request cancellation. If
10732// the context is nil a panic will occur. In the future the SDK may create
10733// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10734// for more information on using Contexts.
10735func (c *IoT) GetLoggingOptionsWithContext(ctx aws.Context, input *GetLoggingOptionsInput, opts ...request.Option) (*GetLoggingOptionsOutput, error) {
10736	req, out := c.GetLoggingOptionsRequest(input)
10737	req.SetContext(ctx)
10738	req.ApplyOptions(opts...)
10739	return out, req.Send()
10740}
10741
10742const opGetOTAUpdate = "GetOTAUpdate"
10743
10744// GetOTAUpdateRequest generates a "aws/request.Request" representing the
10745// client's request for the GetOTAUpdate operation. The "output" return
10746// value will be populated with the request's response once the request completes
10747// successfully.
10748//
10749// Use "Send" method on the returned Request to send the API call to the service.
10750// the "output" return value is not valid until after Send returns without error.
10751//
10752// See GetOTAUpdate for more information on using the GetOTAUpdate
10753// API call, and error handling.
10754//
10755// This method is useful when you want to inject custom logic or configuration
10756// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10757//
10758//
10759//    // Example sending a request using the GetOTAUpdateRequest method.
10760//    req, resp := client.GetOTAUpdateRequest(params)
10761//
10762//    err := req.Send()
10763//    if err == nil { // resp is now filled
10764//        fmt.Println(resp)
10765//    }
10766func (c *IoT) GetOTAUpdateRequest(input *GetOTAUpdateInput) (req *request.Request, output *GetOTAUpdateOutput) {
10767	op := &request.Operation{
10768		Name:       opGetOTAUpdate,
10769		HTTPMethod: "GET",
10770		HTTPPath:   "/otaUpdates/{otaUpdateId}",
10771	}
10772
10773	if input == nil {
10774		input = &GetOTAUpdateInput{}
10775	}
10776
10777	output = &GetOTAUpdateOutput{}
10778	req = c.newRequest(op, input, output)
10779	return
10780}
10781
10782// GetOTAUpdate API operation for AWS IoT.
10783//
10784// Gets an OTA update.
10785//
10786// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10787// with awserr.Error's Code and Message methods to get detailed information about
10788// the error.
10789//
10790// See the AWS API reference guide for AWS IoT's
10791// API operation GetOTAUpdate for usage and error information.
10792//
10793// Returned Error Types:
10794//   * InvalidRequestException
10795//   The request is not valid.
10796//
10797//   * ThrottlingException
10798//   The rate exceeds the limit.
10799//
10800//   * UnauthorizedException
10801//   You are not authorized to perform this operation.
10802//
10803//   * InternalFailureException
10804//   An unexpected error has occurred.
10805//
10806//   * ServiceUnavailableException
10807//   The service is temporarily unavailable.
10808//
10809//   * ResourceNotFoundException
10810//   The specified resource does not exist.
10811//
10812func (c *IoT) GetOTAUpdate(input *GetOTAUpdateInput) (*GetOTAUpdateOutput, error) {
10813	req, out := c.GetOTAUpdateRequest(input)
10814	return out, req.Send()
10815}
10816
10817// GetOTAUpdateWithContext is the same as GetOTAUpdate with the addition of
10818// the ability to pass a context and additional request options.
10819//
10820// See GetOTAUpdate for details on how to use this API operation.
10821//
10822// The context must be non-nil and will be used for request cancellation. If
10823// the context is nil a panic will occur. In the future the SDK may create
10824// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10825// for more information on using Contexts.
10826func (c *IoT) GetOTAUpdateWithContext(ctx aws.Context, input *GetOTAUpdateInput, opts ...request.Option) (*GetOTAUpdateOutput, error) {
10827	req, out := c.GetOTAUpdateRequest(input)
10828	req.SetContext(ctx)
10829	req.ApplyOptions(opts...)
10830	return out, req.Send()
10831}
10832
10833const opGetPercentiles = "GetPercentiles"
10834
10835// GetPercentilesRequest generates a "aws/request.Request" representing the
10836// client's request for the GetPercentiles operation. The "output" return
10837// value will be populated with the request's response once the request completes
10838// successfully.
10839//
10840// Use "Send" method on the returned Request to send the API call to the service.
10841// the "output" return value is not valid until after Send returns without error.
10842//
10843// See GetPercentiles for more information on using the GetPercentiles
10844// API call, and error handling.
10845//
10846// This method is useful when you want to inject custom logic or configuration
10847// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10848//
10849//
10850//    // Example sending a request using the GetPercentilesRequest method.
10851//    req, resp := client.GetPercentilesRequest(params)
10852//
10853//    err := req.Send()
10854//    if err == nil { // resp is now filled
10855//        fmt.Println(resp)
10856//    }
10857func (c *IoT) GetPercentilesRequest(input *GetPercentilesInput) (req *request.Request, output *GetPercentilesOutput) {
10858	op := &request.Operation{
10859		Name:       opGetPercentiles,
10860		HTTPMethod: "POST",
10861		HTTPPath:   "/indices/percentiles",
10862	}
10863
10864	if input == nil {
10865		input = &GetPercentilesInput{}
10866	}
10867
10868	output = &GetPercentilesOutput{}
10869	req = c.newRequest(op, input, output)
10870	return
10871}
10872
10873// GetPercentiles API operation for AWS IoT.
10874//
10875// Groups the aggregated values that match the query into percentile groupings.
10876// The default percentile groupings are: 1,5,25,50,75,95,99, although you can
10877// specify your own when you call GetPercentiles. This function returns a value
10878// for each percentile group specified (or the default percentile groupings).
10879// The percentile group "1" contains the aggregated field value that occurs
10880// in approximately one percent of the values that match the query. The percentile
10881// group "5" contains the aggregated field value that occurs in approximately
10882// five percent of the values that match the query, and so on. The result is
10883// an approximation, the more values that match the query, the more accurate
10884// the percentile values.
10885//
10886// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10887// with awserr.Error's Code and Message methods to get detailed information about
10888// the error.
10889//
10890// See the AWS API reference guide for AWS IoT's
10891// API operation GetPercentiles for usage and error information.
10892//
10893// Returned Error Types:
10894//   * InvalidRequestException
10895//   The request is not valid.
10896//
10897//   * ThrottlingException
10898//   The rate exceeds the limit.
10899//
10900//   * UnauthorizedException
10901//   You are not authorized to perform this operation.
10902//
10903//   * ServiceUnavailableException
10904//   The service is temporarily unavailable.
10905//
10906//   * InternalFailureException
10907//   An unexpected error has occurred.
10908//
10909//   * ResourceNotFoundException
10910//   The specified resource does not exist.
10911//
10912//   * InvalidQueryException
10913//   The query is invalid.
10914//
10915//   * InvalidAggregationException
10916//   The aggregation is invalid.
10917//
10918//   * IndexNotReadyException
10919//   The index is not ready.
10920//
10921func (c *IoT) GetPercentiles(input *GetPercentilesInput) (*GetPercentilesOutput, error) {
10922	req, out := c.GetPercentilesRequest(input)
10923	return out, req.Send()
10924}
10925
10926// GetPercentilesWithContext is the same as GetPercentiles with the addition of
10927// the ability to pass a context and additional request options.
10928//
10929// See GetPercentiles for details on how to use this API operation.
10930//
10931// The context must be non-nil and will be used for request cancellation. If
10932// the context is nil a panic will occur. In the future the SDK may create
10933// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10934// for more information on using Contexts.
10935func (c *IoT) GetPercentilesWithContext(ctx aws.Context, input *GetPercentilesInput, opts ...request.Option) (*GetPercentilesOutput, error) {
10936	req, out := c.GetPercentilesRequest(input)
10937	req.SetContext(ctx)
10938	req.ApplyOptions(opts...)
10939	return out, req.Send()
10940}
10941
10942const opGetPolicy = "GetPolicy"
10943
10944// GetPolicyRequest generates a "aws/request.Request" representing the
10945// client's request for the GetPolicy operation. The "output" return
10946// value will be populated with the request's response once the request completes
10947// successfully.
10948//
10949// Use "Send" method on the returned Request to send the API call to the service.
10950// the "output" return value is not valid until after Send returns without error.
10951//
10952// See GetPolicy for more information on using the GetPolicy
10953// API call, and error handling.
10954//
10955// This method is useful when you want to inject custom logic or configuration
10956// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10957//
10958//
10959//    // Example sending a request using the GetPolicyRequest method.
10960//    req, resp := client.GetPolicyRequest(params)
10961//
10962//    err := req.Send()
10963//    if err == nil { // resp is now filled
10964//        fmt.Println(resp)
10965//    }
10966func (c *IoT) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
10967	op := &request.Operation{
10968		Name:       opGetPolicy,
10969		HTTPMethod: "GET",
10970		HTTPPath:   "/policies/{policyName}",
10971	}
10972
10973	if input == nil {
10974		input = &GetPolicyInput{}
10975	}
10976
10977	output = &GetPolicyOutput{}
10978	req = c.newRequest(op, input, output)
10979	return
10980}
10981
10982// GetPolicy API operation for AWS IoT.
10983//
10984// Gets information about the specified policy with the policy document of the
10985// default version.
10986//
10987// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10988// with awserr.Error's Code and Message methods to get detailed information about
10989// the error.
10990//
10991// See the AWS API reference guide for AWS IoT's
10992// API operation GetPolicy for usage and error information.
10993//
10994// Returned Error Types:
10995//   * ResourceNotFoundException
10996//   The specified resource does not exist.
10997//
10998//   * InvalidRequestException
10999//   The request is not valid.
11000//
11001//   * ThrottlingException
11002//   The rate exceeds the limit.
11003//
11004//   * UnauthorizedException
11005//   You are not authorized to perform this operation.
11006//
11007//   * ServiceUnavailableException
11008//   The service is temporarily unavailable.
11009//
11010//   * InternalFailureException
11011//   An unexpected error has occurred.
11012//
11013func (c *IoT) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
11014	req, out := c.GetPolicyRequest(input)
11015	return out, req.Send()
11016}
11017
11018// GetPolicyWithContext is the same as GetPolicy with the addition of
11019// the ability to pass a context and additional request options.
11020//
11021// See GetPolicy for details on how to use this API operation.
11022//
11023// The context must be non-nil and will be used for request cancellation. If
11024// the context is nil a panic will occur. In the future the SDK may create
11025// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11026// for more information on using Contexts.
11027func (c *IoT) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) {
11028	req, out := c.GetPolicyRequest(input)
11029	req.SetContext(ctx)
11030	req.ApplyOptions(opts...)
11031	return out, req.Send()
11032}
11033
11034const opGetPolicyVersion = "GetPolicyVersion"
11035
11036// GetPolicyVersionRequest generates a "aws/request.Request" representing the
11037// client's request for the GetPolicyVersion operation. The "output" return
11038// value will be populated with the request's response once the request completes
11039// successfully.
11040//
11041// Use "Send" method on the returned Request to send the API call to the service.
11042// the "output" return value is not valid until after Send returns without error.
11043//
11044// See GetPolicyVersion for more information on using the GetPolicyVersion
11045// API call, and error handling.
11046//
11047// This method is useful when you want to inject custom logic or configuration
11048// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11049//
11050//
11051//    // Example sending a request using the GetPolicyVersionRequest method.
11052//    req, resp := client.GetPolicyVersionRequest(params)
11053//
11054//    err := req.Send()
11055//    if err == nil { // resp is now filled
11056//        fmt.Println(resp)
11057//    }
11058func (c *IoT) GetPolicyVersionRequest(input *GetPolicyVersionInput) (req *request.Request, output *GetPolicyVersionOutput) {
11059	op := &request.Operation{
11060		Name:       opGetPolicyVersion,
11061		HTTPMethod: "GET",
11062		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
11063	}
11064
11065	if input == nil {
11066		input = &GetPolicyVersionInput{}
11067	}
11068
11069	output = &GetPolicyVersionOutput{}
11070	req = c.newRequest(op, input, output)
11071	return
11072}
11073
11074// GetPolicyVersion API operation for AWS IoT.
11075//
11076// Gets information about the specified policy version.
11077//
11078// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11079// with awserr.Error's Code and Message methods to get detailed information about
11080// the error.
11081//
11082// See the AWS API reference guide for AWS IoT's
11083// API operation GetPolicyVersion for usage and error information.
11084//
11085// Returned Error Types:
11086//   * ResourceNotFoundException
11087//   The specified resource does not exist.
11088//
11089//   * InvalidRequestException
11090//   The request is not valid.
11091//
11092//   * ThrottlingException
11093//   The rate exceeds the limit.
11094//
11095//   * UnauthorizedException
11096//   You are not authorized to perform this operation.
11097//
11098//   * ServiceUnavailableException
11099//   The service is temporarily unavailable.
11100//
11101//   * InternalFailureException
11102//   An unexpected error has occurred.
11103//
11104func (c *IoT) GetPolicyVersion(input *GetPolicyVersionInput) (*GetPolicyVersionOutput, error) {
11105	req, out := c.GetPolicyVersionRequest(input)
11106	return out, req.Send()
11107}
11108
11109// GetPolicyVersionWithContext is the same as GetPolicyVersion with the addition of
11110// the ability to pass a context and additional request options.
11111//
11112// See GetPolicyVersion for details on how to use this API operation.
11113//
11114// The context must be non-nil and will be used for request cancellation. If
11115// the context is nil a panic will occur. In the future the SDK may create
11116// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11117// for more information on using Contexts.
11118func (c *IoT) GetPolicyVersionWithContext(ctx aws.Context, input *GetPolicyVersionInput, opts ...request.Option) (*GetPolicyVersionOutput, error) {
11119	req, out := c.GetPolicyVersionRequest(input)
11120	req.SetContext(ctx)
11121	req.ApplyOptions(opts...)
11122	return out, req.Send()
11123}
11124
11125const opGetRegistrationCode = "GetRegistrationCode"
11126
11127// GetRegistrationCodeRequest generates a "aws/request.Request" representing the
11128// client's request for the GetRegistrationCode operation. The "output" return
11129// value will be populated with the request's response once the request completes
11130// successfully.
11131//
11132// Use "Send" method on the returned Request to send the API call to the service.
11133// the "output" return value is not valid until after Send returns without error.
11134//
11135// See GetRegistrationCode for more information on using the GetRegistrationCode
11136// API call, and error handling.
11137//
11138// This method is useful when you want to inject custom logic or configuration
11139// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11140//
11141//
11142//    // Example sending a request using the GetRegistrationCodeRequest method.
11143//    req, resp := client.GetRegistrationCodeRequest(params)
11144//
11145//    err := req.Send()
11146//    if err == nil { // resp is now filled
11147//        fmt.Println(resp)
11148//    }
11149func (c *IoT) GetRegistrationCodeRequest(input *GetRegistrationCodeInput) (req *request.Request, output *GetRegistrationCodeOutput) {
11150	op := &request.Operation{
11151		Name:       opGetRegistrationCode,
11152		HTTPMethod: "GET",
11153		HTTPPath:   "/registrationcode",
11154	}
11155
11156	if input == nil {
11157		input = &GetRegistrationCodeInput{}
11158	}
11159
11160	output = &GetRegistrationCodeOutput{}
11161	req = c.newRequest(op, input, output)
11162	return
11163}
11164
11165// GetRegistrationCode API operation for AWS IoT.
11166//
11167// Gets a registration code used to register a CA certificate with AWS IoT.
11168//
11169// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11170// with awserr.Error's Code and Message methods to get detailed information about
11171// the error.
11172//
11173// See the AWS API reference guide for AWS IoT's
11174// API operation GetRegistrationCode for usage and error information.
11175//
11176// Returned Error Types:
11177//   * ThrottlingException
11178//   The rate exceeds the limit.
11179//
11180//   * UnauthorizedException
11181//   You are not authorized to perform this operation.
11182//
11183//   * ServiceUnavailableException
11184//   The service is temporarily unavailable.
11185//
11186//   * InternalFailureException
11187//   An unexpected error has occurred.
11188//
11189//   * InvalidRequestException
11190//   The request is not valid.
11191//
11192func (c *IoT) GetRegistrationCode(input *GetRegistrationCodeInput) (*GetRegistrationCodeOutput, error) {
11193	req, out := c.GetRegistrationCodeRequest(input)
11194	return out, req.Send()
11195}
11196
11197// GetRegistrationCodeWithContext is the same as GetRegistrationCode with the addition of
11198// the ability to pass a context and additional request options.
11199//
11200// See GetRegistrationCode for details on how to use this API operation.
11201//
11202// The context must be non-nil and will be used for request cancellation. If
11203// the context is nil a panic will occur. In the future the SDK may create
11204// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11205// for more information on using Contexts.
11206func (c *IoT) GetRegistrationCodeWithContext(ctx aws.Context, input *GetRegistrationCodeInput, opts ...request.Option) (*GetRegistrationCodeOutput, error) {
11207	req, out := c.GetRegistrationCodeRequest(input)
11208	req.SetContext(ctx)
11209	req.ApplyOptions(opts...)
11210	return out, req.Send()
11211}
11212
11213const opGetStatistics = "GetStatistics"
11214
11215// GetStatisticsRequest generates a "aws/request.Request" representing the
11216// client's request for the GetStatistics operation. The "output" return
11217// value will be populated with the request's response once the request completes
11218// successfully.
11219//
11220// Use "Send" method on the returned Request to send the API call to the service.
11221// the "output" return value is not valid until after Send returns without error.
11222//
11223// See GetStatistics for more information on using the GetStatistics
11224// API call, and error handling.
11225//
11226// This method is useful when you want to inject custom logic or configuration
11227// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11228//
11229//
11230//    // Example sending a request using the GetStatisticsRequest method.
11231//    req, resp := client.GetStatisticsRequest(params)
11232//
11233//    err := req.Send()
11234//    if err == nil { // resp is now filled
11235//        fmt.Println(resp)
11236//    }
11237func (c *IoT) GetStatisticsRequest(input *GetStatisticsInput) (req *request.Request, output *GetStatisticsOutput) {
11238	op := &request.Operation{
11239		Name:       opGetStatistics,
11240		HTTPMethod: "POST",
11241		HTTPPath:   "/indices/statistics",
11242	}
11243
11244	if input == nil {
11245		input = &GetStatisticsInput{}
11246	}
11247
11248	output = &GetStatisticsOutput{}
11249	req = c.newRequest(op, input, output)
11250	return
11251}
11252
11253// GetStatistics API operation for AWS IoT.
11254//
11255// Returns the count, average, sum, minimum, maximum, sum of squares, variance,
11256// and standard deviation for the specified aggregated field. If the aggregation
11257// field is of type String, only the count statistic is returned.
11258//
11259// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11260// with awserr.Error's Code and Message methods to get detailed information about
11261// the error.
11262//
11263// See the AWS API reference guide for AWS IoT's
11264// API operation GetStatistics for usage and error information.
11265//
11266// Returned Error Types:
11267//   * InvalidRequestException
11268//   The request is not valid.
11269//
11270//   * ThrottlingException
11271//   The rate exceeds the limit.
11272//
11273//   * UnauthorizedException
11274//   You are not authorized to perform this operation.
11275//
11276//   * ServiceUnavailableException
11277//   The service is temporarily unavailable.
11278//
11279//   * InternalFailureException
11280//   An unexpected error has occurred.
11281//
11282//   * ResourceNotFoundException
11283//   The specified resource does not exist.
11284//
11285//   * InvalidQueryException
11286//   The query is invalid.
11287//
11288//   * InvalidAggregationException
11289//   The aggregation is invalid.
11290//
11291//   * IndexNotReadyException
11292//   The index is not ready.
11293//
11294func (c *IoT) GetStatistics(input *GetStatisticsInput) (*GetStatisticsOutput, error) {
11295	req, out := c.GetStatisticsRequest(input)
11296	return out, req.Send()
11297}
11298
11299// GetStatisticsWithContext is the same as GetStatistics with the addition of
11300// the ability to pass a context and additional request options.
11301//
11302// See GetStatistics for details on how to use this API operation.
11303//
11304// The context must be non-nil and will be used for request cancellation. If
11305// the context is nil a panic will occur. In the future the SDK may create
11306// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11307// for more information on using Contexts.
11308func (c *IoT) GetStatisticsWithContext(ctx aws.Context, input *GetStatisticsInput, opts ...request.Option) (*GetStatisticsOutput, error) {
11309	req, out := c.GetStatisticsRequest(input)
11310	req.SetContext(ctx)
11311	req.ApplyOptions(opts...)
11312	return out, req.Send()
11313}
11314
11315const opGetTopicRule = "GetTopicRule"
11316
11317// GetTopicRuleRequest generates a "aws/request.Request" representing the
11318// client's request for the GetTopicRule operation. The "output" return
11319// value will be populated with the request's response once the request completes
11320// successfully.
11321//
11322// Use "Send" method on the returned Request to send the API call to the service.
11323// the "output" return value is not valid until after Send returns without error.
11324//
11325// See GetTopicRule for more information on using the GetTopicRule
11326// API call, and error handling.
11327//
11328// This method is useful when you want to inject custom logic or configuration
11329// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11330//
11331//
11332//    // Example sending a request using the GetTopicRuleRequest method.
11333//    req, resp := client.GetTopicRuleRequest(params)
11334//
11335//    err := req.Send()
11336//    if err == nil { // resp is now filled
11337//        fmt.Println(resp)
11338//    }
11339func (c *IoT) GetTopicRuleRequest(input *GetTopicRuleInput) (req *request.Request, output *GetTopicRuleOutput) {
11340	op := &request.Operation{
11341		Name:       opGetTopicRule,
11342		HTTPMethod: "GET",
11343		HTTPPath:   "/rules/{ruleName}",
11344	}
11345
11346	if input == nil {
11347		input = &GetTopicRuleInput{}
11348	}
11349
11350	output = &GetTopicRuleOutput{}
11351	req = c.newRequest(op, input, output)
11352	return
11353}
11354
11355// GetTopicRule API operation for AWS IoT.
11356//
11357// Gets information about the rule.
11358//
11359// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11360// with awserr.Error's Code and Message methods to get detailed information about
11361// the error.
11362//
11363// See the AWS API reference guide for AWS IoT's
11364// API operation GetTopicRule for usage and error information.
11365//
11366// Returned Error Types:
11367//   * InternalException
11368//   An unexpected error has occurred.
11369//
11370//   * InvalidRequestException
11371//   The request is not valid.
11372//
11373//   * ServiceUnavailableException
11374//   The service is temporarily unavailable.
11375//
11376//   * UnauthorizedException
11377//   You are not authorized to perform this operation.
11378//
11379func (c *IoT) GetTopicRule(input *GetTopicRuleInput) (*GetTopicRuleOutput, error) {
11380	req, out := c.GetTopicRuleRequest(input)
11381	return out, req.Send()
11382}
11383
11384// GetTopicRuleWithContext is the same as GetTopicRule with the addition of
11385// the ability to pass a context and additional request options.
11386//
11387// See GetTopicRule for details on how to use this API operation.
11388//
11389// The context must be non-nil and will be used for request cancellation. If
11390// the context is nil a panic will occur. In the future the SDK may create
11391// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11392// for more information on using Contexts.
11393func (c *IoT) GetTopicRuleWithContext(ctx aws.Context, input *GetTopicRuleInput, opts ...request.Option) (*GetTopicRuleOutput, error) {
11394	req, out := c.GetTopicRuleRequest(input)
11395	req.SetContext(ctx)
11396	req.ApplyOptions(opts...)
11397	return out, req.Send()
11398}
11399
11400const opGetTopicRuleDestination = "GetTopicRuleDestination"
11401
11402// GetTopicRuleDestinationRequest generates a "aws/request.Request" representing the
11403// client's request for the GetTopicRuleDestination operation. The "output" return
11404// value will be populated with the request's response once the request completes
11405// successfully.
11406//
11407// Use "Send" method on the returned Request to send the API call to the service.
11408// the "output" return value is not valid until after Send returns without error.
11409//
11410// See GetTopicRuleDestination for more information on using the GetTopicRuleDestination
11411// API call, and error handling.
11412//
11413// This method is useful when you want to inject custom logic or configuration
11414// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11415//
11416//
11417//    // Example sending a request using the GetTopicRuleDestinationRequest method.
11418//    req, resp := client.GetTopicRuleDestinationRequest(params)
11419//
11420//    err := req.Send()
11421//    if err == nil { // resp is now filled
11422//        fmt.Println(resp)
11423//    }
11424func (c *IoT) GetTopicRuleDestinationRequest(input *GetTopicRuleDestinationInput) (req *request.Request, output *GetTopicRuleDestinationOutput) {
11425	op := &request.Operation{
11426		Name:       opGetTopicRuleDestination,
11427		HTTPMethod: "GET",
11428		HTTPPath:   "/destinations/{arn+}",
11429	}
11430
11431	if input == nil {
11432		input = &GetTopicRuleDestinationInput{}
11433	}
11434
11435	output = &GetTopicRuleDestinationOutput{}
11436	req = c.newRequest(op, input, output)
11437	return
11438}
11439
11440// GetTopicRuleDestination API operation for AWS IoT.
11441//
11442// Gets information about a topic rule destination.
11443//
11444// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11445// with awserr.Error's Code and Message methods to get detailed information about
11446// the error.
11447//
11448// See the AWS API reference guide for AWS IoT's
11449// API operation GetTopicRuleDestination for usage and error information.
11450//
11451// Returned Error Types:
11452//   * InternalException
11453//   An unexpected error has occurred.
11454//
11455//   * InvalidRequestException
11456//   The request is not valid.
11457//
11458//   * ServiceUnavailableException
11459//   The service is temporarily unavailable.
11460//
11461//   * UnauthorizedException
11462//   You are not authorized to perform this operation.
11463//
11464func (c *IoT) GetTopicRuleDestination(input *GetTopicRuleDestinationInput) (*GetTopicRuleDestinationOutput, error) {
11465	req, out := c.GetTopicRuleDestinationRequest(input)
11466	return out, req.Send()
11467}
11468
11469// GetTopicRuleDestinationWithContext is the same as GetTopicRuleDestination with the addition of
11470// the ability to pass a context and additional request options.
11471//
11472// See GetTopicRuleDestination for details on how to use this API operation.
11473//
11474// The context must be non-nil and will be used for request cancellation. If
11475// the context is nil a panic will occur. In the future the SDK may create
11476// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11477// for more information on using Contexts.
11478func (c *IoT) GetTopicRuleDestinationWithContext(ctx aws.Context, input *GetTopicRuleDestinationInput, opts ...request.Option) (*GetTopicRuleDestinationOutput, error) {
11479	req, out := c.GetTopicRuleDestinationRequest(input)
11480	req.SetContext(ctx)
11481	req.ApplyOptions(opts...)
11482	return out, req.Send()
11483}
11484
11485const opGetV2LoggingOptions = "GetV2LoggingOptions"
11486
11487// GetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
11488// client's request for the GetV2LoggingOptions operation. The "output" return
11489// value will be populated with the request's response once the request completes
11490// successfully.
11491//
11492// Use "Send" method on the returned Request to send the API call to the service.
11493// the "output" return value is not valid until after Send returns without error.
11494//
11495// See GetV2LoggingOptions for more information on using the GetV2LoggingOptions
11496// API call, and error handling.
11497//
11498// This method is useful when you want to inject custom logic or configuration
11499// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11500//
11501//
11502//    // Example sending a request using the GetV2LoggingOptionsRequest method.
11503//    req, resp := client.GetV2LoggingOptionsRequest(params)
11504//
11505//    err := req.Send()
11506//    if err == nil { // resp is now filled
11507//        fmt.Println(resp)
11508//    }
11509func (c *IoT) GetV2LoggingOptionsRequest(input *GetV2LoggingOptionsInput) (req *request.Request, output *GetV2LoggingOptionsOutput) {
11510	op := &request.Operation{
11511		Name:       opGetV2LoggingOptions,
11512		HTTPMethod: "GET",
11513		HTTPPath:   "/v2LoggingOptions",
11514	}
11515
11516	if input == nil {
11517		input = &GetV2LoggingOptionsInput{}
11518	}
11519
11520	output = &GetV2LoggingOptionsOutput{}
11521	req = c.newRequest(op, input, output)
11522	return
11523}
11524
11525// GetV2LoggingOptions API operation for AWS IoT.
11526//
11527// Gets the fine grained logging options.
11528//
11529// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11530// with awserr.Error's Code and Message methods to get detailed information about
11531// the error.
11532//
11533// See the AWS API reference guide for AWS IoT's
11534// API operation GetV2LoggingOptions for usage and error information.
11535//
11536// Returned Error Types:
11537//   * InternalException
11538//   An unexpected error has occurred.
11539//
11540//   * NotConfiguredException
11541//   The resource is not configured.
11542//
11543//   * ServiceUnavailableException
11544//   The service is temporarily unavailable.
11545//
11546func (c *IoT) GetV2LoggingOptions(input *GetV2LoggingOptionsInput) (*GetV2LoggingOptionsOutput, error) {
11547	req, out := c.GetV2LoggingOptionsRequest(input)
11548	return out, req.Send()
11549}
11550
11551// GetV2LoggingOptionsWithContext is the same as GetV2LoggingOptions with the addition of
11552// the ability to pass a context and additional request options.
11553//
11554// See GetV2LoggingOptions for details on how to use this API operation.
11555//
11556// The context must be non-nil and will be used for request cancellation. If
11557// the context is nil a panic will occur. In the future the SDK may create
11558// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11559// for more information on using Contexts.
11560func (c *IoT) GetV2LoggingOptionsWithContext(ctx aws.Context, input *GetV2LoggingOptionsInput, opts ...request.Option) (*GetV2LoggingOptionsOutput, error) {
11561	req, out := c.GetV2LoggingOptionsRequest(input)
11562	req.SetContext(ctx)
11563	req.ApplyOptions(opts...)
11564	return out, req.Send()
11565}
11566
11567const opListActiveViolations = "ListActiveViolations"
11568
11569// ListActiveViolationsRequest generates a "aws/request.Request" representing the
11570// client's request for the ListActiveViolations operation. The "output" return
11571// value will be populated with the request's response once the request completes
11572// successfully.
11573//
11574// Use "Send" method on the returned Request to send the API call to the service.
11575// the "output" return value is not valid until after Send returns without error.
11576//
11577// See ListActiveViolations for more information on using the ListActiveViolations
11578// API call, and error handling.
11579//
11580// This method is useful when you want to inject custom logic or configuration
11581// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11582//
11583//
11584//    // Example sending a request using the ListActiveViolationsRequest method.
11585//    req, resp := client.ListActiveViolationsRequest(params)
11586//
11587//    err := req.Send()
11588//    if err == nil { // resp is now filled
11589//        fmt.Println(resp)
11590//    }
11591func (c *IoT) ListActiveViolationsRequest(input *ListActiveViolationsInput) (req *request.Request, output *ListActiveViolationsOutput) {
11592	op := &request.Operation{
11593		Name:       opListActiveViolations,
11594		HTTPMethod: "GET",
11595		HTTPPath:   "/active-violations",
11596		Paginator: &request.Paginator{
11597			InputTokens:     []string{"nextToken"},
11598			OutputTokens:    []string{"nextToken"},
11599			LimitToken:      "maxResults",
11600			TruncationToken: "",
11601		},
11602	}
11603
11604	if input == nil {
11605		input = &ListActiveViolationsInput{}
11606	}
11607
11608	output = &ListActiveViolationsOutput{}
11609	req = c.newRequest(op, input, output)
11610	return
11611}
11612
11613// ListActiveViolations API operation for AWS IoT.
11614//
11615// Lists the active violations for a given Device Defender security profile.
11616//
11617// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11618// with awserr.Error's Code and Message methods to get detailed information about
11619// the error.
11620//
11621// See the AWS API reference guide for AWS IoT's
11622// API operation ListActiveViolations for usage and error information.
11623//
11624// Returned Error Types:
11625//   * InvalidRequestException
11626//   The request is not valid.
11627//
11628//   * ResourceNotFoundException
11629//   The specified resource does not exist.
11630//
11631//   * ThrottlingException
11632//   The rate exceeds the limit.
11633//
11634//   * InternalFailureException
11635//   An unexpected error has occurred.
11636//
11637func (c *IoT) ListActiveViolations(input *ListActiveViolationsInput) (*ListActiveViolationsOutput, error) {
11638	req, out := c.ListActiveViolationsRequest(input)
11639	return out, req.Send()
11640}
11641
11642// ListActiveViolationsWithContext is the same as ListActiveViolations with the addition of
11643// the ability to pass a context and additional request options.
11644//
11645// See ListActiveViolations for details on how to use this API operation.
11646//
11647// The context must be non-nil and will be used for request cancellation. If
11648// the context is nil a panic will occur. In the future the SDK may create
11649// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11650// for more information on using Contexts.
11651func (c *IoT) ListActiveViolationsWithContext(ctx aws.Context, input *ListActiveViolationsInput, opts ...request.Option) (*ListActiveViolationsOutput, error) {
11652	req, out := c.ListActiveViolationsRequest(input)
11653	req.SetContext(ctx)
11654	req.ApplyOptions(opts...)
11655	return out, req.Send()
11656}
11657
11658// ListActiveViolationsPages iterates over the pages of a ListActiveViolations operation,
11659// calling the "fn" function with the response data for each page. To stop
11660// iterating, return false from the fn function.
11661//
11662// See ListActiveViolations method for more information on how to use this operation.
11663//
11664// Note: This operation can generate multiple requests to a service.
11665//
11666//    // Example iterating over at most 3 pages of a ListActiveViolations operation.
11667//    pageNum := 0
11668//    err := client.ListActiveViolationsPages(params,
11669//        func(page *iot.ListActiveViolationsOutput, lastPage bool) bool {
11670//            pageNum++
11671//            fmt.Println(page)
11672//            return pageNum <= 3
11673//        })
11674//
11675func (c *IoT) ListActiveViolationsPages(input *ListActiveViolationsInput, fn func(*ListActiveViolationsOutput, bool) bool) error {
11676	return c.ListActiveViolationsPagesWithContext(aws.BackgroundContext(), input, fn)
11677}
11678
11679// ListActiveViolationsPagesWithContext same as ListActiveViolationsPages except
11680// it takes a Context and allows setting request options on the pages.
11681//
11682// The context must be non-nil and will be used for request cancellation. If
11683// the context is nil a panic will occur. In the future the SDK may create
11684// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11685// for more information on using Contexts.
11686func (c *IoT) ListActiveViolationsPagesWithContext(ctx aws.Context, input *ListActiveViolationsInput, fn func(*ListActiveViolationsOutput, bool) bool, opts ...request.Option) error {
11687	p := request.Pagination{
11688		NewRequest: func() (*request.Request, error) {
11689			var inCpy *ListActiveViolationsInput
11690			if input != nil {
11691				tmp := *input
11692				inCpy = &tmp
11693			}
11694			req, _ := c.ListActiveViolationsRequest(inCpy)
11695			req.SetContext(ctx)
11696			req.ApplyOptions(opts...)
11697			return req, nil
11698		},
11699	}
11700
11701	for p.Next() {
11702		if !fn(p.Page().(*ListActiveViolationsOutput), !p.HasNextPage()) {
11703			break
11704		}
11705	}
11706
11707	return p.Err()
11708}
11709
11710const opListAttachedPolicies = "ListAttachedPolicies"
11711
11712// ListAttachedPoliciesRequest generates a "aws/request.Request" representing the
11713// client's request for the ListAttachedPolicies operation. The "output" return
11714// value will be populated with the request's response once the request completes
11715// successfully.
11716//
11717// Use "Send" method on the returned Request to send the API call to the service.
11718// the "output" return value is not valid until after Send returns without error.
11719//
11720// See ListAttachedPolicies for more information on using the ListAttachedPolicies
11721// API call, and error handling.
11722//
11723// This method is useful when you want to inject custom logic or configuration
11724// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11725//
11726//
11727//    // Example sending a request using the ListAttachedPoliciesRequest method.
11728//    req, resp := client.ListAttachedPoliciesRequest(params)
11729//
11730//    err := req.Send()
11731//    if err == nil { // resp is now filled
11732//        fmt.Println(resp)
11733//    }
11734func (c *IoT) ListAttachedPoliciesRequest(input *ListAttachedPoliciesInput) (req *request.Request, output *ListAttachedPoliciesOutput) {
11735	op := &request.Operation{
11736		Name:       opListAttachedPolicies,
11737		HTTPMethod: "POST",
11738		HTTPPath:   "/attached-policies/{target}",
11739		Paginator: &request.Paginator{
11740			InputTokens:     []string{"marker"},
11741			OutputTokens:    []string{"nextMarker"},
11742			LimitToken:      "pageSize",
11743			TruncationToken: "",
11744		},
11745	}
11746
11747	if input == nil {
11748		input = &ListAttachedPoliciesInput{}
11749	}
11750
11751	output = &ListAttachedPoliciesOutput{}
11752	req = c.newRequest(op, input, output)
11753	return
11754}
11755
11756// ListAttachedPolicies API operation for AWS IoT.
11757//
11758// Lists the policies attached to the specified thing group.
11759//
11760// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11761// with awserr.Error's Code and Message methods to get detailed information about
11762// the error.
11763//
11764// See the AWS API reference guide for AWS IoT's
11765// API operation ListAttachedPolicies for usage and error information.
11766//
11767// Returned Error Types:
11768//   * ResourceNotFoundException
11769//   The specified resource does not exist.
11770//
11771//   * InvalidRequestException
11772//   The request is not valid.
11773//
11774//   * ThrottlingException
11775//   The rate exceeds the limit.
11776//
11777//   * UnauthorizedException
11778//   You are not authorized to perform this operation.
11779//
11780//   * ServiceUnavailableException
11781//   The service is temporarily unavailable.
11782//
11783//   * InternalFailureException
11784//   An unexpected error has occurred.
11785//
11786//   * LimitExceededException
11787//   A limit has been exceeded.
11788//
11789func (c *IoT) ListAttachedPolicies(input *ListAttachedPoliciesInput) (*ListAttachedPoliciesOutput, error) {
11790	req, out := c.ListAttachedPoliciesRequest(input)
11791	return out, req.Send()
11792}
11793
11794// ListAttachedPoliciesWithContext is the same as ListAttachedPolicies with the addition of
11795// the ability to pass a context and additional request options.
11796//
11797// See ListAttachedPolicies for details on how to use this API operation.
11798//
11799// The context must be non-nil and will be used for request cancellation. If
11800// the context is nil a panic will occur. In the future the SDK may create
11801// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11802// for more information on using Contexts.
11803func (c *IoT) ListAttachedPoliciesWithContext(ctx aws.Context, input *ListAttachedPoliciesInput, opts ...request.Option) (*ListAttachedPoliciesOutput, error) {
11804	req, out := c.ListAttachedPoliciesRequest(input)
11805	req.SetContext(ctx)
11806	req.ApplyOptions(opts...)
11807	return out, req.Send()
11808}
11809
11810// ListAttachedPoliciesPages iterates over the pages of a ListAttachedPolicies operation,
11811// calling the "fn" function with the response data for each page. To stop
11812// iterating, return false from the fn function.
11813//
11814// See ListAttachedPolicies method for more information on how to use this operation.
11815//
11816// Note: This operation can generate multiple requests to a service.
11817//
11818//    // Example iterating over at most 3 pages of a ListAttachedPolicies operation.
11819//    pageNum := 0
11820//    err := client.ListAttachedPoliciesPages(params,
11821//        func(page *iot.ListAttachedPoliciesOutput, lastPage bool) bool {
11822//            pageNum++
11823//            fmt.Println(page)
11824//            return pageNum <= 3
11825//        })
11826//
11827func (c *IoT) ListAttachedPoliciesPages(input *ListAttachedPoliciesInput, fn func(*ListAttachedPoliciesOutput, bool) bool) error {
11828	return c.ListAttachedPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
11829}
11830
11831// ListAttachedPoliciesPagesWithContext same as ListAttachedPoliciesPages except
11832// it takes a Context and allows setting request options on the pages.
11833//
11834// The context must be non-nil and will be used for request cancellation. If
11835// the context is nil a panic will occur. In the future the SDK may create
11836// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11837// for more information on using Contexts.
11838func (c *IoT) ListAttachedPoliciesPagesWithContext(ctx aws.Context, input *ListAttachedPoliciesInput, fn func(*ListAttachedPoliciesOutput, bool) bool, opts ...request.Option) error {
11839	p := request.Pagination{
11840		NewRequest: func() (*request.Request, error) {
11841			var inCpy *ListAttachedPoliciesInput
11842			if input != nil {
11843				tmp := *input
11844				inCpy = &tmp
11845			}
11846			req, _ := c.ListAttachedPoliciesRequest(inCpy)
11847			req.SetContext(ctx)
11848			req.ApplyOptions(opts...)
11849			return req, nil
11850		},
11851	}
11852
11853	for p.Next() {
11854		if !fn(p.Page().(*ListAttachedPoliciesOutput), !p.HasNextPage()) {
11855			break
11856		}
11857	}
11858
11859	return p.Err()
11860}
11861
11862const opListAuditFindings = "ListAuditFindings"
11863
11864// ListAuditFindingsRequest generates a "aws/request.Request" representing the
11865// client's request for the ListAuditFindings operation. The "output" return
11866// value will be populated with the request's response once the request completes
11867// successfully.
11868//
11869// Use "Send" method on the returned Request to send the API call to the service.
11870// the "output" return value is not valid until after Send returns without error.
11871//
11872// See ListAuditFindings for more information on using the ListAuditFindings
11873// API call, and error handling.
11874//
11875// This method is useful when you want to inject custom logic or configuration
11876// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11877//
11878//
11879//    // Example sending a request using the ListAuditFindingsRequest method.
11880//    req, resp := client.ListAuditFindingsRequest(params)
11881//
11882//    err := req.Send()
11883//    if err == nil { // resp is now filled
11884//        fmt.Println(resp)
11885//    }
11886func (c *IoT) ListAuditFindingsRequest(input *ListAuditFindingsInput) (req *request.Request, output *ListAuditFindingsOutput) {
11887	op := &request.Operation{
11888		Name:       opListAuditFindings,
11889		HTTPMethod: "POST",
11890		HTTPPath:   "/audit/findings",
11891		Paginator: &request.Paginator{
11892			InputTokens:     []string{"nextToken"},
11893			OutputTokens:    []string{"nextToken"},
11894			LimitToken:      "maxResults",
11895			TruncationToken: "",
11896		},
11897	}
11898
11899	if input == nil {
11900		input = &ListAuditFindingsInput{}
11901	}
11902
11903	output = &ListAuditFindingsOutput{}
11904	req = c.newRequest(op, input, output)
11905	return
11906}
11907
11908// ListAuditFindings API operation for AWS IoT.
11909//
11910// Lists the findings (results) of a Device Defender audit or of the audits
11911// performed during a specified time period. (Findings are retained for 90 days.)
11912//
11913// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11914// with awserr.Error's Code and Message methods to get detailed information about
11915// the error.
11916//
11917// See the AWS API reference guide for AWS IoT's
11918// API operation ListAuditFindings for usage and error information.
11919//
11920// Returned Error Types:
11921//   * InvalidRequestException
11922//   The request is not valid.
11923//
11924//   * ThrottlingException
11925//   The rate exceeds the limit.
11926//
11927//   * InternalFailureException
11928//   An unexpected error has occurred.
11929//
11930func (c *IoT) ListAuditFindings(input *ListAuditFindingsInput) (*ListAuditFindingsOutput, error) {
11931	req, out := c.ListAuditFindingsRequest(input)
11932	return out, req.Send()
11933}
11934
11935// ListAuditFindingsWithContext is the same as ListAuditFindings with the addition of
11936// the ability to pass a context and additional request options.
11937//
11938// See ListAuditFindings for details on how to use this API operation.
11939//
11940// The context must be non-nil and will be used for request cancellation. If
11941// the context is nil a panic will occur. In the future the SDK may create
11942// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11943// for more information on using Contexts.
11944func (c *IoT) ListAuditFindingsWithContext(ctx aws.Context, input *ListAuditFindingsInput, opts ...request.Option) (*ListAuditFindingsOutput, error) {
11945	req, out := c.ListAuditFindingsRequest(input)
11946	req.SetContext(ctx)
11947	req.ApplyOptions(opts...)
11948	return out, req.Send()
11949}
11950
11951// ListAuditFindingsPages iterates over the pages of a ListAuditFindings operation,
11952// calling the "fn" function with the response data for each page. To stop
11953// iterating, return false from the fn function.
11954//
11955// See ListAuditFindings method for more information on how to use this operation.
11956//
11957// Note: This operation can generate multiple requests to a service.
11958//
11959//    // Example iterating over at most 3 pages of a ListAuditFindings operation.
11960//    pageNum := 0
11961//    err := client.ListAuditFindingsPages(params,
11962//        func(page *iot.ListAuditFindingsOutput, lastPage bool) bool {
11963//            pageNum++
11964//            fmt.Println(page)
11965//            return pageNum <= 3
11966//        })
11967//
11968func (c *IoT) ListAuditFindingsPages(input *ListAuditFindingsInput, fn func(*ListAuditFindingsOutput, bool) bool) error {
11969	return c.ListAuditFindingsPagesWithContext(aws.BackgroundContext(), input, fn)
11970}
11971
11972// ListAuditFindingsPagesWithContext same as ListAuditFindingsPages except
11973// it takes a Context and allows setting request options on the pages.
11974//
11975// The context must be non-nil and will be used for request cancellation. If
11976// the context is nil a panic will occur. In the future the SDK may create
11977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11978// for more information on using Contexts.
11979func (c *IoT) ListAuditFindingsPagesWithContext(ctx aws.Context, input *ListAuditFindingsInput, fn func(*ListAuditFindingsOutput, bool) bool, opts ...request.Option) error {
11980	p := request.Pagination{
11981		NewRequest: func() (*request.Request, error) {
11982			var inCpy *ListAuditFindingsInput
11983			if input != nil {
11984				tmp := *input
11985				inCpy = &tmp
11986			}
11987			req, _ := c.ListAuditFindingsRequest(inCpy)
11988			req.SetContext(ctx)
11989			req.ApplyOptions(opts...)
11990			return req, nil
11991		},
11992	}
11993
11994	for p.Next() {
11995		if !fn(p.Page().(*ListAuditFindingsOutput), !p.HasNextPage()) {
11996			break
11997		}
11998	}
11999
12000	return p.Err()
12001}
12002
12003const opListAuditMitigationActionsExecutions = "ListAuditMitigationActionsExecutions"
12004
12005// ListAuditMitigationActionsExecutionsRequest generates a "aws/request.Request" representing the
12006// client's request for the ListAuditMitigationActionsExecutions operation. The "output" return
12007// value will be populated with the request's response once the request completes
12008// successfully.
12009//
12010// Use "Send" method on the returned Request to send the API call to the service.
12011// the "output" return value is not valid until after Send returns without error.
12012//
12013// See ListAuditMitigationActionsExecutions for more information on using the ListAuditMitigationActionsExecutions
12014// API call, and error handling.
12015//
12016// This method is useful when you want to inject custom logic or configuration
12017// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12018//
12019//
12020//    // Example sending a request using the ListAuditMitigationActionsExecutionsRequest method.
12021//    req, resp := client.ListAuditMitigationActionsExecutionsRequest(params)
12022//
12023//    err := req.Send()
12024//    if err == nil { // resp is now filled
12025//        fmt.Println(resp)
12026//    }
12027func (c *IoT) ListAuditMitigationActionsExecutionsRequest(input *ListAuditMitigationActionsExecutionsInput) (req *request.Request, output *ListAuditMitigationActionsExecutionsOutput) {
12028	op := &request.Operation{
12029		Name:       opListAuditMitigationActionsExecutions,
12030		HTTPMethod: "GET",
12031		HTTPPath:   "/audit/mitigationactions/executions",
12032		Paginator: &request.Paginator{
12033			InputTokens:     []string{"nextToken"},
12034			OutputTokens:    []string{"nextToken"},
12035			LimitToken:      "maxResults",
12036			TruncationToken: "",
12037		},
12038	}
12039
12040	if input == nil {
12041		input = &ListAuditMitigationActionsExecutionsInput{}
12042	}
12043
12044	output = &ListAuditMitigationActionsExecutionsOutput{}
12045	req = c.newRequest(op, input, output)
12046	return
12047}
12048
12049// ListAuditMitigationActionsExecutions API operation for AWS IoT.
12050//
12051// Gets the status of audit mitigation action tasks that were executed.
12052//
12053// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12054// with awserr.Error's Code and Message methods to get detailed information about
12055// the error.
12056//
12057// See the AWS API reference guide for AWS IoT's
12058// API operation ListAuditMitigationActionsExecutions for usage and error information.
12059//
12060// Returned Error Types:
12061//   * InvalidRequestException
12062//   The request is not valid.
12063//
12064//   * ThrottlingException
12065//   The rate exceeds the limit.
12066//
12067//   * InternalFailureException
12068//   An unexpected error has occurred.
12069//
12070func (c *IoT) ListAuditMitigationActionsExecutions(input *ListAuditMitigationActionsExecutionsInput) (*ListAuditMitigationActionsExecutionsOutput, error) {
12071	req, out := c.ListAuditMitigationActionsExecutionsRequest(input)
12072	return out, req.Send()
12073}
12074
12075// ListAuditMitigationActionsExecutionsWithContext is the same as ListAuditMitigationActionsExecutions with the addition of
12076// the ability to pass a context and additional request options.
12077//
12078// See ListAuditMitigationActionsExecutions for details on how to use this API operation.
12079//
12080// The context must be non-nil and will be used for request cancellation. If
12081// the context is nil a panic will occur. In the future the SDK may create
12082// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12083// for more information on using Contexts.
12084func (c *IoT) ListAuditMitigationActionsExecutionsWithContext(ctx aws.Context, input *ListAuditMitigationActionsExecutionsInput, opts ...request.Option) (*ListAuditMitigationActionsExecutionsOutput, error) {
12085	req, out := c.ListAuditMitigationActionsExecutionsRequest(input)
12086	req.SetContext(ctx)
12087	req.ApplyOptions(opts...)
12088	return out, req.Send()
12089}
12090
12091// ListAuditMitigationActionsExecutionsPages iterates over the pages of a ListAuditMitigationActionsExecutions operation,
12092// calling the "fn" function with the response data for each page. To stop
12093// iterating, return false from the fn function.
12094//
12095// See ListAuditMitigationActionsExecutions method for more information on how to use this operation.
12096//
12097// Note: This operation can generate multiple requests to a service.
12098//
12099//    // Example iterating over at most 3 pages of a ListAuditMitigationActionsExecutions operation.
12100//    pageNum := 0
12101//    err := client.ListAuditMitigationActionsExecutionsPages(params,
12102//        func(page *iot.ListAuditMitigationActionsExecutionsOutput, lastPage bool) bool {
12103//            pageNum++
12104//            fmt.Println(page)
12105//            return pageNum <= 3
12106//        })
12107//
12108func (c *IoT) ListAuditMitigationActionsExecutionsPages(input *ListAuditMitigationActionsExecutionsInput, fn func(*ListAuditMitigationActionsExecutionsOutput, bool) bool) error {
12109	return c.ListAuditMitigationActionsExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
12110}
12111
12112// ListAuditMitigationActionsExecutionsPagesWithContext same as ListAuditMitigationActionsExecutionsPages except
12113// it takes a Context and allows setting request options on the pages.
12114//
12115// The context must be non-nil and will be used for request cancellation. If
12116// the context is nil a panic will occur. In the future the SDK may create
12117// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12118// for more information on using Contexts.
12119func (c *IoT) ListAuditMitigationActionsExecutionsPagesWithContext(ctx aws.Context, input *ListAuditMitigationActionsExecutionsInput, fn func(*ListAuditMitigationActionsExecutionsOutput, bool) bool, opts ...request.Option) error {
12120	p := request.Pagination{
12121		NewRequest: func() (*request.Request, error) {
12122			var inCpy *ListAuditMitigationActionsExecutionsInput
12123			if input != nil {
12124				tmp := *input
12125				inCpy = &tmp
12126			}
12127			req, _ := c.ListAuditMitigationActionsExecutionsRequest(inCpy)
12128			req.SetContext(ctx)
12129			req.ApplyOptions(opts...)
12130			return req, nil
12131		},
12132	}
12133
12134	for p.Next() {
12135		if !fn(p.Page().(*ListAuditMitigationActionsExecutionsOutput), !p.HasNextPage()) {
12136			break
12137		}
12138	}
12139
12140	return p.Err()
12141}
12142
12143const opListAuditMitigationActionsTasks = "ListAuditMitigationActionsTasks"
12144
12145// ListAuditMitigationActionsTasksRequest generates a "aws/request.Request" representing the
12146// client's request for the ListAuditMitigationActionsTasks operation. The "output" return
12147// value will be populated with the request's response once the request completes
12148// successfully.
12149//
12150// Use "Send" method on the returned Request to send the API call to the service.
12151// the "output" return value is not valid until after Send returns without error.
12152//
12153// See ListAuditMitigationActionsTasks for more information on using the ListAuditMitigationActionsTasks
12154// API call, and error handling.
12155//
12156// This method is useful when you want to inject custom logic or configuration
12157// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12158//
12159//
12160//    // Example sending a request using the ListAuditMitigationActionsTasksRequest method.
12161//    req, resp := client.ListAuditMitigationActionsTasksRequest(params)
12162//
12163//    err := req.Send()
12164//    if err == nil { // resp is now filled
12165//        fmt.Println(resp)
12166//    }
12167func (c *IoT) ListAuditMitigationActionsTasksRequest(input *ListAuditMitigationActionsTasksInput) (req *request.Request, output *ListAuditMitigationActionsTasksOutput) {
12168	op := &request.Operation{
12169		Name:       opListAuditMitigationActionsTasks,
12170		HTTPMethod: "GET",
12171		HTTPPath:   "/audit/mitigationactions/tasks",
12172		Paginator: &request.Paginator{
12173			InputTokens:     []string{"nextToken"},
12174			OutputTokens:    []string{"nextToken"},
12175			LimitToken:      "maxResults",
12176			TruncationToken: "",
12177		},
12178	}
12179
12180	if input == nil {
12181		input = &ListAuditMitigationActionsTasksInput{}
12182	}
12183
12184	output = &ListAuditMitigationActionsTasksOutput{}
12185	req = c.newRequest(op, input, output)
12186	return
12187}
12188
12189// ListAuditMitigationActionsTasks API operation for AWS IoT.
12190//
12191// Gets a list of audit mitigation action tasks that match the specified filters.
12192//
12193// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12194// with awserr.Error's Code and Message methods to get detailed information about
12195// the error.
12196//
12197// See the AWS API reference guide for AWS IoT's
12198// API operation ListAuditMitigationActionsTasks for usage and error information.
12199//
12200// Returned Error Types:
12201//   * InvalidRequestException
12202//   The request is not valid.
12203//
12204//   * ThrottlingException
12205//   The rate exceeds the limit.
12206//
12207//   * InternalFailureException
12208//   An unexpected error has occurred.
12209//
12210func (c *IoT) ListAuditMitigationActionsTasks(input *ListAuditMitigationActionsTasksInput) (*ListAuditMitigationActionsTasksOutput, error) {
12211	req, out := c.ListAuditMitigationActionsTasksRequest(input)
12212	return out, req.Send()
12213}
12214
12215// ListAuditMitigationActionsTasksWithContext is the same as ListAuditMitigationActionsTasks with the addition of
12216// the ability to pass a context and additional request options.
12217//
12218// See ListAuditMitigationActionsTasks for details on how to use this API operation.
12219//
12220// The context must be non-nil and will be used for request cancellation. If
12221// the context is nil a panic will occur. In the future the SDK may create
12222// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12223// for more information on using Contexts.
12224func (c *IoT) ListAuditMitigationActionsTasksWithContext(ctx aws.Context, input *ListAuditMitigationActionsTasksInput, opts ...request.Option) (*ListAuditMitigationActionsTasksOutput, error) {
12225	req, out := c.ListAuditMitigationActionsTasksRequest(input)
12226	req.SetContext(ctx)
12227	req.ApplyOptions(opts...)
12228	return out, req.Send()
12229}
12230
12231// ListAuditMitigationActionsTasksPages iterates over the pages of a ListAuditMitigationActionsTasks operation,
12232// calling the "fn" function with the response data for each page. To stop
12233// iterating, return false from the fn function.
12234//
12235// See ListAuditMitigationActionsTasks method for more information on how to use this operation.
12236//
12237// Note: This operation can generate multiple requests to a service.
12238//
12239//    // Example iterating over at most 3 pages of a ListAuditMitigationActionsTasks operation.
12240//    pageNum := 0
12241//    err := client.ListAuditMitigationActionsTasksPages(params,
12242//        func(page *iot.ListAuditMitigationActionsTasksOutput, lastPage bool) bool {
12243//            pageNum++
12244//            fmt.Println(page)
12245//            return pageNum <= 3
12246//        })
12247//
12248func (c *IoT) ListAuditMitigationActionsTasksPages(input *ListAuditMitigationActionsTasksInput, fn func(*ListAuditMitigationActionsTasksOutput, bool) bool) error {
12249	return c.ListAuditMitigationActionsTasksPagesWithContext(aws.BackgroundContext(), input, fn)
12250}
12251
12252// ListAuditMitigationActionsTasksPagesWithContext same as ListAuditMitigationActionsTasksPages except
12253// it takes a Context and allows setting request options on the pages.
12254//
12255// The context must be non-nil and will be used for request cancellation. If
12256// the context is nil a panic will occur. In the future the SDK may create
12257// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12258// for more information on using Contexts.
12259func (c *IoT) ListAuditMitigationActionsTasksPagesWithContext(ctx aws.Context, input *ListAuditMitigationActionsTasksInput, fn func(*ListAuditMitigationActionsTasksOutput, bool) bool, opts ...request.Option) error {
12260	p := request.Pagination{
12261		NewRequest: func() (*request.Request, error) {
12262			var inCpy *ListAuditMitigationActionsTasksInput
12263			if input != nil {
12264				tmp := *input
12265				inCpy = &tmp
12266			}
12267			req, _ := c.ListAuditMitigationActionsTasksRequest(inCpy)
12268			req.SetContext(ctx)
12269			req.ApplyOptions(opts...)
12270			return req, nil
12271		},
12272	}
12273
12274	for p.Next() {
12275		if !fn(p.Page().(*ListAuditMitigationActionsTasksOutput), !p.HasNextPage()) {
12276			break
12277		}
12278	}
12279
12280	return p.Err()
12281}
12282
12283const opListAuditSuppressions = "ListAuditSuppressions"
12284
12285// ListAuditSuppressionsRequest generates a "aws/request.Request" representing the
12286// client's request for the ListAuditSuppressions operation. The "output" return
12287// value will be populated with the request's response once the request completes
12288// successfully.
12289//
12290// Use "Send" method on the returned Request to send the API call to the service.
12291// the "output" return value is not valid until after Send returns without error.
12292//
12293// See ListAuditSuppressions for more information on using the ListAuditSuppressions
12294// API call, and error handling.
12295//
12296// This method is useful when you want to inject custom logic or configuration
12297// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12298//
12299//
12300//    // Example sending a request using the ListAuditSuppressionsRequest method.
12301//    req, resp := client.ListAuditSuppressionsRequest(params)
12302//
12303//    err := req.Send()
12304//    if err == nil { // resp is now filled
12305//        fmt.Println(resp)
12306//    }
12307func (c *IoT) ListAuditSuppressionsRequest(input *ListAuditSuppressionsInput) (req *request.Request, output *ListAuditSuppressionsOutput) {
12308	op := &request.Operation{
12309		Name:       opListAuditSuppressions,
12310		HTTPMethod: "POST",
12311		HTTPPath:   "/audit/suppressions/list",
12312		Paginator: &request.Paginator{
12313			InputTokens:     []string{"nextToken"},
12314			OutputTokens:    []string{"nextToken"},
12315			LimitToken:      "maxResults",
12316			TruncationToken: "",
12317		},
12318	}
12319
12320	if input == nil {
12321		input = &ListAuditSuppressionsInput{}
12322	}
12323
12324	output = &ListAuditSuppressionsOutput{}
12325	req = c.newRequest(op, input, output)
12326	return
12327}
12328
12329// ListAuditSuppressions API operation for AWS IoT.
12330//
12331// Lists your Device Defender audit listings.
12332//
12333// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12334// with awserr.Error's Code and Message methods to get detailed information about
12335// the error.
12336//
12337// See the AWS API reference guide for AWS IoT's
12338// API operation ListAuditSuppressions for usage and error information.
12339//
12340// Returned Error Types:
12341//   * InvalidRequestException
12342//   The request is not valid.
12343//
12344//   * ThrottlingException
12345//   The rate exceeds the limit.
12346//
12347//   * InternalFailureException
12348//   An unexpected error has occurred.
12349//
12350func (c *IoT) ListAuditSuppressions(input *ListAuditSuppressionsInput) (*ListAuditSuppressionsOutput, error) {
12351	req, out := c.ListAuditSuppressionsRequest(input)
12352	return out, req.Send()
12353}
12354
12355// ListAuditSuppressionsWithContext is the same as ListAuditSuppressions with the addition of
12356// the ability to pass a context and additional request options.
12357//
12358// See ListAuditSuppressions for details on how to use this API operation.
12359//
12360// The context must be non-nil and will be used for request cancellation. If
12361// the context is nil a panic will occur. In the future the SDK may create
12362// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12363// for more information on using Contexts.
12364func (c *IoT) ListAuditSuppressionsWithContext(ctx aws.Context, input *ListAuditSuppressionsInput, opts ...request.Option) (*ListAuditSuppressionsOutput, error) {
12365	req, out := c.ListAuditSuppressionsRequest(input)
12366	req.SetContext(ctx)
12367	req.ApplyOptions(opts...)
12368	return out, req.Send()
12369}
12370
12371// ListAuditSuppressionsPages iterates over the pages of a ListAuditSuppressions operation,
12372// calling the "fn" function with the response data for each page. To stop
12373// iterating, return false from the fn function.
12374//
12375// See ListAuditSuppressions method for more information on how to use this operation.
12376//
12377// Note: This operation can generate multiple requests to a service.
12378//
12379//    // Example iterating over at most 3 pages of a ListAuditSuppressions operation.
12380//    pageNum := 0
12381//    err := client.ListAuditSuppressionsPages(params,
12382//        func(page *iot.ListAuditSuppressionsOutput, lastPage bool) bool {
12383//            pageNum++
12384//            fmt.Println(page)
12385//            return pageNum <= 3
12386//        })
12387//
12388func (c *IoT) ListAuditSuppressionsPages(input *ListAuditSuppressionsInput, fn func(*ListAuditSuppressionsOutput, bool) bool) error {
12389	return c.ListAuditSuppressionsPagesWithContext(aws.BackgroundContext(), input, fn)
12390}
12391
12392// ListAuditSuppressionsPagesWithContext same as ListAuditSuppressionsPages except
12393// it takes a Context and allows setting request options on the pages.
12394//
12395// The context must be non-nil and will be used for request cancellation. If
12396// the context is nil a panic will occur. In the future the SDK may create
12397// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12398// for more information on using Contexts.
12399func (c *IoT) ListAuditSuppressionsPagesWithContext(ctx aws.Context, input *ListAuditSuppressionsInput, fn func(*ListAuditSuppressionsOutput, bool) bool, opts ...request.Option) error {
12400	p := request.Pagination{
12401		NewRequest: func() (*request.Request, error) {
12402			var inCpy *ListAuditSuppressionsInput
12403			if input != nil {
12404				tmp := *input
12405				inCpy = &tmp
12406			}
12407			req, _ := c.ListAuditSuppressionsRequest(inCpy)
12408			req.SetContext(ctx)
12409			req.ApplyOptions(opts...)
12410			return req, nil
12411		},
12412	}
12413
12414	for p.Next() {
12415		if !fn(p.Page().(*ListAuditSuppressionsOutput), !p.HasNextPage()) {
12416			break
12417		}
12418	}
12419
12420	return p.Err()
12421}
12422
12423const opListAuditTasks = "ListAuditTasks"
12424
12425// ListAuditTasksRequest generates a "aws/request.Request" representing the
12426// client's request for the ListAuditTasks operation. The "output" return
12427// value will be populated with the request's response once the request completes
12428// successfully.
12429//
12430// Use "Send" method on the returned Request to send the API call to the service.
12431// the "output" return value is not valid until after Send returns without error.
12432//
12433// See ListAuditTasks for more information on using the ListAuditTasks
12434// API call, and error handling.
12435//
12436// This method is useful when you want to inject custom logic or configuration
12437// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12438//
12439//
12440//    // Example sending a request using the ListAuditTasksRequest method.
12441//    req, resp := client.ListAuditTasksRequest(params)
12442//
12443//    err := req.Send()
12444//    if err == nil { // resp is now filled
12445//        fmt.Println(resp)
12446//    }
12447func (c *IoT) ListAuditTasksRequest(input *ListAuditTasksInput) (req *request.Request, output *ListAuditTasksOutput) {
12448	op := &request.Operation{
12449		Name:       opListAuditTasks,
12450		HTTPMethod: "GET",
12451		HTTPPath:   "/audit/tasks",
12452		Paginator: &request.Paginator{
12453			InputTokens:     []string{"nextToken"},
12454			OutputTokens:    []string{"nextToken"},
12455			LimitToken:      "maxResults",
12456			TruncationToken: "",
12457		},
12458	}
12459
12460	if input == nil {
12461		input = &ListAuditTasksInput{}
12462	}
12463
12464	output = &ListAuditTasksOutput{}
12465	req = c.newRequest(op, input, output)
12466	return
12467}
12468
12469// ListAuditTasks API operation for AWS IoT.
12470//
12471// Lists the Device Defender audits that have been performed during a given
12472// time period.
12473//
12474// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12475// with awserr.Error's Code and Message methods to get detailed information about
12476// the error.
12477//
12478// See the AWS API reference guide for AWS IoT's
12479// API operation ListAuditTasks for usage and error information.
12480//
12481// Returned Error Types:
12482//   * InvalidRequestException
12483//   The request is not valid.
12484//
12485//   * ThrottlingException
12486//   The rate exceeds the limit.
12487//
12488//   * InternalFailureException
12489//   An unexpected error has occurred.
12490//
12491func (c *IoT) ListAuditTasks(input *ListAuditTasksInput) (*ListAuditTasksOutput, error) {
12492	req, out := c.ListAuditTasksRequest(input)
12493	return out, req.Send()
12494}
12495
12496// ListAuditTasksWithContext is the same as ListAuditTasks with the addition of
12497// the ability to pass a context and additional request options.
12498//
12499// See ListAuditTasks for details on how to use this API operation.
12500//
12501// The context must be non-nil and will be used for request cancellation. If
12502// the context is nil a panic will occur. In the future the SDK may create
12503// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12504// for more information on using Contexts.
12505func (c *IoT) ListAuditTasksWithContext(ctx aws.Context, input *ListAuditTasksInput, opts ...request.Option) (*ListAuditTasksOutput, error) {
12506	req, out := c.ListAuditTasksRequest(input)
12507	req.SetContext(ctx)
12508	req.ApplyOptions(opts...)
12509	return out, req.Send()
12510}
12511
12512// ListAuditTasksPages iterates over the pages of a ListAuditTasks operation,
12513// calling the "fn" function with the response data for each page. To stop
12514// iterating, return false from the fn function.
12515//
12516// See ListAuditTasks method for more information on how to use this operation.
12517//
12518// Note: This operation can generate multiple requests to a service.
12519//
12520//    // Example iterating over at most 3 pages of a ListAuditTasks operation.
12521//    pageNum := 0
12522//    err := client.ListAuditTasksPages(params,
12523//        func(page *iot.ListAuditTasksOutput, lastPage bool) bool {
12524//            pageNum++
12525//            fmt.Println(page)
12526//            return pageNum <= 3
12527//        })
12528//
12529func (c *IoT) ListAuditTasksPages(input *ListAuditTasksInput, fn func(*ListAuditTasksOutput, bool) bool) error {
12530	return c.ListAuditTasksPagesWithContext(aws.BackgroundContext(), input, fn)
12531}
12532
12533// ListAuditTasksPagesWithContext same as ListAuditTasksPages except
12534// it takes a Context and allows setting request options on the pages.
12535//
12536// The context must be non-nil and will be used for request cancellation. If
12537// the context is nil a panic will occur. In the future the SDK may create
12538// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12539// for more information on using Contexts.
12540func (c *IoT) ListAuditTasksPagesWithContext(ctx aws.Context, input *ListAuditTasksInput, fn func(*ListAuditTasksOutput, bool) bool, opts ...request.Option) error {
12541	p := request.Pagination{
12542		NewRequest: func() (*request.Request, error) {
12543			var inCpy *ListAuditTasksInput
12544			if input != nil {
12545				tmp := *input
12546				inCpy = &tmp
12547			}
12548			req, _ := c.ListAuditTasksRequest(inCpy)
12549			req.SetContext(ctx)
12550			req.ApplyOptions(opts...)
12551			return req, nil
12552		},
12553	}
12554
12555	for p.Next() {
12556		if !fn(p.Page().(*ListAuditTasksOutput), !p.HasNextPage()) {
12557			break
12558		}
12559	}
12560
12561	return p.Err()
12562}
12563
12564const opListAuthorizers = "ListAuthorizers"
12565
12566// ListAuthorizersRequest generates a "aws/request.Request" representing the
12567// client's request for the ListAuthorizers operation. The "output" return
12568// value will be populated with the request's response once the request completes
12569// successfully.
12570//
12571// Use "Send" method on the returned Request to send the API call to the service.
12572// the "output" return value is not valid until after Send returns without error.
12573//
12574// See ListAuthorizers for more information on using the ListAuthorizers
12575// API call, and error handling.
12576//
12577// This method is useful when you want to inject custom logic or configuration
12578// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12579//
12580//
12581//    // Example sending a request using the ListAuthorizersRequest method.
12582//    req, resp := client.ListAuthorizersRequest(params)
12583//
12584//    err := req.Send()
12585//    if err == nil { // resp is now filled
12586//        fmt.Println(resp)
12587//    }
12588func (c *IoT) ListAuthorizersRequest(input *ListAuthorizersInput) (req *request.Request, output *ListAuthorizersOutput) {
12589	op := &request.Operation{
12590		Name:       opListAuthorizers,
12591		HTTPMethod: "GET",
12592		HTTPPath:   "/authorizers/",
12593		Paginator: &request.Paginator{
12594			InputTokens:     []string{"marker"},
12595			OutputTokens:    []string{"nextMarker"},
12596			LimitToken:      "pageSize",
12597			TruncationToken: "",
12598		},
12599	}
12600
12601	if input == nil {
12602		input = &ListAuthorizersInput{}
12603	}
12604
12605	output = &ListAuthorizersOutput{}
12606	req = c.newRequest(op, input, output)
12607	return
12608}
12609
12610// ListAuthorizers API operation for AWS IoT.
12611//
12612// Lists the authorizers registered in your account.
12613//
12614// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12615// with awserr.Error's Code and Message methods to get detailed information about
12616// the error.
12617//
12618// See the AWS API reference guide for AWS IoT's
12619// API operation ListAuthorizers for usage and error information.
12620//
12621// Returned Error Types:
12622//   * InvalidRequestException
12623//   The request is not valid.
12624//
12625//   * ThrottlingException
12626//   The rate exceeds the limit.
12627//
12628//   * UnauthorizedException
12629//   You are not authorized to perform this operation.
12630//
12631//   * ServiceUnavailableException
12632//   The service is temporarily unavailable.
12633//
12634//   * InternalFailureException
12635//   An unexpected error has occurred.
12636//
12637func (c *IoT) ListAuthorizers(input *ListAuthorizersInput) (*ListAuthorizersOutput, error) {
12638	req, out := c.ListAuthorizersRequest(input)
12639	return out, req.Send()
12640}
12641
12642// ListAuthorizersWithContext is the same as ListAuthorizers with the addition of
12643// the ability to pass a context and additional request options.
12644//
12645// See ListAuthorizers for details on how to use this API operation.
12646//
12647// The context must be non-nil and will be used for request cancellation. If
12648// the context is nil a panic will occur. In the future the SDK may create
12649// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12650// for more information on using Contexts.
12651func (c *IoT) ListAuthorizersWithContext(ctx aws.Context, input *ListAuthorizersInput, opts ...request.Option) (*ListAuthorizersOutput, error) {
12652	req, out := c.ListAuthorizersRequest(input)
12653	req.SetContext(ctx)
12654	req.ApplyOptions(opts...)
12655	return out, req.Send()
12656}
12657
12658// ListAuthorizersPages iterates over the pages of a ListAuthorizers operation,
12659// calling the "fn" function with the response data for each page. To stop
12660// iterating, return false from the fn function.
12661//
12662// See ListAuthorizers method for more information on how to use this operation.
12663//
12664// Note: This operation can generate multiple requests to a service.
12665//
12666//    // Example iterating over at most 3 pages of a ListAuthorizers operation.
12667//    pageNum := 0
12668//    err := client.ListAuthorizersPages(params,
12669//        func(page *iot.ListAuthorizersOutput, lastPage bool) bool {
12670//            pageNum++
12671//            fmt.Println(page)
12672//            return pageNum <= 3
12673//        })
12674//
12675func (c *IoT) ListAuthorizersPages(input *ListAuthorizersInput, fn func(*ListAuthorizersOutput, bool) bool) error {
12676	return c.ListAuthorizersPagesWithContext(aws.BackgroundContext(), input, fn)
12677}
12678
12679// ListAuthorizersPagesWithContext same as ListAuthorizersPages except
12680// it takes a Context and allows setting request options on the pages.
12681//
12682// The context must be non-nil and will be used for request cancellation. If
12683// the context is nil a panic will occur. In the future the SDK may create
12684// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12685// for more information on using Contexts.
12686func (c *IoT) ListAuthorizersPagesWithContext(ctx aws.Context, input *ListAuthorizersInput, fn func(*ListAuthorizersOutput, bool) bool, opts ...request.Option) error {
12687	p := request.Pagination{
12688		NewRequest: func() (*request.Request, error) {
12689			var inCpy *ListAuthorizersInput
12690			if input != nil {
12691				tmp := *input
12692				inCpy = &tmp
12693			}
12694			req, _ := c.ListAuthorizersRequest(inCpy)
12695			req.SetContext(ctx)
12696			req.ApplyOptions(opts...)
12697			return req, nil
12698		},
12699	}
12700
12701	for p.Next() {
12702		if !fn(p.Page().(*ListAuthorizersOutput), !p.HasNextPage()) {
12703			break
12704		}
12705	}
12706
12707	return p.Err()
12708}
12709
12710const opListBillingGroups = "ListBillingGroups"
12711
12712// ListBillingGroupsRequest generates a "aws/request.Request" representing the
12713// client's request for the ListBillingGroups operation. The "output" return
12714// value will be populated with the request's response once the request completes
12715// successfully.
12716//
12717// Use "Send" method on the returned Request to send the API call to the service.
12718// the "output" return value is not valid until after Send returns without error.
12719//
12720// See ListBillingGroups for more information on using the ListBillingGroups
12721// API call, and error handling.
12722//
12723// This method is useful when you want to inject custom logic or configuration
12724// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12725//
12726//
12727//    // Example sending a request using the ListBillingGroupsRequest method.
12728//    req, resp := client.ListBillingGroupsRequest(params)
12729//
12730//    err := req.Send()
12731//    if err == nil { // resp is now filled
12732//        fmt.Println(resp)
12733//    }
12734func (c *IoT) ListBillingGroupsRequest(input *ListBillingGroupsInput) (req *request.Request, output *ListBillingGroupsOutput) {
12735	op := &request.Operation{
12736		Name:       opListBillingGroups,
12737		HTTPMethod: "GET",
12738		HTTPPath:   "/billing-groups",
12739		Paginator: &request.Paginator{
12740			InputTokens:     []string{"nextToken"},
12741			OutputTokens:    []string{"nextToken"},
12742			LimitToken:      "maxResults",
12743			TruncationToken: "",
12744		},
12745	}
12746
12747	if input == nil {
12748		input = &ListBillingGroupsInput{}
12749	}
12750
12751	output = &ListBillingGroupsOutput{}
12752	req = c.newRequest(op, input, output)
12753	return
12754}
12755
12756// ListBillingGroups API operation for AWS IoT.
12757//
12758// Lists the billing groups you have created.
12759//
12760// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12761// with awserr.Error's Code and Message methods to get detailed information about
12762// the error.
12763//
12764// See the AWS API reference guide for AWS IoT's
12765// API operation ListBillingGroups for usage and error information.
12766//
12767// Returned Error Types:
12768//   * InvalidRequestException
12769//   The request is not valid.
12770//
12771//   * InternalFailureException
12772//   An unexpected error has occurred.
12773//
12774//   * ResourceNotFoundException
12775//   The specified resource does not exist.
12776//
12777//   * ThrottlingException
12778//   The rate exceeds the limit.
12779//
12780func (c *IoT) ListBillingGroups(input *ListBillingGroupsInput) (*ListBillingGroupsOutput, error) {
12781	req, out := c.ListBillingGroupsRequest(input)
12782	return out, req.Send()
12783}
12784
12785// ListBillingGroupsWithContext is the same as ListBillingGroups with the addition of
12786// the ability to pass a context and additional request options.
12787//
12788// See ListBillingGroups for details on how to use this API operation.
12789//
12790// The context must be non-nil and will be used for request cancellation. If
12791// the context is nil a panic will occur. In the future the SDK may create
12792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12793// for more information on using Contexts.
12794func (c *IoT) ListBillingGroupsWithContext(ctx aws.Context, input *ListBillingGroupsInput, opts ...request.Option) (*ListBillingGroupsOutput, error) {
12795	req, out := c.ListBillingGroupsRequest(input)
12796	req.SetContext(ctx)
12797	req.ApplyOptions(opts...)
12798	return out, req.Send()
12799}
12800
12801// ListBillingGroupsPages iterates over the pages of a ListBillingGroups operation,
12802// calling the "fn" function with the response data for each page. To stop
12803// iterating, return false from the fn function.
12804//
12805// See ListBillingGroups method for more information on how to use this operation.
12806//
12807// Note: This operation can generate multiple requests to a service.
12808//
12809//    // Example iterating over at most 3 pages of a ListBillingGroups operation.
12810//    pageNum := 0
12811//    err := client.ListBillingGroupsPages(params,
12812//        func(page *iot.ListBillingGroupsOutput, lastPage bool) bool {
12813//            pageNum++
12814//            fmt.Println(page)
12815//            return pageNum <= 3
12816//        })
12817//
12818func (c *IoT) ListBillingGroupsPages(input *ListBillingGroupsInput, fn func(*ListBillingGroupsOutput, bool) bool) error {
12819	return c.ListBillingGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
12820}
12821
12822// ListBillingGroupsPagesWithContext same as ListBillingGroupsPages except
12823// it takes a Context and allows setting request options on the pages.
12824//
12825// The context must be non-nil and will be used for request cancellation. If
12826// the context is nil a panic will occur. In the future the SDK may create
12827// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12828// for more information on using Contexts.
12829func (c *IoT) ListBillingGroupsPagesWithContext(ctx aws.Context, input *ListBillingGroupsInput, fn func(*ListBillingGroupsOutput, bool) bool, opts ...request.Option) error {
12830	p := request.Pagination{
12831		NewRequest: func() (*request.Request, error) {
12832			var inCpy *ListBillingGroupsInput
12833			if input != nil {
12834				tmp := *input
12835				inCpy = &tmp
12836			}
12837			req, _ := c.ListBillingGroupsRequest(inCpy)
12838			req.SetContext(ctx)
12839			req.ApplyOptions(opts...)
12840			return req, nil
12841		},
12842	}
12843
12844	for p.Next() {
12845		if !fn(p.Page().(*ListBillingGroupsOutput), !p.HasNextPage()) {
12846			break
12847		}
12848	}
12849
12850	return p.Err()
12851}
12852
12853const opListCACertificates = "ListCACertificates"
12854
12855// ListCACertificatesRequest generates a "aws/request.Request" representing the
12856// client's request for the ListCACertificates operation. The "output" return
12857// value will be populated with the request's response once the request completes
12858// successfully.
12859//
12860// Use "Send" method on the returned Request to send the API call to the service.
12861// the "output" return value is not valid until after Send returns without error.
12862//
12863// See ListCACertificates for more information on using the ListCACertificates
12864// API call, and error handling.
12865//
12866// This method is useful when you want to inject custom logic or configuration
12867// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12868//
12869//
12870//    // Example sending a request using the ListCACertificatesRequest method.
12871//    req, resp := client.ListCACertificatesRequest(params)
12872//
12873//    err := req.Send()
12874//    if err == nil { // resp is now filled
12875//        fmt.Println(resp)
12876//    }
12877func (c *IoT) ListCACertificatesRequest(input *ListCACertificatesInput) (req *request.Request, output *ListCACertificatesOutput) {
12878	op := &request.Operation{
12879		Name:       opListCACertificates,
12880		HTTPMethod: "GET",
12881		HTTPPath:   "/cacertificates",
12882		Paginator: &request.Paginator{
12883			InputTokens:     []string{"marker"},
12884			OutputTokens:    []string{"nextMarker"},
12885			LimitToken:      "pageSize",
12886			TruncationToken: "",
12887		},
12888	}
12889
12890	if input == nil {
12891		input = &ListCACertificatesInput{}
12892	}
12893
12894	output = &ListCACertificatesOutput{}
12895	req = c.newRequest(op, input, output)
12896	return
12897}
12898
12899// ListCACertificates API operation for AWS IoT.
12900//
12901// Lists the CA certificates registered for your AWS account.
12902//
12903// The results are paginated with a default page size of 25. You can use the
12904// returned marker to retrieve additional results.
12905//
12906// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12907// with awserr.Error's Code and Message methods to get detailed information about
12908// the error.
12909//
12910// See the AWS API reference guide for AWS IoT's
12911// API operation ListCACertificates for usage and error information.
12912//
12913// Returned Error Types:
12914//   * InvalidRequestException
12915//   The request is not valid.
12916//
12917//   * ThrottlingException
12918//   The rate exceeds the limit.
12919//
12920//   * UnauthorizedException
12921//   You are not authorized to perform this operation.
12922//
12923//   * ServiceUnavailableException
12924//   The service is temporarily unavailable.
12925//
12926//   * InternalFailureException
12927//   An unexpected error has occurred.
12928//
12929func (c *IoT) ListCACertificates(input *ListCACertificatesInput) (*ListCACertificatesOutput, error) {
12930	req, out := c.ListCACertificatesRequest(input)
12931	return out, req.Send()
12932}
12933
12934// ListCACertificatesWithContext is the same as ListCACertificates with the addition of
12935// the ability to pass a context and additional request options.
12936//
12937// See ListCACertificates for details on how to use this API operation.
12938//
12939// The context must be non-nil and will be used for request cancellation. If
12940// the context is nil a panic will occur. In the future the SDK may create
12941// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12942// for more information on using Contexts.
12943func (c *IoT) ListCACertificatesWithContext(ctx aws.Context, input *ListCACertificatesInput, opts ...request.Option) (*ListCACertificatesOutput, error) {
12944	req, out := c.ListCACertificatesRequest(input)
12945	req.SetContext(ctx)
12946	req.ApplyOptions(opts...)
12947	return out, req.Send()
12948}
12949
12950// ListCACertificatesPages iterates over the pages of a ListCACertificates operation,
12951// calling the "fn" function with the response data for each page. To stop
12952// iterating, return false from the fn function.
12953//
12954// See ListCACertificates method for more information on how to use this operation.
12955//
12956// Note: This operation can generate multiple requests to a service.
12957//
12958//    // Example iterating over at most 3 pages of a ListCACertificates operation.
12959//    pageNum := 0
12960//    err := client.ListCACertificatesPages(params,
12961//        func(page *iot.ListCACertificatesOutput, lastPage bool) bool {
12962//            pageNum++
12963//            fmt.Println(page)
12964//            return pageNum <= 3
12965//        })
12966//
12967func (c *IoT) ListCACertificatesPages(input *ListCACertificatesInput, fn func(*ListCACertificatesOutput, bool) bool) error {
12968	return c.ListCACertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
12969}
12970
12971// ListCACertificatesPagesWithContext same as ListCACertificatesPages except
12972// it takes a Context and allows setting request options on the pages.
12973//
12974// The context must be non-nil and will be used for request cancellation. If
12975// the context is nil a panic will occur. In the future the SDK may create
12976// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12977// for more information on using Contexts.
12978func (c *IoT) ListCACertificatesPagesWithContext(ctx aws.Context, input *ListCACertificatesInput, fn func(*ListCACertificatesOutput, bool) bool, opts ...request.Option) error {
12979	p := request.Pagination{
12980		NewRequest: func() (*request.Request, error) {
12981			var inCpy *ListCACertificatesInput
12982			if input != nil {
12983				tmp := *input
12984				inCpy = &tmp
12985			}
12986			req, _ := c.ListCACertificatesRequest(inCpy)
12987			req.SetContext(ctx)
12988			req.ApplyOptions(opts...)
12989			return req, nil
12990		},
12991	}
12992
12993	for p.Next() {
12994		if !fn(p.Page().(*ListCACertificatesOutput), !p.HasNextPage()) {
12995			break
12996		}
12997	}
12998
12999	return p.Err()
13000}
13001
13002const opListCertificates = "ListCertificates"
13003
13004// ListCertificatesRequest generates a "aws/request.Request" representing the
13005// client's request for the ListCertificates operation. The "output" return
13006// value will be populated with the request's response once the request completes
13007// successfully.
13008//
13009// Use "Send" method on the returned Request to send the API call to the service.
13010// the "output" return value is not valid until after Send returns without error.
13011//
13012// See ListCertificates for more information on using the ListCertificates
13013// API call, and error handling.
13014//
13015// This method is useful when you want to inject custom logic or configuration
13016// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13017//
13018//
13019//    // Example sending a request using the ListCertificatesRequest method.
13020//    req, resp := client.ListCertificatesRequest(params)
13021//
13022//    err := req.Send()
13023//    if err == nil { // resp is now filled
13024//        fmt.Println(resp)
13025//    }
13026func (c *IoT) ListCertificatesRequest(input *ListCertificatesInput) (req *request.Request, output *ListCertificatesOutput) {
13027	op := &request.Operation{
13028		Name:       opListCertificates,
13029		HTTPMethod: "GET",
13030		HTTPPath:   "/certificates",
13031		Paginator: &request.Paginator{
13032			InputTokens:     []string{"marker"},
13033			OutputTokens:    []string{"nextMarker"},
13034			LimitToken:      "pageSize",
13035			TruncationToken: "",
13036		},
13037	}
13038
13039	if input == nil {
13040		input = &ListCertificatesInput{}
13041	}
13042
13043	output = &ListCertificatesOutput{}
13044	req = c.newRequest(op, input, output)
13045	return
13046}
13047
13048// ListCertificates API operation for AWS IoT.
13049//
13050// Lists the certificates registered in your AWS account.
13051//
13052// The results are paginated with a default page size of 25. You can use the
13053// returned marker to retrieve additional results.
13054//
13055// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13056// with awserr.Error's Code and Message methods to get detailed information about
13057// the error.
13058//
13059// See the AWS API reference guide for AWS IoT's
13060// API operation ListCertificates for usage and error information.
13061//
13062// Returned Error Types:
13063//   * InvalidRequestException
13064//   The request is not valid.
13065//
13066//   * ThrottlingException
13067//   The rate exceeds the limit.
13068//
13069//   * UnauthorizedException
13070//   You are not authorized to perform this operation.
13071//
13072//   * ServiceUnavailableException
13073//   The service is temporarily unavailable.
13074//
13075//   * InternalFailureException
13076//   An unexpected error has occurred.
13077//
13078func (c *IoT) ListCertificates(input *ListCertificatesInput) (*ListCertificatesOutput, error) {
13079	req, out := c.ListCertificatesRequest(input)
13080	return out, req.Send()
13081}
13082
13083// ListCertificatesWithContext is the same as ListCertificates with the addition of
13084// the ability to pass a context and additional request options.
13085//
13086// See ListCertificates for details on how to use this API operation.
13087//
13088// The context must be non-nil and will be used for request cancellation. If
13089// the context is nil a panic will occur. In the future the SDK may create
13090// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13091// for more information on using Contexts.
13092func (c *IoT) ListCertificatesWithContext(ctx aws.Context, input *ListCertificatesInput, opts ...request.Option) (*ListCertificatesOutput, error) {
13093	req, out := c.ListCertificatesRequest(input)
13094	req.SetContext(ctx)
13095	req.ApplyOptions(opts...)
13096	return out, req.Send()
13097}
13098
13099// ListCertificatesPages iterates over the pages of a ListCertificates operation,
13100// calling the "fn" function with the response data for each page. To stop
13101// iterating, return false from the fn function.
13102//
13103// See ListCertificates method for more information on how to use this operation.
13104//
13105// Note: This operation can generate multiple requests to a service.
13106//
13107//    // Example iterating over at most 3 pages of a ListCertificates operation.
13108//    pageNum := 0
13109//    err := client.ListCertificatesPages(params,
13110//        func(page *iot.ListCertificatesOutput, lastPage bool) bool {
13111//            pageNum++
13112//            fmt.Println(page)
13113//            return pageNum <= 3
13114//        })
13115//
13116func (c *IoT) ListCertificatesPages(input *ListCertificatesInput, fn func(*ListCertificatesOutput, bool) bool) error {
13117	return c.ListCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
13118}
13119
13120// ListCertificatesPagesWithContext same as ListCertificatesPages except
13121// it takes a Context and allows setting request options on the pages.
13122//
13123// The context must be non-nil and will be used for request cancellation. If
13124// the context is nil a panic will occur. In the future the SDK may create
13125// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13126// for more information on using Contexts.
13127func (c *IoT) ListCertificatesPagesWithContext(ctx aws.Context, input *ListCertificatesInput, fn func(*ListCertificatesOutput, bool) bool, opts ...request.Option) error {
13128	p := request.Pagination{
13129		NewRequest: func() (*request.Request, error) {
13130			var inCpy *ListCertificatesInput
13131			if input != nil {
13132				tmp := *input
13133				inCpy = &tmp
13134			}
13135			req, _ := c.ListCertificatesRequest(inCpy)
13136			req.SetContext(ctx)
13137			req.ApplyOptions(opts...)
13138			return req, nil
13139		},
13140	}
13141
13142	for p.Next() {
13143		if !fn(p.Page().(*ListCertificatesOutput), !p.HasNextPage()) {
13144			break
13145		}
13146	}
13147
13148	return p.Err()
13149}
13150
13151const opListCertificatesByCA = "ListCertificatesByCA"
13152
13153// ListCertificatesByCARequest generates a "aws/request.Request" representing the
13154// client's request for the ListCertificatesByCA operation. The "output" return
13155// value will be populated with the request's response once the request completes
13156// successfully.
13157//
13158// Use "Send" method on the returned Request to send the API call to the service.
13159// the "output" return value is not valid until after Send returns without error.
13160//
13161// See ListCertificatesByCA for more information on using the ListCertificatesByCA
13162// API call, and error handling.
13163//
13164// This method is useful when you want to inject custom logic or configuration
13165// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13166//
13167//
13168//    // Example sending a request using the ListCertificatesByCARequest method.
13169//    req, resp := client.ListCertificatesByCARequest(params)
13170//
13171//    err := req.Send()
13172//    if err == nil { // resp is now filled
13173//        fmt.Println(resp)
13174//    }
13175func (c *IoT) ListCertificatesByCARequest(input *ListCertificatesByCAInput) (req *request.Request, output *ListCertificatesByCAOutput) {
13176	op := &request.Operation{
13177		Name:       opListCertificatesByCA,
13178		HTTPMethod: "GET",
13179		HTTPPath:   "/certificates-by-ca/{caCertificateId}",
13180		Paginator: &request.Paginator{
13181			InputTokens:     []string{"marker"},
13182			OutputTokens:    []string{"nextMarker"},
13183			LimitToken:      "pageSize",
13184			TruncationToken: "",
13185		},
13186	}
13187
13188	if input == nil {
13189		input = &ListCertificatesByCAInput{}
13190	}
13191
13192	output = &ListCertificatesByCAOutput{}
13193	req = c.newRequest(op, input, output)
13194	return
13195}
13196
13197// ListCertificatesByCA API operation for AWS IoT.
13198//
13199// List the device certificates signed by the specified CA certificate.
13200//
13201// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13202// with awserr.Error's Code and Message methods to get detailed information about
13203// the error.
13204//
13205// See the AWS API reference guide for AWS IoT's
13206// API operation ListCertificatesByCA for usage and error information.
13207//
13208// Returned Error Types:
13209//   * InvalidRequestException
13210//   The request is not valid.
13211//
13212//   * ThrottlingException
13213//   The rate exceeds the limit.
13214//
13215//   * UnauthorizedException
13216//   You are not authorized to perform this operation.
13217//
13218//   * ServiceUnavailableException
13219//   The service is temporarily unavailable.
13220//
13221//   * InternalFailureException
13222//   An unexpected error has occurred.
13223//
13224func (c *IoT) ListCertificatesByCA(input *ListCertificatesByCAInput) (*ListCertificatesByCAOutput, error) {
13225	req, out := c.ListCertificatesByCARequest(input)
13226	return out, req.Send()
13227}
13228
13229// ListCertificatesByCAWithContext is the same as ListCertificatesByCA with the addition of
13230// the ability to pass a context and additional request options.
13231//
13232// See ListCertificatesByCA for details on how to use this API operation.
13233//
13234// The context must be non-nil and will be used for request cancellation. If
13235// the context is nil a panic will occur. In the future the SDK may create
13236// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13237// for more information on using Contexts.
13238func (c *IoT) ListCertificatesByCAWithContext(ctx aws.Context, input *ListCertificatesByCAInput, opts ...request.Option) (*ListCertificatesByCAOutput, error) {
13239	req, out := c.ListCertificatesByCARequest(input)
13240	req.SetContext(ctx)
13241	req.ApplyOptions(opts...)
13242	return out, req.Send()
13243}
13244
13245// ListCertificatesByCAPages iterates over the pages of a ListCertificatesByCA operation,
13246// calling the "fn" function with the response data for each page. To stop
13247// iterating, return false from the fn function.
13248//
13249// See ListCertificatesByCA method for more information on how to use this operation.
13250//
13251// Note: This operation can generate multiple requests to a service.
13252//
13253//    // Example iterating over at most 3 pages of a ListCertificatesByCA operation.
13254//    pageNum := 0
13255//    err := client.ListCertificatesByCAPages(params,
13256//        func(page *iot.ListCertificatesByCAOutput, lastPage bool) bool {
13257//            pageNum++
13258//            fmt.Println(page)
13259//            return pageNum <= 3
13260//        })
13261//
13262func (c *IoT) ListCertificatesByCAPages(input *ListCertificatesByCAInput, fn func(*ListCertificatesByCAOutput, bool) bool) error {
13263	return c.ListCertificatesByCAPagesWithContext(aws.BackgroundContext(), input, fn)
13264}
13265
13266// ListCertificatesByCAPagesWithContext same as ListCertificatesByCAPages except
13267// it takes a Context and allows setting request options on the pages.
13268//
13269// The context must be non-nil and will be used for request cancellation. If
13270// the context is nil a panic will occur. In the future the SDK may create
13271// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13272// for more information on using Contexts.
13273func (c *IoT) ListCertificatesByCAPagesWithContext(ctx aws.Context, input *ListCertificatesByCAInput, fn func(*ListCertificatesByCAOutput, bool) bool, opts ...request.Option) error {
13274	p := request.Pagination{
13275		NewRequest: func() (*request.Request, error) {
13276			var inCpy *ListCertificatesByCAInput
13277			if input != nil {
13278				tmp := *input
13279				inCpy = &tmp
13280			}
13281			req, _ := c.ListCertificatesByCARequest(inCpy)
13282			req.SetContext(ctx)
13283			req.ApplyOptions(opts...)
13284			return req, nil
13285		},
13286	}
13287
13288	for p.Next() {
13289		if !fn(p.Page().(*ListCertificatesByCAOutput), !p.HasNextPage()) {
13290			break
13291		}
13292	}
13293
13294	return p.Err()
13295}
13296
13297const opListCustomMetrics = "ListCustomMetrics"
13298
13299// ListCustomMetricsRequest generates a "aws/request.Request" representing the
13300// client's request for the ListCustomMetrics operation. The "output" return
13301// value will be populated with the request's response once the request completes
13302// successfully.
13303//
13304// Use "Send" method on the returned Request to send the API call to the service.
13305// the "output" return value is not valid until after Send returns without error.
13306//
13307// See ListCustomMetrics for more information on using the ListCustomMetrics
13308// API call, and error handling.
13309//
13310// This method is useful when you want to inject custom logic or configuration
13311// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13312//
13313//
13314//    // Example sending a request using the ListCustomMetricsRequest method.
13315//    req, resp := client.ListCustomMetricsRequest(params)
13316//
13317//    err := req.Send()
13318//    if err == nil { // resp is now filled
13319//        fmt.Println(resp)
13320//    }
13321func (c *IoT) ListCustomMetricsRequest(input *ListCustomMetricsInput) (req *request.Request, output *ListCustomMetricsOutput) {
13322	op := &request.Operation{
13323		Name:       opListCustomMetrics,
13324		HTTPMethod: "GET",
13325		HTTPPath:   "/custom-metrics",
13326		Paginator: &request.Paginator{
13327			InputTokens:     []string{"nextToken"},
13328			OutputTokens:    []string{"nextToken"},
13329			LimitToken:      "maxResults",
13330			TruncationToken: "",
13331		},
13332	}
13333
13334	if input == nil {
13335		input = &ListCustomMetricsInput{}
13336	}
13337
13338	output = &ListCustomMetricsOutput{}
13339	req = c.newRequest(op, input, output)
13340	return
13341}
13342
13343// ListCustomMetrics API operation for AWS IoT.
13344//
13345// Lists your Device Defender detect custom metrics.
13346//
13347// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13348// with awserr.Error's Code and Message methods to get detailed information about
13349// the error.
13350//
13351// See the AWS API reference guide for AWS IoT's
13352// API operation ListCustomMetrics for usage and error information.
13353//
13354// Returned Error Types:
13355//   * InvalidRequestException
13356//   The request is not valid.
13357//
13358//   * ThrottlingException
13359//   The rate exceeds the limit.
13360//
13361//   * InternalFailureException
13362//   An unexpected error has occurred.
13363//
13364func (c *IoT) ListCustomMetrics(input *ListCustomMetricsInput) (*ListCustomMetricsOutput, error) {
13365	req, out := c.ListCustomMetricsRequest(input)
13366	return out, req.Send()
13367}
13368
13369// ListCustomMetricsWithContext is the same as ListCustomMetrics with the addition of
13370// the ability to pass a context and additional request options.
13371//
13372// See ListCustomMetrics for details on how to use this API operation.
13373//
13374// The context must be non-nil and will be used for request cancellation. If
13375// the context is nil a panic will occur. In the future the SDK may create
13376// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13377// for more information on using Contexts.
13378func (c *IoT) ListCustomMetricsWithContext(ctx aws.Context, input *ListCustomMetricsInput, opts ...request.Option) (*ListCustomMetricsOutput, error) {
13379	req, out := c.ListCustomMetricsRequest(input)
13380	req.SetContext(ctx)
13381	req.ApplyOptions(opts...)
13382	return out, req.Send()
13383}
13384
13385// ListCustomMetricsPages iterates over the pages of a ListCustomMetrics operation,
13386// calling the "fn" function with the response data for each page. To stop
13387// iterating, return false from the fn function.
13388//
13389// See ListCustomMetrics method for more information on how to use this operation.
13390//
13391// Note: This operation can generate multiple requests to a service.
13392//
13393//    // Example iterating over at most 3 pages of a ListCustomMetrics operation.
13394//    pageNum := 0
13395//    err := client.ListCustomMetricsPages(params,
13396//        func(page *iot.ListCustomMetricsOutput, lastPage bool) bool {
13397//            pageNum++
13398//            fmt.Println(page)
13399//            return pageNum <= 3
13400//        })
13401//
13402func (c *IoT) ListCustomMetricsPages(input *ListCustomMetricsInput, fn func(*ListCustomMetricsOutput, bool) bool) error {
13403	return c.ListCustomMetricsPagesWithContext(aws.BackgroundContext(), input, fn)
13404}
13405
13406// ListCustomMetricsPagesWithContext same as ListCustomMetricsPages except
13407// it takes a Context and allows setting request options on the pages.
13408//
13409// The context must be non-nil and will be used for request cancellation. If
13410// the context is nil a panic will occur. In the future the SDK may create
13411// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13412// for more information on using Contexts.
13413func (c *IoT) ListCustomMetricsPagesWithContext(ctx aws.Context, input *ListCustomMetricsInput, fn func(*ListCustomMetricsOutput, bool) bool, opts ...request.Option) error {
13414	p := request.Pagination{
13415		NewRequest: func() (*request.Request, error) {
13416			var inCpy *ListCustomMetricsInput
13417			if input != nil {
13418				tmp := *input
13419				inCpy = &tmp
13420			}
13421			req, _ := c.ListCustomMetricsRequest(inCpy)
13422			req.SetContext(ctx)
13423			req.ApplyOptions(opts...)
13424			return req, nil
13425		},
13426	}
13427
13428	for p.Next() {
13429		if !fn(p.Page().(*ListCustomMetricsOutput), !p.HasNextPage()) {
13430			break
13431		}
13432	}
13433
13434	return p.Err()
13435}
13436
13437const opListDetectMitigationActionsExecutions = "ListDetectMitigationActionsExecutions"
13438
13439// ListDetectMitigationActionsExecutionsRequest generates a "aws/request.Request" representing the
13440// client's request for the ListDetectMitigationActionsExecutions operation. The "output" return
13441// value will be populated with the request's response once the request completes
13442// successfully.
13443//
13444// Use "Send" method on the returned Request to send the API call to the service.
13445// the "output" return value is not valid until after Send returns without error.
13446//
13447// See ListDetectMitigationActionsExecutions for more information on using the ListDetectMitigationActionsExecutions
13448// API call, and error handling.
13449//
13450// This method is useful when you want to inject custom logic or configuration
13451// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13452//
13453//
13454//    // Example sending a request using the ListDetectMitigationActionsExecutionsRequest method.
13455//    req, resp := client.ListDetectMitigationActionsExecutionsRequest(params)
13456//
13457//    err := req.Send()
13458//    if err == nil { // resp is now filled
13459//        fmt.Println(resp)
13460//    }
13461func (c *IoT) ListDetectMitigationActionsExecutionsRequest(input *ListDetectMitigationActionsExecutionsInput) (req *request.Request, output *ListDetectMitigationActionsExecutionsOutput) {
13462	op := &request.Operation{
13463		Name:       opListDetectMitigationActionsExecutions,
13464		HTTPMethod: "GET",
13465		HTTPPath:   "/detect/mitigationactions/executions",
13466		Paginator: &request.Paginator{
13467			InputTokens:     []string{"nextToken"},
13468			OutputTokens:    []string{"nextToken"},
13469			LimitToken:      "maxResults",
13470			TruncationToken: "",
13471		},
13472	}
13473
13474	if input == nil {
13475		input = &ListDetectMitigationActionsExecutionsInput{}
13476	}
13477
13478	output = &ListDetectMitigationActionsExecutionsOutput{}
13479	req = c.newRequest(op, input, output)
13480	return
13481}
13482
13483// ListDetectMitigationActionsExecutions API operation for AWS IoT.
13484//
13485// Lists mitigation actions executions for a Device Defender ML Detect Security
13486// Profile.
13487//
13488// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13489// with awserr.Error's Code and Message methods to get detailed information about
13490// the error.
13491//
13492// See the AWS API reference guide for AWS IoT's
13493// API operation ListDetectMitigationActionsExecutions for usage and error information.
13494//
13495// Returned Error Types:
13496//   * InvalidRequestException
13497//   The request is not valid.
13498//
13499//   * ThrottlingException
13500//   The rate exceeds the limit.
13501//
13502//   * InternalFailureException
13503//   An unexpected error has occurred.
13504//
13505func (c *IoT) ListDetectMitigationActionsExecutions(input *ListDetectMitigationActionsExecutionsInput) (*ListDetectMitigationActionsExecutionsOutput, error) {
13506	req, out := c.ListDetectMitigationActionsExecutionsRequest(input)
13507	return out, req.Send()
13508}
13509
13510// ListDetectMitigationActionsExecutionsWithContext is the same as ListDetectMitigationActionsExecutions with the addition of
13511// the ability to pass a context and additional request options.
13512//
13513// See ListDetectMitigationActionsExecutions for details on how to use this API operation.
13514//
13515// The context must be non-nil and will be used for request cancellation. If
13516// the context is nil a panic will occur. In the future the SDK may create
13517// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13518// for more information on using Contexts.
13519func (c *IoT) ListDetectMitigationActionsExecutionsWithContext(ctx aws.Context, input *ListDetectMitigationActionsExecutionsInput, opts ...request.Option) (*ListDetectMitigationActionsExecutionsOutput, error) {
13520	req, out := c.ListDetectMitigationActionsExecutionsRequest(input)
13521	req.SetContext(ctx)
13522	req.ApplyOptions(opts...)
13523	return out, req.Send()
13524}
13525
13526// ListDetectMitigationActionsExecutionsPages iterates over the pages of a ListDetectMitigationActionsExecutions operation,
13527// calling the "fn" function with the response data for each page. To stop
13528// iterating, return false from the fn function.
13529//
13530// See ListDetectMitigationActionsExecutions method for more information on how to use this operation.
13531//
13532// Note: This operation can generate multiple requests to a service.
13533//
13534//    // Example iterating over at most 3 pages of a ListDetectMitigationActionsExecutions operation.
13535//    pageNum := 0
13536//    err := client.ListDetectMitigationActionsExecutionsPages(params,
13537//        func(page *iot.ListDetectMitigationActionsExecutionsOutput, lastPage bool) bool {
13538//            pageNum++
13539//            fmt.Println(page)
13540//            return pageNum <= 3
13541//        })
13542//
13543func (c *IoT) ListDetectMitigationActionsExecutionsPages(input *ListDetectMitigationActionsExecutionsInput, fn func(*ListDetectMitigationActionsExecutionsOutput, bool) bool) error {
13544	return c.ListDetectMitigationActionsExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
13545}
13546
13547// ListDetectMitigationActionsExecutionsPagesWithContext same as ListDetectMitigationActionsExecutionsPages except
13548// it takes a Context and allows setting request options on the pages.
13549//
13550// The context must be non-nil and will be used for request cancellation. If
13551// the context is nil a panic will occur. In the future the SDK may create
13552// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13553// for more information on using Contexts.
13554func (c *IoT) ListDetectMitigationActionsExecutionsPagesWithContext(ctx aws.Context, input *ListDetectMitigationActionsExecutionsInput, fn func(*ListDetectMitigationActionsExecutionsOutput, bool) bool, opts ...request.Option) error {
13555	p := request.Pagination{
13556		NewRequest: func() (*request.Request, error) {
13557			var inCpy *ListDetectMitigationActionsExecutionsInput
13558			if input != nil {
13559				tmp := *input
13560				inCpy = &tmp
13561			}
13562			req, _ := c.ListDetectMitigationActionsExecutionsRequest(inCpy)
13563			req.SetContext(ctx)
13564			req.ApplyOptions(opts...)
13565			return req, nil
13566		},
13567	}
13568
13569	for p.Next() {
13570		if !fn(p.Page().(*ListDetectMitigationActionsExecutionsOutput), !p.HasNextPage()) {
13571			break
13572		}
13573	}
13574
13575	return p.Err()
13576}
13577
13578const opListDetectMitigationActionsTasks = "ListDetectMitigationActionsTasks"
13579
13580// ListDetectMitigationActionsTasksRequest generates a "aws/request.Request" representing the
13581// client's request for the ListDetectMitigationActionsTasks operation. The "output" return
13582// value will be populated with the request's response once the request completes
13583// successfully.
13584//
13585// Use "Send" method on the returned Request to send the API call to the service.
13586// the "output" return value is not valid until after Send returns without error.
13587//
13588// See ListDetectMitigationActionsTasks for more information on using the ListDetectMitigationActionsTasks
13589// API call, and error handling.
13590//
13591// This method is useful when you want to inject custom logic or configuration
13592// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13593//
13594//
13595//    // Example sending a request using the ListDetectMitigationActionsTasksRequest method.
13596//    req, resp := client.ListDetectMitigationActionsTasksRequest(params)
13597//
13598//    err := req.Send()
13599//    if err == nil { // resp is now filled
13600//        fmt.Println(resp)
13601//    }
13602func (c *IoT) ListDetectMitigationActionsTasksRequest(input *ListDetectMitigationActionsTasksInput) (req *request.Request, output *ListDetectMitigationActionsTasksOutput) {
13603	op := &request.Operation{
13604		Name:       opListDetectMitigationActionsTasks,
13605		HTTPMethod: "GET",
13606		HTTPPath:   "/detect/mitigationactions/tasks",
13607		Paginator: &request.Paginator{
13608			InputTokens:     []string{"nextToken"},
13609			OutputTokens:    []string{"nextToken"},
13610			LimitToken:      "maxResults",
13611			TruncationToken: "",
13612		},
13613	}
13614
13615	if input == nil {
13616		input = &ListDetectMitigationActionsTasksInput{}
13617	}
13618
13619	output = &ListDetectMitigationActionsTasksOutput{}
13620	req = c.newRequest(op, input, output)
13621	return
13622}
13623
13624// ListDetectMitigationActionsTasks API operation for AWS IoT.
13625//
13626// List of Device Defender ML Detect mitigation actions tasks.
13627//
13628// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13629// with awserr.Error's Code and Message methods to get detailed information about
13630// the error.
13631//
13632// See the AWS API reference guide for AWS IoT's
13633// API operation ListDetectMitigationActionsTasks for usage and error information.
13634//
13635// Returned Error Types:
13636//   * InvalidRequestException
13637//   The request is not valid.
13638//
13639//   * ThrottlingException
13640//   The rate exceeds the limit.
13641//
13642//   * InternalFailureException
13643//   An unexpected error has occurred.
13644//
13645func (c *IoT) ListDetectMitigationActionsTasks(input *ListDetectMitigationActionsTasksInput) (*ListDetectMitigationActionsTasksOutput, error) {
13646	req, out := c.ListDetectMitigationActionsTasksRequest(input)
13647	return out, req.Send()
13648}
13649
13650// ListDetectMitigationActionsTasksWithContext is the same as ListDetectMitigationActionsTasks with the addition of
13651// the ability to pass a context and additional request options.
13652//
13653// See ListDetectMitigationActionsTasks for details on how to use this API operation.
13654//
13655// The context must be non-nil and will be used for request cancellation. If
13656// the context is nil a panic will occur. In the future the SDK may create
13657// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13658// for more information on using Contexts.
13659func (c *IoT) ListDetectMitigationActionsTasksWithContext(ctx aws.Context, input *ListDetectMitigationActionsTasksInput, opts ...request.Option) (*ListDetectMitigationActionsTasksOutput, error) {
13660	req, out := c.ListDetectMitigationActionsTasksRequest(input)
13661	req.SetContext(ctx)
13662	req.ApplyOptions(opts...)
13663	return out, req.Send()
13664}
13665
13666// ListDetectMitigationActionsTasksPages iterates over the pages of a ListDetectMitigationActionsTasks operation,
13667// calling the "fn" function with the response data for each page. To stop
13668// iterating, return false from the fn function.
13669//
13670// See ListDetectMitigationActionsTasks method for more information on how to use this operation.
13671//
13672// Note: This operation can generate multiple requests to a service.
13673//
13674//    // Example iterating over at most 3 pages of a ListDetectMitigationActionsTasks operation.
13675//    pageNum := 0
13676//    err := client.ListDetectMitigationActionsTasksPages(params,
13677//        func(page *iot.ListDetectMitigationActionsTasksOutput, lastPage bool) bool {
13678//            pageNum++
13679//            fmt.Println(page)
13680//            return pageNum <= 3
13681//        })
13682//
13683func (c *IoT) ListDetectMitigationActionsTasksPages(input *ListDetectMitigationActionsTasksInput, fn func(*ListDetectMitigationActionsTasksOutput, bool) bool) error {
13684	return c.ListDetectMitigationActionsTasksPagesWithContext(aws.BackgroundContext(), input, fn)
13685}
13686
13687// ListDetectMitigationActionsTasksPagesWithContext same as ListDetectMitigationActionsTasksPages except
13688// it takes a Context and allows setting request options on the pages.
13689//
13690// The context must be non-nil and will be used for request cancellation. If
13691// the context is nil a panic will occur. In the future the SDK may create
13692// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13693// for more information on using Contexts.
13694func (c *IoT) ListDetectMitigationActionsTasksPagesWithContext(ctx aws.Context, input *ListDetectMitigationActionsTasksInput, fn func(*ListDetectMitigationActionsTasksOutput, bool) bool, opts ...request.Option) error {
13695	p := request.Pagination{
13696		NewRequest: func() (*request.Request, error) {
13697			var inCpy *ListDetectMitigationActionsTasksInput
13698			if input != nil {
13699				tmp := *input
13700				inCpy = &tmp
13701			}
13702			req, _ := c.ListDetectMitigationActionsTasksRequest(inCpy)
13703			req.SetContext(ctx)
13704			req.ApplyOptions(opts...)
13705			return req, nil
13706		},
13707	}
13708
13709	for p.Next() {
13710		if !fn(p.Page().(*ListDetectMitigationActionsTasksOutput), !p.HasNextPage()) {
13711			break
13712		}
13713	}
13714
13715	return p.Err()
13716}
13717
13718const opListDimensions = "ListDimensions"
13719
13720// ListDimensionsRequest generates a "aws/request.Request" representing the
13721// client's request for the ListDimensions operation. The "output" return
13722// value will be populated with the request's response once the request completes
13723// successfully.
13724//
13725// Use "Send" method on the returned Request to send the API call to the service.
13726// the "output" return value is not valid until after Send returns without error.
13727//
13728// See ListDimensions for more information on using the ListDimensions
13729// API call, and error handling.
13730//
13731// This method is useful when you want to inject custom logic or configuration
13732// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13733//
13734//
13735//    // Example sending a request using the ListDimensionsRequest method.
13736//    req, resp := client.ListDimensionsRequest(params)
13737//
13738//    err := req.Send()
13739//    if err == nil { // resp is now filled
13740//        fmt.Println(resp)
13741//    }
13742func (c *IoT) ListDimensionsRequest(input *ListDimensionsInput) (req *request.Request, output *ListDimensionsOutput) {
13743	op := &request.Operation{
13744		Name:       opListDimensions,
13745		HTTPMethod: "GET",
13746		HTTPPath:   "/dimensions",
13747		Paginator: &request.Paginator{
13748			InputTokens:     []string{"nextToken"},
13749			OutputTokens:    []string{"nextToken"},
13750			LimitToken:      "maxResults",
13751			TruncationToken: "",
13752		},
13753	}
13754
13755	if input == nil {
13756		input = &ListDimensionsInput{}
13757	}
13758
13759	output = &ListDimensionsOutput{}
13760	req = c.newRequest(op, input, output)
13761	return
13762}
13763
13764// ListDimensions API operation for AWS IoT.
13765//
13766// List the set of dimensions that are defined for your AWS account.
13767//
13768// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13769// with awserr.Error's Code and Message methods to get detailed information about
13770// the error.
13771//
13772// See the AWS API reference guide for AWS IoT's
13773// API operation ListDimensions for usage and error information.
13774//
13775// Returned Error Types:
13776//   * InternalFailureException
13777//   An unexpected error has occurred.
13778//
13779//   * InvalidRequestException
13780//   The request is not valid.
13781//
13782//   * ThrottlingException
13783//   The rate exceeds the limit.
13784//
13785func (c *IoT) ListDimensions(input *ListDimensionsInput) (*ListDimensionsOutput, error) {
13786	req, out := c.ListDimensionsRequest(input)
13787	return out, req.Send()
13788}
13789
13790// ListDimensionsWithContext is the same as ListDimensions with the addition of
13791// the ability to pass a context and additional request options.
13792//
13793// See ListDimensions for details on how to use this API operation.
13794//
13795// The context must be non-nil and will be used for request cancellation. If
13796// the context is nil a panic will occur. In the future the SDK may create
13797// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13798// for more information on using Contexts.
13799func (c *IoT) ListDimensionsWithContext(ctx aws.Context, input *ListDimensionsInput, opts ...request.Option) (*ListDimensionsOutput, error) {
13800	req, out := c.ListDimensionsRequest(input)
13801	req.SetContext(ctx)
13802	req.ApplyOptions(opts...)
13803	return out, req.Send()
13804}
13805
13806// ListDimensionsPages iterates over the pages of a ListDimensions operation,
13807// calling the "fn" function with the response data for each page. To stop
13808// iterating, return false from the fn function.
13809//
13810// See ListDimensions method for more information on how to use this operation.
13811//
13812// Note: This operation can generate multiple requests to a service.
13813//
13814//    // Example iterating over at most 3 pages of a ListDimensions operation.
13815//    pageNum := 0
13816//    err := client.ListDimensionsPages(params,
13817//        func(page *iot.ListDimensionsOutput, lastPage bool) bool {
13818//            pageNum++
13819//            fmt.Println(page)
13820//            return pageNum <= 3
13821//        })
13822//
13823func (c *IoT) ListDimensionsPages(input *ListDimensionsInput, fn func(*ListDimensionsOutput, bool) bool) error {
13824	return c.ListDimensionsPagesWithContext(aws.BackgroundContext(), input, fn)
13825}
13826
13827// ListDimensionsPagesWithContext same as ListDimensionsPages except
13828// it takes a Context and allows setting request options on the pages.
13829//
13830// The context must be non-nil and will be used for request cancellation. If
13831// the context is nil a panic will occur. In the future the SDK may create
13832// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13833// for more information on using Contexts.
13834func (c *IoT) ListDimensionsPagesWithContext(ctx aws.Context, input *ListDimensionsInput, fn func(*ListDimensionsOutput, bool) bool, opts ...request.Option) error {
13835	p := request.Pagination{
13836		NewRequest: func() (*request.Request, error) {
13837			var inCpy *ListDimensionsInput
13838			if input != nil {
13839				tmp := *input
13840				inCpy = &tmp
13841			}
13842			req, _ := c.ListDimensionsRequest(inCpy)
13843			req.SetContext(ctx)
13844			req.ApplyOptions(opts...)
13845			return req, nil
13846		},
13847	}
13848
13849	for p.Next() {
13850		if !fn(p.Page().(*ListDimensionsOutput), !p.HasNextPage()) {
13851			break
13852		}
13853	}
13854
13855	return p.Err()
13856}
13857
13858const opListDomainConfigurations = "ListDomainConfigurations"
13859
13860// ListDomainConfigurationsRequest generates a "aws/request.Request" representing the
13861// client's request for the ListDomainConfigurations operation. The "output" return
13862// value will be populated with the request's response once the request completes
13863// successfully.
13864//
13865// Use "Send" method on the returned Request to send the API call to the service.
13866// the "output" return value is not valid until after Send returns without error.
13867//
13868// See ListDomainConfigurations for more information on using the ListDomainConfigurations
13869// API call, and error handling.
13870//
13871// This method is useful when you want to inject custom logic or configuration
13872// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13873//
13874//
13875//    // Example sending a request using the ListDomainConfigurationsRequest method.
13876//    req, resp := client.ListDomainConfigurationsRequest(params)
13877//
13878//    err := req.Send()
13879//    if err == nil { // resp is now filled
13880//        fmt.Println(resp)
13881//    }
13882func (c *IoT) ListDomainConfigurationsRequest(input *ListDomainConfigurationsInput) (req *request.Request, output *ListDomainConfigurationsOutput) {
13883	op := &request.Operation{
13884		Name:       opListDomainConfigurations,
13885		HTTPMethod: "GET",
13886		HTTPPath:   "/domainConfigurations",
13887		Paginator: &request.Paginator{
13888			InputTokens:     []string{"marker"},
13889			OutputTokens:    []string{"nextMarker"},
13890			LimitToken:      "pageSize",
13891			TruncationToken: "",
13892		},
13893	}
13894
13895	if input == nil {
13896		input = &ListDomainConfigurationsInput{}
13897	}
13898
13899	output = &ListDomainConfigurationsOutput{}
13900	req = c.newRequest(op, input, output)
13901	return
13902}
13903
13904// ListDomainConfigurations API operation for AWS IoT.
13905//
13906// Gets a list of domain configurations for the user. This list is sorted alphabetically
13907// by domain configuration name.
13908//
13909// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13910// with awserr.Error's Code and Message methods to get detailed information about
13911// the error.
13912//
13913// See the AWS API reference guide for AWS IoT's
13914// API operation ListDomainConfigurations for usage and error information.
13915//
13916// Returned Error Types:
13917//   * InvalidRequestException
13918//   The request is not valid.
13919//
13920//   * ThrottlingException
13921//   The rate exceeds the limit.
13922//
13923//   * UnauthorizedException
13924//   You are not authorized to perform this operation.
13925//
13926//   * ServiceUnavailableException
13927//   The service is temporarily unavailable.
13928//
13929//   * InternalFailureException
13930//   An unexpected error has occurred.
13931//
13932func (c *IoT) ListDomainConfigurations(input *ListDomainConfigurationsInput) (*ListDomainConfigurationsOutput, error) {
13933	req, out := c.ListDomainConfigurationsRequest(input)
13934	return out, req.Send()
13935}
13936
13937// ListDomainConfigurationsWithContext is the same as ListDomainConfigurations with the addition of
13938// the ability to pass a context and additional request options.
13939//
13940// See ListDomainConfigurations for details on how to use this API operation.
13941//
13942// The context must be non-nil and will be used for request cancellation. If
13943// the context is nil a panic will occur. In the future the SDK may create
13944// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13945// for more information on using Contexts.
13946func (c *IoT) ListDomainConfigurationsWithContext(ctx aws.Context, input *ListDomainConfigurationsInput, opts ...request.Option) (*ListDomainConfigurationsOutput, error) {
13947	req, out := c.ListDomainConfigurationsRequest(input)
13948	req.SetContext(ctx)
13949	req.ApplyOptions(opts...)
13950	return out, req.Send()
13951}
13952
13953// ListDomainConfigurationsPages iterates over the pages of a ListDomainConfigurations operation,
13954// calling the "fn" function with the response data for each page. To stop
13955// iterating, return false from the fn function.
13956//
13957// See ListDomainConfigurations method for more information on how to use this operation.
13958//
13959// Note: This operation can generate multiple requests to a service.
13960//
13961//    // Example iterating over at most 3 pages of a ListDomainConfigurations operation.
13962//    pageNum := 0
13963//    err := client.ListDomainConfigurationsPages(params,
13964//        func(page *iot.ListDomainConfigurationsOutput, lastPage bool) bool {
13965//            pageNum++
13966//            fmt.Println(page)
13967//            return pageNum <= 3
13968//        })
13969//
13970func (c *IoT) ListDomainConfigurationsPages(input *ListDomainConfigurationsInput, fn func(*ListDomainConfigurationsOutput, bool) bool) error {
13971	return c.ListDomainConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
13972}
13973
13974// ListDomainConfigurationsPagesWithContext same as ListDomainConfigurationsPages except
13975// it takes a Context and allows setting request options on the pages.
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) ListDomainConfigurationsPagesWithContext(ctx aws.Context, input *ListDomainConfigurationsInput, fn func(*ListDomainConfigurationsOutput, bool) bool, opts ...request.Option) error {
13982	p := request.Pagination{
13983		NewRequest: func() (*request.Request, error) {
13984			var inCpy *ListDomainConfigurationsInput
13985			if input != nil {
13986				tmp := *input
13987				inCpy = &tmp
13988			}
13989			req, _ := c.ListDomainConfigurationsRequest(inCpy)
13990			req.SetContext(ctx)
13991			req.ApplyOptions(opts...)
13992			return req, nil
13993		},
13994	}
13995
13996	for p.Next() {
13997		if !fn(p.Page().(*ListDomainConfigurationsOutput), !p.HasNextPage()) {
13998			break
13999		}
14000	}
14001
14002	return p.Err()
14003}
14004
14005const opListIndices = "ListIndices"
14006
14007// ListIndicesRequest generates a "aws/request.Request" representing the
14008// client's request for the ListIndices operation. The "output" return
14009// value will be populated with the request's response once the request completes
14010// successfully.
14011//
14012// Use "Send" method on the returned Request to send the API call to the service.
14013// the "output" return value is not valid until after Send returns without error.
14014//
14015// See ListIndices for more information on using the ListIndices
14016// API call, and error handling.
14017//
14018// This method is useful when you want to inject custom logic or configuration
14019// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14020//
14021//
14022//    // Example sending a request using the ListIndicesRequest method.
14023//    req, resp := client.ListIndicesRequest(params)
14024//
14025//    err := req.Send()
14026//    if err == nil { // resp is now filled
14027//        fmt.Println(resp)
14028//    }
14029func (c *IoT) ListIndicesRequest(input *ListIndicesInput) (req *request.Request, output *ListIndicesOutput) {
14030	op := &request.Operation{
14031		Name:       opListIndices,
14032		HTTPMethod: "GET",
14033		HTTPPath:   "/indices",
14034		Paginator: &request.Paginator{
14035			InputTokens:     []string{"nextToken"},
14036			OutputTokens:    []string{"nextToken"},
14037			LimitToken:      "maxResults",
14038			TruncationToken: "",
14039		},
14040	}
14041
14042	if input == nil {
14043		input = &ListIndicesInput{}
14044	}
14045
14046	output = &ListIndicesOutput{}
14047	req = c.newRequest(op, input, output)
14048	return
14049}
14050
14051// ListIndices API operation for AWS IoT.
14052//
14053// Lists the search indices.
14054//
14055// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14056// with awserr.Error's Code and Message methods to get detailed information about
14057// the error.
14058//
14059// See the AWS API reference guide for AWS IoT's
14060// API operation ListIndices for usage and error information.
14061//
14062// Returned Error Types:
14063//   * InvalidRequestException
14064//   The request is not valid.
14065//
14066//   * ThrottlingException
14067//   The rate exceeds the limit.
14068//
14069//   * UnauthorizedException
14070//   You are not authorized to perform this operation.
14071//
14072//   * ServiceUnavailableException
14073//   The service is temporarily unavailable.
14074//
14075//   * InternalFailureException
14076//   An unexpected error has occurred.
14077//
14078func (c *IoT) ListIndices(input *ListIndicesInput) (*ListIndicesOutput, error) {
14079	req, out := c.ListIndicesRequest(input)
14080	return out, req.Send()
14081}
14082
14083// ListIndicesWithContext is the same as ListIndices with the addition of
14084// the ability to pass a context and additional request options.
14085//
14086// See ListIndices for details on how to use this API operation.
14087//
14088// The context must be non-nil and will be used for request cancellation. If
14089// the context is nil a panic will occur. In the future the SDK may create
14090// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14091// for more information on using Contexts.
14092func (c *IoT) ListIndicesWithContext(ctx aws.Context, input *ListIndicesInput, opts ...request.Option) (*ListIndicesOutput, error) {
14093	req, out := c.ListIndicesRequest(input)
14094	req.SetContext(ctx)
14095	req.ApplyOptions(opts...)
14096	return out, req.Send()
14097}
14098
14099// ListIndicesPages iterates over the pages of a ListIndices operation,
14100// calling the "fn" function with the response data for each page. To stop
14101// iterating, return false from the fn function.
14102//
14103// See ListIndices method for more information on how to use this operation.
14104//
14105// Note: This operation can generate multiple requests to a service.
14106//
14107//    // Example iterating over at most 3 pages of a ListIndices operation.
14108//    pageNum := 0
14109//    err := client.ListIndicesPages(params,
14110//        func(page *iot.ListIndicesOutput, lastPage bool) bool {
14111//            pageNum++
14112//            fmt.Println(page)
14113//            return pageNum <= 3
14114//        })
14115//
14116func (c *IoT) ListIndicesPages(input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool) error {
14117	return c.ListIndicesPagesWithContext(aws.BackgroundContext(), input, fn)
14118}
14119
14120// ListIndicesPagesWithContext same as ListIndicesPages except
14121// it takes a Context and allows setting request options on the pages.
14122//
14123// The context must be non-nil and will be used for request cancellation. If
14124// the context is nil a panic will occur. In the future the SDK may create
14125// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14126// for more information on using Contexts.
14127func (c *IoT) ListIndicesPagesWithContext(ctx aws.Context, input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool, opts ...request.Option) error {
14128	p := request.Pagination{
14129		NewRequest: func() (*request.Request, error) {
14130			var inCpy *ListIndicesInput
14131			if input != nil {
14132				tmp := *input
14133				inCpy = &tmp
14134			}
14135			req, _ := c.ListIndicesRequest(inCpy)
14136			req.SetContext(ctx)
14137			req.ApplyOptions(opts...)
14138			return req, nil
14139		},
14140	}
14141
14142	for p.Next() {
14143		if !fn(p.Page().(*ListIndicesOutput), !p.HasNextPage()) {
14144			break
14145		}
14146	}
14147
14148	return p.Err()
14149}
14150
14151const opListJobExecutionsForJob = "ListJobExecutionsForJob"
14152
14153// ListJobExecutionsForJobRequest generates a "aws/request.Request" representing the
14154// client's request for the ListJobExecutionsForJob operation. The "output" return
14155// value will be populated with the request's response once the request completes
14156// successfully.
14157//
14158// Use "Send" method on the returned Request to send the API call to the service.
14159// the "output" return value is not valid until after Send returns without error.
14160//
14161// See ListJobExecutionsForJob for more information on using the ListJobExecutionsForJob
14162// API call, and error handling.
14163//
14164// This method is useful when you want to inject custom logic or configuration
14165// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14166//
14167//
14168//    // Example sending a request using the ListJobExecutionsForJobRequest method.
14169//    req, resp := client.ListJobExecutionsForJobRequest(params)
14170//
14171//    err := req.Send()
14172//    if err == nil { // resp is now filled
14173//        fmt.Println(resp)
14174//    }
14175func (c *IoT) ListJobExecutionsForJobRequest(input *ListJobExecutionsForJobInput) (req *request.Request, output *ListJobExecutionsForJobOutput) {
14176	op := &request.Operation{
14177		Name:       opListJobExecutionsForJob,
14178		HTTPMethod: "GET",
14179		HTTPPath:   "/jobs/{jobId}/things",
14180		Paginator: &request.Paginator{
14181			InputTokens:     []string{"nextToken"},
14182			OutputTokens:    []string{"nextToken"},
14183			LimitToken:      "maxResults",
14184			TruncationToken: "",
14185		},
14186	}
14187
14188	if input == nil {
14189		input = &ListJobExecutionsForJobInput{}
14190	}
14191
14192	output = &ListJobExecutionsForJobOutput{}
14193	req = c.newRequest(op, input, output)
14194	return
14195}
14196
14197// ListJobExecutionsForJob API operation for AWS IoT.
14198//
14199// Lists the job executions for a job.
14200//
14201// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14202// with awserr.Error's Code and Message methods to get detailed information about
14203// the error.
14204//
14205// See the AWS API reference guide for AWS IoT's
14206// API operation ListJobExecutionsForJob for usage and error information.
14207//
14208// Returned Error Types:
14209//   * InvalidRequestException
14210//   The request is not valid.
14211//
14212//   * ResourceNotFoundException
14213//   The specified resource does not exist.
14214//
14215//   * ThrottlingException
14216//   The rate exceeds the limit.
14217//
14218//   * ServiceUnavailableException
14219//   The service is temporarily unavailable.
14220//
14221func (c *IoT) ListJobExecutionsForJob(input *ListJobExecutionsForJobInput) (*ListJobExecutionsForJobOutput, error) {
14222	req, out := c.ListJobExecutionsForJobRequest(input)
14223	return out, req.Send()
14224}
14225
14226// ListJobExecutionsForJobWithContext is the same as ListJobExecutionsForJob with the addition of
14227// the ability to pass a context and additional request options.
14228//
14229// See ListJobExecutionsForJob for details on how to use this API operation.
14230//
14231// The context must be non-nil and will be used for request cancellation. If
14232// the context is nil a panic will occur. In the future the SDK may create
14233// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14234// for more information on using Contexts.
14235func (c *IoT) ListJobExecutionsForJobWithContext(ctx aws.Context, input *ListJobExecutionsForJobInput, opts ...request.Option) (*ListJobExecutionsForJobOutput, error) {
14236	req, out := c.ListJobExecutionsForJobRequest(input)
14237	req.SetContext(ctx)
14238	req.ApplyOptions(opts...)
14239	return out, req.Send()
14240}
14241
14242// ListJobExecutionsForJobPages iterates over the pages of a ListJobExecutionsForJob operation,
14243// calling the "fn" function with the response data for each page. To stop
14244// iterating, return false from the fn function.
14245//
14246// See ListJobExecutionsForJob method for more information on how to use this operation.
14247//
14248// Note: This operation can generate multiple requests to a service.
14249//
14250//    // Example iterating over at most 3 pages of a ListJobExecutionsForJob operation.
14251//    pageNum := 0
14252//    err := client.ListJobExecutionsForJobPages(params,
14253//        func(page *iot.ListJobExecutionsForJobOutput, lastPage bool) bool {
14254//            pageNum++
14255//            fmt.Println(page)
14256//            return pageNum <= 3
14257//        })
14258//
14259func (c *IoT) ListJobExecutionsForJobPages(input *ListJobExecutionsForJobInput, fn func(*ListJobExecutionsForJobOutput, bool) bool) error {
14260	return c.ListJobExecutionsForJobPagesWithContext(aws.BackgroundContext(), input, fn)
14261}
14262
14263// ListJobExecutionsForJobPagesWithContext same as ListJobExecutionsForJobPages except
14264// it takes a Context and allows setting request options on the pages.
14265//
14266// The context must be non-nil and will be used for request cancellation. If
14267// the context is nil a panic will occur. In the future the SDK may create
14268// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14269// for more information on using Contexts.
14270func (c *IoT) ListJobExecutionsForJobPagesWithContext(ctx aws.Context, input *ListJobExecutionsForJobInput, fn func(*ListJobExecutionsForJobOutput, bool) bool, opts ...request.Option) error {
14271	p := request.Pagination{
14272		NewRequest: func() (*request.Request, error) {
14273			var inCpy *ListJobExecutionsForJobInput
14274			if input != nil {
14275				tmp := *input
14276				inCpy = &tmp
14277			}
14278			req, _ := c.ListJobExecutionsForJobRequest(inCpy)
14279			req.SetContext(ctx)
14280			req.ApplyOptions(opts...)
14281			return req, nil
14282		},
14283	}
14284
14285	for p.Next() {
14286		if !fn(p.Page().(*ListJobExecutionsForJobOutput), !p.HasNextPage()) {
14287			break
14288		}
14289	}
14290
14291	return p.Err()
14292}
14293
14294const opListJobExecutionsForThing = "ListJobExecutionsForThing"
14295
14296// ListJobExecutionsForThingRequest generates a "aws/request.Request" representing the
14297// client's request for the ListJobExecutionsForThing operation. The "output" return
14298// value will be populated with the request's response once the request completes
14299// successfully.
14300//
14301// Use "Send" method on the returned Request to send the API call to the service.
14302// the "output" return value is not valid until after Send returns without error.
14303//
14304// See ListJobExecutionsForThing for more information on using the ListJobExecutionsForThing
14305// API call, and error handling.
14306//
14307// This method is useful when you want to inject custom logic or configuration
14308// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14309//
14310//
14311//    // Example sending a request using the ListJobExecutionsForThingRequest method.
14312//    req, resp := client.ListJobExecutionsForThingRequest(params)
14313//
14314//    err := req.Send()
14315//    if err == nil { // resp is now filled
14316//        fmt.Println(resp)
14317//    }
14318func (c *IoT) ListJobExecutionsForThingRequest(input *ListJobExecutionsForThingInput) (req *request.Request, output *ListJobExecutionsForThingOutput) {
14319	op := &request.Operation{
14320		Name:       opListJobExecutionsForThing,
14321		HTTPMethod: "GET",
14322		HTTPPath:   "/things/{thingName}/jobs",
14323		Paginator: &request.Paginator{
14324			InputTokens:     []string{"nextToken"},
14325			OutputTokens:    []string{"nextToken"},
14326			LimitToken:      "maxResults",
14327			TruncationToken: "",
14328		},
14329	}
14330
14331	if input == nil {
14332		input = &ListJobExecutionsForThingInput{}
14333	}
14334
14335	output = &ListJobExecutionsForThingOutput{}
14336	req = c.newRequest(op, input, output)
14337	return
14338}
14339
14340// ListJobExecutionsForThing API operation for AWS IoT.
14341//
14342// Lists the job executions for the specified thing.
14343//
14344// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14345// with awserr.Error's Code and Message methods to get detailed information about
14346// the error.
14347//
14348// See the AWS API reference guide for AWS IoT's
14349// API operation ListJobExecutionsForThing for usage and error information.
14350//
14351// Returned Error Types:
14352//   * InvalidRequestException
14353//   The request is not valid.
14354//
14355//   * ResourceNotFoundException
14356//   The specified resource does not exist.
14357//
14358//   * ThrottlingException
14359//   The rate exceeds the limit.
14360//
14361//   * ServiceUnavailableException
14362//   The service is temporarily unavailable.
14363//
14364func (c *IoT) ListJobExecutionsForThing(input *ListJobExecutionsForThingInput) (*ListJobExecutionsForThingOutput, error) {
14365	req, out := c.ListJobExecutionsForThingRequest(input)
14366	return out, req.Send()
14367}
14368
14369// ListJobExecutionsForThingWithContext is the same as ListJobExecutionsForThing with the addition of
14370// the ability to pass a context and additional request options.
14371//
14372// See ListJobExecutionsForThing for details on how to use this API operation.
14373//
14374// The context must be non-nil and will be used for request cancellation. If
14375// the context is nil a panic will occur. In the future the SDK may create
14376// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14377// for more information on using Contexts.
14378func (c *IoT) ListJobExecutionsForThingWithContext(ctx aws.Context, input *ListJobExecutionsForThingInput, opts ...request.Option) (*ListJobExecutionsForThingOutput, error) {
14379	req, out := c.ListJobExecutionsForThingRequest(input)
14380	req.SetContext(ctx)
14381	req.ApplyOptions(opts...)
14382	return out, req.Send()
14383}
14384
14385// ListJobExecutionsForThingPages iterates over the pages of a ListJobExecutionsForThing operation,
14386// calling the "fn" function with the response data for each page. To stop
14387// iterating, return false from the fn function.
14388//
14389// See ListJobExecutionsForThing method for more information on how to use this operation.
14390//
14391// Note: This operation can generate multiple requests to a service.
14392//
14393//    // Example iterating over at most 3 pages of a ListJobExecutionsForThing operation.
14394//    pageNum := 0
14395//    err := client.ListJobExecutionsForThingPages(params,
14396//        func(page *iot.ListJobExecutionsForThingOutput, lastPage bool) bool {
14397//            pageNum++
14398//            fmt.Println(page)
14399//            return pageNum <= 3
14400//        })
14401//
14402func (c *IoT) ListJobExecutionsForThingPages(input *ListJobExecutionsForThingInput, fn func(*ListJobExecutionsForThingOutput, bool) bool) error {
14403	return c.ListJobExecutionsForThingPagesWithContext(aws.BackgroundContext(), input, fn)
14404}
14405
14406// ListJobExecutionsForThingPagesWithContext same as ListJobExecutionsForThingPages except
14407// it takes a Context and allows setting request options on the pages.
14408//
14409// The context must be non-nil and will be used for request cancellation. If
14410// the context is nil a panic will occur. In the future the SDK may create
14411// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14412// for more information on using Contexts.
14413func (c *IoT) ListJobExecutionsForThingPagesWithContext(ctx aws.Context, input *ListJobExecutionsForThingInput, fn func(*ListJobExecutionsForThingOutput, bool) bool, opts ...request.Option) error {
14414	p := request.Pagination{
14415		NewRequest: func() (*request.Request, error) {
14416			var inCpy *ListJobExecutionsForThingInput
14417			if input != nil {
14418				tmp := *input
14419				inCpy = &tmp
14420			}
14421			req, _ := c.ListJobExecutionsForThingRequest(inCpy)
14422			req.SetContext(ctx)
14423			req.ApplyOptions(opts...)
14424			return req, nil
14425		},
14426	}
14427
14428	for p.Next() {
14429		if !fn(p.Page().(*ListJobExecutionsForThingOutput), !p.HasNextPage()) {
14430			break
14431		}
14432	}
14433
14434	return p.Err()
14435}
14436
14437const opListJobTemplates = "ListJobTemplates"
14438
14439// ListJobTemplatesRequest generates a "aws/request.Request" representing the
14440// client's request for the ListJobTemplates operation. The "output" return
14441// value will be populated with the request's response once the request completes
14442// successfully.
14443//
14444// Use "Send" method on the returned Request to send the API call to the service.
14445// the "output" return value is not valid until after Send returns without error.
14446//
14447// See ListJobTemplates for more information on using the ListJobTemplates
14448// API call, and error handling.
14449//
14450// This method is useful when you want to inject custom logic or configuration
14451// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14452//
14453//
14454//    // Example sending a request using the ListJobTemplatesRequest method.
14455//    req, resp := client.ListJobTemplatesRequest(params)
14456//
14457//    err := req.Send()
14458//    if err == nil { // resp is now filled
14459//        fmt.Println(resp)
14460//    }
14461func (c *IoT) ListJobTemplatesRequest(input *ListJobTemplatesInput) (req *request.Request, output *ListJobTemplatesOutput) {
14462	op := &request.Operation{
14463		Name:       opListJobTemplates,
14464		HTTPMethod: "GET",
14465		HTTPPath:   "/job-templates",
14466	}
14467
14468	if input == nil {
14469		input = &ListJobTemplatesInput{}
14470	}
14471
14472	output = &ListJobTemplatesOutput{}
14473	req = c.newRequest(op, input, output)
14474	return
14475}
14476
14477// ListJobTemplates API operation for AWS IoT.
14478//
14479// Returns a list of job templates.
14480//
14481// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14482// with awserr.Error's Code and Message methods to get detailed information about
14483// the error.
14484//
14485// See the AWS API reference guide for AWS IoT's
14486// API operation ListJobTemplates for usage and error information.
14487//
14488// Returned Error Types:
14489//   * InvalidRequestException
14490//   The request is not valid.
14491//
14492//   * ThrottlingException
14493//   The rate exceeds the limit.
14494//
14495//   * InternalFailureException
14496//   An unexpected error has occurred.
14497//
14498func (c *IoT) ListJobTemplates(input *ListJobTemplatesInput) (*ListJobTemplatesOutput, error) {
14499	req, out := c.ListJobTemplatesRequest(input)
14500	return out, req.Send()
14501}
14502
14503// ListJobTemplatesWithContext is the same as ListJobTemplates with the addition of
14504// the ability to pass a context and additional request options.
14505//
14506// See ListJobTemplates for details on how to use this API operation.
14507//
14508// The context must be non-nil and will be used for request cancellation. If
14509// the context is nil a panic will occur. In the future the SDK may create
14510// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14511// for more information on using Contexts.
14512func (c *IoT) ListJobTemplatesWithContext(ctx aws.Context, input *ListJobTemplatesInput, opts ...request.Option) (*ListJobTemplatesOutput, error) {
14513	req, out := c.ListJobTemplatesRequest(input)
14514	req.SetContext(ctx)
14515	req.ApplyOptions(opts...)
14516	return out, req.Send()
14517}
14518
14519const opListJobs = "ListJobs"
14520
14521// ListJobsRequest generates a "aws/request.Request" representing the
14522// client's request for the ListJobs operation. The "output" return
14523// value will be populated with the request's response once the request completes
14524// successfully.
14525//
14526// Use "Send" method on the returned Request to send the API call to the service.
14527// the "output" return value is not valid until after Send returns without error.
14528//
14529// See ListJobs for more information on using the ListJobs
14530// API call, and error handling.
14531//
14532// This method is useful when you want to inject custom logic or configuration
14533// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14534//
14535//
14536//    // Example sending a request using the ListJobsRequest method.
14537//    req, resp := client.ListJobsRequest(params)
14538//
14539//    err := req.Send()
14540//    if err == nil { // resp is now filled
14541//        fmt.Println(resp)
14542//    }
14543func (c *IoT) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
14544	op := &request.Operation{
14545		Name:       opListJobs,
14546		HTTPMethod: "GET",
14547		HTTPPath:   "/jobs",
14548		Paginator: &request.Paginator{
14549			InputTokens:     []string{"nextToken"},
14550			OutputTokens:    []string{"nextToken"},
14551			LimitToken:      "maxResults",
14552			TruncationToken: "",
14553		},
14554	}
14555
14556	if input == nil {
14557		input = &ListJobsInput{}
14558	}
14559
14560	output = &ListJobsOutput{}
14561	req = c.newRequest(op, input, output)
14562	return
14563}
14564
14565// ListJobs API operation for AWS IoT.
14566//
14567// Lists jobs.
14568//
14569// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14570// with awserr.Error's Code and Message methods to get detailed information about
14571// the error.
14572//
14573// See the AWS API reference guide for AWS IoT's
14574// API operation ListJobs for usage and error information.
14575//
14576// Returned Error Types:
14577//   * InvalidRequestException
14578//   The request is not valid.
14579//
14580//   * ResourceNotFoundException
14581//   The specified resource does not exist.
14582//
14583//   * ThrottlingException
14584//   The rate exceeds the limit.
14585//
14586//   * ServiceUnavailableException
14587//   The service is temporarily unavailable.
14588//
14589func (c *IoT) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
14590	req, out := c.ListJobsRequest(input)
14591	return out, req.Send()
14592}
14593
14594// ListJobsWithContext is the same as ListJobs with the addition of
14595// the ability to pass a context and additional request options.
14596//
14597// See ListJobs for details on how to use this API operation.
14598//
14599// The context must be non-nil and will be used for request cancellation. If
14600// the context is nil a panic will occur. In the future the SDK may create
14601// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14602// for more information on using Contexts.
14603func (c *IoT) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
14604	req, out := c.ListJobsRequest(input)
14605	req.SetContext(ctx)
14606	req.ApplyOptions(opts...)
14607	return out, req.Send()
14608}
14609
14610// ListJobsPages iterates over the pages of a ListJobs operation,
14611// calling the "fn" function with the response data for each page. To stop
14612// iterating, return false from the fn function.
14613//
14614// See ListJobs method for more information on how to use this operation.
14615//
14616// Note: This operation can generate multiple requests to a service.
14617//
14618//    // Example iterating over at most 3 pages of a ListJobs operation.
14619//    pageNum := 0
14620//    err := client.ListJobsPages(params,
14621//        func(page *iot.ListJobsOutput, lastPage bool) bool {
14622//            pageNum++
14623//            fmt.Println(page)
14624//            return pageNum <= 3
14625//        })
14626//
14627func (c *IoT) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
14628	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
14629}
14630
14631// ListJobsPagesWithContext same as ListJobsPages except
14632// it takes a Context and allows setting request options on the pages.
14633//
14634// The context must be non-nil and will be used for request cancellation. If
14635// the context is nil a panic will occur. In the future the SDK may create
14636// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14637// for more information on using Contexts.
14638func (c *IoT) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
14639	p := request.Pagination{
14640		NewRequest: func() (*request.Request, error) {
14641			var inCpy *ListJobsInput
14642			if input != nil {
14643				tmp := *input
14644				inCpy = &tmp
14645			}
14646			req, _ := c.ListJobsRequest(inCpy)
14647			req.SetContext(ctx)
14648			req.ApplyOptions(opts...)
14649			return req, nil
14650		},
14651	}
14652
14653	for p.Next() {
14654		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
14655			break
14656		}
14657	}
14658
14659	return p.Err()
14660}
14661
14662const opListMitigationActions = "ListMitigationActions"
14663
14664// ListMitigationActionsRequest generates a "aws/request.Request" representing the
14665// client's request for the ListMitigationActions operation. The "output" return
14666// value will be populated with the request's response once the request completes
14667// successfully.
14668//
14669// Use "Send" method on the returned Request to send the API call to the service.
14670// the "output" return value is not valid until after Send returns without error.
14671//
14672// See ListMitigationActions for more information on using the ListMitigationActions
14673// API call, and error handling.
14674//
14675// This method is useful when you want to inject custom logic or configuration
14676// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14677//
14678//
14679//    // Example sending a request using the ListMitigationActionsRequest method.
14680//    req, resp := client.ListMitigationActionsRequest(params)
14681//
14682//    err := req.Send()
14683//    if err == nil { // resp is now filled
14684//        fmt.Println(resp)
14685//    }
14686func (c *IoT) ListMitigationActionsRequest(input *ListMitigationActionsInput) (req *request.Request, output *ListMitigationActionsOutput) {
14687	op := &request.Operation{
14688		Name:       opListMitigationActions,
14689		HTTPMethod: "GET",
14690		HTTPPath:   "/mitigationactions/actions",
14691		Paginator: &request.Paginator{
14692			InputTokens:     []string{"nextToken"},
14693			OutputTokens:    []string{"nextToken"},
14694			LimitToken:      "maxResults",
14695			TruncationToken: "",
14696		},
14697	}
14698
14699	if input == nil {
14700		input = &ListMitigationActionsInput{}
14701	}
14702
14703	output = &ListMitigationActionsOutput{}
14704	req = c.newRequest(op, input, output)
14705	return
14706}
14707
14708// ListMitigationActions API operation for AWS IoT.
14709//
14710// Gets a list of all mitigation actions that match the specified filter criteria.
14711//
14712// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14713// with awserr.Error's Code and Message methods to get detailed information about
14714// the error.
14715//
14716// See the AWS API reference guide for AWS IoT's
14717// API operation ListMitigationActions for usage and error information.
14718//
14719// Returned Error Types:
14720//   * InvalidRequestException
14721//   The request is not valid.
14722//
14723//   * ThrottlingException
14724//   The rate exceeds the limit.
14725//
14726//   * InternalFailureException
14727//   An unexpected error has occurred.
14728//
14729func (c *IoT) ListMitigationActions(input *ListMitigationActionsInput) (*ListMitigationActionsOutput, error) {
14730	req, out := c.ListMitigationActionsRequest(input)
14731	return out, req.Send()
14732}
14733
14734// ListMitigationActionsWithContext is the same as ListMitigationActions with the addition of
14735// the ability to pass a context and additional request options.
14736//
14737// See ListMitigationActions for details on how to use this API operation.
14738//
14739// The context must be non-nil and will be used for request cancellation. If
14740// the context is nil a panic will occur. In the future the SDK may create
14741// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14742// for more information on using Contexts.
14743func (c *IoT) ListMitigationActionsWithContext(ctx aws.Context, input *ListMitigationActionsInput, opts ...request.Option) (*ListMitigationActionsOutput, error) {
14744	req, out := c.ListMitigationActionsRequest(input)
14745	req.SetContext(ctx)
14746	req.ApplyOptions(opts...)
14747	return out, req.Send()
14748}
14749
14750// ListMitigationActionsPages iterates over the pages of a ListMitigationActions operation,
14751// calling the "fn" function with the response data for each page. To stop
14752// iterating, return false from the fn function.
14753//
14754// See ListMitigationActions method for more information on how to use this operation.
14755//
14756// Note: This operation can generate multiple requests to a service.
14757//
14758//    // Example iterating over at most 3 pages of a ListMitigationActions operation.
14759//    pageNum := 0
14760//    err := client.ListMitigationActionsPages(params,
14761//        func(page *iot.ListMitigationActionsOutput, lastPage bool) bool {
14762//            pageNum++
14763//            fmt.Println(page)
14764//            return pageNum <= 3
14765//        })
14766//
14767func (c *IoT) ListMitigationActionsPages(input *ListMitigationActionsInput, fn func(*ListMitigationActionsOutput, bool) bool) error {
14768	return c.ListMitigationActionsPagesWithContext(aws.BackgroundContext(), input, fn)
14769}
14770
14771// ListMitigationActionsPagesWithContext same as ListMitigationActionsPages except
14772// it takes a Context and allows setting request options on the pages.
14773//
14774// The context must be non-nil and will be used for request cancellation. If
14775// the context is nil a panic will occur. In the future the SDK may create
14776// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14777// for more information on using Contexts.
14778func (c *IoT) ListMitigationActionsPagesWithContext(ctx aws.Context, input *ListMitigationActionsInput, fn func(*ListMitigationActionsOutput, bool) bool, opts ...request.Option) error {
14779	p := request.Pagination{
14780		NewRequest: func() (*request.Request, error) {
14781			var inCpy *ListMitigationActionsInput
14782			if input != nil {
14783				tmp := *input
14784				inCpy = &tmp
14785			}
14786			req, _ := c.ListMitigationActionsRequest(inCpy)
14787			req.SetContext(ctx)
14788			req.ApplyOptions(opts...)
14789			return req, nil
14790		},
14791	}
14792
14793	for p.Next() {
14794		if !fn(p.Page().(*ListMitigationActionsOutput), !p.HasNextPage()) {
14795			break
14796		}
14797	}
14798
14799	return p.Err()
14800}
14801
14802const opListOTAUpdates = "ListOTAUpdates"
14803
14804// ListOTAUpdatesRequest generates a "aws/request.Request" representing the
14805// client's request for the ListOTAUpdates operation. The "output" return
14806// value will be populated with the request's response once the request completes
14807// successfully.
14808//
14809// Use "Send" method on the returned Request to send the API call to the service.
14810// the "output" return value is not valid until after Send returns without error.
14811//
14812// See ListOTAUpdates for more information on using the ListOTAUpdates
14813// API call, and error handling.
14814//
14815// This method is useful when you want to inject custom logic or configuration
14816// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14817//
14818//
14819//    // Example sending a request using the ListOTAUpdatesRequest method.
14820//    req, resp := client.ListOTAUpdatesRequest(params)
14821//
14822//    err := req.Send()
14823//    if err == nil { // resp is now filled
14824//        fmt.Println(resp)
14825//    }
14826func (c *IoT) ListOTAUpdatesRequest(input *ListOTAUpdatesInput) (req *request.Request, output *ListOTAUpdatesOutput) {
14827	op := &request.Operation{
14828		Name:       opListOTAUpdates,
14829		HTTPMethod: "GET",
14830		HTTPPath:   "/otaUpdates",
14831		Paginator: &request.Paginator{
14832			InputTokens:     []string{"nextToken"},
14833			OutputTokens:    []string{"nextToken"},
14834			LimitToken:      "maxResults",
14835			TruncationToken: "",
14836		},
14837	}
14838
14839	if input == nil {
14840		input = &ListOTAUpdatesInput{}
14841	}
14842
14843	output = &ListOTAUpdatesOutput{}
14844	req = c.newRequest(op, input, output)
14845	return
14846}
14847
14848// ListOTAUpdates API operation for AWS IoT.
14849//
14850// Lists OTA updates.
14851//
14852// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14853// with awserr.Error's Code and Message methods to get detailed information about
14854// the error.
14855//
14856// See the AWS API reference guide for AWS IoT's
14857// API operation ListOTAUpdates for usage and error information.
14858//
14859// Returned Error Types:
14860//   * InvalidRequestException
14861//   The request is not valid.
14862//
14863//   * ThrottlingException
14864//   The rate exceeds the limit.
14865//
14866//   * UnauthorizedException
14867//   You are not authorized to perform this operation.
14868//
14869//   * InternalFailureException
14870//   An unexpected error has occurred.
14871//
14872//   * ServiceUnavailableException
14873//   The service is temporarily unavailable.
14874//
14875func (c *IoT) ListOTAUpdates(input *ListOTAUpdatesInput) (*ListOTAUpdatesOutput, error) {
14876	req, out := c.ListOTAUpdatesRequest(input)
14877	return out, req.Send()
14878}
14879
14880// ListOTAUpdatesWithContext is the same as ListOTAUpdates with the addition of
14881// the ability to pass a context and additional request options.
14882//
14883// See ListOTAUpdates for details on how to use this API operation.
14884//
14885// The context must be non-nil and will be used for request cancellation. If
14886// the context is nil a panic will occur. In the future the SDK may create
14887// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14888// for more information on using Contexts.
14889func (c *IoT) ListOTAUpdatesWithContext(ctx aws.Context, input *ListOTAUpdatesInput, opts ...request.Option) (*ListOTAUpdatesOutput, error) {
14890	req, out := c.ListOTAUpdatesRequest(input)
14891	req.SetContext(ctx)
14892	req.ApplyOptions(opts...)
14893	return out, req.Send()
14894}
14895
14896// ListOTAUpdatesPages iterates over the pages of a ListOTAUpdates operation,
14897// calling the "fn" function with the response data for each page. To stop
14898// iterating, return false from the fn function.
14899//
14900// See ListOTAUpdates method for more information on how to use this operation.
14901//
14902// Note: This operation can generate multiple requests to a service.
14903//
14904//    // Example iterating over at most 3 pages of a ListOTAUpdates operation.
14905//    pageNum := 0
14906//    err := client.ListOTAUpdatesPages(params,
14907//        func(page *iot.ListOTAUpdatesOutput, lastPage bool) bool {
14908//            pageNum++
14909//            fmt.Println(page)
14910//            return pageNum <= 3
14911//        })
14912//
14913func (c *IoT) ListOTAUpdatesPages(input *ListOTAUpdatesInput, fn func(*ListOTAUpdatesOutput, bool) bool) error {
14914	return c.ListOTAUpdatesPagesWithContext(aws.BackgroundContext(), input, fn)
14915}
14916
14917// ListOTAUpdatesPagesWithContext same as ListOTAUpdatesPages except
14918// it takes a Context and allows setting request options on the pages.
14919//
14920// The context must be non-nil and will be used for request cancellation. If
14921// the context is nil a panic will occur. In the future the SDK may create
14922// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14923// for more information on using Contexts.
14924func (c *IoT) ListOTAUpdatesPagesWithContext(ctx aws.Context, input *ListOTAUpdatesInput, fn func(*ListOTAUpdatesOutput, bool) bool, opts ...request.Option) error {
14925	p := request.Pagination{
14926		NewRequest: func() (*request.Request, error) {
14927			var inCpy *ListOTAUpdatesInput
14928			if input != nil {
14929				tmp := *input
14930				inCpy = &tmp
14931			}
14932			req, _ := c.ListOTAUpdatesRequest(inCpy)
14933			req.SetContext(ctx)
14934			req.ApplyOptions(opts...)
14935			return req, nil
14936		},
14937	}
14938
14939	for p.Next() {
14940		if !fn(p.Page().(*ListOTAUpdatesOutput), !p.HasNextPage()) {
14941			break
14942		}
14943	}
14944
14945	return p.Err()
14946}
14947
14948const opListOutgoingCertificates = "ListOutgoingCertificates"
14949
14950// ListOutgoingCertificatesRequest generates a "aws/request.Request" representing the
14951// client's request for the ListOutgoingCertificates operation. The "output" return
14952// value will be populated with the request's response once the request completes
14953// successfully.
14954//
14955// Use "Send" method on the returned Request to send the API call to the service.
14956// the "output" return value is not valid until after Send returns without error.
14957//
14958// See ListOutgoingCertificates for more information on using the ListOutgoingCertificates
14959// API call, and error handling.
14960//
14961// This method is useful when you want to inject custom logic or configuration
14962// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14963//
14964//
14965//    // Example sending a request using the ListOutgoingCertificatesRequest method.
14966//    req, resp := client.ListOutgoingCertificatesRequest(params)
14967//
14968//    err := req.Send()
14969//    if err == nil { // resp is now filled
14970//        fmt.Println(resp)
14971//    }
14972func (c *IoT) ListOutgoingCertificatesRequest(input *ListOutgoingCertificatesInput) (req *request.Request, output *ListOutgoingCertificatesOutput) {
14973	op := &request.Operation{
14974		Name:       opListOutgoingCertificates,
14975		HTTPMethod: "GET",
14976		HTTPPath:   "/certificates-out-going",
14977		Paginator: &request.Paginator{
14978			InputTokens:     []string{"marker"},
14979			OutputTokens:    []string{"nextMarker"},
14980			LimitToken:      "pageSize",
14981			TruncationToken: "",
14982		},
14983	}
14984
14985	if input == nil {
14986		input = &ListOutgoingCertificatesInput{}
14987	}
14988
14989	output = &ListOutgoingCertificatesOutput{}
14990	req = c.newRequest(op, input, output)
14991	return
14992}
14993
14994// ListOutgoingCertificates API operation for AWS IoT.
14995//
14996// Lists certificates that are being transferred but not yet accepted.
14997//
14998// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14999// with awserr.Error's Code and Message methods to get detailed information about
15000// the error.
15001//
15002// See the AWS API reference guide for AWS IoT's
15003// API operation ListOutgoingCertificates for usage and error information.
15004//
15005// Returned Error Types:
15006//   * InvalidRequestException
15007//   The request is not valid.
15008//
15009//   * ThrottlingException
15010//   The rate exceeds the limit.
15011//
15012//   * UnauthorizedException
15013//   You are not authorized to perform this operation.
15014//
15015//   * ServiceUnavailableException
15016//   The service is temporarily unavailable.
15017//
15018//   * InternalFailureException
15019//   An unexpected error has occurred.
15020//
15021func (c *IoT) ListOutgoingCertificates(input *ListOutgoingCertificatesInput) (*ListOutgoingCertificatesOutput, error) {
15022	req, out := c.ListOutgoingCertificatesRequest(input)
15023	return out, req.Send()
15024}
15025
15026// ListOutgoingCertificatesWithContext is the same as ListOutgoingCertificates with the addition of
15027// the ability to pass a context and additional request options.
15028//
15029// See ListOutgoingCertificates for details on how to use this API operation.
15030//
15031// The context must be non-nil and will be used for request cancellation. If
15032// the context is nil a panic will occur. In the future the SDK may create
15033// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15034// for more information on using Contexts.
15035func (c *IoT) ListOutgoingCertificatesWithContext(ctx aws.Context, input *ListOutgoingCertificatesInput, opts ...request.Option) (*ListOutgoingCertificatesOutput, error) {
15036	req, out := c.ListOutgoingCertificatesRequest(input)
15037	req.SetContext(ctx)
15038	req.ApplyOptions(opts...)
15039	return out, req.Send()
15040}
15041
15042// ListOutgoingCertificatesPages iterates over the pages of a ListOutgoingCertificates operation,
15043// calling the "fn" function with the response data for each page. To stop
15044// iterating, return false from the fn function.
15045//
15046// See ListOutgoingCertificates method for more information on how to use this operation.
15047//
15048// Note: This operation can generate multiple requests to a service.
15049//
15050//    // Example iterating over at most 3 pages of a ListOutgoingCertificates operation.
15051//    pageNum := 0
15052//    err := client.ListOutgoingCertificatesPages(params,
15053//        func(page *iot.ListOutgoingCertificatesOutput, lastPage bool) bool {
15054//            pageNum++
15055//            fmt.Println(page)
15056//            return pageNum <= 3
15057//        })
15058//
15059func (c *IoT) ListOutgoingCertificatesPages(input *ListOutgoingCertificatesInput, fn func(*ListOutgoingCertificatesOutput, bool) bool) error {
15060	return c.ListOutgoingCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
15061}
15062
15063// ListOutgoingCertificatesPagesWithContext same as ListOutgoingCertificatesPages except
15064// it takes a Context and allows setting request options on the pages.
15065//
15066// The context must be non-nil and will be used for request cancellation. If
15067// the context is nil a panic will occur. In the future the SDK may create
15068// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15069// for more information on using Contexts.
15070func (c *IoT) ListOutgoingCertificatesPagesWithContext(ctx aws.Context, input *ListOutgoingCertificatesInput, fn func(*ListOutgoingCertificatesOutput, bool) bool, opts ...request.Option) error {
15071	p := request.Pagination{
15072		NewRequest: func() (*request.Request, error) {
15073			var inCpy *ListOutgoingCertificatesInput
15074			if input != nil {
15075				tmp := *input
15076				inCpy = &tmp
15077			}
15078			req, _ := c.ListOutgoingCertificatesRequest(inCpy)
15079			req.SetContext(ctx)
15080			req.ApplyOptions(opts...)
15081			return req, nil
15082		},
15083	}
15084
15085	for p.Next() {
15086		if !fn(p.Page().(*ListOutgoingCertificatesOutput), !p.HasNextPage()) {
15087			break
15088		}
15089	}
15090
15091	return p.Err()
15092}
15093
15094const opListPolicies = "ListPolicies"
15095
15096// ListPoliciesRequest generates a "aws/request.Request" representing the
15097// client's request for the ListPolicies operation. The "output" return
15098// value will be populated with the request's response once the request completes
15099// successfully.
15100//
15101// Use "Send" method on the returned Request to send the API call to the service.
15102// the "output" return value is not valid until after Send returns without error.
15103//
15104// See ListPolicies for more information on using the ListPolicies
15105// API call, and error handling.
15106//
15107// This method is useful when you want to inject custom logic or configuration
15108// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15109//
15110//
15111//    // Example sending a request using the ListPoliciesRequest method.
15112//    req, resp := client.ListPoliciesRequest(params)
15113//
15114//    err := req.Send()
15115//    if err == nil { // resp is now filled
15116//        fmt.Println(resp)
15117//    }
15118func (c *IoT) ListPoliciesRequest(input *ListPoliciesInput) (req *request.Request, output *ListPoliciesOutput) {
15119	op := &request.Operation{
15120		Name:       opListPolicies,
15121		HTTPMethod: "GET",
15122		HTTPPath:   "/policies",
15123		Paginator: &request.Paginator{
15124			InputTokens:     []string{"marker"},
15125			OutputTokens:    []string{"nextMarker"},
15126			LimitToken:      "pageSize",
15127			TruncationToken: "",
15128		},
15129	}
15130
15131	if input == nil {
15132		input = &ListPoliciesInput{}
15133	}
15134
15135	output = &ListPoliciesOutput{}
15136	req = c.newRequest(op, input, output)
15137	return
15138}
15139
15140// ListPolicies API operation for AWS IoT.
15141//
15142// Lists your policies.
15143//
15144// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15145// with awserr.Error's Code and Message methods to get detailed information about
15146// the error.
15147//
15148// See the AWS API reference guide for AWS IoT's
15149// API operation ListPolicies for usage and error information.
15150//
15151// Returned Error Types:
15152//   * InvalidRequestException
15153//   The request is not valid.
15154//
15155//   * ThrottlingException
15156//   The rate exceeds the limit.
15157//
15158//   * UnauthorizedException
15159//   You are not authorized to perform this operation.
15160//
15161//   * ServiceUnavailableException
15162//   The service is temporarily unavailable.
15163//
15164//   * InternalFailureException
15165//   An unexpected error has occurred.
15166//
15167func (c *IoT) ListPolicies(input *ListPoliciesInput) (*ListPoliciesOutput, error) {
15168	req, out := c.ListPoliciesRequest(input)
15169	return out, req.Send()
15170}
15171
15172// ListPoliciesWithContext is the same as ListPolicies with the addition of
15173// the ability to pass a context and additional request options.
15174//
15175// See ListPolicies for details on how to use this API operation.
15176//
15177// The context must be non-nil and will be used for request cancellation. If
15178// the context is nil a panic will occur. In the future the SDK may create
15179// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15180// for more information on using Contexts.
15181func (c *IoT) ListPoliciesWithContext(ctx aws.Context, input *ListPoliciesInput, opts ...request.Option) (*ListPoliciesOutput, error) {
15182	req, out := c.ListPoliciesRequest(input)
15183	req.SetContext(ctx)
15184	req.ApplyOptions(opts...)
15185	return out, req.Send()
15186}
15187
15188// ListPoliciesPages iterates over the pages of a ListPolicies operation,
15189// calling the "fn" function with the response data for each page. To stop
15190// iterating, return false from the fn function.
15191//
15192// See ListPolicies method for more information on how to use this operation.
15193//
15194// Note: This operation can generate multiple requests to a service.
15195//
15196//    // Example iterating over at most 3 pages of a ListPolicies operation.
15197//    pageNum := 0
15198//    err := client.ListPoliciesPages(params,
15199//        func(page *iot.ListPoliciesOutput, lastPage bool) bool {
15200//            pageNum++
15201//            fmt.Println(page)
15202//            return pageNum <= 3
15203//        })
15204//
15205func (c *IoT) ListPoliciesPages(input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool) error {
15206	return c.ListPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
15207}
15208
15209// ListPoliciesPagesWithContext same as ListPoliciesPages except
15210// it takes a Context and allows setting request options on the pages.
15211//
15212// The context must be non-nil and will be used for request cancellation. If
15213// the context is nil a panic will occur. In the future the SDK may create
15214// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15215// for more information on using Contexts.
15216func (c *IoT) ListPoliciesPagesWithContext(ctx aws.Context, input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool, opts ...request.Option) error {
15217	p := request.Pagination{
15218		NewRequest: func() (*request.Request, error) {
15219			var inCpy *ListPoliciesInput
15220			if input != nil {
15221				tmp := *input
15222				inCpy = &tmp
15223			}
15224			req, _ := c.ListPoliciesRequest(inCpy)
15225			req.SetContext(ctx)
15226			req.ApplyOptions(opts...)
15227			return req, nil
15228		},
15229	}
15230
15231	for p.Next() {
15232		if !fn(p.Page().(*ListPoliciesOutput), !p.HasNextPage()) {
15233			break
15234		}
15235	}
15236
15237	return p.Err()
15238}
15239
15240const opListPolicyPrincipals = "ListPolicyPrincipals"
15241
15242// ListPolicyPrincipalsRequest generates a "aws/request.Request" representing the
15243// client's request for the ListPolicyPrincipals operation. The "output" return
15244// value will be populated with the request's response once the request completes
15245// successfully.
15246//
15247// Use "Send" method on the returned Request to send the API call to the service.
15248// the "output" return value is not valid until after Send returns without error.
15249//
15250// See ListPolicyPrincipals for more information on using the ListPolicyPrincipals
15251// API call, and error handling.
15252//
15253// This method is useful when you want to inject custom logic or configuration
15254// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15255//
15256//
15257//    // Example sending a request using the ListPolicyPrincipalsRequest method.
15258//    req, resp := client.ListPolicyPrincipalsRequest(params)
15259//
15260//    err := req.Send()
15261//    if err == nil { // resp is now filled
15262//        fmt.Println(resp)
15263//    }
15264//
15265// Deprecated: ListPolicyPrincipals has been deprecated
15266func (c *IoT) ListPolicyPrincipalsRequest(input *ListPolicyPrincipalsInput) (req *request.Request, output *ListPolicyPrincipalsOutput) {
15267	if c.Client.Config.Logger != nil {
15268		c.Client.Config.Logger.Log("This operation, ListPolicyPrincipals, has been deprecated")
15269	}
15270	op := &request.Operation{
15271		Name:       opListPolicyPrincipals,
15272		HTTPMethod: "GET",
15273		HTTPPath:   "/policy-principals",
15274		Paginator: &request.Paginator{
15275			InputTokens:     []string{"marker"},
15276			OutputTokens:    []string{"nextMarker"},
15277			LimitToken:      "pageSize",
15278			TruncationToken: "",
15279		},
15280	}
15281
15282	if input == nil {
15283		input = &ListPolicyPrincipalsInput{}
15284	}
15285
15286	output = &ListPolicyPrincipalsOutput{}
15287	req = c.newRequest(op, input, output)
15288	return
15289}
15290
15291// ListPolicyPrincipals API operation for AWS IoT.
15292//
15293// Lists the principals associated with the specified policy.
15294//
15295// Note: This API is deprecated. Please use ListTargetsForPolicy instead.
15296//
15297// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15298// with awserr.Error's Code and Message methods to get detailed information about
15299// the error.
15300//
15301// See the AWS API reference guide for AWS IoT's
15302// API operation ListPolicyPrincipals for usage and error information.
15303//
15304// Returned Error Types:
15305//   * ResourceNotFoundException
15306//   The specified resource does not exist.
15307//
15308//   * InvalidRequestException
15309//   The request is not valid.
15310//
15311//   * ThrottlingException
15312//   The rate exceeds the limit.
15313//
15314//   * UnauthorizedException
15315//   You are not authorized to perform this operation.
15316//
15317//   * ServiceUnavailableException
15318//   The service is temporarily unavailable.
15319//
15320//   * InternalFailureException
15321//   An unexpected error has occurred.
15322//
15323//
15324// Deprecated: ListPolicyPrincipals has been deprecated
15325func (c *IoT) ListPolicyPrincipals(input *ListPolicyPrincipalsInput) (*ListPolicyPrincipalsOutput, error) {
15326	req, out := c.ListPolicyPrincipalsRequest(input)
15327	return out, req.Send()
15328}
15329
15330// ListPolicyPrincipalsWithContext is the same as ListPolicyPrincipals with the addition of
15331// the ability to pass a context and additional request options.
15332//
15333// See ListPolicyPrincipals for details on how to use this API operation.
15334//
15335// The context must be non-nil and will be used for request cancellation. If
15336// the context is nil a panic will occur. In the future the SDK may create
15337// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15338// for more information on using Contexts.
15339//
15340// Deprecated: ListPolicyPrincipalsWithContext has been deprecated
15341func (c *IoT) ListPolicyPrincipalsWithContext(ctx aws.Context, input *ListPolicyPrincipalsInput, opts ...request.Option) (*ListPolicyPrincipalsOutput, error) {
15342	req, out := c.ListPolicyPrincipalsRequest(input)
15343	req.SetContext(ctx)
15344	req.ApplyOptions(opts...)
15345	return out, req.Send()
15346}
15347
15348// ListPolicyPrincipalsPages iterates over the pages of a ListPolicyPrincipals operation,
15349// calling the "fn" function with the response data for each page. To stop
15350// iterating, return false from the fn function.
15351//
15352// See ListPolicyPrincipals method for more information on how to use this operation.
15353//
15354// Note: This operation can generate multiple requests to a service.
15355//
15356//    // Example iterating over at most 3 pages of a ListPolicyPrincipals operation.
15357//    pageNum := 0
15358//    err := client.ListPolicyPrincipalsPages(params,
15359//        func(page *iot.ListPolicyPrincipalsOutput, lastPage bool) bool {
15360//            pageNum++
15361//            fmt.Println(page)
15362//            return pageNum <= 3
15363//        })
15364//
15365//
15366// Deprecated: ListPolicyPrincipalsPages has been deprecated
15367func (c *IoT) ListPolicyPrincipalsPages(input *ListPolicyPrincipalsInput, fn func(*ListPolicyPrincipalsOutput, bool) bool) error {
15368	return c.ListPolicyPrincipalsPagesWithContext(aws.BackgroundContext(), input, fn)
15369}
15370
15371// ListPolicyPrincipalsPagesWithContext same as ListPolicyPrincipalsPages except
15372// it takes a Context and allows setting request options on the pages.
15373//
15374// The context must be non-nil and will be used for request cancellation. If
15375// the context is nil a panic will occur. In the future the SDK may create
15376// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15377// for more information on using Contexts.
15378//
15379// Deprecated: ListPolicyPrincipalsPagesWithContext has been deprecated
15380func (c *IoT) ListPolicyPrincipalsPagesWithContext(ctx aws.Context, input *ListPolicyPrincipalsInput, fn func(*ListPolicyPrincipalsOutput, bool) bool, opts ...request.Option) error {
15381	p := request.Pagination{
15382		NewRequest: func() (*request.Request, error) {
15383			var inCpy *ListPolicyPrincipalsInput
15384			if input != nil {
15385				tmp := *input
15386				inCpy = &tmp
15387			}
15388			req, _ := c.ListPolicyPrincipalsRequest(inCpy)
15389			req.SetContext(ctx)
15390			req.ApplyOptions(opts...)
15391			return req, nil
15392		},
15393	}
15394
15395	for p.Next() {
15396		if !fn(p.Page().(*ListPolicyPrincipalsOutput), !p.HasNextPage()) {
15397			break
15398		}
15399	}
15400
15401	return p.Err()
15402}
15403
15404const opListPolicyVersions = "ListPolicyVersions"
15405
15406// ListPolicyVersionsRequest generates a "aws/request.Request" representing the
15407// client's request for the ListPolicyVersions operation. The "output" return
15408// value will be populated with the request's response once the request completes
15409// successfully.
15410//
15411// Use "Send" method on the returned Request to send the API call to the service.
15412// the "output" return value is not valid until after Send returns without error.
15413//
15414// See ListPolicyVersions for more information on using the ListPolicyVersions
15415// API call, and error handling.
15416//
15417// This method is useful when you want to inject custom logic or configuration
15418// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15419//
15420//
15421//    // Example sending a request using the ListPolicyVersionsRequest method.
15422//    req, resp := client.ListPolicyVersionsRequest(params)
15423//
15424//    err := req.Send()
15425//    if err == nil { // resp is now filled
15426//        fmt.Println(resp)
15427//    }
15428func (c *IoT) ListPolicyVersionsRequest(input *ListPolicyVersionsInput) (req *request.Request, output *ListPolicyVersionsOutput) {
15429	op := &request.Operation{
15430		Name:       opListPolicyVersions,
15431		HTTPMethod: "GET",
15432		HTTPPath:   "/policies/{policyName}/version",
15433	}
15434
15435	if input == nil {
15436		input = &ListPolicyVersionsInput{}
15437	}
15438
15439	output = &ListPolicyVersionsOutput{}
15440	req = c.newRequest(op, input, output)
15441	return
15442}
15443
15444// ListPolicyVersions API operation for AWS IoT.
15445//
15446// Lists the versions of the specified policy and identifies the default version.
15447//
15448// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15449// with awserr.Error's Code and Message methods to get detailed information about
15450// the error.
15451//
15452// See the AWS API reference guide for AWS IoT's
15453// API operation ListPolicyVersions for usage and error information.
15454//
15455// Returned Error Types:
15456//   * ResourceNotFoundException
15457//   The specified resource does not exist.
15458//
15459//   * InvalidRequestException
15460//   The request is not valid.
15461//
15462//   * ThrottlingException
15463//   The rate exceeds the limit.
15464//
15465//   * UnauthorizedException
15466//   You are not authorized to perform this operation.
15467//
15468//   * ServiceUnavailableException
15469//   The service is temporarily unavailable.
15470//
15471//   * InternalFailureException
15472//   An unexpected error has occurred.
15473//
15474func (c *IoT) ListPolicyVersions(input *ListPolicyVersionsInput) (*ListPolicyVersionsOutput, error) {
15475	req, out := c.ListPolicyVersionsRequest(input)
15476	return out, req.Send()
15477}
15478
15479// ListPolicyVersionsWithContext is the same as ListPolicyVersions with the addition of
15480// the ability to pass a context and additional request options.
15481//
15482// See ListPolicyVersions for details on how to use this API operation.
15483//
15484// The context must be non-nil and will be used for request cancellation. If
15485// the context is nil a panic will occur. In the future the SDK may create
15486// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15487// for more information on using Contexts.
15488func (c *IoT) ListPolicyVersionsWithContext(ctx aws.Context, input *ListPolicyVersionsInput, opts ...request.Option) (*ListPolicyVersionsOutput, error) {
15489	req, out := c.ListPolicyVersionsRequest(input)
15490	req.SetContext(ctx)
15491	req.ApplyOptions(opts...)
15492	return out, req.Send()
15493}
15494
15495const opListPrincipalPolicies = "ListPrincipalPolicies"
15496
15497// ListPrincipalPoliciesRequest generates a "aws/request.Request" representing the
15498// client's request for the ListPrincipalPolicies operation. The "output" return
15499// value will be populated with the request's response once the request completes
15500// successfully.
15501//
15502// Use "Send" method on the returned Request to send the API call to the service.
15503// the "output" return value is not valid until after Send returns without error.
15504//
15505// See ListPrincipalPolicies for more information on using the ListPrincipalPolicies
15506// API call, and error handling.
15507//
15508// This method is useful when you want to inject custom logic or configuration
15509// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15510//
15511//
15512//    // Example sending a request using the ListPrincipalPoliciesRequest method.
15513//    req, resp := client.ListPrincipalPoliciesRequest(params)
15514//
15515//    err := req.Send()
15516//    if err == nil { // resp is now filled
15517//        fmt.Println(resp)
15518//    }
15519//
15520// Deprecated: ListPrincipalPolicies has been deprecated
15521func (c *IoT) ListPrincipalPoliciesRequest(input *ListPrincipalPoliciesInput) (req *request.Request, output *ListPrincipalPoliciesOutput) {
15522	if c.Client.Config.Logger != nil {
15523		c.Client.Config.Logger.Log("This operation, ListPrincipalPolicies, has been deprecated")
15524	}
15525	op := &request.Operation{
15526		Name:       opListPrincipalPolicies,
15527		HTTPMethod: "GET",
15528		HTTPPath:   "/principal-policies",
15529		Paginator: &request.Paginator{
15530			InputTokens:     []string{"marker"},
15531			OutputTokens:    []string{"nextMarker"},
15532			LimitToken:      "pageSize",
15533			TruncationToken: "",
15534		},
15535	}
15536
15537	if input == nil {
15538		input = &ListPrincipalPoliciesInput{}
15539	}
15540
15541	output = &ListPrincipalPoliciesOutput{}
15542	req = c.newRequest(op, input, output)
15543	return
15544}
15545
15546// ListPrincipalPolicies API operation for AWS IoT.
15547//
15548// Lists the policies attached to the specified principal. If you use an Cognito
15549// identity, the ID must be in AmazonCognito Identity format (https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html#API_GetCredentialsForIdentity_RequestSyntax).
15550//
15551// Note: This API is deprecated. Please use ListAttachedPolicies instead.
15552//
15553// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15554// with awserr.Error's Code and Message methods to get detailed information about
15555// the error.
15556//
15557// See the AWS API reference guide for AWS IoT's
15558// API operation ListPrincipalPolicies for usage and error information.
15559//
15560// Returned Error Types:
15561//   * ResourceNotFoundException
15562//   The specified resource does not exist.
15563//
15564//   * InvalidRequestException
15565//   The request is not valid.
15566//
15567//   * ThrottlingException
15568//   The rate exceeds the limit.
15569//
15570//   * UnauthorizedException
15571//   You are not authorized to perform this operation.
15572//
15573//   * ServiceUnavailableException
15574//   The service is temporarily unavailable.
15575//
15576//   * InternalFailureException
15577//   An unexpected error has occurred.
15578//
15579//
15580// Deprecated: ListPrincipalPolicies has been deprecated
15581func (c *IoT) ListPrincipalPolicies(input *ListPrincipalPoliciesInput) (*ListPrincipalPoliciesOutput, error) {
15582	req, out := c.ListPrincipalPoliciesRequest(input)
15583	return out, req.Send()
15584}
15585
15586// ListPrincipalPoliciesWithContext is the same as ListPrincipalPolicies with the addition of
15587// the ability to pass a context and additional request options.
15588//
15589// See ListPrincipalPolicies for details on how to use this API operation.
15590//
15591// The context must be non-nil and will be used for request cancellation. If
15592// the context is nil a panic will occur. In the future the SDK may create
15593// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15594// for more information on using Contexts.
15595//
15596// Deprecated: ListPrincipalPoliciesWithContext has been deprecated
15597func (c *IoT) ListPrincipalPoliciesWithContext(ctx aws.Context, input *ListPrincipalPoliciesInput, opts ...request.Option) (*ListPrincipalPoliciesOutput, error) {
15598	req, out := c.ListPrincipalPoliciesRequest(input)
15599	req.SetContext(ctx)
15600	req.ApplyOptions(opts...)
15601	return out, req.Send()
15602}
15603
15604// ListPrincipalPoliciesPages iterates over the pages of a ListPrincipalPolicies operation,
15605// calling the "fn" function with the response data for each page. To stop
15606// iterating, return false from the fn function.
15607//
15608// See ListPrincipalPolicies method for more information on how to use this operation.
15609//
15610// Note: This operation can generate multiple requests to a service.
15611//
15612//    // Example iterating over at most 3 pages of a ListPrincipalPolicies operation.
15613//    pageNum := 0
15614//    err := client.ListPrincipalPoliciesPages(params,
15615//        func(page *iot.ListPrincipalPoliciesOutput, lastPage bool) bool {
15616//            pageNum++
15617//            fmt.Println(page)
15618//            return pageNum <= 3
15619//        })
15620//
15621//
15622// Deprecated: ListPrincipalPoliciesPages has been deprecated
15623func (c *IoT) ListPrincipalPoliciesPages(input *ListPrincipalPoliciesInput, fn func(*ListPrincipalPoliciesOutput, bool) bool) error {
15624	return c.ListPrincipalPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
15625}
15626
15627// ListPrincipalPoliciesPagesWithContext same as ListPrincipalPoliciesPages except
15628// it takes a Context and allows setting request options on the pages.
15629//
15630// The context must be non-nil and will be used for request cancellation. If
15631// the context is nil a panic will occur. In the future the SDK may create
15632// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15633// for more information on using Contexts.
15634//
15635// Deprecated: ListPrincipalPoliciesPagesWithContext has been deprecated
15636func (c *IoT) ListPrincipalPoliciesPagesWithContext(ctx aws.Context, input *ListPrincipalPoliciesInput, fn func(*ListPrincipalPoliciesOutput, bool) bool, opts ...request.Option) error {
15637	p := request.Pagination{
15638		NewRequest: func() (*request.Request, error) {
15639			var inCpy *ListPrincipalPoliciesInput
15640			if input != nil {
15641				tmp := *input
15642				inCpy = &tmp
15643			}
15644			req, _ := c.ListPrincipalPoliciesRequest(inCpy)
15645			req.SetContext(ctx)
15646			req.ApplyOptions(opts...)
15647			return req, nil
15648		},
15649	}
15650
15651	for p.Next() {
15652		if !fn(p.Page().(*ListPrincipalPoliciesOutput), !p.HasNextPage()) {
15653			break
15654		}
15655	}
15656
15657	return p.Err()
15658}
15659
15660const opListPrincipalThings = "ListPrincipalThings"
15661
15662// ListPrincipalThingsRequest generates a "aws/request.Request" representing the
15663// client's request for the ListPrincipalThings operation. The "output" return
15664// value will be populated with the request's response once the request completes
15665// successfully.
15666//
15667// Use "Send" method on the returned Request to send the API call to the service.
15668// the "output" return value is not valid until after Send returns without error.
15669//
15670// See ListPrincipalThings for more information on using the ListPrincipalThings
15671// API call, and error handling.
15672//
15673// This method is useful when you want to inject custom logic or configuration
15674// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15675//
15676//
15677//    // Example sending a request using the ListPrincipalThingsRequest method.
15678//    req, resp := client.ListPrincipalThingsRequest(params)
15679//
15680//    err := req.Send()
15681//    if err == nil { // resp is now filled
15682//        fmt.Println(resp)
15683//    }
15684func (c *IoT) ListPrincipalThingsRequest(input *ListPrincipalThingsInput) (req *request.Request, output *ListPrincipalThingsOutput) {
15685	op := &request.Operation{
15686		Name:       opListPrincipalThings,
15687		HTTPMethod: "GET",
15688		HTTPPath:   "/principals/things",
15689		Paginator: &request.Paginator{
15690			InputTokens:     []string{"nextToken"},
15691			OutputTokens:    []string{"nextToken"},
15692			LimitToken:      "maxResults",
15693			TruncationToken: "",
15694		},
15695	}
15696
15697	if input == nil {
15698		input = &ListPrincipalThingsInput{}
15699	}
15700
15701	output = &ListPrincipalThingsOutput{}
15702	req = c.newRequest(op, input, output)
15703	return
15704}
15705
15706// ListPrincipalThings API operation for AWS IoT.
15707//
15708// Lists the things associated with the specified principal. A principal can
15709// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
15710// or federated identities.
15711//
15712// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15713// with awserr.Error's Code and Message methods to get detailed information about
15714// the error.
15715//
15716// See the AWS API reference guide for AWS IoT's
15717// API operation ListPrincipalThings for usage and error information.
15718//
15719// Returned Error Types:
15720//   * InvalidRequestException
15721//   The request is not valid.
15722//
15723//   * ThrottlingException
15724//   The rate exceeds the limit.
15725//
15726//   * UnauthorizedException
15727//   You are not authorized to perform this operation.
15728//
15729//   * ServiceUnavailableException
15730//   The service is temporarily unavailable.
15731//
15732//   * InternalFailureException
15733//   An unexpected error has occurred.
15734//
15735//   * ResourceNotFoundException
15736//   The specified resource does not exist.
15737//
15738func (c *IoT) ListPrincipalThings(input *ListPrincipalThingsInput) (*ListPrincipalThingsOutput, error) {
15739	req, out := c.ListPrincipalThingsRequest(input)
15740	return out, req.Send()
15741}
15742
15743// ListPrincipalThingsWithContext is the same as ListPrincipalThings with the addition of
15744// the ability to pass a context and additional request options.
15745//
15746// See ListPrincipalThings for details on how to use this API operation.
15747//
15748// The context must be non-nil and will be used for request cancellation. If
15749// the context is nil a panic will occur. In the future the SDK may create
15750// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15751// for more information on using Contexts.
15752func (c *IoT) ListPrincipalThingsWithContext(ctx aws.Context, input *ListPrincipalThingsInput, opts ...request.Option) (*ListPrincipalThingsOutput, error) {
15753	req, out := c.ListPrincipalThingsRequest(input)
15754	req.SetContext(ctx)
15755	req.ApplyOptions(opts...)
15756	return out, req.Send()
15757}
15758
15759// ListPrincipalThingsPages iterates over the pages of a ListPrincipalThings operation,
15760// calling the "fn" function with the response data for each page. To stop
15761// iterating, return false from the fn function.
15762//
15763// See ListPrincipalThings method for more information on how to use this operation.
15764//
15765// Note: This operation can generate multiple requests to a service.
15766//
15767//    // Example iterating over at most 3 pages of a ListPrincipalThings operation.
15768//    pageNum := 0
15769//    err := client.ListPrincipalThingsPages(params,
15770//        func(page *iot.ListPrincipalThingsOutput, lastPage bool) bool {
15771//            pageNum++
15772//            fmt.Println(page)
15773//            return pageNum <= 3
15774//        })
15775//
15776func (c *IoT) ListPrincipalThingsPages(input *ListPrincipalThingsInput, fn func(*ListPrincipalThingsOutput, bool) bool) error {
15777	return c.ListPrincipalThingsPagesWithContext(aws.BackgroundContext(), input, fn)
15778}
15779
15780// ListPrincipalThingsPagesWithContext same as ListPrincipalThingsPages except
15781// it takes a Context and allows setting request options on the pages.
15782//
15783// The context must be non-nil and will be used for request cancellation. If
15784// the context is nil a panic will occur. In the future the SDK may create
15785// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15786// for more information on using Contexts.
15787func (c *IoT) ListPrincipalThingsPagesWithContext(ctx aws.Context, input *ListPrincipalThingsInput, fn func(*ListPrincipalThingsOutput, bool) bool, opts ...request.Option) error {
15788	p := request.Pagination{
15789		NewRequest: func() (*request.Request, error) {
15790			var inCpy *ListPrincipalThingsInput
15791			if input != nil {
15792				tmp := *input
15793				inCpy = &tmp
15794			}
15795			req, _ := c.ListPrincipalThingsRequest(inCpy)
15796			req.SetContext(ctx)
15797			req.ApplyOptions(opts...)
15798			return req, nil
15799		},
15800	}
15801
15802	for p.Next() {
15803		if !fn(p.Page().(*ListPrincipalThingsOutput), !p.HasNextPage()) {
15804			break
15805		}
15806	}
15807
15808	return p.Err()
15809}
15810
15811const opListProvisioningTemplateVersions = "ListProvisioningTemplateVersions"
15812
15813// ListProvisioningTemplateVersionsRequest generates a "aws/request.Request" representing the
15814// client's request for the ListProvisioningTemplateVersions operation. The "output" return
15815// value will be populated with the request's response once the request completes
15816// successfully.
15817//
15818// Use "Send" method on the returned Request to send the API call to the service.
15819// the "output" return value is not valid until after Send returns without error.
15820//
15821// See ListProvisioningTemplateVersions for more information on using the ListProvisioningTemplateVersions
15822// API call, and error handling.
15823//
15824// This method is useful when you want to inject custom logic or configuration
15825// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15826//
15827//
15828//    // Example sending a request using the ListProvisioningTemplateVersionsRequest method.
15829//    req, resp := client.ListProvisioningTemplateVersionsRequest(params)
15830//
15831//    err := req.Send()
15832//    if err == nil { // resp is now filled
15833//        fmt.Println(resp)
15834//    }
15835func (c *IoT) ListProvisioningTemplateVersionsRequest(input *ListProvisioningTemplateVersionsInput) (req *request.Request, output *ListProvisioningTemplateVersionsOutput) {
15836	op := &request.Operation{
15837		Name:       opListProvisioningTemplateVersions,
15838		HTTPMethod: "GET",
15839		HTTPPath:   "/provisioning-templates/{templateName}/versions",
15840		Paginator: &request.Paginator{
15841			InputTokens:     []string{"nextToken"},
15842			OutputTokens:    []string{"nextToken"},
15843			LimitToken:      "maxResults",
15844			TruncationToken: "",
15845		},
15846	}
15847
15848	if input == nil {
15849		input = &ListProvisioningTemplateVersionsInput{}
15850	}
15851
15852	output = &ListProvisioningTemplateVersionsOutput{}
15853	req = c.newRequest(op, input, output)
15854	return
15855}
15856
15857// ListProvisioningTemplateVersions API operation for AWS IoT.
15858//
15859// A list of fleet provisioning template versions.
15860//
15861// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15862// with awserr.Error's Code and Message methods to get detailed information about
15863// the error.
15864//
15865// See the AWS API reference guide for AWS IoT's
15866// API operation ListProvisioningTemplateVersions for usage and error information.
15867//
15868// Returned Error Types:
15869//   * InternalFailureException
15870//   An unexpected error has occurred.
15871//
15872//   * InvalidRequestException
15873//   The request is not valid.
15874//
15875//   * ThrottlingException
15876//   The rate exceeds the limit.
15877//
15878//   * ResourceNotFoundException
15879//   The specified resource does not exist.
15880//
15881//   * UnauthorizedException
15882//   You are not authorized to perform this operation.
15883//
15884func (c *IoT) ListProvisioningTemplateVersions(input *ListProvisioningTemplateVersionsInput) (*ListProvisioningTemplateVersionsOutput, error) {
15885	req, out := c.ListProvisioningTemplateVersionsRequest(input)
15886	return out, req.Send()
15887}
15888
15889// ListProvisioningTemplateVersionsWithContext is the same as ListProvisioningTemplateVersions with the addition of
15890// the ability to pass a context and additional request options.
15891//
15892// See ListProvisioningTemplateVersions for details on how to use this API operation.
15893//
15894// The context must be non-nil and will be used for request cancellation. If
15895// the context is nil a panic will occur. In the future the SDK may create
15896// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15897// for more information on using Contexts.
15898func (c *IoT) ListProvisioningTemplateVersionsWithContext(ctx aws.Context, input *ListProvisioningTemplateVersionsInput, opts ...request.Option) (*ListProvisioningTemplateVersionsOutput, error) {
15899	req, out := c.ListProvisioningTemplateVersionsRequest(input)
15900	req.SetContext(ctx)
15901	req.ApplyOptions(opts...)
15902	return out, req.Send()
15903}
15904
15905// ListProvisioningTemplateVersionsPages iterates over the pages of a ListProvisioningTemplateVersions operation,
15906// calling the "fn" function with the response data for each page. To stop
15907// iterating, return false from the fn function.
15908//
15909// See ListProvisioningTemplateVersions method for more information on how to use this operation.
15910//
15911// Note: This operation can generate multiple requests to a service.
15912//
15913//    // Example iterating over at most 3 pages of a ListProvisioningTemplateVersions operation.
15914//    pageNum := 0
15915//    err := client.ListProvisioningTemplateVersionsPages(params,
15916//        func(page *iot.ListProvisioningTemplateVersionsOutput, lastPage bool) bool {
15917//            pageNum++
15918//            fmt.Println(page)
15919//            return pageNum <= 3
15920//        })
15921//
15922func (c *IoT) ListProvisioningTemplateVersionsPages(input *ListProvisioningTemplateVersionsInput, fn func(*ListProvisioningTemplateVersionsOutput, bool) bool) error {
15923	return c.ListProvisioningTemplateVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
15924}
15925
15926// ListProvisioningTemplateVersionsPagesWithContext same as ListProvisioningTemplateVersionsPages except
15927// it takes a Context and allows setting request options on the pages.
15928//
15929// The context must be non-nil and will be used for request cancellation. If
15930// the context is nil a panic will occur. In the future the SDK may create
15931// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15932// for more information on using Contexts.
15933func (c *IoT) ListProvisioningTemplateVersionsPagesWithContext(ctx aws.Context, input *ListProvisioningTemplateVersionsInput, fn func(*ListProvisioningTemplateVersionsOutput, bool) bool, opts ...request.Option) error {
15934	p := request.Pagination{
15935		NewRequest: func() (*request.Request, error) {
15936			var inCpy *ListProvisioningTemplateVersionsInput
15937			if input != nil {
15938				tmp := *input
15939				inCpy = &tmp
15940			}
15941			req, _ := c.ListProvisioningTemplateVersionsRequest(inCpy)
15942			req.SetContext(ctx)
15943			req.ApplyOptions(opts...)
15944			return req, nil
15945		},
15946	}
15947
15948	for p.Next() {
15949		if !fn(p.Page().(*ListProvisioningTemplateVersionsOutput), !p.HasNextPage()) {
15950			break
15951		}
15952	}
15953
15954	return p.Err()
15955}
15956
15957const opListProvisioningTemplates = "ListProvisioningTemplates"
15958
15959// ListProvisioningTemplatesRequest generates a "aws/request.Request" representing the
15960// client's request for the ListProvisioningTemplates operation. The "output" return
15961// value will be populated with the request's response once the request completes
15962// successfully.
15963//
15964// Use "Send" method on the returned Request to send the API call to the service.
15965// the "output" return value is not valid until after Send returns without error.
15966//
15967// See ListProvisioningTemplates for more information on using the ListProvisioningTemplates
15968// API call, and error handling.
15969//
15970// This method is useful when you want to inject custom logic or configuration
15971// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15972//
15973//
15974//    // Example sending a request using the ListProvisioningTemplatesRequest method.
15975//    req, resp := client.ListProvisioningTemplatesRequest(params)
15976//
15977//    err := req.Send()
15978//    if err == nil { // resp is now filled
15979//        fmt.Println(resp)
15980//    }
15981func (c *IoT) ListProvisioningTemplatesRequest(input *ListProvisioningTemplatesInput) (req *request.Request, output *ListProvisioningTemplatesOutput) {
15982	op := &request.Operation{
15983		Name:       opListProvisioningTemplates,
15984		HTTPMethod: "GET",
15985		HTTPPath:   "/provisioning-templates",
15986		Paginator: &request.Paginator{
15987			InputTokens:     []string{"nextToken"},
15988			OutputTokens:    []string{"nextToken"},
15989			LimitToken:      "maxResults",
15990			TruncationToken: "",
15991		},
15992	}
15993
15994	if input == nil {
15995		input = &ListProvisioningTemplatesInput{}
15996	}
15997
15998	output = &ListProvisioningTemplatesOutput{}
15999	req = c.newRequest(op, input, output)
16000	return
16001}
16002
16003// ListProvisioningTemplates API operation for AWS IoT.
16004//
16005// Lists the fleet provisioning templates in your AWS account.
16006//
16007// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16008// with awserr.Error's Code and Message methods to get detailed information about
16009// the error.
16010//
16011// See the AWS API reference guide for AWS IoT's
16012// API operation ListProvisioningTemplates for usage and error information.
16013//
16014// Returned Error Types:
16015//   * InternalFailureException
16016//   An unexpected error has occurred.
16017//
16018//   * InvalidRequestException
16019//   The request is not valid.
16020//
16021//   * ThrottlingException
16022//   The rate exceeds the limit.
16023//
16024//   * UnauthorizedException
16025//   You are not authorized to perform this operation.
16026//
16027func (c *IoT) ListProvisioningTemplates(input *ListProvisioningTemplatesInput) (*ListProvisioningTemplatesOutput, error) {
16028	req, out := c.ListProvisioningTemplatesRequest(input)
16029	return out, req.Send()
16030}
16031
16032// ListProvisioningTemplatesWithContext is the same as ListProvisioningTemplates with the addition of
16033// the ability to pass a context and additional request options.
16034//
16035// See ListProvisioningTemplates for details on how to use this API operation.
16036//
16037// The context must be non-nil and will be used for request cancellation. If
16038// the context is nil a panic will occur. In the future the SDK may create
16039// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16040// for more information on using Contexts.
16041func (c *IoT) ListProvisioningTemplatesWithContext(ctx aws.Context, input *ListProvisioningTemplatesInput, opts ...request.Option) (*ListProvisioningTemplatesOutput, error) {
16042	req, out := c.ListProvisioningTemplatesRequest(input)
16043	req.SetContext(ctx)
16044	req.ApplyOptions(opts...)
16045	return out, req.Send()
16046}
16047
16048// ListProvisioningTemplatesPages iterates over the pages of a ListProvisioningTemplates operation,
16049// calling the "fn" function with the response data for each page. To stop
16050// iterating, return false from the fn function.
16051//
16052// See ListProvisioningTemplates method for more information on how to use this operation.
16053//
16054// Note: This operation can generate multiple requests to a service.
16055//
16056//    // Example iterating over at most 3 pages of a ListProvisioningTemplates operation.
16057//    pageNum := 0
16058//    err := client.ListProvisioningTemplatesPages(params,
16059//        func(page *iot.ListProvisioningTemplatesOutput, lastPage bool) bool {
16060//            pageNum++
16061//            fmt.Println(page)
16062//            return pageNum <= 3
16063//        })
16064//
16065func (c *IoT) ListProvisioningTemplatesPages(input *ListProvisioningTemplatesInput, fn func(*ListProvisioningTemplatesOutput, bool) bool) error {
16066	return c.ListProvisioningTemplatesPagesWithContext(aws.BackgroundContext(), input, fn)
16067}
16068
16069// ListProvisioningTemplatesPagesWithContext same as ListProvisioningTemplatesPages except
16070// it takes a Context and allows setting request options on the pages.
16071//
16072// The context must be non-nil and will be used for request cancellation. If
16073// the context is nil a panic will occur. In the future the SDK may create
16074// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16075// for more information on using Contexts.
16076func (c *IoT) ListProvisioningTemplatesPagesWithContext(ctx aws.Context, input *ListProvisioningTemplatesInput, fn func(*ListProvisioningTemplatesOutput, bool) bool, opts ...request.Option) error {
16077	p := request.Pagination{
16078		NewRequest: func() (*request.Request, error) {
16079			var inCpy *ListProvisioningTemplatesInput
16080			if input != nil {
16081				tmp := *input
16082				inCpy = &tmp
16083			}
16084			req, _ := c.ListProvisioningTemplatesRequest(inCpy)
16085			req.SetContext(ctx)
16086			req.ApplyOptions(opts...)
16087			return req, nil
16088		},
16089	}
16090
16091	for p.Next() {
16092		if !fn(p.Page().(*ListProvisioningTemplatesOutput), !p.HasNextPage()) {
16093			break
16094		}
16095	}
16096
16097	return p.Err()
16098}
16099
16100const opListRoleAliases = "ListRoleAliases"
16101
16102// ListRoleAliasesRequest generates a "aws/request.Request" representing the
16103// client's request for the ListRoleAliases operation. The "output" return
16104// value will be populated with the request's response once the request completes
16105// successfully.
16106//
16107// Use "Send" method on the returned Request to send the API call to the service.
16108// the "output" return value is not valid until after Send returns without error.
16109//
16110// See ListRoleAliases for more information on using the ListRoleAliases
16111// API call, and error handling.
16112//
16113// This method is useful when you want to inject custom logic or configuration
16114// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16115//
16116//
16117//    // Example sending a request using the ListRoleAliasesRequest method.
16118//    req, resp := client.ListRoleAliasesRequest(params)
16119//
16120//    err := req.Send()
16121//    if err == nil { // resp is now filled
16122//        fmt.Println(resp)
16123//    }
16124func (c *IoT) ListRoleAliasesRequest(input *ListRoleAliasesInput) (req *request.Request, output *ListRoleAliasesOutput) {
16125	op := &request.Operation{
16126		Name:       opListRoleAliases,
16127		HTTPMethod: "GET",
16128		HTTPPath:   "/role-aliases",
16129		Paginator: &request.Paginator{
16130			InputTokens:     []string{"marker"},
16131			OutputTokens:    []string{"nextMarker"},
16132			LimitToken:      "pageSize",
16133			TruncationToken: "",
16134		},
16135	}
16136
16137	if input == nil {
16138		input = &ListRoleAliasesInput{}
16139	}
16140
16141	output = &ListRoleAliasesOutput{}
16142	req = c.newRequest(op, input, output)
16143	return
16144}
16145
16146// ListRoleAliases API operation for AWS IoT.
16147//
16148// Lists the role aliases registered in your account.
16149//
16150// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16151// with awserr.Error's Code and Message methods to get detailed information about
16152// the error.
16153//
16154// See the AWS API reference guide for AWS IoT's
16155// API operation ListRoleAliases for usage and error information.
16156//
16157// Returned Error Types:
16158//   * InvalidRequestException
16159//   The request is not valid.
16160//
16161//   * ThrottlingException
16162//   The rate exceeds the limit.
16163//
16164//   * UnauthorizedException
16165//   You are not authorized to perform this operation.
16166//
16167//   * ServiceUnavailableException
16168//   The service is temporarily unavailable.
16169//
16170//   * InternalFailureException
16171//   An unexpected error has occurred.
16172//
16173func (c *IoT) ListRoleAliases(input *ListRoleAliasesInput) (*ListRoleAliasesOutput, error) {
16174	req, out := c.ListRoleAliasesRequest(input)
16175	return out, req.Send()
16176}
16177
16178// ListRoleAliasesWithContext is the same as ListRoleAliases with the addition of
16179// the ability to pass a context and additional request options.
16180//
16181// See ListRoleAliases for details on how to use this API operation.
16182//
16183// The context must be non-nil and will be used for request cancellation. If
16184// the context is nil a panic will occur. In the future the SDK may create
16185// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16186// for more information on using Contexts.
16187func (c *IoT) ListRoleAliasesWithContext(ctx aws.Context, input *ListRoleAliasesInput, opts ...request.Option) (*ListRoleAliasesOutput, error) {
16188	req, out := c.ListRoleAliasesRequest(input)
16189	req.SetContext(ctx)
16190	req.ApplyOptions(opts...)
16191	return out, req.Send()
16192}
16193
16194// ListRoleAliasesPages iterates over the pages of a ListRoleAliases operation,
16195// calling the "fn" function with the response data for each page. To stop
16196// iterating, return false from the fn function.
16197//
16198// See ListRoleAliases method for more information on how to use this operation.
16199//
16200// Note: This operation can generate multiple requests to a service.
16201//
16202//    // Example iterating over at most 3 pages of a ListRoleAliases operation.
16203//    pageNum := 0
16204//    err := client.ListRoleAliasesPages(params,
16205//        func(page *iot.ListRoleAliasesOutput, lastPage bool) bool {
16206//            pageNum++
16207//            fmt.Println(page)
16208//            return pageNum <= 3
16209//        })
16210//
16211func (c *IoT) ListRoleAliasesPages(input *ListRoleAliasesInput, fn func(*ListRoleAliasesOutput, bool) bool) error {
16212	return c.ListRoleAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
16213}
16214
16215// ListRoleAliasesPagesWithContext same as ListRoleAliasesPages except
16216// it takes a Context and allows setting request options on the pages.
16217//
16218// The context must be non-nil and will be used for request cancellation. If
16219// the context is nil a panic will occur. In the future the SDK may create
16220// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16221// for more information on using Contexts.
16222func (c *IoT) ListRoleAliasesPagesWithContext(ctx aws.Context, input *ListRoleAliasesInput, fn func(*ListRoleAliasesOutput, bool) bool, opts ...request.Option) error {
16223	p := request.Pagination{
16224		NewRequest: func() (*request.Request, error) {
16225			var inCpy *ListRoleAliasesInput
16226			if input != nil {
16227				tmp := *input
16228				inCpy = &tmp
16229			}
16230			req, _ := c.ListRoleAliasesRequest(inCpy)
16231			req.SetContext(ctx)
16232			req.ApplyOptions(opts...)
16233			return req, nil
16234		},
16235	}
16236
16237	for p.Next() {
16238		if !fn(p.Page().(*ListRoleAliasesOutput), !p.HasNextPage()) {
16239			break
16240		}
16241	}
16242
16243	return p.Err()
16244}
16245
16246const opListScheduledAudits = "ListScheduledAudits"
16247
16248// ListScheduledAuditsRequest generates a "aws/request.Request" representing the
16249// client's request for the ListScheduledAudits operation. The "output" return
16250// value will be populated with the request's response once the request completes
16251// successfully.
16252//
16253// Use "Send" method on the returned Request to send the API call to the service.
16254// the "output" return value is not valid until after Send returns without error.
16255//
16256// See ListScheduledAudits for more information on using the ListScheduledAudits
16257// API call, and error handling.
16258//
16259// This method is useful when you want to inject custom logic or configuration
16260// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16261//
16262//
16263//    // Example sending a request using the ListScheduledAuditsRequest method.
16264//    req, resp := client.ListScheduledAuditsRequest(params)
16265//
16266//    err := req.Send()
16267//    if err == nil { // resp is now filled
16268//        fmt.Println(resp)
16269//    }
16270func (c *IoT) ListScheduledAuditsRequest(input *ListScheduledAuditsInput) (req *request.Request, output *ListScheduledAuditsOutput) {
16271	op := &request.Operation{
16272		Name:       opListScheduledAudits,
16273		HTTPMethod: "GET",
16274		HTTPPath:   "/audit/scheduledaudits",
16275		Paginator: &request.Paginator{
16276			InputTokens:     []string{"nextToken"},
16277			OutputTokens:    []string{"nextToken"},
16278			LimitToken:      "maxResults",
16279			TruncationToken: "",
16280		},
16281	}
16282
16283	if input == nil {
16284		input = &ListScheduledAuditsInput{}
16285	}
16286
16287	output = &ListScheduledAuditsOutput{}
16288	req = c.newRequest(op, input, output)
16289	return
16290}
16291
16292// ListScheduledAudits API operation for AWS IoT.
16293//
16294// Lists all of your scheduled audits.
16295//
16296// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16297// with awserr.Error's Code and Message methods to get detailed information about
16298// the error.
16299//
16300// See the AWS API reference guide for AWS IoT's
16301// API operation ListScheduledAudits for usage and error information.
16302//
16303// Returned Error Types:
16304//   * InvalidRequestException
16305//   The request is not valid.
16306//
16307//   * ThrottlingException
16308//   The rate exceeds the limit.
16309//
16310//   * InternalFailureException
16311//   An unexpected error has occurred.
16312//
16313func (c *IoT) ListScheduledAudits(input *ListScheduledAuditsInput) (*ListScheduledAuditsOutput, error) {
16314	req, out := c.ListScheduledAuditsRequest(input)
16315	return out, req.Send()
16316}
16317
16318// ListScheduledAuditsWithContext is the same as ListScheduledAudits with the addition of
16319// the ability to pass a context and additional request options.
16320//
16321// See ListScheduledAudits for details on how to use this API operation.
16322//
16323// The context must be non-nil and will be used for request cancellation. If
16324// the context is nil a panic will occur. In the future the SDK may create
16325// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16326// for more information on using Contexts.
16327func (c *IoT) ListScheduledAuditsWithContext(ctx aws.Context, input *ListScheduledAuditsInput, opts ...request.Option) (*ListScheduledAuditsOutput, error) {
16328	req, out := c.ListScheduledAuditsRequest(input)
16329	req.SetContext(ctx)
16330	req.ApplyOptions(opts...)
16331	return out, req.Send()
16332}
16333
16334// ListScheduledAuditsPages iterates over the pages of a ListScheduledAudits operation,
16335// calling the "fn" function with the response data for each page. To stop
16336// iterating, return false from the fn function.
16337//
16338// See ListScheduledAudits method for more information on how to use this operation.
16339//
16340// Note: This operation can generate multiple requests to a service.
16341//
16342//    // Example iterating over at most 3 pages of a ListScheduledAudits operation.
16343//    pageNum := 0
16344//    err := client.ListScheduledAuditsPages(params,
16345//        func(page *iot.ListScheduledAuditsOutput, lastPage bool) bool {
16346//            pageNum++
16347//            fmt.Println(page)
16348//            return pageNum <= 3
16349//        })
16350//
16351func (c *IoT) ListScheduledAuditsPages(input *ListScheduledAuditsInput, fn func(*ListScheduledAuditsOutput, bool) bool) error {
16352	return c.ListScheduledAuditsPagesWithContext(aws.BackgroundContext(), input, fn)
16353}
16354
16355// ListScheduledAuditsPagesWithContext same as ListScheduledAuditsPages except
16356// it takes a Context and allows setting request options on the pages.
16357//
16358// The context must be non-nil and will be used for request cancellation. If
16359// the context is nil a panic will occur. In the future the SDK may create
16360// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16361// for more information on using Contexts.
16362func (c *IoT) ListScheduledAuditsPagesWithContext(ctx aws.Context, input *ListScheduledAuditsInput, fn func(*ListScheduledAuditsOutput, bool) bool, opts ...request.Option) error {
16363	p := request.Pagination{
16364		NewRequest: func() (*request.Request, error) {
16365			var inCpy *ListScheduledAuditsInput
16366			if input != nil {
16367				tmp := *input
16368				inCpy = &tmp
16369			}
16370			req, _ := c.ListScheduledAuditsRequest(inCpy)
16371			req.SetContext(ctx)
16372			req.ApplyOptions(opts...)
16373			return req, nil
16374		},
16375	}
16376
16377	for p.Next() {
16378		if !fn(p.Page().(*ListScheduledAuditsOutput), !p.HasNextPage()) {
16379			break
16380		}
16381	}
16382
16383	return p.Err()
16384}
16385
16386const opListSecurityProfiles = "ListSecurityProfiles"
16387
16388// ListSecurityProfilesRequest generates a "aws/request.Request" representing the
16389// client's request for the ListSecurityProfiles operation. The "output" return
16390// value will be populated with the request's response once the request completes
16391// successfully.
16392//
16393// Use "Send" method on the returned Request to send the API call to the service.
16394// the "output" return value is not valid until after Send returns without error.
16395//
16396// See ListSecurityProfiles for more information on using the ListSecurityProfiles
16397// API call, and error handling.
16398//
16399// This method is useful when you want to inject custom logic or configuration
16400// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16401//
16402//
16403//    // Example sending a request using the ListSecurityProfilesRequest method.
16404//    req, resp := client.ListSecurityProfilesRequest(params)
16405//
16406//    err := req.Send()
16407//    if err == nil { // resp is now filled
16408//        fmt.Println(resp)
16409//    }
16410func (c *IoT) ListSecurityProfilesRequest(input *ListSecurityProfilesInput) (req *request.Request, output *ListSecurityProfilesOutput) {
16411	op := &request.Operation{
16412		Name:       opListSecurityProfiles,
16413		HTTPMethod: "GET",
16414		HTTPPath:   "/security-profiles",
16415		Paginator: &request.Paginator{
16416			InputTokens:     []string{"nextToken"},
16417			OutputTokens:    []string{"nextToken"},
16418			LimitToken:      "maxResults",
16419			TruncationToken: "",
16420		},
16421	}
16422
16423	if input == nil {
16424		input = &ListSecurityProfilesInput{}
16425	}
16426
16427	output = &ListSecurityProfilesOutput{}
16428	req = c.newRequest(op, input, output)
16429	return
16430}
16431
16432// ListSecurityProfiles API operation for AWS IoT.
16433//
16434// Lists the Device Defender security profiles you've created. You can filter
16435// security profiles by dimension or custom metric.
16436//
16437// dimensionName and metricName cannot be used in the same request.
16438//
16439// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16440// with awserr.Error's Code and Message methods to get detailed information about
16441// the error.
16442//
16443// See the AWS API reference guide for AWS IoT's
16444// API operation ListSecurityProfiles for usage and error information.
16445//
16446// Returned Error Types:
16447//   * InvalidRequestException
16448//   The request is not valid.
16449//
16450//   * ThrottlingException
16451//   The rate exceeds the limit.
16452//
16453//   * InternalFailureException
16454//   An unexpected error has occurred.
16455//
16456//   * ResourceNotFoundException
16457//   The specified resource does not exist.
16458//
16459func (c *IoT) ListSecurityProfiles(input *ListSecurityProfilesInput) (*ListSecurityProfilesOutput, error) {
16460	req, out := c.ListSecurityProfilesRequest(input)
16461	return out, req.Send()
16462}
16463
16464// ListSecurityProfilesWithContext is the same as ListSecurityProfiles with the addition of
16465// the ability to pass a context and additional request options.
16466//
16467// See ListSecurityProfiles for details on how to use this API operation.
16468//
16469// The context must be non-nil and will be used for request cancellation. If
16470// the context is nil a panic will occur. In the future the SDK may create
16471// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16472// for more information on using Contexts.
16473func (c *IoT) ListSecurityProfilesWithContext(ctx aws.Context, input *ListSecurityProfilesInput, opts ...request.Option) (*ListSecurityProfilesOutput, error) {
16474	req, out := c.ListSecurityProfilesRequest(input)
16475	req.SetContext(ctx)
16476	req.ApplyOptions(opts...)
16477	return out, req.Send()
16478}
16479
16480// ListSecurityProfilesPages iterates over the pages of a ListSecurityProfiles operation,
16481// calling the "fn" function with the response data for each page. To stop
16482// iterating, return false from the fn function.
16483//
16484// See ListSecurityProfiles method for more information on how to use this operation.
16485//
16486// Note: This operation can generate multiple requests to a service.
16487//
16488//    // Example iterating over at most 3 pages of a ListSecurityProfiles operation.
16489//    pageNum := 0
16490//    err := client.ListSecurityProfilesPages(params,
16491//        func(page *iot.ListSecurityProfilesOutput, lastPage bool) bool {
16492//            pageNum++
16493//            fmt.Println(page)
16494//            return pageNum <= 3
16495//        })
16496//
16497func (c *IoT) ListSecurityProfilesPages(input *ListSecurityProfilesInput, fn func(*ListSecurityProfilesOutput, bool) bool) error {
16498	return c.ListSecurityProfilesPagesWithContext(aws.BackgroundContext(), input, fn)
16499}
16500
16501// ListSecurityProfilesPagesWithContext same as ListSecurityProfilesPages except
16502// it takes a Context and allows setting request options on the pages.
16503//
16504// The context must be non-nil and will be used for request cancellation. If
16505// the context is nil a panic will occur. In the future the SDK may create
16506// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16507// for more information on using Contexts.
16508func (c *IoT) ListSecurityProfilesPagesWithContext(ctx aws.Context, input *ListSecurityProfilesInput, fn func(*ListSecurityProfilesOutput, bool) bool, opts ...request.Option) error {
16509	p := request.Pagination{
16510		NewRequest: func() (*request.Request, error) {
16511			var inCpy *ListSecurityProfilesInput
16512			if input != nil {
16513				tmp := *input
16514				inCpy = &tmp
16515			}
16516			req, _ := c.ListSecurityProfilesRequest(inCpy)
16517			req.SetContext(ctx)
16518			req.ApplyOptions(opts...)
16519			return req, nil
16520		},
16521	}
16522
16523	for p.Next() {
16524		if !fn(p.Page().(*ListSecurityProfilesOutput), !p.HasNextPage()) {
16525			break
16526		}
16527	}
16528
16529	return p.Err()
16530}
16531
16532const opListSecurityProfilesForTarget = "ListSecurityProfilesForTarget"
16533
16534// ListSecurityProfilesForTargetRequest generates a "aws/request.Request" representing the
16535// client's request for the ListSecurityProfilesForTarget operation. The "output" return
16536// value will be populated with the request's response once the request completes
16537// successfully.
16538//
16539// Use "Send" method on the returned Request to send the API call to the service.
16540// the "output" return value is not valid until after Send returns without error.
16541//
16542// See ListSecurityProfilesForTarget for more information on using the ListSecurityProfilesForTarget
16543// API call, and error handling.
16544//
16545// This method is useful when you want to inject custom logic or configuration
16546// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16547//
16548//
16549//    // Example sending a request using the ListSecurityProfilesForTargetRequest method.
16550//    req, resp := client.ListSecurityProfilesForTargetRequest(params)
16551//
16552//    err := req.Send()
16553//    if err == nil { // resp is now filled
16554//        fmt.Println(resp)
16555//    }
16556func (c *IoT) ListSecurityProfilesForTargetRequest(input *ListSecurityProfilesForTargetInput) (req *request.Request, output *ListSecurityProfilesForTargetOutput) {
16557	op := &request.Operation{
16558		Name:       opListSecurityProfilesForTarget,
16559		HTTPMethod: "GET",
16560		HTTPPath:   "/security-profiles-for-target",
16561		Paginator: &request.Paginator{
16562			InputTokens:     []string{"nextToken"},
16563			OutputTokens:    []string{"nextToken"},
16564			LimitToken:      "maxResults",
16565			TruncationToken: "",
16566		},
16567	}
16568
16569	if input == nil {
16570		input = &ListSecurityProfilesForTargetInput{}
16571	}
16572
16573	output = &ListSecurityProfilesForTargetOutput{}
16574	req = c.newRequest(op, input, output)
16575	return
16576}
16577
16578// ListSecurityProfilesForTarget API operation for AWS IoT.
16579//
16580// Lists the Device Defender security profiles attached to a target (thing group).
16581//
16582// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16583// with awserr.Error's Code and Message methods to get detailed information about
16584// the error.
16585//
16586// See the AWS API reference guide for AWS IoT's
16587// API operation ListSecurityProfilesForTarget for usage and error information.
16588//
16589// Returned Error Types:
16590//   * InvalidRequestException
16591//   The request is not valid.
16592//
16593//   * ThrottlingException
16594//   The rate exceeds the limit.
16595//
16596//   * InternalFailureException
16597//   An unexpected error has occurred.
16598//
16599//   * ResourceNotFoundException
16600//   The specified resource does not exist.
16601//
16602func (c *IoT) ListSecurityProfilesForTarget(input *ListSecurityProfilesForTargetInput) (*ListSecurityProfilesForTargetOutput, error) {
16603	req, out := c.ListSecurityProfilesForTargetRequest(input)
16604	return out, req.Send()
16605}
16606
16607// ListSecurityProfilesForTargetWithContext is the same as ListSecurityProfilesForTarget with the addition of
16608// the ability to pass a context and additional request options.
16609//
16610// See ListSecurityProfilesForTarget for details on how to use this API operation.
16611//
16612// The context must be non-nil and will be used for request cancellation. If
16613// the context is nil a panic will occur. In the future the SDK may create
16614// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16615// for more information on using Contexts.
16616func (c *IoT) ListSecurityProfilesForTargetWithContext(ctx aws.Context, input *ListSecurityProfilesForTargetInput, opts ...request.Option) (*ListSecurityProfilesForTargetOutput, error) {
16617	req, out := c.ListSecurityProfilesForTargetRequest(input)
16618	req.SetContext(ctx)
16619	req.ApplyOptions(opts...)
16620	return out, req.Send()
16621}
16622
16623// ListSecurityProfilesForTargetPages iterates over the pages of a ListSecurityProfilesForTarget operation,
16624// calling the "fn" function with the response data for each page. To stop
16625// iterating, return false from the fn function.
16626//
16627// See ListSecurityProfilesForTarget method for more information on how to use this operation.
16628//
16629// Note: This operation can generate multiple requests to a service.
16630//
16631//    // Example iterating over at most 3 pages of a ListSecurityProfilesForTarget operation.
16632//    pageNum := 0
16633//    err := client.ListSecurityProfilesForTargetPages(params,
16634//        func(page *iot.ListSecurityProfilesForTargetOutput, lastPage bool) bool {
16635//            pageNum++
16636//            fmt.Println(page)
16637//            return pageNum <= 3
16638//        })
16639//
16640func (c *IoT) ListSecurityProfilesForTargetPages(input *ListSecurityProfilesForTargetInput, fn func(*ListSecurityProfilesForTargetOutput, bool) bool) error {
16641	return c.ListSecurityProfilesForTargetPagesWithContext(aws.BackgroundContext(), input, fn)
16642}
16643
16644// ListSecurityProfilesForTargetPagesWithContext same as ListSecurityProfilesForTargetPages except
16645// it takes a Context and allows setting request options on the pages.
16646//
16647// The context must be non-nil and will be used for request cancellation. If
16648// the context is nil a panic will occur. In the future the SDK may create
16649// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16650// for more information on using Contexts.
16651func (c *IoT) ListSecurityProfilesForTargetPagesWithContext(ctx aws.Context, input *ListSecurityProfilesForTargetInput, fn func(*ListSecurityProfilesForTargetOutput, bool) bool, opts ...request.Option) error {
16652	p := request.Pagination{
16653		NewRequest: func() (*request.Request, error) {
16654			var inCpy *ListSecurityProfilesForTargetInput
16655			if input != nil {
16656				tmp := *input
16657				inCpy = &tmp
16658			}
16659			req, _ := c.ListSecurityProfilesForTargetRequest(inCpy)
16660			req.SetContext(ctx)
16661			req.ApplyOptions(opts...)
16662			return req, nil
16663		},
16664	}
16665
16666	for p.Next() {
16667		if !fn(p.Page().(*ListSecurityProfilesForTargetOutput), !p.HasNextPage()) {
16668			break
16669		}
16670	}
16671
16672	return p.Err()
16673}
16674
16675const opListStreams = "ListStreams"
16676
16677// ListStreamsRequest generates a "aws/request.Request" representing the
16678// client's request for the ListStreams operation. The "output" return
16679// value will be populated with the request's response once the request completes
16680// successfully.
16681//
16682// Use "Send" method on the returned Request to send the API call to the service.
16683// the "output" return value is not valid until after Send returns without error.
16684//
16685// See ListStreams for more information on using the ListStreams
16686// API call, and error handling.
16687//
16688// This method is useful when you want to inject custom logic or configuration
16689// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16690//
16691//
16692//    // Example sending a request using the ListStreamsRequest method.
16693//    req, resp := client.ListStreamsRequest(params)
16694//
16695//    err := req.Send()
16696//    if err == nil { // resp is now filled
16697//        fmt.Println(resp)
16698//    }
16699func (c *IoT) ListStreamsRequest(input *ListStreamsInput) (req *request.Request, output *ListStreamsOutput) {
16700	op := &request.Operation{
16701		Name:       opListStreams,
16702		HTTPMethod: "GET",
16703		HTTPPath:   "/streams",
16704		Paginator: &request.Paginator{
16705			InputTokens:     []string{"nextToken"},
16706			OutputTokens:    []string{"nextToken"},
16707			LimitToken:      "maxResults",
16708			TruncationToken: "",
16709		},
16710	}
16711
16712	if input == nil {
16713		input = &ListStreamsInput{}
16714	}
16715
16716	output = &ListStreamsOutput{}
16717	req = c.newRequest(op, input, output)
16718	return
16719}
16720
16721// ListStreams API operation for AWS IoT.
16722//
16723// Lists all of the streams in your AWS account.
16724//
16725// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16726// with awserr.Error's Code and Message methods to get detailed information about
16727// the error.
16728//
16729// See the AWS API reference guide for AWS IoT's
16730// API operation ListStreams for usage and error information.
16731//
16732// Returned Error Types:
16733//   * InvalidRequestException
16734//   The request is not valid.
16735//
16736//   * ThrottlingException
16737//   The rate exceeds the limit.
16738//
16739//   * UnauthorizedException
16740//   You are not authorized to perform this operation.
16741//
16742//   * ServiceUnavailableException
16743//   The service is temporarily unavailable.
16744//
16745//   * InternalFailureException
16746//   An unexpected error has occurred.
16747//
16748func (c *IoT) ListStreams(input *ListStreamsInput) (*ListStreamsOutput, error) {
16749	req, out := c.ListStreamsRequest(input)
16750	return out, req.Send()
16751}
16752
16753// ListStreamsWithContext is the same as ListStreams with the addition of
16754// the ability to pass a context and additional request options.
16755//
16756// See ListStreams for details on how to use this API operation.
16757//
16758// The context must be non-nil and will be used for request cancellation. If
16759// the context is nil a panic will occur. In the future the SDK may create
16760// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16761// for more information on using Contexts.
16762func (c *IoT) ListStreamsWithContext(ctx aws.Context, input *ListStreamsInput, opts ...request.Option) (*ListStreamsOutput, error) {
16763	req, out := c.ListStreamsRequest(input)
16764	req.SetContext(ctx)
16765	req.ApplyOptions(opts...)
16766	return out, req.Send()
16767}
16768
16769// ListStreamsPages iterates over the pages of a ListStreams operation,
16770// calling the "fn" function with the response data for each page. To stop
16771// iterating, return false from the fn function.
16772//
16773// See ListStreams method for more information on how to use this operation.
16774//
16775// Note: This operation can generate multiple requests to a service.
16776//
16777//    // Example iterating over at most 3 pages of a ListStreams operation.
16778//    pageNum := 0
16779//    err := client.ListStreamsPages(params,
16780//        func(page *iot.ListStreamsOutput, lastPage bool) bool {
16781//            pageNum++
16782//            fmt.Println(page)
16783//            return pageNum <= 3
16784//        })
16785//
16786func (c *IoT) ListStreamsPages(input *ListStreamsInput, fn func(*ListStreamsOutput, bool) bool) error {
16787	return c.ListStreamsPagesWithContext(aws.BackgroundContext(), input, fn)
16788}
16789
16790// ListStreamsPagesWithContext same as ListStreamsPages except
16791// it takes a Context and allows setting request options on the pages.
16792//
16793// The context must be non-nil and will be used for request cancellation. If
16794// the context is nil a panic will occur. In the future the SDK may create
16795// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16796// for more information on using Contexts.
16797func (c *IoT) ListStreamsPagesWithContext(ctx aws.Context, input *ListStreamsInput, fn func(*ListStreamsOutput, bool) bool, opts ...request.Option) error {
16798	p := request.Pagination{
16799		NewRequest: func() (*request.Request, error) {
16800			var inCpy *ListStreamsInput
16801			if input != nil {
16802				tmp := *input
16803				inCpy = &tmp
16804			}
16805			req, _ := c.ListStreamsRequest(inCpy)
16806			req.SetContext(ctx)
16807			req.ApplyOptions(opts...)
16808			return req, nil
16809		},
16810	}
16811
16812	for p.Next() {
16813		if !fn(p.Page().(*ListStreamsOutput), !p.HasNextPage()) {
16814			break
16815		}
16816	}
16817
16818	return p.Err()
16819}
16820
16821const opListTagsForResource = "ListTagsForResource"
16822
16823// ListTagsForResourceRequest generates a "aws/request.Request" representing the
16824// client's request for the ListTagsForResource operation. The "output" return
16825// value will be populated with the request's response once the request completes
16826// successfully.
16827//
16828// Use "Send" method on the returned Request to send the API call to the service.
16829// the "output" return value is not valid until after Send returns without error.
16830//
16831// See ListTagsForResource for more information on using the ListTagsForResource
16832// API call, and error handling.
16833//
16834// This method is useful when you want to inject custom logic or configuration
16835// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16836//
16837//
16838//    // Example sending a request using the ListTagsForResourceRequest method.
16839//    req, resp := client.ListTagsForResourceRequest(params)
16840//
16841//    err := req.Send()
16842//    if err == nil { // resp is now filled
16843//        fmt.Println(resp)
16844//    }
16845func (c *IoT) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
16846	op := &request.Operation{
16847		Name:       opListTagsForResource,
16848		HTTPMethod: "GET",
16849		HTTPPath:   "/tags",
16850		Paginator: &request.Paginator{
16851			InputTokens:     []string{"nextToken"},
16852			OutputTokens:    []string{"nextToken"},
16853			LimitToken:      "",
16854			TruncationToken: "",
16855		},
16856	}
16857
16858	if input == nil {
16859		input = &ListTagsForResourceInput{}
16860	}
16861
16862	output = &ListTagsForResourceOutput{}
16863	req = c.newRequest(op, input, output)
16864	return
16865}
16866
16867// ListTagsForResource API operation for AWS IoT.
16868//
16869// Lists the tags (metadata) you have assigned to the resource.
16870//
16871// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16872// with awserr.Error's Code and Message methods to get detailed information about
16873// the error.
16874//
16875// See the AWS API reference guide for AWS IoT's
16876// API operation ListTagsForResource for usage and error information.
16877//
16878// Returned Error Types:
16879//   * InvalidRequestException
16880//   The request is not valid.
16881//
16882//   * InternalFailureException
16883//   An unexpected error has occurred.
16884//
16885//   * ResourceNotFoundException
16886//   The specified resource does not exist.
16887//
16888//   * ThrottlingException
16889//   The rate exceeds the limit.
16890//
16891func (c *IoT) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
16892	req, out := c.ListTagsForResourceRequest(input)
16893	return out, req.Send()
16894}
16895
16896// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
16897// the ability to pass a context and additional request options.
16898//
16899// See ListTagsForResource for details on how to use this API operation.
16900//
16901// The context must be non-nil and will be used for request cancellation. If
16902// the context is nil a panic will occur. In the future the SDK may create
16903// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16904// for more information on using Contexts.
16905func (c *IoT) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
16906	req, out := c.ListTagsForResourceRequest(input)
16907	req.SetContext(ctx)
16908	req.ApplyOptions(opts...)
16909	return out, req.Send()
16910}
16911
16912// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
16913// calling the "fn" function with the response data for each page. To stop
16914// iterating, return false from the fn function.
16915//
16916// See ListTagsForResource method for more information on how to use this operation.
16917//
16918// Note: This operation can generate multiple requests to a service.
16919//
16920//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
16921//    pageNum := 0
16922//    err := client.ListTagsForResourcePages(params,
16923//        func(page *iot.ListTagsForResourceOutput, lastPage bool) bool {
16924//            pageNum++
16925//            fmt.Println(page)
16926//            return pageNum <= 3
16927//        })
16928//
16929func (c *IoT) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
16930	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
16931}
16932
16933// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
16934// it takes a Context and allows setting request options on the pages.
16935//
16936// The context must be non-nil and will be used for request cancellation. If
16937// the context is nil a panic will occur. In the future the SDK may create
16938// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16939// for more information on using Contexts.
16940func (c *IoT) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
16941	p := request.Pagination{
16942		NewRequest: func() (*request.Request, error) {
16943			var inCpy *ListTagsForResourceInput
16944			if input != nil {
16945				tmp := *input
16946				inCpy = &tmp
16947			}
16948			req, _ := c.ListTagsForResourceRequest(inCpy)
16949			req.SetContext(ctx)
16950			req.ApplyOptions(opts...)
16951			return req, nil
16952		},
16953	}
16954
16955	for p.Next() {
16956		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
16957			break
16958		}
16959	}
16960
16961	return p.Err()
16962}
16963
16964const opListTargetsForPolicy = "ListTargetsForPolicy"
16965
16966// ListTargetsForPolicyRequest generates a "aws/request.Request" representing the
16967// client's request for the ListTargetsForPolicy operation. The "output" return
16968// value will be populated with the request's response once the request completes
16969// successfully.
16970//
16971// Use "Send" method on the returned Request to send the API call to the service.
16972// the "output" return value is not valid until after Send returns without error.
16973//
16974// See ListTargetsForPolicy for more information on using the ListTargetsForPolicy
16975// API call, and error handling.
16976//
16977// This method is useful when you want to inject custom logic or configuration
16978// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16979//
16980//
16981//    // Example sending a request using the ListTargetsForPolicyRequest method.
16982//    req, resp := client.ListTargetsForPolicyRequest(params)
16983//
16984//    err := req.Send()
16985//    if err == nil { // resp is now filled
16986//        fmt.Println(resp)
16987//    }
16988func (c *IoT) ListTargetsForPolicyRequest(input *ListTargetsForPolicyInput) (req *request.Request, output *ListTargetsForPolicyOutput) {
16989	op := &request.Operation{
16990		Name:       opListTargetsForPolicy,
16991		HTTPMethod: "POST",
16992		HTTPPath:   "/policy-targets/{policyName}",
16993		Paginator: &request.Paginator{
16994			InputTokens:     []string{"marker"},
16995			OutputTokens:    []string{"nextMarker"},
16996			LimitToken:      "pageSize",
16997			TruncationToken: "",
16998		},
16999	}
17000
17001	if input == nil {
17002		input = &ListTargetsForPolicyInput{}
17003	}
17004
17005	output = &ListTargetsForPolicyOutput{}
17006	req = c.newRequest(op, input, output)
17007	return
17008}
17009
17010// ListTargetsForPolicy API operation for AWS IoT.
17011//
17012// List targets for the specified policy.
17013//
17014// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17015// with awserr.Error's Code and Message methods to get detailed information about
17016// the error.
17017//
17018// See the AWS API reference guide for AWS IoT's
17019// API operation ListTargetsForPolicy for usage and error information.
17020//
17021// Returned Error Types:
17022//   * ResourceNotFoundException
17023//   The specified resource does not exist.
17024//
17025//   * InvalidRequestException
17026//   The request is not valid.
17027//
17028//   * ThrottlingException
17029//   The rate exceeds the limit.
17030//
17031//   * UnauthorizedException
17032//   You are not authorized to perform this operation.
17033//
17034//   * ServiceUnavailableException
17035//   The service is temporarily unavailable.
17036//
17037//   * InternalFailureException
17038//   An unexpected error has occurred.
17039//
17040//   * LimitExceededException
17041//   A limit has been exceeded.
17042//
17043func (c *IoT) ListTargetsForPolicy(input *ListTargetsForPolicyInput) (*ListTargetsForPolicyOutput, error) {
17044	req, out := c.ListTargetsForPolicyRequest(input)
17045	return out, req.Send()
17046}
17047
17048// ListTargetsForPolicyWithContext is the same as ListTargetsForPolicy with the addition of
17049// the ability to pass a context and additional request options.
17050//
17051// See ListTargetsForPolicy for details on how to use this API operation.
17052//
17053// The context must be non-nil and will be used for request cancellation. If
17054// the context is nil a panic will occur. In the future the SDK may create
17055// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17056// for more information on using Contexts.
17057func (c *IoT) ListTargetsForPolicyWithContext(ctx aws.Context, input *ListTargetsForPolicyInput, opts ...request.Option) (*ListTargetsForPolicyOutput, error) {
17058	req, out := c.ListTargetsForPolicyRequest(input)
17059	req.SetContext(ctx)
17060	req.ApplyOptions(opts...)
17061	return out, req.Send()
17062}
17063
17064// ListTargetsForPolicyPages iterates over the pages of a ListTargetsForPolicy operation,
17065// calling the "fn" function with the response data for each page. To stop
17066// iterating, return false from the fn function.
17067//
17068// See ListTargetsForPolicy method for more information on how to use this operation.
17069//
17070// Note: This operation can generate multiple requests to a service.
17071//
17072//    // Example iterating over at most 3 pages of a ListTargetsForPolicy operation.
17073//    pageNum := 0
17074//    err := client.ListTargetsForPolicyPages(params,
17075//        func(page *iot.ListTargetsForPolicyOutput, lastPage bool) bool {
17076//            pageNum++
17077//            fmt.Println(page)
17078//            return pageNum <= 3
17079//        })
17080//
17081func (c *IoT) ListTargetsForPolicyPages(input *ListTargetsForPolicyInput, fn func(*ListTargetsForPolicyOutput, bool) bool) error {
17082	return c.ListTargetsForPolicyPagesWithContext(aws.BackgroundContext(), input, fn)
17083}
17084
17085// ListTargetsForPolicyPagesWithContext same as ListTargetsForPolicyPages except
17086// it takes a Context and allows setting request options on the pages.
17087//
17088// The context must be non-nil and will be used for request cancellation. If
17089// the context is nil a panic will occur. In the future the SDK may create
17090// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17091// for more information on using Contexts.
17092func (c *IoT) ListTargetsForPolicyPagesWithContext(ctx aws.Context, input *ListTargetsForPolicyInput, fn func(*ListTargetsForPolicyOutput, bool) bool, opts ...request.Option) error {
17093	p := request.Pagination{
17094		NewRequest: func() (*request.Request, error) {
17095			var inCpy *ListTargetsForPolicyInput
17096			if input != nil {
17097				tmp := *input
17098				inCpy = &tmp
17099			}
17100			req, _ := c.ListTargetsForPolicyRequest(inCpy)
17101			req.SetContext(ctx)
17102			req.ApplyOptions(opts...)
17103			return req, nil
17104		},
17105	}
17106
17107	for p.Next() {
17108		if !fn(p.Page().(*ListTargetsForPolicyOutput), !p.HasNextPage()) {
17109			break
17110		}
17111	}
17112
17113	return p.Err()
17114}
17115
17116const opListTargetsForSecurityProfile = "ListTargetsForSecurityProfile"
17117
17118// ListTargetsForSecurityProfileRequest generates a "aws/request.Request" representing the
17119// client's request for the ListTargetsForSecurityProfile operation. The "output" return
17120// value will be populated with the request's response once the request completes
17121// successfully.
17122//
17123// Use "Send" method on the returned Request to send the API call to the service.
17124// the "output" return value is not valid until after Send returns without error.
17125//
17126// See ListTargetsForSecurityProfile for more information on using the ListTargetsForSecurityProfile
17127// API call, and error handling.
17128//
17129// This method is useful when you want to inject custom logic or configuration
17130// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17131//
17132//
17133//    // Example sending a request using the ListTargetsForSecurityProfileRequest method.
17134//    req, resp := client.ListTargetsForSecurityProfileRequest(params)
17135//
17136//    err := req.Send()
17137//    if err == nil { // resp is now filled
17138//        fmt.Println(resp)
17139//    }
17140func (c *IoT) ListTargetsForSecurityProfileRequest(input *ListTargetsForSecurityProfileInput) (req *request.Request, output *ListTargetsForSecurityProfileOutput) {
17141	op := &request.Operation{
17142		Name:       opListTargetsForSecurityProfile,
17143		HTTPMethod: "GET",
17144		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
17145		Paginator: &request.Paginator{
17146			InputTokens:     []string{"nextToken"},
17147			OutputTokens:    []string{"nextToken"},
17148			LimitToken:      "maxResults",
17149			TruncationToken: "",
17150		},
17151	}
17152
17153	if input == nil {
17154		input = &ListTargetsForSecurityProfileInput{}
17155	}
17156
17157	output = &ListTargetsForSecurityProfileOutput{}
17158	req = c.newRequest(op, input, output)
17159	return
17160}
17161
17162// ListTargetsForSecurityProfile API operation for AWS IoT.
17163//
17164// Lists the targets (thing groups) associated with a given Device Defender
17165// security profile.
17166//
17167// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17168// with awserr.Error's Code and Message methods to get detailed information about
17169// the error.
17170//
17171// See the AWS API reference guide for AWS IoT's
17172// API operation ListTargetsForSecurityProfile for usage and error information.
17173//
17174// Returned Error Types:
17175//   * InvalidRequestException
17176//   The request is not valid.
17177//
17178//   * ResourceNotFoundException
17179//   The specified resource does not exist.
17180//
17181//   * ThrottlingException
17182//   The rate exceeds the limit.
17183//
17184//   * InternalFailureException
17185//   An unexpected error has occurred.
17186//
17187func (c *IoT) ListTargetsForSecurityProfile(input *ListTargetsForSecurityProfileInput) (*ListTargetsForSecurityProfileOutput, error) {
17188	req, out := c.ListTargetsForSecurityProfileRequest(input)
17189	return out, req.Send()
17190}
17191
17192// ListTargetsForSecurityProfileWithContext is the same as ListTargetsForSecurityProfile with the addition of
17193// the ability to pass a context and additional request options.
17194//
17195// See ListTargetsForSecurityProfile for details on how to use this API operation.
17196//
17197// The context must be non-nil and will be used for request cancellation. If
17198// the context is nil a panic will occur. In the future the SDK may create
17199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17200// for more information on using Contexts.
17201func (c *IoT) ListTargetsForSecurityProfileWithContext(ctx aws.Context, input *ListTargetsForSecurityProfileInput, opts ...request.Option) (*ListTargetsForSecurityProfileOutput, error) {
17202	req, out := c.ListTargetsForSecurityProfileRequest(input)
17203	req.SetContext(ctx)
17204	req.ApplyOptions(opts...)
17205	return out, req.Send()
17206}
17207
17208// ListTargetsForSecurityProfilePages iterates over the pages of a ListTargetsForSecurityProfile operation,
17209// calling the "fn" function with the response data for each page. To stop
17210// iterating, return false from the fn function.
17211//
17212// See ListTargetsForSecurityProfile method for more information on how to use this operation.
17213//
17214// Note: This operation can generate multiple requests to a service.
17215//
17216//    // Example iterating over at most 3 pages of a ListTargetsForSecurityProfile operation.
17217//    pageNum := 0
17218//    err := client.ListTargetsForSecurityProfilePages(params,
17219//        func(page *iot.ListTargetsForSecurityProfileOutput, lastPage bool) bool {
17220//            pageNum++
17221//            fmt.Println(page)
17222//            return pageNum <= 3
17223//        })
17224//
17225func (c *IoT) ListTargetsForSecurityProfilePages(input *ListTargetsForSecurityProfileInput, fn func(*ListTargetsForSecurityProfileOutput, bool) bool) error {
17226	return c.ListTargetsForSecurityProfilePagesWithContext(aws.BackgroundContext(), input, fn)
17227}
17228
17229// ListTargetsForSecurityProfilePagesWithContext same as ListTargetsForSecurityProfilePages except
17230// it takes a Context and allows setting request options on the pages.
17231//
17232// The context must be non-nil and will be used for request cancellation. If
17233// the context is nil a panic will occur. In the future the SDK may create
17234// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17235// for more information on using Contexts.
17236func (c *IoT) ListTargetsForSecurityProfilePagesWithContext(ctx aws.Context, input *ListTargetsForSecurityProfileInput, fn func(*ListTargetsForSecurityProfileOutput, bool) bool, opts ...request.Option) error {
17237	p := request.Pagination{
17238		NewRequest: func() (*request.Request, error) {
17239			var inCpy *ListTargetsForSecurityProfileInput
17240			if input != nil {
17241				tmp := *input
17242				inCpy = &tmp
17243			}
17244			req, _ := c.ListTargetsForSecurityProfileRequest(inCpy)
17245			req.SetContext(ctx)
17246			req.ApplyOptions(opts...)
17247			return req, nil
17248		},
17249	}
17250
17251	for p.Next() {
17252		if !fn(p.Page().(*ListTargetsForSecurityProfileOutput), !p.HasNextPage()) {
17253			break
17254		}
17255	}
17256
17257	return p.Err()
17258}
17259
17260const opListThingGroups = "ListThingGroups"
17261
17262// ListThingGroupsRequest generates a "aws/request.Request" representing the
17263// client's request for the ListThingGroups operation. The "output" return
17264// value will be populated with the request's response once the request completes
17265// successfully.
17266//
17267// Use "Send" method on the returned Request to send the API call to the service.
17268// the "output" return value is not valid until after Send returns without error.
17269//
17270// See ListThingGroups for more information on using the ListThingGroups
17271// API call, and error handling.
17272//
17273// This method is useful when you want to inject custom logic or configuration
17274// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17275//
17276//
17277//    // Example sending a request using the ListThingGroupsRequest method.
17278//    req, resp := client.ListThingGroupsRequest(params)
17279//
17280//    err := req.Send()
17281//    if err == nil { // resp is now filled
17282//        fmt.Println(resp)
17283//    }
17284func (c *IoT) ListThingGroupsRequest(input *ListThingGroupsInput) (req *request.Request, output *ListThingGroupsOutput) {
17285	op := &request.Operation{
17286		Name:       opListThingGroups,
17287		HTTPMethod: "GET",
17288		HTTPPath:   "/thing-groups",
17289		Paginator: &request.Paginator{
17290			InputTokens:     []string{"nextToken"},
17291			OutputTokens:    []string{"nextToken"},
17292			LimitToken:      "maxResults",
17293			TruncationToken: "",
17294		},
17295	}
17296
17297	if input == nil {
17298		input = &ListThingGroupsInput{}
17299	}
17300
17301	output = &ListThingGroupsOutput{}
17302	req = c.newRequest(op, input, output)
17303	return
17304}
17305
17306// ListThingGroups API operation for AWS IoT.
17307//
17308// List the thing groups in your account.
17309//
17310// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17311// with awserr.Error's Code and Message methods to get detailed information about
17312// the error.
17313//
17314// See the AWS API reference guide for AWS IoT's
17315// API operation ListThingGroups for usage and error information.
17316//
17317// Returned Error Types:
17318//   * InvalidRequestException
17319//   The request is not valid.
17320//
17321//   * InternalFailureException
17322//   An unexpected error has occurred.
17323//
17324//   * ResourceNotFoundException
17325//   The specified resource does not exist.
17326//
17327//   * ThrottlingException
17328//   The rate exceeds the limit.
17329//
17330func (c *IoT) ListThingGroups(input *ListThingGroupsInput) (*ListThingGroupsOutput, error) {
17331	req, out := c.ListThingGroupsRequest(input)
17332	return out, req.Send()
17333}
17334
17335// ListThingGroupsWithContext is the same as ListThingGroups with the addition of
17336// the ability to pass a context and additional request options.
17337//
17338// See ListThingGroups for details on how to use this API operation.
17339//
17340// The context must be non-nil and will be used for request cancellation. If
17341// the context is nil a panic will occur. In the future the SDK may create
17342// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17343// for more information on using Contexts.
17344func (c *IoT) ListThingGroupsWithContext(ctx aws.Context, input *ListThingGroupsInput, opts ...request.Option) (*ListThingGroupsOutput, error) {
17345	req, out := c.ListThingGroupsRequest(input)
17346	req.SetContext(ctx)
17347	req.ApplyOptions(opts...)
17348	return out, req.Send()
17349}
17350
17351// ListThingGroupsPages iterates over the pages of a ListThingGroups operation,
17352// calling the "fn" function with the response data for each page. To stop
17353// iterating, return false from the fn function.
17354//
17355// See ListThingGroups method for more information on how to use this operation.
17356//
17357// Note: This operation can generate multiple requests to a service.
17358//
17359//    // Example iterating over at most 3 pages of a ListThingGroups operation.
17360//    pageNum := 0
17361//    err := client.ListThingGroupsPages(params,
17362//        func(page *iot.ListThingGroupsOutput, lastPage bool) bool {
17363//            pageNum++
17364//            fmt.Println(page)
17365//            return pageNum <= 3
17366//        })
17367//
17368func (c *IoT) ListThingGroupsPages(input *ListThingGroupsInput, fn func(*ListThingGroupsOutput, bool) bool) error {
17369	return c.ListThingGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
17370}
17371
17372// ListThingGroupsPagesWithContext same as ListThingGroupsPages except
17373// it takes a Context and allows setting request options on the pages.
17374//
17375// The context must be non-nil and will be used for request cancellation. If
17376// the context is nil a panic will occur. In the future the SDK may create
17377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17378// for more information on using Contexts.
17379func (c *IoT) ListThingGroupsPagesWithContext(ctx aws.Context, input *ListThingGroupsInput, fn func(*ListThingGroupsOutput, bool) bool, opts ...request.Option) error {
17380	p := request.Pagination{
17381		NewRequest: func() (*request.Request, error) {
17382			var inCpy *ListThingGroupsInput
17383			if input != nil {
17384				tmp := *input
17385				inCpy = &tmp
17386			}
17387			req, _ := c.ListThingGroupsRequest(inCpy)
17388			req.SetContext(ctx)
17389			req.ApplyOptions(opts...)
17390			return req, nil
17391		},
17392	}
17393
17394	for p.Next() {
17395		if !fn(p.Page().(*ListThingGroupsOutput), !p.HasNextPage()) {
17396			break
17397		}
17398	}
17399
17400	return p.Err()
17401}
17402
17403const opListThingGroupsForThing = "ListThingGroupsForThing"
17404
17405// ListThingGroupsForThingRequest generates a "aws/request.Request" representing the
17406// client's request for the ListThingGroupsForThing operation. The "output" return
17407// value will be populated with the request's response once the request completes
17408// successfully.
17409//
17410// Use "Send" method on the returned Request to send the API call to the service.
17411// the "output" return value is not valid until after Send returns without error.
17412//
17413// See ListThingGroupsForThing for more information on using the ListThingGroupsForThing
17414// API call, and error handling.
17415//
17416// This method is useful when you want to inject custom logic or configuration
17417// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17418//
17419//
17420//    // Example sending a request using the ListThingGroupsForThingRequest method.
17421//    req, resp := client.ListThingGroupsForThingRequest(params)
17422//
17423//    err := req.Send()
17424//    if err == nil { // resp is now filled
17425//        fmt.Println(resp)
17426//    }
17427func (c *IoT) ListThingGroupsForThingRequest(input *ListThingGroupsForThingInput) (req *request.Request, output *ListThingGroupsForThingOutput) {
17428	op := &request.Operation{
17429		Name:       opListThingGroupsForThing,
17430		HTTPMethod: "GET",
17431		HTTPPath:   "/things/{thingName}/thing-groups",
17432		Paginator: &request.Paginator{
17433			InputTokens:     []string{"nextToken"},
17434			OutputTokens:    []string{"nextToken"},
17435			LimitToken:      "maxResults",
17436			TruncationToken: "",
17437		},
17438	}
17439
17440	if input == nil {
17441		input = &ListThingGroupsForThingInput{}
17442	}
17443
17444	output = &ListThingGroupsForThingOutput{}
17445	req = c.newRequest(op, input, output)
17446	return
17447}
17448
17449// ListThingGroupsForThing API operation for AWS IoT.
17450//
17451// List the thing groups to which the specified thing belongs.
17452//
17453// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17454// with awserr.Error's Code and Message methods to get detailed information about
17455// the error.
17456//
17457// See the AWS API reference guide for AWS IoT's
17458// API operation ListThingGroupsForThing for usage and error information.
17459//
17460// Returned Error Types:
17461//   * InvalidRequestException
17462//   The request is not valid.
17463//
17464//   * InternalFailureException
17465//   An unexpected error has occurred.
17466//
17467//   * ResourceNotFoundException
17468//   The specified resource does not exist.
17469//
17470//   * ThrottlingException
17471//   The rate exceeds the limit.
17472//
17473func (c *IoT) ListThingGroupsForThing(input *ListThingGroupsForThingInput) (*ListThingGroupsForThingOutput, error) {
17474	req, out := c.ListThingGroupsForThingRequest(input)
17475	return out, req.Send()
17476}
17477
17478// ListThingGroupsForThingWithContext is the same as ListThingGroupsForThing with the addition of
17479// the ability to pass a context and additional request options.
17480//
17481// See ListThingGroupsForThing for details on how to use this API operation.
17482//
17483// The context must be non-nil and will be used for request cancellation. If
17484// the context is nil a panic will occur. In the future the SDK may create
17485// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17486// for more information on using Contexts.
17487func (c *IoT) ListThingGroupsForThingWithContext(ctx aws.Context, input *ListThingGroupsForThingInput, opts ...request.Option) (*ListThingGroupsForThingOutput, error) {
17488	req, out := c.ListThingGroupsForThingRequest(input)
17489	req.SetContext(ctx)
17490	req.ApplyOptions(opts...)
17491	return out, req.Send()
17492}
17493
17494// ListThingGroupsForThingPages iterates over the pages of a ListThingGroupsForThing operation,
17495// calling the "fn" function with the response data for each page. To stop
17496// iterating, return false from the fn function.
17497//
17498// See ListThingGroupsForThing method for more information on how to use this operation.
17499//
17500// Note: This operation can generate multiple requests to a service.
17501//
17502//    // Example iterating over at most 3 pages of a ListThingGroupsForThing operation.
17503//    pageNum := 0
17504//    err := client.ListThingGroupsForThingPages(params,
17505//        func(page *iot.ListThingGroupsForThingOutput, lastPage bool) bool {
17506//            pageNum++
17507//            fmt.Println(page)
17508//            return pageNum <= 3
17509//        })
17510//
17511func (c *IoT) ListThingGroupsForThingPages(input *ListThingGroupsForThingInput, fn func(*ListThingGroupsForThingOutput, bool) bool) error {
17512	return c.ListThingGroupsForThingPagesWithContext(aws.BackgroundContext(), input, fn)
17513}
17514
17515// ListThingGroupsForThingPagesWithContext same as ListThingGroupsForThingPages except
17516// it takes a Context and allows setting request options on the pages.
17517//
17518// The context must be non-nil and will be used for request cancellation. If
17519// the context is nil a panic will occur. In the future the SDK may create
17520// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17521// for more information on using Contexts.
17522func (c *IoT) ListThingGroupsForThingPagesWithContext(ctx aws.Context, input *ListThingGroupsForThingInput, fn func(*ListThingGroupsForThingOutput, bool) bool, opts ...request.Option) error {
17523	p := request.Pagination{
17524		NewRequest: func() (*request.Request, error) {
17525			var inCpy *ListThingGroupsForThingInput
17526			if input != nil {
17527				tmp := *input
17528				inCpy = &tmp
17529			}
17530			req, _ := c.ListThingGroupsForThingRequest(inCpy)
17531			req.SetContext(ctx)
17532			req.ApplyOptions(opts...)
17533			return req, nil
17534		},
17535	}
17536
17537	for p.Next() {
17538		if !fn(p.Page().(*ListThingGroupsForThingOutput), !p.HasNextPage()) {
17539			break
17540		}
17541	}
17542
17543	return p.Err()
17544}
17545
17546const opListThingPrincipals = "ListThingPrincipals"
17547
17548// ListThingPrincipalsRequest generates a "aws/request.Request" representing the
17549// client's request for the ListThingPrincipals operation. The "output" return
17550// value will be populated with the request's response once the request completes
17551// successfully.
17552//
17553// Use "Send" method on the returned Request to send the API call to the service.
17554// the "output" return value is not valid until after Send returns without error.
17555//
17556// See ListThingPrincipals for more information on using the ListThingPrincipals
17557// API call, and error handling.
17558//
17559// This method is useful when you want to inject custom logic or configuration
17560// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17561//
17562//
17563//    // Example sending a request using the ListThingPrincipalsRequest method.
17564//    req, resp := client.ListThingPrincipalsRequest(params)
17565//
17566//    err := req.Send()
17567//    if err == nil { // resp is now filled
17568//        fmt.Println(resp)
17569//    }
17570func (c *IoT) ListThingPrincipalsRequest(input *ListThingPrincipalsInput) (req *request.Request, output *ListThingPrincipalsOutput) {
17571	op := &request.Operation{
17572		Name:       opListThingPrincipals,
17573		HTTPMethod: "GET",
17574		HTTPPath:   "/things/{thingName}/principals",
17575		Paginator: &request.Paginator{
17576			InputTokens:     []string{"nextToken"},
17577			OutputTokens:    []string{"nextToken"},
17578			LimitToken:      "maxResults",
17579			TruncationToken: "",
17580		},
17581	}
17582
17583	if input == nil {
17584		input = &ListThingPrincipalsInput{}
17585	}
17586
17587	output = &ListThingPrincipalsOutput{}
17588	req = c.newRequest(op, input, output)
17589	return
17590}
17591
17592// ListThingPrincipals API operation for AWS IoT.
17593//
17594// Lists the principals associated with the specified thing. A principal can
17595// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
17596// or federated identities.
17597//
17598// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17599// with awserr.Error's Code and Message methods to get detailed information about
17600// the error.
17601//
17602// See the AWS API reference guide for AWS IoT's
17603// API operation ListThingPrincipals for usage and error information.
17604//
17605// Returned Error Types:
17606//   * InvalidRequestException
17607//   The request is not valid.
17608//
17609//   * ThrottlingException
17610//   The rate exceeds the limit.
17611//
17612//   * UnauthorizedException
17613//   You are not authorized to perform this operation.
17614//
17615//   * ServiceUnavailableException
17616//   The service is temporarily unavailable.
17617//
17618//   * InternalFailureException
17619//   An unexpected error has occurred.
17620//
17621//   * ResourceNotFoundException
17622//   The specified resource does not exist.
17623//
17624func (c *IoT) ListThingPrincipals(input *ListThingPrincipalsInput) (*ListThingPrincipalsOutput, error) {
17625	req, out := c.ListThingPrincipalsRequest(input)
17626	return out, req.Send()
17627}
17628
17629// ListThingPrincipalsWithContext is the same as ListThingPrincipals with the addition of
17630// the ability to pass a context and additional request options.
17631//
17632// See ListThingPrincipals for details on how to use this API operation.
17633//
17634// The context must be non-nil and will be used for request cancellation. If
17635// the context is nil a panic will occur. In the future the SDK may create
17636// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17637// for more information on using Contexts.
17638func (c *IoT) ListThingPrincipalsWithContext(ctx aws.Context, input *ListThingPrincipalsInput, opts ...request.Option) (*ListThingPrincipalsOutput, error) {
17639	req, out := c.ListThingPrincipalsRequest(input)
17640	req.SetContext(ctx)
17641	req.ApplyOptions(opts...)
17642	return out, req.Send()
17643}
17644
17645// ListThingPrincipalsPages iterates over the pages of a ListThingPrincipals operation,
17646// calling the "fn" function with the response data for each page. To stop
17647// iterating, return false from the fn function.
17648//
17649// See ListThingPrincipals method for more information on how to use this operation.
17650//
17651// Note: This operation can generate multiple requests to a service.
17652//
17653//    // Example iterating over at most 3 pages of a ListThingPrincipals operation.
17654//    pageNum := 0
17655//    err := client.ListThingPrincipalsPages(params,
17656//        func(page *iot.ListThingPrincipalsOutput, lastPage bool) bool {
17657//            pageNum++
17658//            fmt.Println(page)
17659//            return pageNum <= 3
17660//        })
17661//
17662func (c *IoT) ListThingPrincipalsPages(input *ListThingPrincipalsInput, fn func(*ListThingPrincipalsOutput, bool) bool) error {
17663	return c.ListThingPrincipalsPagesWithContext(aws.BackgroundContext(), input, fn)
17664}
17665
17666// ListThingPrincipalsPagesWithContext same as ListThingPrincipalsPages except
17667// it takes a Context and allows setting request options on the pages.
17668//
17669// The context must be non-nil and will be used for request cancellation. If
17670// the context is nil a panic will occur. In the future the SDK may create
17671// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17672// for more information on using Contexts.
17673func (c *IoT) ListThingPrincipalsPagesWithContext(ctx aws.Context, input *ListThingPrincipalsInput, fn func(*ListThingPrincipalsOutput, bool) bool, opts ...request.Option) error {
17674	p := request.Pagination{
17675		NewRequest: func() (*request.Request, error) {
17676			var inCpy *ListThingPrincipalsInput
17677			if input != nil {
17678				tmp := *input
17679				inCpy = &tmp
17680			}
17681			req, _ := c.ListThingPrincipalsRequest(inCpy)
17682			req.SetContext(ctx)
17683			req.ApplyOptions(opts...)
17684			return req, nil
17685		},
17686	}
17687
17688	for p.Next() {
17689		if !fn(p.Page().(*ListThingPrincipalsOutput), !p.HasNextPage()) {
17690			break
17691		}
17692	}
17693
17694	return p.Err()
17695}
17696
17697const opListThingRegistrationTaskReports = "ListThingRegistrationTaskReports"
17698
17699// ListThingRegistrationTaskReportsRequest generates a "aws/request.Request" representing the
17700// client's request for the ListThingRegistrationTaskReports operation. The "output" return
17701// value will be populated with the request's response once the request completes
17702// successfully.
17703//
17704// Use "Send" method on the returned Request to send the API call to the service.
17705// the "output" return value is not valid until after Send returns without error.
17706//
17707// See ListThingRegistrationTaskReports for more information on using the ListThingRegistrationTaskReports
17708// API call, and error handling.
17709//
17710// This method is useful when you want to inject custom logic or configuration
17711// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17712//
17713//
17714//    // Example sending a request using the ListThingRegistrationTaskReportsRequest method.
17715//    req, resp := client.ListThingRegistrationTaskReportsRequest(params)
17716//
17717//    err := req.Send()
17718//    if err == nil { // resp is now filled
17719//        fmt.Println(resp)
17720//    }
17721func (c *IoT) ListThingRegistrationTaskReportsRequest(input *ListThingRegistrationTaskReportsInput) (req *request.Request, output *ListThingRegistrationTaskReportsOutput) {
17722	op := &request.Operation{
17723		Name:       opListThingRegistrationTaskReports,
17724		HTTPMethod: "GET",
17725		HTTPPath:   "/thing-registration-tasks/{taskId}/reports",
17726		Paginator: &request.Paginator{
17727			InputTokens:     []string{"nextToken"},
17728			OutputTokens:    []string{"nextToken"},
17729			LimitToken:      "maxResults",
17730			TruncationToken: "",
17731		},
17732	}
17733
17734	if input == nil {
17735		input = &ListThingRegistrationTaskReportsInput{}
17736	}
17737
17738	output = &ListThingRegistrationTaskReportsOutput{}
17739	req = c.newRequest(op, input, output)
17740	return
17741}
17742
17743// ListThingRegistrationTaskReports API operation for AWS IoT.
17744//
17745// Information about the thing registration tasks.
17746//
17747// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17748// with awserr.Error's Code and Message methods to get detailed information about
17749// the error.
17750//
17751// See the AWS API reference guide for AWS IoT's
17752// API operation ListThingRegistrationTaskReports for usage and error information.
17753//
17754// Returned Error Types:
17755//   * InvalidRequestException
17756//   The request is not valid.
17757//
17758//   * ThrottlingException
17759//   The rate exceeds the limit.
17760//
17761//   * UnauthorizedException
17762//   You are not authorized to perform this operation.
17763//
17764//   * InternalFailureException
17765//   An unexpected error has occurred.
17766//
17767func (c *IoT) ListThingRegistrationTaskReports(input *ListThingRegistrationTaskReportsInput) (*ListThingRegistrationTaskReportsOutput, error) {
17768	req, out := c.ListThingRegistrationTaskReportsRequest(input)
17769	return out, req.Send()
17770}
17771
17772// ListThingRegistrationTaskReportsWithContext is the same as ListThingRegistrationTaskReports with the addition of
17773// the ability to pass a context and additional request options.
17774//
17775// See ListThingRegistrationTaskReports for details on how to use this API operation.
17776//
17777// The context must be non-nil and will be used for request cancellation. If
17778// the context is nil a panic will occur. In the future the SDK may create
17779// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17780// for more information on using Contexts.
17781func (c *IoT) ListThingRegistrationTaskReportsWithContext(ctx aws.Context, input *ListThingRegistrationTaskReportsInput, opts ...request.Option) (*ListThingRegistrationTaskReportsOutput, error) {
17782	req, out := c.ListThingRegistrationTaskReportsRequest(input)
17783	req.SetContext(ctx)
17784	req.ApplyOptions(opts...)
17785	return out, req.Send()
17786}
17787
17788// ListThingRegistrationTaskReportsPages iterates over the pages of a ListThingRegistrationTaskReports operation,
17789// calling the "fn" function with the response data for each page. To stop
17790// iterating, return false from the fn function.
17791//
17792// See ListThingRegistrationTaskReports method for more information on how to use this operation.
17793//
17794// Note: This operation can generate multiple requests to a service.
17795//
17796//    // Example iterating over at most 3 pages of a ListThingRegistrationTaskReports operation.
17797//    pageNum := 0
17798//    err := client.ListThingRegistrationTaskReportsPages(params,
17799//        func(page *iot.ListThingRegistrationTaskReportsOutput, lastPage bool) bool {
17800//            pageNum++
17801//            fmt.Println(page)
17802//            return pageNum <= 3
17803//        })
17804//
17805func (c *IoT) ListThingRegistrationTaskReportsPages(input *ListThingRegistrationTaskReportsInput, fn func(*ListThingRegistrationTaskReportsOutput, bool) bool) error {
17806	return c.ListThingRegistrationTaskReportsPagesWithContext(aws.BackgroundContext(), input, fn)
17807}
17808
17809// ListThingRegistrationTaskReportsPagesWithContext same as ListThingRegistrationTaskReportsPages except
17810// it takes a Context and allows setting request options on the pages.
17811//
17812// The context must be non-nil and will be used for request cancellation. If
17813// the context is nil a panic will occur. In the future the SDK may create
17814// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17815// for more information on using Contexts.
17816func (c *IoT) ListThingRegistrationTaskReportsPagesWithContext(ctx aws.Context, input *ListThingRegistrationTaskReportsInput, fn func(*ListThingRegistrationTaskReportsOutput, bool) bool, opts ...request.Option) error {
17817	p := request.Pagination{
17818		NewRequest: func() (*request.Request, error) {
17819			var inCpy *ListThingRegistrationTaskReportsInput
17820			if input != nil {
17821				tmp := *input
17822				inCpy = &tmp
17823			}
17824			req, _ := c.ListThingRegistrationTaskReportsRequest(inCpy)
17825			req.SetContext(ctx)
17826			req.ApplyOptions(opts...)
17827			return req, nil
17828		},
17829	}
17830
17831	for p.Next() {
17832		if !fn(p.Page().(*ListThingRegistrationTaskReportsOutput), !p.HasNextPage()) {
17833			break
17834		}
17835	}
17836
17837	return p.Err()
17838}
17839
17840const opListThingRegistrationTasks = "ListThingRegistrationTasks"
17841
17842// ListThingRegistrationTasksRequest generates a "aws/request.Request" representing the
17843// client's request for the ListThingRegistrationTasks operation. The "output" return
17844// value will be populated with the request's response once the request completes
17845// successfully.
17846//
17847// Use "Send" method on the returned Request to send the API call to the service.
17848// the "output" return value is not valid until after Send returns without error.
17849//
17850// See ListThingRegistrationTasks for more information on using the ListThingRegistrationTasks
17851// API call, and error handling.
17852//
17853// This method is useful when you want to inject custom logic or configuration
17854// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17855//
17856//
17857//    // Example sending a request using the ListThingRegistrationTasksRequest method.
17858//    req, resp := client.ListThingRegistrationTasksRequest(params)
17859//
17860//    err := req.Send()
17861//    if err == nil { // resp is now filled
17862//        fmt.Println(resp)
17863//    }
17864func (c *IoT) ListThingRegistrationTasksRequest(input *ListThingRegistrationTasksInput) (req *request.Request, output *ListThingRegistrationTasksOutput) {
17865	op := &request.Operation{
17866		Name:       opListThingRegistrationTasks,
17867		HTTPMethod: "GET",
17868		HTTPPath:   "/thing-registration-tasks",
17869		Paginator: &request.Paginator{
17870			InputTokens:     []string{"nextToken"},
17871			OutputTokens:    []string{"nextToken"},
17872			LimitToken:      "maxResults",
17873			TruncationToken: "",
17874		},
17875	}
17876
17877	if input == nil {
17878		input = &ListThingRegistrationTasksInput{}
17879	}
17880
17881	output = &ListThingRegistrationTasksOutput{}
17882	req = c.newRequest(op, input, output)
17883	return
17884}
17885
17886// ListThingRegistrationTasks API operation for AWS IoT.
17887//
17888// List bulk thing provisioning tasks.
17889//
17890// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17891// with awserr.Error's Code and Message methods to get detailed information about
17892// the error.
17893//
17894// See the AWS API reference guide for AWS IoT's
17895// API operation ListThingRegistrationTasks for usage and error information.
17896//
17897// Returned Error Types:
17898//   * InvalidRequestException
17899//   The request is not valid.
17900//
17901//   * ThrottlingException
17902//   The rate exceeds the limit.
17903//
17904//   * UnauthorizedException
17905//   You are not authorized to perform this operation.
17906//
17907//   * InternalFailureException
17908//   An unexpected error has occurred.
17909//
17910func (c *IoT) ListThingRegistrationTasks(input *ListThingRegistrationTasksInput) (*ListThingRegistrationTasksOutput, error) {
17911	req, out := c.ListThingRegistrationTasksRequest(input)
17912	return out, req.Send()
17913}
17914
17915// ListThingRegistrationTasksWithContext is the same as ListThingRegistrationTasks with the addition of
17916// the ability to pass a context and additional request options.
17917//
17918// See ListThingRegistrationTasks for details on how to use this API operation.
17919//
17920// The context must be non-nil and will be used for request cancellation. If
17921// the context is nil a panic will occur. In the future the SDK may create
17922// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17923// for more information on using Contexts.
17924func (c *IoT) ListThingRegistrationTasksWithContext(ctx aws.Context, input *ListThingRegistrationTasksInput, opts ...request.Option) (*ListThingRegistrationTasksOutput, error) {
17925	req, out := c.ListThingRegistrationTasksRequest(input)
17926	req.SetContext(ctx)
17927	req.ApplyOptions(opts...)
17928	return out, req.Send()
17929}
17930
17931// ListThingRegistrationTasksPages iterates over the pages of a ListThingRegistrationTasks operation,
17932// calling the "fn" function with the response data for each page. To stop
17933// iterating, return false from the fn function.
17934//
17935// See ListThingRegistrationTasks method for more information on how to use this operation.
17936//
17937// Note: This operation can generate multiple requests to a service.
17938//
17939//    // Example iterating over at most 3 pages of a ListThingRegistrationTasks operation.
17940//    pageNum := 0
17941//    err := client.ListThingRegistrationTasksPages(params,
17942//        func(page *iot.ListThingRegistrationTasksOutput, lastPage bool) bool {
17943//            pageNum++
17944//            fmt.Println(page)
17945//            return pageNum <= 3
17946//        })
17947//
17948func (c *IoT) ListThingRegistrationTasksPages(input *ListThingRegistrationTasksInput, fn func(*ListThingRegistrationTasksOutput, bool) bool) error {
17949	return c.ListThingRegistrationTasksPagesWithContext(aws.BackgroundContext(), input, fn)
17950}
17951
17952// ListThingRegistrationTasksPagesWithContext same as ListThingRegistrationTasksPages except
17953// it takes a Context and allows setting request options on the pages.
17954//
17955// The context must be non-nil and will be used for request cancellation. If
17956// the context is nil a panic will occur. In the future the SDK may create
17957// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17958// for more information on using Contexts.
17959func (c *IoT) ListThingRegistrationTasksPagesWithContext(ctx aws.Context, input *ListThingRegistrationTasksInput, fn func(*ListThingRegistrationTasksOutput, bool) bool, opts ...request.Option) error {
17960	p := request.Pagination{
17961		NewRequest: func() (*request.Request, error) {
17962			var inCpy *ListThingRegistrationTasksInput
17963			if input != nil {
17964				tmp := *input
17965				inCpy = &tmp
17966			}
17967			req, _ := c.ListThingRegistrationTasksRequest(inCpy)
17968			req.SetContext(ctx)
17969			req.ApplyOptions(opts...)
17970			return req, nil
17971		},
17972	}
17973
17974	for p.Next() {
17975		if !fn(p.Page().(*ListThingRegistrationTasksOutput), !p.HasNextPage()) {
17976			break
17977		}
17978	}
17979
17980	return p.Err()
17981}
17982
17983const opListThingTypes = "ListThingTypes"
17984
17985// ListThingTypesRequest generates a "aws/request.Request" representing the
17986// client's request for the ListThingTypes operation. The "output" return
17987// value will be populated with the request's response once the request completes
17988// successfully.
17989//
17990// Use "Send" method on the returned Request to send the API call to the service.
17991// the "output" return value is not valid until after Send returns without error.
17992//
17993// See ListThingTypes for more information on using the ListThingTypes
17994// API call, and error handling.
17995//
17996// This method is useful when you want to inject custom logic or configuration
17997// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17998//
17999//
18000//    // Example sending a request using the ListThingTypesRequest method.
18001//    req, resp := client.ListThingTypesRequest(params)
18002//
18003//    err := req.Send()
18004//    if err == nil { // resp is now filled
18005//        fmt.Println(resp)
18006//    }
18007func (c *IoT) ListThingTypesRequest(input *ListThingTypesInput) (req *request.Request, output *ListThingTypesOutput) {
18008	op := &request.Operation{
18009		Name:       opListThingTypes,
18010		HTTPMethod: "GET",
18011		HTTPPath:   "/thing-types",
18012		Paginator: &request.Paginator{
18013			InputTokens:     []string{"nextToken"},
18014			OutputTokens:    []string{"nextToken"},
18015			LimitToken:      "maxResults",
18016			TruncationToken: "",
18017		},
18018	}
18019
18020	if input == nil {
18021		input = &ListThingTypesInput{}
18022	}
18023
18024	output = &ListThingTypesOutput{}
18025	req = c.newRequest(op, input, output)
18026	return
18027}
18028
18029// ListThingTypes API operation for AWS IoT.
18030//
18031// Lists the existing thing types.
18032//
18033// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18034// with awserr.Error's Code and Message methods to get detailed information about
18035// the error.
18036//
18037// See the AWS API reference guide for AWS IoT's
18038// API operation ListThingTypes for usage and error information.
18039//
18040// Returned Error Types:
18041//   * InvalidRequestException
18042//   The request is not valid.
18043//
18044//   * ThrottlingException
18045//   The rate exceeds the limit.
18046//
18047//   * UnauthorizedException
18048//   You are not authorized to perform this operation.
18049//
18050//   * ServiceUnavailableException
18051//   The service is temporarily unavailable.
18052//
18053//   * InternalFailureException
18054//   An unexpected error has occurred.
18055//
18056func (c *IoT) ListThingTypes(input *ListThingTypesInput) (*ListThingTypesOutput, error) {
18057	req, out := c.ListThingTypesRequest(input)
18058	return out, req.Send()
18059}
18060
18061// ListThingTypesWithContext is the same as ListThingTypes with the addition of
18062// the ability to pass a context and additional request options.
18063//
18064// See ListThingTypes for details on how to use this API operation.
18065//
18066// The context must be non-nil and will be used for request cancellation. If
18067// the context is nil a panic will occur. In the future the SDK may create
18068// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18069// for more information on using Contexts.
18070func (c *IoT) ListThingTypesWithContext(ctx aws.Context, input *ListThingTypesInput, opts ...request.Option) (*ListThingTypesOutput, error) {
18071	req, out := c.ListThingTypesRequest(input)
18072	req.SetContext(ctx)
18073	req.ApplyOptions(opts...)
18074	return out, req.Send()
18075}
18076
18077// ListThingTypesPages iterates over the pages of a ListThingTypes operation,
18078// calling the "fn" function with the response data for each page. To stop
18079// iterating, return false from the fn function.
18080//
18081// See ListThingTypes method for more information on how to use this operation.
18082//
18083// Note: This operation can generate multiple requests to a service.
18084//
18085//    // Example iterating over at most 3 pages of a ListThingTypes operation.
18086//    pageNum := 0
18087//    err := client.ListThingTypesPages(params,
18088//        func(page *iot.ListThingTypesOutput, lastPage bool) bool {
18089//            pageNum++
18090//            fmt.Println(page)
18091//            return pageNum <= 3
18092//        })
18093//
18094func (c *IoT) ListThingTypesPages(input *ListThingTypesInput, fn func(*ListThingTypesOutput, bool) bool) error {
18095	return c.ListThingTypesPagesWithContext(aws.BackgroundContext(), input, fn)
18096}
18097
18098// ListThingTypesPagesWithContext same as ListThingTypesPages except
18099// it takes a Context and allows setting request options on the pages.
18100//
18101// The context must be non-nil and will be used for request cancellation. If
18102// the context is nil a panic will occur. In the future the SDK may create
18103// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18104// for more information on using Contexts.
18105func (c *IoT) ListThingTypesPagesWithContext(ctx aws.Context, input *ListThingTypesInput, fn func(*ListThingTypesOutput, bool) bool, opts ...request.Option) error {
18106	p := request.Pagination{
18107		NewRequest: func() (*request.Request, error) {
18108			var inCpy *ListThingTypesInput
18109			if input != nil {
18110				tmp := *input
18111				inCpy = &tmp
18112			}
18113			req, _ := c.ListThingTypesRequest(inCpy)
18114			req.SetContext(ctx)
18115			req.ApplyOptions(opts...)
18116			return req, nil
18117		},
18118	}
18119
18120	for p.Next() {
18121		if !fn(p.Page().(*ListThingTypesOutput), !p.HasNextPage()) {
18122			break
18123		}
18124	}
18125
18126	return p.Err()
18127}
18128
18129const opListThings = "ListThings"
18130
18131// ListThingsRequest generates a "aws/request.Request" representing the
18132// client's request for the ListThings operation. The "output" return
18133// value will be populated with the request's response once the request completes
18134// successfully.
18135//
18136// Use "Send" method on the returned Request to send the API call to the service.
18137// the "output" return value is not valid until after Send returns without error.
18138//
18139// See ListThings for more information on using the ListThings
18140// API call, and error handling.
18141//
18142// This method is useful when you want to inject custom logic or configuration
18143// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18144//
18145//
18146//    // Example sending a request using the ListThingsRequest method.
18147//    req, resp := client.ListThingsRequest(params)
18148//
18149//    err := req.Send()
18150//    if err == nil { // resp is now filled
18151//        fmt.Println(resp)
18152//    }
18153func (c *IoT) ListThingsRequest(input *ListThingsInput) (req *request.Request, output *ListThingsOutput) {
18154	op := &request.Operation{
18155		Name:       opListThings,
18156		HTTPMethod: "GET",
18157		HTTPPath:   "/things",
18158		Paginator: &request.Paginator{
18159			InputTokens:     []string{"nextToken"},
18160			OutputTokens:    []string{"nextToken"},
18161			LimitToken:      "maxResults",
18162			TruncationToken: "",
18163		},
18164	}
18165
18166	if input == nil {
18167		input = &ListThingsInput{}
18168	}
18169
18170	output = &ListThingsOutput{}
18171	req = c.newRequest(op, input, output)
18172	return
18173}
18174
18175// ListThings API operation for AWS IoT.
18176//
18177// Lists your things. Use the attributeName and attributeValue parameters to
18178// filter your things. For example, calling ListThings with attributeName=Color
18179// and attributeValue=Red retrieves all things in the registry that contain
18180// an attribute Color with the value Red.
18181//
18182// You will not be charged for calling this API if an Access denied error is
18183// returned. You will also not be charged if no attributes or pagination token
18184// was provided in request and no pagination token and no results were returned.
18185//
18186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18187// with awserr.Error's Code and Message methods to get detailed information about
18188// the error.
18189//
18190// See the AWS API reference guide for AWS IoT's
18191// API operation ListThings for usage and error information.
18192//
18193// Returned Error Types:
18194//   * InvalidRequestException
18195//   The request is not valid.
18196//
18197//   * ThrottlingException
18198//   The rate exceeds the limit.
18199//
18200//   * UnauthorizedException
18201//   You are not authorized to perform this operation.
18202//
18203//   * ServiceUnavailableException
18204//   The service is temporarily unavailable.
18205//
18206//   * InternalFailureException
18207//   An unexpected error has occurred.
18208//
18209func (c *IoT) ListThings(input *ListThingsInput) (*ListThingsOutput, error) {
18210	req, out := c.ListThingsRequest(input)
18211	return out, req.Send()
18212}
18213
18214// ListThingsWithContext is the same as ListThings with the addition of
18215// the ability to pass a context and additional request options.
18216//
18217// See ListThings for details on how to use this API operation.
18218//
18219// The context must be non-nil and will be used for request cancellation. If
18220// the context is nil a panic will occur. In the future the SDK may create
18221// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18222// for more information on using Contexts.
18223func (c *IoT) ListThingsWithContext(ctx aws.Context, input *ListThingsInput, opts ...request.Option) (*ListThingsOutput, error) {
18224	req, out := c.ListThingsRequest(input)
18225	req.SetContext(ctx)
18226	req.ApplyOptions(opts...)
18227	return out, req.Send()
18228}
18229
18230// ListThingsPages iterates over the pages of a ListThings operation,
18231// calling the "fn" function with the response data for each page. To stop
18232// iterating, return false from the fn function.
18233//
18234// See ListThings method for more information on how to use this operation.
18235//
18236// Note: This operation can generate multiple requests to a service.
18237//
18238//    // Example iterating over at most 3 pages of a ListThings operation.
18239//    pageNum := 0
18240//    err := client.ListThingsPages(params,
18241//        func(page *iot.ListThingsOutput, lastPage bool) bool {
18242//            pageNum++
18243//            fmt.Println(page)
18244//            return pageNum <= 3
18245//        })
18246//
18247func (c *IoT) ListThingsPages(input *ListThingsInput, fn func(*ListThingsOutput, bool) bool) error {
18248	return c.ListThingsPagesWithContext(aws.BackgroundContext(), input, fn)
18249}
18250
18251// ListThingsPagesWithContext same as ListThingsPages except
18252// it takes a Context and allows setting request options on the pages.
18253//
18254// The context must be non-nil and will be used for request cancellation. If
18255// the context is nil a panic will occur. In the future the SDK may create
18256// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18257// for more information on using Contexts.
18258func (c *IoT) ListThingsPagesWithContext(ctx aws.Context, input *ListThingsInput, fn func(*ListThingsOutput, bool) bool, opts ...request.Option) error {
18259	p := request.Pagination{
18260		NewRequest: func() (*request.Request, error) {
18261			var inCpy *ListThingsInput
18262			if input != nil {
18263				tmp := *input
18264				inCpy = &tmp
18265			}
18266			req, _ := c.ListThingsRequest(inCpy)
18267			req.SetContext(ctx)
18268			req.ApplyOptions(opts...)
18269			return req, nil
18270		},
18271	}
18272
18273	for p.Next() {
18274		if !fn(p.Page().(*ListThingsOutput), !p.HasNextPage()) {
18275			break
18276		}
18277	}
18278
18279	return p.Err()
18280}
18281
18282const opListThingsInBillingGroup = "ListThingsInBillingGroup"
18283
18284// ListThingsInBillingGroupRequest generates a "aws/request.Request" representing the
18285// client's request for the ListThingsInBillingGroup operation. The "output" return
18286// value will be populated with the request's response once the request completes
18287// successfully.
18288//
18289// Use "Send" method on the returned Request to send the API call to the service.
18290// the "output" return value is not valid until after Send returns without error.
18291//
18292// See ListThingsInBillingGroup for more information on using the ListThingsInBillingGroup
18293// API call, and error handling.
18294//
18295// This method is useful when you want to inject custom logic or configuration
18296// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18297//
18298//
18299//    // Example sending a request using the ListThingsInBillingGroupRequest method.
18300//    req, resp := client.ListThingsInBillingGroupRequest(params)
18301//
18302//    err := req.Send()
18303//    if err == nil { // resp is now filled
18304//        fmt.Println(resp)
18305//    }
18306func (c *IoT) ListThingsInBillingGroupRequest(input *ListThingsInBillingGroupInput) (req *request.Request, output *ListThingsInBillingGroupOutput) {
18307	op := &request.Operation{
18308		Name:       opListThingsInBillingGroup,
18309		HTTPMethod: "GET",
18310		HTTPPath:   "/billing-groups/{billingGroupName}/things",
18311		Paginator: &request.Paginator{
18312			InputTokens:     []string{"nextToken"},
18313			OutputTokens:    []string{"nextToken"},
18314			LimitToken:      "maxResults",
18315			TruncationToken: "",
18316		},
18317	}
18318
18319	if input == nil {
18320		input = &ListThingsInBillingGroupInput{}
18321	}
18322
18323	output = &ListThingsInBillingGroupOutput{}
18324	req = c.newRequest(op, input, output)
18325	return
18326}
18327
18328// ListThingsInBillingGroup API operation for AWS IoT.
18329//
18330// Lists the things you have added to the given billing group.
18331//
18332// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18333// with awserr.Error's Code and Message methods to get detailed information about
18334// the error.
18335//
18336// See the AWS API reference guide for AWS IoT's
18337// API operation ListThingsInBillingGroup for usage and error information.
18338//
18339// Returned Error Types:
18340//   * InvalidRequestException
18341//   The request is not valid.
18342//
18343//   * InternalFailureException
18344//   An unexpected error has occurred.
18345//
18346//   * ResourceNotFoundException
18347//   The specified resource does not exist.
18348//
18349//   * ThrottlingException
18350//   The rate exceeds the limit.
18351//
18352func (c *IoT) ListThingsInBillingGroup(input *ListThingsInBillingGroupInput) (*ListThingsInBillingGroupOutput, error) {
18353	req, out := c.ListThingsInBillingGroupRequest(input)
18354	return out, req.Send()
18355}
18356
18357// ListThingsInBillingGroupWithContext is the same as ListThingsInBillingGroup with the addition of
18358// the ability to pass a context and additional request options.
18359//
18360// See ListThingsInBillingGroup for details on how to use this API operation.
18361//
18362// The context must be non-nil and will be used for request cancellation. If
18363// the context is nil a panic will occur. In the future the SDK may create
18364// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18365// for more information on using Contexts.
18366func (c *IoT) ListThingsInBillingGroupWithContext(ctx aws.Context, input *ListThingsInBillingGroupInput, opts ...request.Option) (*ListThingsInBillingGroupOutput, error) {
18367	req, out := c.ListThingsInBillingGroupRequest(input)
18368	req.SetContext(ctx)
18369	req.ApplyOptions(opts...)
18370	return out, req.Send()
18371}
18372
18373// ListThingsInBillingGroupPages iterates over the pages of a ListThingsInBillingGroup operation,
18374// calling the "fn" function with the response data for each page. To stop
18375// iterating, return false from the fn function.
18376//
18377// See ListThingsInBillingGroup method for more information on how to use this operation.
18378//
18379// Note: This operation can generate multiple requests to a service.
18380//
18381//    // Example iterating over at most 3 pages of a ListThingsInBillingGroup operation.
18382//    pageNum := 0
18383//    err := client.ListThingsInBillingGroupPages(params,
18384//        func(page *iot.ListThingsInBillingGroupOutput, lastPage bool) bool {
18385//            pageNum++
18386//            fmt.Println(page)
18387//            return pageNum <= 3
18388//        })
18389//
18390func (c *IoT) ListThingsInBillingGroupPages(input *ListThingsInBillingGroupInput, fn func(*ListThingsInBillingGroupOutput, bool) bool) error {
18391	return c.ListThingsInBillingGroupPagesWithContext(aws.BackgroundContext(), input, fn)
18392}
18393
18394// ListThingsInBillingGroupPagesWithContext same as ListThingsInBillingGroupPages except
18395// it takes a Context and allows setting request options on the pages.
18396//
18397// The context must be non-nil and will be used for request cancellation. If
18398// the context is nil a panic will occur. In the future the SDK may create
18399// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18400// for more information on using Contexts.
18401func (c *IoT) ListThingsInBillingGroupPagesWithContext(ctx aws.Context, input *ListThingsInBillingGroupInput, fn func(*ListThingsInBillingGroupOutput, bool) bool, opts ...request.Option) error {
18402	p := request.Pagination{
18403		NewRequest: func() (*request.Request, error) {
18404			var inCpy *ListThingsInBillingGroupInput
18405			if input != nil {
18406				tmp := *input
18407				inCpy = &tmp
18408			}
18409			req, _ := c.ListThingsInBillingGroupRequest(inCpy)
18410			req.SetContext(ctx)
18411			req.ApplyOptions(opts...)
18412			return req, nil
18413		},
18414	}
18415
18416	for p.Next() {
18417		if !fn(p.Page().(*ListThingsInBillingGroupOutput), !p.HasNextPage()) {
18418			break
18419		}
18420	}
18421
18422	return p.Err()
18423}
18424
18425const opListThingsInThingGroup = "ListThingsInThingGroup"
18426
18427// ListThingsInThingGroupRequest generates a "aws/request.Request" representing the
18428// client's request for the ListThingsInThingGroup operation. The "output" return
18429// value will be populated with the request's response once the request completes
18430// successfully.
18431//
18432// Use "Send" method on the returned Request to send the API call to the service.
18433// the "output" return value is not valid until after Send returns without error.
18434//
18435// See ListThingsInThingGroup for more information on using the ListThingsInThingGroup
18436// API call, and error handling.
18437//
18438// This method is useful when you want to inject custom logic or configuration
18439// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18440//
18441//
18442//    // Example sending a request using the ListThingsInThingGroupRequest method.
18443//    req, resp := client.ListThingsInThingGroupRequest(params)
18444//
18445//    err := req.Send()
18446//    if err == nil { // resp is now filled
18447//        fmt.Println(resp)
18448//    }
18449func (c *IoT) ListThingsInThingGroupRequest(input *ListThingsInThingGroupInput) (req *request.Request, output *ListThingsInThingGroupOutput) {
18450	op := &request.Operation{
18451		Name:       opListThingsInThingGroup,
18452		HTTPMethod: "GET",
18453		HTTPPath:   "/thing-groups/{thingGroupName}/things",
18454		Paginator: &request.Paginator{
18455			InputTokens:     []string{"nextToken"},
18456			OutputTokens:    []string{"nextToken"},
18457			LimitToken:      "maxResults",
18458			TruncationToken: "",
18459		},
18460	}
18461
18462	if input == nil {
18463		input = &ListThingsInThingGroupInput{}
18464	}
18465
18466	output = &ListThingsInThingGroupOutput{}
18467	req = c.newRequest(op, input, output)
18468	return
18469}
18470
18471// ListThingsInThingGroup API operation for AWS IoT.
18472//
18473// Lists the things in the specified group.
18474//
18475// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18476// with awserr.Error's Code and Message methods to get detailed information about
18477// the error.
18478//
18479// See the AWS API reference guide for AWS IoT's
18480// API operation ListThingsInThingGroup for usage and error information.
18481//
18482// Returned Error Types:
18483//   * InvalidRequestException
18484//   The request is not valid.
18485//
18486//   * InternalFailureException
18487//   An unexpected error has occurred.
18488//
18489//   * ResourceNotFoundException
18490//   The specified resource does not exist.
18491//
18492//   * ThrottlingException
18493//   The rate exceeds the limit.
18494//
18495func (c *IoT) ListThingsInThingGroup(input *ListThingsInThingGroupInput) (*ListThingsInThingGroupOutput, error) {
18496	req, out := c.ListThingsInThingGroupRequest(input)
18497	return out, req.Send()
18498}
18499
18500// ListThingsInThingGroupWithContext is the same as ListThingsInThingGroup with the addition of
18501// the ability to pass a context and additional request options.
18502//
18503// See ListThingsInThingGroup for details on how to use this API operation.
18504//
18505// The context must be non-nil and will be used for request cancellation. If
18506// the context is nil a panic will occur. In the future the SDK may create
18507// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18508// for more information on using Contexts.
18509func (c *IoT) ListThingsInThingGroupWithContext(ctx aws.Context, input *ListThingsInThingGroupInput, opts ...request.Option) (*ListThingsInThingGroupOutput, error) {
18510	req, out := c.ListThingsInThingGroupRequest(input)
18511	req.SetContext(ctx)
18512	req.ApplyOptions(opts...)
18513	return out, req.Send()
18514}
18515
18516// ListThingsInThingGroupPages iterates over the pages of a ListThingsInThingGroup operation,
18517// calling the "fn" function with the response data for each page. To stop
18518// iterating, return false from the fn function.
18519//
18520// See ListThingsInThingGroup method for more information on how to use this operation.
18521//
18522// Note: This operation can generate multiple requests to a service.
18523//
18524//    // Example iterating over at most 3 pages of a ListThingsInThingGroup operation.
18525//    pageNum := 0
18526//    err := client.ListThingsInThingGroupPages(params,
18527//        func(page *iot.ListThingsInThingGroupOutput, lastPage bool) bool {
18528//            pageNum++
18529//            fmt.Println(page)
18530//            return pageNum <= 3
18531//        })
18532//
18533func (c *IoT) ListThingsInThingGroupPages(input *ListThingsInThingGroupInput, fn func(*ListThingsInThingGroupOutput, bool) bool) error {
18534	return c.ListThingsInThingGroupPagesWithContext(aws.BackgroundContext(), input, fn)
18535}
18536
18537// ListThingsInThingGroupPagesWithContext same as ListThingsInThingGroupPages except
18538// it takes a Context and allows setting request options on the pages.
18539//
18540// The context must be non-nil and will be used for request cancellation. If
18541// the context is nil a panic will occur. In the future the SDK may create
18542// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18543// for more information on using Contexts.
18544func (c *IoT) ListThingsInThingGroupPagesWithContext(ctx aws.Context, input *ListThingsInThingGroupInput, fn func(*ListThingsInThingGroupOutput, bool) bool, opts ...request.Option) error {
18545	p := request.Pagination{
18546		NewRequest: func() (*request.Request, error) {
18547			var inCpy *ListThingsInThingGroupInput
18548			if input != nil {
18549				tmp := *input
18550				inCpy = &tmp
18551			}
18552			req, _ := c.ListThingsInThingGroupRequest(inCpy)
18553			req.SetContext(ctx)
18554			req.ApplyOptions(opts...)
18555			return req, nil
18556		},
18557	}
18558
18559	for p.Next() {
18560		if !fn(p.Page().(*ListThingsInThingGroupOutput), !p.HasNextPage()) {
18561			break
18562		}
18563	}
18564
18565	return p.Err()
18566}
18567
18568const opListTopicRuleDestinations = "ListTopicRuleDestinations"
18569
18570// ListTopicRuleDestinationsRequest generates a "aws/request.Request" representing the
18571// client's request for the ListTopicRuleDestinations operation. The "output" return
18572// value will be populated with the request's response once the request completes
18573// successfully.
18574//
18575// Use "Send" method on the returned Request to send the API call to the service.
18576// the "output" return value is not valid until after Send returns without error.
18577//
18578// See ListTopicRuleDestinations for more information on using the ListTopicRuleDestinations
18579// API call, and error handling.
18580//
18581// This method is useful when you want to inject custom logic or configuration
18582// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18583//
18584//
18585//    // Example sending a request using the ListTopicRuleDestinationsRequest method.
18586//    req, resp := client.ListTopicRuleDestinationsRequest(params)
18587//
18588//    err := req.Send()
18589//    if err == nil { // resp is now filled
18590//        fmt.Println(resp)
18591//    }
18592func (c *IoT) ListTopicRuleDestinationsRequest(input *ListTopicRuleDestinationsInput) (req *request.Request, output *ListTopicRuleDestinationsOutput) {
18593	op := &request.Operation{
18594		Name:       opListTopicRuleDestinations,
18595		HTTPMethod: "GET",
18596		HTTPPath:   "/destinations",
18597		Paginator: &request.Paginator{
18598			InputTokens:     []string{"nextToken"},
18599			OutputTokens:    []string{"nextToken"},
18600			LimitToken:      "maxResults",
18601			TruncationToken: "",
18602		},
18603	}
18604
18605	if input == nil {
18606		input = &ListTopicRuleDestinationsInput{}
18607	}
18608
18609	output = &ListTopicRuleDestinationsOutput{}
18610	req = c.newRequest(op, input, output)
18611	return
18612}
18613
18614// ListTopicRuleDestinations API operation for AWS IoT.
18615//
18616// Lists all the topic rule destinations in your AWS account.
18617//
18618// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18619// with awserr.Error's Code and Message methods to get detailed information about
18620// the error.
18621//
18622// See the AWS API reference guide for AWS IoT's
18623// API operation ListTopicRuleDestinations for usage and error information.
18624//
18625// Returned Error Types:
18626//   * InternalException
18627//   An unexpected error has occurred.
18628//
18629//   * InvalidRequestException
18630//   The request is not valid.
18631//
18632//   * ServiceUnavailableException
18633//   The service is temporarily unavailable.
18634//
18635//   * UnauthorizedException
18636//   You are not authorized to perform this operation.
18637//
18638func (c *IoT) ListTopicRuleDestinations(input *ListTopicRuleDestinationsInput) (*ListTopicRuleDestinationsOutput, error) {
18639	req, out := c.ListTopicRuleDestinationsRequest(input)
18640	return out, req.Send()
18641}
18642
18643// ListTopicRuleDestinationsWithContext is the same as ListTopicRuleDestinations with the addition of
18644// the ability to pass a context and additional request options.
18645//
18646// See ListTopicRuleDestinations for details on how to use this API operation.
18647//
18648// The context must be non-nil and will be used for request cancellation. If
18649// the context is nil a panic will occur. In the future the SDK may create
18650// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18651// for more information on using Contexts.
18652func (c *IoT) ListTopicRuleDestinationsWithContext(ctx aws.Context, input *ListTopicRuleDestinationsInput, opts ...request.Option) (*ListTopicRuleDestinationsOutput, error) {
18653	req, out := c.ListTopicRuleDestinationsRequest(input)
18654	req.SetContext(ctx)
18655	req.ApplyOptions(opts...)
18656	return out, req.Send()
18657}
18658
18659// ListTopicRuleDestinationsPages iterates over the pages of a ListTopicRuleDestinations operation,
18660// calling the "fn" function with the response data for each page. To stop
18661// iterating, return false from the fn function.
18662//
18663// See ListTopicRuleDestinations method for more information on how to use this operation.
18664//
18665// Note: This operation can generate multiple requests to a service.
18666//
18667//    // Example iterating over at most 3 pages of a ListTopicRuleDestinations operation.
18668//    pageNum := 0
18669//    err := client.ListTopicRuleDestinationsPages(params,
18670//        func(page *iot.ListTopicRuleDestinationsOutput, lastPage bool) bool {
18671//            pageNum++
18672//            fmt.Println(page)
18673//            return pageNum <= 3
18674//        })
18675//
18676func (c *IoT) ListTopicRuleDestinationsPages(input *ListTopicRuleDestinationsInput, fn func(*ListTopicRuleDestinationsOutput, bool) bool) error {
18677	return c.ListTopicRuleDestinationsPagesWithContext(aws.BackgroundContext(), input, fn)
18678}
18679
18680// ListTopicRuleDestinationsPagesWithContext same as ListTopicRuleDestinationsPages except
18681// it takes a Context and allows setting request options on the pages.
18682//
18683// The context must be non-nil and will be used for request cancellation. If
18684// the context is nil a panic will occur. In the future the SDK may create
18685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18686// for more information on using Contexts.
18687func (c *IoT) ListTopicRuleDestinationsPagesWithContext(ctx aws.Context, input *ListTopicRuleDestinationsInput, fn func(*ListTopicRuleDestinationsOutput, bool) bool, opts ...request.Option) error {
18688	p := request.Pagination{
18689		NewRequest: func() (*request.Request, error) {
18690			var inCpy *ListTopicRuleDestinationsInput
18691			if input != nil {
18692				tmp := *input
18693				inCpy = &tmp
18694			}
18695			req, _ := c.ListTopicRuleDestinationsRequest(inCpy)
18696			req.SetContext(ctx)
18697			req.ApplyOptions(opts...)
18698			return req, nil
18699		},
18700	}
18701
18702	for p.Next() {
18703		if !fn(p.Page().(*ListTopicRuleDestinationsOutput), !p.HasNextPage()) {
18704			break
18705		}
18706	}
18707
18708	return p.Err()
18709}
18710
18711const opListTopicRules = "ListTopicRules"
18712
18713// ListTopicRulesRequest generates a "aws/request.Request" representing the
18714// client's request for the ListTopicRules operation. The "output" return
18715// value will be populated with the request's response once the request completes
18716// successfully.
18717//
18718// Use "Send" method on the returned Request to send the API call to the service.
18719// the "output" return value is not valid until after Send returns without error.
18720//
18721// See ListTopicRules for more information on using the ListTopicRules
18722// API call, and error handling.
18723//
18724// This method is useful when you want to inject custom logic or configuration
18725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18726//
18727//
18728//    // Example sending a request using the ListTopicRulesRequest method.
18729//    req, resp := client.ListTopicRulesRequest(params)
18730//
18731//    err := req.Send()
18732//    if err == nil { // resp is now filled
18733//        fmt.Println(resp)
18734//    }
18735func (c *IoT) ListTopicRulesRequest(input *ListTopicRulesInput) (req *request.Request, output *ListTopicRulesOutput) {
18736	op := &request.Operation{
18737		Name:       opListTopicRules,
18738		HTTPMethod: "GET",
18739		HTTPPath:   "/rules",
18740		Paginator: &request.Paginator{
18741			InputTokens:     []string{"nextToken"},
18742			OutputTokens:    []string{"nextToken"},
18743			LimitToken:      "maxResults",
18744			TruncationToken: "",
18745		},
18746	}
18747
18748	if input == nil {
18749		input = &ListTopicRulesInput{}
18750	}
18751
18752	output = &ListTopicRulesOutput{}
18753	req = c.newRequest(op, input, output)
18754	return
18755}
18756
18757// ListTopicRules API operation for AWS IoT.
18758//
18759// Lists the rules for the specific topic.
18760//
18761// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18762// with awserr.Error's Code and Message methods to get detailed information about
18763// the error.
18764//
18765// See the AWS API reference guide for AWS IoT's
18766// API operation ListTopicRules for usage and error information.
18767//
18768// Returned Error Types:
18769//   * InternalException
18770//   An unexpected error has occurred.
18771//
18772//   * InvalidRequestException
18773//   The request is not valid.
18774//
18775//   * ServiceUnavailableException
18776//   The service is temporarily unavailable.
18777//
18778func (c *IoT) ListTopicRules(input *ListTopicRulesInput) (*ListTopicRulesOutput, error) {
18779	req, out := c.ListTopicRulesRequest(input)
18780	return out, req.Send()
18781}
18782
18783// ListTopicRulesWithContext is the same as ListTopicRules with the addition of
18784// the ability to pass a context and additional request options.
18785//
18786// See ListTopicRules for details on how to use this API operation.
18787//
18788// The context must be non-nil and will be used for request cancellation. If
18789// the context is nil a panic will occur. In the future the SDK may create
18790// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18791// for more information on using Contexts.
18792func (c *IoT) ListTopicRulesWithContext(ctx aws.Context, input *ListTopicRulesInput, opts ...request.Option) (*ListTopicRulesOutput, error) {
18793	req, out := c.ListTopicRulesRequest(input)
18794	req.SetContext(ctx)
18795	req.ApplyOptions(opts...)
18796	return out, req.Send()
18797}
18798
18799// ListTopicRulesPages iterates over the pages of a ListTopicRules operation,
18800// calling the "fn" function with the response data for each page. To stop
18801// iterating, return false from the fn function.
18802//
18803// See ListTopicRules method for more information on how to use this operation.
18804//
18805// Note: This operation can generate multiple requests to a service.
18806//
18807//    // Example iterating over at most 3 pages of a ListTopicRules operation.
18808//    pageNum := 0
18809//    err := client.ListTopicRulesPages(params,
18810//        func(page *iot.ListTopicRulesOutput, lastPage bool) bool {
18811//            pageNum++
18812//            fmt.Println(page)
18813//            return pageNum <= 3
18814//        })
18815//
18816func (c *IoT) ListTopicRulesPages(input *ListTopicRulesInput, fn func(*ListTopicRulesOutput, bool) bool) error {
18817	return c.ListTopicRulesPagesWithContext(aws.BackgroundContext(), input, fn)
18818}
18819
18820// ListTopicRulesPagesWithContext same as ListTopicRulesPages except
18821// it takes a Context and allows setting request options on the pages.
18822//
18823// The context must be non-nil and will be used for request cancellation. If
18824// the context is nil a panic will occur. In the future the SDK may create
18825// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18826// for more information on using Contexts.
18827func (c *IoT) ListTopicRulesPagesWithContext(ctx aws.Context, input *ListTopicRulesInput, fn func(*ListTopicRulesOutput, bool) bool, opts ...request.Option) error {
18828	p := request.Pagination{
18829		NewRequest: func() (*request.Request, error) {
18830			var inCpy *ListTopicRulesInput
18831			if input != nil {
18832				tmp := *input
18833				inCpy = &tmp
18834			}
18835			req, _ := c.ListTopicRulesRequest(inCpy)
18836			req.SetContext(ctx)
18837			req.ApplyOptions(opts...)
18838			return req, nil
18839		},
18840	}
18841
18842	for p.Next() {
18843		if !fn(p.Page().(*ListTopicRulesOutput), !p.HasNextPage()) {
18844			break
18845		}
18846	}
18847
18848	return p.Err()
18849}
18850
18851const opListV2LoggingLevels = "ListV2LoggingLevels"
18852
18853// ListV2LoggingLevelsRequest generates a "aws/request.Request" representing the
18854// client's request for the ListV2LoggingLevels operation. The "output" return
18855// value will be populated with the request's response once the request completes
18856// successfully.
18857//
18858// Use "Send" method on the returned Request to send the API call to the service.
18859// the "output" return value is not valid until after Send returns without error.
18860//
18861// See ListV2LoggingLevels for more information on using the ListV2LoggingLevels
18862// API call, and error handling.
18863//
18864// This method is useful when you want to inject custom logic or configuration
18865// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18866//
18867//
18868//    // Example sending a request using the ListV2LoggingLevelsRequest method.
18869//    req, resp := client.ListV2LoggingLevelsRequest(params)
18870//
18871//    err := req.Send()
18872//    if err == nil { // resp is now filled
18873//        fmt.Println(resp)
18874//    }
18875func (c *IoT) ListV2LoggingLevelsRequest(input *ListV2LoggingLevelsInput) (req *request.Request, output *ListV2LoggingLevelsOutput) {
18876	op := &request.Operation{
18877		Name:       opListV2LoggingLevels,
18878		HTTPMethod: "GET",
18879		HTTPPath:   "/v2LoggingLevel",
18880		Paginator: &request.Paginator{
18881			InputTokens:     []string{"nextToken"},
18882			OutputTokens:    []string{"nextToken"},
18883			LimitToken:      "maxResults",
18884			TruncationToken: "",
18885		},
18886	}
18887
18888	if input == nil {
18889		input = &ListV2LoggingLevelsInput{}
18890	}
18891
18892	output = &ListV2LoggingLevelsOutput{}
18893	req = c.newRequest(op, input, output)
18894	return
18895}
18896
18897// ListV2LoggingLevels API operation for AWS IoT.
18898//
18899// Lists logging levels.
18900//
18901// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18902// with awserr.Error's Code and Message methods to get detailed information about
18903// the error.
18904//
18905// See the AWS API reference guide for AWS IoT's
18906// API operation ListV2LoggingLevels for usage and error information.
18907//
18908// Returned Error Types:
18909//   * InternalException
18910//   An unexpected error has occurred.
18911//
18912//   * NotConfiguredException
18913//   The resource is not configured.
18914//
18915//   * InvalidRequestException
18916//   The request is not valid.
18917//
18918//   * ServiceUnavailableException
18919//   The service is temporarily unavailable.
18920//
18921func (c *IoT) ListV2LoggingLevels(input *ListV2LoggingLevelsInput) (*ListV2LoggingLevelsOutput, error) {
18922	req, out := c.ListV2LoggingLevelsRequest(input)
18923	return out, req.Send()
18924}
18925
18926// ListV2LoggingLevelsWithContext is the same as ListV2LoggingLevels with the addition of
18927// the ability to pass a context and additional request options.
18928//
18929// See ListV2LoggingLevels for details on how to use this API operation.
18930//
18931// The context must be non-nil and will be used for request cancellation. If
18932// the context is nil a panic will occur. In the future the SDK may create
18933// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18934// for more information on using Contexts.
18935func (c *IoT) ListV2LoggingLevelsWithContext(ctx aws.Context, input *ListV2LoggingLevelsInput, opts ...request.Option) (*ListV2LoggingLevelsOutput, error) {
18936	req, out := c.ListV2LoggingLevelsRequest(input)
18937	req.SetContext(ctx)
18938	req.ApplyOptions(opts...)
18939	return out, req.Send()
18940}
18941
18942// ListV2LoggingLevelsPages iterates over the pages of a ListV2LoggingLevels operation,
18943// calling the "fn" function with the response data for each page. To stop
18944// iterating, return false from the fn function.
18945//
18946// See ListV2LoggingLevels method for more information on how to use this operation.
18947//
18948// Note: This operation can generate multiple requests to a service.
18949//
18950//    // Example iterating over at most 3 pages of a ListV2LoggingLevels operation.
18951//    pageNum := 0
18952//    err := client.ListV2LoggingLevelsPages(params,
18953//        func(page *iot.ListV2LoggingLevelsOutput, lastPage bool) bool {
18954//            pageNum++
18955//            fmt.Println(page)
18956//            return pageNum <= 3
18957//        })
18958//
18959func (c *IoT) ListV2LoggingLevelsPages(input *ListV2LoggingLevelsInput, fn func(*ListV2LoggingLevelsOutput, bool) bool) error {
18960	return c.ListV2LoggingLevelsPagesWithContext(aws.BackgroundContext(), input, fn)
18961}
18962
18963// ListV2LoggingLevelsPagesWithContext same as ListV2LoggingLevelsPages except
18964// it takes a Context and allows setting request options on the pages.
18965//
18966// The context must be non-nil and will be used for request cancellation. If
18967// the context is nil a panic will occur. In the future the SDK may create
18968// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18969// for more information on using Contexts.
18970func (c *IoT) ListV2LoggingLevelsPagesWithContext(ctx aws.Context, input *ListV2LoggingLevelsInput, fn func(*ListV2LoggingLevelsOutput, bool) bool, opts ...request.Option) error {
18971	p := request.Pagination{
18972		NewRequest: func() (*request.Request, error) {
18973			var inCpy *ListV2LoggingLevelsInput
18974			if input != nil {
18975				tmp := *input
18976				inCpy = &tmp
18977			}
18978			req, _ := c.ListV2LoggingLevelsRequest(inCpy)
18979			req.SetContext(ctx)
18980			req.ApplyOptions(opts...)
18981			return req, nil
18982		},
18983	}
18984
18985	for p.Next() {
18986		if !fn(p.Page().(*ListV2LoggingLevelsOutput), !p.HasNextPage()) {
18987			break
18988		}
18989	}
18990
18991	return p.Err()
18992}
18993
18994const opListViolationEvents = "ListViolationEvents"
18995
18996// ListViolationEventsRequest generates a "aws/request.Request" representing the
18997// client's request for the ListViolationEvents operation. The "output" return
18998// value will be populated with the request's response once the request completes
18999// successfully.
19000//
19001// Use "Send" method on the returned Request to send the API call to the service.
19002// the "output" return value is not valid until after Send returns without error.
19003//
19004// See ListViolationEvents for more information on using the ListViolationEvents
19005// API call, and error handling.
19006//
19007// This method is useful when you want to inject custom logic or configuration
19008// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19009//
19010//
19011//    // Example sending a request using the ListViolationEventsRequest method.
19012//    req, resp := client.ListViolationEventsRequest(params)
19013//
19014//    err := req.Send()
19015//    if err == nil { // resp is now filled
19016//        fmt.Println(resp)
19017//    }
19018func (c *IoT) ListViolationEventsRequest(input *ListViolationEventsInput) (req *request.Request, output *ListViolationEventsOutput) {
19019	op := &request.Operation{
19020		Name:       opListViolationEvents,
19021		HTTPMethod: "GET",
19022		HTTPPath:   "/violation-events",
19023		Paginator: &request.Paginator{
19024			InputTokens:     []string{"nextToken"},
19025			OutputTokens:    []string{"nextToken"},
19026			LimitToken:      "maxResults",
19027			TruncationToken: "",
19028		},
19029	}
19030
19031	if input == nil {
19032		input = &ListViolationEventsInput{}
19033	}
19034
19035	output = &ListViolationEventsOutput{}
19036	req = c.newRequest(op, input, output)
19037	return
19038}
19039
19040// ListViolationEvents API operation for AWS IoT.
19041//
19042// Lists the Device Defender security profile violations discovered during the
19043// given time period. You can use filters to limit the results to those alerts
19044// issued for a particular security profile, behavior, or thing (device).
19045//
19046// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19047// with awserr.Error's Code and Message methods to get detailed information about
19048// the error.
19049//
19050// See the AWS API reference guide for AWS IoT's
19051// API operation ListViolationEvents for usage and error information.
19052//
19053// Returned Error Types:
19054//   * InvalidRequestException
19055//   The request is not valid.
19056//
19057//   * ThrottlingException
19058//   The rate exceeds the limit.
19059//
19060//   * InternalFailureException
19061//   An unexpected error has occurred.
19062//
19063func (c *IoT) ListViolationEvents(input *ListViolationEventsInput) (*ListViolationEventsOutput, error) {
19064	req, out := c.ListViolationEventsRequest(input)
19065	return out, req.Send()
19066}
19067
19068// ListViolationEventsWithContext is the same as ListViolationEvents with the addition of
19069// the ability to pass a context and additional request options.
19070//
19071// See ListViolationEvents for details on how to use this API operation.
19072//
19073// The context must be non-nil and will be used for request cancellation. If
19074// the context is nil a panic will occur. In the future the SDK may create
19075// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19076// for more information on using Contexts.
19077func (c *IoT) ListViolationEventsWithContext(ctx aws.Context, input *ListViolationEventsInput, opts ...request.Option) (*ListViolationEventsOutput, error) {
19078	req, out := c.ListViolationEventsRequest(input)
19079	req.SetContext(ctx)
19080	req.ApplyOptions(opts...)
19081	return out, req.Send()
19082}
19083
19084// ListViolationEventsPages iterates over the pages of a ListViolationEvents operation,
19085// calling the "fn" function with the response data for each page. To stop
19086// iterating, return false from the fn function.
19087//
19088// See ListViolationEvents method for more information on how to use this operation.
19089//
19090// Note: This operation can generate multiple requests to a service.
19091//
19092//    // Example iterating over at most 3 pages of a ListViolationEvents operation.
19093//    pageNum := 0
19094//    err := client.ListViolationEventsPages(params,
19095//        func(page *iot.ListViolationEventsOutput, lastPage bool) bool {
19096//            pageNum++
19097//            fmt.Println(page)
19098//            return pageNum <= 3
19099//        })
19100//
19101func (c *IoT) ListViolationEventsPages(input *ListViolationEventsInput, fn func(*ListViolationEventsOutput, bool) bool) error {
19102	return c.ListViolationEventsPagesWithContext(aws.BackgroundContext(), input, fn)
19103}
19104
19105// ListViolationEventsPagesWithContext same as ListViolationEventsPages except
19106// it takes a Context and allows setting request options on the pages.
19107//
19108// The context must be non-nil and will be used for request cancellation. If
19109// the context is nil a panic will occur. In the future the SDK may create
19110// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19111// for more information on using Contexts.
19112func (c *IoT) ListViolationEventsPagesWithContext(ctx aws.Context, input *ListViolationEventsInput, fn func(*ListViolationEventsOutput, bool) bool, opts ...request.Option) error {
19113	p := request.Pagination{
19114		NewRequest: func() (*request.Request, error) {
19115			var inCpy *ListViolationEventsInput
19116			if input != nil {
19117				tmp := *input
19118				inCpy = &tmp
19119			}
19120			req, _ := c.ListViolationEventsRequest(inCpy)
19121			req.SetContext(ctx)
19122			req.ApplyOptions(opts...)
19123			return req, nil
19124		},
19125	}
19126
19127	for p.Next() {
19128		if !fn(p.Page().(*ListViolationEventsOutput), !p.HasNextPage()) {
19129			break
19130		}
19131	}
19132
19133	return p.Err()
19134}
19135
19136const opRegisterCACertificate = "RegisterCACertificate"
19137
19138// RegisterCACertificateRequest generates a "aws/request.Request" representing the
19139// client's request for the RegisterCACertificate operation. The "output" return
19140// value will be populated with the request's response once the request completes
19141// successfully.
19142//
19143// Use "Send" method on the returned Request to send the API call to the service.
19144// the "output" return value is not valid until after Send returns without error.
19145//
19146// See RegisterCACertificate for more information on using the RegisterCACertificate
19147// API call, and error handling.
19148//
19149// This method is useful when you want to inject custom logic or configuration
19150// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19151//
19152//
19153//    // Example sending a request using the RegisterCACertificateRequest method.
19154//    req, resp := client.RegisterCACertificateRequest(params)
19155//
19156//    err := req.Send()
19157//    if err == nil { // resp is now filled
19158//        fmt.Println(resp)
19159//    }
19160func (c *IoT) RegisterCACertificateRequest(input *RegisterCACertificateInput) (req *request.Request, output *RegisterCACertificateOutput) {
19161	op := &request.Operation{
19162		Name:       opRegisterCACertificate,
19163		HTTPMethod: "POST",
19164		HTTPPath:   "/cacertificate",
19165	}
19166
19167	if input == nil {
19168		input = &RegisterCACertificateInput{}
19169	}
19170
19171	output = &RegisterCACertificateOutput{}
19172	req = c.newRequest(op, input, output)
19173	return
19174}
19175
19176// RegisterCACertificate API operation for AWS IoT.
19177//
19178// Registers a CA certificate with AWS IoT. This CA certificate can then be
19179// used to sign device certificates, which can be then registered with AWS IoT.
19180// You can register up to 10 CA certificates per AWS account that have the same
19181// subject field. This enables you to have up to 10 certificate authorities
19182// sign your device certificates. If you have more than one CA certificate registered,
19183// make sure you pass the CA certificate when you register your device certificates
19184// with the RegisterCertificate API.
19185//
19186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19187// with awserr.Error's Code and Message methods to get detailed information about
19188// the error.
19189//
19190// See the AWS API reference guide for AWS IoT's
19191// API operation RegisterCACertificate for usage and error information.
19192//
19193// Returned Error Types:
19194//   * ResourceAlreadyExistsException
19195//   The resource already exists.
19196//
19197//   * RegistrationCodeValidationException
19198//   The registration code is invalid.
19199//
19200//   * InvalidRequestException
19201//   The request is not valid.
19202//
19203//   * CertificateValidationException
19204//   The certificate is invalid.
19205//
19206//   * ThrottlingException
19207//   The rate exceeds the limit.
19208//
19209//   * LimitExceededException
19210//   A limit has been exceeded.
19211//
19212//   * UnauthorizedException
19213//   You are not authorized to perform this operation.
19214//
19215//   * ServiceUnavailableException
19216//   The service is temporarily unavailable.
19217//
19218//   * InternalFailureException
19219//   An unexpected error has occurred.
19220//
19221func (c *IoT) RegisterCACertificate(input *RegisterCACertificateInput) (*RegisterCACertificateOutput, error) {
19222	req, out := c.RegisterCACertificateRequest(input)
19223	return out, req.Send()
19224}
19225
19226// RegisterCACertificateWithContext is the same as RegisterCACertificate with the addition of
19227// the ability to pass a context and additional request options.
19228//
19229// See RegisterCACertificate for details on how to use this API operation.
19230//
19231// The context must be non-nil and will be used for request cancellation. If
19232// the context is nil a panic will occur. In the future the SDK may create
19233// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19234// for more information on using Contexts.
19235func (c *IoT) RegisterCACertificateWithContext(ctx aws.Context, input *RegisterCACertificateInput, opts ...request.Option) (*RegisterCACertificateOutput, error) {
19236	req, out := c.RegisterCACertificateRequest(input)
19237	req.SetContext(ctx)
19238	req.ApplyOptions(opts...)
19239	return out, req.Send()
19240}
19241
19242const opRegisterCertificate = "RegisterCertificate"
19243
19244// RegisterCertificateRequest generates a "aws/request.Request" representing the
19245// client's request for the RegisterCertificate operation. The "output" return
19246// value will be populated with the request's response once the request completes
19247// successfully.
19248//
19249// Use "Send" method on the returned Request to send the API call to the service.
19250// the "output" return value is not valid until after Send returns without error.
19251//
19252// See RegisterCertificate for more information on using the RegisterCertificate
19253// API call, and error handling.
19254//
19255// This method is useful when you want to inject custom logic or configuration
19256// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19257//
19258//
19259//    // Example sending a request using the RegisterCertificateRequest method.
19260//    req, resp := client.RegisterCertificateRequest(params)
19261//
19262//    err := req.Send()
19263//    if err == nil { // resp is now filled
19264//        fmt.Println(resp)
19265//    }
19266func (c *IoT) RegisterCertificateRequest(input *RegisterCertificateInput) (req *request.Request, output *RegisterCertificateOutput) {
19267	op := &request.Operation{
19268		Name:       opRegisterCertificate,
19269		HTTPMethod: "POST",
19270		HTTPPath:   "/certificate/register",
19271	}
19272
19273	if input == nil {
19274		input = &RegisterCertificateInput{}
19275	}
19276
19277	output = &RegisterCertificateOutput{}
19278	req = c.newRequest(op, input, output)
19279	return
19280}
19281
19282// RegisterCertificate API operation for AWS IoT.
19283//
19284// Registers a device certificate with AWS IoT. If you have more than one CA
19285// certificate that has the same subject field, you must specify the CA certificate
19286// that was used to sign the device certificate being registered.
19287//
19288// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19289// with awserr.Error's Code and Message methods to get detailed information about
19290// the error.
19291//
19292// See the AWS API reference guide for AWS IoT's
19293// API operation RegisterCertificate for usage and error information.
19294//
19295// Returned Error Types:
19296//   * ResourceAlreadyExistsException
19297//   The resource already exists.
19298//
19299//   * InvalidRequestException
19300//   The request is not valid.
19301//
19302//   * CertificateValidationException
19303//   The certificate is invalid.
19304//
19305//   * CertificateStateException
19306//   The certificate operation is not allowed.
19307//
19308//   * CertificateConflictException
19309//   Unable to verify the CA certificate used to sign the device certificate you
19310//   are attempting to register. This is happens when you have registered more
19311//   than one CA certificate that has the same subject field and public key.
19312//
19313//   * ThrottlingException
19314//   The rate exceeds the limit.
19315//
19316//   * UnauthorizedException
19317//   You are not authorized to perform this operation.
19318//
19319//   * ServiceUnavailableException
19320//   The service is temporarily unavailable.
19321//
19322//   * InternalFailureException
19323//   An unexpected error has occurred.
19324//
19325func (c *IoT) RegisterCertificate(input *RegisterCertificateInput) (*RegisterCertificateOutput, error) {
19326	req, out := c.RegisterCertificateRequest(input)
19327	return out, req.Send()
19328}
19329
19330// RegisterCertificateWithContext is the same as RegisterCertificate with the addition of
19331// the ability to pass a context and additional request options.
19332//
19333// See RegisterCertificate for details on how to use this API operation.
19334//
19335// The context must be non-nil and will be used for request cancellation. If
19336// the context is nil a panic will occur. In the future the SDK may create
19337// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19338// for more information on using Contexts.
19339func (c *IoT) RegisterCertificateWithContext(ctx aws.Context, input *RegisterCertificateInput, opts ...request.Option) (*RegisterCertificateOutput, error) {
19340	req, out := c.RegisterCertificateRequest(input)
19341	req.SetContext(ctx)
19342	req.ApplyOptions(opts...)
19343	return out, req.Send()
19344}
19345
19346const opRegisterCertificateWithoutCA = "RegisterCertificateWithoutCA"
19347
19348// RegisterCertificateWithoutCARequest generates a "aws/request.Request" representing the
19349// client's request for the RegisterCertificateWithoutCA operation. The "output" return
19350// value will be populated with the request's response once the request completes
19351// successfully.
19352//
19353// Use "Send" method on the returned Request to send the API call to the service.
19354// the "output" return value is not valid until after Send returns without error.
19355//
19356// See RegisterCertificateWithoutCA for more information on using the RegisterCertificateWithoutCA
19357// API call, and error handling.
19358//
19359// This method is useful when you want to inject custom logic or configuration
19360// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19361//
19362//
19363//    // Example sending a request using the RegisterCertificateWithoutCARequest method.
19364//    req, resp := client.RegisterCertificateWithoutCARequest(params)
19365//
19366//    err := req.Send()
19367//    if err == nil { // resp is now filled
19368//        fmt.Println(resp)
19369//    }
19370func (c *IoT) RegisterCertificateWithoutCARequest(input *RegisterCertificateWithoutCAInput) (req *request.Request, output *RegisterCertificateWithoutCAOutput) {
19371	op := &request.Operation{
19372		Name:       opRegisterCertificateWithoutCA,
19373		HTTPMethod: "POST",
19374		HTTPPath:   "/certificate/register-no-ca",
19375	}
19376
19377	if input == nil {
19378		input = &RegisterCertificateWithoutCAInput{}
19379	}
19380
19381	output = &RegisterCertificateWithoutCAOutput{}
19382	req = c.newRequest(op, input, output)
19383	return
19384}
19385
19386// RegisterCertificateWithoutCA API operation for AWS IoT.
19387//
19388// Register a certificate that does not have a certificate authority (CA).
19389//
19390// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19391// with awserr.Error's Code and Message methods to get detailed information about
19392// the error.
19393//
19394// See the AWS API reference guide for AWS IoT's
19395// API operation RegisterCertificateWithoutCA for usage and error information.
19396//
19397// Returned Error Types:
19398//   * ResourceAlreadyExistsException
19399//   The resource already exists.
19400//
19401//   * InvalidRequestException
19402//   The request is not valid.
19403//
19404//   * CertificateStateException
19405//   The certificate operation is not allowed.
19406//
19407//   * CertificateValidationException
19408//   The certificate is invalid.
19409//
19410//   * ThrottlingException
19411//   The rate exceeds the limit.
19412//
19413//   * UnauthorizedException
19414//   You are not authorized to perform this operation.
19415//
19416//   * ServiceUnavailableException
19417//   The service is temporarily unavailable.
19418//
19419//   * InternalFailureException
19420//   An unexpected error has occurred.
19421//
19422func (c *IoT) RegisterCertificateWithoutCA(input *RegisterCertificateWithoutCAInput) (*RegisterCertificateWithoutCAOutput, error) {
19423	req, out := c.RegisterCertificateWithoutCARequest(input)
19424	return out, req.Send()
19425}
19426
19427// RegisterCertificateWithoutCAWithContext is the same as RegisterCertificateWithoutCA with the addition of
19428// the ability to pass a context and additional request options.
19429//
19430// See RegisterCertificateWithoutCA for details on how to use this API operation.
19431//
19432// The context must be non-nil and will be used for request cancellation. If
19433// the context is nil a panic will occur. In the future the SDK may create
19434// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19435// for more information on using Contexts.
19436func (c *IoT) RegisterCertificateWithoutCAWithContext(ctx aws.Context, input *RegisterCertificateWithoutCAInput, opts ...request.Option) (*RegisterCertificateWithoutCAOutput, error) {
19437	req, out := c.RegisterCertificateWithoutCARequest(input)
19438	req.SetContext(ctx)
19439	req.ApplyOptions(opts...)
19440	return out, req.Send()
19441}
19442
19443const opRegisterThing = "RegisterThing"
19444
19445// RegisterThingRequest generates a "aws/request.Request" representing the
19446// client's request for the RegisterThing operation. The "output" return
19447// value will be populated with the request's response once the request completes
19448// successfully.
19449//
19450// Use "Send" method on the returned Request to send the API call to the service.
19451// the "output" return value is not valid until after Send returns without error.
19452//
19453// See RegisterThing for more information on using the RegisterThing
19454// API call, and error handling.
19455//
19456// This method is useful when you want to inject custom logic or configuration
19457// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19458//
19459//
19460//    // Example sending a request using the RegisterThingRequest method.
19461//    req, resp := client.RegisterThingRequest(params)
19462//
19463//    err := req.Send()
19464//    if err == nil { // resp is now filled
19465//        fmt.Println(resp)
19466//    }
19467func (c *IoT) RegisterThingRequest(input *RegisterThingInput) (req *request.Request, output *RegisterThingOutput) {
19468	op := &request.Operation{
19469		Name:       opRegisterThing,
19470		HTTPMethod: "POST",
19471		HTTPPath:   "/things",
19472	}
19473
19474	if input == nil {
19475		input = &RegisterThingInput{}
19476	}
19477
19478	output = &RegisterThingOutput{}
19479	req = c.newRequest(op, input, output)
19480	return
19481}
19482
19483// RegisterThing API operation for AWS IoT.
19484//
19485// Provisions a thing in the device registry. RegisterThing calls other AWS
19486// IoT control plane APIs. These calls might exceed your account level AWS IoT
19487// Throttling Limits (https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_iot)
19488// and cause throttle errors. Please contact AWS Customer Support (https://console.aws.amazon.com/support/home)
19489// to raise your throttling limits if necessary.
19490//
19491// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19492// with awserr.Error's Code and Message methods to get detailed information about
19493// the error.
19494//
19495// See the AWS API reference guide for AWS IoT's
19496// API operation RegisterThing for usage and error information.
19497//
19498// Returned Error Types:
19499//   * InternalFailureException
19500//   An unexpected error has occurred.
19501//
19502//   * ServiceUnavailableException
19503//   The service is temporarily unavailable.
19504//
19505//   * InvalidRequestException
19506//   The request is not valid.
19507//
19508//   * UnauthorizedException
19509//   You are not authorized to perform this operation.
19510//
19511//   * ThrottlingException
19512//   The rate exceeds the limit.
19513//
19514//   * ConflictingResourceUpdateException
19515//   A conflicting resource update exception. This exception is thrown when two
19516//   pending updates cause a conflict.
19517//
19518//   * ResourceRegistrationFailureException
19519//   The resource registration failed.
19520//
19521func (c *IoT) RegisterThing(input *RegisterThingInput) (*RegisterThingOutput, error) {
19522	req, out := c.RegisterThingRequest(input)
19523	return out, req.Send()
19524}
19525
19526// RegisterThingWithContext is the same as RegisterThing with the addition of
19527// the ability to pass a context and additional request options.
19528//
19529// See RegisterThing for details on how to use this API operation.
19530//
19531// The context must be non-nil and will be used for request cancellation. If
19532// the context is nil a panic will occur. In the future the SDK may create
19533// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19534// for more information on using Contexts.
19535func (c *IoT) RegisterThingWithContext(ctx aws.Context, input *RegisterThingInput, opts ...request.Option) (*RegisterThingOutput, error) {
19536	req, out := c.RegisterThingRequest(input)
19537	req.SetContext(ctx)
19538	req.ApplyOptions(opts...)
19539	return out, req.Send()
19540}
19541
19542const opRejectCertificateTransfer = "RejectCertificateTransfer"
19543
19544// RejectCertificateTransferRequest generates a "aws/request.Request" representing the
19545// client's request for the RejectCertificateTransfer operation. The "output" return
19546// value will be populated with the request's response once the request completes
19547// successfully.
19548//
19549// Use "Send" method on the returned Request to send the API call to the service.
19550// the "output" return value is not valid until after Send returns without error.
19551//
19552// See RejectCertificateTransfer for more information on using the RejectCertificateTransfer
19553// API call, and error handling.
19554//
19555// This method is useful when you want to inject custom logic or configuration
19556// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19557//
19558//
19559//    // Example sending a request using the RejectCertificateTransferRequest method.
19560//    req, resp := client.RejectCertificateTransferRequest(params)
19561//
19562//    err := req.Send()
19563//    if err == nil { // resp is now filled
19564//        fmt.Println(resp)
19565//    }
19566func (c *IoT) RejectCertificateTransferRequest(input *RejectCertificateTransferInput) (req *request.Request, output *RejectCertificateTransferOutput) {
19567	op := &request.Operation{
19568		Name:       opRejectCertificateTransfer,
19569		HTTPMethod: "PATCH",
19570		HTTPPath:   "/reject-certificate-transfer/{certificateId}",
19571	}
19572
19573	if input == nil {
19574		input = &RejectCertificateTransferInput{}
19575	}
19576
19577	output = &RejectCertificateTransferOutput{}
19578	req = c.newRequest(op, input, output)
19579	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19580	return
19581}
19582
19583// RejectCertificateTransfer API operation for AWS IoT.
19584//
19585// Rejects a pending certificate transfer. After AWS IoT rejects a certificate
19586// transfer, the certificate status changes from PENDING_TRANSFER to INACTIVE.
19587//
19588// To check for pending certificate transfers, call ListCertificates to enumerate
19589// your certificates.
19590//
19591// This operation can only be called by the transfer destination. After it is
19592// called, the certificate will be returned to the source's account in the INACTIVE
19593// state.
19594//
19595// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19596// with awserr.Error's Code and Message methods to get detailed information about
19597// the error.
19598//
19599// See the AWS API reference guide for AWS IoT's
19600// API operation RejectCertificateTransfer for usage and error information.
19601//
19602// Returned Error Types:
19603//   * ResourceNotFoundException
19604//   The specified resource does not exist.
19605//
19606//   * TransferAlreadyCompletedException
19607//   You can't revert the certificate transfer because the transfer is already
19608//   complete.
19609//
19610//   * InvalidRequestException
19611//   The request is not valid.
19612//
19613//   * ThrottlingException
19614//   The rate exceeds the limit.
19615//
19616//   * UnauthorizedException
19617//   You are not authorized to perform this operation.
19618//
19619//   * ServiceUnavailableException
19620//   The service is temporarily unavailable.
19621//
19622//   * InternalFailureException
19623//   An unexpected error has occurred.
19624//
19625func (c *IoT) RejectCertificateTransfer(input *RejectCertificateTransferInput) (*RejectCertificateTransferOutput, error) {
19626	req, out := c.RejectCertificateTransferRequest(input)
19627	return out, req.Send()
19628}
19629
19630// RejectCertificateTransferWithContext is the same as RejectCertificateTransfer with the addition of
19631// the ability to pass a context and additional request options.
19632//
19633// See RejectCertificateTransfer for details on how to use this API operation.
19634//
19635// The context must be non-nil and will be used for request cancellation. If
19636// the context is nil a panic will occur. In the future the SDK may create
19637// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19638// for more information on using Contexts.
19639func (c *IoT) RejectCertificateTransferWithContext(ctx aws.Context, input *RejectCertificateTransferInput, opts ...request.Option) (*RejectCertificateTransferOutput, error) {
19640	req, out := c.RejectCertificateTransferRequest(input)
19641	req.SetContext(ctx)
19642	req.ApplyOptions(opts...)
19643	return out, req.Send()
19644}
19645
19646const opRemoveThingFromBillingGroup = "RemoveThingFromBillingGroup"
19647
19648// RemoveThingFromBillingGroupRequest generates a "aws/request.Request" representing the
19649// client's request for the RemoveThingFromBillingGroup operation. The "output" return
19650// value will be populated with the request's response once the request completes
19651// successfully.
19652//
19653// Use "Send" method on the returned Request to send the API call to the service.
19654// the "output" return value is not valid until after Send returns without error.
19655//
19656// See RemoveThingFromBillingGroup for more information on using the RemoveThingFromBillingGroup
19657// API call, and error handling.
19658//
19659// This method is useful when you want to inject custom logic or configuration
19660// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19661//
19662//
19663//    // Example sending a request using the RemoveThingFromBillingGroupRequest method.
19664//    req, resp := client.RemoveThingFromBillingGroupRequest(params)
19665//
19666//    err := req.Send()
19667//    if err == nil { // resp is now filled
19668//        fmt.Println(resp)
19669//    }
19670func (c *IoT) RemoveThingFromBillingGroupRequest(input *RemoveThingFromBillingGroupInput) (req *request.Request, output *RemoveThingFromBillingGroupOutput) {
19671	op := &request.Operation{
19672		Name:       opRemoveThingFromBillingGroup,
19673		HTTPMethod: "PUT",
19674		HTTPPath:   "/billing-groups/removeThingFromBillingGroup",
19675	}
19676
19677	if input == nil {
19678		input = &RemoveThingFromBillingGroupInput{}
19679	}
19680
19681	output = &RemoveThingFromBillingGroupOutput{}
19682	req = c.newRequest(op, input, output)
19683	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19684	return
19685}
19686
19687// RemoveThingFromBillingGroup API operation for AWS IoT.
19688//
19689// Removes the given thing from the billing group.
19690//
19691// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19692// with awserr.Error's Code and Message methods to get detailed information about
19693// the error.
19694//
19695// See the AWS API reference guide for AWS IoT's
19696// API operation RemoveThingFromBillingGroup for usage and error information.
19697//
19698// Returned Error Types:
19699//   * InvalidRequestException
19700//   The request is not valid.
19701//
19702//   * ThrottlingException
19703//   The rate exceeds the limit.
19704//
19705//   * InternalFailureException
19706//   An unexpected error has occurred.
19707//
19708//   * ResourceNotFoundException
19709//   The specified resource does not exist.
19710//
19711func (c *IoT) RemoveThingFromBillingGroup(input *RemoveThingFromBillingGroupInput) (*RemoveThingFromBillingGroupOutput, error) {
19712	req, out := c.RemoveThingFromBillingGroupRequest(input)
19713	return out, req.Send()
19714}
19715
19716// RemoveThingFromBillingGroupWithContext is the same as RemoveThingFromBillingGroup with the addition of
19717// the ability to pass a context and additional request options.
19718//
19719// See RemoveThingFromBillingGroup for details on how to use this API operation.
19720//
19721// The context must be non-nil and will be used for request cancellation. If
19722// the context is nil a panic will occur. In the future the SDK may create
19723// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19724// for more information on using Contexts.
19725func (c *IoT) RemoveThingFromBillingGroupWithContext(ctx aws.Context, input *RemoveThingFromBillingGroupInput, opts ...request.Option) (*RemoveThingFromBillingGroupOutput, error) {
19726	req, out := c.RemoveThingFromBillingGroupRequest(input)
19727	req.SetContext(ctx)
19728	req.ApplyOptions(opts...)
19729	return out, req.Send()
19730}
19731
19732const opRemoveThingFromThingGroup = "RemoveThingFromThingGroup"
19733
19734// RemoveThingFromThingGroupRequest generates a "aws/request.Request" representing the
19735// client's request for the RemoveThingFromThingGroup operation. The "output" return
19736// value will be populated with the request's response once the request completes
19737// successfully.
19738//
19739// Use "Send" method on the returned Request to send the API call to the service.
19740// the "output" return value is not valid until after Send returns without error.
19741//
19742// See RemoveThingFromThingGroup for more information on using the RemoveThingFromThingGroup
19743// API call, and error handling.
19744//
19745// This method is useful when you want to inject custom logic or configuration
19746// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19747//
19748//
19749//    // Example sending a request using the RemoveThingFromThingGroupRequest method.
19750//    req, resp := client.RemoveThingFromThingGroupRequest(params)
19751//
19752//    err := req.Send()
19753//    if err == nil { // resp is now filled
19754//        fmt.Println(resp)
19755//    }
19756func (c *IoT) RemoveThingFromThingGroupRequest(input *RemoveThingFromThingGroupInput) (req *request.Request, output *RemoveThingFromThingGroupOutput) {
19757	op := &request.Operation{
19758		Name:       opRemoveThingFromThingGroup,
19759		HTTPMethod: "PUT",
19760		HTTPPath:   "/thing-groups/removeThingFromThingGroup",
19761	}
19762
19763	if input == nil {
19764		input = &RemoveThingFromThingGroupInput{}
19765	}
19766
19767	output = &RemoveThingFromThingGroupOutput{}
19768	req = c.newRequest(op, input, output)
19769	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19770	return
19771}
19772
19773// RemoveThingFromThingGroup API operation for AWS IoT.
19774//
19775// Remove the specified thing from the specified group.
19776//
19777// You must specify either a thingGroupArn or a thingGroupName to identify the
19778// thing group and either a thingArn or a thingName to identify the thing to
19779// remove from the thing group.
19780//
19781// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19782// with awserr.Error's Code and Message methods to get detailed information about
19783// the error.
19784//
19785// See the AWS API reference guide for AWS IoT's
19786// API operation RemoveThingFromThingGroup for usage and error information.
19787//
19788// Returned Error Types:
19789//   * InvalidRequestException
19790//   The request is not valid.
19791//
19792//   * ThrottlingException
19793//   The rate exceeds the limit.
19794//
19795//   * InternalFailureException
19796//   An unexpected error has occurred.
19797//
19798//   * ResourceNotFoundException
19799//   The specified resource does not exist.
19800//
19801func (c *IoT) RemoveThingFromThingGroup(input *RemoveThingFromThingGroupInput) (*RemoveThingFromThingGroupOutput, error) {
19802	req, out := c.RemoveThingFromThingGroupRequest(input)
19803	return out, req.Send()
19804}
19805
19806// RemoveThingFromThingGroupWithContext is the same as RemoveThingFromThingGroup with the addition of
19807// the ability to pass a context and additional request options.
19808//
19809// See RemoveThingFromThingGroup for details on how to use this API operation.
19810//
19811// The context must be non-nil and will be used for request cancellation. If
19812// the context is nil a panic will occur. In the future the SDK may create
19813// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19814// for more information on using Contexts.
19815func (c *IoT) RemoveThingFromThingGroupWithContext(ctx aws.Context, input *RemoveThingFromThingGroupInput, opts ...request.Option) (*RemoveThingFromThingGroupOutput, error) {
19816	req, out := c.RemoveThingFromThingGroupRequest(input)
19817	req.SetContext(ctx)
19818	req.ApplyOptions(opts...)
19819	return out, req.Send()
19820}
19821
19822const opReplaceTopicRule = "ReplaceTopicRule"
19823
19824// ReplaceTopicRuleRequest generates a "aws/request.Request" representing the
19825// client's request for the ReplaceTopicRule operation. The "output" return
19826// value will be populated with the request's response once the request completes
19827// successfully.
19828//
19829// Use "Send" method on the returned Request to send the API call to the service.
19830// the "output" return value is not valid until after Send returns without error.
19831//
19832// See ReplaceTopicRule for more information on using the ReplaceTopicRule
19833// API call, and error handling.
19834//
19835// This method is useful when you want to inject custom logic or configuration
19836// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19837//
19838//
19839//    // Example sending a request using the ReplaceTopicRuleRequest method.
19840//    req, resp := client.ReplaceTopicRuleRequest(params)
19841//
19842//    err := req.Send()
19843//    if err == nil { // resp is now filled
19844//        fmt.Println(resp)
19845//    }
19846func (c *IoT) ReplaceTopicRuleRequest(input *ReplaceTopicRuleInput) (req *request.Request, output *ReplaceTopicRuleOutput) {
19847	op := &request.Operation{
19848		Name:       opReplaceTopicRule,
19849		HTTPMethod: "PATCH",
19850		HTTPPath:   "/rules/{ruleName}",
19851	}
19852
19853	if input == nil {
19854		input = &ReplaceTopicRuleInput{}
19855	}
19856
19857	output = &ReplaceTopicRuleOutput{}
19858	req = c.newRequest(op, input, output)
19859	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19860	return
19861}
19862
19863// ReplaceTopicRule API operation for AWS IoT.
19864//
19865// Replaces the rule. You must specify all parameters for the new rule. Creating
19866// rules is an administrator-level action. Any user who has permission to create
19867// rules will be able to access data processed by the rule.
19868//
19869// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19870// with awserr.Error's Code and Message methods to get detailed information about
19871// the error.
19872//
19873// See the AWS API reference guide for AWS IoT's
19874// API operation ReplaceTopicRule for usage and error information.
19875//
19876// Returned Error Types:
19877//   * SqlParseException
19878//   The Rule-SQL expression can't be parsed correctly.
19879//
19880//   * InternalException
19881//   An unexpected error has occurred.
19882//
19883//   * InvalidRequestException
19884//   The request is not valid.
19885//
19886//   * ServiceUnavailableException
19887//   The service is temporarily unavailable.
19888//
19889//   * UnauthorizedException
19890//   You are not authorized to perform this operation.
19891//
19892//   * ConflictingResourceUpdateException
19893//   A conflicting resource update exception. This exception is thrown when two
19894//   pending updates cause a conflict.
19895//
19896func (c *IoT) ReplaceTopicRule(input *ReplaceTopicRuleInput) (*ReplaceTopicRuleOutput, error) {
19897	req, out := c.ReplaceTopicRuleRequest(input)
19898	return out, req.Send()
19899}
19900
19901// ReplaceTopicRuleWithContext is the same as ReplaceTopicRule with the addition of
19902// the ability to pass a context and additional request options.
19903//
19904// See ReplaceTopicRule for details on how to use this API operation.
19905//
19906// The context must be non-nil and will be used for request cancellation. If
19907// the context is nil a panic will occur. In the future the SDK may create
19908// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19909// for more information on using Contexts.
19910func (c *IoT) ReplaceTopicRuleWithContext(ctx aws.Context, input *ReplaceTopicRuleInput, opts ...request.Option) (*ReplaceTopicRuleOutput, error) {
19911	req, out := c.ReplaceTopicRuleRequest(input)
19912	req.SetContext(ctx)
19913	req.ApplyOptions(opts...)
19914	return out, req.Send()
19915}
19916
19917const opSearchIndex = "SearchIndex"
19918
19919// SearchIndexRequest generates a "aws/request.Request" representing the
19920// client's request for the SearchIndex operation. The "output" return
19921// value will be populated with the request's response once the request completes
19922// successfully.
19923//
19924// Use "Send" method on the returned Request to send the API call to the service.
19925// the "output" return value is not valid until after Send returns without error.
19926//
19927// See SearchIndex for more information on using the SearchIndex
19928// API call, and error handling.
19929//
19930// This method is useful when you want to inject custom logic or configuration
19931// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19932//
19933//
19934//    // Example sending a request using the SearchIndexRequest method.
19935//    req, resp := client.SearchIndexRequest(params)
19936//
19937//    err := req.Send()
19938//    if err == nil { // resp is now filled
19939//        fmt.Println(resp)
19940//    }
19941func (c *IoT) SearchIndexRequest(input *SearchIndexInput) (req *request.Request, output *SearchIndexOutput) {
19942	op := &request.Operation{
19943		Name:       opSearchIndex,
19944		HTTPMethod: "POST",
19945		HTTPPath:   "/indices/search",
19946	}
19947
19948	if input == nil {
19949		input = &SearchIndexInput{}
19950	}
19951
19952	output = &SearchIndexOutput{}
19953	req = c.newRequest(op, input, output)
19954	return
19955}
19956
19957// SearchIndex API operation for AWS IoT.
19958//
19959// The query search index.
19960//
19961// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19962// with awserr.Error's Code and Message methods to get detailed information about
19963// the error.
19964//
19965// See the AWS API reference guide for AWS IoT's
19966// API operation SearchIndex for usage and error information.
19967//
19968// Returned Error Types:
19969//   * InvalidRequestException
19970//   The request is not valid.
19971//
19972//   * ThrottlingException
19973//   The rate exceeds the limit.
19974//
19975//   * UnauthorizedException
19976//   You are not authorized to perform this operation.
19977//
19978//   * ServiceUnavailableException
19979//   The service is temporarily unavailable.
19980//
19981//   * InternalFailureException
19982//   An unexpected error has occurred.
19983//
19984//   * ResourceNotFoundException
19985//   The specified resource does not exist.
19986//
19987//   * InvalidQueryException
19988//   The query is invalid.
19989//
19990//   * IndexNotReadyException
19991//   The index is not ready.
19992//
19993func (c *IoT) SearchIndex(input *SearchIndexInput) (*SearchIndexOutput, error) {
19994	req, out := c.SearchIndexRequest(input)
19995	return out, req.Send()
19996}
19997
19998// SearchIndexWithContext is the same as SearchIndex with the addition of
19999// the ability to pass a context and additional request options.
20000//
20001// See SearchIndex for details on how to use this API operation.
20002//
20003// The context must be non-nil and will be used for request cancellation. If
20004// the context is nil a panic will occur. In the future the SDK may create
20005// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20006// for more information on using Contexts.
20007func (c *IoT) SearchIndexWithContext(ctx aws.Context, input *SearchIndexInput, opts ...request.Option) (*SearchIndexOutput, error) {
20008	req, out := c.SearchIndexRequest(input)
20009	req.SetContext(ctx)
20010	req.ApplyOptions(opts...)
20011	return out, req.Send()
20012}
20013
20014const opSetDefaultAuthorizer = "SetDefaultAuthorizer"
20015
20016// SetDefaultAuthorizerRequest generates a "aws/request.Request" representing the
20017// client's request for the SetDefaultAuthorizer operation. The "output" return
20018// value will be populated with the request's response once the request completes
20019// successfully.
20020//
20021// Use "Send" method on the returned Request to send the API call to the service.
20022// the "output" return value is not valid until after Send returns without error.
20023//
20024// See SetDefaultAuthorizer for more information on using the SetDefaultAuthorizer
20025// API call, and error handling.
20026//
20027// This method is useful when you want to inject custom logic or configuration
20028// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20029//
20030//
20031//    // Example sending a request using the SetDefaultAuthorizerRequest method.
20032//    req, resp := client.SetDefaultAuthorizerRequest(params)
20033//
20034//    err := req.Send()
20035//    if err == nil { // resp is now filled
20036//        fmt.Println(resp)
20037//    }
20038func (c *IoT) SetDefaultAuthorizerRequest(input *SetDefaultAuthorizerInput) (req *request.Request, output *SetDefaultAuthorizerOutput) {
20039	op := &request.Operation{
20040		Name:       opSetDefaultAuthorizer,
20041		HTTPMethod: "POST",
20042		HTTPPath:   "/default-authorizer",
20043	}
20044
20045	if input == nil {
20046		input = &SetDefaultAuthorizerInput{}
20047	}
20048
20049	output = &SetDefaultAuthorizerOutput{}
20050	req = c.newRequest(op, input, output)
20051	return
20052}
20053
20054// SetDefaultAuthorizer API operation for AWS IoT.
20055//
20056// Sets the default authorizer. This will be used if a websocket connection
20057// is made without specifying an authorizer.
20058//
20059// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20060// with awserr.Error's Code and Message methods to get detailed information about
20061// the error.
20062//
20063// See the AWS API reference guide for AWS IoT's
20064// API operation SetDefaultAuthorizer for usage and error information.
20065//
20066// Returned Error Types:
20067//   * ResourceNotFoundException
20068//   The specified resource does not exist.
20069//
20070//   * InvalidRequestException
20071//   The request is not valid.
20072//
20073//   * ThrottlingException
20074//   The rate exceeds the limit.
20075//
20076//   * UnauthorizedException
20077//   You are not authorized to perform this operation.
20078//
20079//   * ServiceUnavailableException
20080//   The service is temporarily unavailable.
20081//
20082//   * InternalFailureException
20083//   An unexpected error has occurred.
20084//
20085//   * ResourceAlreadyExistsException
20086//   The resource already exists.
20087//
20088func (c *IoT) SetDefaultAuthorizer(input *SetDefaultAuthorizerInput) (*SetDefaultAuthorizerOutput, error) {
20089	req, out := c.SetDefaultAuthorizerRequest(input)
20090	return out, req.Send()
20091}
20092
20093// SetDefaultAuthorizerWithContext is the same as SetDefaultAuthorizer with the addition of
20094// the ability to pass a context and additional request options.
20095//
20096// See SetDefaultAuthorizer for details on how to use this API operation.
20097//
20098// The context must be non-nil and will be used for request cancellation. If
20099// the context is nil a panic will occur. In the future the SDK may create
20100// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20101// for more information on using Contexts.
20102func (c *IoT) SetDefaultAuthorizerWithContext(ctx aws.Context, input *SetDefaultAuthorizerInput, opts ...request.Option) (*SetDefaultAuthorizerOutput, error) {
20103	req, out := c.SetDefaultAuthorizerRequest(input)
20104	req.SetContext(ctx)
20105	req.ApplyOptions(opts...)
20106	return out, req.Send()
20107}
20108
20109const opSetDefaultPolicyVersion = "SetDefaultPolicyVersion"
20110
20111// SetDefaultPolicyVersionRequest generates a "aws/request.Request" representing the
20112// client's request for the SetDefaultPolicyVersion operation. The "output" return
20113// value will be populated with the request's response once the request completes
20114// successfully.
20115//
20116// Use "Send" method on the returned Request to send the API call to the service.
20117// the "output" return value is not valid until after Send returns without error.
20118//
20119// See SetDefaultPolicyVersion for more information on using the SetDefaultPolicyVersion
20120// API call, and error handling.
20121//
20122// This method is useful when you want to inject custom logic or configuration
20123// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20124//
20125//
20126//    // Example sending a request using the SetDefaultPolicyVersionRequest method.
20127//    req, resp := client.SetDefaultPolicyVersionRequest(params)
20128//
20129//    err := req.Send()
20130//    if err == nil { // resp is now filled
20131//        fmt.Println(resp)
20132//    }
20133func (c *IoT) SetDefaultPolicyVersionRequest(input *SetDefaultPolicyVersionInput) (req *request.Request, output *SetDefaultPolicyVersionOutput) {
20134	op := &request.Operation{
20135		Name:       opSetDefaultPolicyVersion,
20136		HTTPMethod: "PATCH",
20137		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
20138	}
20139
20140	if input == nil {
20141		input = &SetDefaultPolicyVersionInput{}
20142	}
20143
20144	output = &SetDefaultPolicyVersionOutput{}
20145	req = c.newRequest(op, input, output)
20146	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20147	return
20148}
20149
20150// SetDefaultPolicyVersion API operation for AWS IoT.
20151//
20152// Sets the specified version of the specified policy as the policy's default
20153// (operative) version. This action affects all certificates to which the policy
20154// is attached. To list the principals the policy is attached to, use the ListPrincipalPolicy
20155// API.
20156//
20157// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20158// with awserr.Error's Code and Message methods to get detailed information about
20159// the error.
20160//
20161// See the AWS API reference guide for AWS IoT's
20162// API operation SetDefaultPolicyVersion for usage and error information.
20163//
20164// Returned Error Types:
20165//   * ResourceNotFoundException
20166//   The specified resource does not exist.
20167//
20168//   * InvalidRequestException
20169//   The request is not valid.
20170//
20171//   * ThrottlingException
20172//   The rate exceeds the limit.
20173//
20174//   * UnauthorizedException
20175//   You are not authorized to perform this operation.
20176//
20177//   * ServiceUnavailableException
20178//   The service is temporarily unavailable.
20179//
20180//   * InternalFailureException
20181//   An unexpected error has occurred.
20182//
20183func (c *IoT) SetDefaultPolicyVersion(input *SetDefaultPolicyVersionInput) (*SetDefaultPolicyVersionOutput, error) {
20184	req, out := c.SetDefaultPolicyVersionRequest(input)
20185	return out, req.Send()
20186}
20187
20188// SetDefaultPolicyVersionWithContext is the same as SetDefaultPolicyVersion with the addition of
20189// the ability to pass a context and additional request options.
20190//
20191// See SetDefaultPolicyVersion for details on how to use this API operation.
20192//
20193// The context must be non-nil and will be used for request cancellation. If
20194// the context is nil a panic will occur. In the future the SDK may create
20195// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20196// for more information on using Contexts.
20197func (c *IoT) SetDefaultPolicyVersionWithContext(ctx aws.Context, input *SetDefaultPolicyVersionInput, opts ...request.Option) (*SetDefaultPolicyVersionOutput, error) {
20198	req, out := c.SetDefaultPolicyVersionRequest(input)
20199	req.SetContext(ctx)
20200	req.ApplyOptions(opts...)
20201	return out, req.Send()
20202}
20203
20204const opSetLoggingOptions = "SetLoggingOptions"
20205
20206// SetLoggingOptionsRequest generates a "aws/request.Request" representing the
20207// client's request for the SetLoggingOptions operation. The "output" return
20208// value will be populated with the request's response once the request completes
20209// successfully.
20210//
20211// Use "Send" method on the returned Request to send the API call to the service.
20212// the "output" return value is not valid until after Send returns without error.
20213//
20214// See SetLoggingOptions for more information on using the SetLoggingOptions
20215// API call, and error handling.
20216//
20217// This method is useful when you want to inject custom logic or configuration
20218// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20219//
20220//
20221//    // Example sending a request using the SetLoggingOptionsRequest method.
20222//    req, resp := client.SetLoggingOptionsRequest(params)
20223//
20224//    err := req.Send()
20225//    if err == nil { // resp is now filled
20226//        fmt.Println(resp)
20227//    }
20228func (c *IoT) SetLoggingOptionsRequest(input *SetLoggingOptionsInput) (req *request.Request, output *SetLoggingOptionsOutput) {
20229	op := &request.Operation{
20230		Name:       opSetLoggingOptions,
20231		HTTPMethod: "POST",
20232		HTTPPath:   "/loggingOptions",
20233	}
20234
20235	if input == nil {
20236		input = &SetLoggingOptionsInput{}
20237	}
20238
20239	output = &SetLoggingOptionsOutput{}
20240	req = c.newRequest(op, input, output)
20241	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20242	return
20243}
20244
20245// SetLoggingOptions API operation for AWS IoT.
20246//
20247// Sets the logging options.
20248//
20249// NOTE: use of this command is not recommended. Use SetV2LoggingOptions instead.
20250//
20251// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20252// with awserr.Error's Code and Message methods to get detailed information about
20253// the error.
20254//
20255// See the AWS API reference guide for AWS IoT's
20256// API operation SetLoggingOptions for usage and error information.
20257//
20258// Returned Error Types:
20259//   * InternalException
20260//   An unexpected error has occurred.
20261//
20262//   * InvalidRequestException
20263//   The request is not valid.
20264//
20265//   * ServiceUnavailableException
20266//   The service is temporarily unavailable.
20267//
20268func (c *IoT) SetLoggingOptions(input *SetLoggingOptionsInput) (*SetLoggingOptionsOutput, error) {
20269	req, out := c.SetLoggingOptionsRequest(input)
20270	return out, req.Send()
20271}
20272
20273// SetLoggingOptionsWithContext is the same as SetLoggingOptions with the addition of
20274// the ability to pass a context and additional request options.
20275//
20276// See SetLoggingOptions for details on how to use this API operation.
20277//
20278// The context must be non-nil and will be used for request cancellation. If
20279// the context is nil a panic will occur. In the future the SDK may create
20280// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20281// for more information on using Contexts.
20282func (c *IoT) SetLoggingOptionsWithContext(ctx aws.Context, input *SetLoggingOptionsInput, opts ...request.Option) (*SetLoggingOptionsOutput, error) {
20283	req, out := c.SetLoggingOptionsRequest(input)
20284	req.SetContext(ctx)
20285	req.ApplyOptions(opts...)
20286	return out, req.Send()
20287}
20288
20289const opSetV2LoggingLevel = "SetV2LoggingLevel"
20290
20291// SetV2LoggingLevelRequest generates a "aws/request.Request" representing the
20292// client's request for the SetV2LoggingLevel operation. The "output" return
20293// value will be populated with the request's response once the request completes
20294// successfully.
20295//
20296// Use "Send" method on the returned Request to send the API call to the service.
20297// the "output" return value is not valid until after Send returns without error.
20298//
20299// See SetV2LoggingLevel for more information on using the SetV2LoggingLevel
20300// API call, and error handling.
20301//
20302// This method is useful when you want to inject custom logic or configuration
20303// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20304//
20305//
20306//    // Example sending a request using the SetV2LoggingLevelRequest method.
20307//    req, resp := client.SetV2LoggingLevelRequest(params)
20308//
20309//    err := req.Send()
20310//    if err == nil { // resp is now filled
20311//        fmt.Println(resp)
20312//    }
20313func (c *IoT) SetV2LoggingLevelRequest(input *SetV2LoggingLevelInput) (req *request.Request, output *SetV2LoggingLevelOutput) {
20314	op := &request.Operation{
20315		Name:       opSetV2LoggingLevel,
20316		HTTPMethod: "POST",
20317		HTTPPath:   "/v2LoggingLevel",
20318	}
20319
20320	if input == nil {
20321		input = &SetV2LoggingLevelInput{}
20322	}
20323
20324	output = &SetV2LoggingLevelOutput{}
20325	req = c.newRequest(op, input, output)
20326	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20327	return
20328}
20329
20330// SetV2LoggingLevel API operation for AWS IoT.
20331//
20332// Sets the logging level.
20333//
20334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20335// with awserr.Error's Code and Message methods to get detailed information about
20336// the error.
20337//
20338// See the AWS API reference guide for AWS IoT's
20339// API operation SetV2LoggingLevel for usage and error information.
20340//
20341// Returned Error Types:
20342//   * InternalException
20343//   An unexpected error has occurred.
20344//
20345//   * NotConfiguredException
20346//   The resource is not configured.
20347//
20348//   * InvalidRequestException
20349//   The request is not valid.
20350//
20351//   * ServiceUnavailableException
20352//   The service is temporarily unavailable.
20353//
20354//   * LimitExceededException
20355//   A limit has been exceeded.
20356//
20357func (c *IoT) SetV2LoggingLevel(input *SetV2LoggingLevelInput) (*SetV2LoggingLevelOutput, error) {
20358	req, out := c.SetV2LoggingLevelRequest(input)
20359	return out, req.Send()
20360}
20361
20362// SetV2LoggingLevelWithContext is the same as SetV2LoggingLevel with the addition of
20363// the ability to pass a context and additional request options.
20364//
20365// See SetV2LoggingLevel for details on how to use this API operation.
20366//
20367// The context must be non-nil and will be used for request cancellation. If
20368// the context is nil a panic will occur. In the future the SDK may create
20369// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20370// for more information on using Contexts.
20371func (c *IoT) SetV2LoggingLevelWithContext(ctx aws.Context, input *SetV2LoggingLevelInput, opts ...request.Option) (*SetV2LoggingLevelOutput, error) {
20372	req, out := c.SetV2LoggingLevelRequest(input)
20373	req.SetContext(ctx)
20374	req.ApplyOptions(opts...)
20375	return out, req.Send()
20376}
20377
20378const opSetV2LoggingOptions = "SetV2LoggingOptions"
20379
20380// SetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
20381// client's request for the SetV2LoggingOptions operation. The "output" return
20382// value will be populated with the request's response once the request completes
20383// successfully.
20384//
20385// Use "Send" method on the returned Request to send the API call to the service.
20386// the "output" return value is not valid until after Send returns without error.
20387//
20388// See SetV2LoggingOptions for more information on using the SetV2LoggingOptions
20389// API call, and error handling.
20390//
20391// This method is useful when you want to inject custom logic or configuration
20392// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20393//
20394//
20395//    // Example sending a request using the SetV2LoggingOptionsRequest method.
20396//    req, resp := client.SetV2LoggingOptionsRequest(params)
20397//
20398//    err := req.Send()
20399//    if err == nil { // resp is now filled
20400//        fmt.Println(resp)
20401//    }
20402func (c *IoT) SetV2LoggingOptionsRequest(input *SetV2LoggingOptionsInput) (req *request.Request, output *SetV2LoggingOptionsOutput) {
20403	op := &request.Operation{
20404		Name:       opSetV2LoggingOptions,
20405		HTTPMethod: "POST",
20406		HTTPPath:   "/v2LoggingOptions",
20407	}
20408
20409	if input == nil {
20410		input = &SetV2LoggingOptionsInput{}
20411	}
20412
20413	output = &SetV2LoggingOptionsOutput{}
20414	req = c.newRequest(op, input, output)
20415	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20416	return
20417}
20418
20419// SetV2LoggingOptions API operation for AWS IoT.
20420//
20421// Sets the logging options for the V2 logging service.
20422//
20423// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20424// with awserr.Error's Code and Message methods to get detailed information about
20425// the error.
20426//
20427// See the AWS API reference guide for AWS IoT's
20428// API operation SetV2LoggingOptions for usage and error information.
20429//
20430// Returned Error Types:
20431//   * InternalException
20432//   An unexpected error has occurred.
20433//
20434//   * InvalidRequestException
20435//   The request is not valid.
20436//
20437//   * ServiceUnavailableException
20438//   The service is temporarily unavailable.
20439//
20440func (c *IoT) SetV2LoggingOptions(input *SetV2LoggingOptionsInput) (*SetV2LoggingOptionsOutput, error) {
20441	req, out := c.SetV2LoggingOptionsRequest(input)
20442	return out, req.Send()
20443}
20444
20445// SetV2LoggingOptionsWithContext is the same as SetV2LoggingOptions with the addition of
20446// the ability to pass a context and additional request options.
20447//
20448// See SetV2LoggingOptions for details on how to use this API operation.
20449//
20450// The context must be non-nil and will be used for request cancellation. If
20451// the context is nil a panic will occur. In the future the SDK may create
20452// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20453// for more information on using Contexts.
20454func (c *IoT) SetV2LoggingOptionsWithContext(ctx aws.Context, input *SetV2LoggingOptionsInput, opts ...request.Option) (*SetV2LoggingOptionsOutput, error) {
20455	req, out := c.SetV2LoggingOptionsRequest(input)
20456	req.SetContext(ctx)
20457	req.ApplyOptions(opts...)
20458	return out, req.Send()
20459}
20460
20461const opStartAuditMitigationActionsTask = "StartAuditMitigationActionsTask"
20462
20463// StartAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
20464// client's request for the StartAuditMitigationActionsTask operation. The "output" return
20465// value will be populated with the request's response once the request completes
20466// successfully.
20467//
20468// Use "Send" method on the returned Request to send the API call to the service.
20469// the "output" return value is not valid until after Send returns without error.
20470//
20471// See StartAuditMitigationActionsTask for more information on using the StartAuditMitigationActionsTask
20472// API call, and error handling.
20473//
20474// This method is useful when you want to inject custom logic or configuration
20475// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20476//
20477//
20478//    // Example sending a request using the StartAuditMitigationActionsTaskRequest method.
20479//    req, resp := client.StartAuditMitigationActionsTaskRequest(params)
20480//
20481//    err := req.Send()
20482//    if err == nil { // resp is now filled
20483//        fmt.Println(resp)
20484//    }
20485func (c *IoT) StartAuditMitigationActionsTaskRequest(input *StartAuditMitigationActionsTaskInput) (req *request.Request, output *StartAuditMitigationActionsTaskOutput) {
20486	op := &request.Operation{
20487		Name:       opStartAuditMitigationActionsTask,
20488		HTTPMethod: "POST",
20489		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}",
20490	}
20491
20492	if input == nil {
20493		input = &StartAuditMitigationActionsTaskInput{}
20494	}
20495
20496	output = &StartAuditMitigationActionsTaskOutput{}
20497	req = c.newRequest(op, input, output)
20498	return
20499}
20500
20501// StartAuditMitigationActionsTask API operation for AWS IoT.
20502//
20503// Starts a task that applies a set of mitigation actions to the specified target.
20504//
20505// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20506// with awserr.Error's Code and Message methods to get detailed information about
20507// the error.
20508//
20509// See the AWS API reference guide for AWS IoT's
20510// API operation StartAuditMitigationActionsTask for usage and error information.
20511//
20512// Returned Error Types:
20513//   * InvalidRequestException
20514//   The request is not valid.
20515//
20516//   * TaskAlreadyExistsException
20517//   This exception occurs if you attempt to start a task with the same task-id
20518//   as an existing task but with a different clientRequestToken.
20519//
20520//   * LimitExceededException
20521//   A limit has been exceeded.
20522//
20523//   * ThrottlingException
20524//   The rate exceeds the limit.
20525//
20526//   * InternalFailureException
20527//   An unexpected error has occurred.
20528//
20529func (c *IoT) StartAuditMitigationActionsTask(input *StartAuditMitigationActionsTaskInput) (*StartAuditMitigationActionsTaskOutput, error) {
20530	req, out := c.StartAuditMitigationActionsTaskRequest(input)
20531	return out, req.Send()
20532}
20533
20534// StartAuditMitigationActionsTaskWithContext is the same as StartAuditMitigationActionsTask with the addition of
20535// the ability to pass a context and additional request options.
20536//
20537// See StartAuditMitigationActionsTask for details on how to use this API operation.
20538//
20539// The context must be non-nil and will be used for request cancellation. If
20540// the context is nil a panic will occur. In the future the SDK may create
20541// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20542// for more information on using Contexts.
20543func (c *IoT) StartAuditMitigationActionsTaskWithContext(ctx aws.Context, input *StartAuditMitigationActionsTaskInput, opts ...request.Option) (*StartAuditMitigationActionsTaskOutput, error) {
20544	req, out := c.StartAuditMitigationActionsTaskRequest(input)
20545	req.SetContext(ctx)
20546	req.ApplyOptions(opts...)
20547	return out, req.Send()
20548}
20549
20550const opStartDetectMitigationActionsTask = "StartDetectMitigationActionsTask"
20551
20552// StartDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
20553// client's request for the StartDetectMitigationActionsTask operation. The "output" return
20554// value will be populated with the request's response once the request completes
20555// successfully.
20556//
20557// Use "Send" method on the returned Request to send the API call to the service.
20558// the "output" return value is not valid until after Send returns without error.
20559//
20560// See StartDetectMitigationActionsTask for more information on using the StartDetectMitigationActionsTask
20561// API call, and error handling.
20562//
20563// This method is useful when you want to inject custom logic or configuration
20564// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20565//
20566//
20567//    // Example sending a request using the StartDetectMitigationActionsTaskRequest method.
20568//    req, resp := client.StartDetectMitigationActionsTaskRequest(params)
20569//
20570//    err := req.Send()
20571//    if err == nil { // resp is now filled
20572//        fmt.Println(resp)
20573//    }
20574func (c *IoT) StartDetectMitigationActionsTaskRequest(input *StartDetectMitigationActionsTaskInput) (req *request.Request, output *StartDetectMitigationActionsTaskOutput) {
20575	op := &request.Operation{
20576		Name:       opStartDetectMitigationActionsTask,
20577		HTTPMethod: "PUT",
20578		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}",
20579	}
20580
20581	if input == nil {
20582		input = &StartDetectMitigationActionsTaskInput{}
20583	}
20584
20585	output = &StartDetectMitigationActionsTaskOutput{}
20586	req = c.newRequest(op, input, output)
20587	return
20588}
20589
20590// StartDetectMitigationActionsTask API operation for AWS IoT.
20591//
20592// Starts a Device Defender ML Detect mitigation actions task.
20593//
20594// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20595// with awserr.Error's Code and Message methods to get detailed information about
20596// the error.
20597//
20598// See the AWS API reference guide for AWS IoT's
20599// API operation StartDetectMitigationActionsTask for usage and error information.
20600//
20601// Returned Error Types:
20602//   * InvalidRequestException
20603//   The request is not valid.
20604//
20605//   * TaskAlreadyExistsException
20606//   This exception occurs if you attempt to start a task with the same task-id
20607//   as an existing task but with a different clientRequestToken.
20608//
20609//   * LimitExceededException
20610//   A limit has been exceeded.
20611//
20612//   * ThrottlingException
20613//   The rate exceeds the limit.
20614//
20615//   * InternalFailureException
20616//   An unexpected error has occurred.
20617//
20618func (c *IoT) StartDetectMitigationActionsTask(input *StartDetectMitigationActionsTaskInput) (*StartDetectMitigationActionsTaskOutput, error) {
20619	req, out := c.StartDetectMitigationActionsTaskRequest(input)
20620	return out, req.Send()
20621}
20622
20623// StartDetectMitigationActionsTaskWithContext is the same as StartDetectMitigationActionsTask with the addition of
20624// the ability to pass a context and additional request options.
20625//
20626// See StartDetectMitigationActionsTask for details on how to use this API operation.
20627//
20628// The context must be non-nil and will be used for request cancellation. If
20629// the context is nil a panic will occur. In the future the SDK may create
20630// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20631// for more information on using Contexts.
20632func (c *IoT) StartDetectMitigationActionsTaskWithContext(ctx aws.Context, input *StartDetectMitigationActionsTaskInput, opts ...request.Option) (*StartDetectMitigationActionsTaskOutput, error) {
20633	req, out := c.StartDetectMitigationActionsTaskRequest(input)
20634	req.SetContext(ctx)
20635	req.ApplyOptions(opts...)
20636	return out, req.Send()
20637}
20638
20639const opStartOnDemandAuditTask = "StartOnDemandAuditTask"
20640
20641// StartOnDemandAuditTaskRequest generates a "aws/request.Request" representing the
20642// client's request for the StartOnDemandAuditTask operation. The "output" return
20643// value will be populated with the request's response once the request completes
20644// successfully.
20645//
20646// Use "Send" method on the returned Request to send the API call to the service.
20647// the "output" return value is not valid until after Send returns without error.
20648//
20649// See StartOnDemandAuditTask for more information on using the StartOnDemandAuditTask
20650// API call, and error handling.
20651//
20652// This method is useful when you want to inject custom logic or configuration
20653// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20654//
20655//
20656//    // Example sending a request using the StartOnDemandAuditTaskRequest method.
20657//    req, resp := client.StartOnDemandAuditTaskRequest(params)
20658//
20659//    err := req.Send()
20660//    if err == nil { // resp is now filled
20661//        fmt.Println(resp)
20662//    }
20663func (c *IoT) StartOnDemandAuditTaskRequest(input *StartOnDemandAuditTaskInput) (req *request.Request, output *StartOnDemandAuditTaskOutput) {
20664	op := &request.Operation{
20665		Name:       opStartOnDemandAuditTask,
20666		HTTPMethod: "POST",
20667		HTTPPath:   "/audit/tasks",
20668	}
20669
20670	if input == nil {
20671		input = &StartOnDemandAuditTaskInput{}
20672	}
20673
20674	output = &StartOnDemandAuditTaskOutput{}
20675	req = c.newRequest(op, input, output)
20676	return
20677}
20678
20679// StartOnDemandAuditTask API operation for AWS IoT.
20680//
20681// Starts an on-demand Device Defender audit.
20682//
20683// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20684// with awserr.Error's Code and Message methods to get detailed information about
20685// the error.
20686//
20687// See the AWS API reference guide for AWS IoT's
20688// API operation StartOnDemandAuditTask for usage and error information.
20689//
20690// Returned Error Types:
20691//   * InvalidRequestException
20692//   The request is not valid.
20693//
20694//   * ThrottlingException
20695//   The rate exceeds the limit.
20696//
20697//   * InternalFailureException
20698//   An unexpected error has occurred.
20699//
20700//   * LimitExceededException
20701//   A limit has been exceeded.
20702//
20703func (c *IoT) StartOnDemandAuditTask(input *StartOnDemandAuditTaskInput) (*StartOnDemandAuditTaskOutput, error) {
20704	req, out := c.StartOnDemandAuditTaskRequest(input)
20705	return out, req.Send()
20706}
20707
20708// StartOnDemandAuditTaskWithContext is the same as StartOnDemandAuditTask with the addition of
20709// the ability to pass a context and additional request options.
20710//
20711// See StartOnDemandAuditTask for details on how to use this API operation.
20712//
20713// The context must be non-nil and will be used for request cancellation. If
20714// the context is nil a panic will occur. In the future the SDK may create
20715// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20716// for more information on using Contexts.
20717func (c *IoT) StartOnDemandAuditTaskWithContext(ctx aws.Context, input *StartOnDemandAuditTaskInput, opts ...request.Option) (*StartOnDemandAuditTaskOutput, error) {
20718	req, out := c.StartOnDemandAuditTaskRequest(input)
20719	req.SetContext(ctx)
20720	req.ApplyOptions(opts...)
20721	return out, req.Send()
20722}
20723
20724const opStartThingRegistrationTask = "StartThingRegistrationTask"
20725
20726// StartThingRegistrationTaskRequest generates a "aws/request.Request" representing the
20727// client's request for the StartThingRegistrationTask operation. The "output" return
20728// value will be populated with the request's response once the request completes
20729// successfully.
20730//
20731// Use "Send" method on the returned Request to send the API call to the service.
20732// the "output" return value is not valid until after Send returns without error.
20733//
20734// See StartThingRegistrationTask for more information on using the StartThingRegistrationTask
20735// API call, and error handling.
20736//
20737// This method is useful when you want to inject custom logic or configuration
20738// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20739//
20740//
20741//    // Example sending a request using the StartThingRegistrationTaskRequest method.
20742//    req, resp := client.StartThingRegistrationTaskRequest(params)
20743//
20744//    err := req.Send()
20745//    if err == nil { // resp is now filled
20746//        fmt.Println(resp)
20747//    }
20748func (c *IoT) StartThingRegistrationTaskRequest(input *StartThingRegistrationTaskInput) (req *request.Request, output *StartThingRegistrationTaskOutput) {
20749	op := &request.Operation{
20750		Name:       opStartThingRegistrationTask,
20751		HTTPMethod: "POST",
20752		HTTPPath:   "/thing-registration-tasks",
20753	}
20754
20755	if input == nil {
20756		input = &StartThingRegistrationTaskInput{}
20757	}
20758
20759	output = &StartThingRegistrationTaskOutput{}
20760	req = c.newRequest(op, input, output)
20761	return
20762}
20763
20764// StartThingRegistrationTask API operation for AWS IoT.
20765//
20766// Creates a bulk thing provisioning task.
20767//
20768// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20769// with awserr.Error's Code and Message methods to get detailed information about
20770// the error.
20771//
20772// See the AWS API reference guide for AWS IoT's
20773// API operation StartThingRegistrationTask for usage and error information.
20774//
20775// Returned Error Types:
20776//   * InvalidRequestException
20777//   The request is not valid.
20778//
20779//   * ThrottlingException
20780//   The rate exceeds the limit.
20781//
20782//   * UnauthorizedException
20783//   You are not authorized to perform this operation.
20784//
20785//   * InternalFailureException
20786//   An unexpected error has occurred.
20787//
20788func (c *IoT) StartThingRegistrationTask(input *StartThingRegistrationTaskInput) (*StartThingRegistrationTaskOutput, error) {
20789	req, out := c.StartThingRegistrationTaskRequest(input)
20790	return out, req.Send()
20791}
20792
20793// StartThingRegistrationTaskWithContext is the same as StartThingRegistrationTask with the addition of
20794// the ability to pass a context and additional request options.
20795//
20796// See StartThingRegistrationTask for details on how to use this API operation.
20797//
20798// The context must be non-nil and will be used for request cancellation. If
20799// the context is nil a panic will occur. In the future the SDK may create
20800// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20801// for more information on using Contexts.
20802func (c *IoT) StartThingRegistrationTaskWithContext(ctx aws.Context, input *StartThingRegistrationTaskInput, opts ...request.Option) (*StartThingRegistrationTaskOutput, error) {
20803	req, out := c.StartThingRegistrationTaskRequest(input)
20804	req.SetContext(ctx)
20805	req.ApplyOptions(opts...)
20806	return out, req.Send()
20807}
20808
20809const opStopThingRegistrationTask = "StopThingRegistrationTask"
20810
20811// StopThingRegistrationTaskRequest generates a "aws/request.Request" representing the
20812// client's request for the StopThingRegistrationTask operation. The "output" return
20813// value will be populated with the request's response once the request completes
20814// successfully.
20815//
20816// Use "Send" method on the returned Request to send the API call to the service.
20817// the "output" return value is not valid until after Send returns without error.
20818//
20819// See StopThingRegistrationTask for more information on using the StopThingRegistrationTask
20820// API call, and error handling.
20821//
20822// This method is useful when you want to inject custom logic or configuration
20823// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20824//
20825//
20826//    // Example sending a request using the StopThingRegistrationTaskRequest method.
20827//    req, resp := client.StopThingRegistrationTaskRequest(params)
20828//
20829//    err := req.Send()
20830//    if err == nil { // resp is now filled
20831//        fmt.Println(resp)
20832//    }
20833func (c *IoT) StopThingRegistrationTaskRequest(input *StopThingRegistrationTaskInput) (req *request.Request, output *StopThingRegistrationTaskOutput) {
20834	op := &request.Operation{
20835		Name:       opStopThingRegistrationTask,
20836		HTTPMethod: "PUT",
20837		HTTPPath:   "/thing-registration-tasks/{taskId}/cancel",
20838	}
20839
20840	if input == nil {
20841		input = &StopThingRegistrationTaskInput{}
20842	}
20843
20844	output = &StopThingRegistrationTaskOutput{}
20845	req = c.newRequest(op, input, output)
20846	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20847	return
20848}
20849
20850// StopThingRegistrationTask API operation for AWS IoT.
20851//
20852// Cancels a bulk thing provisioning task.
20853//
20854// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20855// with awserr.Error's Code and Message methods to get detailed information about
20856// the error.
20857//
20858// See the AWS API reference guide for AWS IoT's
20859// API operation StopThingRegistrationTask for usage and error information.
20860//
20861// Returned Error Types:
20862//   * InvalidRequestException
20863//   The request is not valid.
20864//
20865//   * ThrottlingException
20866//   The rate exceeds the limit.
20867//
20868//   * UnauthorizedException
20869//   You are not authorized to perform this operation.
20870//
20871//   * InternalFailureException
20872//   An unexpected error has occurred.
20873//
20874//   * ResourceNotFoundException
20875//   The specified resource does not exist.
20876//
20877func (c *IoT) StopThingRegistrationTask(input *StopThingRegistrationTaskInput) (*StopThingRegistrationTaskOutput, error) {
20878	req, out := c.StopThingRegistrationTaskRequest(input)
20879	return out, req.Send()
20880}
20881
20882// StopThingRegistrationTaskWithContext is the same as StopThingRegistrationTask with the addition of
20883// the ability to pass a context and additional request options.
20884//
20885// See StopThingRegistrationTask for details on how to use this API operation.
20886//
20887// The context must be non-nil and will be used for request cancellation. If
20888// the context is nil a panic will occur. In the future the SDK may create
20889// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20890// for more information on using Contexts.
20891func (c *IoT) StopThingRegistrationTaskWithContext(ctx aws.Context, input *StopThingRegistrationTaskInput, opts ...request.Option) (*StopThingRegistrationTaskOutput, error) {
20892	req, out := c.StopThingRegistrationTaskRequest(input)
20893	req.SetContext(ctx)
20894	req.ApplyOptions(opts...)
20895	return out, req.Send()
20896}
20897
20898const opTagResource = "TagResource"
20899
20900// TagResourceRequest generates a "aws/request.Request" representing the
20901// client's request for the TagResource operation. The "output" return
20902// value will be populated with the request's response once the request completes
20903// successfully.
20904//
20905// Use "Send" method on the returned Request to send the API call to the service.
20906// the "output" return value is not valid until after Send returns without error.
20907//
20908// See TagResource for more information on using the TagResource
20909// API call, and error handling.
20910//
20911// This method is useful when you want to inject custom logic or configuration
20912// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20913//
20914//
20915//    // Example sending a request using the TagResourceRequest method.
20916//    req, resp := client.TagResourceRequest(params)
20917//
20918//    err := req.Send()
20919//    if err == nil { // resp is now filled
20920//        fmt.Println(resp)
20921//    }
20922func (c *IoT) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
20923	op := &request.Operation{
20924		Name:       opTagResource,
20925		HTTPMethod: "POST",
20926		HTTPPath:   "/tags",
20927	}
20928
20929	if input == nil {
20930		input = &TagResourceInput{}
20931	}
20932
20933	output = &TagResourceOutput{}
20934	req = c.newRequest(op, input, output)
20935	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20936	return
20937}
20938
20939// TagResource API operation for AWS IoT.
20940//
20941// Adds to or modifies the tags of the given resource. Tags are metadata which
20942// can be used to manage a resource.
20943//
20944// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20945// with awserr.Error's Code and Message methods to get detailed information about
20946// the error.
20947//
20948// See the AWS API reference guide for AWS IoT's
20949// API operation TagResource for usage and error information.
20950//
20951// Returned Error Types:
20952//   * InvalidRequestException
20953//   The request is not valid.
20954//
20955//   * InternalFailureException
20956//   An unexpected error has occurred.
20957//
20958//   * ResourceNotFoundException
20959//   The specified resource does not exist.
20960//
20961//   * ThrottlingException
20962//   The rate exceeds the limit.
20963//
20964//   * LimitExceededException
20965//   A limit has been exceeded.
20966//
20967func (c *IoT) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
20968	req, out := c.TagResourceRequest(input)
20969	return out, req.Send()
20970}
20971
20972// TagResourceWithContext is the same as TagResource with the addition of
20973// the ability to pass a context and additional request options.
20974//
20975// See TagResource for details on how to use this API operation.
20976//
20977// The context must be non-nil and will be used for request cancellation. If
20978// the context is nil a panic will occur. In the future the SDK may create
20979// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20980// for more information on using Contexts.
20981func (c *IoT) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
20982	req, out := c.TagResourceRequest(input)
20983	req.SetContext(ctx)
20984	req.ApplyOptions(opts...)
20985	return out, req.Send()
20986}
20987
20988const opTestAuthorization = "TestAuthorization"
20989
20990// TestAuthorizationRequest generates a "aws/request.Request" representing the
20991// client's request for the TestAuthorization operation. The "output" return
20992// value will be populated with the request's response once the request completes
20993// successfully.
20994//
20995// Use "Send" method on the returned Request to send the API call to the service.
20996// the "output" return value is not valid until after Send returns without error.
20997//
20998// See TestAuthorization for more information on using the TestAuthorization
20999// API call, and error handling.
21000//
21001// This method is useful when you want to inject custom logic or configuration
21002// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21003//
21004//
21005//    // Example sending a request using the TestAuthorizationRequest method.
21006//    req, resp := client.TestAuthorizationRequest(params)
21007//
21008//    err := req.Send()
21009//    if err == nil { // resp is now filled
21010//        fmt.Println(resp)
21011//    }
21012func (c *IoT) TestAuthorizationRequest(input *TestAuthorizationInput) (req *request.Request, output *TestAuthorizationOutput) {
21013	op := &request.Operation{
21014		Name:       opTestAuthorization,
21015		HTTPMethod: "POST",
21016		HTTPPath:   "/test-authorization",
21017	}
21018
21019	if input == nil {
21020		input = &TestAuthorizationInput{}
21021	}
21022
21023	output = &TestAuthorizationOutput{}
21024	req = c.newRequest(op, input, output)
21025	return
21026}
21027
21028// TestAuthorization API operation for AWS IoT.
21029//
21030// Tests if a specified principal is authorized to perform an AWS IoT action
21031// on a specified resource. Use this to test and debug the authorization behavior
21032// of devices that connect to the AWS IoT device gateway.
21033//
21034// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21035// with awserr.Error's Code and Message methods to get detailed information about
21036// the error.
21037//
21038// See the AWS API reference guide for AWS IoT's
21039// API operation TestAuthorization for usage and error information.
21040//
21041// Returned Error Types:
21042//   * ResourceNotFoundException
21043//   The specified resource does not exist.
21044//
21045//   * InvalidRequestException
21046//   The request is not valid.
21047//
21048//   * ThrottlingException
21049//   The rate exceeds the limit.
21050//
21051//   * UnauthorizedException
21052//   You are not authorized to perform this operation.
21053//
21054//   * ServiceUnavailableException
21055//   The service is temporarily unavailable.
21056//
21057//   * InternalFailureException
21058//   An unexpected error has occurred.
21059//
21060//   * LimitExceededException
21061//   A limit has been exceeded.
21062//
21063func (c *IoT) TestAuthorization(input *TestAuthorizationInput) (*TestAuthorizationOutput, error) {
21064	req, out := c.TestAuthorizationRequest(input)
21065	return out, req.Send()
21066}
21067
21068// TestAuthorizationWithContext is the same as TestAuthorization with the addition of
21069// the ability to pass a context and additional request options.
21070//
21071// See TestAuthorization for details on how to use this API operation.
21072//
21073// The context must be non-nil and will be used for request cancellation. If
21074// the context is nil a panic will occur. In the future the SDK may create
21075// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21076// for more information on using Contexts.
21077func (c *IoT) TestAuthorizationWithContext(ctx aws.Context, input *TestAuthorizationInput, opts ...request.Option) (*TestAuthorizationOutput, error) {
21078	req, out := c.TestAuthorizationRequest(input)
21079	req.SetContext(ctx)
21080	req.ApplyOptions(opts...)
21081	return out, req.Send()
21082}
21083
21084const opTestInvokeAuthorizer = "TestInvokeAuthorizer"
21085
21086// TestInvokeAuthorizerRequest generates a "aws/request.Request" representing the
21087// client's request for the TestInvokeAuthorizer operation. The "output" return
21088// value will be populated with the request's response once the request completes
21089// successfully.
21090//
21091// Use "Send" method on the returned Request to send the API call to the service.
21092// the "output" return value is not valid until after Send returns without error.
21093//
21094// See TestInvokeAuthorizer for more information on using the TestInvokeAuthorizer
21095// API call, and error handling.
21096//
21097// This method is useful when you want to inject custom logic or configuration
21098// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21099//
21100//
21101//    // Example sending a request using the TestInvokeAuthorizerRequest method.
21102//    req, resp := client.TestInvokeAuthorizerRequest(params)
21103//
21104//    err := req.Send()
21105//    if err == nil { // resp is now filled
21106//        fmt.Println(resp)
21107//    }
21108func (c *IoT) TestInvokeAuthorizerRequest(input *TestInvokeAuthorizerInput) (req *request.Request, output *TestInvokeAuthorizerOutput) {
21109	op := &request.Operation{
21110		Name:       opTestInvokeAuthorizer,
21111		HTTPMethod: "POST",
21112		HTTPPath:   "/authorizer/{authorizerName}/test",
21113	}
21114
21115	if input == nil {
21116		input = &TestInvokeAuthorizerInput{}
21117	}
21118
21119	output = &TestInvokeAuthorizerOutput{}
21120	req = c.newRequest(op, input, output)
21121	return
21122}
21123
21124// TestInvokeAuthorizer API operation for AWS IoT.
21125//
21126// Tests a custom authorization behavior by invoking a specified custom authorizer.
21127// Use this to test and debug the custom authorization behavior of devices that
21128// connect to the AWS IoT device gateway.
21129//
21130// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21131// with awserr.Error's Code and Message methods to get detailed information about
21132// the error.
21133//
21134// See the AWS API reference guide for AWS IoT's
21135// API operation TestInvokeAuthorizer for usage and error information.
21136//
21137// Returned Error Types:
21138//   * ResourceNotFoundException
21139//   The specified resource does not exist.
21140//
21141//   * InvalidRequestException
21142//   The request is not valid.
21143//
21144//   * ThrottlingException
21145//   The rate exceeds the limit.
21146//
21147//   * UnauthorizedException
21148//   You are not authorized to perform this operation.
21149//
21150//   * ServiceUnavailableException
21151//   The service is temporarily unavailable.
21152//
21153//   * InternalFailureException
21154//   An unexpected error has occurred.
21155//
21156//   * InvalidResponseException
21157//   The response is invalid.
21158//
21159func (c *IoT) TestInvokeAuthorizer(input *TestInvokeAuthorizerInput) (*TestInvokeAuthorizerOutput, error) {
21160	req, out := c.TestInvokeAuthorizerRequest(input)
21161	return out, req.Send()
21162}
21163
21164// TestInvokeAuthorizerWithContext is the same as TestInvokeAuthorizer with the addition of
21165// the ability to pass a context and additional request options.
21166//
21167// See TestInvokeAuthorizer for details on how to use this API operation.
21168//
21169// The context must be non-nil and will be used for request cancellation. If
21170// the context is nil a panic will occur. In the future the SDK may create
21171// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21172// for more information on using Contexts.
21173func (c *IoT) TestInvokeAuthorizerWithContext(ctx aws.Context, input *TestInvokeAuthorizerInput, opts ...request.Option) (*TestInvokeAuthorizerOutput, error) {
21174	req, out := c.TestInvokeAuthorizerRequest(input)
21175	req.SetContext(ctx)
21176	req.ApplyOptions(opts...)
21177	return out, req.Send()
21178}
21179
21180const opTransferCertificate = "TransferCertificate"
21181
21182// TransferCertificateRequest generates a "aws/request.Request" representing the
21183// client's request for the TransferCertificate operation. The "output" return
21184// value will be populated with the request's response once the request completes
21185// successfully.
21186//
21187// Use "Send" method on the returned Request to send the API call to the service.
21188// the "output" return value is not valid until after Send returns without error.
21189//
21190// See TransferCertificate for more information on using the TransferCertificate
21191// API call, and error handling.
21192//
21193// This method is useful when you want to inject custom logic or configuration
21194// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21195//
21196//
21197//    // Example sending a request using the TransferCertificateRequest method.
21198//    req, resp := client.TransferCertificateRequest(params)
21199//
21200//    err := req.Send()
21201//    if err == nil { // resp is now filled
21202//        fmt.Println(resp)
21203//    }
21204func (c *IoT) TransferCertificateRequest(input *TransferCertificateInput) (req *request.Request, output *TransferCertificateOutput) {
21205	op := &request.Operation{
21206		Name:       opTransferCertificate,
21207		HTTPMethod: "PATCH",
21208		HTTPPath:   "/transfer-certificate/{certificateId}",
21209	}
21210
21211	if input == nil {
21212		input = &TransferCertificateInput{}
21213	}
21214
21215	output = &TransferCertificateOutput{}
21216	req = c.newRequest(op, input, output)
21217	return
21218}
21219
21220// TransferCertificate API operation for AWS IoT.
21221//
21222// Transfers the specified certificate to the specified AWS account.
21223//
21224// You can cancel the transfer until it is acknowledged by the recipient.
21225//
21226// No notification is sent to the transfer destination's account. It is up to
21227// the caller to notify the transfer target.
21228//
21229// The certificate being transferred must not be in the ACTIVE state. You can
21230// use the UpdateCertificate API to deactivate it.
21231//
21232// The certificate must not have any policies attached to it. You can use the
21233// DetachPrincipalPolicy API to detach them.
21234//
21235// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21236// with awserr.Error's Code and Message methods to get detailed information about
21237// the error.
21238//
21239// See the AWS API reference guide for AWS IoT's
21240// API operation TransferCertificate for usage and error information.
21241//
21242// Returned Error Types:
21243//   * InvalidRequestException
21244//   The request is not valid.
21245//
21246//   * ResourceNotFoundException
21247//   The specified resource does not exist.
21248//
21249//   * CertificateStateException
21250//   The certificate operation is not allowed.
21251//
21252//   * TransferConflictException
21253//   You can't transfer the certificate because authorization policies are still
21254//   attached.
21255//
21256//   * ThrottlingException
21257//   The rate exceeds the limit.
21258//
21259//   * UnauthorizedException
21260//   You are not authorized to perform this operation.
21261//
21262//   * ServiceUnavailableException
21263//   The service is temporarily unavailable.
21264//
21265//   * InternalFailureException
21266//   An unexpected error has occurred.
21267//
21268func (c *IoT) TransferCertificate(input *TransferCertificateInput) (*TransferCertificateOutput, error) {
21269	req, out := c.TransferCertificateRequest(input)
21270	return out, req.Send()
21271}
21272
21273// TransferCertificateWithContext is the same as TransferCertificate with the addition of
21274// the ability to pass a context and additional request options.
21275//
21276// See TransferCertificate for details on how to use this API operation.
21277//
21278// The context must be non-nil and will be used for request cancellation. If
21279// the context is nil a panic will occur. In the future the SDK may create
21280// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21281// for more information on using Contexts.
21282func (c *IoT) TransferCertificateWithContext(ctx aws.Context, input *TransferCertificateInput, opts ...request.Option) (*TransferCertificateOutput, error) {
21283	req, out := c.TransferCertificateRequest(input)
21284	req.SetContext(ctx)
21285	req.ApplyOptions(opts...)
21286	return out, req.Send()
21287}
21288
21289const opUntagResource = "UntagResource"
21290
21291// UntagResourceRequest generates a "aws/request.Request" representing the
21292// client's request for the UntagResource operation. The "output" return
21293// value will be populated with the request's response once the request completes
21294// successfully.
21295//
21296// Use "Send" method on the returned Request to send the API call to the service.
21297// the "output" return value is not valid until after Send returns without error.
21298//
21299// See UntagResource for more information on using the UntagResource
21300// API call, and error handling.
21301//
21302// This method is useful when you want to inject custom logic or configuration
21303// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21304//
21305//
21306//    // Example sending a request using the UntagResourceRequest method.
21307//    req, resp := client.UntagResourceRequest(params)
21308//
21309//    err := req.Send()
21310//    if err == nil { // resp is now filled
21311//        fmt.Println(resp)
21312//    }
21313func (c *IoT) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
21314	op := &request.Operation{
21315		Name:       opUntagResource,
21316		HTTPMethod: "POST",
21317		HTTPPath:   "/untag",
21318	}
21319
21320	if input == nil {
21321		input = &UntagResourceInput{}
21322	}
21323
21324	output = &UntagResourceOutput{}
21325	req = c.newRequest(op, input, output)
21326	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21327	return
21328}
21329
21330// UntagResource API operation for AWS IoT.
21331//
21332// Removes the given tags (metadata) from the resource.
21333//
21334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21335// with awserr.Error's Code and Message methods to get detailed information about
21336// the error.
21337//
21338// See the AWS API reference guide for AWS IoT's
21339// API operation UntagResource for usage and error information.
21340//
21341// Returned Error Types:
21342//   * InvalidRequestException
21343//   The request is not valid.
21344//
21345//   * InternalFailureException
21346//   An unexpected error has occurred.
21347//
21348//   * ResourceNotFoundException
21349//   The specified resource does not exist.
21350//
21351//   * ThrottlingException
21352//   The rate exceeds the limit.
21353//
21354func (c *IoT) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
21355	req, out := c.UntagResourceRequest(input)
21356	return out, req.Send()
21357}
21358
21359// UntagResourceWithContext is the same as UntagResource with the addition of
21360// the ability to pass a context and additional request options.
21361//
21362// See UntagResource for details on how to use this API operation.
21363//
21364// The context must be non-nil and will be used for request cancellation. If
21365// the context is nil a panic will occur. In the future the SDK may create
21366// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21367// for more information on using Contexts.
21368func (c *IoT) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
21369	req, out := c.UntagResourceRequest(input)
21370	req.SetContext(ctx)
21371	req.ApplyOptions(opts...)
21372	return out, req.Send()
21373}
21374
21375const opUpdateAccountAuditConfiguration = "UpdateAccountAuditConfiguration"
21376
21377// UpdateAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
21378// client's request for the UpdateAccountAuditConfiguration operation. The "output" return
21379// value will be populated with the request's response once the request completes
21380// successfully.
21381//
21382// Use "Send" method on the returned Request to send the API call to the service.
21383// the "output" return value is not valid until after Send returns without error.
21384//
21385// See UpdateAccountAuditConfiguration for more information on using the UpdateAccountAuditConfiguration
21386// API call, and error handling.
21387//
21388// This method is useful when you want to inject custom logic or configuration
21389// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21390//
21391//
21392//    // Example sending a request using the UpdateAccountAuditConfigurationRequest method.
21393//    req, resp := client.UpdateAccountAuditConfigurationRequest(params)
21394//
21395//    err := req.Send()
21396//    if err == nil { // resp is now filled
21397//        fmt.Println(resp)
21398//    }
21399func (c *IoT) UpdateAccountAuditConfigurationRequest(input *UpdateAccountAuditConfigurationInput) (req *request.Request, output *UpdateAccountAuditConfigurationOutput) {
21400	op := &request.Operation{
21401		Name:       opUpdateAccountAuditConfiguration,
21402		HTTPMethod: "PATCH",
21403		HTTPPath:   "/audit/configuration",
21404	}
21405
21406	if input == nil {
21407		input = &UpdateAccountAuditConfigurationInput{}
21408	}
21409
21410	output = &UpdateAccountAuditConfigurationOutput{}
21411	req = c.newRequest(op, input, output)
21412	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21413	return
21414}
21415
21416// UpdateAccountAuditConfiguration API operation for AWS IoT.
21417//
21418// Configures or reconfigures the Device Defender audit settings for this account.
21419// Settings include how audit notifications are sent and which audit checks
21420// are enabled or disabled.
21421//
21422// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21423// with awserr.Error's Code and Message methods to get detailed information about
21424// the error.
21425//
21426// See the AWS API reference guide for AWS IoT's
21427// API operation UpdateAccountAuditConfiguration for usage and error information.
21428//
21429// Returned Error Types:
21430//   * InvalidRequestException
21431//   The request is not valid.
21432//
21433//   * ThrottlingException
21434//   The rate exceeds the limit.
21435//
21436//   * InternalFailureException
21437//   An unexpected error has occurred.
21438//
21439func (c *IoT) UpdateAccountAuditConfiguration(input *UpdateAccountAuditConfigurationInput) (*UpdateAccountAuditConfigurationOutput, error) {
21440	req, out := c.UpdateAccountAuditConfigurationRequest(input)
21441	return out, req.Send()
21442}
21443
21444// UpdateAccountAuditConfigurationWithContext is the same as UpdateAccountAuditConfiguration with the addition of
21445// the ability to pass a context and additional request options.
21446//
21447// See UpdateAccountAuditConfiguration for details on how to use this API operation.
21448//
21449// The context must be non-nil and will be used for request cancellation. If
21450// the context is nil a panic will occur. In the future the SDK may create
21451// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21452// for more information on using Contexts.
21453func (c *IoT) UpdateAccountAuditConfigurationWithContext(ctx aws.Context, input *UpdateAccountAuditConfigurationInput, opts ...request.Option) (*UpdateAccountAuditConfigurationOutput, error) {
21454	req, out := c.UpdateAccountAuditConfigurationRequest(input)
21455	req.SetContext(ctx)
21456	req.ApplyOptions(opts...)
21457	return out, req.Send()
21458}
21459
21460const opUpdateAuditSuppression = "UpdateAuditSuppression"
21461
21462// UpdateAuditSuppressionRequest generates a "aws/request.Request" representing the
21463// client's request for the UpdateAuditSuppression operation. The "output" return
21464// value will be populated with the request's response once the request completes
21465// successfully.
21466//
21467// Use "Send" method on the returned Request to send the API call to the service.
21468// the "output" return value is not valid until after Send returns without error.
21469//
21470// See UpdateAuditSuppression for more information on using the UpdateAuditSuppression
21471// API call, and error handling.
21472//
21473// This method is useful when you want to inject custom logic or configuration
21474// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21475//
21476//
21477//    // Example sending a request using the UpdateAuditSuppressionRequest method.
21478//    req, resp := client.UpdateAuditSuppressionRequest(params)
21479//
21480//    err := req.Send()
21481//    if err == nil { // resp is now filled
21482//        fmt.Println(resp)
21483//    }
21484func (c *IoT) UpdateAuditSuppressionRequest(input *UpdateAuditSuppressionInput) (req *request.Request, output *UpdateAuditSuppressionOutput) {
21485	op := &request.Operation{
21486		Name:       opUpdateAuditSuppression,
21487		HTTPMethod: "PATCH",
21488		HTTPPath:   "/audit/suppressions/update",
21489	}
21490
21491	if input == nil {
21492		input = &UpdateAuditSuppressionInput{}
21493	}
21494
21495	output = &UpdateAuditSuppressionOutput{}
21496	req = c.newRequest(op, input, output)
21497	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21498	return
21499}
21500
21501// UpdateAuditSuppression API operation for AWS IoT.
21502//
21503// Updates a Device Defender audit suppression.
21504//
21505// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21506// with awserr.Error's Code and Message methods to get detailed information about
21507// the error.
21508//
21509// See the AWS API reference guide for AWS IoT's
21510// API operation UpdateAuditSuppression for usage and error information.
21511//
21512// Returned Error Types:
21513//   * InvalidRequestException
21514//   The request is not valid.
21515//
21516//   * ResourceNotFoundException
21517//   The specified resource does not exist.
21518//
21519//   * ThrottlingException
21520//   The rate exceeds the limit.
21521//
21522//   * InternalFailureException
21523//   An unexpected error has occurred.
21524//
21525func (c *IoT) UpdateAuditSuppression(input *UpdateAuditSuppressionInput) (*UpdateAuditSuppressionOutput, error) {
21526	req, out := c.UpdateAuditSuppressionRequest(input)
21527	return out, req.Send()
21528}
21529
21530// UpdateAuditSuppressionWithContext is the same as UpdateAuditSuppression with the addition of
21531// the ability to pass a context and additional request options.
21532//
21533// See UpdateAuditSuppression for details on how to use this API operation.
21534//
21535// The context must be non-nil and will be used for request cancellation. If
21536// the context is nil a panic will occur. In the future the SDK may create
21537// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21538// for more information on using Contexts.
21539func (c *IoT) UpdateAuditSuppressionWithContext(ctx aws.Context, input *UpdateAuditSuppressionInput, opts ...request.Option) (*UpdateAuditSuppressionOutput, error) {
21540	req, out := c.UpdateAuditSuppressionRequest(input)
21541	req.SetContext(ctx)
21542	req.ApplyOptions(opts...)
21543	return out, req.Send()
21544}
21545
21546const opUpdateAuthorizer = "UpdateAuthorizer"
21547
21548// UpdateAuthorizerRequest generates a "aws/request.Request" representing the
21549// client's request for the UpdateAuthorizer operation. The "output" return
21550// value will be populated with the request's response once the request completes
21551// successfully.
21552//
21553// Use "Send" method on the returned Request to send the API call to the service.
21554// the "output" return value is not valid until after Send returns without error.
21555//
21556// See UpdateAuthorizer for more information on using the UpdateAuthorizer
21557// API call, and error handling.
21558//
21559// This method is useful when you want to inject custom logic or configuration
21560// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21561//
21562//
21563//    // Example sending a request using the UpdateAuthorizerRequest method.
21564//    req, resp := client.UpdateAuthorizerRequest(params)
21565//
21566//    err := req.Send()
21567//    if err == nil { // resp is now filled
21568//        fmt.Println(resp)
21569//    }
21570func (c *IoT) UpdateAuthorizerRequest(input *UpdateAuthorizerInput) (req *request.Request, output *UpdateAuthorizerOutput) {
21571	op := &request.Operation{
21572		Name:       opUpdateAuthorizer,
21573		HTTPMethod: "PUT",
21574		HTTPPath:   "/authorizer/{authorizerName}",
21575	}
21576
21577	if input == nil {
21578		input = &UpdateAuthorizerInput{}
21579	}
21580
21581	output = &UpdateAuthorizerOutput{}
21582	req = c.newRequest(op, input, output)
21583	return
21584}
21585
21586// UpdateAuthorizer API operation for AWS IoT.
21587//
21588// Updates an authorizer.
21589//
21590// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21591// with awserr.Error's Code and Message methods to get detailed information about
21592// the error.
21593//
21594// See the AWS API reference guide for AWS IoT's
21595// API operation UpdateAuthorizer for usage and error information.
21596//
21597// Returned Error Types:
21598//   * ResourceNotFoundException
21599//   The specified resource does not exist.
21600//
21601//   * InvalidRequestException
21602//   The request is not valid.
21603//
21604//   * LimitExceededException
21605//   A limit has been exceeded.
21606//
21607//   * ThrottlingException
21608//   The rate exceeds the limit.
21609//
21610//   * UnauthorizedException
21611//   You are not authorized to perform this operation.
21612//
21613//   * ServiceUnavailableException
21614//   The service is temporarily unavailable.
21615//
21616//   * InternalFailureException
21617//   An unexpected error has occurred.
21618//
21619func (c *IoT) UpdateAuthorizer(input *UpdateAuthorizerInput) (*UpdateAuthorizerOutput, error) {
21620	req, out := c.UpdateAuthorizerRequest(input)
21621	return out, req.Send()
21622}
21623
21624// UpdateAuthorizerWithContext is the same as UpdateAuthorizer with the addition of
21625// the ability to pass a context and additional request options.
21626//
21627// See UpdateAuthorizer for details on how to use this API operation.
21628//
21629// The context must be non-nil and will be used for request cancellation. If
21630// the context is nil a panic will occur. In the future the SDK may create
21631// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21632// for more information on using Contexts.
21633func (c *IoT) UpdateAuthorizerWithContext(ctx aws.Context, input *UpdateAuthorizerInput, opts ...request.Option) (*UpdateAuthorizerOutput, error) {
21634	req, out := c.UpdateAuthorizerRequest(input)
21635	req.SetContext(ctx)
21636	req.ApplyOptions(opts...)
21637	return out, req.Send()
21638}
21639
21640const opUpdateBillingGroup = "UpdateBillingGroup"
21641
21642// UpdateBillingGroupRequest generates a "aws/request.Request" representing the
21643// client's request for the UpdateBillingGroup operation. The "output" return
21644// value will be populated with the request's response once the request completes
21645// successfully.
21646//
21647// Use "Send" method on the returned Request to send the API call to the service.
21648// the "output" return value is not valid until after Send returns without error.
21649//
21650// See UpdateBillingGroup for more information on using the UpdateBillingGroup
21651// API call, and error handling.
21652//
21653// This method is useful when you want to inject custom logic or configuration
21654// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21655//
21656//
21657//    // Example sending a request using the UpdateBillingGroupRequest method.
21658//    req, resp := client.UpdateBillingGroupRequest(params)
21659//
21660//    err := req.Send()
21661//    if err == nil { // resp is now filled
21662//        fmt.Println(resp)
21663//    }
21664func (c *IoT) UpdateBillingGroupRequest(input *UpdateBillingGroupInput) (req *request.Request, output *UpdateBillingGroupOutput) {
21665	op := &request.Operation{
21666		Name:       opUpdateBillingGroup,
21667		HTTPMethod: "PATCH",
21668		HTTPPath:   "/billing-groups/{billingGroupName}",
21669	}
21670
21671	if input == nil {
21672		input = &UpdateBillingGroupInput{}
21673	}
21674
21675	output = &UpdateBillingGroupOutput{}
21676	req = c.newRequest(op, input, output)
21677	return
21678}
21679
21680// UpdateBillingGroup API operation for AWS IoT.
21681//
21682// Updates information about the billing group.
21683//
21684// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21685// with awserr.Error's Code and Message methods to get detailed information about
21686// the error.
21687//
21688// See the AWS API reference guide for AWS IoT's
21689// API operation UpdateBillingGroup for usage and error information.
21690//
21691// Returned Error Types:
21692//   * InvalidRequestException
21693//   The request is not valid.
21694//
21695//   * VersionConflictException
21696//   An exception thrown when the version of an entity specified with the expectedVersion
21697//   parameter does not match the latest version in the system.
21698//
21699//   * ThrottlingException
21700//   The rate exceeds the limit.
21701//
21702//   * InternalFailureException
21703//   An unexpected error has occurred.
21704//
21705//   * ResourceNotFoundException
21706//   The specified resource does not exist.
21707//
21708func (c *IoT) UpdateBillingGroup(input *UpdateBillingGroupInput) (*UpdateBillingGroupOutput, error) {
21709	req, out := c.UpdateBillingGroupRequest(input)
21710	return out, req.Send()
21711}
21712
21713// UpdateBillingGroupWithContext is the same as UpdateBillingGroup with the addition of
21714// the ability to pass a context and additional request options.
21715//
21716// See UpdateBillingGroup for details on how to use this API operation.
21717//
21718// The context must be non-nil and will be used for request cancellation. If
21719// the context is nil a panic will occur. In the future the SDK may create
21720// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21721// for more information on using Contexts.
21722func (c *IoT) UpdateBillingGroupWithContext(ctx aws.Context, input *UpdateBillingGroupInput, opts ...request.Option) (*UpdateBillingGroupOutput, error) {
21723	req, out := c.UpdateBillingGroupRequest(input)
21724	req.SetContext(ctx)
21725	req.ApplyOptions(opts...)
21726	return out, req.Send()
21727}
21728
21729const opUpdateCACertificate = "UpdateCACertificate"
21730
21731// UpdateCACertificateRequest generates a "aws/request.Request" representing the
21732// client's request for the UpdateCACertificate operation. The "output" return
21733// value will be populated with the request's response once the request completes
21734// successfully.
21735//
21736// Use "Send" method on the returned Request to send the API call to the service.
21737// the "output" return value is not valid until after Send returns without error.
21738//
21739// See UpdateCACertificate for more information on using the UpdateCACertificate
21740// API call, and error handling.
21741//
21742// This method is useful when you want to inject custom logic or configuration
21743// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21744//
21745//
21746//    // Example sending a request using the UpdateCACertificateRequest method.
21747//    req, resp := client.UpdateCACertificateRequest(params)
21748//
21749//    err := req.Send()
21750//    if err == nil { // resp is now filled
21751//        fmt.Println(resp)
21752//    }
21753func (c *IoT) UpdateCACertificateRequest(input *UpdateCACertificateInput) (req *request.Request, output *UpdateCACertificateOutput) {
21754	op := &request.Operation{
21755		Name:       opUpdateCACertificate,
21756		HTTPMethod: "PUT",
21757		HTTPPath:   "/cacertificate/{caCertificateId}",
21758	}
21759
21760	if input == nil {
21761		input = &UpdateCACertificateInput{}
21762	}
21763
21764	output = &UpdateCACertificateOutput{}
21765	req = c.newRequest(op, input, output)
21766	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21767	return
21768}
21769
21770// UpdateCACertificate API operation for AWS IoT.
21771//
21772// Updates a registered CA certificate.
21773//
21774// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21775// with awserr.Error's Code and Message methods to get detailed information about
21776// the error.
21777//
21778// See the AWS API reference guide for AWS IoT's
21779// API operation UpdateCACertificate for usage and error information.
21780//
21781// Returned Error Types:
21782//   * ResourceNotFoundException
21783//   The specified resource does not exist.
21784//
21785//   * InvalidRequestException
21786//   The request is not valid.
21787//
21788//   * ThrottlingException
21789//   The rate exceeds the limit.
21790//
21791//   * UnauthorizedException
21792//   You are not authorized to perform this operation.
21793//
21794//   * ServiceUnavailableException
21795//   The service is temporarily unavailable.
21796//
21797//   * InternalFailureException
21798//   An unexpected error has occurred.
21799//
21800func (c *IoT) UpdateCACertificate(input *UpdateCACertificateInput) (*UpdateCACertificateOutput, error) {
21801	req, out := c.UpdateCACertificateRequest(input)
21802	return out, req.Send()
21803}
21804
21805// UpdateCACertificateWithContext is the same as UpdateCACertificate with the addition of
21806// the ability to pass a context and additional request options.
21807//
21808// See UpdateCACertificate for details on how to use this API operation.
21809//
21810// The context must be non-nil and will be used for request cancellation. If
21811// the context is nil a panic will occur. In the future the SDK may create
21812// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21813// for more information on using Contexts.
21814func (c *IoT) UpdateCACertificateWithContext(ctx aws.Context, input *UpdateCACertificateInput, opts ...request.Option) (*UpdateCACertificateOutput, error) {
21815	req, out := c.UpdateCACertificateRequest(input)
21816	req.SetContext(ctx)
21817	req.ApplyOptions(opts...)
21818	return out, req.Send()
21819}
21820
21821const opUpdateCertificate = "UpdateCertificate"
21822
21823// UpdateCertificateRequest generates a "aws/request.Request" representing the
21824// client's request for the UpdateCertificate operation. The "output" return
21825// value will be populated with the request's response once the request completes
21826// successfully.
21827//
21828// Use "Send" method on the returned Request to send the API call to the service.
21829// the "output" return value is not valid until after Send returns without error.
21830//
21831// See UpdateCertificate for more information on using the UpdateCertificate
21832// API call, and error handling.
21833//
21834// This method is useful when you want to inject custom logic or configuration
21835// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21836//
21837//
21838//    // Example sending a request using the UpdateCertificateRequest method.
21839//    req, resp := client.UpdateCertificateRequest(params)
21840//
21841//    err := req.Send()
21842//    if err == nil { // resp is now filled
21843//        fmt.Println(resp)
21844//    }
21845func (c *IoT) UpdateCertificateRequest(input *UpdateCertificateInput) (req *request.Request, output *UpdateCertificateOutput) {
21846	op := &request.Operation{
21847		Name:       opUpdateCertificate,
21848		HTTPMethod: "PUT",
21849		HTTPPath:   "/certificates/{certificateId}",
21850	}
21851
21852	if input == nil {
21853		input = &UpdateCertificateInput{}
21854	}
21855
21856	output = &UpdateCertificateOutput{}
21857	req = c.newRequest(op, input, output)
21858	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21859	return
21860}
21861
21862// UpdateCertificate API operation for AWS IoT.
21863//
21864// Updates the status of the specified certificate. This operation is idempotent.
21865//
21866// Certificates must be in the ACTIVE state to authenticate devices that use
21867// a certificate to connect to AWS IoT.
21868//
21869// Within a few minutes of updating a certificate from the ACTIVE state to any
21870// other state, AWS IoT disconnects all devices that used that certificate to
21871// connect. Devices cannot use a certificate that is not in the ACTIVE state
21872// to reconnect.
21873//
21874// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21875// with awserr.Error's Code and Message methods to get detailed information about
21876// the error.
21877//
21878// See the AWS API reference guide for AWS IoT's
21879// API operation UpdateCertificate for usage and error information.
21880//
21881// Returned Error Types:
21882//   * ResourceNotFoundException
21883//   The specified resource does not exist.
21884//
21885//   * CertificateStateException
21886//   The certificate operation is not allowed.
21887//
21888//   * InvalidRequestException
21889//   The request is not valid.
21890//
21891//   * ThrottlingException
21892//   The rate exceeds the limit.
21893//
21894//   * UnauthorizedException
21895//   You are not authorized to perform this operation.
21896//
21897//   * ServiceUnavailableException
21898//   The service is temporarily unavailable.
21899//
21900//   * InternalFailureException
21901//   An unexpected error has occurred.
21902//
21903func (c *IoT) UpdateCertificate(input *UpdateCertificateInput) (*UpdateCertificateOutput, error) {
21904	req, out := c.UpdateCertificateRequest(input)
21905	return out, req.Send()
21906}
21907
21908// UpdateCertificateWithContext is the same as UpdateCertificate with the addition of
21909// the ability to pass a context and additional request options.
21910//
21911// See UpdateCertificate for details on how to use this API operation.
21912//
21913// The context must be non-nil and will be used for request cancellation. If
21914// the context is nil a panic will occur. In the future the SDK may create
21915// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21916// for more information on using Contexts.
21917func (c *IoT) UpdateCertificateWithContext(ctx aws.Context, input *UpdateCertificateInput, opts ...request.Option) (*UpdateCertificateOutput, error) {
21918	req, out := c.UpdateCertificateRequest(input)
21919	req.SetContext(ctx)
21920	req.ApplyOptions(opts...)
21921	return out, req.Send()
21922}
21923
21924const opUpdateCustomMetric = "UpdateCustomMetric"
21925
21926// UpdateCustomMetricRequest generates a "aws/request.Request" representing the
21927// client's request for the UpdateCustomMetric operation. The "output" return
21928// value will be populated with the request's response once the request completes
21929// successfully.
21930//
21931// Use "Send" method on the returned Request to send the API call to the service.
21932// the "output" return value is not valid until after Send returns without error.
21933//
21934// See UpdateCustomMetric for more information on using the UpdateCustomMetric
21935// API call, and error handling.
21936//
21937// This method is useful when you want to inject custom logic or configuration
21938// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21939//
21940//
21941//    // Example sending a request using the UpdateCustomMetricRequest method.
21942//    req, resp := client.UpdateCustomMetricRequest(params)
21943//
21944//    err := req.Send()
21945//    if err == nil { // resp is now filled
21946//        fmt.Println(resp)
21947//    }
21948func (c *IoT) UpdateCustomMetricRequest(input *UpdateCustomMetricInput) (req *request.Request, output *UpdateCustomMetricOutput) {
21949	op := &request.Operation{
21950		Name:       opUpdateCustomMetric,
21951		HTTPMethod: "PATCH",
21952		HTTPPath:   "/custom-metric/{metricName}",
21953	}
21954
21955	if input == nil {
21956		input = &UpdateCustomMetricInput{}
21957	}
21958
21959	output = &UpdateCustomMetricOutput{}
21960	req = c.newRequest(op, input, output)
21961	return
21962}
21963
21964// UpdateCustomMetric API operation for AWS IoT.
21965//
21966// Updates a Device Defender detect custom metric.
21967//
21968// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21969// with awserr.Error's Code and Message methods to get detailed information about
21970// the error.
21971//
21972// See the AWS API reference guide for AWS IoT's
21973// API operation UpdateCustomMetric for usage and error information.
21974//
21975// Returned Error Types:
21976//   * InvalidRequestException
21977//   The request is not valid.
21978//
21979//   * ResourceNotFoundException
21980//   The specified resource does not exist.
21981//
21982//   * ThrottlingException
21983//   The rate exceeds the limit.
21984//
21985//   * InternalFailureException
21986//   An unexpected error has occurred.
21987//
21988func (c *IoT) UpdateCustomMetric(input *UpdateCustomMetricInput) (*UpdateCustomMetricOutput, error) {
21989	req, out := c.UpdateCustomMetricRequest(input)
21990	return out, req.Send()
21991}
21992
21993// UpdateCustomMetricWithContext is the same as UpdateCustomMetric with the addition of
21994// the ability to pass a context and additional request options.
21995//
21996// See UpdateCustomMetric for details on how to use this API operation.
21997//
21998// The context must be non-nil and will be used for request cancellation. If
21999// the context is nil a panic will occur. In the future the SDK may create
22000// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22001// for more information on using Contexts.
22002func (c *IoT) UpdateCustomMetricWithContext(ctx aws.Context, input *UpdateCustomMetricInput, opts ...request.Option) (*UpdateCustomMetricOutput, error) {
22003	req, out := c.UpdateCustomMetricRequest(input)
22004	req.SetContext(ctx)
22005	req.ApplyOptions(opts...)
22006	return out, req.Send()
22007}
22008
22009const opUpdateDimension = "UpdateDimension"
22010
22011// UpdateDimensionRequest generates a "aws/request.Request" representing the
22012// client's request for the UpdateDimension operation. The "output" return
22013// value will be populated with the request's response once the request completes
22014// successfully.
22015//
22016// Use "Send" method on the returned Request to send the API call to the service.
22017// the "output" return value is not valid until after Send returns without error.
22018//
22019// See UpdateDimension for more information on using the UpdateDimension
22020// API call, and error handling.
22021//
22022// This method is useful when you want to inject custom logic or configuration
22023// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22024//
22025//
22026//    // Example sending a request using the UpdateDimensionRequest method.
22027//    req, resp := client.UpdateDimensionRequest(params)
22028//
22029//    err := req.Send()
22030//    if err == nil { // resp is now filled
22031//        fmt.Println(resp)
22032//    }
22033func (c *IoT) UpdateDimensionRequest(input *UpdateDimensionInput) (req *request.Request, output *UpdateDimensionOutput) {
22034	op := &request.Operation{
22035		Name:       opUpdateDimension,
22036		HTTPMethod: "PATCH",
22037		HTTPPath:   "/dimensions/{name}",
22038	}
22039
22040	if input == nil {
22041		input = &UpdateDimensionInput{}
22042	}
22043
22044	output = &UpdateDimensionOutput{}
22045	req = c.newRequest(op, input, output)
22046	return
22047}
22048
22049// UpdateDimension API operation for AWS IoT.
22050//
22051// Updates the definition for a dimension. You cannot change the type of a dimension
22052// after it is created (you can delete it and recreate it).
22053//
22054// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22055// with awserr.Error's Code and Message methods to get detailed information about
22056// the error.
22057//
22058// See the AWS API reference guide for AWS IoT's
22059// API operation UpdateDimension for usage and error information.
22060//
22061// Returned Error Types:
22062//   * InternalFailureException
22063//   An unexpected error has occurred.
22064//
22065//   * InvalidRequestException
22066//   The request is not valid.
22067//
22068//   * ResourceNotFoundException
22069//   The specified resource does not exist.
22070//
22071//   * ThrottlingException
22072//   The rate exceeds the limit.
22073//
22074func (c *IoT) UpdateDimension(input *UpdateDimensionInput) (*UpdateDimensionOutput, error) {
22075	req, out := c.UpdateDimensionRequest(input)
22076	return out, req.Send()
22077}
22078
22079// UpdateDimensionWithContext is the same as UpdateDimension with the addition of
22080// the ability to pass a context and additional request options.
22081//
22082// See UpdateDimension for details on how to use this API operation.
22083//
22084// The context must be non-nil and will be used for request cancellation. If
22085// the context is nil a panic will occur. In the future the SDK may create
22086// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22087// for more information on using Contexts.
22088func (c *IoT) UpdateDimensionWithContext(ctx aws.Context, input *UpdateDimensionInput, opts ...request.Option) (*UpdateDimensionOutput, error) {
22089	req, out := c.UpdateDimensionRequest(input)
22090	req.SetContext(ctx)
22091	req.ApplyOptions(opts...)
22092	return out, req.Send()
22093}
22094
22095const opUpdateDomainConfiguration = "UpdateDomainConfiguration"
22096
22097// UpdateDomainConfigurationRequest generates a "aws/request.Request" representing the
22098// client's request for the UpdateDomainConfiguration operation. The "output" return
22099// value will be populated with the request's response once the request completes
22100// successfully.
22101//
22102// Use "Send" method on the returned Request to send the API call to the service.
22103// the "output" return value is not valid until after Send returns without error.
22104//
22105// See UpdateDomainConfiguration for more information on using the UpdateDomainConfiguration
22106// API call, and error handling.
22107//
22108// This method is useful when you want to inject custom logic or configuration
22109// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22110//
22111//
22112//    // Example sending a request using the UpdateDomainConfigurationRequest method.
22113//    req, resp := client.UpdateDomainConfigurationRequest(params)
22114//
22115//    err := req.Send()
22116//    if err == nil { // resp is now filled
22117//        fmt.Println(resp)
22118//    }
22119func (c *IoT) UpdateDomainConfigurationRequest(input *UpdateDomainConfigurationInput) (req *request.Request, output *UpdateDomainConfigurationOutput) {
22120	op := &request.Operation{
22121		Name:       opUpdateDomainConfiguration,
22122		HTTPMethod: "PUT",
22123		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
22124	}
22125
22126	if input == nil {
22127		input = &UpdateDomainConfigurationInput{}
22128	}
22129
22130	output = &UpdateDomainConfigurationOutput{}
22131	req = c.newRequest(op, input, output)
22132	return
22133}
22134
22135// UpdateDomainConfiguration API operation for AWS IoT.
22136//
22137// Updates values stored in the domain configuration. Domain configurations
22138// for default endpoints can't be updated.
22139//
22140// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22141// with awserr.Error's Code and Message methods to get detailed information about
22142// the error.
22143//
22144// See the AWS API reference guide for AWS IoT's
22145// API operation UpdateDomainConfiguration for usage and error information.
22146//
22147// Returned Error Types:
22148//   * ResourceNotFoundException
22149//   The specified resource does not exist.
22150//
22151//   * CertificateValidationException
22152//   The certificate is invalid.
22153//
22154//   * InvalidRequestException
22155//   The request is not valid.
22156//
22157//   * ThrottlingException
22158//   The rate exceeds the limit.
22159//
22160//   * UnauthorizedException
22161//   You are not authorized to perform this operation.
22162//
22163//   * ServiceUnavailableException
22164//   The service is temporarily unavailable.
22165//
22166//   * InternalFailureException
22167//   An unexpected error has occurred.
22168//
22169func (c *IoT) UpdateDomainConfiguration(input *UpdateDomainConfigurationInput) (*UpdateDomainConfigurationOutput, error) {
22170	req, out := c.UpdateDomainConfigurationRequest(input)
22171	return out, req.Send()
22172}
22173
22174// UpdateDomainConfigurationWithContext is the same as UpdateDomainConfiguration with the addition of
22175// the ability to pass a context and additional request options.
22176//
22177// See UpdateDomainConfiguration for details on how to use this API operation.
22178//
22179// The context must be non-nil and will be used for request cancellation. If
22180// the context is nil a panic will occur. In the future the SDK may create
22181// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22182// for more information on using Contexts.
22183func (c *IoT) UpdateDomainConfigurationWithContext(ctx aws.Context, input *UpdateDomainConfigurationInput, opts ...request.Option) (*UpdateDomainConfigurationOutput, error) {
22184	req, out := c.UpdateDomainConfigurationRequest(input)
22185	req.SetContext(ctx)
22186	req.ApplyOptions(opts...)
22187	return out, req.Send()
22188}
22189
22190const opUpdateDynamicThingGroup = "UpdateDynamicThingGroup"
22191
22192// UpdateDynamicThingGroupRequest generates a "aws/request.Request" representing the
22193// client's request for the UpdateDynamicThingGroup operation. The "output" return
22194// value will be populated with the request's response once the request completes
22195// successfully.
22196//
22197// Use "Send" method on the returned Request to send the API call to the service.
22198// the "output" return value is not valid until after Send returns without error.
22199//
22200// See UpdateDynamicThingGroup for more information on using the UpdateDynamicThingGroup
22201// API call, and error handling.
22202//
22203// This method is useful when you want to inject custom logic or configuration
22204// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22205//
22206//
22207//    // Example sending a request using the UpdateDynamicThingGroupRequest method.
22208//    req, resp := client.UpdateDynamicThingGroupRequest(params)
22209//
22210//    err := req.Send()
22211//    if err == nil { // resp is now filled
22212//        fmt.Println(resp)
22213//    }
22214func (c *IoT) UpdateDynamicThingGroupRequest(input *UpdateDynamicThingGroupInput) (req *request.Request, output *UpdateDynamicThingGroupOutput) {
22215	op := &request.Operation{
22216		Name:       opUpdateDynamicThingGroup,
22217		HTTPMethod: "PATCH",
22218		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
22219	}
22220
22221	if input == nil {
22222		input = &UpdateDynamicThingGroupInput{}
22223	}
22224
22225	output = &UpdateDynamicThingGroupOutput{}
22226	req = c.newRequest(op, input, output)
22227	return
22228}
22229
22230// UpdateDynamicThingGroup API operation for AWS IoT.
22231//
22232// Updates a dynamic thing group.
22233//
22234// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22235// with awserr.Error's Code and Message methods to get detailed information about
22236// the error.
22237//
22238// See the AWS API reference guide for AWS IoT's
22239// API operation UpdateDynamicThingGroup for usage and error information.
22240//
22241// Returned Error Types:
22242//   * InvalidRequestException
22243//   The request is not valid.
22244//
22245//   * VersionConflictException
22246//   An exception thrown when the version of an entity specified with the expectedVersion
22247//   parameter does not match the latest version in the system.
22248//
22249//   * ThrottlingException
22250//   The rate exceeds the limit.
22251//
22252//   * InternalFailureException
22253//   An unexpected error has occurred.
22254//
22255//   * ResourceNotFoundException
22256//   The specified resource does not exist.
22257//
22258//   * InvalidQueryException
22259//   The query is invalid.
22260//
22261func (c *IoT) UpdateDynamicThingGroup(input *UpdateDynamicThingGroupInput) (*UpdateDynamicThingGroupOutput, error) {
22262	req, out := c.UpdateDynamicThingGroupRequest(input)
22263	return out, req.Send()
22264}
22265
22266// UpdateDynamicThingGroupWithContext is the same as UpdateDynamicThingGroup with the addition of
22267// the ability to pass a context and additional request options.
22268//
22269// See UpdateDynamicThingGroup for details on how to use this API operation.
22270//
22271// The context must be non-nil and will be used for request cancellation. If
22272// the context is nil a panic will occur. In the future the SDK may create
22273// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22274// for more information on using Contexts.
22275func (c *IoT) UpdateDynamicThingGroupWithContext(ctx aws.Context, input *UpdateDynamicThingGroupInput, opts ...request.Option) (*UpdateDynamicThingGroupOutput, error) {
22276	req, out := c.UpdateDynamicThingGroupRequest(input)
22277	req.SetContext(ctx)
22278	req.ApplyOptions(opts...)
22279	return out, req.Send()
22280}
22281
22282const opUpdateEventConfigurations = "UpdateEventConfigurations"
22283
22284// UpdateEventConfigurationsRequest generates a "aws/request.Request" representing the
22285// client's request for the UpdateEventConfigurations operation. The "output" return
22286// value will be populated with the request's response once the request completes
22287// successfully.
22288//
22289// Use "Send" method on the returned Request to send the API call to the service.
22290// the "output" return value is not valid until after Send returns without error.
22291//
22292// See UpdateEventConfigurations for more information on using the UpdateEventConfigurations
22293// API call, and error handling.
22294//
22295// This method is useful when you want to inject custom logic or configuration
22296// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22297//
22298//
22299//    // Example sending a request using the UpdateEventConfigurationsRequest method.
22300//    req, resp := client.UpdateEventConfigurationsRequest(params)
22301//
22302//    err := req.Send()
22303//    if err == nil { // resp is now filled
22304//        fmt.Println(resp)
22305//    }
22306func (c *IoT) UpdateEventConfigurationsRequest(input *UpdateEventConfigurationsInput) (req *request.Request, output *UpdateEventConfigurationsOutput) {
22307	op := &request.Operation{
22308		Name:       opUpdateEventConfigurations,
22309		HTTPMethod: "PATCH",
22310		HTTPPath:   "/event-configurations",
22311	}
22312
22313	if input == nil {
22314		input = &UpdateEventConfigurationsInput{}
22315	}
22316
22317	output = &UpdateEventConfigurationsOutput{}
22318	req = c.newRequest(op, input, output)
22319	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22320	return
22321}
22322
22323// UpdateEventConfigurations API operation for AWS IoT.
22324//
22325// Updates the event configurations.
22326//
22327// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22328// with awserr.Error's Code and Message methods to get detailed information about
22329// the error.
22330//
22331// See the AWS API reference guide for AWS IoT's
22332// API operation UpdateEventConfigurations for usage and error information.
22333//
22334// Returned Error Types:
22335//   * InvalidRequestException
22336//   The request is not valid.
22337//
22338//   * InternalFailureException
22339//   An unexpected error has occurred.
22340//
22341//   * ThrottlingException
22342//   The rate exceeds the limit.
22343//
22344func (c *IoT) UpdateEventConfigurations(input *UpdateEventConfigurationsInput) (*UpdateEventConfigurationsOutput, error) {
22345	req, out := c.UpdateEventConfigurationsRequest(input)
22346	return out, req.Send()
22347}
22348
22349// UpdateEventConfigurationsWithContext is the same as UpdateEventConfigurations with the addition of
22350// the ability to pass a context and additional request options.
22351//
22352// See UpdateEventConfigurations for details on how to use this API operation.
22353//
22354// The context must be non-nil and will be used for request cancellation. If
22355// the context is nil a panic will occur. In the future the SDK may create
22356// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22357// for more information on using Contexts.
22358func (c *IoT) UpdateEventConfigurationsWithContext(ctx aws.Context, input *UpdateEventConfigurationsInput, opts ...request.Option) (*UpdateEventConfigurationsOutput, error) {
22359	req, out := c.UpdateEventConfigurationsRequest(input)
22360	req.SetContext(ctx)
22361	req.ApplyOptions(opts...)
22362	return out, req.Send()
22363}
22364
22365const opUpdateIndexingConfiguration = "UpdateIndexingConfiguration"
22366
22367// UpdateIndexingConfigurationRequest generates a "aws/request.Request" representing the
22368// client's request for the UpdateIndexingConfiguration operation. The "output" return
22369// value will be populated with the request's response once the request completes
22370// successfully.
22371//
22372// Use "Send" method on the returned Request to send the API call to the service.
22373// the "output" return value is not valid until after Send returns without error.
22374//
22375// See UpdateIndexingConfiguration for more information on using the UpdateIndexingConfiguration
22376// API call, and error handling.
22377//
22378// This method is useful when you want to inject custom logic or configuration
22379// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22380//
22381//
22382//    // Example sending a request using the UpdateIndexingConfigurationRequest method.
22383//    req, resp := client.UpdateIndexingConfigurationRequest(params)
22384//
22385//    err := req.Send()
22386//    if err == nil { // resp is now filled
22387//        fmt.Println(resp)
22388//    }
22389func (c *IoT) UpdateIndexingConfigurationRequest(input *UpdateIndexingConfigurationInput) (req *request.Request, output *UpdateIndexingConfigurationOutput) {
22390	op := &request.Operation{
22391		Name:       opUpdateIndexingConfiguration,
22392		HTTPMethod: "POST",
22393		HTTPPath:   "/indexing/config",
22394	}
22395
22396	if input == nil {
22397		input = &UpdateIndexingConfigurationInput{}
22398	}
22399
22400	output = &UpdateIndexingConfigurationOutput{}
22401	req = c.newRequest(op, input, output)
22402	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22403	return
22404}
22405
22406// UpdateIndexingConfiguration API operation for AWS IoT.
22407//
22408// Updates the search configuration.
22409//
22410// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22411// with awserr.Error's Code and Message methods to get detailed information about
22412// the error.
22413//
22414// See the AWS API reference guide for AWS IoT's
22415// API operation UpdateIndexingConfiguration for usage and error information.
22416//
22417// Returned Error Types:
22418//   * InvalidRequestException
22419//   The request is not valid.
22420//
22421//   * ThrottlingException
22422//   The rate exceeds the limit.
22423//
22424//   * UnauthorizedException
22425//   You are not authorized to perform this operation.
22426//
22427//   * ServiceUnavailableException
22428//   The service is temporarily unavailable.
22429//
22430//   * InternalFailureException
22431//   An unexpected error has occurred.
22432//
22433func (c *IoT) UpdateIndexingConfiguration(input *UpdateIndexingConfigurationInput) (*UpdateIndexingConfigurationOutput, error) {
22434	req, out := c.UpdateIndexingConfigurationRequest(input)
22435	return out, req.Send()
22436}
22437
22438// UpdateIndexingConfigurationWithContext is the same as UpdateIndexingConfiguration with the addition of
22439// the ability to pass a context and additional request options.
22440//
22441// See UpdateIndexingConfiguration for details on how to use this API operation.
22442//
22443// The context must be non-nil and will be used for request cancellation. If
22444// the context is nil a panic will occur. In the future the SDK may create
22445// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22446// for more information on using Contexts.
22447func (c *IoT) UpdateIndexingConfigurationWithContext(ctx aws.Context, input *UpdateIndexingConfigurationInput, opts ...request.Option) (*UpdateIndexingConfigurationOutput, error) {
22448	req, out := c.UpdateIndexingConfigurationRequest(input)
22449	req.SetContext(ctx)
22450	req.ApplyOptions(opts...)
22451	return out, req.Send()
22452}
22453
22454const opUpdateJob = "UpdateJob"
22455
22456// UpdateJobRequest generates a "aws/request.Request" representing the
22457// client's request for the UpdateJob operation. The "output" return
22458// value will be populated with the request's response once the request completes
22459// successfully.
22460//
22461// Use "Send" method on the returned Request to send the API call to the service.
22462// the "output" return value is not valid until after Send returns without error.
22463//
22464// See UpdateJob for more information on using the UpdateJob
22465// API call, and error handling.
22466//
22467// This method is useful when you want to inject custom logic or configuration
22468// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22469//
22470//
22471//    // Example sending a request using the UpdateJobRequest method.
22472//    req, resp := client.UpdateJobRequest(params)
22473//
22474//    err := req.Send()
22475//    if err == nil { // resp is now filled
22476//        fmt.Println(resp)
22477//    }
22478func (c *IoT) UpdateJobRequest(input *UpdateJobInput) (req *request.Request, output *UpdateJobOutput) {
22479	op := &request.Operation{
22480		Name:       opUpdateJob,
22481		HTTPMethod: "PATCH",
22482		HTTPPath:   "/jobs/{jobId}",
22483	}
22484
22485	if input == nil {
22486		input = &UpdateJobInput{}
22487	}
22488
22489	output = &UpdateJobOutput{}
22490	req = c.newRequest(op, input, output)
22491	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22492	return
22493}
22494
22495// UpdateJob API operation for AWS IoT.
22496//
22497// Updates supported fields of the specified job.
22498//
22499// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22500// with awserr.Error's Code and Message methods to get detailed information about
22501// the error.
22502//
22503// See the AWS API reference guide for AWS IoT's
22504// API operation UpdateJob for usage and error information.
22505//
22506// Returned Error Types:
22507//   * InvalidRequestException
22508//   The request is not valid.
22509//
22510//   * ResourceNotFoundException
22511//   The specified resource does not exist.
22512//
22513//   * ThrottlingException
22514//   The rate exceeds the limit.
22515//
22516//   * ServiceUnavailableException
22517//   The service is temporarily unavailable.
22518//
22519func (c *IoT) UpdateJob(input *UpdateJobInput) (*UpdateJobOutput, error) {
22520	req, out := c.UpdateJobRequest(input)
22521	return out, req.Send()
22522}
22523
22524// UpdateJobWithContext is the same as UpdateJob with the addition of
22525// the ability to pass a context and additional request options.
22526//
22527// See UpdateJob for details on how to use this API operation.
22528//
22529// The context must be non-nil and will be used for request cancellation. If
22530// the context is nil a panic will occur. In the future the SDK may create
22531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22532// for more information on using Contexts.
22533func (c *IoT) UpdateJobWithContext(ctx aws.Context, input *UpdateJobInput, opts ...request.Option) (*UpdateJobOutput, error) {
22534	req, out := c.UpdateJobRequest(input)
22535	req.SetContext(ctx)
22536	req.ApplyOptions(opts...)
22537	return out, req.Send()
22538}
22539
22540const opUpdateMitigationAction = "UpdateMitigationAction"
22541
22542// UpdateMitigationActionRequest generates a "aws/request.Request" representing the
22543// client's request for the UpdateMitigationAction operation. The "output" return
22544// value will be populated with the request's response once the request completes
22545// successfully.
22546//
22547// Use "Send" method on the returned Request to send the API call to the service.
22548// the "output" return value is not valid until after Send returns without error.
22549//
22550// See UpdateMitigationAction for more information on using the UpdateMitigationAction
22551// API call, and error handling.
22552//
22553// This method is useful when you want to inject custom logic or configuration
22554// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22555//
22556//
22557//    // Example sending a request using the UpdateMitigationActionRequest method.
22558//    req, resp := client.UpdateMitigationActionRequest(params)
22559//
22560//    err := req.Send()
22561//    if err == nil { // resp is now filled
22562//        fmt.Println(resp)
22563//    }
22564func (c *IoT) UpdateMitigationActionRequest(input *UpdateMitigationActionInput) (req *request.Request, output *UpdateMitigationActionOutput) {
22565	op := &request.Operation{
22566		Name:       opUpdateMitigationAction,
22567		HTTPMethod: "PATCH",
22568		HTTPPath:   "/mitigationactions/actions/{actionName}",
22569	}
22570
22571	if input == nil {
22572		input = &UpdateMitigationActionInput{}
22573	}
22574
22575	output = &UpdateMitigationActionOutput{}
22576	req = c.newRequest(op, input, output)
22577	return
22578}
22579
22580// UpdateMitigationAction API operation for AWS IoT.
22581//
22582// Updates the definition for the specified mitigation action.
22583//
22584// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22585// with awserr.Error's Code and Message methods to get detailed information about
22586// the error.
22587//
22588// See the AWS API reference guide for AWS IoT's
22589// API operation UpdateMitigationAction for usage and error information.
22590//
22591// Returned Error Types:
22592//   * InvalidRequestException
22593//   The request is not valid.
22594//
22595//   * ResourceNotFoundException
22596//   The specified resource does not exist.
22597//
22598//   * ThrottlingException
22599//   The rate exceeds the limit.
22600//
22601//   * InternalFailureException
22602//   An unexpected error has occurred.
22603//
22604func (c *IoT) UpdateMitigationAction(input *UpdateMitigationActionInput) (*UpdateMitigationActionOutput, error) {
22605	req, out := c.UpdateMitigationActionRequest(input)
22606	return out, req.Send()
22607}
22608
22609// UpdateMitigationActionWithContext is the same as UpdateMitigationAction with the addition of
22610// the ability to pass a context and additional request options.
22611//
22612// See UpdateMitigationAction for details on how to use this API operation.
22613//
22614// The context must be non-nil and will be used for request cancellation. If
22615// the context is nil a panic will occur. In the future the SDK may create
22616// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22617// for more information on using Contexts.
22618func (c *IoT) UpdateMitigationActionWithContext(ctx aws.Context, input *UpdateMitigationActionInput, opts ...request.Option) (*UpdateMitigationActionOutput, error) {
22619	req, out := c.UpdateMitigationActionRequest(input)
22620	req.SetContext(ctx)
22621	req.ApplyOptions(opts...)
22622	return out, req.Send()
22623}
22624
22625const opUpdateProvisioningTemplate = "UpdateProvisioningTemplate"
22626
22627// UpdateProvisioningTemplateRequest generates a "aws/request.Request" representing the
22628// client's request for the UpdateProvisioningTemplate operation. The "output" return
22629// value will be populated with the request's response once the request completes
22630// successfully.
22631//
22632// Use "Send" method on the returned Request to send the API call to the service.
22633// the "output" return value is not valid until after Send returns without error.
22634//
22635// See UpdateProvisioningTemplate for more information on using the UpdateProvisioningTemplate
22636// API call, and error handling.
22637//
22638// This method is useful when you want to inject custom logic or configuration
22639// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22640//
22641//
22642//    // Example sending a request using the UpdateProvisioningTemplateRequest method.
22643//    req, resp := client.UpdateProvisioningTemplateRequest(params)
22644//
22645//    err := req.Send()
22646//    if err == nil { // resp is now filled
22647//        fmt.Println(resp)
22648//    }
22649func (c *IoT) UpdateProvisioningTemplateRequest(input *UpdateProvisioningTemplateInput) (req *request.Request, output *UpdateProvisioningTemplateOutput) {
22650	op := &request.Operation{
22651		Name:       opUpdateProvisioningTemplate,
22652		HTTPMethod: "PATCH",
22653		HTTPPath:   "/provisioning-templates/{templateName}",
22654	}
22655
22656	if input == nil {
22657		input = &UpdateProvisioningTemplateInput{}
22658	}
22659
22660	output = &UpdateProvisioningTemplateOutput{}
22661	req = c.newRequest(op, input, output)
22662	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22663	return
22664}
22665
22666// UpdateProvisioningTemplate API operation for AWS IoT.
22667//
22668// Updates a fleet provisioning template.
22669//
22670// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22671// with awserr.Error's Code and Message methods to get detailed information about
22672// the error.
22673//
22674// See the AWS API reference guide for AWS IoT's
22675// API operation UpdateProvisioningTemplate for usage and error information.
22676//
22677// Returned Error Types:
22678//   * InternalFailureException
22679//   An unexpected error has occurred.
22680//
22681//   * InvalidRequestException
22682//   The request is not valid.
22683//
22684//   * ResourceNotFoundException
22685//   The specified resource does not exist.
22686//
22687//   * UnauthorizedException
22688//   You are not authorized to perform this operation.
22689//
22690//   * ConflictingResourceUpdateException
22691//   A conflicting resource update exception. This exception is thrown when two
22692//   pending updates cause a conflict.
22693//
22694func (c *IoT) UpdateProvisioningTemplate(input *UpdateProvisioningTemplateInput) (*UpdateProvisioningTemplateOutput, error) {
22695	req, out := c.UpdateProvisioningTemplateRequest(input)
22696	return out, req.Send()
22697}
22698
22699// UpdateProvisioningTemplateWithContext is the same as UpdateProvisioningTemplate with the addition of
22700// the ability to pass a context and additional request options.
22701//
22702// See UpdateProvisioningTemplate for details on how to use this API operation.
22703//
22704// The context must be non-nil and will be used for request cancellation. If
22705// the context is nil a panic will occur. In the future the SDK may create
22706// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22707// for more information on using Contexts.
22708func (c *IoT) UpdateProvisioningTemplateWithContext(ctx aws.Context, input *UpdateProvisioningTemplateInput, opts ...request.Option) (*UpdateProvisioningTemplateOutput, error) {
22709	req, out := c.UpdateProvisioningTemplateRequest(input)
22710	req.SetContext(ctx)
22711	req.ApplyOptions(opts...)
22712	return out, req.Send()
22713}
22714
22715const opUpdateRoleAlias = "UpdateRoleAlias"
22716
22717// UpdateRoleAliasRequest generates a "aws/request.Request" representing the
22718// client's request for the UpdateRoleAlias operation. The "output" return
22719// value will be populated with the request's response once the request completes
22720// successfully.
22721//
22722// Use "Send" method on the returned Request to send the API call to the service.
22723// the "output" return value is not valid until after Send returns without error.
22724//
22725// See UpdateRoleAlias for more information on using the UpdateRoleAlias
22726// API call, and error handling.
22727//
22728// This method is useful when you want to inject custom logic or configuration
22729// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22730//
22731//
22732//    // Example sending a request using the UpdateRoleAliasRequest method.
22733//    req, resp := client.UpdateRoleAliasRequest(params)
22734//
22735//    err := req.Send()
22736//    if err == nil { // resp is now filled
22737//        fmt.Println(resp)
22738//    }
22739func (c *IoT) UpdateRoleAliasRequest(input *UpdateRoleAliasInput) (req *request.Request, output *UpdateRoleAliasOutput) {
22740	op := &request.Operation{
22741		Name:       opUpdateRoleAlias,
22742		HTTPMethod: "PUT",
22743		HTTPPath:   "/role-aliases/{roleAlias}",
22744	}
22745
22746	if input == nil {
22747		input = &UpdateRoleAliasInput{}
22748	}
22749
22750	output = &UpdateRoleAliasOutput{}
22751	req = c.newRequest(op, input, output)
22752	return
22753}
22754
22755// UpdateRoleAlias API operation for AWS IoT.
22756//
22757// Updates a role alias.
22758//
22759// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22760// with awserr.Error's Code and Message methods to get detailed information about
22761// the error.
22762//
22763// See the AWS API reference guide for AWS IoT's
22764// API operation UpdateRoleAlias for usage and error information.
22765//
22766// Returned Error Types:
22767//   * ResourceNotFoundException
22768//   The specified resource does not exist.
22769//
22770//   * InvalidRequestException
22771//   The request is not valid.
22772//
22773//   * ThrottlingException
22774//   The rate exceeds the limit.
22775//
22776//   * UnauthorizedException
22777//   You are not authorized to perform this operation.
22778//
22779//   * ServiceUnavailableException
22780//   The service is temporarily unavailable.
22781//
22782//   * InternalFailureException
22783//   An unexpected error has occurred.
22784//
22785func (c *IoT) UpdateRoleAlias(input *UpdateRoleAliasInput) (*UpdateRoleAliasOutput, error) {
22786	req, out := c.UpdateRoleAliasRequest(input)
22787	return out, req.Send()
22788}
22789
22790// UpdateRoleAliasWithContext is the same as UpdateRoleAlias with the addition of
22791// the ability to pass a context and additional request options.
22792//
22793// See UpdateRoleAlias for details on how to use this API operation.
22794//
22795// The context must be non-nil and will be used for request cancellation. If
22796// the context is nil a panic will occur. In the future the SDK may create
22797// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22798// for more information on using Contexts.
22799func (c *IoT) UpdateRoleAliasWithContext(ctx aws.Context, input *UpdateRoleAliasInput, opts ...request.Option) (*UpdateRoleAliasOutput, error) {
22800	req, out := c.UpdateRoleAliasRequest(input)
22801	req.SetContext(ctx)
22802	req.ApplyOptions(opts...)
22803	return out, req.Send()
22804}
22805
22806const opUpdateScheduledAudit = "UpdateScheduledAudit"
22807
22808// UpdateScheduledAuditRequest generates a "aws/request.Request" representing the
22809// client's request for the UpdateScheduledAudit operation. The "output" return
22810// value will be populated with the request's response once the request completes
22811// successfully.
22812//
22813// Use "Send" method on the returned Request to send the API call to the service.
22814// the "output" return value is not valid until after Send returns without error.
22815//
22816// See UpdateScheduledAudit for more information on using the UpdateScheduledAudit
22817// API call, and error handling.
22818//
22819// This method is useful when you want to inject custom logic or configuration
22820// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22821//
22822//
22823//    // Example sending a request using the UpdateScheduledAuditRequest method.
22824//    req, resp := client.UpdateScheduledAuditRequest(params)
22825//
22826//    err := req.Send()
22827//    if err == nil { // resp is now filled
22828//        fmt.Println(resp)
22829//    }
22830func (c *IoT) UpdateScheduledAuditRequest(input *UpdateScheduledAuditInput) (req *request.Request, output *UpdateScheduledAuditOutput) {
22831	op := &request.Operation{
22832		Name:       opUpdateScheduledAudit,
22833		HTTPMethod: "PATCH",
22834		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
22835	}
22836
22837	if input == nil {
22838		input = &UpdateScheduledAuditInput{}
22839	}
22840
22841	output = &UpdateScheduledAuditOutput{}
22842	req = c.newRequest(op, input, output)
22843	return
22844}
22845
22846// UpdateScheduledAudit API operation for AWS IoT.
22847//
22848// Updates a scheduled audit, including which checks are performed and how often
22849// the audit takes place.
22850//
22851// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22852// with awserr.Error's Code and Message methods to get detailed information about
22853// the error.
22854//
22855// See the AWS API reference guide for AWS IoT's
22856// API operation UpdateScheduledAudit for usage and error information.
22857//
22858// Returned Error Types:
22859//   * InvalidRequestException
22860//   The request is not valid.
22861//
22862//   * ResourceNotFoundException
22863//   The specified resource does not exist.
22864//
22865//   * ThrottlingException
22866//   The rate exceeds the limit.
22867//
22868//   * InternalFailureException
22869//   An unexpected error has occurred.
22870//
22871func (c *IoT) UpdateScheduledAudit(input *UpdateScheduledAuditInput) (*UpdateScheduledAuditOutput, error) {
22872	req, out := c.UpdateScheduledAuditRequest(input)
22873	return out, req.Send()
22874}
22875
22876// UpdateScheduledAuditWithContext is the same as UpdateScheduledAudit with the addition of
22877// the ability to pass a context and additional request options.
22878//
22879// See UpdateScheduledAudit for details on how to use this API operation.
22880//
22881// The context must be non-nil and will be used for request cancellation. If
22882// the context is nil a panic will occur. In the future the SDK may create
22883// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22884// for more information on using Contexts.
22885func (c *IoT) UpdateScheduledAuditWithContext(ctx aws.Context, input *UpdateScheduledAuditInput, opts ...request.Option) (*UpdateScheduledAuditOutput, error) {
22886	req, out := c.UpdateScheduledAuditRequest(input)
22887	req.SetContext(ctx)
22888	req.ApplyOptions(opts...)
22889	return out, req.Send()
22890}
22891
22892const opUpdateSecurityProfile = "UpdateSecurityProfile"
22893
22894// UpdateSecurityProfileRequest generates a "aws/request.Request" representing the
22895// client's request for the UpdateSecurityProfile operation. The "output" return
22896// value will be populated with the request's response once the request completes
22897// successfully.
22898//
22899// Use "Send" method on the returned Request to send the API call to the service.
22900// the "output" return value is not valid until after Send returns without error.
22901//
22902// See UpdateSecurityProfile for more information on using the UpdateSecurityProfile
22903// API call, and error handling.
22904//
22905// This method is useful when you want to inject custom logic or configuration
22906// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22907//
22908//
22909//    // Example sending a request using the UpdateSecurityProfileRequest method.
22910//    req, resp := client.UpdateSecurityProfileRequest(params)
22911//
22912//    err := req.Send()
22913//    if err == nil { // resp is now filled
22914//        fmt.Println(resp)
22915//    }
22916func (c *IoT) UpdateSecurityProfileRequest(input *UpdateSecurityProfileInput) (req *request.Request, output *UpdateSecurityProfileOutput) {
22917	op := &request.Operation{
22918		Name:       opUpdateSecurityProfile,
22919		HTTPMethod: "PATCH",
22920		HTTPPath:   "/security-profiles/{securityProfileName}",
22921	}
22922
22923	if input == nil {
22924		input = &UpdateSecurityProfileInput{}
22925	}
22926
22927	output = &UpdateSecurityProfileOutput{}
22928	req = c.newRequest(op, input, output)
22929	return
22930}
22931
22932// UpdateSecurityProfile API operation for AWS IoT.
22933//
22934// Updates a Device Defender security profile.
22935//
22936// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22937// with awserr.Error's Code and Message methods to get detailed information about
22938// the error.
22939//
22940// See the AWS API reference guide for AWS IoT's
22941// API operation UpdateSecurityProfile for usage and error information.
22942//
22943// Returned Error Types:
22944//   * InvalidRequestException
22945//   The request is not valid.
22946//
22947//   * ResourceNotFoundException
22948//   The specified resource does not exist.
22949//
22950//   * VersionConflictException
22951//   An exception thrown when the version of an entity specified with the expectedVersion
22952//   parameter does not match the latest version in the system.
22953//
22954//   * ThrottlingException
22955//   The rate exceeds the limit.
22956//
22957//   * InternalFailureException
22958//   An unexpected error has occurred.
22959//
22960func (c *IoT) UpdateSecurityProfile(input *UpdateSecurityProfileInput) (*UpdateSecurityProfileOutput, error) {
22961	req, out := c.UpdateSecurityProfileRequest(input)
22962	return out, req.Send()
22963}
22964
22965// UpdateSecurityProfileWithContext is the same as UpdateSecurityProfile with the addition of
22966// the ability to pass a context and additional request options.
22967//
22968// See UpdateSecurityProfile for details on how to use this API operation.
22969//
22970// The context must be non-nil and will be used for request cancellation. If
22971// the context is nil a panic will occur. In the future the SDK may create
22972// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22973// for more information on using Contexts.
22974func (c *IoT) UpdateSecurityProfileWithContext(ctx aws.Context, input *UpdateSecurityProfileInput, opts ...request.Option) (*UpdateSecurityProfileOutput, error) {
22975	req, out := c.UpdateSecurityProfileRequest(input)
22976	req.SetContext(ctx)
22977	req.ApplyOptions(opts...)
22978	return out, req.Send()
22979}
22980
22981const opUpdateStream = "UpdateStream"
22982
22983// UpdateStreamRequest generates a "aws/request.Request" representing the
22984// client's request for the UpdateStream operation. The "output" return
22985// value will be populated with the request's response once the request completes
22986// successfully.
22987//
22988// Use "Send" method on the returned Request to send the API call to the service.
22989// the "output" return value is not valid until after Send returns without error.
22990//
22991// See UpdateStream for more information on using the UpdateStream
22992// API call, and error handling.
22993//
22994// This method is useful when you want to inject custom logic or configuration
22995// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22996//
22997//
22998//    // Example sending a request using the UpdateStreamRequest method.
22999//    req, resp := client.UpdateStreamRequest(params)
23000//
23001//    err := req.Send()
23002//    if err == nil { // resp is now filled
23003//        fmt.Println(resp)
23004//    }
23005func (c *IoT) UpdateStreamRequest(input *UpdateStreamInput) (req *request.Request, output *UpdateStreamOutput) {
23006	op := &request.Operation{
23007		Name:       opUpdateStream,
23008		HTTPMethod: "PUT",
23009		HTTPPath:   "/streams/{streamId}",
23010	}
23011
23012	if input == nil {
23013		input = &UpdateStreamInput{}
23014	}
23015
23016	output = &UpdateStreamOutput{}
23017	req = c.newRequest(op, input, output)
23018	return
23019}
23020
23021// UpdateStream API operation for AWS IoT.
23022//
23023// Updates an existing stream. The stream version will be incremented by one.
23024//
23025// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23026// with awserr.Error's Code and Message methods to get detailed information about
23027// the error.
23028//
23029// See the AWS API reference guide for AWS IoT's
23030// API operation UpdateStream for usage and error information.
23031//
23032// Returned Error Types:
23033//   * InvalidRequestException
23034//   The request is not valid.
23035//
23036//   * ResourceNotFoundException
23037//   The specified resource does not exist.
23038//
23039//   * ThrottlingException
23040//   The rate exceeds the limit.
23041//
23042//   * UnauthorizedException
23043//   You are not authorized to perform this operation.
23044//
23045//   * ServiceUnavailableException
23046//   The service is temporarily unavailable.
23047//
23048//   * InternalFailureException
23049//   An unexpected error has occurred.
23050//
23051func (c *IoT) UpdateStream(input *UpdateStreamInput) (*UpdateStreamOutput, error) {
23052	req, out := c.UpdateStreamRequest(input)
23053	return out, req.Send()
23054}
23055
23056// UpdateStreamWithContext is the same as UpdateStream with the addition of
23057// the ability to pass a context and additional request options.
23058//
23059// See UpdateStream for details on how to use this API operation.
23060//
23061// The context must be non-nil and will be used for request cancellation. If
23062// the context is nil a panic will occur. In the future the SDK may create
23063// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23064// for more information on using Contexts.
23065func (c *IoT) UpdateStreamWithContext(ctx aws.Context, input *UpdateStreamInput, opts ...request.Option) (*UpdateStreamOutput, error) {
23066	req, out := c.UpdateStreamRequest(input)
23067	req.SetContext(ctx)
23068	req.ApplyOptions(opts...)
23069	return out, req.Send()
23070}
23071
23072const opUpdateThing = "UpdateThing"
23073
23074// UpdateThingRequest generates a "aws/request.Request" representing the
23075// client's request for the UpdateThing operation. The "output" return
23076// value will be populated with the request's response once the request completes
23077// successfully.
23078//
23079// Use "Send" method on the returned Request to send the API call to the service.
23080// the "output" return value is not valid until after Send returns without error.
23081//
23082// See UpdateThing for more information on using the UpdateThing
23083// API call, and error handling.
23084//
23085// This method is useful when you want to inject custom logic or configuration
23086// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23087//
23088//
23089//    // Example sending a request using the UpdateThingRequest method.
23090//    req, resp := client.UpdateThingRequest(params)
23091//
23092//    err := req.Send()
23093//    if err == nil { // resp is now filled
23094//        fmt.Println(resp)
23095//    }
23096func (c *IoT) UpdateThingRequest(input *UpdateThingInput) (req *request.Request, output *UpdateThingOutput) {
23097	op := &request.Operation{
23098		Name:       opUpdateThing,
23099		HTTPMethod: "PATCH",
23100		HTTPPath:   "/things/{thingName}",
23101	}
23102
23103	if input == nil {
23104		input = &UpdateThingInput{}
23105	}
23106
23107	output = &UpdateThingOutput{}
23108	req = c.newRequest(op, input, output)
23109	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23110	return
23111}
23112
23113// UpdateThing API operation for AWS IoT.
23114//
23115// Updates the data for a thing.
23116//
23117// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23118// with awserr.Error's Code and Message methods to get detailed information about
23119// the error.
23120//
23121// See the AWS API reference guide for AWS IoT's
23122// API operation UpdateThing for usage and error information.
23123//
23124// Returned Error Types:
23125//   * InvalidRequestException
23126//   The request is not valid.
23127//
23128//   * VersionConflictException
23129//   An exception thrown when the version of an entity specified with the expectedVersion
23130//   parameter does not match the latest version in the system.
23131//
23132//   * ThrottlingException
23133//   The rate exceeds the limit.
23134//
23135//   * UnauthorizedException
23136//   You are not authorized to perform this operation.
23137//
23138//   * ServiceUnavailableException
23139//   The service is temporarily unavailable.
23140//
23141//   * InternalFailureException
23142//   An unexpected error has occurred.
23143//
23144//   * ResourceNotFoundException
23145//   The specified resource does not exist.
23146//
23147func (c *IoT) UpdateThing(input *UpdateThingInput) (*UpdateThingOutput, error) {
23148	req, out := c.UpdateThingRequest(input)
23149	return out, req.Send()
23150}
23151
23152// UpdateThingWithContext is the same as UpdateThing with the addition of
23153// the ability to pass a context and additional request options.
23154//
23155// See UpdateThing for details on how to use this API operation.
23156//
23157// The context must be non-nil and will be used for request cancellation. If
23158// the context is nil a panic will occur. In the future the SDK may create
23159// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23160// for more information on using Contexts.
23161func (c *IoT) UpdateThingWithContext(ctx aws.Context, input *UpdateThingInput, opts ...request.Option) (*UpdateThingOutput, error) {
23162	req, out := c.UpdateThingRequest(input)
23163	req.SetContext(ctx)
23164	req.ApplyOptions(opts...)
23165	return out, req.Send()
23166}
23167
23168const opUpdateThingGroup = "UpdateThingGroup"
23169
23170// UpdateThingGroupRequest generates a "aws/request.Request" representing the
23171// client's request for the UpdateThingGroup operation. The "output" return
23172// value will be populated with the request's response once the request completes
23173// successfully.
23174//
23175// Use "Send" method on the returned Request to send the API call to the service.
23176// the "output" return value is not valid until after Send returns without error.
23177//
23178// See UpdateThingGroup for more information on using the UpdateThingGroup
23179// API call, and error handling.
23180//
23181// This method is useful when you want to inject custom logic or configuration
23182// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23183//
23184//
23185//    // Example sending a request using the UpdateThingGroupRequest method.
23186//    req, resp := client.UpdateThingGroupRequest(params)
23187//
23188//    err := req.Send()
23189//    if err == nil { // resp is now filled
23190//        fmt.Println(resp)
23191//    }
23192func (c *IoT) UpdateThingGroupRequest(input *UpdateThingGroupInput) (req *request.Request, output *UpdateThingGroupOutput) {
23193	op := &request.Operation{
23194		Name:       opUpdateThingGroup,
23195		HTTPMethod: "PATCH",
23196		HTTPPath:   "/thing-groups/{thingGroupName}",
23197	}
23198
23199	if input == nil {
23200		input = &UpdateThingGroupInput{}
23201	}
23202
23203	output = &UpdateThingGroupOutput{}
23204	req = c.newRequest(op, input, output)
23205	return
23206}
23207
23208// UpdateThingGroup API operation for AWS IoT.
23209//
23210// Update a thing group.
23211//
23212// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23213// with awserr.Error's Code and Message methods to get detailed information about
23214// the error.
23215//
23216// See the AWS API reference guide for AWS IoT's
23217// API operation UpdateThingGroup for usage and error information.
23218//
23219// Returned Error Types:
23220//   * InvalidRequestException
23221//   The request is not valid.
23222//
23223//   * VersionConflictException
23224//   An exception thrown when the version of an entity specified with the expectedVersion
23225//   parameter does not match the latest version in the system.
23226//
23227//   * ThrottlingException
23228//   The rate exceeds the limit.
23229//
23230//   * InternalFailureException
23231//   An unexpected error has occurred.
23232//
23233//   * ResourceNotFoundException
23234//   The specified resource does not exist.
23235//
23236func (c *IoT) UpdateThingGroup(input *UpdateThingGroupInput) (*UpdateThingGroupOutput, error) {
23237	req, out := c.UpdateThingGroupRequest(input)
23238	return out, req.Send()
23239}
23240
23241// UpdateThingGroupWithContext is the same as UpdateThingGroup with the addition of
23242// the ability to pass a context and additional request options.
23243//
23244// See UpdateThingGroup for details on how to use this API operation.
23245//
23246// The context must be non-nil and will be used for request cancellation. If
23247// the context is nil a panic will occur. In the future the SDK may create
23248// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23249// for more information on using Contexts.
23250func (c *IoT) UpdateThingGroupWithContext(ctx aws.Context, input *UpdateThingGroupInput, opts ...request.Option) (*UpdateThingGroupOutput, error) {
23251	req, out := c.UpdateThingGroupRequest(input)
23252	req.SetContext(ctx)
23253	req.ApplyOptions(opts...)
23254	return out, req.Send()
23255}
23256
23257const opUpdateThingGroupsForThing = "UpdateThingGroupsForThing"
23258
23259// UpdateThingGroupsForThingRequest generates a "aws/request.Request" representing the
23260// client's request for the UpdateThingGroupsForThing operation. The "output" return
23261// value will be populated with the request's response once the request completes
23262// successfully.
23263//
23264// Use "Send" method on the returned Request to send the API call to the service.
23265// the "output" return value is not valid until after Send returns without error.
23266//
23267// See UpdateThingGroupsForThing for more information on using the UpdateThingGroupsForThing
23268// API call, and error handling.
23269//
23270// This method is useful when you want to inject custom logic or configuration
23271// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23272//
23273//
23274//    // Example sending a request using the UpdateThingGroupsForThingRequest method.
23275//    req, resp := client.UpdateThingGroupsForThingRequest(params)
23276//
23277//    err := req.Send()
23278//    if err == nil { // resp is now filled
23279//        fmt.Println(resp)
23280//    }
23281func (c *IoT) UpdateThingGroupsForThingRequest(input *UpdateThingGroupsForThingInput) (req *request.Request, output *UpdateThingGroupsForThingOutput) {
23282	op := &request.Operation{
23283		Name:       opUpdateThingGroupsForThing,
23284		HTTPMethod: "PUT",
23285		HTTPPath:   "/thing-groups/updateThingGroupsForThing",
23286	}
23287
23288	if input == nil {
23289		input = &UpdateThingGroupsForThingInput{}
23290	}
23291
23292	output = &UpdateThingGroupsForThingOutput{}
23293	req = c.newRequest(op, input, output)
23294	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23295	return
23296}
23297
23298// UpdateThingGroupsForThing API operation for AWS IoT.
23299//
23300// Updates the groups to which the thing belongs.
23301//
23302// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23303// with awserr.Error's Code and Message methods to get detailed information about
23304// the error.
23305//
23306// See the AWS API reference guide for AWS IoT's
23307// API operation UpdateThingGroupsForThing for usage and error information.
23308//
23309// Returned Error Types:
23310//   * InvalidRequestException
23311//   The request is not valid.
23312//
23313//   * ThrottlingException
23314//   The rate exceeds the limit.
23315//
23316//   * InternalFailureException
23317//   An unexpected error has occurred.
23318//
23319//   * ResourceNotFoundException
23320//   The specified resource does not exist.
23321//
23322func (c *IoT) UpdateThingGroupsForThing(input *UpdateThingGroupsForThingInput) (*UpdateThingGroupsForThingOutput, error) {
23323	req, out := c.UpdateThingGroupsForThingRequest(input)
23324	return out, req.Send()
23325}
23326
23327// UpdateThingGroupsForThingWithContext is the same as UpdateThingGroupsForThing with the addition of
23328// the ability to pass a context and additional request options.
23329//
23330// See UpdateThingGroupsForThing for details on how to use this API operation.
23331//
23332// The context must be non-nil and will be used for request cancellation. If
23333// the context is nil a panic will occur. In the future the SDK may create
23334// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23335// for more information on using Contexts.
23336func (c *IoT) UpdateThingGroupsForThingWithContext(ctx aws.Context, input *UpdateThingGroupsForThingInput, opts ...request.Option) (*UpdateThingGroupsForThingOutput, error) {
23337	req, out := c.UpdateThingGroupsForThingRequest(input)
23338	req.SetContext(ctx)
23339	req.ApplyOptions(opts...)
23340	return out, req.Send()
23341}
23342
23343const opUpdateTopicRuleDestination = "UpdateTopicRuleDestination"
23344
23345// UpdateTopicRuleDestinationRequest generates a "aws/request.Request" representing the
23346// client's request for the UpdateTopicRuleDestination operation. The "output" return
23347// value will be populated with the request's response once the request completes
23348// successfully.
23349//
23350// Use "Send" method on the returned Request to send the API call to the service.
23351// the "output" return value is not valid until after Send returns without error.
23352//
23353// See UpdateTopicRuleDestination for more information on using the UpdateTopicRuleDestination
23354// API call, and error handling.
23355//
23356// This method is useful when you want to inject custom logic or configuration
23357// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23358//
23359//
23360//    // Example sending a request using the UpdateTopicRuleDestinationRequest method.
23361//    req, resp := client.UpdateTopicRuleDestinationRequest(params)
23362//
23363//    err := req.Send()
23364//    if err == nil { // resp is now filled
23365//        fmt.Println(resp)
23366//    }
23367func (c *IoT) UpdateTopicRuleDestinationRequest(input *UpdateTopicRuleDestinationInput) (req *request.Request, output *UpdateTopicRuleDestinationOutput) {
23368	op := &request.Operation{
23369		Name:       opUpdateTopicRuleDestination,
23370		HTTPMethod: "PATCH",
23371		HTTPPath:   "/destinations",
23372	}
23373
23374	if input == nil {
23375		input = &UpdateTopicRuleDestinationInput{}
23376	}
23377
23378	output = &UpdateTopicRuleDestinationOutput{}
23379	req = c.newRequest(op, input, output)
23380	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23381	return
23382}
23383
23384// UpdateTopicRuleDestination API operation for AWS IoT.
23385//
23386// Updates a topic rule destination. You use this to change the status, endpoint
23387// URL, or confirmation URL of the destination.
23388//
23389// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23390// with awserr.Error's Code and Message methods to get detailed information about
23391// the error.
23392//
23393// See the AWS API reference guide for AWS IoT's
23394// API operation UpdateTopicRuleDestination for usage and error information.
23395//
23396// Returned Error Types:
23397//   * InternalException
23398//   An unexpected error has occurred.
23399//
23400//   * InvalidRequestException
23401//   The request is not valid.
23402//
23403//   * ServiceUnavailableException
23404//   The service is temporarily unavailable.
23405//
23406//   * UnauthorizedException
23407//   You are not authorized to perform this operation.
23408//
23409//   * ConflictingResourceUpdateException
23410//   A conflicting resource update exception. This exception is thrown when two
23411//   pending updates cause a conflict.
23412//
23413func (c *IoT) UpdateTopicRuleDestination(input *UpdateTopicRuleDestinationInput) (*UpdateTopicRuleDestinationOutput, error) {
23414	req, out := c.UpdateTopicRuleDestinationRequest(input)
23415	return out, req.Send()
23416}
23417
23418// UpdateTopicRuleDestinationWithContext is the same as UpdateTopicRuleDestination with the addition of
23419// the ability to pass a context and additional request options.
23420//
23421// See UpdateTopicRuleDestination for details on how to use this API operation.
23422//
23423// The context must be non-nil and will be used for request cancellation. If
23424// the context is nil a panic will occur. In the future the SDK may create
23425// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23426// for more information on using Contexts.
23427func (c *IoT) UpdateTopicRuleDestinationWithContext(ctx aws.Context, input *UpdateTopicRuleDestinationInput, opts ...request.Option) (*UpdateTopicRuleDestinationOutput, error) {
23428	req, out := c.UpdateTopicRuleDestinationRequest(input)
23429	req.SetContext(ctx)
23430	req.ApplyOptions(opts...)
23431	return out, req.Send()
23432}
23433
23434const opValidateSecurityProfileBehaviors = "ValidateSecurityProfileBehaviors"
23435
23436// ValidateSecurityProfileBehaviorsRequest generates a "aws/request.Request" representing the
23437// client's request for the ValidateSecurityProfileBehaviors operation. The "output" return
23438// value will be populated with the request's response once the request completes
23439// successfully.
23440//
23441// Use "Send" method on the returned Request to send the API call to the service.
23442// the "output" return value is not valid until after Send returns without error.
23443//
23444// See ValidateSecurityProfileBehaviors for more information on using the ValidateSecurityProfileBehaviors
23445// API call, and error handling.
23446//
23447// This method is useful when you want to inject custom logic or configuration
23448// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23449//
23450//
23451//    // Example sending a request using the ValidateSecurityProfileBehaviorsRequest method.
23452//    req, resp := client.ValidateSecurityProfileBehaviorsRequest(params)
23453//
23454//    err := req.Send()
23455//    if err == nil { // resp is now filled
23456//        fmt.Println(resp)
23457//    }
23458func (c *IoT) ValidateSecurityProfileBehaviorsRequest(input *ValidateSecurityProfileBehaviorsInput) (req *request.Request, output *ValidateSecurityProfileBehaviorsOutput) {
23459	op := &request.Operation{
23460		Name:       opValidateSecurityProfileBehaviors,
23461		HTTPMethod: "POST",
23462		HTTPPath:   "/security-profile-behaviors/validate",
23463	}
23464
23465	if input == nil {
23466		input = &ValidateSecurityProfileBehaviorsInput{}
23467	}
23468
23469	output = &ValidateSecurityProfileBehaviorsOutput{}
23470	req = c.newRequest(op, input, output)
23471	return
23472}
23473
23474// ValidateSecurityProfileBehaviors API operation for AWS IoT.
23475//
23476// Validates a Device Defender security profile behaviors specification.
23477//
23478// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23479// with awserr.Error's Code and Message methods to get detailed information about
23480// the error.
23481//
23482// See the AWS API reference guide for AWS IoT's
23483// API operation ValidateSecurityProfileBehaviors for usage and error information.
23484//
23485// Returned Error Types:
23486//   * InvalidRequestException
23487//   The request is not valid.
23488//
23489//   * ThrottlingException
23490//   The rate exceeds the limit.
23491//
23492//   * InternalFailureException
23493//   An unexpected error has occurred.
23494//
23495func (c *IoT) ValidateSecurityProfileBehaviors(input *ValidateSecurityProfileBehaviorsInput) (*ValidateSecurityProfileBehaviorsOutput, error) {
23496	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
23497	return out, req.Send()
23498}
23499
23500// ValidateSecurityProfileBehaviorsWithContext is the same as ValidateSecurityProfileBehaviors with the addition of
23501// the ability to pass a context and additional request options.
23502//
23503// See ValidateSecurityProfileBehaviors for details on how to use this API operation.
23504//
23505// The context must be non-nil and will be used for request cancellation. If
23506// the context is nil a panic will occur. In the future the SDK may create
23507// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23508// for more information on using Contexts.
23509func (c *IoT) ValidateSecurityProfileBehaviorsWithContext(ctx aws.Context, input *ValidateSecurityProfileBehaviorsInput, opts ...request.Option) (*ValidateSecurityProfileBehaviorsOutput, error) {
23510	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
23511	req.SetContext(ctx)
23512	req.ApplyOptions(opts...)
23513	return out, req.Send()
23514}
23515
23516// The criteria that determine when and how a job abort takes place.
23517type AbortConfig struct {
23518	_ struct{} `type:"structure"`
23519
23520	// The list of criteria that determine when and how to abort the job.
23521	//
23522	// CriteriaList is a required field
23523	CriteriaList []*AbortCriteria `locationName:"criteriaList" min:"1" type:"list" required:"true"`
23524}
23525
23526// String returns the string representation
23527func (s AbortConfig) String() string {
23528	return awsutil.Prettify(s)
23529}
23530
23531// GoString returns the string representation
23532func (s AbortConfig) GoString() string {
23533	return s.String()
23534}
23535
23536// Validate inspects the fields of the type to determine if they are valid.
23537func (s *AbortConfig) Validate() error {
23538	invalidParams := request.ErrInvalidParams{Context: "AbortConfig"}
23539	if s.CriteriaList == nil {
23540		invalidParams.Add(request.NewErrParamRequired("CriteriaList"))
23541	}
23542	if s.CriteriaList != nil && len(s.CriteriaList) < 1 {
23543		invalidParams.Add(request.NewErrParamMinLen("CriteriaList", 1))
23544	}
23545	if s.CriteriaList != nil {
23546		for i, v := range s.CriteriaList {
23547			if v == nil {
23548				continue
23549			}
23550			if err := v.Validate(); err != nil {
23551				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CriteriaList", i), err.(request.ErrInvalidParams))
23552			}
23553		}
23554	}
23555
23556	if invalidParams.Len() > 0 {
23557		return invalidParams
23558	}
23559	return nil
23560}
23561
23562// SetCriteriaList sets the CriteriaList field's value.
23563func (s *AbortConfig) SetCriteriaList(v []*AbortCriteria) *AbortConfig {
23564	s.CriteriaList = v
23565	return s
23566}
23567
23568// The criteria that determine when and how a job abort takes place.
23569type AbortCriteria struct {
23570	_ struct{} `type:"structure"`
23571
23572	// The type of job action to take to initiate the job abort.
23573	//
23574	// Action is a required field
23575	Action *string `locationName:"action" type:"string" required:"true" enum:"AbortAction"`
23576
23577	// The type of job execution failures that can initiate a job abort.
23578	//
23579	// FailureType is a required field
23580	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"JobExecutionFailureType"`
23581
23582	// The minimum number of things which must receive job execution notifications
23583	// before the job can be aborted.
23584	//
23585	// MinNumberOfExecutedThings is a required field
23586	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
23587
23588	// The minimum percentage of job execution failures that must occur to initiate
23589	// the job abort.
23590	//
23591	// AWS IoT supports up to two digits after the decimal (for example, 10.9 and
23592	// 10.99, but not 10.999).
23593	//
23594	// ThresholdPercentage is a required field
23595	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
23596}
23597
23598// String returns the string representation
23599func (s AbortCriteria) String() string {
23600	return awsutil.Prettify(s)
23601}
23602
23603// GoString returns the string representation
23604func (s AbortCriteria) GoString() string {
23605	return s.String()
23606}
23607
23608// Validate inspects the fields of the type to determine if they are valid.
23609func (s *AbortCriteria) Validate() error {
23610	invalidParams := request.ErrInvalidParams{Context: "AbortCriteria"}
23611	if s.Action == nil {
23612		invalidParams.Add(request.NewErrParamRequired("Action"))
23613	}
23614	if s.FailureType == nil {
23615		invalidParams.Add(request.NewErrParamRequired("FailureType"))
23616	}
23617	if s.MinNumberOfExecutedThings == nil {
23618		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
23619	}
23620	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
23621		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
23622	}
23623	if s.ThresholdPercentage == nil {
23624		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
23625	}
23626
23627	if invalidParams.Len() > 0 {
23628		return invalidParams
23629	}
23630	return nil
23631}
23632
23633// SetAction sets the Action field's value.
23634func (s *AbortCriteria) SetAction(v string) *AbortCriteria {
23635	s.Action = &v
23636	return s
23637}
23638
23639// SetFailureType sets the FailureType field's value.
23640func (s *AbortCriteria) SetFailureType(v string) *AbortCriteria {
23641	s.FailureType = &v
23642	return s
23643}
23644
23645// SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
23646func (s *AbortCriteria) SetMinNumberOfExecutedThings(v int64) *AbortCriteria {
23647	s.MinNumberOfExecutedThings = &v
23648	return s
23649}
23650
23651// SetThresholdPercentage sets the ThresholdPercentage field's value.
23652func (s *AbortCriteria) SetThresholdPercentage(v float64) *AbortCriteria {
23653	s.ThresholdPercentage = &v
23654	return s
23655}
23656
23657// The input for the AcceptCertificateTransfer operation.
23658type AcceptCertificateTransferInput struct {
23659	_ struct{} `type:"structure"`
23660
23661	// The ID of the certificate. (The last part of the certificate ARN contains
23662	// the certificate ID.)
23663	//
23664	// CertificateId is a required field
23665	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
23666
23667	// Specifies whether the certificate is active.
23668	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
23669}
23670
23671// String returns the string representation
23672func (s AcceptCertificateTransferInput) String() string {
23673	return awsutil.Prettify(s)
23674}
23675
23676// GoString returns the string representation
23677func (s AcceptCertificateTransferInput) GoString() string {
23678	return s.String()
23679}
23680
23681// Validate inspects the fields of the type to determine if they are valid.
23682func (s *AcceptCertificateTransferInput) Validate() error {
23683	invalidParams := request.ErrInvalidParams{Context: "AcceptCertificateTransferInput"}
23684	if s.CertificateId == nil {
23685		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
23686	}
23687	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
23688		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
23689	}
23690
23691	if invalidParams.Len() > 0 {
23692		return invalidParams
23693	}
23694	return nil
23695}
23696
23697// SetCertificateId sets the CertificateId field's value.
23698func (s *AcceptCertificateTransferInput) SetCertificateId(v string) *AcceptCertificateTransferInput {
23699	s.CertificateId = &v
23700	return s
23701}
23702
23703// SetSetAsActive sets the SetAsActive field's value.
23704func (s *AcceptCertificateTransferInput) SetSetAsActive(v bool) *AcceptCertificateTransferInput {
23705	s.SetAsActive = &v
23706	return s
23707}
23708
23709type AcceptCertificateTransferOutput struct {
23710	_ struct{} `type:"structure"`
23711}
23712
23713// String returns the string representation
23714func (s AcceptCertificateTransferOutput) String() string {
23715	return awsutil.Prettify(s)
23716}
23717
23718// GoString returns the string representation
23719func (s AcceptCertificateTransferOutput) GoString() string {
23720	return s.String()
23721}
23722
23723// Describes the actions associated with a rule.
23724type Action struct {
23725	_ struct{} `type:"structure"`
23726
23727	// Change the state of a CloudWatch alarm.
23728	CloudwatchAlarm *CloudwatchAlarmAction `locationName:"cloudwatchAlarm" type:"structure"`
23729
23730	// Send data to CloudWatch Logs.
23731	CloudwatchLogs *CloudwatchLogsAction `locationName:"cloudwatchLogs" type:"structure"`
23732
23733	// Capture a CloudWatch metric.
23734	CloudwatchMetric *CloudwatchMetricAction `locationName:"cloudwatchMetric" type:"structure"`
23735
23736	// Write to a DynamoDB table.
23737	DynamoDB *DynamoDBAction `locationName:"dynamoDB" type:"structure"`
23738
23739	// Write to a DynamoDB table. This is a new version of the DynamoDB action.
23740	// It allows you to write each attribute in an MQTT message payload into a separate
23741	// DynamoDB column.
23742	DynamoDBv2 *DynamoDBv2Action `locationName:"dynamoDBv2" type:"structure"`
23743
23744	// Write data to an Amazon Elasticsearch Service domain.
23745	Elasticsearch *ElasticsearchAction `locationName:"elasticsearch" type:"structure"`
23746
23747	// Write to an Amazon Kinesis Firehose stream.
23748	Firehose *FirehoseAction `locationName:"firehose" type:"structure"`
23749
23750	// Send data to an HTTPS endpoint.
23751	Http *HttpAction `locationName:"http" type:"structure"`
23752
23753	// Sends message data to an AWS IoT Analytics channel.
23754	IotAnalytics *IotAnalyticsAction `locationName:"iotAnalytics" type:"structure"`
23755
23756	// Sends an input to an AWS IoT Events detector.
23757	IotEvents *IotEventsAction `locationName:"iotEvents" type:"structure"`
23758
23759	// Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise
23760	// asset properties.
23761	IotSiteWise *IotSiteWiseAction `locationName:"iotSiteWise" type:"structure"`
23762
23763	// Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK)
23764	// or self-managed Apache Kafka cluster.
23765	Kafka *KafkaAction `locationName:"kafka" type:"structure"`
23766
23767	// Write data to an Amazon Kinesis stream.
23768	Kinesis *KinesisAction `locationName:"kinesis" type:"structure"`
23769
23770	// Invoke a Lambda function.
23771	Lambda *LambdaAction `locationName:"lambda" type:"structure"`
23772
23773	// Publish to another MQTT topic.
23774	Republish *RepublishAction `locationName:"republish" type:"structure"`
23775
23776	// Write to an Amazon S3 bucket.
23777	S3 *S3Action `locationName:"s3" type:"structure"`
23778
23779	// Send a message to a Salesforce IoT Cloud Input Stream.
23780	Salesforce *SalesforceAction `locationName:"salesforce" type:"structure"`
23781
23782	// Publish to an Amazon SNS topic.
23783	Sns *SnsAction `locationName:"sns" type:"structure"`
23784
23785	// Publish to an Amazon SQS queue.
23786	Sqs *SqsAction `locationName:"sqs" type:"structure"`
23787
23788	// Starts execution of a Step Functions state machine.
23789	StepFunctions *StepFunctionsAction `locationName:"stepFunctions" type:"structure"`
23790
23791	// The Timestream rule action writes attributes (measures) from an MQTT message
23792	// into an Amazon Timestream table. For more information, see the Timestream
23793	// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
23794	// topic rule action documentation.
23795	Timestream *TimestreamAction `locationName:"timestream" type:"structure"`
23796}
23797
23798// String returns the string representation
23799func (s Action) String() string {
23800	return awsutil.Prettify(s)
23801}
23802
23803// GoString returns the string representation
23804func (s Action) GoString() string {
23805	return s.String()
23806}
23807
23808// Validate inspects the fields of the type to determine if they are valid.
23809func (s *Action) Validate() error {
23810	invalidParams := request.ErrInvalidParams{Context: "Action"}
23811	if s.CloudwatchAlarm != nil {
23812		if err := s.CloudwatchAlarm.Validate(); err != nil {
23813			invalidParams.AddNested("CloudwatchAlarm", err.(request.ErrInvalidParams))
23814		}
23815	}
23816	if s.CloudwatchLogs != nil {
23817		if err := s.CloudwatchLogs.Validate(); err != nil {
23818			invalidParams.AddNested("CloudwatchLogs", err.(request.ErrInvalidParams))
23819		}
23820	}
23821	if s.CloudwatchMetric != nil {
23822		if err := s.CloudwatchMetric.Validate(); err != nil {
23823			invalidParams.AddNested("CloudwatchMetric", err.(request.ErrInvalidParams))
23824		}
23825	}
23826	if s.DynamoDB != nil {
23827		if err := s.DynamoDB.Validate(); err != nil {
23828			invalidParams.AddNested("DynamoDB", err.(request.ErrInvalidParams))
23829		}
23830	}
23831	if s.DynamoDBv2 != nil {
23832		if err := s.DynamoDBv2.Validate(); err != nil {
23833			invalidParams.AddNested("DynamoDBv2", err.(request.ErrInvalidParams))
23834		}
23835	}
23836	if s.Elasticsearch != nil {
23837		if err := s.Elasticsearch.Validate(); err != nil {
23838			invalidParams.AddNested("Elasticsearch", err.(request.ErrInvalidParams))
23839		}
23840	}
23841	if s.Firehose != nil {
23842		if err := s.Firehose.Validate(); err != nil {
23843			invalidParams.AddNested("Firehose", err.(request.ErrInvalidParams))
23844		}
23845	}
23846	if s.Http != nil {
23847		if err := s.Http.Validate(); err != nil {
23848			invalidParams.AddNested("Http", err.(request.ErrInvalidParams))
23849		}
23850	}
23851	if s.IotEvents != nil {
23852		if err := s.IotEvents.Validate(); err != nil {
23853			invalidParams.AddNested("IotEvents", err.(request.ErrInvalidParams))
23854		}
23855	}
23856	if s.IotSiteWise != nil {
23857		if err := s.IotSiteWise.Validate(); err != nil {
23858			invalidParams.AddNested("IotSiteWise", err.(request.ErrInvalidParams))
23859		}
23860	}
23861	if s.Kafka != nil {
23862		if err := s.Kafka.Validate(); err != nil {
23863			invalidParams.AddNested("Kafka", err.(request.ErrInvalidParams))
23864		}
23865	}
23866	if s.Kinesis != nil {
23867		if err := s.Kinesis.Validate(); err != nil {
23868			invalidParams.AddNested("Kinesis", err.(request.ErrInvalidParams))
23869		}
23870	}
23871	if s.Lambda != nil {
23872		if err := s.Lambda.Validate(); err != nil {
23873			invalidParams.AddNested("Lambda", err.(request.ErrInvalidParams))
23874		}
23875	}
23876	if s.Republish != nil {
23877		if err := s.Republish.Validate(); err != nil {
23878			invalidParams.AddNested("Republish", err.(request.ErrInvalidParams))
23879		}
23880	}
23881	if s.S3 != nil {
23882		if err := s.S3.Validate(); err != nil {
23883			invalidParams.AddNested("S3", err.(request.ErrInvalidParams))
23884		}
23885	}
23886	if s.Salesforce != nil {
23887		if err := s.Salesforce.Validate(); err != nil {
23888			invalidParams.AddNested("Salesforce", err.(request.ErrInvalidParams))
23889		}
23890	}
23891	if s.Sns != nil {
23892		if err := s.Sns.Validate(); err != nil {
23893			invalidParams.AddNested("Sns", err.(request.ErrInvalidParams))
23894		}
23895	}
23896	if s.Sqs != nil {
23897		if err := s.Sqs.Validate(); err != nil {
23898			invalidParams.AddNested("Sqs", err.(request.ErrInvalidParams))
23899		}
23900	}
23901	if s.StepFunctions != nil {
23902		if err := s.StepFunctions.Validate(); err != nil {
23903			invalidParams.AddNested("StepFunctions", err.(request.ErrInvalidParams))
23904		}
23905	}
23906	if s.Timestream != nil {
23907		if err := s.Timestream.Validate(); err != nil {
23908			invalidParams.AddNested("Timestream", err.(request.ErrInvalidParams))
23909		}
23910	}
23911
23912	if invalidParams.Len() > 0 {
23913		return invalidParams
23914	}
23915	return nil
23916}
23917
23918// SetCloudwatchAlarm sets the CloudwatchAlarm field's value.
23919func (s *Action) SetCloudwatchAlarm(v *CloudwatchAlarmAction) *Action {
23920	s.CloudwatchAlarm = v
23921	return s
23922}
23923
23924// SetCloudwatchLogs sets the CloudwatchLogs field's value.
23925func (s *Action) SetCloudwatchLogs(v *CloudwatchLogsAction) *Action {
23926	s.CloudwatchLogs = v
23927	return s
23928}
23929
23930// SetCloudwatchMetric sets the CloudwatchMetric field's value.
23931func (s *Action) SetCloudwatchMetric(v *CloudwatchMetricAction) *Action {
23932	s.CloudwatchMetric = v
23933	return s
23934}
23935
23936// SetDynamoDB sets the DynamoDB field's value.
23937func (s *Action) SetDynamoDB(v *DynamoDBAction) *Action {
23938	s.DynamoDB = v
23939	return s
23940}
23941
23942// SetDynamoDBv2 sets the DynamoDBv2 field's value.
23943func (s *Action) SetDynamoDBv2(v *DynamoDBv2Action) *Action {
23944	s.DynamoDBv2 = v
23945	return s
23946}
23947
23948// SetElasticsearch sets the Elasticsearch field's value.
23949func (s *Action) SetElasticsearch(v *ElasticsearchAction) *Action {
23950	s.Elasticsearch = v
23951	return s
23952}
23953
23954// SetFirehose sets the Firehose field's value.
23955func (s *Action) SetFirehose(v *FirehoseAction) *Action {
23956	s.Firehose = v
23957	return s
23958}
23959
23960// SetHttp sets the Http field's value.
23961func (s *Action) SetHttp(v *HttpAction) *Action {
23962	s.Http = v
23963	return s
23964}
23965
23966// SetIotAnalytics sets the IotAnalytics field's value.
23967func (s *Action) SetIotAnalytics(v *IotAnalyticsAction) *Action {
23968	s.IotAnalytics = v
23969	return s
23970}
23971
23972// SetIotEvents sets the IotEvents field's value.
23973func (s *Action) SetIotEvents(v *IotEventsAction) *Action {
23974	s.IotEvents = v
23975	return s
23976}
23977
23978// SetIotSiteWise sets the IotSiteWise field's value.
23979func (s *Action) SetIotSiteWise(v *IotSiteWiseAction) *Action {
23980	s.IotSiteWise = v
23981	return s
23982}
23983
23984// SetKafka sets the Kafka field's value.
23985func (s *Action) SetKafka(v *KafkaAction) *Action {
23986	s.Kafka = v
23987	return s
23988}
23989
23990// SetKinesis sets the Kinesis field's value.
23991func (s *Action) SetKinesis(v *KinesisAction) *Action {
23992	s.Kinesis = v
23993	return s
23994}
23995
23996// SetLambda sets the Lambda field's value.
23997func (s *Action) SetLambda(v *LambdaAction) *Action {
23998	s.Lambda = v
23999	return s
24000}
24001
24002// SetRepublish sets the Republish field's value.
24003func (s *Action) SetRepublish(v *RepublishAction) *Action {
24004	s.Republish = v
24005	return s
24006}
24007
24008// SetS3 sets the S3 field's value.
24009func (s *Action) SetS3(v *S3Action) *Action {
24010	s.S3 = v
24011	return s
24012}
24013
24014// SetSalesforce sets the Salesforce field's value.
24015func (s *Action) SetSalesforce(v *SalesforceAction) *Action {
24016	s.Salesforce = v
24017	return s
24018}
24019
24020// SetSns sets the Sns field's value.
24021func (s *Action) SetSns(v *SnsAction) *Action {
24022	s.Sns = v
24023	return s
24024}
24025
24026// SetSqs sets the Sqs field's value.
24027func (s *Action) SetSqs(v *SqsAction) *Action {
24028	s.Sqs = v
24029	return s
24030}
24031
24032// SetStepFunctions sets the StepFunctions field's value.
24033func (s *Action) SetStepFunctions(v *StepFunctionsAction) *Action {
24034	s.StepFunctions = v
24035	return s
24036}
24037
24038// SetTimestream sets the Timestream field's value.
24039func (s *Action) SetTimestream(v *TimestreamAction) *Action {
24040	s.Timestream = v
24041	return s
24042}
24043
24044// Information about an active Device Defender security profile behavior violation.
24045type ActiveViolation struct {
24046	_ struct{} `type:"structure"`
24047
24048	// The behavior that is being violated.
24049	Behavior *Behavior `locationName:"behavior" type:"structure"`
24050
24051	// The time the most recent violation occurred.
24052	LastViolationTime *time.Time `locationName:"lastViolationTime" type:"timestamp"`
24053
24054	// The value of the metric (the measurement) that caused the most recent violation.
24055	LastViolationValue *MetricValue `locationName:"lastViolationValue" type:"structure"`
24056
24057	// The security profile with the behavior is in violation.
24058	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
24059
24060	// The name of the thing responsible for the active violation.
24061	ThingName *string `locationName:"thingName" min:"1" type:"string"`
24062
24063	// The details of a violation event.
24064	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo `locationName:"violationEventAdditionalInfo" type:"structure"`
24065
24066	// The ID of the active violation.
24067	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
24068
24069	// The time the violation started.
24070	ViolationStartTime *time.Time `locationName:"violationStartTime" type:"timestamp"`
24071}
24072
24073// String returns the string representation
24074func (s ActiveViolation) String() string {
24075	return awsutil.Prettify(s)
24076}
24077
24078// GoString returns the string representation
24079func (s ActiveViolation) GoString() string {
24080	return s.String()
24081}
24082
24083// SetBehavior sets the Behavior field's value.
24084func (s *ActiveViolation) SetBehavior(v *Behavior) *ActiveViolation {
24085	s.Behavior = v
24086	return s
24087}
24088
24089// SetLastViolationTime sets the LastViolationTime field's value.
24090func (s *ActiveViolation) SetLastViolationTime(v time.Time) *ActiveViolation {
24091	s.LastViolationTime = &v
24092	return s
24093}
24094
24095// SetLastViolationValue sets the LastViolationValue field's value.
24096func (s *ActiveViolation) SetLastViolationValue(v *MetricValue) *ActiveViolation {
24097	s.LastViolationValue = v
24098	return s
24099}
24100
24101// SetSecurityProfileName sets the SecurityProfileName field's value.
24102func (s *ActiveViolation) SetSecurityProfileName(v string) *ActiveViolation {
24103	s.SecurityProfileName = &v
24104	return s
24105}
24106
24107// SetThingName sets the ThingName field's value.
24108func (s *ActiveViolation) SetThingName(v string) *ActiveViolation {
24109	s.ThingName = &v
24110	return s
24111}
24112
24113// SetViolationEventAdditionalInfo sets the ViolationEventAdditionalInfo field's value.
24114func (s *ActiveViolation) SetViolationEventAdditionalInfo(v *ViolationEventAdditionalInfo) *ActiveViolation {
24115	s.ViolationEventAdditionalInfo = v
24116	return s
24117}
24118
24119// SetViolationId sets the ViolationId field's value.
24120func (s *ActiveViolation) SetViolationId(v string) *ActiveViolation {
24121	s.ViolationId = &v
24122	return s
24123}
24124
24125// SetViolationStartTime sets the ViolationStartTime field's value.
24126func (s *ActiveViolation) SetViolationStartTime(v time.Time) *ActiveViolation {
24127	s.ViolationStartTime = &v
24128	return s
24129}
24130
24131type AddThingToBillingGroupInput struct {
24132	_ struct{} `type:"structure"`
24133
24134	// The ARN of the billing group.
24135	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
24136
24137	// The name of the billing group.
24138	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
24139
24140	// The ARN of the thing to be added to the billing group.
24141	ThingArn *string `locationName:"thingArn" type:"string"`
24142
24143	// The name of the thing to be added to the billing group.
24144	ThingName *string `locationName:"thingName" min:"1" type:"string"`
24145}
24146
24147// String returns the string representation
24148func (s AddThingToBillingGroupInput) String() string {
24149	return awsutil.Prettify(s)
24150}
24151
24152// GoString returns the string representation
24153func (s AddThingToBillingGroupInput) GoString() string {
24154	return s.String()
24155}
24156
24157// Validate inspects the fields of the type to determine if they are valid.
24158func (s *AddThingToBillingGroupInput) Validate() error {
24159	invalidParams := request.ErrInvalidParams{Context: "AddThingToBillingGroupInput"}
24160	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
24161		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
24162	}
24163	if s.ThingName != nil && len(*s.ThingName) < 1 {
24164		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
24165	}
24166
24167	if invalidParams.Len() > 0 {
24168		return invalidParams
24169	}
24170	return nil
24171}
24172
24173// SetBillingGroupArn sets the BillingGroupArn field's value.
24174func (s *AddThingToBillingGroupInput) SetBillingGroupArn(v string) *AddThingToBillingGroupInput {
24175	s.BillingGroupArn = &v
24176	return s
24177}
24178
24179// SetBillingGroupName sets the BillingGroupName field's value.
24180func (s *AddThingToBillingGroupInput) SetBillingGroupName(v string) *AddThingToBillingGroupInput {
24181	s.BillingGroupName = &v
24182	return s
24183}
24184
24185// SetThingArn sets the ThingArn field's value.
24186func (s *AddThingToBillingGroupInput) SetThingArn(v string) *AddThingToBillingGroupInput {
24187	s.ThingArn = &v
24188	return s
24189}
24190
24191// SetThingName sets the ThingName field's value.
24192func (s *AddThingToBillingGroupInput) SetThingName(v string) *AddThingToBillingGroupInput {
24193	s.ThingName = &v
24194	return s
24195}
24196
24197type AddThingToBillingGroupOutput struct {
24198	_ struct{} `type:"structure"`
24199}
24200
24201// String returns the string representation
24202func (s AddThingToBillingGroupOutput) String() string {
24203	return awsutil.Prettify(s)
24204}
24205
24206// GoString returns the string representation
24207func (s AddThingToBillingGroupOutput) GoString() string {
24208	return s.String()
24209}
24210
24211type AddThingToThingGroupInput struct {
24212	_ struct{} `type:"structure"`
24213
24214	// Override dynamic thing groups with static thing groups when 10-group limit
24215	// is reached. If a thing belongs to 10 thing groups, and one or more of those
24216	// groups are dynamic thing groups, adding a thing to a static group removes
24217	// the thing from the last dynamic group.
24218	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
24219
24220	// The ARN of the thing to add to a group.
24221	ThingArn *string `locationName:"thingArn" type:"string"`
24222
24223	// The ARN of the group to which you are adding a thing.
24224	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
24225
24226	// The name of the group to which you are adding a thing.
24227	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
24228
24229	// The name of the thing to add to a group.
24230	ThingName *string `locationName:"thingName" min:"1" type:"string"`
24231}
24232
24233// String returns the string representation
24234func (s AddThingToThingGroupInput) String() string {
24235	return awsutil.Prettify(s)
24236}
24237
24238// GoString returns the string representation
24239func (s AddThingToThingGroupInput) GoString() string {
24240	return s.String()
24241}
24242
24243// Validate inspects the fields of the type to determine if they are valid.
24244func (s *AddThingToThingGroupInput) Validate() error {
24245	invalidParams := request.ErrInvalidParams{Context: "AddThingToThingGroupInput"}
24246	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
24247		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
24248	}
24249	if s.ThingName != nil && len(*s.ThingName) < 1 {
24250		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
24251	}
24252
24253	if invalidParams.Len() > 0 {
24254		return invalidParams
24255	}
24256	return nil
24257}
24258
24259// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
24260func (s *AddThingToThingGroupInput) SetOverrideDynamicGroups(v bool) *AddThingToThingGroupInput {
24261	s.OverrideDynamicGroups = &v
24262	return s
24263}
24264
24265// SetThingArn sets the ThingArn field's value.
24266func (s *AddThingToThingGroupInput) SetThingArn(v string) *AddThingToThingGroupInput {
24267	s.ThingArn = &v
24268	return s
24269}
24270
24271// SetThingGroupArn sets the ThingGroupArn field's value.
24272func (s *AddThingToThingGroupInput) SetThingGroupArn(v string) *AddThingToThingGroupInput {
24273	s.ThingGroupArn = &v
24274	return s
24275}
24276
24277// SetThingGroupName sets the ThingGroupName field's value.
24278func (s *AddThingToThingGroupInput) SetThingGroupName(v string) *AddThingToThingGroupInput {
24279	s.ThingGroupName = &v
24280	return s
24281}
24282
24283// SetThingName sets the ThingName field's value.
24284func (s *AddThingToThingGroupInput) SetThingName(v string) *AddThingToThingGroupInput {
24285	s.ThingName = &v
24286	return s
24287}
24288
24289type AddThingToThingGroupOutput struct {
24290	_ struct{} `type:"structure"`
24291}
24292
24293// String returns the string representation
24294func (s AddThingToThingGroupOutput) String() string {
24295	return awsutil.Prettify(s)
24296}
24297
24298// GoString returns the string representation
24299func (s AddThingToThingGroupOutput) GoString() string {
24300	return s.String()
24301}
24302
24303// Parameters used when defining a mitigation action that move a set of things
24304// to a thing group.
24305type AddThingsToThingGroupParams struct {
24306	_ struct{} `type:"structure"`
24307
24308	// Specifies if this mitigation action can move the things that triggered the
24309	// mitigation action even if they are part of one or more dynamic thing groups.
24310	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
24311
24312	// The list of groups to which you want to add the things that triggered the
24313	// mitigation action. You can add a thing to a maximum of 10 groups, but you
24314	// can't add a thing to more than one group in the same hierarchy.
24315	//
24316	// ThingGroupNames is a required field
24317	ThingGroupNames []*string `locationName:"thingGroupNames" min:"1" type:"list" required:"true"`
24318}
24319
24320// String returns the string representation
24321func (s AddThingsToThingGroupParams) String() string {
24322	return awsutil.Prettify(s)
24323}
24324
24325// GoString returns the string representation
24326func (s AddThingsToThingGroupParams) GoString() string {
24327	return s.String()
24328}
24329
24330// Validate inspects the fields of the type to determine if they are valid.
24331func (s *AddThingsToThingGroupParams) Validate() error {
24332	invalidParams := request.ErrInvalidParams{Context: "AddThingsToThingGroupParams"}
24333	if s.ThingGroupNames == nil {
24334		invalidParams.Add(request.NewErrParamRequired("ThingGroupNames"))
24335	}
24336	if s.ThingGroupNames != nil && len(s.ThingGroupNames) < 1 {
24337		invalidParams.Add(request.NewErrParamMinLen("ThingGroupNames", 1))
24338	}
24339
24340	if invalidParams.Len() > 0 {
24341		return invalidParams
24342	}
24343	return nil
24344}
24345
24346// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
24347func (s *AddThingsToThingGroupParams) SetOverrideDynamicGroups(v bool) *AddThingsToThingGroupParams {
24348	s.OverrideDynamicGroups = &v
24349	return s
24350}
24351
24352// SetThingGroupNames sets the ThingGroupNames field's value.
24353func (s *AddThingsToThingGroupParams) SetThingGroupNames(v []*string) *AddThingsToThingGroupParams {
24354	s.ThingGroupNames = v
24355	return s
24356}
24357
24358// A structure containing the alert target ARN and the role ARN.
24359type AlertTarget struct {
24360	_ struct{} `type:"structure"`
24361
24362	// The Amazon Resource Name (ARN) of the notification target to which alerts
24363	// are sent.
24364	//
24365	// AlertTargetArn is a required field
24366	AlertTargetArn *string `locationName:"alertTargetArn" type:"string" required:"true"`
24367
24368	// The ARN of the role that grants permission to send alerts to the notification
24369	// target.
24370	//
24371	// RoleArn is a required field
24372	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
24373}
24374
24375// String returns the string representation
24376func (s AlertTarget) String() string {
24377	return awsutil.Prettify(s)
24378}
24379
24380// GoString returns the string representation
24381func (s AlertTarget) GoString() string {
24382	return s.String()
24383}
24384
24385// Validate inspects the fields of the type to determine if they are valid.
24386func (s *AlertTarget) Validate() error {
24387	invalidParams := request.ErrInvalidParams{Context: "AlertTarget"}
24388	if s.AlertTargetArn == nil {
24389		invalidParams.Add(request.NewErrParamRequired("AlertTargetArn"))
24390	}
24391	if s.RoleArn == nil {
24392		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
24393	}
24394	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
24395		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
24396	}
24397
24398	if invalidParams.Len() > 0 {
24399		return invalidParams
24400	}
24401	return nil
24402}
24403
24404// SetAlertTargetArn sets the AlertTargetArn field's value.
24405func (s *AlertTarget) SetAlertTargetArn(v string) *AlertTarget {
24406	s.AlertTargetArn = &v
24407	return s
24408}
24409
24410// SetRoleArn sets the RoleArn field's value.
24411func (s *AlertTarget) SetRoleArn(v string) *AlertTarget {
24412	s.RoleArn = &v
24413	return s
24414}
24415
24416// Contains information that allowed the authorization.
24417type Allowed struct {
24418	_ struct{} `type:"structure"`
24419
24420	// A list of policies that allowed the authentication.
24421	Policies []*Policy `locationName:"policies" type:"list"`
24422}
24423
24424// String returns the string representation
24425func (s Allowed) String() string {
24426	return awsutil.Prettify(s)
24427}
24428
24429// GoString returns the string representation
24430func (s Allowed) GoString() string {
24431	return s.String()
24432}
24433
24434// SetPolicies sets the Policies field's value.
24435func (s *Allowed) SetPolicies(v []*Policy) *Allowed {
24436	s.Policies = v
24437	return s
24438}
24439
24440// An asset property timestamp entry containing the following information.
24441type AssetPropertyTimestamp struct {
24442	_ struct{} `type:"structure"`
24443
24444	// Optional. A string that contains the nanosecond time offset. Accepts substitution
24445	// templates.
24446	OffsetInNanos *string `locationName:"offsetInNanos" type:"string"`
24447
24448	// A string that contains the time in seconds since epoch. Accepts substitution
24449	// templates.
24450	//
24451	// TimeInSeconds is a required field
24452	TimeInSeconds *string `locationName:"timeInSeconds" type:"string" required:"true"`
24453}
24454
24455// String returns the string representation
24456func (s AssetPropertyTimestamp) String() string {
24457	return awsutil.Prettify(s)
24458}
24459
24460// GoString returns the string representation
24461func (s AssetPropertyTimestamp) GoString() string {
24462	return s.String()
24463}
24464
24465// Validate inspects the fields of the type to determine if they are valid.
24466func (s *AssetPropertyTimestamp) Validate() error {
24467	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyTimestamp"}
24468	if s.TimeInSeconds == nil {
24469		invalidParams.Add(request.NewErrParamRequired("TimeInSeconds"))
24470	}
24471
24472	if invalidParams.Len() > 0 {
24473		return invalidParams
24474	}
24475	return nil
24476}
24477
24478// SetOffsetInNanos sets the OffsetInNanos field's value.
24479func (s *AssetPropertyTimestamp) SetOffsetInNanos(v string) *AssetPropertyTimestamp {
24480	s.OffsetInNanos = &v
24481	return s
24482}
24483
24484// SetTimeInSeconds sets the TimeInSeconds field's value.
24485func (s *AssetPropertyTimestamp) SetTimeInSeconds(v string) *AssetPropertyTimestamp {
24486	s.TimeInSeconds = &v
24487	return s
24488}
24489
24490// An asset property value entry containing the following information.
24491type AssetPropertyValue struct {
24492	_ struct{} `type:"structure"`
24493
24494	// Optional. A string that describes the quality of the value. Accepts substitution
24495	// templates. Must be GOOD, BAD, or UNCERTAIN.
24496	Quality *string `locationName:"quality" type:"string"`
24497
24498	// The asset property value timestamp.
24499	//
24500	// Timestamp is a required field
24501	Timestamp *AssetPropertyTimestamp `locationName:"timestamp" type:"structure" required:"true"`
24502
24503	// The value of the asset property.
24504	//
24505	// Value is a required field
24506	Value *AssetPropertyVariant `locationName:"value" type:"structure" required:"true"`
24507}
24508
24509// String returns the string representation
24510func (s AssetPropertyValue) String() string {
24511	return awsutil.Prettify(s)
24512}
24513
24514// GoString returns the string representation
24515func (s AssetPropertyValue) GoString() string {
24516	return s.String()
24517}
24518
24519// Validate inspects the fields of the type to determine if they are valid.
24520func (s *AssetPropertyValue) Validate() error {
24521	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyValue"}
24522	if s.Timestamp == nil {
24523		invalidParams.Add(request.NewErrParamRequired("Timestamp"))
24524	}
24525	if s.Value == nil {
24526		invalidParams.Add(request.NewErrParamRequired("Value"))
24527	}
24528	if s.Timestamp != nil {
24529		if err := s.Timestamp.Validate(); err != nil {
24530			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
24531		}
24532	}
24533	if s.Value != nil {
24534		if err := s.Value.Validate(); err != nil {
24535			invalidParams.AddNested("Value", err.(request.ErrInvalidParams))
24536		}
24537	}
24538
24539	if invalidParams.Len() > 0 {
24540		return invalidParams
24541	}
24542	return nil
24543}
24544
24545// SetQuality sets the Quality field's value.
24546func (s *AssetPropertyValue) SetQuality(v string) *AssetPropertyValue {
24547	s.Quality = &v
24548	return s
24549}
24550
24551// SetTimestamp sets the Timestamp field's value.
24552func (s *AssetPropertyValue) SetTimestamp(v *AssetPropertyTimestamp) *AssetPropertyValue {
24553	s.Timestamp = v
24554	return s
24555}
24556
24557// SetValue sets the Value field's value.
24558func (s *AssetPropertyValue) SetValue(v *AssetPropertyVariant) *AssetPropertyValue {
24559	s.Value = v
24560	return s
24561}
24562
24563// Contains an asset property value (of a single type).
24564type AssetPropertyVariant struct {
24565	_ struct{} `type:"structure"`
24566
24567	// Optional. A string that contains the boolean value (true or false) of the
24568	// value entry. Accepts substitution templates.
24569	BooleanValue *string `locationName:"booleanValue" type:"string"`
24570
24571	// Optional. A string that contains the double value of the value entry. Accepts
24572	// substitution templates.
24573	DoubleValue *string `locationName:"doubleValue" type:"string"`
24574
24575	// Optional. A string that contains the integer value of the value entry. Accepts
24576	// substitution templates.
24577	IntegerValue *string `locationName:"integerValue" type:"string"`
24578
24579	// Optional. The string value of the value entry. Accepts substitution templates.
24580	StringValue *string `locationName:"stringValue" min:"1" type:"string"`
24581}
24582
24583// String returns the string representation
24584func (s AssetPropertyVariant) String() string {
24585	return awsutil.Prettify(s)
24586}
24587
24588// GoString returns the string representation
24589func (s AssetPropertyVariant) GoString() string {
24590	return s.String()
24591}
24592
24593// Validate inspects the fields of the type to determine if they are valid.
24594func (s *AssetPropertyVariant) Validate() error {
24595	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyVariant"}
24596	if s.StringValue != nil && len(*s.StringValue) < 1 {
24597		invalidParams.Add(request.NewErrParamMinLen("StringValue", 1))
24598	}
24599
24600	if invalidParams.Len() > 0 {
24601		return invalidParams
24602	}
24603	return nil
24604}
24605
24606// SetBooleanValue sets the BooleanValue field's value.
24607func (s *AssetPropertyVariant) SetBooleanValue(v string) *AssetPropertyVariant {
24608	s.BooleanValue = &v
24609	return s
24610}
24611
24612// SetDoubleValue sets the DoubleValue field's value.
24613func (s *AssetPropertyVariant) SetDoubleValue(v string) *AssetPropertyVariant {
24614	s.DoubleValue = &v
24615	return s
24616}
24617
24618// SetIntegerValue sets the IntegerValue field's value.
24619func (s *AssetPropertyVariant) SetIntegerValue(v string) *AssetPropertyVariant {
24620	s.IntegerValue = &v
24621	return s
24622}
24623
24624// SetStringValue sets the StringValue field's value.
24625func (s *AssetPropertyVariant) SetStringValue(v string) *AssetPropertyVariant {
24626	s.StringValue = &v
24627	return s
24628}
24629
24630type AssociateTargetsWithJobInput struct {
24631	_ struct{} `type:"structure"`
24632
24633	// An optional comment string describing why the job was associated with the
24634	// targets.
24635	Comment *string `locationName:"comment" type:"string"`
24636
24637	// The unique identifier you assigned to this job when it was created.
24638	//
24639	// JobId is a required field
24640	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
24641
24642	// The namespace used to indicate that a job is a customer-managed job.
24643	//
24644	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
24645	// to MQTT topics that contain the value in the following format.
24646	//
24647	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
24648	//
24649	// The namespaceId feature is in public preview.
24650	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
24651
24652	// A list of thing group ARNs that define the targets of the job.
24653	//
24654	// Targets is a required field
24655	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
24656}
24657
24658// String returns the string representation
24659func (s AssociateTargetsWithJobInput) String() string {
24660	return awsutil.Prettify(s)
24661}
24662
24663// GoString returns the string representation
24664func (s AssociateTargetsWithJobInput) GoString() string {
24665	return s.String()
24666}
24667
24668// Validate inspects the fields of the type to determine if they are valid.
24669func (s *AssociateTargetsWithJobInput) Validate() error {
24670	invalidParams := request.ErrInvalidParams{Context: "AssociateTargetsWithJobInput"}
24671	if s.JobId == nil {
24672		invalidParams.Add(request.NewErrParamRequired("JobId"))
24673	}
24674	if s.JobId != nil && len(*s.JobId) < 1 {
24675		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
24676	}
24677	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
24678		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
24679	}
24680	if s.Targets == nil {
24681		invalidParams.Add(request.NewErrParamRequired("Targets"))
24682	}
24683	if s.Targets != nil && len(s.Targets) < 1 {
24684		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
24685	}
24686
24687	if invalidParams.Len() > 0 {
24688		return invalidParams
24689	}
24690	return nil
24691}
24692
24693// SetComment sets the Comment field's value.
24694func (s *AssociateTargetsWithJobInput) SetComment(v string) *AssociateTargetsWithJobInput {
24695	s.Comment = &v
24696	return s
24697}
24698
24699// SetJobId sets the JobId field's value.
24700func (s *AssociateTargetsWithJobInput) SetJobId(v string) *AssociateTargetsWithJobInput {
24701	s.JobId = &v
24702	return s
24703}
24704
24705// SetNamespaceId sets the NamespaceId field's value.
24706func (s *AssociateTargetsWithJobInput) SetNamespaceId(v string) *AssociateTargetsWithJobInput {
24707	s.NamespaceId = &v
24708	return s
24709}
24710
24711// SetTargets sets the Targets field's value.
24712func (s *AssociateTargetsWithJobInput) SetTargets(v []*string) *AssociateTargetsWithJobInput {
24713	s.Targets = v
24714	return s
24715}
24716
24717type AssociateTargetsWithJobOutput struct {
24718	_ struct{} `type:"structure"`
24719
24720	// A short text description of the job.
24721	Description *string `locationName:"description" type:"string"`
24722
24723	// An ARN identifying the job.
24724	JobArn *string `locationName:"jobArn" type:"string"`
24725
24726	// The unique identifier you assigned to this job when it was created.
24727	JobId *string `locationName:"jobId" min:"1" type:"string"`
24728}
24729
24730// String returns the string representation
24731func (s AssociateTargetsWithJobOutput) String() string {
24732	return awsutil.Prettify(s)
24733}
24734
24735// GoString returns the string representation
24736func (s AssociateTargetsWithJobOutput) GoString() string {
24737	return s.String()
24738}
24739
24740// SetDescription sets the Description field's value.
24741func (s *AssociateTargetsWithJobOutput) SetDescription(v string) *AssociateTargetsWithJobOutput {
24742	s.Description = &v
24743	return s
24744}
24745
24746// SetJobArn sets the JobArn field's value.
24747func (s *AssociateTargetsWithJobOutput) SetJobArn(v string) *AssociateTargetsWithJobOutput {
24748	s.JobArn = &v
24749	return s
24750}
24751
24752// SetJobId sets the JobId field's value.
24753func (s *AssociateTargetsWithJobOutput) SetJobId(v string) *AssociateTargetsWithJobOutput {
24754	s.JobId = &v
24755	return s
24756}
24757
24758type AttachPolicyInput struct {
24759	_ struct{} `type:"structure"`
24760
24761	// The name of the policy to attach.
24762	//
24763	// PolicyName is a required field
24764	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
24765
24766	// The identity (https://docs.aws.amazon.com/iot/latest/developerguide/security-iam.html)
24767	// to which the policy is attached. For example, a thing group or a certificate.
24768	//
24769	// Target is a required field
24770	Target *string `locationName:"target" type:"string" required:"true"`
24771}
24772
24773// String returns the string representation
24774func (s AttachPolicyInput) String() string {
24775	return awsutil.Prettify(s)
24776}
24777
24778// GoString returns the string representation
24779func (s AttachPolicyInput) GoString() string {
24780	return s.String()
24781}
24782
24783// Validate inspects the fields of the type to determine if they are valid.
24784func (s *AttachPolicyInput) Validate() error {
24785	invalidParams := request.ErrInvalidParams{Context: "AttachPolicyInput"}
24786	if s.PolicyName == nil {
24787		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
24788	}
24789	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
24790		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
24791	}
24792	if s.Target == nil {
24793		invalidParams.Add(request.NewErrParamRequired("Target"))
24794	}
24795
24796	if invalidParams.Len() > 0 {
24797		return invalidParams
24798	}
24799	return nil
24800}
24801
24802// SetPolicyName sets the PolicyName field's value.
24803func (s *AttachPolicyInput) SetPolicyName(v string) *AttachPolicyInput {
24804	s.PolicyName = &v
24805	return s
24806}
24807
24808// SetTarget sets the Target field's value.
24809func (s *AttachPolicyInput) SetTarget(v string) *AttachPolicyInput {
24810	s.Target = &v
24811	return s
24812}
24813
24814type AttachPolicyOutput struct {
24815	_ struct{} `type:"structure"`
24816}
24817
24818// String returns the string representation
24819func (s AttachPolicyOutput) String() string {
24820	return awsutil.Prettify(s)
24821}
24822
24823// GoString returns the string representation
24824func (s AttachPolicyOutput) GoString() string {
24825	return s.String()
24826}
24827
24828// The input for the AttachPrincipalPolicy operation.
24829type AttachPrincipalPolicyInput struct {
24830	_ struct{} `type:"structure"`
24831
24832	// The policy name.
24833	//
24834	// PolicyName is a required field
24835	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
24836
24837	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
24838	// operation) or an Amazon Cognito ID.
24839	//
24840	// Principal is a required field
24841	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
24842}
24843
24844// String returns the string representation
24845func (s AttachPrincipalPolicyInput) String() string {
24846	return awsutil.Prettify(s)
24847}
24848
24849// GoString returns the string representation
24850func (s AttachPrincipalPolicyInput) GoString() string {
24851	return s.String()
24852}
24853
24854// Validate inspects the fields of the type to determine if they are valid.
24855func (s *AttachPrincipalPolicyInput) Validate() error {
24856	invalidParams := request.ErrInvalidParams{Context: "AttachPrincipalPolicyInput"}
24857	if s.PolicyName == nil {
24858		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
24859	}
24860	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
24861		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
24862	}
24863	if s.Principal == nil {
24864		invalidParams.Add(request.NewErrParamRequired("Principal"))
24865	}
24866
24867	if invalidParams.Len() > 0 {
24868		return invalidParams
24869	}
24870	return nil
24871}
24872
24873// SetPolicyName sets the PolicyName field's value.
24874func (s *AttachPrincipalPolicyInput) SetPolicyName(v string) *AttachPrincipalPolicyInput {
24875	s.PolicyName = &v
24876	return s
24877}
24878
24879// SetPrincipal sets the Principal field's value.
24880func (s *AttachPrincipalPolicyInput) SetPrincipal(v string) *AttachPrincipalPolicyInput {
24881	s.Principal = &v
24882	return s
24883}
24884
24885type AttachPrincipalPolicyOutput struct {
24886	_ struct{} `type:"structure"`
24887}
24888
24889// String returns the string representation
24890func (s AttachPrincipalPolicyOutput) String() string {
24891	return awsutil.Prettify(s)
24892}
24893
24894// GoString returns the string representation
24895func (s AttachPrincipalPolicyOutput) GoString() string {
24896	return s.String()
24897}
24898
24899type AttachSecurityProfileInput struct {
24900	_ struct{} `type:"structure"`
24901
24902	// The security profile that is attached.
24903	//
24904	// SecurityProfileName is a required field
24905	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
24906
24907	// The ARN of the target (thing group) to which the security profile is attached.
24908	//
24909	// SecurityProfileTargetArn is a required field
24910	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
24911}
24912
24913// String returns the string representation
24914func (s AttachSecurityProfileInput) String() string {
24915	return awsutil.Prettify(s)
24916}
24917
24918// GoString returns the string representation
24919func (s AttachSecurityProfileInput) GoString() string {
24920	return s.String()
24921}
24922
24923// Validate inspects the fields of the type to determine if they are valid.
24924func (s *AttachSecurityProfileInput) Validate() error {
24925	invalidParams := request.ErrInvalidParams{Context: "AttachSecurityProfileInput"}
24926	if s.SecurityProfileName == nil {
24927		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
24928	}
24929	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
24930		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
24931	}
24932	if s.SecurityProfileTargetArn == nil {
24933		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
24934	}
24935
24936	if invalidParams.Len() > 0 {
24937		return invalidParams
24938	}
24939	return nil
24940}
24941
24942// SetSecurityProfileName sets the SecurityProfileName field's value.
24943func (s *AttachSecurityProfileInput) SetSecurityProfileName(v string) *AttachSecurityProfileInput {
24944	s.SecurityProfileName = &v
24945	return s
24946}
24947
24948// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
24949func (s *AttachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *AttachSecurityProfileInput {
24950	s.SecurityProfileTargetArn = &v
24951	return s
24952}
24953
24954type AttachSecurityProfileOutput struct {
24955	_ struct{} `type:"structure"`
24956}
24957
24958// String returns the string representation
24959func (s AttachSecurityProfileOutput) String() string {
24960	return awsutil.Prettify(s)
24961}
24962
24963// GoString returns the string representation
24964func (s AttachSecurityProfileOutput) GoString() string {
24965	return s.String()
24966}
24967
24968// The input for the AttachThingPrincipal operation.
24969type AttachThingPrincipalInput struct {
24970	_ struct{} `type:"structure"`
24971
24972	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
24973	// operation) or an Amazon Cognito ID.
24974	//
24975	// Principal is a required field
24976	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
24977
24978	// The name of the thing.
24979	//
24980	// ThingName is a required field
24981	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
24982}
24983
24984// String returns the string representation
24985func (s AttachThingPrincipalInput) String() string {
24986	return awsutil.Prettify(s)
24987}
24988
24989// GoString returns the string representation
24990func (s AttachThingPrincipalInput) GoString() string {
24991	return s.String()
24992}
24993
24994// Validate inspects the fields of the type to determine if they are valid.
24995func (s *AttachThingPrincipalInput) Validate() error {
24996	invalidParams := request.ErrInvalidParams{Context: "AttachThingPrincipalInput"}
24997	if s.Principal == nil {
24998		invalidParams.Add(request.NewErrParamRequired("Principal"))
24999	}
25000	if s.ThingName == nil {
25001		invalidParams.Add(request.NewErrParamRequired("ThingName"))
25002	}
25003	if s.ThingName != nil && len(*s.ThingName) < 1 {
25004		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
25005	}
25006
25007	if invalidParams.Len() > 0 {
25008		return invalidParams
25009	}
25010	return nil
25011}
25012
25013// SetPrincipal sets the Principal field's value.
25014func (s *AttachThingPrincipalInput) SetPrincipal(v string) *AttachThingPrincipalInput {
25015	s.Principal = &v
25016	return s
25017}
25018
25019// SetThingName sets the ThingName field's value.
25020func (s *AttachThingPrincipalInput) SetThingName(v string) *AttachThingPrincipalInput {
25021	s.ThingName = &v
25022	return s
25023}
25024
25025// The output from the AttachThingPrincipal operation.
25026type AttachThingPrincipalOutput struct {
25027	_ struct{} `type:"structure"`
25028}
25029
25030// String returns the string representation
25031func (s AttachThingPrincipalOutput) String() string {
25032	return awsutil.Prettify(s)
25033}
25034
25035// GoString returns the string representation
25036func (s AttachThingPrincipalOutput) GoString() string {
25037	return s.String()
25038}
25039
25040// The attribute payload.
25041type AttributePayload struct {
25042	_ struct{} `type:"structure"`
25043
25044	// A JSON string containing up to three key-value pair in JSON format. For example:
25045	//
25046	// {\"attributes\":{\"string1\":\"string2\"}}
25047	Attributes map[string]*string `locationName:"attributes" type:"map"`
25048
25049	// Specifies whether the list of attributes provided in the AttributePayload
25050	// is merged with the attributes stored in the registry, instead of overwriting
25051	// them.
25052	//
25053	// To remove an attribute, call UpdateThing with an empty attribute value.
25054	//
25055	// The merge attribute is only valid when calling UpdateThing or UpdateThingGroup.
25056	Merge *bool `locationName:"merge" type:"boolean"`
25057}
25058
25059// String returns the string representation
25060func (s AttributePayload) String() string {
25061	return awsutil.Prettify(s)
25062}
25063
25064// GoString returns the string representation
25065func (s AttributePayload) GoString() string {
25066	return s.String()
25067}
25068
25069// SetAttributes sets the Attributes field's value.
25070func (s *AttributePayload) SetAttributes(v map[string]*string) *AttributePayload {
25071	s.Attributes = v
25072	return s
25073}
25074
25075// SetMerge sets the Merge field's value.
25076func (s *AttributePayload) SetMerge(v bool) *AttributePayload {
25077	s.Merge = &v
25078	return s
25079}
25080
25081// Which audit checks are enabled and disabled for this account.
25082type AuditCheckConfiguration struct {
25083	_ struct{} `type:"structure"`
25084
25085	// True if this audit check is enabled for this account.
25086	Enabled *bool `locationName:"enabled" type:"boolean"`
25087}
25088
25089// String returns the string representation
25090func (s AuditCheckConfiguration) String() string {
25091	return awsutil.Prettify(s)
25092}
25093
25094// GoString returns the string representation
25095func (s AuditCheckConfiguration) GoString() string {
25096	return s.String()
25097}
25098
25099// SetEnabled sets the Enabled field's value.
25100func (s *AuditCheckConfiguration) SetEnabled(v bool) *AuditCheckConfiguration {
25101	s.Enabled = &v
25102	return s
25103}
25104
25105// Information about the audit check.
25106type AuditCheckDetails struct {
25107	_ struct{} `type:"structure"`
25108
25109	// True if the check is complete and found all resources compliant.
25110	CheckCompliant *bool `locationName:"checkCompliant" type:"boolean"`
25111
25112	// The completion status of this check. One of "IN_PROGRESS", "WAITING_FOR_DATA_COLLECTION",
25113	// "CANCELED", "COMPLETED_COMPLIANT", "COMPLETED_NON_COMPLIANT", or "FAILED".
25114	CheckRunStatus *string `locationName:"checkRunStatus" type:"string" enum:"AuditCheckRunStatus"`
25115
25116	// The code of any error encountered when this check is performed during this
25117	// audit. One of "INSUFFICIENT_PERMISSIONS" or "AUDIT_CHECK_DISABLED".
25118	ErrorCode *string `locationName:"errorCode" type:"string"`
25119
25120	// The message associated with any error encountered when this check is performed
25121	// during this audit.
25122	Message *string `locationName:"message" type:"string"`
25123
25124	// The number of resources that were found noncompliant during the check.
25125	NonCompliantResourcesCount *int64 `locationName:"nonCompliantResourcesCount" type:"long"`
25126
25127	// Describes how many of the non-compliant resources created during the evaluation
25128	// of an audit check were marked as suppressed.
25129	SuppressedNonCompliantResourcesCount *int64 `locationName:"suppressedNonCompliantResourcesCount" type:"long"`
25130
25131	// The number of resources on which the check was performed.
25132	TotalResourcesCount *int64 `locationName:"totalResourcesCount" type:"long"`
25133}
25134
25135// String returns the string representation
25136func (s AuditCheckDetails) String() string {
25137	return awsutil.Prettify(s)
25138}
25139
25140// GoString returns the string representation
25141func (s AuditCheckDetails) GoString() string {
25142	return s.String()
25143}
25144
25145// SetCheckCompliant sets the CheckCompliant field's value.
25146func (s *AuditCheckDetails) SetCheckCompliant(v bool) *AuditCheckDetails {
25147	s.CheckCompliant = &v
25148	return s
25149}
25150
25151// SetCheckRunStatus sets the CheckRunStatus field's value.
25152func (s *AuditCheckDetails) SetCheckRunStatus(v string) *AuditCheckDetails {
25153	s.CheckRunStatus = &v
25154	return s
25155}
25156
25157// SetErrorCode sets the ErrorCode field's value.
25158func (s *AuditCheckDetails) SetErrorCode(v string) *AuditCheckDetails {
25159	s.ErrorCode = &v
25160	return s
25161}
25162
25163// SetMessage sets the Message field's value.
25164func (s *AuditCheckDetails) SetMessage(v string) *AuditCheckDetails {
25165	s.Message = &v
25166	return s
25167}
25168
25169// SetNonCompliantResourcesCount sets the NonCompliantResourcesCount field's value.
25170func (s *AuditCheckDetails) SetNonCompliantResourcesCount(v int64) *AuditCheckDetails {
25171	s.NonCompliantResourcesCount = &v
25172	return s
25173}
25174
25175// SetSuppressedNonCompliantResourcesCount sets the SuppressedNonCompliantResourcesCount field's value.
25176func (s *AuditCheckDetails) SetSuppressedNonCompliantResourcesCount(v int64) *AuditCheckDetails {
25177	s.SuppressedNonCompliantResourcesCount = &v
25178	return s
25179}
25180
25181// SetTotalResourcesCount sets the TotalResourcesCount field's value.
25182func (s *AuditCheckDetails) SetTotalResourcesCount(v int64) *AuditCheckDetails {
25183	s.TotalResourcesCount = &v
25184	return s
25185}
25186
25187// The findings (results) of the audit.
25188type AuditFinding struct {
25189	_ struct{} `type:"structure"`
25190
25191	// The audit check that generated this result.
25192	CheckName *string `locationName:"checkName" type:"string"`
25193
25194	// A unique identifier for this set of audit findings. This identifier is used
25195	// to apply mitigation tasks to one or more sets of findings.
25196	FindingId *string `locationName:"findingId" min:"1" type:"string"`
25197
25198	// The time the result (finding) was discovered.
25199	FindingTime *time.Time `locationName:"findingTime" type:"timestamp"`
25200
25201	// Indicates whether the audit finding was suppressed or not during reporting.
25202	IsSuppressed *bool `locationName:"isSuppressed" type:"boolean"`
25203
25204	// The resource that was found to be noncompliant with the audit check.
25205	NonCompliantResource *NonCompliantResource `locationName:"nonCompliantResource" type:"structure"`
25206
25207	// The reason the resource was noncompliant.
25208	ReasonForNonCompliance *string `locationName:"reasonForNonCompliance" type:"string"`
25209
25210	// A code that indicates the reason that the resource was noncompliant.
25211	ReasonForNonComplianceCode *string `locationName:"reasonForNonComplianceCode" type:"string"`
25212
25213	// The list of related resources.
25214	RelatedResources []*RelatedResource `locationName:"relatedResources" type:"list"`
25215
25216	// The severity of the result (finding).
25217	Severity *string `locationName:"severity" type:"string" enum:"AuditFindingSeverity"`
25218
25219	// The ID of the audit that generated this result (finding).
25220	TaskId *string `locationName:"taskId" min:"1" type:"string"`
25221
25222	// The time the audit started.
25223	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
25224}
25225
25226// String returns the string representation
25227func (s AuditFinding) String() string {
25228	return awsutil.Prettify(s)
25229}
25230
25231// GoString returns the string representation
25232func (s AuditFinding) GoString() string {
25233	return s.String()
25234}
25235
25236// SetCheckName sets the CheckName field's value.
25237func (s *AuditFinding) SetCheckName(v string) *AuditFinding {
25238	s.CheckName = &v
25239	return s
25240}
25241
25242// SetFindingId sets the FindingId field's value.
25243func (s *AuditFinding) SetFindingId(v string) *AuditFinding {
25244	s.FindingId = &v
25245	return s
25246}
25247
25248// SetFindingTime sets the FindingTime field's value.
25249func (s *AuditFinding) SetFindingTime(v time.Time) *AuditFinding {
25250	s.FindingTime = &v
25251	return s
25252}
25253
25254// SetIsSuppressed sets the IsSuppressed field's value.
25255func (s *AuditFinding) SetIsSuppressed(v bool) *AuditFinding {
25256	s.IsSuppressed = &v
25257	return s
25258}
25259
25260// SetNonCompliantResource sets the NonCompliantResource field's value.
25261func (s *AuditFinding) SetNonCompliantResource(v *NonCompliantResource) *AuditFinding {
25262	s.NonCompliantResource = v
25263	return s
25264}
25265
25266// SetReasonForNonCompliance sets the ReasonForNonCompliance field's value.
25267func (s *AuditFinding) SetReasonForNonCompliance(v string) *AuditFinding {
25268	s.ReasonForNonCompliance = &v
25269	return s
25270}
25271
25272// SetReasonForNonComplianceCode sets the ReasonForNonComplianceCode field's value.
25273func (s *AuditFinding) SetReasonForNonComplianceCode(v string) *AuditFinding {
25274	s.ReasonForNonComplianceCode = &v
25275	return s
25276}
25277
25278// SetRelatedResources sets the RelatedResources field's value.
25279func (s *AuditFinding) SetRelatedResources(v []*RelatedResource) *AuditFinding {
25280	s.RelatedResources = v
25281	return s
25282}
25283
25284// SetSeverity sets the Severity field's value.
25285func (s *AuditFinding) SetSeverity(v string) *AuditFinding {
25286	s.Severity = &v
25287	return s
25288}
25289
25290// SetTaskId sets the TaskId field's value.
25291func (s *AuditFinding) SetTaskId(v string) *AuditFinding {
25292	s.TaskId = &v
25293	return s
25294}
25295
25296// SetTaskStartTime sets the TaskStartTime field's value.
25297func (s *AuditFinding) SetTaskStartTime(v time.Time) *AuditFinding {
25298	s.TaskStartTime = &v
25299	return s
25300}
25301
25302// Returned by ListAuditMitigationActionsTask, this object contains information
25303// that describes a mitigation action that has been started.
25304type AuditMitigationActionExecutionMetadata struct {
25305	_ struct{} `type:"structure"`
25306
25307	// The unique identifier for the mitigation action being applied by the task.
25308	ActionId *string `locationName:"actionId" type:"string"`
25309
25310	// The friendly name of the mitigation action being applied by the task.
25311	ActionName *string `locationName:"actionName" type:"string"`
25312
25313	// The date and time when the task was completed or canceled. Blank if the task
25314	// is still running.
25315	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
25316
25317	// If an error occurred, the code that indicates which type of error occurred.
25318	ErrorCode *string `locationName:"errorCode" type:"string"`
25319
25320	// The unique identifier for the findings to which the task and associated mitigation
25321	// action are applied.
25322	FindingId *string `locationName:"findingId" min:"1" type:"string"`
25323
25324	// If an error occurred, a message that describes the error.
25325	Message *string `locationName:"message" type:"string"`
25326
25327	// The date and time when the task was started.
25328	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
25329
25330	// The current status of the task being executed.
25331	Status *string `locationName:"status" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
25332
25333	// The unique identifier for the task that applies the mitigation action.
25334	TaskId *string `locationName:"taskId" min:"1" type:"string"`
25335}
25336
25337// String returns the string representation
25338func (s AuditMitigationActionExecutionMetadata) String() string {
25339	return awsutil.Prettify(s)
25340}
25341
25342// GoString returns the string representation
25343func (s AuditMitigationActionExecutionMetadata) GoString() string {
25344	return s.String()
25345}
25346
25347// SetActionId sets the ActionId field's value.
25348func (s *AuditMitigationActionExecutionMetadata) SetActionId(v string) *AuditMitigationActionExecutionMetadata {
25349	s.ActionId = &v
25350	return s
25351}
25352
25353// SetActionName sets the ActionName field's value.
25354func (s *AuditMitigationActionExecutionMetadata) SetActionName(v string) *AuditMitigationActionExecutionMetadata {
25355	s.ActionName = &v
25356	return s
25357}
25358
25359// SetEndTime sets the EndTime field's value.
25360func (s *AuditMitigationActionExecutionMetadata) SetEndTime(v time.Time) *AuditMitigationActionExecutionMetadata {
25361	s.EndTime = &v
25362	return s
25363}
25364
25365// SetErrorCode sets the ErrorCode field's value.
25366func (s *AuditMitigationActionExecutionMetadata) SetErrorCode(v string) *AuditMitigationActionExecutionMetadata {
25367	s.ErrorCode = &v
25368	return s
25369}
25370
25371// SetFindingId sets the FindingId field's value.
25372func (s *AuditMitigationActionExecutionMetadata) SetFindingId(v string) *AuditMitigationActionExecutionMetadata {
25373	s.FindingId = &v
25374	return s
25375}
25376
25377// SetMessage sets the Message field's value.
25378func (s *AuditMitigationActionExecutionMetadata) SetMessage(v string) *AuditMitigationActionExecutionMetadata {
25379	s.Message = &v
25380	return s
25381}
25382
25383// SetStartTime sets the StartTime field's value.
25384func (s *AuditMitigationActionExecutionMetadata) SetStartTime(v time.Time) *AuditMitigationActionExecutionMetadata {
25385	s.StartTime = &v
25386	return s
25387}
25388
25389// SetStatus sets the Status field's value.
25390func (s *AuditMitigationActionExecutionMetadata) SetStatus(v string) *AuditMitigationActionExecutionMetadata {
25391	s.Status = &v
25392	return s
25393}
25394
25395// SetTaskId sets the TaskId field's value.
25396func (s *AuditMitigationActionExecutionMetadata) SetTaskId(v string) *AuditMitigationActionExecutionMetadata {
25397	s.TaskId = &v
25398	return s
25399}
25400
25401// Information about an audit mitigation actions task that is returned by ListAuditMitigationActionsTasks.
25402type AuditMitigationActionsTaskMetadata struct {
25403	_ struct{} `type:"structure"`
25404
25405	// The time at which the audit mitigation actions task was started.
25406	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
25407
25408	// The unique identifier for the task.
25409	TaskId *string `locationName:"taskId" min:"1" type:"string"`
25410
25411	// The current state of the audit mitigation actions task.
25412	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
25413}
25414
25415// String returns the string representation
25416func (s AuditMitigationActionsTaskMetadata) String() string {
25417	return awsutil.Prettify(s)
25418}
25419
25420// GoString returns the string representation
25421func (s AuditMitigationActionsTaskMetadata) GoString() string {
25422	return s.String()
25423}
25424
25425// SetStartTime sets the StartTime field's value.
25426func (s *AuditMitigationActionsTaskMetadata) SetStartTime(v time.Time) *AuditMitigationActionsTaskMetadata {
25427	s.StartTime = &v
25428	return s
25429}
25430
25431// SetTaskId sets the TaskId field's value.
25432func (s *AuditMitigationActionsTaskMetadata) SetTaskId(v string) *AuditMitigationActionsTaskMetadata {
25433	s.TaskId = &v
25434	return s
25435}
25436
25437// SetTaskStatus sets the TaskStatus field's value.
25438func (s *AuditMitigationActionsTaskMetadata) SetTaskStatus(v string) *AuditMitigationActionsTaskMetadata {
25439	s.TaskStatus = &v
25440	return s
25441}
25442
25443// Used in MitigationActionParams, this information identifies the target findings
25444// to which the mitigation actions are applied. Only one entry appears.
25445type AuditMitigationActionsTaskTarget struct {
25446	_ struct{} `type:"structure"`
25447
25448	// Specifies a filter in the form of an audit check and set of reason codes
25449	// that identify the findings from the audit to which the audit mitigation actions
25450	// task apply.
25451	AuditCheckToReasonCodeFilter map[string][]*string `locationName:"auditCheckToReasonCodeFilter" type:"map"`
25452
25453	// If the task will apply a mitigation action to findings from a specific audit,
25454	// this value uniquely identifies the audit.
25455	AuditTaskId *string `locationName:"auditTaskId" min:"1" type:"string"`
25456
25457	// If the task will apply a mitigation action to one or more listed findings,
25458	// this value uniquely identifies those findings.
25459	FindingIds []*string `locationName:"findingIds" min:"1" type:"list"`
25460}
25461
25462// String returns the string representation
25463func (s AuditMitigationActionsTaskTarget) String() string {
25464	return awsutil.Prettify(s)
25465}
25466
25467// GoString returns the string representation
25468func (s AuditMitigationActionsTaskTarget) GoString() string {
25469	return s.String()
25470}
25471
25472// Validate inspects the fields of the type to determine if they are valid.
25473func (s *AuditMitigationActionsTaskTarget) Validate() error {
25474	invalidParams := request.ErrInvalidParams{Context: "AuditMitigationActionsTaskTarget"}
25475	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
25476		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
25477	}
25478	if s.FindingIds != nil && len(s.FindingIds) < 1 {
25479		invalidParams.Add(request.NewErrParamMinLen("FindingIds", 1))
25480	}
25481
25482	if invalidParams.Len() > 0 {
25483		return invalidParams
25484	}
25485	return nil
25486}
25487
25488// SetAuditCheckToReasonCodeFilter sets the AuditCheckToReasonCodeFilter field's value.
25489func (s *AuditMitigationActionsTaskTarget) SetAuditCheckToReasonCodeFilter(v map[string][]*string) *AuditMitigationActionsTaskTarget {
25490	s.AuditCheckToReasonCodeFilter = v
25491	return s
25492}
25493
25494// SetAuditTaskId sets the AuditTaskId field's value.
25495func (s *AuditMitigationActionsTaskTarget) SetAuditTaskId(v string) *AuditMitigationActionsTaskTarget {
25496	s.AuditTaskId = &v
25497	return s
25498}
25499
25500// SetFindingIds sets the FindingIds field's value.
25501func (s *AuditMitigationActionsTaskTarget) SetFindingIds(v []*string) *AuditMitigationActionsTaskTarget {
25502	s.FindingIds = v
25503	return s
25504}
25505
25506// Information about the targets to which audit notifications are sent.
25507type AuditNotificationTarget struct {
25508	_ struct{} `type:"structure"`
25509
25510	// True if notifications to the target are enabled.
25511	Enabled *bool `locationName:"enabled" type:"boolean"`
25512
25513	// The ARN of the role that grants permission to send notifications to the target.
25514	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
25515
25516	// The ARN of the target (SNS topic) to which audit notifications are sent.
25517	TargetArn *string `locationName:"targetArn" type:"string"`
25518}
25519
25520// String returns the string representation
25521func (s AuditNotificationTarget) String() string {
25522	return awsutil.Prettify(s)
25523}
25524
25525// GoString returns the string representation
25526func (s AuditNotificationTarget) GoString() string {
25527	return s.String()
25528}
25529
25530// Validate inspects the fields of the type to determine if they are valid.
25531func (s *AuditNotificationTarget) Validate() error {
25532	invalidParams := request.ErrInvalidParams{Context: "AuditNotificationTarget"}
25533	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
25534		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
25535	}
25536
25537	if invalidParams.Len() > 0 {
25538		return invalidParams
25539	}
25540	return nil
25541}
25542
25543// SetEnabled sets the Enabled field's value.
25544func (s *AuditNotificationTarget) SetEnabled(v bool) *AuditNotificationTarget {
25545	s.Enabled = &v
25546	return s
25547}
25548
25549// SetRoleArn sets the RoleArn field's value.
25550func (s *AuditNotificationTarget) SetRoleArn(v string) *AuditNotificationTarget {
25551	s.RoleArn = &v
25552	return s
25553}
25554
25555// SetTargetArn sets the TargetArn field's value.
25556func (s *AuditNotificationTarget) SetTargetArn(v string) *AuditNotificationTarget {
25557	s.TargetArn = &v
25558	return s
25559}
25560
25561// Filters out specific findings of a Device Defender audit.
25562type AuditSuppression struct {
25563	_ struct{} `type:"structure"`
25564
25565	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
25566	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
25567	// to select which checks are enabled.)
25568	//
25569	// CheckName is a required field
25570	CheckName *string `locationName:"checkName" type:"string" required:"true"`
25571
25572	// The description of the audit suppression.
25573	Description *string `locationName:"description" type:"string"`
25574
25575	// The expiration date (epoch timestamp in seconds) that you want the suppression
25576	// to adhere to.
25577	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
25578
25579	// Information that identifies the noncompliant resource.
25580	//
25581	// ResourceIdentifier is a required field
25582	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
25583
25584	// Indicates whether a suppression should exist indefinitely or not.
25585	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
25586}
25587
25588// String returns the string representation
25589func (s AuditSuppression) String() string {
25590	return awsutil.Prettify(s)
25591}
25592
25593// GoString returns the string representation
25594func (s AuditSuppression) GoString() string {
25595	return s.String()
25596}
25597
25598// SetCheckName sets the CheckName field's value.
25599func (s *AuditSuppression) SetCheckName(v string) *AuditSuppression {
25600	s.CheckName = &v
25601	return s
25602}
25603
25604// SetDescription sets the Description field's value.
25605func (s *AuditSuppression) SetDescription(v string) *AuditSuppression {
25606	s.Description = &v
25607	return s
25608}
25609
25610// SetExpirationDate sets the ExpirationDate field's value.
25611func (s *AuditSuppression) SetExpirationDate(v time.Time) *AuditSuppression {
25612	s.ExpirationDate = &v
25613	return s
25614}
25615
25616// SetResourceIdentifier sets the ResourceIdentifier field's value.
25617func (s *AuditSuppression) SetResourceIdentifier(v *ResourceIdentifier) *AuditSuppression {
25618	s.ResourceIdentifier = v
25619	return s
25620}
25621
25622// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
25623func (s *AuditSuppression) SetSuppressIndefinitely(v bool) *AuditSuppression {
25624	s.SuppressIndefinitely = &v
25625	return s
25626}
25627
25628// The audits that were performed.
25629type AuditTaskMetadata struct {
25630	_ struct{} `type:"structure"`
25631
25632	// The ID of this audit.
25633	TaskId *string `locationName:"taskId" min:"1" type:"string"`
25634
25635	// The status of this audit. One of "IN_PROGRESS", "COMPLETED", "FAILED", or
25636	// "CANCELED".
25637	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
25638
25639	// The type of this audit. One of "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
25640	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
25641}
25642
25643// String returns the string representation
25644func (s AuditTaskMetadata) String() string {
25645	return awsutil.Prettify(s)
25646}
25647
25648// GoString returns the string representation
25649func (s AuditTaskMetadata) GoString() string {
25650	return s.String()
25651}
25652
25653// SetTaskId sets the TaskId field's value.
25654func (s *AuditTaskMetadata) SetTaskId(v string) *AuditTaskMetadata {
25655	s.TaskId = &v
25656	return s
25657}
25658
25659// SetTaskStatus sets the TaskStatus field's value.
25660func (s *AuditTaskMetadata) SetTaskStatus(v string) *AuditTaskMetadata {
25661	s.TaskStatus = &v
25662	return s
25663}
25664
25665// SetTaskType sets the TaskType field's value.
25666func (s *AuditTaskMetadata) SetTaskType(v string) *AuditTaskMetadata {
25667	s.TaskType = &v
25668	return s
25669}
25670
25671// A collection of authorization information.
25672type AuthInfo struct {
25673	_ struct{} `type:"structure"`
25674
25675	// The type of action for which the principal is being authorized.
25676	ActionType *string `locationName:"actionType" type:"string" enum:"ActionType"`
25677
25678	// The resources for which the principal is being authorized to perform the
25679	// specified action.
25680	//
25681	// Resources is a required field
25682	Resources []*string `locationName:"resources" type:"list" required:"true"`
25683}
25684
25685// String returns the string representation
25686func (s AuthInfo) String() string {
25687	return awsutil.Prettify(s)
25688}
25689
25690// GoString returns the string representation
25691func (s AuthInfo) GoString() string {
25692	return s.String()
25693}
25694
25695// Validate inspects the fields of the type to determine if they are valid.
25696func (s *AuthInfo) Validate() error {
25697	invalidParams := request.ErrInvalidParams{Context: "AuthInfo"}
25698	if s.Resources == nil {
25699		invalidParams.Add(request.NewErrParamRequired("Resources"))
25700	}
25701
25702	if invalidParams.Len() > 0 {
25703		return invalidParams
25704	}
25705	return nil
25706}
25707
25708// SetActionType sets the ActionType field's value.
25709func (s *AuthInfo) SetActionType(v string) *AuthInfo {
25710	s.ActionType = &v
25711	return s
25712}
25713
25714// SetResources sets the Resources field's value.
25715func (s *AuthInfo) SetResources(v []*string) *AuthInfo {
25716	s.Resources = v
25717	return s
25718}
25719
25720// The authorizer result.
25721type AuthResult struct {
25722	_ struct{} `type:"structure"`
25723
25724	// The policies and statements that allowed the specified action.
25725	Allowed *Allowed `locationName:"allowed" type:"structure"`
25726
25727	// The final authorization decision of this scenario. Multiple statements are
25728	// taken into account when determining the authorization decision. An explicit
25729	// deny statement can override multiple allow statements.
25730	AuthDecision *string `locationName:"authDecision" type:"string" enum:"AuthDecision"`
25731
25732	// Authorization information.
25733	AuthInfo *AuthInfo `locationName:"authInfo" type:"structure"`
25734
25735	// The policies and statements that denied the specified action.
25736	Denied *Denied `locationName:"denied" type:"structure"`
25737
25738	// Contains any missing context values found while evaluating policy.
25739	MissingContextValues []*string `locationName:"missingContextValues" type:"list"`
25740}
25741
25742// String returns the string representation
25743func (s AuthResult) String() string {
25744	return awsutil.Prettify(s)
25745}
25746
25747// GoString returns the string representation
25748func (s AuthResult) GoString() string {
25749	return s.String()
25750}
25751
25752// SetAllowed sets the Allowed field's value.
25753func (s *AuthResult) SetAllowed(v *Allowed) *AuthResult {
25754	s.Allowed = v
25755	return s
25756}
25757
25758// SetAuthDecision sets the AuthDecision field's value.
25759func (s *AuthResult) SetAuthDecision(v string) *AuthResult {
25760	s.AuthDecision = &v
25761	return s
25762}
25763
25764// SetAuthInfo sets the AuthInfo field's value.
25765func (s *AuthResult) SetAuthInfo(v *AuthInfo) *AuthResult {
25766	s.AuthInfo = v
25767	return s
25768}
25769
25770// SetDenied sets the Denied field's value.
25771func (s *AuthResult) SetDenied(v *Denied) *AuthResult {
25772	s.Denied = v
25773	return s
25774}
25775
25776// SetMissingContextValues sets the MissingContextValues field's value.
25777func (s *AuthResult) SetMissingContextValues(v []*string) *AuthResult {
25778	s.MissingContextValues = v
25779	return s
25780}
25781
25782// An object that specifies the authorization service for a domain.
25783type AuthorizerConfig struct {
25784	_ struct{} `type:"structure"`
25785
25786	// A Boolean that specifies whether the domain configuration's authorization
25787	// service can be overridden.
25788	AllowAuthorizerOverride *bool `locationName:"allowAuthorizerOverride" type:"boolean"`
25789
25790	// The name of the authorization service for a domain configuration.
25791	DefaultAuthorizerName *string `locationName:"defaultAuthorizerName" min:"1" type:"string"`
25792}
25793
25794// String returns the string representation
25795func (s AuthorizerConfig) String() string {
25796	return awsutil.Prettify(s)
25797}
25798
25799// GoString returns the string representation
25800func (s AuthorizerConfig) GoString() string {
25801	return s.String()
25802}
25803
25804// Validate inspects the fields of the type to determine if they are valid.
25805func (s *AuthorizerConfig) Validate() error {
25806	invalidParams := request.ErrInvalidParams{Context: "AuthorizerConfig"}
25807	if s.DefaultAuthorizerName != nil && len(*s.DefaultAuthorizerName) < 1 {
25808		invalidParams.Add(request.NewErrParamMinLen("DefaultAuthorizerName", 1))
25809	}
25810
25811	if invalidParams.Len() > 0 {
25812		return invalidParams
25813	}
25814	return nil
25815}
25816
25817// SetAllowAuthorizerOverride sets the AllowAuthorizerOverride field's value.
25818func (s *AuthorizerConfig) SetAllowAuthorizerOverride(v bool) *AuthorizerConfig {
25819	s.AllowAuthorizerOverride = &v
25820	return s
25821}
25822
25823// SetDefaultAuthorizerName sets the DefaultAuthorizerName field's value.
25824func (s *AuthorizerConfig) SetDefaultAuthorizerName(v string) *AuthorizerConfig {
25825	s.DefaultAuthorizerName = &v
25826	return s
25827}
25828
25829// The authorizer description.
25830type AuthorizerDescription struct {
25831	_ struct{} `type:"structure"`
25832
25833	// The authorizer ARN.
25834	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
25835
25836	// The authorizer's Lambda function ARN.
25837	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
25838
25839	// The authorizer name.
25840	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
25841
25842	// The UNIX timestamp of when the authorizer was created.
25843	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
25844
25845	// The UNIX timestamp of when the authorizer was last updated.
25846	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
25847
25848	// Specifies whether AWS IoT validates the token signature in an authorization
25849	// request.
25850	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
25851
25852	// The status of the authorizer.
25853	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
25854
25855	// The key used to extract the token from the HTTP headers.
25856	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
25857
25858	// The public keys used to validate the token signature returned by your custom
25859	// authentication service.
25860	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
25861}
25862
25863// String returns the string representation
25864func (s AuthorizerDescription) String() string {
25865	return awsutil.Prettify(s)
25866}
25867
25868// GoString returns the string representation
25869func (s AuthorizerDescription) GoString() string {
25870	return s.String()
25871}
25872
25873// SetAuthorizerArn sets the AuthorizerArn field's value.
25874func (s *AuthorizerDescription) SetAuthorizerArn(v string) *AuthorizerDescription {
25875	s.AuthorizerArn = &v
25876	return s
25877}
25878
25879// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
25880func (s *AuthorizerDescription) SetAuthorizerFunctionArn(v string) *AuthorizerDescription {
25881	s.AuthorizerFunctionArn = &v
25882	return s
25883}
25884
25885// SetAuthorizerName sets the AuthorizerName field's value.
25886func (s *AuthorizerDescription) SetAuthorizerName(v string) *AuthorizerDescription {
25887	s.AuthorizerName = &v
25888	return s
25889}
25890
25891// SetCreationDate sets the CreationDate field's value.
25892func (s *AuthorizerDescription) SetCreationDate(v time.Time) *AuthorizerDescription {
25893	s.CreationDate = &v
25894	return s
25895}
25896
25897// SetLastModifiedDate sets the LastModifiedDate field's value.
25898func (s *AuthorizerDescription) SetLastModifiedDate(v time.Time) *AuthorizerDescription {
25899	s.LastModifiedDate = &v
25900	return s
25901}
25902
25903// SetSigningDisabled sets the SigningDisabled field's value.
25904func (s *AuthorizerDescription) SetSigningDisabled(v bool) *AuthorizerDescription {
25905	s.SigningDisabled = &v
25906	return s
25907}
25908
25909// SetStatus sets the Status field's value.
25910func (s *AuthorizerDescription) SetStatus(v string) *AuthorizerDescription {
25911	s.Status = &v
25912	return s
25913}
25914
25915// SetTokenKeyName sets the TokenKeyName field's value.
25916func (s *AuthorizerDescription) SetTokenKeyName(v string) *AuthorizerDescription {
25917	s.TokenKeyName = &v
25918	return s
25919}
25920
25921// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
25922func (s *AuthorizerDescription) SetTokenSigningPublicKeys(v map[string]*string) *AuthorizerDescription {
25923	s.TokenSigningPublicKeys = v
25924	return s
25925}
25926
25927// The authorizer summary.
25928type AuthorizerSummary struct {
25929	_ struct{} `type:"structure"`
25930
25931	// The authorizer ARN.
25932	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
25933
25934	// The authorizer name.
25935	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
25936}
25937
25938// String returns the string representation
25939func (s AuthorizerSummary) String() string {
25940	return awsutil.Prettify(s)
25941}
25942
25943// GoString returns the string representation
25944func (s AuthorizerSummary) GoString() string {
25945	return s.String()
25946}
25947
25948// SetAuthorizerArn sets the AuthorizerArn field's value.
25949func (s *AuthorizerSummary) SetAuthorizerArn(v string) *AuthorizerSummary {
25950	s.AuthorizerArn = &v
25951	return s
25952}
25953
25954// SetAuthorizerName sets the AuthorizerName field's value.
25955func (s *AuthorizerSummary) SetAuthorizerName(v string) *AuthorizerSummary {
25956	s.AuthorizerName = &v
25957	return s
25958}
25959
25960// The criteria that determine when and how a job abort takes place.
25961type AwsJobAbortConfig struct {
25962	_ struct{} `type:"structure"`
25963
25964	// The list of criteria that determine when and how to abort the job.
25965	//
25966	// AbortCriteriaList is a required field
25967	AbortCriteriaList []*AwsJobAbortCriteria `locationName:"abortCriteriaList" min:"1" type:"list" required:"true"`
25968}
25969
25970// String returns the string representation
25971func (s AwsJobAbortConfig) String() string {
25972	return awsutil.Prettify(s)
25973}
25974
25975// GoString returns the string representation
25976func (s AwsJobAbortConfig) GoString() string {
25977	return s.String()
25978}
25979
25980// Validate inspects the fields of the type to determine if they are valid.
25981func (s *AwsJobAbortConfig) Validate() error {
25982	invalidParams := request.ErrInvalidParams{Context: "AwsJobAbortConfig"}
25983	if s.AbortCriteriaList == nil {
25984		invalidParams.Add(request.NewErrParamRequired("AbortCriteriaList"))
25985	}
25986	if s.AbortCriteriaList != nil && len(s.AbortCriteriaList) < 1 {
25987		invalidParams.Add(request.NewErrParamMinLen("AbortCriteriaList", 1))
25988	}
25989	if s.AbortCriteriaList != nil {
25990		for i, v := range s.AbortCriteriaList {
25991			if v == nil {
25992				continue
25993			}
25994			if err := v.Validate(); err != nil {
25995				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AbortCriteriaList", i), err.(request.ErrInvalidParams))
25996			}
25997		}
25998	}
25999
26000	if invalidParams.Len() > 0 {
26001		return invalidParams
26002	}
26003	return nil
26004}
26005
26006// SetAbortCriteriaList sets the AbortCriteriaList field's value.
26007func (s *AwsJobAbortConfig) SetAbortCriteriaList(v []*AwsJobAbortCriteria) *AwsJobAbortConfig {
26008	s.AbortCriteriaList = v
26009	return s
26010}
26011
26012// The criteria that determine when and how a job abort takes place.
26013type AwsJobAbortCriteria struct {
26014	_ struct{} `type:"structure"`
26015
26016	// The type of job action to take to initiate the job abort.
26017	//
26018	// Action is a required field
26019	Action *string `locationName:"action" type:"string" required:"true" enum:"AwsJobAbortCriteriaAbortAction"`
26020
26021	// The type of job execution failures that can initiate a job abort.
26022	//
26023	// FailureType is a required field
26024	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"AwsJobAbortCriteriaFailureType"`
26025
26026	// The minimum number of things which must receive job execution notifications
26027	// before the job can be aborted.
26028	//
26029	// MinNumberOfExecutedThings is a required field
26030	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
26031
26032	// The minimum percentage of job execution failures that must occur to initiate
26033	// the job abort.
26034	//
26035	// AWS IoT supports up to two digits after the decimal (for example, 10.9 and
26036	// 10.99, but not 10.999).
26037	//
26038	// ThresholdPercentage is a required field
26039	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
26040}
26041
26042// String returns the string representation
26043func (s AwsJobAbortCriteria) String() string {
26044	return awsutil.Prettify(s)
26045}
26046
26047// GoString returns the string representation
26048func (s AwsJobAbortCriteria) GoString() string {
26049	return s.String()
26050}
26051
26052// Validate inspects the fields of the type to determine if they are valid.
26053func (s *AwsJobAbortCriteria) Validate() error {
26054	invalidParams := request.ErrInvalidParams{Context: "AwsJobAbortCriteria"}
26055	if s.Action == nil {
26056		invalidParams.Add(request.NewErrParamRequired("Action"))
26057	}
26058	if s.FailureType == nil {
26059		invalidParams.Add(request.NewErrParamRequired("FailureType"))
26060	}
26061	if s.MinNumberOfExecutedThings == nil {
26062		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
26063	}
26064	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
26065		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
26066	}
26067	if s.ThresholdPercentage == nil {
26068		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
26069	}
26070
26071	if invalidParams.Len() > 0 {
26072		return invalidParams
26073	}
26074	return nil
26075}
26076
26077// SetAction sets the Action field's value.
26078func (s *AwsJobAbortCriteria) SetAction(v string) *AwsJobAbortCriteria {
26079	s.Action = &v
26080	return s
26081}
26082
26083// SetFailureType sets the FailureType field's value.
26084func (s *AwsJobAbortCriteria) SetFailureType(v string) *AwsJobAbortCriteria {
26085	s.FailureType = &v
26086	return s
26087}
26088
26089// SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
26090func (s *AwsJobAbortCriteria) SetMinNumberOfExecutedThings(v int64) *AwsJobAbortCriteria {
26091	s.MinNumberOfExecutedThings = &v
26092	return s
26093}
26094
26095// SetThresholdPercentage sets the ThresholdPercentage field's value.
26096func (s *AwsJobAbortCriteria) SetThresholdPercentage(v float64) *AwsJobAbortCriteria {
26097	s.ThresholdPercentage = &v
26098	return s
26099}
26100
26101// Configuration for the rollout of OTA updates.
26102type AwsJobExecutionsRolloutConfig struct {
26103	_ struct{} `type:"structure"`
26104
26105	// The rate of increase for a job rollout. This parameter allows you to define
26106	// an exponential rate increase for a job rollout.
26107	ExponentialRate *AwsJobExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
26108
26109	// The maximum number of OTA update job executions started per minute.
26110	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
26111}
26112
26113// String returns the string representation
26114func (s AwsJobExecutionsRolloutConfig) String() string {
26115	return awsutil.Prettify(s)
26116}
26117
26118// GoString returns the string representation
26119func (s AwsJobExecutionsRolloutConfig) GoString() string {
26120	return s.String()
26121}
26122
26123// Validate inspects the fields of the type to determine if they are valid.
26124func (s *AwsJobExecutionsRolloutConfig) Validate() error {
26125	invalidParams := request.ErrInvalidParams{Context: "AwsJobExecutionsRolloutConfig"}
26126	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
26127		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
26128	}
26129	if s.ExponentialRate != nil {
26130		if err := s.ExponentialRate.Validate(); err != nil {
26131			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
26132		}
26133	}
26134
26135	if invalidParams.Len() > 0 {
26136		return invalidParams
26137	}
26138	return nil
26139}
26140
26141// SetExponentialRate sets the ExponentialRate field's value.
26142func (s *AwsJobExecutionsRolloutConfig) SetExponentialRate(v *AwsJobExponentialRolloutRate) *AwsJobExecutionsRolloutConfig {
26143	s.ExponentialRate = v
26144	return s
26145}
26146
26147// SetMaximumPerMinute sets the MaximumPerMinute field's value.
26148func (s *AwsJobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *AwsJobExecutionsRolloutConfig {
26149	s.MaximumPerMinute = &v
26150	return s
26151}
26152
26153// The rate of increase for a job rollout. This parameter allows you to define
26154// an exponential rate increase for a job rollout.
26155type AwsJobExponentialRolloutRate struct {
26156	_ struct{} `type:"structure"`
26157
26158	// The minimum number of things that will be notified of a pending job, per
26159	// minute, at the start of the job rollout. This is the initial rate of the
26160	// rollout.
26161	//
26162	// BaseRatePerMinute is a required field
26163	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
26164
26165	// The rate of increase for a job rollout. The number of things notified is
26166	// multiplied by this factor.
26167	//
26168	// IncrementFactor is a required field
26169	IncrementFactor *float64 `locationName:"incrementFactor" type:"double" required:"true"`
26170
26171	// The criteria to initiate the increase in rate of rollout for a job.
26172	//
26173	// AWS IoT supports up to one digit after the decimal (for example, 1.5, but
26174	// not 1.55).
26175	//
26176	// RateIncreaseCriteria is a required field
26177	RateIncreaseCriteria *AwsJobRateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
26178}
26179
26180// String returns the string representation
26181func (s AwsJobExponentialRolloutRate) String() string {
26182	return awsutil.Prettify(s)
26183}
26184
26185// GoString returns the string representation
26186func (s AwsJobExponentialRolloutRate) GoString() string {
26187	return s.String()
26188}
26189
26190// Validate inspects the fields of the type to determine if they are valid.
26191func (s *AwsJobExponentialRolloutRate) Validate() error {
26192	invalidParams := request.ErrInvalidParams{Context: "AwsJobExponentialRolloutRate"}
26193	if s.BaseRatePerMinute == nil {
26194		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
26195	}
26196	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
26197		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
26198	}
26199	if s.IncrementFactor == nil {
26200		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
26201	}
26202	if s.RateIncreaseCriteria == nil {
26203		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
26204	}
26205	if s.RateIncreaseCriteria != nil {
26206		if err := s.RateIncreaseCriteria.Validate(); err != nil {
26207			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
26208		}
26209	}
26210
26211	if invalidParams.Len() > 0 {
26212		return invalidParams
26213	}
26214	return nil
26215}
26216
26217// SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
26218func (s *AwsJobExponentialRolloutRate) SetBaseRatePerMinute(v int64) *AwsJobExponentialRolloutRate {
26219	s.BaseRatePerMinute = &v
26220	return s
26221}
26222
26223// SetIncrementFactor sets the IncrementFactor field's value.
26224func (s *AwsJobExponentialRolloutRate) SetIncrementFactor(v float64) *AwsJobExponentialRolloutRate {
26225	s.IncrementFactor = &v
26226	return s
26227}
26228
26229// SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
26230func (s *AwsJobExponentialRolloutRate) SetRateIncreaseCriteria(v *AwsJobRateIncreaseCriteria) *AwsJobExponentialRolloutRate {
26231	s.RateIncreaseCriteria = v
26232	return s
26233}
26234
26235// Configuration information for pre-signed URLs. Valid when protocols contains
26236// HTTP.
26237type AwsJobPresignedUrlConfig struct {
26238	_ struct{} `type:"structure"`
26239
26240	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
26241	// the default value is 1800 seconds. Pre-signed URLs are generated when a request
26242	// for the job document is received.
26243	ExpiresInSec *int64 `locationName:"expiresInSec" type:"long"`
26244}
26245
26246// String returns the string representation
26247func (s AwsJobPresignedUrlConfig) String() string {
26248	return awsutil.Prettify(s)
26249}
26250
26251// GoString returns the string representation
26252func (s AwsJobPresignedUrlConfig) GoString() string {
26253	return s.String()
26254}
26255
26256// SetExpiresInSec sets the ExpiresInSec field's value.
26257func (s *AwsJobPresignedUrlConfig) SetExpiresInSec(v int64) *AwsJobPresignedUrlConfig {
26258	s.ExpiresInSec = &v
26259	return s
26260}
26261
26262// The criteria to initiate the increase in rate of rollout for a job.
26263type AwsJobRateIncreaseCriteria struct {
26264	_ struct{} `type:"structure"`
26265
26266	// When this number of things have been notified, it will initiate an increase
26267	// in the rollout rate.
26268	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
26269
26270	// When this number of things have succeeded in their job execution, it will
26271	// initiate an increase in the rollout rate.
26272	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
26273}
26274
26275// String returns the string representation
26276func (s AwsJobRateIncreaseCriteria) String() string {
26277	return awsutil.Prettify(s)
26278}
26279
26280// GoString returns the string representation
26281func (s AwsJobRateIncreaseCriteria) GoString() string {
26282	return s.String()
26283}
26284
26285// Validate inspects the fields of the type to determine if they are valid.
26286func (s *AwsJobRateIncreaseCriteria) Validate() error {
26287	invalidParams := request.ErrInvalidParams{Context: "AwsJobRateIncreaseCriteria"}
26288	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
26289		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
26290	}
26291	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
26292		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
26293	}
26294
26295	if invalidParams.Len() > 0 {
26296		return invalidParams
26297	}
26298	return nil
26299}
26300
26301// SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
26302func (s *AwsJobRateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *AwsJobRateIncreaseCriteria {
26303	s.NumberOfNotifiedThings = &v
26304	return s
26305}
26306
26307// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
26308func (s *AwsJobRateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *AwsJobRateIncreaseCriteria {
26309	s.NumberOfSucceededThings = &v
26310	return s
26311}
26312
26313// Specifies the amount of time each device has to finish its execution of the
26314// job. A timer is started when the job execution status is set to IN_PROGRESS.
26315// If the job execution status is not set to another terminal state before the
26316// timer expires, it will be automatically set to TIMED_OUT.
26317type AwsJobTimeoutConfig struct {
26318	_ struct{} `type:"structure"`
26319
26320	// Specifies the amount of time, in minutes, this device has to finish execution
26321	// of this job. The timeout interval can be anywhere between 1 minute and 7
26322	// days (1 to 10080 minutes). The in progress timer can't be updated and will
26323	// apply to all job executions for the job. Whenever a job execution remains
26324	// in the IN_PROGRESS status for longer than this interval, the job execution
26325	// will fail and switch to the terminal TIMED_OUT status.
26326	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
26327}
26328
26329// String returns the string representation
26330func (s AwsJobTimeoutConfig) String() string {
26331	return awsutil.Prettify(s)
26332}
26333
26334// GoString returns the string representation
26335func (s AwsJobTimeoutConfig) GoString() string {
26336	return s.String()
26337}
26338
26339// SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
26340func (s *AwsJobTimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *AwsJobTimeoutConfig {
26341	s.InProgressTimeoutInMinutes = &v
26342	return s
26343}
26344
26345// A Device Defender security profile behavior.
26346type Behavior struct {
26347	_ struct{} `type:"structure"`
26348
26349	// The criteria that determine if a device is behaving normally in regard to
26350	// the metric.
26351	Criteria *BehaviorCriteria `locationName:"criteria" type:"structure"`
26352
26353	// What is measured by the behavior.
26354	Metric *string `locationName:"metric" type:"string"`
26355
26356	// The dimension for a metric in your behavior. For example, using a TOPIC_FILTER
26357	// dimension, you can narrow down the scope of the metric to only MQTT topics
26358	// where the name matches the pattern specified in the dimension. This can't
26359	// be used with custom metrics.
26360	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
26361
26362	// The name you've given to the behavior.
26363	//
26364	// Name is a required field
26365	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
26366
26367	// Suppresses alerts.
26368	SuppressAlerts *bool `locationName:"suppressAlerts" type:"boolean"`
26369}
26370
26371// String returns the string representation
26372func (s Behavior) String() string {
26373	return awsutil.Prettify(s)
26374}
26375
26376// GoString returns the string representation
26377func (s Behavior) GoString() string {
26378	return s.String()
26379}
26380
26381// Validate inspects the fields of the type to determine if they are valid.
26382func (s *Behavior) Validate() error {
26383	invalidParams := request.ErrInvalidParams{Context: "Behavior"}
26384	if s.Name == nil {
26385		invalidParams.Add(request.NewErrParamRequired("Name"))
26386	}
26387	if s.Name != nil && len(*s.Name) < 1 {
26388		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
26389	}
26390	if s.Criteria != nil {
26391		if err := s.Criteria.Validate(); err != nil {
26392			invalidParams.AddNested("Criteria", err.(request.ErrInvalidParams))
26393		}
26394	}
26395	if s.MetricDimension != nil {
26396		if err := s.MetricDimension.Validate(); err != nil {
26397			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
26398		}
26399	}
26400
26401	if invalidParams.Len() > 0 {
26402		return invalidParams
26403	}
26404	return nil
26405}
26406
26407// SetCriteria sets the Criteria field's value.
26408func (s *Behavior) SetCriteria(v *BehaviorCriteria) *Behavior {
26409	s.Criteria = v
26410	return s
26411}
26412
26413// SetMetric sets the Metric field's value.
26414func (s *Behavior) SetMetric(v string) *Behavior {
26415	s.Metric = &v
26416	return s
26417}
26418
26419// SetMetricDimension sets the MetricDimension field's value.
26420func (s *Behavior) SetMetricDimension(v *MetricDimension) *Behavior {
26421	s.MetricDimension = v
26422	return s
26423}
26424
26425// SetName sets the Name field's value.
26426func (s *Behavior) SetName(v string) *Behavior {
26427	s.Name = &v
26428	return s
26429}
26430
26431// SetSuppressAlerts sets the SuppressAlerts field's value.
26432func (s *Behavior) SetSuppressAlerts(v bool) *Behavior {
26433	s.SuppressAlerts = &v
26434	return s
26435}
26436
26437// The criteria by which the behavior is determined to be normal.
26438type BehaviorCriteria struct {
26439	_ struct{} `type:"structure"`
26440
26441	// The operator that relates the thing measured (metric) to the criteria (containing
26442	// a value or statisticalThreshold). Valid operators include:
26443	//
26444	//    * string-list: in-set and not-in-set
26445	//
26446	//    * number-list: in-set and not-in-set
26447	//
26448	//    * ip-address-list: in-cidr-set and not-in-cidr-set
26449	//
26450	//    * number: less-than, less-than-equals, greater-than, and greater-than-equals
26451	ComparisonOperator *string `locationName:"comparisonOperator" type:"string" enum:"ComparisonOperator"`
26452
26453	// If a device is in violation of the behavior for the specified number of consecutive
26454	// datapoints, an alarm occurs. If not specified, the default is 1.
26455	ConsecutiveDatapointsToAlarm *int64 `locationName:"consecutiveDatapointsToAlarm" min:"1" type:"integer"`
26456
26457	// If an alarm has occurred and the offending device is no longer in violation
26458	// of the behavior for the specified number of consecutive datapoints, the alarm
26459	// is cleared. If not specified, the default is 1.
26460	ConsecutiveDatapointsToClear *int64 `locationName:"consecutiveDatapointsToClear" min:"1" type:"integer"`
26461
26462	// Use this to specify the time duration over which the behavior is evaluated,
26463	// for those criteria that have a time dimension (for example, NUM_MESSAGES_SENT).
26464	// For a statisticalThreshhold metric comparison, measurements from all devices
26465	// are accumulated over this time duration before being used to calculate percentiles,
26466	// and later, measurements from an individual device are also accumulated over
26467	// this time duration before being given a percentile rank. Cannot be used with
26468	// list-based metric datatypes.
26469	DurationSeconds *int64 `locationName:"durationSeconds" type:"integer"`
26470
26471	// The configuration of an ML Detect
26472	MlDetectionConfig *MachineLearningDetectionConfig `locationName:"mlDetectionConfig" type:"structure"`
26473
26474	// A statistical ranking (percentile)that indicates a threshold value by which
26475	// a behavior is determined to be in compliance or in violation of the behavior.
26476	StatisticalThreshold *StatisticalThreshold `locationName:"statisticalThreshold" type:"structure"`
26477
26478	// The value to be compared with the metric.
26479	Value *MetricValue `locationName:"value" type:"structure"`
26480}
26481
26482// String returns the string representation
26483func (s BehaviorCriteria) String() string {
26484	return awsutil.Prettify(s)
26485}
26486
26487// GoString returns the string representation
26488func (s BehaviorCriteria) GoString() string {
26489	return s.String()
26490}
26491
26492// Validate inspects the fields of the type to determine if they are valid.
26493func (s *BehaviorCriteria) Validate() error {
26494	invalidParams := request.ErrInvalidParams{Context: "BehaviorCriteria"}
26495	if s.ConsecutiveDatapointsToAlarm != nil && *s.ConsecutiveDatapointsToAlarm < 1 {
26496		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToAlarm", 1))
26497	}
26498	if s.ConsecutiveDatapointsToClear != nil && *s.ConsecutiveDatapointsToClear < 1 {
26499		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToClear", 1))
26500	}
26501	if s.MlDetectionConfig != nil {
26502		if err := s.MlDetectionConfig.Validate(); err != nil {
26503			invalidParams.AddNested("MlDetectionConfig", err.(request.ErrInvalidParams))
26504		}
26505	}
26506
26507	if invalidParams.Len() > 0 {
26508		return invalidParams
26509	}
26510	return nil
26511}
26512
26513// SetComparisonOperator sets the ComparisonOperator field's value.
26514func (s *BehaviorCriteria) SetComparisonOperator(v string) *BehaviorCriteria {
26515	s.ComparisonOperator = &v
26516	return s
26517}
26518
26519// SetConsecutiveDatapointsToAlarm sets the ConsecutiveDatapointsToAlarm field's value.
26520func (s *BehaviorCriteria) SetConsecutiveDatapointsToAlarm(v int64) *BehaviorCriteria {
26521	s.ConsecutiveDatapointsToAlarm = &v
26522	return s
26523}
26524
26525// SetConsecutiveDatapointsToClear sets the ConsecutiveDatapointsToClear field's value.
26526func (s *BehaviorCriteria) SetConsecutiveDatapointsToClear(v int64) *BehaviorCriteria {
26527	s.ConsecutiveDatapointsToClear = &v
26528	return s
26529}
26530
26531// SetDurationSeconds sets the DurationSeconds field's value.
26532func (s *BehaviorCriteria) SetDurationSeconds(v int64) *BehaviorCriteria {
26533	s.DurationSeconds = &v
26534	return s
26535}
26536
26537// SetMlDetectionConfig sets the MlDetectionConfig field's value.
26538func (s *BehaviorCriteria) SetMlDetectionConfig(v *MachineLearningDetectionConfig) *BehaviorCriteria {
26539	s.MlDetectionConfig = v
26540	return s
26541}
26542
26543// SetStatisticalThreshold sets the StatisticalThreshold field's value.
26544func (s *BehaviorCriteria) SetStatisticalThreshold(v *StatisticalThreshold) *BehaviorCriteria {
26545	s.StatisticalThreshold = v
26546	return s
26547}
26548
26549// SetValue sets the Value field's value.
26550func (s *BehaviorCriteria) SetValue(v *MetricValue) *BehaviorCriteria {
26551	s.Value = v
26552	return s
26553}
26554
26555// The summary of an ML Detect behavior model.
26556type BehaviorModelTrainingSummary struct {
26557	_ struct{} `type:"structure"`
26558
26559	// The name of the behavior.
26560	BehaviorName *string `locationName:"behaviorName" min:"1" type:"string"`
26561
26562	// The percentage of datapoints collected.
26563	DatapointsCollectionPercentage *float64 `locationName:"datapointsCollectionPercentage" type:"double"`
26564
26565	// The date the model was last refreshed.
26566	LastModelRefreshDate *time.Time `locationName:"lastModelRefreshDate" type:"timestamp"`
26567
26568	// The status of the behavior model.
26569	ModelStatus *string `locationName:"modelStatus" type:"string" enum:"ModelStatus"`
26570
26571	// The name of the security profile.
26572	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
26573
26574	// The date a training model started collecting data.
26575	TrainingDataCollectionStartDate *time.Time `locationName:"trainingDataCollectionStartDate" type:"timestamp"`
26576}
26577
26578// String returns the string representation
26579func (s BehaviorModelTrainingSummary) String() string {
26580	return awsutil.Prettify(s)
26581}
26582
26583// GoString returns the string representation
26584func (s BehaviorModelTrainingSummary) GoString() string {
26585	return s.String()
26586}
26587
26588// SetBehaviorName sets the BehaviorName field's value.
26589func (s *BehaviorModelTrainingSummary) SetBehaviorName(v string) *BehaviorModelTrainingSummary {
26590	s.BehaviorName = &v
26591	return s
26592}
26593
26594// SetDatapointsCollectionPercentage sets the DatapointsCollectionPercentage field's value.
26595func (s *BehaviorModelTrainingSummary) SetDatapointsCollectionPercentage(v float64) *BehaviorModelTrainingSummary {
26596	s.DatapointsCollectionPercentage = &v
26597	return s
26598}
26599
26600// SetLastModelRefreshDate sets the LastModelRefreshDate field's value.
26601func (s *BehaviorModelTrainingSummary) SetLastModelRefreshDate(v time.Time) *BehaviorModelTrainingSummary {
26602	s.LastModelRefreshDate = &v
26603	return s
26604}
26605
26606// SetModelStatus sets the ModelStatus field's value.
26607func (s *BehaviorModelTrainingSummary) SetModelStatus(v string) *BehaviorModelTrainingSummary {
26608	s.ModelStatus = &v
26609	return s
26610}
26611
26612// SetSecurityProfileName sets the SecurityProfileName field's value.
26613func (s *BehaviorModelTrainingSummary) SetSecurityProfileName(v string) *BehaviorModelTrainingSummary {
26614	s.SecurityProfileName = &v
26615	return s
26616}
26617
26618// SetTrainingDataCollectionStartDate sets the TrainingDataCollectionStartDate field's value.
26619func (s *BehaviorModelTrainingSummary) SetTrainingDataCollectionStartDate(v time.Time) *BehaviorModelTrainingSummary {
26620	s.TrainingDataCollectionStartDate = &v
26621	return s
26622}
26623
26624// Additional information about the billing group.
26625type BillingGroupMetadata struct {
26626	_ struct{} `type:"structure"`
26627
26628	// The date the billing group was created.
26629	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
26630}
26631
26632// String returns the string representation
26633func (s BillingGroupMetadata) String() string {
26634	return awsutil.Prettify(s)
26635}
26636
26637// GoString returns the string representation
26638func (s BillingGroupMetadata) GoString() string {
26639	return s.String()
26640}
26641
26642// SetCreationDate sets the CreationDate field's value.
26643func (s *BillingGroupMetadata) SetCreationDate(v time.Time) *BillingGroupMetadata {
26644	s.CreationDate = &v
26645	return s
26646}
26647
26648// The properties of a billing group.
26649type BillingGroupProperties struct {
26650	_ struct{} `type:"structure"`
26651
26652	// The description of the billing group.
26653	BillingGroupDescription *string `locationName:"billingGroupDescription" type:"string"`
26654}
26655
26656// String returns the string representation
26657func (s BillingGroupProperties) String() string {
26658	return awsutil.Prettify(s)
26659}
26660
26661// GoString returns the string representation
26662func (s BillingGroupProperties) GoString() string {
26663	return s.String()
26664}
26665
26666// SetBillingGroupDescription sets the BillingGroupDescription field's value.
26667func (s *BillingGroupProperties) SetBillingGroupDescription(v string) *BillingGroupProperties {
26668	s.BillingGroupDescription = &v
26669	return s
26670}
26671
26672// A CA certificate.
26673type CACertificate struct {
26674	_ struct{} `type:"structure"`
26675
26676	// The ARN of the CA certificate.
26677	CertificateArn *string `locationName:"certificateArn" type:"string"`
26678
26679	// The ID of the CA certificate.
26680	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
26681
26682	// The date the CA certificate was created.
26683	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
26684
26685	// The status of the CA certificate.
26686	//
26687	// The status value REGISTER_INACTIVE is deprecated and should not be used.
26688	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
26689}
26690
26691// String returns the string representation
26692func (s CACertificate) String() string {
26693	return awsutil.Prettify(s)
26694}
26695
26696// GoString returns the string representation
26697func (s CACertificate) GoString() string {
26698	return s.String()
26699}
26700
26701// SetCertificateArn sets the CertificateArn field's value.
26702func (s *CACertificate) SetCertificateArn(v string) *CACertificate {
26703	s.CertificateArn = &v
26704	return s
26705}
26706
26707// SetCertificateId sets the CertificateId field's value.
26708func (s *CACertificate) SetCertificateId(v string) *CACertificate {
26709	s.CertificateId = &v
26710	return s
26711}
26712
26713// SetCreationDate sets the CreationDate field's value.
26714func (s *CACertificate) SetCreationDate(v time.Time) *CACertificate {
26715	s.CreationDate = &v
26716	return s
26717}
26718
26719// SetStatus sets the Status field's value.
26720func (s *CACertificate) SetStatus(v string) *CACertificate {
26721	s.Status = &v
26722	return s
26723}
26724
26725// Describes a CA certificate.
26726type CACertificateDescription struct {
26727	_ struct{} `type:"structure"`
26728
26729	// Whether the CA certificate configured for auto registration of device certificates.
26730	// Valid values are "ENABLE" and "DISABLE"
26731	AutoRegistrationStatus *string `locationName:"autoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
26732
26733	// The CA certificate ARN.
26734	CertificateArn *string `locationName:"certificateArn" type:"string"`
26735
26736	// The CA certificate ID.
26737	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
26738
26739	// The CA certificate data, in PEM format.
26740	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
26741
26742	// The date the CA certificate was created.
26743	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
26744
26745	// The customer version of the CA certificate.
26746	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
26747
26748	// The generation ID of the CA certificate.
26749	GenerationId *string `locationName:"generationId" type:"string"`
26750
26751	// The date the CA certificate was last modified.
26752	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
26753
26754	// The owner of the CA certificate.
26755	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
26756
26757	// The status of a CA certificate.
26758	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
26759
26760	// When the CA certificate is valid.
26761	Validity *CertificateValidity `locationName:"validity" type:"structure"`
26762}
26763
26764// String returns the string representation
26765func (s CACertificateDescription) String() string {
26766	return awsutil.Prettify(s)
26767}
26768
26769// GoString returns the string representation
26770func (s CACertificateDescription) GoString() string {
26771	return s.String()
26772}
26773
26774// SetAutoRegistrationStatus sets the AutoRegistrationStatus field's value.
26775func (s *CACertificateDescription) SetAutoRegistrationStatus(v string) *CACertificateDescription {
26776	s.AutoRegistrationStatus = &v
26777	return s
26778}
26779
26780// SetCertificateArn sets the CertificateArn field's value.
26781func (s *CACertificateDescription) SetCertificateArn(v string) *CACertificateDescription {
26782	s.CertificateArn = &v
26783	return s
26784}
26785
26786// SetCertificateId sets the CertificateId field's value.
26787func (s *CACertificateDescription) SetCertificateId(v string) *CACertificateDescription {
26788	s.CertificateId = &v
26789	return s
26790}
26791
26792// SetCertificatePem sets the CertificatePem field's value.
26793func (s *CACertificateDescription) SetCertificatePem(v string) *CACertificateDescription {
26794	s.CertificatePem = &v
26795	return s
26796}
26797
26798// SetCreationDate sets the CreationDate field's value.
26799func (s *CACertificateDescription) SetCreationDate(v time.Time) *CACertificateDescription {
26800	s.CreationDate = &v
26801	return s
26802}
26803
26804// SetCustomerVersion sets the CustomerVersion field's value.
26805func (s *CACertificateDescription) SetCustomerVersion(v int64) *CACertificateDescription {
26806	s.CustomerVersion = &v
26807	return s
26808}
26809
26810// SetGenerationId sets the GenerationId field's value.
26811func (s *CACertificateDescription) SetGenerationId(v string) *CACertificateDescription {
26812	s.GenerationId = &v
26813	return s
26814}
26815
26816// SetLastModifiedDate sets the LastModifiedDate field's value.
26817func (s *CACertificateDescription) SetLastModifiedDate(v time.Time) *CACertificateDescription {
26818	s.LastModifiedDate = &v
26819	return s
26820}
26821
26822// SetOwnedBy sets the OwnedBy field's value.
26823func (s *CACertificateDescription) SetOwnedBy(v string) *CACertificateDescription {
26824	s.OwnedBy = &v
26825	return s
26826}
26827
26828// SetStatus sets the Status field's value.
26829func (s *CACertificateDescription) SetStatus(v string) *CACertificateDescription {
26830	s.Status = &v
26831	return s
26832}
26833
26834// SetValidity sets the Validity field's value.
26835func (s *CACertificateDescription) SetValidity(v *CertificateValidity) *CACertificateDescription {
26836	s.Validity = v
26837	return s
26838}
26839
26840type CancelAuditMitigationActionsTaskInput struct {
26841	_ struct{} `type:"structure"`
26842
26843	// The unique identifier for the task that you want to cancel.
26844	//
26845	// TaskId is a required field
26846	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
26847}
26848
26849// String returns the string representation
26850func (s CancelAuditMitigationActionsTaskInput) String() string {
26851	return awsutil.Prettify(s)
26852}
26853
26854// GoString returns the string representation
26855func (s CancelAuditMitigationActionsTaskInput) GoString() string {
26856	return s.String()
26857}
26858
26859// Validate inspects the fields of the type to determine if they are valid.
26860func (s *CancelAuditMitigationActionsTaskInput) Validate() error {
26861	invalidParams := request.ErrInvalidParams{Context: "CancelAuditMitigationActionsTaskInput"}
26862	if s.TaskId == nil {
26863		invalidParams.Add(request.NewErrParamRequired("TaskId"))
26864	}
26865	if s.TaskId != nil && len(*s.TaskId) < 1 {
26866		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
26867	}
26868
26869	if invalidParams.Len() > 0 {
26870		return invalidParams
26871	}
26872	return nil
26873}
26874
26875// SetTaskId sets the TaskId field's value.
26876func (s *CancelAuditMitigationActionsTaskInput) SetTaskId(v string) *CancelAuditMitigationActionsTaskInput {
26877	s.TaskId = &v
26878	return s
26879}
26880
26881type CancelAuditMitigationActionsTaskOutput struct {
26882	_ struct{} `type:"structure"`
26883}
26884
26885// String returns the string representation
26886func (s CancelAuditMitigationActionsTaskOutput) String() string {
26887	return awsutil.Prettify(s)
26888}
26889
26890// GoString returns the string representation
26891func (s CancelAuditMitigationActionsTaskOutput) GoString() string {
26892	return s.String()
26893}
26894
26895type CancelAuditTaskInput struct {
26896	_ struct{} `type:"structure"`
26897
26898	// The ID of the audit you want to cancel. You can only cancel an audit that
26899	// is "IN_PROGRESS".
26900	//
26901	// TaskId is a required field
26902	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
26903}
26904
26905// String returns the string representation
26906func (s CancelAuditTaskInput) String() string {
26907	return awsutil.Prettify(s)
26908}
26909
26910// GoString returns the string representation
26911func (s CancelAuditTaskInput) GoString() string {
26912	return s.String()
26913}
26914
26915// Validate inspects the fields of the type to determine if they are valid.
26916func (s *CancelAuditTaskInput) Validate() error {
26917	invalidParams := request.ErrInvalidParams{Context: "CancelAuditTaskInput"}
26918	if s.TaskId == nil {
26919		invalidParams.Add(request.NewErrParamRequired("TaskId"))
26920	}
26921	if s.TaskId != nil && len(*s.TaskId) < 1 {
26922		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
26923	}
26924
26925	if invalidParams.Len() > 0 {
26926		return invalidParams
26927	}
26928	return nil
26929}
26930
26931// SetTaskId sets the TaskId field's value.
26932func (s *CancelAuditTaskInput) SetTaskId(v string) *CancelAuditTaskInput {
26933	s.TaskId = &v
26934	return s
26935}
26936
26937type CancelAuditTaskOutput struct {
26938	_ struct{} `type:"structure"`
26939}
26940
26941// String returns the string representation
26942func (s CancelAuditTaskOutput) String() string {
26943	return awsutil.Prettify(s)
26944}
26945
26946// GoString returns the string representation
26947func (s CancelAuditTaskOutput) GoString() string {
26948	return s.String()
26949}
26950
26951// The input for the CancelCertificateTransfer operation.
26952type CancelCertificateTransferInput struct {
26953	_ struct{} `type:"structure"`
26954
26955	// The ID of the certificate. (The last part of the certificate ARN contains
26956	// the certificate ID.)
26957	//
26958	// CertificateId is a required field
26959	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
26960}
26961
26962// String returns the string representation
26963func (s CancelCertificateTransferInput) String() string {
26964	return awsutil.Prettify(s)
26965}
26966
26967// GoString returns the string representation
26968func (s CancelCertificateTransferInput) GoString() string {
26969	return s.String()
26970}
26971
26972// Validate inspects the fields of the type to determine if they are valid.
26973func (s *CancelCertificateTransferInput) Validate() error {
26974	invalidParams := request.ErrInvalidParams{Context: "CancelCertificateTransferInput"}
26975	if s.CertificateId == nil {
26976		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
26977	}
26978	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
26979		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
26980	}
26981
26982	if invalidParams.Len() > 0 {
26983		return invalidParams
26984	}
26985	return nil
26986}
26987
26988// SetCertificateId sets the CertificateId field's value.
26989func (s *CancelCertificateTransferInput) SetCertificateId(v string) *CancelCertificateTransferInput {
26990	s.CertificateId = &v
26991	return s
26992}
26993
26994type CancelCertificateTransferOutput struct {
26995	_ struct{} `type:"structure"`
26996}
26997
26998// String returns the string representation
26999func (s CancelCertificateTransferOutput) String() string {
27000	return awsutil.Prettify(s)
27001}
27002
27003// GoString returns the string representation
27004func (s CancelCertificateTransferOutput) GoString() string {
27005	return s.String()
27006}
27007
27008type CancelDetectMitigationActionsTaskInput struct {
27009	_ struct{} `type:"structure"`
27010
27011	// The unique identifier of the task.
27012	//
27013	// TaskId is a required field
27014	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
27015}
27016
27017// String returns the string representation
27018func (s CancelDetectMitigationActionsTaskInput) String() string {
27019	return awsutil.Prettify(s)
27020}
27021
27022// GoString returns the string representation
27023func (s CancelDetectMitigationActionsTaskInput) GoString() string {
27024	return s.String()
27025}
27026
27027// Validate inspects the fields of the type to determine if they are valid.
27028func (s *CancelDetectMitigationActionsTaskInput) Validate() error {
27029	invalidParams := request.ErrInvalidParams{Context: "CancelDetectMitigationActionsTaskInput"}
27030	if s.TaskId == nil {
27031		invalidParams.Add(request.NewErrParamRequired("TaskId"))
27032	}
27033	if s.TaskId != nil && len(*s.TaskId) < 1 {
27034		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
27035	}
27036
27037	if invalidParams.Len() > 0 {
27038		return invalidParams
27039	}
27040	return nil
27041}
27042
27043// SetTaskId sets the TaskId field's value.
27044func (s *CancelDetectMitigationActionsTaskInput) SetTaskId(v string) *CancelDetectMitigationActionsTaskInput {
27045	s.TaskId = &v
27046	return s
27047}
27048
27049type CancelDetectMitigationActionsTaskOutput struct {
27050	_ struct{} `type:"structure"`
27051}
27052
27053// String returns the string representation
27054func (s CancelDetectMitigationActionsTaskOutput) String() string {
27055	return awsutil.Prettify(s)
27056}
27057
27058// GoString returns the string representation
27059func (s CancelDetectMitigationActionsTaskOutput) GoString() string {
27060	return s.String()
27061}
27062
27063type CancelJobExecutionInput struct {
27064	_ struct{} `type:"structure"`
27065
27066	// (Optional) The expected current version of the job execution. Each time you
27067	// update the job execution, its version is incremented. If the version of the
27068	// job execution stored in Jobs does not match, the update is rejected with
27069	// a VersionMismatch error, and an ErrorResponse that contains the current job
27070	// execution status data is returned. (This makes it unnecessary to perform
27071	// a separate DescribeJobExecution request in order to obtain the job execution
27072	// status data.)
27073	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
27074
27075	// (Optional) If true the job execution will be canceled if it has status IN_PROGRESS
27076	// or QUEUED, otherwise the job execution will be canceled only if it has status
27077	// QUEUED. If you attempt to cancel a job execution that is IN_PROGRESS, and
27078	// you do not set force to true, then an InvalidStateTransitionException will
27079	// be thrown. The default is false.
27080	//
27081	// Canceling a job execution which is "IN_PROGRESS", will cause the device to
27082	// be unable to update the job execution status. Use caution and ensure that
27083	// the device is able to recover to a valid state.
27084	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
27085
27086	// The ID of the job to be canceled.
27087	//
27088	// JobId is a required field
27089	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
27090
27091	// A collection of name/value pairs that describe the status of the job execution.
27092	// If not specified, the statusDetails are unchanged. You can specify at most
27093	// 10 name/value pairs.
27094	StatusDetails map[string]*string `locationName:"statusDetails" type:"map"`
27095
27096	// The name of the thing whose execution of the job will be canceled.
27097	//
27098	// ThingName is a required field
27099	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
27100}
27101
27102// String returns the string representation
27103func (s CancelJobExecutionInput) String() string {
27104	return awsutil.Prettify(s)
27105}
27106
27107// GoString returns the string representation
27108func (s CancelJobExecutionInput) GoString() string {
27109	return s.String()
27110}
27111
27112// Validate inspects the fields of the type to determine if they are valid.
27113func (s *CancelJobExecutionInput) Validate() error {
27114	invalidParams := request.ErrInvalidParams{Context: "CancelJobExecutionInput"}
27115	if s.JobId == nil {
27116		invalidParams.Add(request.NewErrParamRequired("JobId"))
27117	}
27118	if s.JobId != nil && len(*s.JobId) < 1 {
27119		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
27120	}
27121	if s.ThingName == nil {
27122		invalidParams.Add(request.NewErrParamRequired("ThingName"))
27123	}
27124	if s.ThingName != nil && len(*s.ThingName) < 1 {
27125		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
27126	}
27127
27128	if invalidParams.Len() > 0 {
27129		return invalidParams
27130	}
27131	return nil
27132}
27133
27134// SetExpectedVersion sets the ExpectedVersion field's value.
27135func (s *CancelJobExecutionInput) SetExpectedVersion(v int64) *CancelJobExecutionInput {
27136	s.ExpectedVersion = &v
27137	return s
27138}
27139
27140// SetForce sets the Force field's value.
27141func (s *CancelJobExecutionInput) SetForce(v bool) *CancelJobExecutionInput {
27142	s.Force = &v
27143	return s
27144}
27145
27146// SetJobId sets the JobId field's value.
27147func (s *CancelJobExecutionInput) SetJobId(v string) *CancelJobExecutionInput {
27148	s.JobId = &v
27149	return s
27150}
27151
27152// SetStatusDetails sets the StatusDetails field's value.
27153func (s *CancelJobExecutionInput) SetStatusDetails(v map[string]*string) *CancelJobExecutionInput {
27154	s.StatusDetails = v
27155	return s
27156}
27157
27158// SetThingName sets the ThingName field's value.
27159func (s *CancelJobExecutionInput) SetThingName(v string) *CancelJobExecutionInput {
27160	s.ThingName = &v
27161	return s
27162}
27163
27164type CancelJobExecutionOutput struct {
27165	_ struct{} `type:"structure"`
27166}
27167
27168// String returns the string representation
27169func (s CancelJobExecutionOutput) String() string {
27170	return awsutil.Prettify(s)
27171}
27172
27173// GoString returns the string representation
27174func (s CancelJobExecutionOutput) GoString() string {
27175	return s.String()
27176}
27177
27178type CancelJobInput struct {
27179	_ struct{} `type:"structure"`
27180
27181	// An optional comment string describing why the job was canceled.
27182	Comment *string `locationName:"comment" type:"string"`
27183
27184	// (Optional) If true job executions with status "IN_PROGRESS" and "QUEUED"
27185	// are canceled, otherwise only job executions with status "QUEUED" are canceled.
27186	// The default is false.
27187	//
27188	// Canceling a job which is "IN_PROGRESS", will cause a device which is executing
27189	// the job to be unable to update the job execution status. Use caution and
27190	// ensure that each device executing a job which is canceled is able to recover
27191	// to a valid state.
27192	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
27193
27194	// The unique identifier you assigned to this job when it was created.
27195	//
27196	// JobId is a required field
27197	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
27198
27199	// (Optional)A reason code string that explains why the job was canceled.
27200	ReasonCode *string `locationName:"reasonCode" type:"string"`
27201}
27202
27203// String returns the string representation
27204func (s CancelJobInput) String() string {
27205	return awsutil.Prettify(s)
27206}
27207
27208// GoString returns the string representation
27209func (s CancelJobInput) GoString() string {
27210	return s.String()
27211}
27212
27213// Validate inspects the fields of the type to determine if they are valid.
27214func (s *CancelJobInput) Validate() error {
27215	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
27216	if s.JobId == nil {
27217		invalidParams.Add(request.NewErrParamRequired("JobId"))
27218	}
27219	if s.JobId != nil && len(*s.JobId) < 1 {
27220		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
27221	}
27222
27223	if invalidParams.Len() > 0 {
27224		return invalidParams
27225	}
27226	return nil
27227}
27228
27229// SetComment sets the Comment field's value.
27230func (s *CancelJobInput) SetComment(v string) *CancelJobInput {
27231	s.Comment = &v
27232	return s
27233}
27234
27235// SetForce sets the Force field's value.
27236func (s *CancelJobInput) SetForce(v bool) *CancelJobInput {
27237	s.Force = &v
27238	return s
27239}
27240
27241// SetJobId sets the JobId field's value.
27242func (s *CancelJobInput) SetJobId(v string) *CancelJobInput {
27243	s.JobId = &v
27244	return s
27245}
27246
27247// SetReasonCode sets the ReasonCode field's value.
27248func (s *CancelJobInput) SetReasonCode(v string) *CancelJobInput {
27249	s.ReasonCode = &v
27250	return s
27251}
27252
27253type CancelJobOutput struct {
27254	_ struct{} `type:"structure"`
27255
27256	// A short text description of the job.
27257	Description *string `locationName:"description" type:"string"`
27258
27259	// The job ARN.
27260	JobArn *string `locationName:"jobArn" type:"string"`
27261
27262	// The unique identifier you assigned to this job when it was created.
27263	JobId *string `locationName:"jobId" min:"1" type:"string"`
27264}
27265
27266// String returns the string representation
27267func (s CancelJobOutput) String() string {
27268	return awsutil.Prettify(s)
27269}
27270
27271// GoString returns the string representation
27272func (s CancelJobOutput) GoString() string {
27273	return s.String()
27274}
27275
27276// SetDescription sets the Description field's value.
27277func (s *CancelJobOutput) SetDescription(v string) *CancelJobOutput {
27278	s.Description = &v
27279	return s
27280}
27281
27282// SetJobArn sets the JobArn field's value.
27283func (s *CancelJobOutput) SetJobArn(v string) *CancelJobOutput {
27284	s.JobArn = &v
27285	return s
27286}
27287
27288// SetJobId sets the JobId field's value.
27289func (s *CancelJobOutput) SetJobId(v string) *CancelJobOutput {
27290	s.JobId = &v
27291	return s
27292}
27293
27294// Information about a certificate.
27295type Certificate struct {
27296	_ struct{} `type:"structure"`
27297
27298	// The ARN of the certificate.
27299	CertificateArn *string `locationName:"certificateArn" type:"string"`
27300
27301	// The ID of the certificate. (The last part of the certificate ARN contains
27302	// the certificate ID.)
27303	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
27304
27305	// The mode of the certificate.
27306	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
27307
27308	// The date and time the certificate was created.
27309	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
27310
27311	// The status of the certificate.
27312	//
27313	// The status value REGISTER_INACTIVE is deprecated and should not be used.
27314	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
27315}
27316
27317// String returns the string representation
27318func (s Certificate) String() string {
27319	return awsutil.Prettify(s)
27320}
27321
27322// GoString returns the string representation
27323func (s Certificate) GoString() string {
27324	return s.String()
27325}
27326
27327// SetCertificateArn sets the CertificateArn field's value.
27328func (s *Certificate) SetCertificateArn(v string) *Certificate {
27329	s.CertificateArn = &v
27330	return s
27331}
27332
27333// SetCertificateId sets the CertificateId field's value.
27334func (s *Certificate) SetCertificateId(v string) *Certificate {
27335	s.CertificateId = &v
27336	return s
27337}
27338
27339// SetCertificateMode sets the CertificateMode field's value.
27340func (s *Certificate) SetCertificateMode(v string) *Certificate {
27341	s.CertificateMode = &v
27342	return s
27343}
27344
27345// SetCreationDate sets the CreationDate field's value.
27346func (s *Certificate) SetCreationDate(v time.Time) *Certificate {
27347	s.CreationDate = &v
27348	return s
27349}
27350
27351// SetStatus sets the Status field's value.
27352func (s *Certificate) SetStatus(v string) *Certificate {
27353	s.Status = &v
27354	return s
27355}
27356
27357// Unable to verify the CA certificate used to sign the device certificate you
27358// are attempting to register. This is happens when you have registered more
27359// than one CA certificate that has the same subject field and public key.
27360type CertificateConflictException struct {
27361	_            struct{}                  `type:"structure"`
27362	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
27363
27364	// The message for the exception.
27365	Message_ *string `locationName:"message" type:"string"`
27366}
27367
27368// String returns the string representation
27369func (s CertificateConflictException) String() string {
27370	return awsutil.Prettify(s)
27371}
27372
27373// GoString returns the string representation
27374func (s CertificateConflictException) GoString() string {
27375	return s.String()
27376}
27377
27378func newErrorCertificateConflictException(v protocol.ResponseMetadata) error {
27379	return &CertificateConflictException{
27380		RespMetadata: v,
27381	}
27382}
27383
27384// Code returns the exception type name.
27385func (s *CertificateConflictException) Code() string {
27386	return "CertificateConflictException"
27387}
27388
27389// Message returns the exception's message.
27390func (s *CertificateConflictException) Message() string {
27391	if s.Message_ != nil {
27392		return *s.Message_
27393	}
27394	return ""
27395}
27396
27397// OrigErr always returns nil, satisfies awserr.Error interface.
27398func (s *CertificateConflictException) OrigErr() error {
27399	return nil
27400}
27401
27402func (s *CertificateConflictException) Error() string {
27403	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
27404}
27405
27406// Status code returns the HTTP status code for the request's response error.
27407func (s *CertificateConflictException) StatusCode() int {
27408	return s.RespMetadata.StatusCode
27409}
27410
27411// RequestID returns the service's response RequestID for request.
27412func (s *CertificateConflictException) RequestID() string {
27413	return s.RespMetadata.RequestID
27414}
27415
27416// Describes a certificate.
27417type CertificateDescription struct {
27418	_ struct{} `type:"structure"`
27419
27420	// The certificate ID of the CA certificate used to sign this certificate.
27421	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
27422
27423	// The ARN of the certificate.
27424	CertificateArn *string `locationName:"certificateArn" type:"string"`
27425
27426	// The ID of the certificate.
27427	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
27428
27429	// The mode of the certificate.
27430	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
27431
27432	// The certificate data, in PEM format.
27433	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
27434
27435	// The date and time the certificate was created.
27436	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
27437
27438	// The customer version of the certificate.
27439	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
27440
27441	// The generation ID of the certificate.
27442	GenerationId *string `locationName:"generationId" type:"string"`
27443
27444	// The date and time the certificate was last modified.
27445	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
27446
27447	// The ID of the AWS account that owns the certificate.
27448	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
27449
27450	// The ID of the AWS account of the previous owner of the certificate.
27451	PreviousOwnedBy *string `locationName:"previousOwnedBy" min:"12" type:"string"`
27452
27453	// The status of the certificate.
27454	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
27455
27456	// The transfer data.
27457	TransferData *TransferData `locationName:"transferData" type:"structure"`
27458
27459	// When the certificate is valid.
27460	Validity *CertificateValidity `locationName:"validity" type:"structure"`
27461}
27462
27463// String returns the string representation
27464func (s CertificateDescription) String() string {
27465	return awsutil.Prettify(s)
27466}
27467
27468// GoString returns the string representation
27469func (s CertificateDescription) GoString() string {
27470	return s.String()
27471}
27472
27473// SetCaCertificateId sets the CaCertificateId field's value.
27474func (s *CertificateDescription) SetCaCertificateId(v string) *CertificateDescription {
27475	s.CaCertificateId = &v
27476	return s
27477}
27478
27479// SetCertificateArn sets the CertificateArn field's value.
27480func (s *CertificateDescription) SetCertificateArn(v string) *CertificateDescription {
27481	s.CertificateArn = &v
27482	return s
27483}
27484
27485// SetCertificateId sets the CertificateId field's value.
27486func (s *CertificateDescription) SetCertificateId(v string) *CertificateDescription {
27487	s.CertificateId = &v
27488	return s
27489}
27490
27491// SetCertificateMode sets the CertificateMode field's value.
27492func (s *CertificateDescription) SetCertificateMode(v string) *CertificateDescription {
27493	s.CertificateMode = &v
27494	return s
27495}
27496
27497// SetCertificatePem sets the CertificatePem field's value.
27498func (s *CertificateDescription) SetCertificatePem(v string) *CertificateDescription {
27499	s.CertificatePem = &v
27500	return s
27501}
27502
27503// SetCreationDate sets the CreationDate field's value.
27504func (s *CertificateDescription) SetCreationDate(v time.Time) *CertificateDescription {
27505	s.CreationDate = &v
27506	return s
27507}
27508
27509// SetCustomerVersion sets the CustomerVersion field's value.
27510func (s *CertificateDescription) SetCustomerVersion(v int64) *CertificateDescription {
27511	s.CustomerVersion = &v
27512	return s
27513}
27514
27515// SetGenerationId sets the GenerationId field's value.
27516func (s *CertificateDescription) SetGenerationId(v string) *CertificateDescription {
27517	s.GenerationId = &v
27518	return s
27519}
27520
27521// SetLastModifiedDate sets the LastModifiedDate field's value.
27522func (s *CertificateDescription) SetLastModifiedDate(v time.Time) *CertificateDescription {
27523	s.LastModifiedDate = &v
27524	return s
27525}
27526
27527// SetOwnedBy sets the OwnedBy field's value.
27528func (s *CertificateDescription) SetOwnedBy(v string) *CertificateDescription {
27529	s.OwnedBy = &v
27530	return s
27531}
27532
27533// SetPreviousOwnedBy sets the PreviousOwnedBy field's value.
27534func (s *CertificateDescription) SetPreviousOwnedBy(v string) *CertificateDescription {
27535	s.PreviousOwnedBy = &v
27536	return s
27537}
27538
27539// SetStatus sets the Status field's value.
27540func (s *CertificateDescription) SetStatus(v string) *CertificateDescription {
27541	s.Status = &v
27542	return s
27543}
27544
27545// SetTransferData sets the TransferData field's value.
27546func (s *CertificateDescription) SetTransferData(v *TransferData) *CertificateDescription {
27547	s.TransferData = v
27548	return s
27549}
27550
27551// SetValidity sets the Validity field's value.
27552func (s *CertificateDescription) SetValidity(v *CertificateValidity) *CertificateDescription {
27553	s.Validity = v
27554	return s
27555}
27556
27557// The certificate operation is not allowed.
27558type CertificateStateException struct {
27559	_            struct{}                  `type:"structure"`
27560	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
27561
27562	// The message for the exception.
27563	Message_ *string `locationName:"message" type:"string"`
27564}
27565
27566// String returns the string representation
27567func (s CertificateStateException) String() string {
27568	return awsutil.Prettify(s)
27569}
27570
27571// GoString returns the string representation
27572func (s CertificateStateException) GoString() string {
27573	return s.String()
27574}
27575
27576func newErrorCertificateStateException(v protocol.ResponseMetadata) error {
27577	return &CertificateStateException{
27578		RespMetadata: v,
27579	}
27580}
27581
27582// Code returns the exception type name.
27583func (s *CertificateStateException) Code() string {
27584	return "CertificateStateException"
27585}
27586
27587// Message returns the exception's message.
27588func (s *CertificateStateException) Message() string {
27589	if s.Message_ != nil {
27590		return *s.Message_
27591	}
27592	return ""
27593}
27594
27595// OrigErr always returns nil, satisfies awserr.Error interface.
27596func (s *CertificateStateException) OrigErr() error {
27597	return nil
27598}
27599
27600func (s *CertificateStateException) Error() string {
27601	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
27602}
27603
27604// Status code returns the HTTP status code for the request's response error.
27605func (s *CertificateStateException) StatusCode() int {
27606	return s.RespMetadata.StatusCode
27607}
27608
27609// RequestID returns the service's response RequestID for request.
27610func (s *CertificateStateException) RequestID() string {
27611	return s.RespMetadata.RequestID
27612}
27613
27614// The certificate is invalid.
27615type CertificateValidationException struct {
27616	_            struct{}                  `type:"structure"`
27617	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
27618
27619	// Additional information about the exception.
27620	Message_ *string `locationName:"message" type:"string"`
27621}
27622
27623// String returns the string representation
27624func (s CertificateValidationException) String() string {
27625	return awsutil.Prettify(s)
27626}
27627
27628// GoString returns the string representation
27629func (s CertificateValidationException) GoString() string {
27630	return s.String()
27631}
27632
27633func newErrorCertificateValidationException(v protocol.ResponseMetadata) error {
27634	return &CertificateValidationException{
27635		RespMetadata: v,
27636	}
27637}
27638
27639// Code returns the exception type name.
27640func (s *CertificateValidationException) Code() string {
27641	return "CertificateValidationException"
27642}
27643
27644// Message returns the exception's message.
27645func (s *CertificateValidationException) Message() string {
27646	if s.Message_ != nil {
27647		return *s.Message_
27648	}
27649	return ""
27650}
27651
27652// OrigErr always returns nil, satisfies awserr.Error interface.
27653func (s *CertificateValidationException) OrigErr() error {
27654	return nil
27655}
27656
27657func (s *CertificateValidationException) Error() string {
27658	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
27659}
27660
27661// Status code returns the HTTP status code for the request's response error.
27662func (s *CertificateValidationException) StatusCode() int {
27663	return s.RespMetadata.StatusCode
27664}
27665
27666// RequestID returns the service's response RequestID for request.
27667func (s *CertificateValidationException) RequestID() string {
27668	return s.RespMetadata.RequestID
27669}
27670
27671// When the certificate is valid.
27672type CertificateValidity struct {
27673	_ struct{} `type:"structure"`
27674
27675	// The certificate is not valid after this date.
27676	NotAfter *time.Time `locationName:"notAfter" type:"timestamp"`
27677
27678	// The certificate is not valid before this date.
27679	NotBefore *time.Time `locationName:"notBefore" type:"timestamp"`
27680}
27681
27682// String returns the string representation
27683func (s CertificateValidity) String() string {
27684	return awsutil.Prettify(s)
27685}
27686
27687// GoString returns the string representation
27688func (s CertificateValidity) GoString() string {
27689	return s.String()
27690}
27691
27692// SetNotAfter sets the NotAfter field's value.
27693func (s *CertificateValidity) SetNotAfter(v time.Time) *CertificateValidity {
27694	s.NotAfter = &v
27695	return s
27696}
27697
27698// SetNotBefore sets the NotBefore field's value.
27699func (s *CertificateValidity) SetNotBefore(v time.Time) *CertificateValidity {
27700	s.NotBefore = &v
27701	return s
27702}
27703
27704type ClearDefaultAuthorizerInput struct {
27705	_ struct{} `type:"structure"`
27706}
27707
27708// String returns the string representation
27709func (s ClearDefaultAuthorizerInput) String() string {
27710	return awsutil.Prettify(s)
27711}
27712
27713// GoString returns the string representation
27714func (s ClearDefaultAuthorizerInput) GoString() string {
27715	return s.String()
27716}
27717
27718type ClearDefaultAuthorizerOutput struct {
27719	_ struct{} `type:"structure"`
27720}
27721
27722// String returns the string representation
27723func (s ClearDefaultAuthorizerOutput) String() string {
27724	return awsutil.Prettify(s)
27725}
27726
27727// GoString returns the string representation
27728func (s ClearDefaultAuthorizerOutput) GoString() string {
27729	return s.String()
27730}
27731
27732// Describes an action that updates a CloudWatch alarm.
27733type CloudwatchAlarmAction struct {
27734	_ struct{} `type:"structure"`
27735
27736	// The CloudWatch alarm name.
27737	//
27738	// AlarmName is a required field
27739	AlarmName *string `locationName:"alarmName" type:"string" required:"true"`
27740
27741	// The IAM role that allows access to the CloudWatch alarm.
27742	//
27743	// RoleArn is a required field
27744	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
27745
27746	// The reason for the alarm change.
27747	//
27748	// StateReason is a required field
27749	StateReason *string `locationName:"stateReason" type:"string" required:"true"`
27750
27751	// The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
27752	//
27753	// StateValue is a required field
27754	StateValue *string `locationName:"stateValue" type:"string" required:"true"`
27755}
27756
27757// String returns the string representation
27758func (s CloudwatchAlarmAction) String() string {
27759	return awsutil.Prettify(s)
27760}
27761
27762// GoString returns the string representation
27763func (s CloudwatchAlarmAction) GoString() string {
27764	return s.String()
27765}
27766
27767// Validate inspects the fields of the type to determine if they are valid.
27768func (s *CloudwatchAlarmAction) Validate() error {
27769	invalidParams := request.ErrInvalidParams{Context: "CloudwatchAlarmAction"}
27770	if s.AlarmName == nil {
27771		invalidParams.Add(request.NewErrParamRequired("AlarmName"))
27772	}
27773	if s.RoleArn == nil {
27774		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
27775	}
27776	if s.StateReason == nil {
27777		invalidParams.Add(request.NewErrParamRequired("StateReason"))
27778	}
27779	if s.StateValue == nil {
27780		invalidParams.Add(request.NewErrParamRequired("StateValue"))
27781	}
27782
27783	if invalidParams.Len() > 0 {
27784		return invalidParams
27785	}
27786	return nil
27787}
27788
27789// SetAlarmName sets the AlarmName field's value.
27790func (s *CloudwatchAlarmAction) SetAlarmName(v string) *CloudwatchAlarmAction {
27791	s.AlarmName = &v
27792	return s
27793}
27794
27795// SetRoleArn sets the RoleArn field's value.
27796func (s *CloudwatchAlarmAction) SetRoleArn(v string) *CloudwatchAlarmAction {
27797	s.RoleArn = &v
27798	return s
27799}
27800
27801// SetStateReason sets the StateReason field's value.
27802func (s *CloudwatchAlarmAction) SetStateReason(v string) *CloudwatchAlarmAction {
27803	s.StateReason = &v
27804	return s
27805}
27806
27807// SetStateValue sets the StateValue field's value.
27808func (s *CloudwatchAlarmAction) SetStateValue(v string) *CloudwatchAlarmAction {
27809	s.StateValue = &v
27810	return s
27811}
27812
27813// Describes an action that sends data to CloudWatch Logs.
27814type CloudwatchLogsAction struct {
27815	_ struct{} `type:"structure"`
27816
27817	// The CloudWatch log group to which the action sends data.
27818	//
27819	// LogGroupName is a required field
27820	LogGroupName *string `locationName:"logGroupName" type:"string" required:"true"`
27821
27822	// The IAM role that allows access to the CloudWatch log.
27823	//
27824	// RoleArn is a required field
27825	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
27826}
27827
27828// String returns the string representation
27829func (s CloudwatchLogsAction) String() string {
27830	return awsutil.Prettify(s)
27831}
27832
27833// GoString returns the string representation
27834func (s CloudwatchLogsAction) GoString() string {
27835	return s.String()
27836}
27837
27838// Validate inspects the fields of the type to determine if they are valid.
27839func (s *CloudwatchLogsAction) Validate() error {
27840	invalidParams := request.ErrInvalidParams{Context: "CloudwatchLogsAction"}
27841	if s.LogGroupName == nil {
27842		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
27843	}
27844	if s.RoleArn == nil {
27845		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
27846	}
27847
27848	if invalidParams.Len() > 0 {
27849		return invalidParams
27850	}
27851	return nil
27852}
27853
27854// SetLogGroupName sets the LogGroupName field's value.
27855func (s *CloudwatchLogsAction) SetLogGroupName(v string) *CloudwatchLogsAction {
27856	s.LogGroupName = &v
27857	return s
27858}
27859
27860// SetRoleArn sets the RoleArn field's value.
27861func (s *CloudwatchLogsAction) SetRoleArn(v string) *CloudwatchLogsAction {
27862	s.RoleArn = &v
27863	return s
27864}
27865
27866// Describes an action that captures a CloudWatch metric.
27867type CloudwatchMetricAction struct {
27868	_ struct{} `type:"structure"`
27869
27870	// The CloudWatch metric name.
27871	//
27872	// MetricName is a required field
27873	MetricName *string `locationName:"metricName" type:"string" required:"true"`
27874
27875	// The CloudWatch metric namespace name.
27876	//
27877	// MetricNamespace is a required field
27878	MetricNamespace *string `locationName:"metricNamespace" type:"string" required:"true"`
27879
27880	// An optional Unix timestamp (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
27881	MetricTimestamp *string `locationName:"metricTimestamp" type:"string"`
27882
27883	// The metric unit (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
27884	// supported by CloudWatch.
27885	//
27886	// MetricUnit is a required field
27887	MetricUnit *string `locationName:"metricUnit" type:"string" required:"true"`
27888
27889	// The CloudWatch metric value.
27890	//
27891	// MetricValue is a required field
27892	MetricValue *string `locationName:"metricValue" type:"string" required:"true"`
27893
27894	// The IAM role that allows access to the CloudWatch metric.
27895	//
27896	// RoleArn is a required field
27897	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
27898}
27899
27900// String returns the string representation
27901func (s CloudwatchMetricAction) String() string {
27902	return awsutil.Prettify(s)
27903}
27904
27905// GoString returns the string representation
27906func (s CloudwatchMetricAction) GoString() string {
27907	return s.String()
27908}
27909
27910// Validate inspects the fields of the type to determine if they are valid.
27911func (s *CloudwatchMetricAction) Validate() error {
27912	invalidParams := request.ErrInvalidParams{Context: "CloudwatchMetricAction"}
27913	if s.MetricName == nil {
27914		invalidParams.Add(request.NewErrParamRequired("MetricName"))
27915	}
27916	if s.MetricNamespace == nil {
27917		invalidParams.Add(request.NewErrParamRequired("MetricNamespace"))
27918	}
27919	if s.MetricUnit == nil {
27920		invalidParams.Add(request.NewErrParamRequired("MetricUnit"))
27921	}
27922	if s.MetricValue == nil {
27923		invalidParams.Add(request.NewErrParamRequired("MetricValue"))
27924	}
27925	if s.RoleArn == nil {
27926		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
27927	}
27928
27929	if invalidParams.Len() > 0 {
27930		return invalidParams
27931	}
27932	return nil
27933}
27934
27935// SetMetricName sets the MetricName field's value.
27936func (s *CloudwatchMetricAction) SetMetricName(v string) *CloudwatchMetricAction {
27937	s.MetricName = &v
27938	return s
27939}
27940
27941// SetMetricNamespace sets the MetricNamespace field's value.
27942func (s *CloudwatchMetricAction) SetMetricNamespace(v string) *CloudwatchMetricAction {
27943	s.MetricNamespace = &v
27944	return s
27945}
27946
27947// SetMetricTimestamp sets the MetricTimestamp field's value.
27948func (s *CloudwatchMetricAction) SetMetricTimestamp(v string) *CloudwatchMetricAction {
27949	s.MetricTimestamp = &v
27950	return s
27951}
27952
27953// SetMetricUnit sets the MetricUnit field's value.
27954func (s *CloudwatchMetricAction) SetMetricUnit(v string) *CloudwatchMetricAction {
27955	s.MetricUnit = &v
27956	return s
27957}
27958
27959// SetMetricValue sets the MetricValue field's value.
27960func (s *CloudwatchMetricAction) SetMetricValue(v string) *CloudwatchMetricAction {
27961	s.MetricValue = &v
27962	return s
27963}
27964
27965// SetRoleArn sets the RoleArn field's value.
27966func (s *CloudwatchMetricAction) SetRoleArn(v string) *CloudwatchMetricAction {
27967	s.RoleArn = &v
27968	return s
27969}
27970
27971// Describes the method to use when code signing a file.
27972type CodeSigning struct {
27973	_ struct{} `type:"structure"`
27974
27975	// The ID of the AWSSignerJob which was created to sign the file.
27976	AwsSignerJobId *string `locationName:"awsSignerJobId" type:"string"`
27977
27978	// A custom method for code signing a file.
27979	CustomCodeSigning *CustomCodeSigning `locationName:"customCodeSigning" type:"structure"`
27980
27981	// Describes the code-signing job.
27982	StartSigningJobParameter *StartSigningJobParameter `locationName:"startSigningJobParameter" type:"structure"`
27983}
27984
27985// String returns the string representation
27986func (s CodeSigning) String() string {
27987	return awsutil.Prettify(s)
27988}
27989
27990// GoString returns the string representation
27991func (s CodeSigning) GoString() string {
27992	return s.String()
27993}
27994
27995// Validate inspects the fields of the type to determine if they are valid.
27996func (s *CodeSigning) Validate() error {
27997	invalidParams := request.ErrInvalidParams{Context: "CodeSigning"}
27998	if s.StartSigningJobParameter != nil {
27999		if err := s.StartSigningJobParameter.Validate(); err != nil {
28000			invalidParams.AddNested("StartSigningJobParameter", err.(request.ErrInvalidParams))
28001		}
28002	}
28003
28004	if invalidParams.Len() > 0 {
28005		return invalidParams
28006	}
28007	return nil
28008}
28009
28010// SetAwsSignerJobId sets the AwsSignerJobId field's value.
28011func (s *CodeSigning) SetAwsSignerJobId(v string) *CodeSigning {
28012	s.AwsSignerJobId = &v
28013	return s
28014}
28015
28016// SetCustomCodeSigning sets the CustomCodeSigning field's value.
28017func (s *CodeSigning) SetCustomCodeSigning(v *CustomCodeSigning) *CodeSigning {
28018	s.CustomCodeSigning = v
28019	return s
28020}
28021
28022// SetStartSigningJobParameter sets the StartSigningJobParameter field's value.
28023func (s *CodeSigning) SetStartSigningJobParameter(v *StartSigningJobParameter) *CodeSigning {
28024	s.StartSigningJobParameter = v
28025	return s
28026}
28027
28028// Describes the certificate chain being used when code signing a file.
28029type CodeSigningCertificateChain struct {
28030	_ struct{} `type:"structure"`
28031
28032	// The name of the certificate.
28033	CertificateName *string `locationName:"certificateName" type:"string"`
28034
28035	// A base64 encoded binary representation of the code signing certificate chain.
28036	InlineDocument *string `locationName:"inlineDocument" type:"string"`
28037}
28038
28039// String returns the string representation
28040func (s CodeSigningCertificateChain) String() string {
28041	return awsutil.Prettify(s)
28042}
28043
28044// GoString returns the string representation
28045func (s CodeSigningCertificateChain) GoString() string {
28046	return s.String()
28047}
28048
28049// SetCertificateName sets the CertificateName field's value.
28050func (s *CodeSigningCertificateChain) SetCertificateName(v string) *CodeSigningCertificateChain {
28051	s.CertificateName = &v
28052	return s
28053}
28054
28055// SetInlineDocument sets the InlineDocument field's value.
28056func (s *CodeSigningCertificateChain) SetInlineDocument(v string) *CodeSigningCertificateChain {
28057	s.InlineDocument = &v
28058	return s
28059}
28060
28061// Describes the signature for a file.
28062type CodeSigningSignature struct {
28063	_ struct{} `type:"structure"`
28064
28065	// A base64 encoded binary representation of the code signing signature.
28066	//
28067	// InlineDocument is automatically base64 encoded/decoded by the SDK.
28068	InlineDocument []byte `locationName:"inlineDocument" type:"blob"`
28069}
28070
28071// String returns the string representation
28072func (s CodeSigningSignature) String() string {
28073	return awsutil.Prettify(s)
28074}
28075
28076// GoString returns the string representation
28077func (s CodeSigningSignature) GoString() string {
28078	return s.String()
28079}
28080
28081// SetInlineDocument sets the InlineDocument field's value.
28082func (s *CodeSigningSignature) SetInlineDocument(v []byte) *CodeSigningSignature {
28083	s.InlineDocument = v
28084	return s
28085}
28086
28087// Configuration.
28088type Configuration struct {
28089	_ struct{} `type:"structure"`
28090
28091	// True to enable the configuration.
28092	Enabled *bool `type:"boolean"`
28093}
28094
28095// String returns the string representation
28096func (s Configuration) String() string {
28097	return awsutil.Prettify(s)
28098}
28099
28100// GoString returns the string representation
28101func (s Configuration) GoString() string {
28102	return s.String()
28103}
28104
28105// SetEnabled sets the Enabled field's value.
28106func (s *Configuration) SetEnabled(v bool) *Configuration {
28107	s.Enabled = &v
28108	return s
28109}
28110
28111type ConfirmTopicRuleDestinationInput struct {
28112	_ struct{} `type:"structure"`
28113
28114	// The token used to confirm ownership or access to the topic rule confirmation
28115	// URL.
28116	//
28117	// ConfirmationToken is a required field
28118	ConfirmationToken *string `location:"uri" locationName:"confirmationToken" min:"1" type:"string" required:"true"`
28119}
28120
28121// String returns the string representation
28122func (s ConfirmTopicRuleDestinationInput) String() string {
28123	return awsutil.Prettify(s)
28124}
28125
28126// GoString returns the string representation
28127func (s ConfirmTopicRuleDestinationInput) GoString() string {
28128	return s.String()
28129}
28130
28131// Validate inspects the fields of the type to determine if they are valid.
28132func (s *ConfirmTopicRuleDestinationInput) Validate() error {
28133	invalidParams := request.ErrInvalidParams{Context: "ConfirmTopicRuleDestinationInput"}
28134	if s.ConfirmationToken == nil {
28135		invalidParams.Add(request.NewErrParamRequired("ConfirmationToken"))
28136	}
28137	if s.ConfirmationToken != nil && len(*s.ConfirmationToken) < 1 {
28138		invalidParams.Add(request.NewErrParamMinLen("ConfirmationToken", 1))
28139	}
28140
28141	if invalidParams.Len() > 0 {
28142		return invalidParams
28143	}
28144	return nil
28145}
28146
28147// SetConfirmationToken sets the ConfirmationToken field's value.
28148func (s *ConfirmTopicRuleDestinationInput) SetConfirmationToken(v string) *ConfirmTopicRuleDestinationInput {
28149	s.ConfirmationToken = &v
28150	return s
28151}
28152
28153type ConfirmTopicRuleDestinationOutput struct {
28154	_ struct{} `type:"structure"`
28155}
28156
28157// String returns the string representation
28158func (s ConfirmTopicRuleDestinationOutput) String() string {
28159	return awsutil.Prettify(s)
28160}
28161
28162// GoString returns the string representation
28163func (s ConfirmTopicRuleDestinationOutput) GoString() string {
28164	return s.String()
28165}
28166
28167// A resource with the same name already exists.
28168type ConflictException struct {
28169	_            struct{}                  `type:"structure"`
28170	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
28171
28172	Message_ *string `locationName:"message" type:"string"`
28173}
28174
28175// String returns the string representation
28176func (s ConflictException) String() string {
28177	return awsutil.Prettify(s)
28178}
28179
28180// GoString returns the string representation
28181func (s ConflictException) GoString() string {
28182	return s.String()
28183}
28184
28185func newErrorConflictException(v protocol.ResponseMetadata) error {
28186	return &ConflictException{
28187		RespMetadata: v,
28188	}
28189}
28190
28191// Code returns the exception type name.
28192func (s *ConflictException) Code() string {
28193	return "ConflictException"
28194}
28195
28196// Message returns the exception's message.
28197func (s *ConflictException) Message() string {
28198	if s.Message_ != nil {
28199		return *s.Message_
28200	}
28201	return ""
28202}
28203
28204// OrigErr always returns nil, satisfies awserr.Error interface.
28205func (s *ConflictException) OrigErr() error {
28206	return nil
28207}
28208
28209func (s *ConflictException) Error() string {
28210	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
28211}
28212
28213// Status code returns the HTTP status code for the request's response error.
28214func (s *ConflictException) StatusCode() int {
28215	return s.RespMetadata.StatusCode
28216}
28217
28218// RequestID returns the service's response RequestID for request.
28219func (s *ConflictException) RequestID() string {
28220	return s.RespMetadata.RequestID
28221}
28222
28223// A conflicting resource update exception. This exception is thrown when two
28224// pending updates cause a conflict.
28225type ConflictingResourceUpdateException struct {
28226	_            struct{}                  `type:"structure"`
28227	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
28228
28229	// The message for the exception.
28230	Message_ *string `locationName:"message" type:"string"`
28231}
28232
28233// String returns the string representation
28234func (s ConflictingResourceUpdateException) String() string {
28235	return awsutil.Prettify(s)
28236}
28237
28238// GoString returns the string representation
28239func (s ConflictingResourceUpdateException) GoString() string {
28240	return s.String()
28241}
28242
28243func newErrorConflictingResourceUpdateException(v protocol.ResponseMetadata) error {
28244	return &ConflictingResourceUpdateException{
28245		RespMetadata: v,
28246	}
28247}
28248
28249// Code returns the exception type name.
28250func (s *ConflictingResourceUpdateException) Code() string {
28251	return "ConflictingResourceUpdateException"
28252}
28253
28254// Message returns the exception's message.
28255func (s *ConflictingResourceUpdateException) Message() string {
28256	if s.Message_ != nil {
28257		return *s.Message_
28258	}
28259	return ""
28260}
28261
28262// OrigErr always returns nil, satisfies awserr.Error interface.
28263func (s *ConflictingResourceUpdateException) OrigErr() error {
28264	return nil
28265}
28266
28267func (s *ConflictingResourceUpdateException) Error() string {
28268	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
28269}
28270
28271// Status code returns the HTTP status code for the request's response error.
28272func (s *ConflictingResourceUpdateException) StatusCode() int {
28273	return s.RespMetadata.StatusCode
28274}
28275
28276// RequestID returns the service's response RequestID for request.
28277func (s *ConflictingResourceUpdateException) RequestID() string {
28278	return s.RespMetadata.RequestID
28279}
28280
28281type CreateAuditSuppressionInput struct {
28282	_ struct{} `type:"structure"`
28283
28284	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
28285	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
28286	// to select which checks are enabled.)
28287	//
28288	// CheckName is a required field
28289	CheckName *string `locationName:"checkName" type:"string" required:"true"`
28290
28291	// The epoch timestamp in seconds at which this suppression expires.
28292	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
28293
28294	// The description of the audit suppression.
28295	Description *string `locationName:"description" type:"string"`
28296
28297	// The epoch timestamp in seconds at which this suppression expires.
28298	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
28299
28300	// Information that identifies the noncompliant resource.
28301	//
28302	// ResourceIdentifier is a required field
28303	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
28304
28305	// Indicates whether a suppression should exist indefinitely or not.
28306	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
28307}
28308
28309// String returns the string representation
28310func (s CreateAuditSuppressionInput) String() string {
28311	return awsutil.Prettify(s)
28312}
28313
28314// GoString returns the string representation
28315func (s CreateAuditSuppressionInput) GoString() string {
28316	return s.String()
28317}
28318
28319// Validate inspects the fields of the type to determine if they are valid.
28320func (s *CreateAuditSuppressionInput) Validate() error {
28321	invalidParams := request.ErrInvalidParams{Context: "CreateAuditSuppressionInput"}
28322	if s.CheckName == nil {
28323		invalidParams.Add(request.NewErrParamRequired("CheckName"))
28324	}
28325	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
28326		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
28327	}
28328	if s.ResourceIdentifier == nil {
28329		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
28330	}
28331	if s.ResourceIdentifier != nil {
28332		if err := s.ResourceIdentifier.Validate(); err != nil {
28333			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
28334		}
28335	}
28336
28337	if invalidParams.Len() > 0 {
28338		return invalidParams
28339	}
28340	return nil
28341}
28342
28343// SetCheckName sets the CheckName field's value.
28344func (s *CreateAuditSuppressionInput) SetCheckName(v string) *CreateAuditSuppressionInput {
28345	s.CheckName = &v
28346	return s
28347}
28348
28349// SetClientRequestToken sets the ClientRequestToken field's value.
28350func (s *CreateAuditSuppressionInput) SetClientRequestToken(v string) *CreateAuditSuppressionInput {
28351	s.ClientRequestToken = &v
28352	return s
28353}
28354
28355// SetDescription sets the Description field's value.
28356func (s *CreateAuditSuppressionInput) SetDescription(v string) *CreateAuditSuppressionInput {
28357	s.Description = &v
28358	return s
28359}
28360
28361// SetExpirationDate sets the ExpirationDate field's value.
28362func (s *CreateAuditSuppressionInput) SetExpirationDate(v time.Time) *CreateAuditSuppressionInput {
28363	s.ExpirationDate = &v
28364	return s
28365}
28366
28367// SetResourceIdentifier sets the ResourceIdentifier field's value.
28368func (s *CreateAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *CreateAuditSuppressionInput {
28369	s.ResourceIdentifier = v
28370	return s
28371}
28372
28373// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
28374func (s *CreateAuditSuppressionInput) SetSuppressIndefinitely(v bool) *CreateAuditSuppressionInput {
28375	s.SuppressIndefinitely = &v
28376	return s
28377}
28378
28379type CreateAuditSuppressionOutput struct {
28380	_ struct{} `type:"structure"`
28381}
28382
28383// String returns the string representation
28384func (s CreateAuditSuppressionOutput) String() string {
28385	return awsutil.Prettify(s)
28386}
28387
28388// GoString returns the string representation
28389func (s CreateAuditSuppressionOutput) GoString() string {
28390	return s.String()
28391}
28392
28393type CreateAuthorizerInput struct {
28394	_ struct{} `type:"structure"`
28395
28396	// The ARN of the authorizer's Lambda function.
28397	//
28398	// AuthorizerFunctionArn is a required field
28399	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string" required:"true"`
28400
28401	// The authorizer name.
28402	//
28403	// AuthorizerName is a required field
28404	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
28405
28406	// Specifies whether AWS IoT validates the token signature in an authorization
28407	// request.
28408	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
28409
28410	// The status of the create authorizer request.
28411	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
28412
28413	// Metadata which can be used to manage the custom authorizer.
28414	//
28415	// For URI Request parameters use format: ...key1=value1&key2=value2...
28416	//
28417	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
28418	//
28419	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
28420	Tags []*Tag `locationName:"tags" type:"list"`
28421
28422	// The name of the token key used to extract the token from the HTTP headers.
28423	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
28424
28425	// The public keys used to verify the digital signature returned by your custom
28426	// authentication service.
28427	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
28428}
28429
28430// String returns the string representation
28431func (s CreateAuthorizerInput) String() string {
28432	return awsutil.Prettify(s)
28433}
28434
28435// GoString returns the string representation
28436func (s CreateAuthorizerInput) GoString() string {
28437	return s.String()
28438}
28439
28440// Validate inspects the fields of the type to determine if they are valid.
28441func (s *CreateAuthorizerInput) Validate() error {
28442	invalidParams := request.ErrInvalidParams{Context: "CreateAuthorizerInput"}
28443	if s.AuthorizerFunctionArn == nil {
28444		invalidParams.Add(request.NewErrParamRequired("AuthorizerFunctionArn"))
28445	}
28446	if s.AuthorizerName == nil {
28447		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
28448	}
28449	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
28450		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
28451	}
28452	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
28453		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
28454	}
28455	if s.Tags != nil {
28456		for i, v := range s.Tags {
28457			if v == nil {
28458				continue
28459			}
28460			if err := v.Validate(); err != nil {
28461				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28462			}
28463		}
28464	}
28465
28466	if invalidParams.Len() > 0 {
28467		return invalidParams
28468	}
28469	return nil
28470}
28471
28472// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
28473func (s *CreateAuthorizerInput) SetAuthorizerFunctionArn(v string) *CreateAuthorizerInput {
28474	s.AuthorizerFunctionArn = &v
28475	return s
28476}
28477
28478// SetAuthorizerName sets the AuthorizerName field's value.
28479func (s *CreateAuthorizerInput) SetAuthorizerName(v string) *CreateAuthorizerInput {
28480	s.AuthorizerName = &v
28481	return s
28482}
28483
28484// SetSigningDisabled sets the SigningDisabled field's value.
28485func (s *CreateAuthorizerInput) SetSigningDisabled(v bool) *CreateAuthorizerInput {
28486	s.SigningDisabled = &v
28487	return s
28488}
28489
28490// SetStatus sets the Status field's value.
28491func (s *CreateAuthorizerInput) SetStatus(v string) *CreateAuthorizerInput {
28492	s.Status = &v
28493	return s
28494}
28495
28496// SetTags sets the Tags field's value.
28497func (s *CreateAuthorizerInput) SetTags(v []*Tag) *CreateAuthorizerInput {
28498	s.Tags = v
28499	return s
28500}
28501
28502// SetTokenKeyName sets the TokenKeyName field's value.
28503func (s *CreateAuthorizerInput) SetTokenKeyName(v string) *CreateAuthorizerInput {
28504	s.TokenKeyName = &v
28505	return s
28506}
28507
28508// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
28509func (s *CreateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *CreateAuthorizerInput {
28510	s.TokenSigningPublicKeys = v
28511	return s
28512}
28513
28514type CreateAuthorizerOutput struct {
28515	_ struct{} `type:"structure"`
28516
28517	// The authorizer ARN.
28518	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
28519
28520	// The authorizer's name.
28521	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
28522}
28523
28524// String returns the string representation
28525func (s CreateAuthorizerOutput) String() string {
28526	return awsutil.Prettify(s)
28527}
28528
28529// GoString returns the string representation
28530func (s CreateAuthorizerOutput) GoString() string {
28531	return s.String()
28532}
28533
28534// SetAuthorizerArn sets the AuthorizerArn field's value.
28535func (s *CreateAuthorizerOutput) SetAuthorizerArn(v string) *CreateAuthorizerOutput {
28536	s.AuthorizerArn = &v
28537	return s
28538}
28539
28540// SetAuthorizerName sets the AuthorizerName field's value.
28541func (s *CreateAuthorizerOutput) SetAuthorizerName(v string) *CreateAuthorizerOutput {
28542	s.AuthorizerName = &v
28543	return s
28544}
28545
28546type CreateBillingGroupInput struct {
28547	_ struct{} `type:"structure"`
28548
28549	// The name you wish to give to the billing group.
28550	//
28551	// BillingGroupName is a required field
28552	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
28553
28554	// The properties of the billing group.
28555	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
28556
28557	// Metadata which can be used to manage the billing group.
28558	Tags []*Tag `locationName:"tags" type:"list"`
28559}
28560
28561// String returns the string representation
28562func (s CreateBillingGroupInput) String() string {
28563	return awsutil.Prettify(s)
28564}
28565
28566// GoString returns the string representation
28567func (s CreateBillingGroupInput) GoString() string {
28568	return s.String()
28569}
28570
28571// Validate inspects the fields of the type to determine if they are valid.
28572func (s *CreateBillingGroupInput) Validate() error {
28573	invalidParams := request.ErrInvalidParams{Context: "CreateBillingGroupInput"}
28574	if s.BillingGroupName == nil {
28575		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
28576	}
28577	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
28578		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
28579	}
28580	if s.Tags != nil {
28581		for i, v := range s.Tags {
28582			if v == nil {
28583				continue
28584			}
28585			if err := v.Validate(); err != nil {
28586				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28587			}
28588		}
28589	}
28590
28591	if invalidParams.Len() > 0 {
28592		return invalidParams
28593	}
28594	return nil
28595}
28596
28597// SetBillingGroupName sets the BillingGroupName field's value.
28598func (s *CreateBillingGroupInput) SetBillingGroupName(v string) *CreateBillingGroupInput {
28599	s.BillingGroupName = &v
28600	return s
28601}
28602
28603// SetBillingGroupProperties sets the BillingGroupProperties field's value.
28604func (s *CreateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *CreateBillingGroupInput {
28605	s.BillingGroupProperties = v
28606	return s
28607}
28608
28609// SetTags sets the Tags field's value.
28610func (s *CreateBillingGroupInput) SetTags(v []*Tag) *CreateBillingGroupInput {
28611	s.Tags = v
28612	return s
28613}
28614
28615type CreateBillingGroupOutput struct {
28616	_ struct{} `type:"structure"`
28617
28618	// The ARN of the billing group.
28619	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
28620
28621	// The ID of the billing group.
28622	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
28623
28624	// The name you gave to the billing group.
28625	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
28626}
28627
28628// String returns the string representation
28629func (s CreateBillingGroupOutput) String() string {
28630	return awsutil.Prettify(s)
28631}
28632
28633// GoString returns the string representation
28634func (s CreateBillingGroupOutput) GoString() string {
28635	return s.String()
28636}
28637
28638// SetBillingGroupArn sets the BillingGroupArn field's value.
28639func (s *CreateBillingGroupOutput) SetBillingGroupArn(v string) *CreateBillingGroupOutput {
28640	s.BillingGroupArn = &v
28641	return s
28642}
28643
28644// SetBillingGroupId sets the BillingGroupId field's value.
28645func (s *CreateBillingGroupOutput) SetBillingGroupId(v string) *CreateBillingGroupOutput {
28646	s.BillingGroupId = &v
28647	return s
28648}
28649
28650// SetBillingGroupName sets the BillingGroupName field's value.
28651func (s *CreateBillingGroupOutput) SetBillingGroupName(v string) *CreateBillingGroupOutput {
28652	s.BillingGroupName = &v
28653	return s
28654}
28655
28656// The input for the CreateCertificateFromCsr operation.
28657type CreateCertificateFromCsrInput struct {
28658	_ struct{} `type:"structure"`
28659
28660	// The certificate signing request (CSR).
28661	//
28662	// CertificateSigningRequest is a required field
28663	CertificateSigningRequest *string `locationName:"certificateSigningRequest" min:"1" type:"string" required:"true"`
28664
28665	// Specifies whether the certificate is active.
28666	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
28667}
28668
28669// String returns the string representation
28670func (s CreateCertificateFromCsrInput) String() string {
28671	return awsutil.Prettify(s)
28672}
28673
28674// GoString returns the string representation
28675func (s CreateCertificateFromCsrInput) GoString() string {
28676	return s.String()
28677}
28678
28679// Validate inspects the fields of the type to determine if they are valid.
28680func (s *CreateCertificateFromCsrInput) Validate() error {
28681	invalidParams := request.ErrInvalidParams{Context: "CreateCertificateFromCsrInput"}
28682	if s.CertificateSigningRequest == nil {
28683		invalidParams.Add(request.NewErrParamRequired("CertificateSigningRequest"))
28684	}
28685	if s.CertificateSigningRequest != nil && len(*s.CertificateSigningRequest) < 1 {
28686		invalidParams.Add(request.NewErrParamMinLen("CertificateSigningRequest", 1))
28687	}
28688
28689	if invalidParams.Len() > 0 {
28690		return invalidParams
28691	}
28692	return nil
28693}
28694
28695// SetCertificateSigningRequest sets the CertificateSigningRequest field's value.
28696func (s *CreateCertificateFromCsrInput) SetCertificateSigningRequest(v string) *CreateCertificateFromCsrInput {
28697	s.CertificateSigningRequest = &v
28698	return s
28699}
28700
28701// SetSetAsActive sets the SetAsActive field's value.
28702func (s *CreateCertificateFromCsrInput) SetSetAsActive(v bool) *CreateCertificateFromCsrInput {
28703	s.SetAsActive = &v
28704	return s
28705}
28706
28707// The output from the CreateCertificateFromCsr operation.
28708type CreateCertificateFromCsrOutput struct {
28709	_ struct{} `type:"structure"`
28710
28711	// The Amazon Resource Name (ARN) of the certificate. You can use the ARN as
28712	// a principal for policy operations.
28713	CertificateArn *string `locationName:"certificateArn" type:"string"`
28714
28715	// The ID of the certificate. Certificate management operations only take a
28716	// certificateId.
28717	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
28718
28719	// The certificate data, in PEM format.
28720	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
28721}
28722
28723// String returns the string representation
28724func (s CreateCertificateFromCsrOutput) String() string {
28725	return awsutil.Prettify(s)
28726}
28727
28728// GoString returns the string representation
28729func (s CreateCertificateFromCsrOutput) GoString() string {
28730	return s.String()
28731}
28732
28733// SetCertificateArn sets the CertificateArn field's value.
28734func (s *CreateCertificateFromCsrOutput) SetCertificateArn(v string) *CreateCertificateFromCsrOutput {
28735	s.CertificateArn = &v
28736	return s
28737}
28738
28739// SetCertificateId sets the CertificateId field's value.
28740func (s *CreateCertificateFromCsrOutput) SetCertificateId(v string) *CreateCertificateFromCsrOutput {
28741	s.CertificateId = &v
28742	return s
28743}
28744
28745// SetCertificatePem sets the CertificatePem field's value.
28746func (s *CreateCertificateFromCsrOutput) SetCertificatePem(v string) *CreateCertificateFromCsrOutput {
28747	s.CertificatePem = &v
28748	return s
28749}
28750
28751type CreateCustomMetricInput struct {
28752	_ struct{} `type:"structure"`
28753
28754	// Each custom metric must have a unique client request token. If you try to
28755	// create a new custom metric that already exists with a different token, an
28756	// exception occurs. If you omit this value, AWS SDKs will automatically generate
28757	// a unique client request.
28758	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
28759
28760	// Field represents a friendly name in the console for the custom metric; it
28761	// doesn't have to be unique. Don't use this name as the metric identifier in
28762	// the device metric report. Can be updated once defined.
28763	DisplayName *string `locationName:"displayName" type:"string"`
28764
28765	// The name of the custom metric. This will be used in the metric report submitted
28766	// from the device/thing. Shouldn't begin with aws:. Cannot be updated once
28767	// defined.
28768	//
28769	// MetricName is a required field
28770	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
28771
28772	// The type of the custom metric. Types include string-list, ip-address-list,
28773	// number-list, and number.
28774	//
28775	// MetricType is a required field
28776	MetricType *string `locationName:"metricType" type:"string" required:"true" enum:"CustomMetricType"`
28777
28778	// Metadata that can be used to manage the custom metric.
28779	Tags []*Tag `locationName:"tags" type:"list"`
28780}
28781
28782// String returns the string representation
28783func (s CreateCustomMetricInput) String() string {
28784	return awsutil.Prettify(s)
28785}
28786
28787// GoString returns the string representation
28788func (s CreateCustomMetricInput) GoString() string {
28789	return s.String()
28790}
28791
28792// Validate inspects the fields of the type to determine if they are valid.
28793func (s *CreateCustomMetricInput) Validate() error {
28794	invalidParams := request.ErrInvalidParams{Context: "CreateCustomMetricInput"}
28795	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
28796		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
28797	}
28798	if s.MetricName == nil {
28799		invalidParams.Add(request.NewErrParamRequired("MetricName"))
28800	}
28801	if s.MetricName != nil && len(*s.MetricName) < 1 {
28802		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
28803	}
28804	if s.MetricType == nil {
28805		invalidParams.Add(request.NewErrParamRequired("MetricType"))
28806	}
28807	if s.Tags != nil {
28808		for i, v := range s.Tags {
28809			if v == nil {
28810				continue
28811			}
28812			if err := v.Validate(); err != nil {
28813				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28814			}
28815		}
28816	}
28817
28818	if invalidParams.Len() > 0 {
28819		return invalidParams
28820	}
28821	return nil
28822}
28823
28824// SetClientRequestToken sets the ClientRequestToken field's value.
28825func (s *CreateCustomMetricInput) SetClientRequestToken(v string) *CreateCustomMetricInput {
28826	s.ClientRequestToken = &v
28827	return s
28828}
28829
28830// SetDisplayName sets the DisplayName field's value.
28831func (s *CreateCustomMetricInput) SetDisplayName(v string) *CreateCustomMetricInput {
28832	s.DisplayName = &v
28833	return s
28834}
28835
28836// SetMetricName sets the MetricName field's value.
28837func (s *CreateCustomMetricInput) SetMetricName(v string) *CreateCustomMetricInput {
28838	s.MetricName = &v
28839	return s
28840}
28841
28842// SetMetricType sets the MetricType field's value.
28843func (s *CreateCustomMetricInput) SetMetricType(v string) *CreateCustomMetricInput {
28844	s.MetricType = &v
28845	return s
28846}
28847
28848// SetTags sets the Tags field's value.
28849func (s *CreateCustomMetricInput) SetTags(v []*Tag) *CreateCustomMetricInput {
28850	s.Tags = v
28851	return s
28852}
28853
28854type CreateCustomMetricOutput struct {
28855	_ struct{} `type:"structure"`
28856
28857	// The Amazon Resource Number (ARN) of the custom metric, e.g. arn:aws-partition:iot:region:accountId:custommetric/metricName
28858	MetricArn *string `locationName:"metricArn" type:"string"`
28859
28860	// The name of the custom metric to be used in the metric report.
28861	MetricName *string `locationName:"metricName" min:"1" type:"string"`
28862}
28863
28864// String returns the string representation
28865func (s CreateCustomMetricOutput) String() string {
28866	return awsutil.Prettify(s)
28867}
28868
28869// GoString returns the string representation
28870func (s CreateCustomMetricOutput) GoString() string {
28871	return s.String()
28872}
28873
28874// SetMetricArn sets the MetricArn field's value.
28875func (s *CreateCustomMetricOutput) SetMetricArn(v string) *CreateCustomMetricOutput {
28876	s.MetricArn = &v
28877	return s
28878}
28879
28880// SetMetricName sets the MetricName field's value.
28881func (s *CreateCustomMetricOutput) SetMetricName(v string) *CreateCustomMetricOutput {
28882	s.MetricName = &v
28883	return s
28884}
28885
28886type CreateDimensionInput struct {
28887	_ struct{} `type:"structure"`
28888
28889	// Each dimension must have a unique client request token. If you try to create
28890	// a new dimension with the same token as a dimension that already exists, an
28891	// exception occurs. If you omit this value, AWS SDKs will automatically generate
28892	// a unique client request.
28893	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
28894
28895	// A unique identifier for the dimension. Choose something that describes the
28896	// type and value to make it easy to remember what it does.
28897	//
28898	// Name is a required field
28899	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
28900
28901	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
28902	// dimensions, this is a pattern used to match the MQTT topic (for example,
28903	// "admin/#").
28904	//
28905	// StringValues is a required field
28906	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
28907
28908	// Metadata that can be used to manage the dimension.
28909	Tags []*Tag `locationName:"tags" type:"list"`
28910
28911	// Specifies the type of dimension. Supported types: TOPIC_FILTER.
28912	//
28913	// Type is a required field
28914	Type *string `locationName:"type" type:"string" required:"true" enum:"DimensionType"`
28915}
28916
28917// String returns the string representation
28918func (s CreateDimensionInput) String() string {
28919	return awsutil.Prettify(s)
28920}
28921
28922// GoString returns the string representation
28923func (s CreateDimensionInput) GoString() string {
28924	return s.String()
28925}
28926
28927// Validate inspects the fields of the type to determine if they are valid.
28928func (s *CreateDimensionInput) Validate() error {
28929	invalidParams := request.ErrInvalidParams{Context: "CreateDimensionInput"}
28930	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
28931		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
28932	}
28933	if s.Name == nil {
28934		invalidParams.Add(request.NewErrParamRequired("Name"))
28935	}
28936	if s.Name != nil && len(*s.Name) < 1 {
28937		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
28938	}
28939	if s.StringValues == nil {
28940		invalidParams.Add(request.NewErrParamRequired("StringValues"))
28941	}
28942	if s.StringValues != nil && len(s.StringValues) < 1 {
28943		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
28944	}
28945	if s.Type == nil {
28946		invalidParams.Add(request.NewErrParamRequired("Type"))
28947	}
28948	if s.Tags != nil {
28949		for i, v := range s.Tags {
28950			if v == nil {
28951				continue
28952			}
28953			if err := v.Validate(); err != nil {
28954				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28955			}
28956		}
28957	}
28958
28959	if invalidParams.Len() > 0 {
28960		return invalidParams
28961	}
28962	return nil
28963}
28964
28965// SetClientRequestToken sets the ClientRequestToken field's value.
28966func (s *CreateDimensionInput) SetClientRequestToken(v string) *CreateDimensionInput {
28967	s.ClientRequestToken = &v
28968	return s
28969}
28970
28971// SetName sets the Name field's value.
28972func (s *CreateDimensionInput) SetName(v string) *CreateDimensionInput {
28973	s.Name = &v
28974	return s
28975}
28976
28977// SetStringValues sets the StringValues field's value.
28978func (s *CreateDimensionInput) SetStringValues(v []*string) *CreateDimensionInput {
28979	s.StringValues = v
28980	return s
28981}
28982
28983// SetTags sets the Tags field's value.
28984func (s *CreateDimensionInput) SetTags(v []*Tag) *CreateDimensionInput {
28985	s.Tags = v
28986	return s
28987}
28988
28989// SetType sets the Type field's value.
28990func (s *CreateDimensionInput) SetType(v string) *CreateDimensionInput {
28991	s.Type = &v
28992	return s
28993}
28994
28995type CreateDimensionOutput struct {
28996	_ struct{} `type:"structure"`
28997
28998	// The Amazon Resource Name (ARN) of the created dimension.
28999	Arn *string `locationName:"arn" type:"string"`
29000
29001	// A unique identifier for the dimension.
29002	Name *string `locationName:"name" min:"1" type:"string"`
29003}
29004
29005// String returns the string representation
29006func (s CreateDimensionOutput) String() string {
29007	return awsutil.Prettify(s)
29008}
29009
29010// GoString returns the string representation
29011func (s CreateDimensionOutput) GoString() string {
29012	return s.String()
29013}
29014
29015// SetArn sets the Arn field's value.
29016func (s *CreateDimensionOutput) SetArn(v string) *CreateDimensionOutput {
29017	s.Arn = &v
29018	return s
29019}
29020
29021// SetName sets the Name field's value.
29022func (s *CreateDimensionOutput) SetName(v string) *CreateDimensionOutput {
29023	s.Name = &v
29024	return s
29025}
29026
29027type CreateDomainConfigurationInput struct {
29028	_ struct{} `type:"structure"`
29029
29030	// An object that specifies the authorization service for a domain.
29031	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
29032
29033	// The name of the domain configuration. This value must be unique to a region.
29034	//
29035	// DomainConfigurationName is a required field
29036	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
29037
29038	// The name of the domain.
29039	DomainName *string `locationName:"domainName" min:"1" type:"string"`
29040
29041	// The ARNs of the certificates that AWS IoT passes to the device during the
29042	// TLS handshake. Currently you can specify only one certificate ARN. This value
29043	// is not required for AWS-managed domains.
29044	ServerCertificateArns []*string `locationName:"serverCertificateArns" type:"list"`
29045
29046	// The type of service delivered by the endpoint.
29047	//
29048	// AWS IoT Core currently supports only the DATA service type.
29049	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
29050
29051	// Metadata which can be used to manage the domain configuration.
29052	//
29053	// For URI Request parameters use format: ...key1=value1&key2=value2...
29054	//
29055	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
29056	//
29057	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
29058	Tags []*Tag `locationName:"tags" type:"list"`
29059
29060	// The certificate used to validate the server certificate and prove domain
29061	// name ownership. This certificate must be signed by a public certificate authority.
29062	// This value is not required for AWS-managed domains.
29063	ValidationCertificateArn *string `locationName:"validationCertificateArn" min:"1" type:"string"`
29064}
29065
29066// String returns the string representation
29067func (s CreateDomainConfigurationInput) String() string {
29068	return awsutil.Prettify(s)
29069}
29070
29071// GoString returns the string representation
29072func (s CreateDomainConfigurationInput) GoString() string {
29073	return s.String()
29074}
29075
29076// Validate inspects the fields of the type to determine if they are valid.
29077func (s *CreateDomainConfigurationInput) Validate() error {
29078	invalidParams := request.ErrInvalidParams{Context: "CreateDomainConfigurationInput"}
29079	if s.DomainConfigurationName == nil {
29080		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
29081	}
29082	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
29083		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
29084	}
29085	if s.DomainName != nil && len(*s.DomainName) < 1 {
29086		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
29087	}
29088	if s.ValidationCertificateArn != nil && len(*s.ValidationCertificateArn) < 1 {
29089		invalidParams.Add(request.NewErrParamMinLen("ValidationCertificateArn", 1))
29090	}
29091	if s.AuthorizerConfig != nil {
29092		if err := s.AuthorizerConfig.Validate(); err != nil {
29093			invalidParams.AddNested("AuthorizerConfig", 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// SetAuthorizerConfig sets the AuthorizerConfig field's value.
29114func (s *CreateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *CreateDomainConfigurationInput {
29115	s.AuthorizerConfig = v
29116	return s
29117}
29118
29119// SetDomainConfigurationName sets the DomainConfigurationName field's value.
29120func (s *CreateDomainConfigurationInput) SetDomainConfigurationName(v string) *CreateDomainConfigurationInput {
29121	s.DomainConfigurationName = &v
29122	return s
29123}
29124
29125// SetDomainName sets the DomainName field's value.
29126func (s *CreateDomainConfigurationInput) SetDomainName(v string) *CreateDomainConfigurationInput {
29127	s.DomainName = &v
29128	return s
29129}
29130
29131// SetServerCertificateArns sets the ServerCertificateArns field's value.
29132func (s *CreateDomainConfigurationInput) SetServerCertificateArns(v []*string) *CreateDomainConfigurationInput {
29133	s.ServerCertificateArns = v
29134	return s
29135}
29136
29137// SetServiceType sets the ServiceType field's value.
29138func (s *CreateDomainConfigurationInput) SetServiceType(v string) *CreateDomainConfigurationInput {
29139	s.ServiceType = &v
29140	return s
29141}
29142
29143// SetTags sets the Tags field's value.
29144func (s *CreateDomainConfigurationInput) SetTags(v []*Tag) *CreateDomainConfigurationInput {
29145	s.Tags = v
29146	return s
29147}
29148
29149// SetValidationCertificateArn sets the ValidationCertificateArn field's value.
29150func (s *CreateDomainConfigurationInput) SetValidationCertificateArn(v string) *CreateDomainConfigurationInput {
29151	s.ValidationCertificateArn = &v
29152	return s
29153}
29154
29155type CreateDomainConfigurationOutput struct {
29156	_ struct{} `type:"structure"`
29157
29158	// The ARN of the domain configuration.
29159	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
29160
29161	// The name of the domain configuration.
29162	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
29163}
29164
29165// String returns the string representation
29166func (s CreateDomainConfigurationOutput) String() string {
29167	return awsutil.Prettify(s)
29168}
29169
29170// GoString returns the string representation
29171func (s CreateDomainConfigurationOutput) GoString() string {
29172	return s.String()
29173}
29174
29175// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
29176func (s *CreateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *CreateDomainConfigurationOutput {
29177	s.DomainConfigurationArn = &v
29178	return s
29179}
29180
29181// SetDomainConfigurationName sets the DomainConfigurationName field's value.
29182func (s *CreateDomainConfigurationOutput) SetDomainConfigurationName(v string) *CreateDomainConfigurationOutput {
29183	s.DomainConfigurationName = &v
29184	return s
29185}
29186
29187type CreateDynamicThingGroupInput struct {
29188	_ struct{} `type:"structure"`
29189
29190	// The dynamic thing group index name.
29191	//
29192	// Currently one index is supported: "AWS_Things".
29193	IndexName *string `locationName:"indexName" min:"1" type:"string"`
29194
29195	// The dynamic thing group search query string.
29196	//
29197	// See Query Syntax (https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)
29198	// for information about query string syntax.
29199	//
29200	// QueryString is a required field
29201	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
29202
29203	// The dynamic thing group query version.
29204	//
29205	// Currently one query version is supported: "2017-09-30". If not specified,
29206	// the query version defaults to this value.
29207	QueryVersion *string `locationName:"queryVersion" type:"string"`
29208
29209	// Metadata which can be used to manage the dynamic thing group.
29210	Tags []*Tag `locationName:"tags" type:"list"`
29211
29212	// The dynamic thing group name to create.
29213	//
29214	// ThingGroupName is a required field
29215	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
29216
29217	// The dynamic thing group properties.
29218	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
29219}
29220
29221// String returns the string representation
29222func (s CreateDynamicThingGroupInput) String() string {
29223	return awsutil.Prettify(s)
29224}
29225
29226// GoString returns the string representation
29227func (s CreateDynamicThingGroupInput) GoString() string {
29228	return s.String()
29229}
29230
29231// Validate inspects the fields of the type to determine if they are valid.
29232func (s *CreateDynamicThingGroupInput) Validate() error {
29233	invalidParams := request.ErrInvalidParams{Context: "CreateDynamicThingGroupInput"}
29234	if s.IndexName != nil && len(*s.IndexName) < 1 {
29235		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
29236	}
29237	if s.QueryString == nil {
29238		invalidParams.Add(request.NewErrParamRequired("QueryString"))
29239	}
29240	if s.QueryString != nil && len(*s.QueryString) < 1 {
29241		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
29242	}
29243	if s.ThingGroupName == nil {
29244		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
29245	}
29246	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
29247		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
29248	}
29249	if s.Tags != nil {
29250		for i, v := range s.Tags {
29251			if v == nil {
29252				continue
29253			}
29254			if err := v.Validate(); err != nil {
29255				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
29256			}
29257		}
29258	}
29259
29260	if invalidParams.Len() > 0 {
29261		return invalidParams
29262	}
29263	return nil
29264}
29265
29266// SetIndexName sets the IndexName field's value.
29267func (s *CreateDynamicThingGroupInput) SetIndexName(v string) *CreateDynamicThingGroupInput {
29268	s.IndexName = &v
29269	return s
29270}
29271
29272// SetQueryString sets the QueryString field's value.
29273func (s *CreateDynamicThingGroupInput) SetQueryString(v string) *CreateDynamicThingGroupInput {
29274	s.QueryString = &v
29275	return s
29276}
29277
29278// SetQueryVersion sets the QueryVersion field's value.
29279func (s *CreateDynamicThingGroupInput) SetQueryVersion(v string) *CreateDynamicThingGroupInput {
29280	s.QueryVersion = &v
29281	return s
29282}
29283
29284// SetTags sets the Tags field's value.
29285func (s *CreateDynamicThingGroupInput) SetTags(v []*Tag) *CreateDynamicThingGroupInput {
29286	s.Tags = v
29287	return s
29288}
29289
29290// SetThingGroupName sets the ThingGroupName field's value.
29291func (s *CreateDynamicThingGroupInput) SetThingGroupName(v string) *CreateDynamicThingGroupInput {
29292	s.ThingGroupName = &v
29293	return s
29294}
29295
29296// SetThingGroupProperties sets the ThingGroupProperties field's value.
29297func (s *CreateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateDynamicThingGroupInput {
29298	s.ThingGroupProperties = v
29299	return s
29300}
29301
29302type CreateDynamicThingGroupOutput struct {
29303	_ struct{} `type:"structure"`
29304
29305	// The dynamic thing group index name.
29306	IndexName *string `locationName:"indexName" min:"1" type:"string"`
29307
29308	// The dynamic thing group search query string.
29309	QueryString *string `locationName:"queryString" min:"1" type:"string"`
29310
29311	// The dynamic thing group query version.
29312	QueryVersion *string `locationName:"queryVersion" type:"string"`
29313
29314	// The dynamic thing group ARN.
29315	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
29316
29317	// The dynamic thing group ID.
29318	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
29319
29320	// The dynamic thing group name.
29321	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
29322}
29323
29324// String returns the string representation
29325func (s CreateDynamicThingGroupOutput) String() string {
29326	return awsutil.Prettify(s)
29327}
29328
29329// GoString returns the string representation
29330func (s CreateDynamicThingGroupOutput) GoString() string {
29331	return s.String()
29332}
29333
29334// SetIndexName sets the IndexName field's value.
29335func (s *CreateDynamicThingGroupOutput) SetIndexName(v string) *CreateDynamicThingGroupOutput {
29336	s.IndexName = &v
29337	return s
29338}
29339
29340// SetQueryString sets the QueryString field's value.
29341func (s *CreateDynamicThingGroupOutput) SetQueryString(v string) *CreateDynamicThingGroupOutput {
29342	s.QueryString = &v
29343	return s
29344}
29345
29346// SetQueryVersion sets the QueryVersion field's value.
29347func (s *CreateDynamicThingGroupOutput) SetQueryVersion(v string) *CreateDynamicThingGroupOutput {
29348	s.QueryVersion = &v
29349	return s
29350}
29351
29352// SetThingGroupArn sets the ThingGroupArn field's value.
29353func (s *CreateDynamicThingGroupOutput) SetThingGroupArn(v string) *CreateDynamicThingGroupOutput {
29354	s.ThingGroupArn = &v
29355	return s
29356}
29357
29358// SetThingGroupId sets the ThingGroupId field's value.
29359func (s *CreateDynamicThingGroupOutput) SetThingGroupId(v string) *CreateDynamicThingGroupOutput {
29360	s.ThingGroupId = &v
29361	return s
29362}
29363
29364// SetThingGroupName sets the ThingGroupName field's value.
29365func (s *CreateDynamicThingGroupOutput) SetThingGroupName(v string) *CreateDynamicThingGroupOutput {
29366	s.ThingGroupName = &v
29367	return s
29368}
29369
29370type CreateJobInput struct {
29371	_ struct{} `type:"structure"`
29372
29373	// Allows you to create criteria to abort a job.
29374	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
29375
29376	// A short text description of the job.
29377	Description *string `locationName:"description" type:"string"`
29378
29379	// The job document. Required if you don't specify a value for documentSource.
29380	Document *string `locationName:"document" type:"string"`
29381
29382	// An S3 link to the job document. Required if you don't specify a value for
29383	// document.
29384	//
29385	// If the job document resides in an S3 bucket, you must use a placeholder link
29386	// when specifying the document.
29387	//
29388	// The placeholder link is of the following form:
29389	//
29390	// ${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
29391	//
29392	// where bucket is your bucket name and key is the object in the bucket to which
29393	// you are linking.
29394	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
29395
29396	// Allows you to create a staged rollout of the job.
29397	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
29398
29399	// A job identifier which must be unique for your AWS account. We recommend
29400	// using a UUID. Alpha-numeric characters, "-" and "_" are valid for use here.
29401	//
29402	// JobId is a required field
29403	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
29404
29405	// The ARN of the job template used to create the job.
29406	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
29407
29408	// The namespace used to indicate that a job is a customer-managed job.
29409	//
29410	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
29411	// to MQTT topics that contain the value in the following format.
29412	//
29413	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
29414	//
29415	// The namespaceId feature is in public preview.
29416	NamespaceId *string `locationName:"namespaceId" min:"1" type:"string"`
29417
29418	// Configuration information for pre-signed S3 URLs.
29419	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
29420
29421	// Metadata which can be used to manage the job.
29422	Tags []*Tag `locationName:"tags" type:"list"`
29423
29424	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
29425	// after all those things specified as targets have completed the job (SNAPSHOT).
29426	// If continuous, the job may also be run on a thing when a change is detected
29427	// in a target. For example, a job will run on a thing when the thing is added
29428	// to a target group, even after the job was completed by all things originally
29429	// in the group.
29430	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
29431
29432	// A list of things and thing groups to which the job should be sent.
29433	//
29434	// Targets is a required field
29435	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
29436
29437	// Specifies the amount of time each device has to finish its execution of the
29438	// job. The timer is started when the job execution status is set to IN_PROGRESS.
29439	// If the job execution status is not set to another terminal state before the
29440	// time expires, it will be automatically set to TIMED_OUT.
29441	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
29442}
29443
29444// String returns the string representation
29445func (s CreateJobInput) String() string {
29446	return awsutil.Prettify(s)
29447}
29448
29449// GoString returns the string representation
29450func (s CreateJobInput) GoString() string {
29451	return s.String()
29452}
29453
29454// Validate inspects the fields of the type to determine if they are valid.
29455func (s *CreateJobInput) Validate() error {
29456	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
29457	if s.DocumentSource != nil && len(*s.DocumentSource) < 1 {
29458		invalidParams.Add(request.NewErrParamMinLen("DocumentSource", 1))
29459	}
29460	if s.JobId == nil {
29461		invalidParams.Add(request.NewErrParamRequired("JobId"))
29462	}
29463	if s.JobId != nil && len(*s.JobId) < 1 {
29464		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
29465	}
29466	if s.JobTemplateArn != nil && len(*s.JobTemplateArn) < 1 {
29467		invalidParams.Add(request.NewErrParamMinLen("JobTemplateArn", 1))
29468	}
29469	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
29470		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
29471	}
29472	if s.Targets == nil {
29473		invalidParams.Add(request.NewErrParamRequired("Targets"))
29474	}
29475	if s.Targets != nil && len(s.Targets) < 1 {
29476		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
29477	}
29478	if s.AbortConfig != nil {
29479		if err := s.AbortConfig.Validate(); err != nil {
29480			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
29481		}
29482	}
29483	if s.JobExecutionsRolloutConfig != nil {
29484		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
29485			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
29486		}
29487	}
29488	if s.PresignedUrlConfig != nil {
29489		if err := s.PresignedUrlConfig.Validate(); err != nil {
29490			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
29491		}
29492	}
29493	if s.Tags != nil {
29494		for i, v := range s.Tags {
29495			if v == nil {
29496				continue
29497			}
29498			if err := v.Validate(); err != nil {
29499				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
29500			}
29501		}
29502	}
29503
29504	if invalidParams.Len() > 0 {
29505		return invalidParams
29506	}
29507	return nil
29508}
29509
29510// SetAbortConfig sets the AbortConfig field's value.
29511func (s *CreateJobInput) SetAbortConfig(v *AbortConfig) *CreateJobInput {
29512	s.AbortConfig = v
29513	return s
29514}
29515
29516// SetDescription sets the Description field's value.
29517func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
29518	s.Description = &v
29519	return s
29520}
29521
29522// SetDocument sets the Document field's value.
29523func (s *CreateJobInput) SetDocument(v string) *CreateJobInput {
29524	s.Document = &v
29525	return s
29526}
29527
29528// SetDocumentSource sets the DocumentSource field's value.
29529func (s *CreateJobInput) SetDocumentSource(v string) *CreateJobInput {
29530	s.DocumentSource = &v
29531	return s
29532}
29533
29534// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
29535func (s *CreateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *CreateJobInput {
29536	s.JobExecutionsRolloutConfig = v
29537	return s
29538}
29539
29540// SetJobId sets the JobId field's value.
29541func (s *CreateJobInput) SetJobId(v string) *CreateJobInput {
29542	s.JobId = &v
29543	return s
29544}
29545
29546// SetJobTemplateArn sets the JobTemplateArn field's value.
29547func (s *CreateJobInput) SetJobTemplateArn(v string) *CreateJobInput {
29548	s.JobTemplateArn = &v
29549	return s
29550}
29551
29552// SetNamespaceId sets the NamespaceId field's value.
29553func (s *CreateJobInput) SetNamespaceId(v string) *CreateJobInput {
29554	s.NamespaceId = &v
29555	return s
29556}
29557
29558// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
29559func (s *CreateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *CreateJobInput {
29560	s.PresignedUrlConfig = v
29561	return s
29562}
29563
29564// SetTags sets the Tags field's value.
29565func (s *CreateJobInput) SetTags(v []*Tag) *CreateJobInput {
29566	s.Tags = v
29567	return s
29568}
29569
29570// SetTargetSelection sets the TargetSelection field's value.
29571func (s *CreateJobInput) SetTargetSelection(v string) *CreateJobInput {
29572	s.TargetSelection = &v
29573	return s
29574}
29575
29576// SetTargets sets the Targets field's value.
29577func (s *CreateJobInput) SetTargets(v []*string) *CreateJobInput {
29578	s.Targets = v
29579	return s
29580}
29581
29582// SetTimeoutConfig sets the TimeoutConfig field's value.
29583func (s *CreateJobInput) SetTimeoutConfig(v *TimeoutConfig) *CreateJobInput {
29584	s.TimeoutConfig = v
29585	return s
29586}
29587
29588type CreateJobOutput struct {
29589	_ struct{} `type:"structure"`
29590
29591	// The job description.
29592	Description *string `locationName:"description" type:"string"`
29593
29594	// The job ARN.
29595	JobArn *string `locationName:"jobArn" type:"string"`
29596
29597	// The unique identifier you assigned to this job.
29598	JobId *string `locationName:"jobId" min:"1" type:"string"`
29599}
29600
29601// String returns the string representation
29602func (s CreateJobOutput) String() string {
29603	return awsutil.Prettify(s)
29604}
29605
29606// GoString returns the string representation
29607func (s CreateJobOutput) GoString() string {
29608	return s.String()
29609}
29610
29611// SetDescription sets the Description field's value.
29612func (s *CreateJobOutput) SetDescription(v string) *CreateJobOutput {
29613	s.Description = &v
29614	return s
29615}
29616
29617// SetJobArn sets the JobArn field's value.
29618func (s *CreateJobOutput) SetJobArn(v string) *CreateJobOutput {
29619	s.JobArn = &v
29620	return s
29621}
29622
29623// SetJobId sets the JobId field's value.
29624func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
29625	s.JobId = &v
29626	return s
29627}
29628
29629type CreateJobTemplateInput struct {
29630	_ struct{} `type:"structure"`
29631
29632	// The criteria that determine when and how a job abort takes place.
29633	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
29634
29635	// A description of the job document.
29636	//
29637	// Description is a required field
29638	Description *string `locationName:"description" type:"string" required:"true"`
29639
29640	// The job document. Required if you don't specify a value for documentSource.
29641	Document *string `locationName:"document" type:"string"`
29642
29643	// An S3 link to the job document to use in the template. Required if you don't
29644	// specify a value for document.
29645	//
29646	// If the job document resides in an S3 bucket, you must use a placeholder link
29647	// when specifying the document.
29648	//
29649	// The placeholder link is of the following form:
29650	//
29651	// ${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
29652	//
29653	// where bucket is your bucket name and key is the object in the bucket to which
29654	// you are linking.
29655	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
29656
29657	// The ARN of the job to use as the basis for the job template.
29658	JobArn *string `locationName:"jobArn" type:"string"`
29659
29660	// Allows you to create a staged rollout of a job.
29661	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
29662
29663	// A unique identifier for the job template. We recommend using a UUID. Alpha-numeric
29664	// characters, "-", and "_" are valid for use here.
29665	//
29666	// JobTemplateId is a required field
29667	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
29668
29669	// Configuration for pre-signed S3 URLs.
29670	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
29671
29672	// Metadata that can be used to manage the job template.
29673	Tags []*Tag `locationName:"tags" type:"list"`
29674
29675	// Specifies the amount of time each device has to finish its execution of the
29676	// job. A timer is started when the job execution status is set to IN_PROGRESS.
29677	// If the job execution status is not set to another terminal state before the
29678	// timer expires, it will be automatically set to TIMED_OUT.
29679	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
29680}
29681
29682// String returns the string representation
29683func (s CreateJobTemplateInput) String() string {
29684	return awsutil.Prettify(s)
29685}
29686
29687// GoString returns the string representation
29688func (s CreateJobTemplateInput) GoString() string {
29689	return s.String()
29690}
29691
29692// Validate inspects the fields of the type to determine if they are valid.
29693func (s *CreateJobTemplateInput) Validate() error {
29694	invalidParams := request.ErrInvalidParams{Context: "CreateJobTemplateInput"}
29695	if s.Description == nil {
29696		invalidParams.Add(request.NewErrParamRequired("Description"))
29697	}
29698	if s.DocumentSource != nil && len(*s.DocumentSource) < 1 {
29699		invalidParams.Add(request.NewErrParamMinLen("DocumentSource", 1))
29700	}
29701	if s.JobTemplateId == nil {
29702		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
29703	}
29704	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
29705		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
29706	}
29707	if s.AbortConfig != nil {
29708		if err := s.AbortConfig.Validate(); err != nil {
29709			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
29710		}
29711	}
29712	if s.JobExecutionsRolloutConfig != nil {
29713		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
29714			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
29715		}
29716	}
29717	if s.PresignedUrlConfig != nil {
29718		if err := s.PresignedUrlConfig.Validate(); err != nil {
29719			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
29720		}
29721	}
29722	if s.Tags != nil {
29723		for i, v := range s.Tags {
29724			if v == nil {
29725				continue
29726			}
29727			if err := v.Validate(); err != nil {
29728				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
29729			}
29730		}
29731	}
29732
29733	if invalidParams.Len() > 0 {
29734		return invalidParams
29735	}
29736	return nil
29737}
29738
29739// SetAbortConfig sets the AbortConfig field's value.
29740func (s *CreateJobTemplateInput) SetAbortConfig(v *AbortConfig) *CreateJobTemplateInput {
29741	s.AbortConfig = v
29742	return s
29743}
29744
29745// SetDescription sets the Description field's value.
29746func (s *CreateJobTemplateInput) SetDescription(v string) *CreateJobTemplateInput {
29747	s.Description = &v
29748	return s
29749}
29750
29751// SetDocument sets the Document field's value.
29752func (s *CreateJobTemplateInput) SetDocument(v string) *CreateJobTemplateInput {
29753	s.Document = &v
29754	return s
29755}
29756
29757// SetDocumentSource sets the DocumentSource field's value.
29758func (s *CreateJobTemplateInput) SetDocumentSource(v string) *CreateJobTemplateInput {
29759	s.DocumentSource = &v
29760	return s
29761}
29762
29763// SetJobArn sets the JobArn field's value.
29764func (s *CreateJobTemplateInput) SetJobArn(v string) *CreateJobTemplateInput {
29765	s.JobArn = &v
29766	return s
29767}
29768
29769// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
29770func (s *CreateJobTemplateInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *CreateJobTemplateInput {
29771	s.JobExecutionsRolloutConfig = v
29772	return s
29773}
29774
29775// SetJobTemplateId sets the JobTemplateId field's value.
29776func (s *CreateJobTemplateInput) SetJobTemplateId(v string) *CreateJobTemplateInput {
29777	s.JobTemplateId = &v
29778	return s
29779}
29780
29781// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
29782func (s *CreateJobTemplateInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *CreateJobTemplateInput {
29783	s.PresignedUrlConfig = v
29784	return s
29785}
29786
29787// SetTags sets the Tags field's value.
29788func (s *CreateJobTemplateInput) SetTags(v []*Tag) *CreateJobTemplateInput {
29789	s.Tags = v
29790	return s
29791}
29792
29793// SetTimeoutConfig sets the TimeoutConfig field's value.
29794func (s *CreateJobTemplateInput) SetTimeoutConfig(v *TimeoutConfig) *CreateJobTemplateInput {
29795	s.TimeoutConfig = v
29796	return s
29797}
29798
29799type CreateJobTemplateOutput struct {
29800	_ struct{} `type:"structure"`
29801
29802	// The ARN of the job template.
29803	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
29804
29805	// The unique identifier of the job template.
29806	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
29807}
29808
29809// String returns the string representation
29810func (s CreateJobTemplateOutput) String() string {
29811	return awsutil.Prettify(s)
29812}
29813
29814// GoString returns the string representation
29815func (s CreateJobTemplateOutput) GoString() string {
29816	return s.String()
29817}
29818
29819// SetJobTemplateArn sets the JobTemplateArn field's value.
29820func (s *CreateJobTemplateOutput) SetJobTemplateArn(v string) *CreateJobTemplateOutput {
29821	s.JobTemplateArn = &v
29822	return s
29823}
29824
29825// SetJobTemplateId sets the JobTemplateId field's value.
29826func (s *CreateJobTemplateOutput) SetJobTemplateId(v string) *CreateJobTemplateOutput {
29827	s.JobTemplateId = &v
29828	return s
29829}
29830
29831// The input for the CreateKeysAndCertificate operation.
29832type CreateKeysAndCertificateInput struct {
29833	_ struct{} `type:"structure"`
29834
29835	// Specifies whether the certificate is active.
29836	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
29837}
29838
29839// String returns the string representation
29840func (s CreateKeysAndCertificateInput) String() string {
29841	return awsutil.Prettify(s)
29842}
29843
29844// GoString returns the string representation
29845func (s CreateKeysAndCertificateInput) GoString() string {
29846	return s.String()
29847}
29848
29849// SetSetAsActive sets the SetAsActive field's value.
29850func (s *CreateKeysAndCertificateInput) SetSetAsActive(v bool) *CreateKeysAndCertificateInput {
29851	s.SetAsActive = &v
29852	return s
29853}
29854
29855// The output of the CreateKeysAndCertificate operation.
29856type CreateKeysAndCertificateOutput struct {
29857	_ struct{} `type:"structure"`
29858
29859	// The ARN of the certificate.
29860	CertificateArn *string `locationName:"certificateArn" type:"string"`
29861
29862	// The ID of the certificate. AWS IoT issues a default subject name for the
29863	// certificate (for example, AWS IoT Certificate).
29864	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
29865
29866	// The certificate data, in PEM format.
29867	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
29868
29869	// The generated key pair.
29870	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
29871}
29872
29873// String returns the string representation
29874func (s CreateKeysAndCertificateOutput) String() string {
29875	return awsutil.Prettify(s)
29876}
29877
29878// GoString returns the string representation
29879func (s CreateKeysAndCertificateOutput) GoString() string {
29880	return s.String()
29881}
29882
29883// SetCertificateArn sets the CertificateArn field's value.
29884func (s *CreateKeysAndCertificateOutput) SetCertificateArn(v string) *CreateKeysAndCertificateOutput {
29885	s.CertificateArn = &v
29886	return s
29887}
29888
29889// SetCertificateId sets the CertificateId field's value.
29890func (s *CreateKeysAndCertificateOutput) SetCertificateId(v string) *CreateKeysAndCertificateOutput {
29891	s.CertificateId = &v
29892	return s
29893}
29894
29895// SetCertificatePem sets the CertificatePem field's value.
29896func (s *CreateKeysAndCertificateOutput) SetCertificatePem(v string) *CreateKeysAndCertificateOutput {
29897	s.CertificatePem = &v
29898	return s
29899}
29900
29901// SetKeyPair sets the KeyPair field's value.
29902func (s *CreateKeysAndCertificateOutput) SetKeyPair(v *KeyPair) *CreateKeysAndCertificateOutput {
29903	s.KeyPair = v
29904	return s
29905}
29906
29907type CreateMitigationActionInput struct {
29908	_ struct{} `type:"structure"`
29909
29910	// A friendly name for the action. Choose a friendly name that accurately describes
29911	// the action (for example, EnableLoggingAction).
29912	//
29913	// ActionName is a required field
29914	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
29915
29916	// Defines the type of action and the parameters for that action.
29917	//
29918	// ActionParams is a required field
29919	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure" required:"true"`
29920
29921	// The ARN of the IAM role that is used to apply the mitigation action.
29922	//
29923	// RoleArn is a required field
29924	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
29925
29926	// Metadata that can be used to manage the mitigation action.
29927	Tags []*Tag `locationName:"tags" type:"list"`
29928}
29929
29930// String returns the string representation
29931func (s CreateMitigationActionInput) String() string {
29932	return awsutil.Prettify(s)
29933}
29934
29935// GoString returns the string representation
29936func (s CreateMitigationActionInput) GoString() string {
29937	return s.String()
29938}
29939
29940// Validate inspects the fields of the type to determine if they are valid.
29941func (s *CreateMitigationActionInput) Validate() error {
29942	invalidParams := request.ErrInvalidParams{Context: "CreateMitigationActionInput"}
29943	if s.ActionName == nil {
29944		invalidParams.Add(request.NewErrParamRequired("ActionName"))
29945	}
29946	if s.ActionName != nil && len(*s.ActionName) < 1 {
29947		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
29948	}
29949	if s.ActionParams == nil {
29950		invalidParams.Add(request.NewErrParamRequired("ActionParams"))
29951	}
29952	if s.RoleArn == nil {
29953		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
29954	}
29955	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
29956		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
29957	}
29958	if s.ActionParams != nil {
29959		if err := s.ActionParams.Validate(); err != nil {
29960			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
29961		}
29962	}
29963	if s.Tags != nil {
29964		for i, v := range s.Tags {
29965			if v == nil {
29966				continue
29967			}
29968			if err := v.Validate(); err != nil {
29969				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
29970			}
29971		}
29972	}
29973
29974	if invalidParams.Len() > 0 {
29975		return invalidParams
29976	}
29977	return nil
29978}
29979
29980// SetActionName sets the ActionName field's value.
29981func (s *CreateMitigationActionInput) SetActionName(v string) *CreateMitigationActionInput {
29982	s.ActionName = &v
29983	return s
29984}
29985
29986// SetActionParams sets the ActionParams field's value.
29987func (s *CreateMitigationActionInput) SetActionParams(v *MitigationActionParams) *CreateMitigationActionInput {
29988	s.ActionParams = v
29989	return s
29990}
29991
29992// SetRoleArn sets the RoleArn field's value.
29993func (s *CreateMitigationActionInput) SetRoleArn(v string) *CreateMitigationActionInput {
29994	s.RoleArn = &v
29995	return s
29996}
29997
29998// SetTags sets the Tags field's value.
29999func (s *CreateMitigationActionInput) SetTags(v []*Tag) *CreateMitigationActionInput {
30000	s.Tags = v
30001	return s
30002}
30003
30004type CreateMitigationActionOutput struct {
30005	_ struct{} `type:"structure"`
30006
30007	// The ARN for the new mitigation action.
30008	ActionArn *string `locationName:"actionArn" type:"string"`
30009
30010	// A unique identifier for the new mitigation action.
30011	ActionId *string `locationName:"actionId" type:"string"`
30012}
30013
30014// String returns the string representation
30015func (s CreateMitigationActionOutput) String() string {
30016	return awsutil.Prettify(s)
30017}
30018
30019// GoString returns the string representation
30020func (s CreateMitigationActionOutput) GoString() string {
30021	return s.String()
30022}
30023
30024// SetActionArn sets the ActionArn field's value.
30025func (s *CreateMitigationActionOutput) SetActionArn(v string) *CreateMitigationActionOutput {
30026	s.ActionArn = &v
30027	return s
30028}
30029
30030// SetActionId sets the ActionId field's value.
30031func (s *CreateMitigationActionOutput) SetActionId(v string) *CreateMitigationActionOutput {
30032	s.ActionId = &v
30033	return s
30034}
30035
30036type CreateOTAUpdateInput struct {
30037	_ struct{} `type:"structure"`
30038
30039	// A list of additional OTA update parameters which are name-value pairs.
30040	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
30041
30042	// The criteria that determine when and how a job abort takes place.
30043	AwsJobAbortConfig *AwsJobAbortConfig `locationName:"awsJobAbortConfig" type:"structure"`
30044
30045	// Configuration for the rollout of OTA updates.
30046	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
30047
30048	// Configuration information for pre-signed URLs.
30049	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
30050
30051	// Specifies the amount of time each device has to finish its execution of the
30052	// job. A timer is started when the job execution status is set to IN_PROGRESS.
30053	// If the job execution status is not set to another terminal state before the
30054	// timer expires, it will be automatically set to TIMED_OUT.
30055	AwsJobTimeoutConfig *AwsJobTimeoutConfig `locationName:"awsJobTimeoutConfig" type:"structure"`
30056
30057	// The description of the OTA update.
30058	Description *string `locationName:"description" type:"string"`
30059
30060	// The files to be streamed by the OTA update.
30061	//
30062	// Files is a required field
30063	Files []*OTAUpdateFile `locationName:"files" min:"1" type:"list" required:"true"`
30064
30065	// The ID of the OTA update to be created.
30066	//
30067	// OtaUpdateId is a required field
30068	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
30069
30070	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
30071	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
30072	// can choose the protocol.
30073	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
30074
30075	// The IAM role that grants AWS IoT access to the Amazon S3, AWS IoT jobs and
30076	// AWS Code Signing resources to create an OTA update job.
30077	//
30078	// RoleArn is a required field
30079	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
30080
30081	// Metadata which can be used to manage updates.
30082	Tags []*Tag `locationName:"tags" type:"list"`
30083
30084	// Specifies whether the update will continue to run (CONTINUOUS), or will be
30085	// complete after all the things specified as targets have completed the update
30086	// (SNAPSHOT). If continuous, the update may also be run on a thing when a change
30087	// is detected in a target. For example, an update will run on a thing when
30088	// the thing is added to a target group, even after the update was completed
30089	// by all things originally in the group. Valid values: CONTINUOUS | SNAPSHOT.
30090	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
30091
30092	// The devices targeted to receive OTA updates.
30093	//
30094	// Targets is a required field
30095	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
30096}
30097
30098// String returns the string representation
30099func (s CreateOTAUpdateInput) String() string {
30100	return awsutil.Prettify(s)
30101}
30102
30103// GoString returns the string representation
30104func (s CreateOTAUpdateInput) GoString() string {
30105	return s.String()
30106}
30107
30108// Validate inspects the fields of the type to determine if they are valid.
30109func (s *CreateOTAUpdateInput) Validate() error {
30110	invalidParams := request.ErrInvalidParams{Context: "CreateOTAUpdateInput"}
30111	if s.Files == nil {
30112		invalidParams.Add(request.NewErrParamRequired("Files"))
30113	}
30114	if s.Files != nil && len(s.Files) < 1 {
30115		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
30116	}
30117	if s.OtaUpdateId == nil {
30118		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
30119	}
30120	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
30121		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
30122	}
30123	if s.Protocols != nil && len(s.Protocols) < 1 {
30124		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
30125	}
30126	if s.RoleArn == nil {
30127		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
30128	}
30129	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
30130		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
30131	}
30132	if s.Targets == nil {
30133		invalidParams.Add(request.NewErrParamRequired("Targets"))
30134	}
30135	if s.Targets != nil && len(s.Targets) < 1 {
30136		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
30137	}
30138	if s.AwsJobAbortConfig != nil {
30139		if err := s.AwsJobAbortConfig.Validate(); err != nil {
30140			invalidParams.AddNested("AwsJobAbortConfig", err.(request.ErrInvalidParams))
30141		}
30142	}
30143	if s.AwsJobExecutionsRolloutConfig != nil {
30144		if err := s.AwsJobExecutionsRolloutConfig.Validate(); err != nil {
30145			invalidParams.AddNested("AwsJobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
30146		}
30147	}
30148	if s.Files != nil {
30149		for i, v := range s.Files {
30150			if v == nil {
30151				continue
30152			}
30153			if err := v.Validate(); err != nil {
30154				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
30155			}
30156		}
30157	}
30158	if s.Tags != nil {
30159		for i, v := range s.Tags {
30160			if v == nil {
30161				continue
30162			}
30163			if err := v.Validate(); err != nil {
30164				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30165			}
30166		}
30167	}
30168
30169	if invalidParams.Len() > 0 {
30170		return invalidParams
30171	}
30172	return nil
30173}
30174
30175// SetAdditionalParameters sets the AdditionalParameters field's value.
30176func (s *CreateOTAUpdateInput) SetAdditionalParameters(v map[string]*string) *CreateOTAUpdateInput {
30177	s.AdditionalParameters = v
30178	return s
30179}
30180
30181// SetAwsJobAbortConfig sets the AwsJobAbortConfig field's value.
30182func (s *CreateOTAUpdateInput) SetAwsJobAbortConfig(v *AwsJobAbortConfig) *CreateOTAUpdateInput {
30183	s.AwsJobAbortConfig = v
30184	return s
30185}
30186
30187// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
30188func (s *CreateOTAUpdateInput) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *CreateOTAUpdateInput {
30189	s.AwsJobExecutionsRolloutConfig = v
30190	return s
30191}
30192
30193// SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
30194func (s *CreateOTAUpdateInput) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *CreateOTAUpdateInput {
30195	s.AwsJobPresignedUrlConfig = v
30196	return s
30197}
30198
30199// SetAwsJobTimeoutConfig sets the AwsJobTimeoutConfig field's value.
30200func (s *CreateOTAUpdateInput) SetAwsJobTimeoutConfig(v *AwsJobTimeoutConfig) *CreateOTAUpdateInput {
30201	s.AwsJobTimeoutConfig = v
30202	return s
30203}
30204
30205// SetDescription sets the Description field's value.
30206func (s *CreateOTAUpdateInput) SetDescription(v string) *CreateOTAUpdateInput {
30207	s.Description = &v
30208	return s
30209}
30210
30211// SetFiles sets the Files field's value.
30212func (s *CreateOTAUpdateInput) SetFiles(v []*OTAUpdateFile) *CreateOTAUpdateInput {
30213	s.Files = v
30214	return s
30215}
30216
30217// SetOtaUpdateId sets the OtaUpdateId field's value.
30218func (s *CreateOTAUpdateInput) SetOtaUpdateId(v string) *CreateOTAUpdateInput {
30219	s.OtaUpdateId = &v
30220	return s
30221}
30222
30223// SetProtocols sets the Protocols field's value.
30224func (s *CreateOTAUpdateInput) SetProtocols(v []*string) *CreateOTAUpdateInput {
30225	s.Protocols = v
30226	return s
30227}
30228
30229// SetRoleArn sets the RoleArn field's value.
30230func (s *CreateOTAUpdateInput) SetRoleArn(v string) *CreateOTAUpdateInput {
30231	s.RoleArn = &v
30232	return s
30233}
30234
30235// SetTags sets the Tags field's value.
30236func (s *CreateOTAUpdateInput) SetTags(v []*Tag) *CreateOTAUpdateInput {
30237	s.Tags = v
30238	return s
30239}
30240
30241// SetTargetSelection sets the TargetSelection field's value.
30242func (s *CreateOTAUpdateInput) SetTargetSelection(v string) *CreateOTAUpdateInput {
30243	s.TargetSelection = &v
30244	return s
30245}
30246
30247// SetTargets sets the Targets field's value.
30248func (s *CreateOTAUpdateInput) SetTargets(v []*string) *CreateOTAUpdateInput {
30249	s.Targets = v
30250	return s
30251}
30252
30253type CreateOTAUpdateOutput struct {
30254	_ struct{} `type:"structure"`
30255
30256	// The AWS IoT job ARN associated with the OTA update.
30257	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
30258
30259	// The AWS IoT job ID associated with the OTA update.
30260	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
30261
30262	// The OTA update ARN.
30263	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
30264
30265	// The OTA update ID.
30266	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
30267
30268	// The OTA update status.
30269	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
30270}
30271
30272// String returns the string representation
30273func (s CreateOTAUpdateOutput) String() string {
30274	return awsutil.Prettify(s)
30275}
30276
30277// GoString returns the string representation
30278func (s CreateOTAUpdateOutput) GoString() string {
30279	return s.String()
30280}
30281
30282// SetAwsIotJobArn sets the AwsIotJobArn field's value.
30283func (s *CreateOTAUpdateOutput) SetAwsIotJobArn(v string) *CreateOTAUpdateOutput {
30284	s.AwsIotJobArn = &v
30285	return s
30286}
30287
30288// SetAwsIotJobId sets the AwsIotJobId field's value.
30289func (s *CreateOTAUpdateOutput) SetAwsIotJobId(v string) *CreateOTAUpdateOutput {
30290	s.AwsIotJobId = &v
30291	return s
30292}
30293
30294// SetOtaUpdateArn sets the OtaUpdateArn field's value.
30295func (s *CreateOTAUpdateOutput) SetOtaUpdateArn(v string) *CreateOTAUpdateOutput {
30296	s.OtaUpdateArn = &v
30297	return s
30298}
30299
30300// SetOtaUpdateId sets the OtaUpdateId field's value.
30301func (s *CreateOTAUpdateOutput) SetOtaUpdateId(v string) *CreateOTAUpdateOutput {
30302	s.OtaUpdateId = &v
30303	return s
30304}
30305
30306// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
30307func (s *CreateOTAUpdateOutput) SetOtaUpdateStatus(v string) *CreateOTAUpdateOutput {
30308	s.OtaUpdateStatus = &v
30309	return s
30310}
30311
30312// The input for the CreatePolicy operation.
30313type CreatePolicyInput struct {
30314	_ struct{} `type:"structure"`
30315
30316	// The JSON document that describes the policy. policyDocument must have a minimum
30317	// length of 1, with a maximum length of 2048, excluding whitespace.
30318	//
30319	// PolicyDocument is a required field
30320	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
30321
30322	// The policy name.
30323	//
30324	// PolicyName is a required field
30325	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
30326
30327	// Metadata which can be used to manage the policy.
30328	//
30329	// For URI Request parameters use format: ...key1=value1&key2=value2...
30330	//
30331	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
30332	//
30333	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
30334	Tags []*Tag `locationName:"tags" type:"list"`
30335}
30336
30337// String returns the string representation
30338func (s CreatePolicyInput) String() string {
30339	return awsutil.Prettify(s)
30340}
30341
30342// GoString returns the string representation
30343func (s CreatePolicyInput) GoString() string {
30344	return s.String()
30345}
30346
30347// Validate inspects the fields of the type to determine if they are valid.
30348func (s *CreatePolicyInput) Validate() error {
30349	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyInput"}
30350	if s.PolicyDocument == nil {
30351		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
30352	}
30353	if s.PolicyName == nil {
30354		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
30355	}
30356	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
30357		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
30358	}
30359	if s.Tags != nil {
30360		for i, v := range s.Tags {
30361			if v == nil {
30362				continue
30363			}
30364			if err := v.Validate(); err != nil {
30365				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30366			}
30367		}
30368	}
30369
30370	if invalidParams.Len() > 0 {
30371		return invalidParams
30372	}
30373	return nil
30374}
30375
30376// SetPolicyDocument sets the PolicyDocument field's value.
30377func (s *CreatePolicyInput) SetPolicyDocument(v string) *CreatePolicyInput {
30378	s.PolicyDocument = &v
30379	return s
30380}
30381
30382// SetPolicyName sets the PolicyName field's value.
30383func (s *CreatePolicyInput) SetPolicyName(v string) *CreatePolicyInput {
30384	s.PolicyName = &v
30385	return s
30386}
30387
30388// SetTags sets the Tags field's value.
30389func (s *CreatePolicyInput) SetTags(v []*Tag) *CreatePolicyInput {
30390	s.Tags = v
30391	return s
30392}
30393
30394// The output from the CreatePolicy operation.
30395type CreatePolicyOutput struct {
30396	_ struct{} `type:"structure"`
30397
30398	// The policy ARN.
30399	PolicyArn *string `locationName:"policyArn" type:"string"`
30400
30401	// The JSON document that describes the policy.
30402	PolicyDocument *string `locationName:"policyDocument" type:"string"`
30403
30404	// The policy name.
30405	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
30406
30407	// The policy version ID.
30408	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
30409}
30410
30411// String returns the string representation
30412func (s CreatePolicyOutput) String() string {
30413	return awsutil.Prettify(s)
30414}
30415
30416// GoString returns the string representation
30417func (s CreatePolicyOutput) GoString() string {
30418	return s.String()
30419}
30420
30421// SetPolicyArn sets the PolicyArn field's value.
30422func (s *CreatePolicyOutput) SetPolicyArn(v string) *CreatePolicyOutput {
30423	s.PolicyArn = &v
30424	return s
30425}
30426
30427// SetPolicyDocument sets the PolicyDocument field's value.
30428func (s *CreatePolicyOutput) SetPolicyDocument(v string) *CreatePolicyOutput {
30429	s.PolicyDocument = &v
30430	return s
30431}
30432
30433// SetPolicyName sets the PolicyName field's value.
30434func (s *CreatePolicyOutput) SetPolicyName(v string) *CreatePolicyOutput {
30435	s.PolicyName = &v
30436	return s
30437}
30438
30439// SetPolicyVersionId sets the PolicyVersionId field's value.
30440func (s *CreatePolicyOutput) SetPolicyVersionId(v string) *CreatePolicyOutput {
30441	s.PolicyVersionId = &v
30442	return s
30443}
30444
30445// The input for the CreatePolicyVersion operation.
30446type CreatePolicyVersionInput struct {
30447	_ struct{} `type:"structure"`
30448
30449	// The JSON document that describes the policy. Minimum length of 1. Maximum
30450	// length of 2048, excluding whitespace.
30451	//
30452	// PolicyDocument is a required field
30453	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
30454
30455	// The policy name.
30456	//
30457	// PolicyName is a required field
30458	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
30459
30460	// Specifies whether the policy version is set as the default. When this parameter
30461	// is true, the new policy version becomes the operative version (that is, the
30462	// version that is in effect for the certificates to which the policy is attached).
30463	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
30464}
30465
30466// String returns the string representation
30467func (s CreatePolicyVersionInput) String() string {
30468	return awsutil.Prettify(s)
30469}
30470
30471// GoString returns the string representation
30472func (s CreatePolicyVersionInput) GoString() string {
30473	return s.String()
30474}
30475
30476// Validate inspects the fields of the type to determine if they are valid.
30477func (s *CreatePolicyVersionInput) Validate() error {
30478	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyVersionInput"}
30479	if s.PolicyDocument == nil {
30480		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
30481	}
30482	if s.PolicyName == nil {
30483		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
30484	}
30485	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
30486		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
30487	}
30488
30489	if invalidParams.Len() > 0 {
30490		return invalidParams
30491	}
30492	return nil
30493}
30494
30495// SetPolicyDocument sets the PolicyDocument field's value.
30496func (s *CreatePolicyVersionInput) SetPolicyDocument(v string) *CreatePolicyVersionInput {
30497	s.PolicyDocument = &v
30498	return s
30499}
30500
30501// SetPolicyName sets the PolicyName field's value.
30502func (s *CreatePolicyVersionInput) SetPolicyName(v string) *CreatePolicyVersionInput {
30503	s.PolicyName = &v
30504	return s
30505}
30506
30507// SetSetAsDefault sets the SetAsDefault field's value.
30508func (s *CreatePolicyVersionInput) SetSetAsDefault(v bool) *CreatePolicyVersionInput {
30509	s.SetAsDefault = &v
30510	return s
30511}
30512
30513// The output of the CreatePolicyVersion operation.
30514type CreatePolicyVersionOutput struct {
30515	_ struct{} `type:"structure"`
30516
30517	// Specifies whether the policy version is the default.
30518	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
30519
30520	// The policy ARN.
30521	PolicyArn *string `locationName:"policyArn" type:"string"`
30522
30523	// The JSON document that describes the policy.
30524	PolicyDocument *string `locationName:"policyDocument" type:"string"`
30525
30526	// The policy version ID.
30527	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
30528}
30529
30530// String returns the string representation
30531func (s CreatePolicyVersionOutput) String() string {
30532	return awsutil.Prettify(s)
30533}
30534
30535// GoString returns the string representation
30536func (s CreatePolicyVersionOutput) GoString() string {
30537	return s.String()
30538}
30539
30540// SetIsDefaultVersion sets the IsDefaultVersion field's value.
30541func (s *CreatePolicyVersionOutput) SetIsDefaultVersion(v bool) *CreatePolicyVersionOutput {
30542	s.IsDefaultVersion = &v
30543	return s
30544}
30545
30546// SetPolicyArn sets the PolicyArn field's value.
30547func (s *CreatePolicyVersionOutput) SetPolicyArn(v string) *CreatePolicyVersionOutput {
30548	s.PolicyArn = &v
30549	return s
30550}
30551
30552// SetPolicyDocument sets the PolicyDocument field's value.
30553func (s *CreatePolicyVersionOutput) SetPolicyDocument(v string) *CreatePolicyVersionOutput {
30554	s.PolicyDocument = &v
30555	return s
30556}
30557
30558// SetPolicyVersionId sets the PolicyVersionId field's value.
30559func (s *CreatePolicyVersionOutput) SetPolicyVersionId(v string) *CreatePolicyVersionOutput {
30560	s.PolicyVersionId = &v
30561	return s
30562}
30563
30564type CreateProvisioningClaimInput struct {
30565	_ struct{} `type:"structure"`
30566
30567	// The name of the provisioning template to use.
30568	//
30569	// TemplateName is a required field
30570	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
30571}
30572
30573// String returns the string representation
30574func (s CreateProvisioningClaimInput) String() string {
30575	return awsutil.Prettify(s)
30576}
30577
30578// GoString returns the string representation
30579func (s CreateProvisioningClaimInput) GoString() string {
30580	return s.String()
30581}
30582
30583// Validate inspects the fields of the type to determine if they are valid.
30584func (s *CreateProvisioningClaimInput) Validate() error {
30585	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningClaimInput"}
30586	if s.TemplateName == nil {
30587		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
30588	}
30589	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
30590		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
30591	}
30592
30593	if invalidParams.Len() > 0 {
30594		return invalidParams
30595	}
30596	return nil
30597}
30598
30599// SetTemplateName sets the TemplateName field's value.
30600func (s *CreateProvisioningClaimInput) SetTemplateName(v string) *CreateProvisioningClaimInput {
30601	s.TemplateName = &v
30602	return s
30603}
30604
30605type CreateProvisioningClaimOutput struct {
30606	_ struct{} `type:"structure"`
30607
30608	// The ID of the certificate.
30609	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
30610
30611	// The provisioning claim certificate.
30612	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
30613
30614	// The provisioning claim expiration time.
30615	Expiration *time.Time `locationName:"expiration" type:"timestamp"`
30616
30617	// The provisioning claim key pair.
30618	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
30619}
30620
30621// String returns the string representation
30622func (s CreateProvisioningClaimOutput) String() string {
30623	return awsutil.Prettify(s)
30624}
30625
30626// GoString returns the string representation
30627func (s CreateProvisioningClaimOutput) GoString() string {
30628	return s.String()
30629}
30630
30631// SetCertificateId sets the CertificateId field's value.
30632func (s *CreateProvisioningClaimOutput) SetCertificateId(v string) *CreateProvisioningClaimOutput {
30633	s.CertificateId = &v
30634	return s
30635}
30636
30637// SetCertificatePem sets the CertificatePem field's value.
30638func (s *CreateProvisioningClaimOutput) SetCertificatePem(v string) *CreateProvisioningClaimOutput {
30639	s.CertificatePem = &v
30640	return s
30641}
30642
30643// SetExpiration sets the Expiration field's value.
30644func (s *CreateProvisioningClaimOutput) SetExpiration(v time.Time) *CreateProvisioningClaimOutput {
30645	s.Expiration = &v
30646	return s
30647}
30648
30649// SetKeyPair sets the KeyPair field's value.
30650func (s *CreateProvisioningClaimOutput) SetKeyPair(v *KeyPair) *CreateProvisioningClaimOutput {
30651	s.KeyPair = v
30652	return s
30653}
30654
30655type CreateProvisioningTemplateInput struct {
30656	_ struct{} `type:"structure"`
30657
30658	// The description of the fleet provisioning template.
30659	Description *string `locationName:"description" type:"string"`
30660
30661	// True to enable the fleet provisioning template, otherwise false.
30662	Enabled *bool `locationName:"enabled" type:"boolean"`
30663
30664	// Creates a pre-provisioning hook template.
30665	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
30666
30667	// The role ARN for the role associated with the fleet provisioning template.
30668	// This IoT role grants permission to provision a device.
30669	//
30670	// ProvisioningRoleArn is a required field
30671	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string" required:"true"`
30672
30673	// Metadata which can be used to manage the fleet provisioning template.
30674	//
30675	// For URI Request parameters use format: ...key1=value1&key2=value2...
30676	//
30677	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
30678	//
30679	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
30680	Tags []*Tag `locationName:"tags" type:"list"`
30681
30682	// The JSON formatted contents of the fleet provisioning template.
30683	//
30684	// TemplateBody is a required field
30685	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
30686
30687	// The name of the fleet provisioning template.
30688	//
30689	// TemplateName is a required field
30690	TemplateName *string `locationName:"templateName" min:"1" type:"string" required:"true"`
30691}
30692
30693// String returns the string representation
30694func (s CreateProvisioningTemplateInput) String() string {
30695	return awsutil.Prettify(s)
30696}
30697
30698// GoString returns the string representation
30699func (s CreateProvisioningTemplateInput) GoString() string {
30700	return s.String()
30701}
30702
30703// Validate inspects the fields of the type to determine if they are valid.
30704func (s *CreateProvisioningTemplateInput) Validate() error {
30705	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateInput"}
30706	if s.ProvisioningRoleArn == nil {
30707		invalidParams.Add(request.NewErrParamRequired("ProvisioningRoleArn"))
30708	}
30709	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
30710		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
30711	}
30712	if s.TemplateBody == nil {
30713		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
30714	}
30715	if s.TemplateName == nil {
30716		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
30717	}
30718	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
30719		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
30720	}
30721	if s.PreProvisioningHook != nil {
30722		if err := s.PreProvisioningHook.Validate(); err != nil {
30723			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
30724		}
30725	}
30726	if s.Tags != nil {
30727		for i, v := range s.Tags {
30728			if v == nil {
30729				continue
30730			}
30731			if err := v.Validate(); err != nil {
30732				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30733			}
30734		}
30735	}
30736
30737	if invalidParams.Len() > 0 {
30738		return invalidParams
30739	}
30740	return nil
30741}
30742
30743// SetDescription sets the Description field's value.
30744func (s *CreateProvisioningTemplateInput) SetDescription(v string) *CreateProvisioningTemplateInput {
30745	s.Description = &v
30746	return s
30747}
30748
30749// SetEnabled sets the Enabled field's value.
30750func (s *CreateProvisioningTemplateInput) SetEnabled(v bool) *CreateProvisioningTemplateInput {
30751	s.Enabled = &v
30752	return s
30753}
30754
30755// SetPreProvisioningHook sets the PreProvisioningHook field's value.
30756func (s *CreateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *CreateProvisioningTemplateInput {
30757	s.PreProvisioningHook = v
30758	return s
30759}
30760
30761// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
30762func (s *CreateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *CreateProvisioningTemplateInput {
30763	s.ProvisioningRoleArn = &v
30764	return s
30765}
30766
30767// SetTags sets the Tags field's value.
30768func (s *CreateProvisioningTemplateInput) SetTags(v []*Tag) *CreateProvisioningTemplateInput {
30769	s.Tags = v
30770	return s
30771}
30772
30773// SetTemplateBody sets the TemplateBody field's value.
30774func (s *CreateProvisioningTemplateInput) SetTemplateBody(v string) *CreateProvisioningTemplateInput {
30775	s.TemplateBody = &v
30776	return s
30777}
30778
30779// SetTemplateName sets the TemplateName field's value.
30780func (s *CreateProvisioningTemplateInput) SetTemplateName(v string) *CreateProvisioningTemplateInput {
30781	s.TemplateName = &v
30782	return s
30783}
30784
30785type CreateProvisioningTemplateOutput struct {
30786	_ struct{} `type:"structure"`
30787
30788	// The default version of the fleet provisioning template.
30789	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
30790
30791	// The ARN that identifies the provisioning template.
30792	TemplateArn *string `locationName:"templateArn" type:"string"`
30793
30794	// The name of the fleet provisioning template.
30795	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
30796}
30797
30798// String returns the string representation
30799func (s CreateProvisioningTemplateOutput) String() string {
30800	return awsutil.Prettify(s)
30801}
30802
30803// GoString returns the string representation
30804func (s CreateProvisioningTemplateOutput) GoString() string {
30805	return s.String()
30806}
30807
30808// SetDefaultVersionId sets the DefaultVersionId field's value.
30809func (s *CreateProvisioningTemplateOutput) SetDefaultVersionId(v int64) *CreateProvisioningTemplateOutput {
30810	s.DefaultVersionId = &v
30811	return s
30812}
30813
30814// SetTemplateArn sets the TemplateArn field's value.
30815func (s *CreateProvisioningTemplateOutput) SetTemplateArn(v string) *CreateProvisioningTemplateOutput {
30816	s.TemplateArn = &v
30817	return s
30818}
30819
30820// SetTemplateName sets the TemplateName field's value.
30821func (s *CreateProvisioningTemplateOutput) SetTemplateName(v string) *CreateProvisioningTemplateOutput {
30822	s.TemplateName = &v
30823	return s
30824}
30825
30826type CreateProvisioningTemplateVersionInput struct {
30827	_ struct{} `type:"structure"`
30828
30829	// Sets a fleet provision template version as the default version.
30830	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
30831
30832	// The JSON formatted contents of the fleet provisioning template.
30833	//
30834	// TemplateBody is a required field
30835	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
30836
30837	// The name of the fleet provisioning template.
30838	//
30839	// TemplateName is a required field
30840	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
30841}
30842
30843// String returns the string representation
30844func (s CreateProvisioningTemplateVersionInput) String() string {
30845	return awsutil.Prettify(s)
30846}
30847
30848// GoString returns the string representation
30849func (s CreateProvisioningTemplateVersionInput) GoString() string {
30850	return s.String()
30851}
30852
30853// Validate inspects the fields of the type to determine if they are valid.
30854func (s *CreateProvisioningTemplateVersionInput) Validate() error {
30855	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateVersionInput"}
30856	if s.TemplateBody == nil {
30857		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
30858	}
30859	if s.TemplateName == nil {
30860		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
30861	}
30862	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
30863		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
30864	}
30865
30866	if invalidParams.Len() > 0 {
30867		return invalidParams
30868	}
30869	return nil
30870}
30871
30872// SetSetAsDefault sets the SetAsDefault field's value.
30873func (s *CreateProvisioningTemplateVersionInput) SetSetAsDefault(v bool) *CreateProvisioningTemplateVersionInput {
30874	s.SetAsDefault = &v
30875	return s
30876}
30877
30878// SetTemplateBody sets the TemplateBody field's value.
30879func (s *CreateProvisioningTemplateVersionInput) SetTemplateBody(v string) *CreateProvisioningTemplateVersionInput {
30880	s.TemplateBody = &v
30881	return s
30882}
30883
30884// SetTemplateName sets the TemplateName field's value.
30885func (s *CreateProvisioningTemplateVersionInput) SetTemplateName(v string) *CreateProvisioningTemplateVersionInput {
30886	s.TemplateName = &v
30887	return s
30888}
30889
30890type CreateProvisioningTemplateVersionOutput struct {
30891	_ struct{} `type:"structure"`
30892
30893	// True if the fleet provisioning template version is the default version, otherwise
30894	// false.
30895	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
30896
30897	// The ARN that identifies the provisioning template.
30898	TemplateArn *string `locationName:"templateArn" type:"string"`
30899
30900	// The name of the fleet provisioning template.
30901	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
30902
30903	// The version of the fleet provisioning template.
30904	VersionId *int64 `locationName:"versionId" type:"integer"`
30905}
30906
30907// String returns the string representation
30908func (s CreateProvisioningTemplateVersionOutput) String() string {
30909	return awsutil.Prettify(s)
30910}
30911
30912// GoString returns the string representation
30913func (s CreateProvisioningTemplateVersionOutput) GoString() string {
30914	return s.String()
30915}
30916
30917// SetIsDefaultVersion sets the IsDefaultVersion field's value.
30918func (s *CreateProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *CreateProvisioningTemplateVersionOutput {
30919	s.IsDefaultVersion = &v
30920	return s
30921}
30922
30923// SetTemplateArn sets the TemplateArn field's value.
30924func (s *CreateProvisioningTemplateVersionOutput) SetTemplateArn(v string) *CreateProvisioningTemplateVersionOutput {
30925	s.TemplateArn = &v
30926	return s
30927}
30928
30929// SetTemplateName sets the TemplateName field's value.
30930func (s *CreateProvisioningTemplateVersionOutput) SetTemplateName(v string) *CreateProvisioningTemplateVersionOutput {
30931	s.TemplateName = &v
30932	return s
30933}
30934
30935// SetVersionId sets the VersionId field's value.
30936func (s *CreateProvisioningTemplateVersionOutput) SetVersionId(v int64) *CreateProvisioningTemplateVersionOutput {
30937	s.VersionId = &v
30938	return s
30939}
30940
30941type CreateRoleAliasInput struct {
30942	_ struct{} `type:"structure"`
30943
30944	// How long (in seconds) the credentials will be valid.
30945	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
30946
30947	// The role alias that points to a role ARN. This allows you to change the role
30948	// without having to update the device.
30949	//
30950	// RoleAlias is a required field
30951	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
30952
30953	// The role ARN.
30954	//
30955	// RoleArn is a required field
30956	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
30957
30958	// Metadata which can be used to manage the role alias.
30959	//
30960	// For URI Request parameters use format: ...key1=value1&key2=value2...
30961	//
30962	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
30963	//
30964	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
30965	Tags []*Tag `locationName:"tags" type:"list"`
30966}
30967
30968// String returns the string representation
30969func (s CreateRoleAliasInput) String() string {
30970	return awsutil.Prettify(s)
30971}
30972
30973// GoString returns the string representation
30974func (s CreateRoleAliasInput) GoString() string {
30975	return s.String()
30976}
30977
30978// Validate inspects the fields of the type to determine if they are valid.
30979func (s *CreateRoleAliasInput) Validate() error {
30980	invalidParams := request.ErrInvalidParams{Context: "CreateRoleAliasInput"}
30981	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
30982		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
30983	}
30984	if s.RoleAlias == nil {
30985		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
30986	}
30987	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
30988		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
30989	}
30990	if s.RoleArn == nil {
30991		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
30992	}
30993	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
30994		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
30995	}
30996	if s.Tags != nil {
30997		for i, v := range s.Tags {
30998			if v == nil {
30999				continue
31000			}
31001			if err := v.Validate(); err != nil {
31002				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31003			}
31004		}
31005	}
31006
31007	if invalidParams.Len() > 0 {
31008		return invalidParams
31009	}
31010	return nil
31011}
31012
31013// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
31014func (s *CreateRoleAliasInput) SetCredentialDurationSeconds(v int64) *CreateRoleAliasInput {
31015	s.CredentialDurationSeconds = &v
31016	return s
31017}
31018
31019// SetRoleAlias sets the RoleAlias field's value.
31020func (s *CreateRoleAliasInput) SetRoleAlias(v string) *CreateRoleAliasInput {
31021	s.RoleAlias = &v
31022	return s
31023}
31024
31025// SetRoleArn sets the RoleArn field's value.
31026func (s *CreateRoleAliasInput) SetRoleArn(v string) *CreateRoleAliasInput {
31027	s.RoleArn = &v
31028	return s
31029}
31030
31031// SetTags sets the Tags field's value.
31032func (s *CreateRoleAliasInput) SetTags(v []*Tag) *CreateRoleAliasInput {
31033	s.Tags = v
31034	return s
31035}
31036
31037type CreateRoleAliasOutput struct {
31038	_ struct{} `type:"structure"`
31039
31040	// The role alias.
31041	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
31042
31043	// The role alias ARN.
31044	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
31045}
31046
31047// String returns the string representation
31048func (s CreateRoleAliasOutput) String() string {
31049	return awsutil.Prettify(s)
31050}
31051
31052// GoString returns the string representation
31053func (s CreateRoleAliasOutput) GoString() string {
31054	return s.String()
31055}
31056
31057// SetRoleAlias sets the RoleAlias field's value.
31058func (s *CreateRoleAliasOutput) SetRoleAlias(v string) *CreateRoleAliasOutput {
31059	s.RoleAlias = &v
31060	return s
31061}
31062
31063// SetRoleAliasArn sets the RoleAliasArn field's value.
31064func (s *CreateRoleAliasOutput) SetRoleAliasArn(v string) *CreateRoleAliasOutput {
31065	s.RoleAliasArn = &v
31066	return s
31067}
31068
31069type CreateScheduledAuditInput struct {
31070	_ struct{} `type:"structure"`
31071
31072	// The day of the month on which the scheduled audit takes place. This can be
31073	// "1" through "31" or "LAST". This field is required if the "frequency" parameter
31074	// is set to MONTHLY. If days 29 to 31 are specified, and the month doesn't
31075	// have that many days, the audit takes place on the LAST day of the month.
31076	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
31077
31078	// The day of the week on which the scheduled audit takes place, either SUN,
31079	// MON, TUE, WED, THU, FRI, or SAT. This field is required if the frequency
31080	// parameter is set to WEEKLY or BIWEEKLY.
31081	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
31082
31083	// How often the scheduled audit takes place, either DAILY, WEEKLY, BIWEEKLY
31084	// or MONTHLY. The start time of each audit is determined by the system.
31085	//
31086	// Frequency is a required field
31087	Frequency *string `locationName:"frequency" type:"string" required:"true" enum:"AuditFrequency"`
31088
31089	// The name you want to give to the scheduled audit. (Max. 128 chars)
31090	//
31091	// ScheduledAuditName is a required field
31092	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
31093
31094	// Metadata that can be used to manage the scheduled audit.
31095	Tags []*Tag `locationName:"tags" type:"list"`
31096
31097	// Which checks are performed during the scheduled audit. Checks must be enabled
31098	// for your account. (Use DescribeAccountAuditConfiguration to see the list
31099	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
31100	// to select which checks are enabled.)
31101	//
31102	// TargetCheckNames is a required field
31103	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
31104}
31105
31106// String returns the string representation
31107func (s CreateScheduledAuditInput) String() string {
31108	return awsutil.Prettify(s)
31109}
31110
31111// GoString returns the string representation
31112func (s CreateScheduledAuditInput) GoString() string {
31113	return s.String()
31114}
31115
31116// Validate inspects the fields of the type to determine if they are valid.
31117func (s *CreateScheduledAuditInput) Validate() error {
31118	invalidParams := request.ErrInvalidParams{Context: "CreateScheduledAuditInput"}
31119	if s.Frequency == nil {
31120		invalidParams.Add(request.NewErrParamRequired("Frequency"))
31121	}
31122	if s.ScheduledAuditName == nil {
31123		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
31124	}
31125	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
31126		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
31127	}
31128	if s.TargetCheckNames == nil {
31129		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
31130	}
31131	if s.Tags != nil {
31132		for i, v := range s.Tags {
31133			if v == nil {
31134				continue
31135			}
31136			if err := v.Validate(); err != nil {
31137				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31138			}
31139		}
31140	}
31141
31142	if invalidParams.Len() > 0 {
31143		return invalidParams
31144	}
31145	return nil
31146}
31147
31148// SetDayOfMonth sets the DayOfMonth field's value.
31149func (s *CreateScheduledAuditInput) SetDayOfMonth(v string) *CreateScheduledAuditInput {
31150	s.DayOfMonth = &v
31151	return s
31152}
31153
31154// SetDayOfWeek sets the DayOfWeek field's value.
31155func (s *CreateScheduledAuditInput) SetDayOfWeek(v string) *CreateScheduledAuditInput {
31156	s.DayOfWeek = &v
31157	return s
31158}
31159
31160// SetFrequency sets the Frequency field's value.
31161func (s *CreateScheduledAuditInput) SetFrequency(v string) *CreateScheduledAuditInput {
31162	s.Frequency = &v
31163	return s
31164}
31165
31166// SetScheduledAuditName sets the ScheduledAuditName field's value.
31167func (s *CreateScheduledAuditInput) SetScheduledAuditName(v string) *CreateScheduledAuditInput {
31168	s.ScheduledAuditName = &v
31169	return s
31170}
31171
31172// SetTags sets the Tags field's value.
31173func (s *CreateScheduledAuditInput) SetTags(v []*Tag) *CreateScheduledAuditInput {
31174	s.Tags = v
31175	return s
31176}
31177
31178// SetTargetCheckNames sets the TargetCheckNames field's value.
31179func (s *CreateScheduledAuditInput) SetTargetCheckNames(v []*string) *CreateScheduledAuditInput {
31180	s.TargetCheckNames = v
31181	return s
31182}
31183
31184type CreateScheduledAuditOutput struct {
31185	_ struct{} `type:"structure"`
31186
31187	// The ARN of the scheduled audit.
31188	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
31189}
31190
31191// String returns the string representation
31192func (s CreateScheduledAuditOutput) String() string {
31193	return awsutil.Prettify(s)
31194}
31195
31196// GoString returns the string representation
31197func (s CreateScheduledAuditOutput) GoString() string {
31198	return s.String()
31199}
31200
31201// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
31202func (s *CreateScheduledAuditOutput) SetScheduledAuditArn(v string) *CreateScheduledAuditOutput {
31203	s.ScheduledAuditArn = &v
31204	return s
31205}
31206
31207type CreateSecurityProfileInput struct {
31208	_ struct{} `type:"structure"`
31209
31210	// Please use CreateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
31211	//
31212	// A list of metrics whose data is retained (stored). By default, data is retained
31213	// for any metric used in the profile's behaviors, but it is also retained for
31214	// any metric specified here. Can be used with custom metrics; cannot be used
31215	// with dimensions.
31216	//
31217	// Deprecated: Use additionalMetricsToRetainV2.
31218	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
31219
31220	// A list of metrics whose data is retained (stored). By default, data is retained
31221	// for any metric used in the profile's behaviors, but it is also retained for
31222	// any metric specified here. Can be used with custom metrics; cannot be used
31223	// with dimensions.
31224	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
31225
31226	// Specifies the destinations to which alerts are sent. (Alerts are always sent
31227	// to the console.) Alerts are generated when a device (thing) violates a behavior.
31228	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
31229
31230	// Specifies the behaviors that, when violated by a device (thing), cause an
31231	// alert.
31232	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
31233
31234	// A description of the security profile.
31235	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
31236
31237	// The name you are giving to the security profile.
31238	//
31239	// SecurityProfileName is a required field
31240	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
31241
31242	// Metadata that can be used to manage the security profile.
31243	Tags []*Tag `locationName:"tags" type:"list"`
31244}
31245
31246// String returns the string representation
31247func (s CreateSecurityProfileInput) String() string {
31248	return awsutil.Prettify(s)
31249}
31250
31251// GoString returns the string representation
31252func (s CreateSecurityProfileInput) GoString() string {
31253	return s.String()
31254}
31255
31256// Validate inspects the fields of the type to determine if they are valid.
31257func (s *CreateSecurityProfileInput) Validate() error {
31258	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityProfileInput"}
31259	if s.SecurityProfileName == nil {
31260		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
31261	}
31262	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
31263		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
31264	}
31265	if s.AdditionalMetricsToRetainV2 != nil {
31266		for i, v := range s.AdditionalMetricsToRetainV2 {
31267			if v == nil {
31268				continue
31269			}
31270			if err := v.Validate(); err != nil {
31271				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
31272			}
31273		}
31274	}
31275	if s.AlertTargets != nil {
31276		for i, v := range s.AlertTargets {
31277			if v == nil {
31278				continue
31279			}
31280			if err := v.Validate(); err != nil {
31281				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
31282			}
31283		}
31284	}
31285	if s.Behaviors != nil {
31286		for i, v := range s.Behaviors {
31287			if v == nil {
31288				continue
31289			}
31290			if err := v.Validate(); err != nil {
31291				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
31292			}
31293		}
31294	}
31295	if s.Tags != nil {
31296		for i, v := range s.Tags {
31297			if v == nil {
31298				continue
31299			}
31300			if err := v.Validate(); err != nil {
31301				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31302			}
31303		}
31304	}
31305
31306	if invalidParams.Len() > 0 {
31307		return invalidParams
31308	}
31309	return nil
31310}
31311
31312// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
31313func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *CreateSecurityProfileInput {
31314	s.AdditionalMetricsToRetain = v
31315	return s
31316}
31317
31318// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
31319func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *CreateSecurityProfileInput {
31320	s.AdditionalMetricsToRetainV2 = v
31321	return s
31322}
31323
31324// SetAlertTargets sets the AlertTargets field's value.
31325func (s *CreateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *CreateSecurityProfileInput {
31326	s.AlertTargets = v
31327	return s
31328}
31329
31330// SetBehaviors sets the Behaviors field's value.
31331func (s *CreateSecurityProfileInput) SetBehaviors(v []*Behavior) *CreateSecurityProfileInput {
31332	s.Behaviors = v
31333	return s
31334}
31335
31336// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
31337func (s *CreateSecurityProfileInput) SetSecurityProfileDescription(v string) *CreateSecurityProfileInput {
31338	s.SecurityProfileDescription = &v
31339	return s
31340}
31341
31342// SetSecurityProfileName sets the SecurityProfileName field's value.
31343func (s *CreateSecurityProfileInput) SetSecurityProfileName(v string) *CreateSecurityProfileInput {
31344	s.SecurityProfileName = &v
31345	return s
31346}
31347
31348// SetTags sets the Tags field's value.
31349func (s *CreateSecurityProfileInput) SetTags(v []*Tag) *CreateSecurityProfileInput {
31350	s.Tags = v
31351	return s
31352}
31353
31354type CreateSecurityProfileOutput struct {
31355	_ struct{} `type:"structure"`
31356
31357	// The ARN of the security profile.
31358	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
31359
31360	// The name you gave to the security profile.
31361	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
31362}
31363
31364// String returns the string representation
31365func (s CreateSecurityProfileOutput) String() string {
31366	return awsutil.Prettify(s)
31367}
31368
31369// GoString returns the string representation
31370func (s CreateSecurityProfileOutput) GoString() string {
31371	return s.String()
31372}
31373
31374// SetSecurityProfileArn sets the SecurityProfileArn field's value.
31375func (s *CreateSecurityProfileOutput) SetSecurityProfileArn(v string) *CreateSecurityProfileOutput {
31376	s.SecurityProfileArn = &v
31377	return s
31378}
31379
31380// SetSecurityProfileName sets the SecurityProfileName field's value.
31381func (s *CreateSecurityProfileOutput) SetSecurityProfileName(v string) *CreateSecurityProfileOutput {
31382	s.SecurityProfileName = &v
31383	return s
31384}
31385
31386type CreateStreamInput struct {
31387	_ struct{} `type:"structure"`
31388
31389	// A description of the stream.
31390	Description *string `locationName:"description" type:"string"`
31391
31392	// The files to stream.
31393	//
31394	// Files is a required field
31395	Files []*StreamFile `locationName:"files" min:"1" type:"list" required:"true"`
31396
31397	// An IAM role that allows the IoT service principal assumes to access your
31398	// S3 files.
31399	//
31400	// RoleArn is a required field
31401	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
31402
31403	// The stream ID.
31404	//
31405	// StreamId is a required field
31406	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
31407
31408	// Metadata which can be used to manage streams.
31409	Tags []*Tag `locationName:"tags" type:"list"`
31410}
31411
31412// String returns the string representation
31413func (s CreateStreamInput) String() string {
31414	return awsutil.Prettify(s)
31415}
31416
31417// GoString returns the string representation
31418func (s CreateStreamInput) GoString() string {
31419	return s.String()
31420}
31421
31422// Validate inspects the fields of the type to determine if they are valid.
31423func (s *CreateStreamInput) Validate() error {
31424	invalidParams := request.ErrInvalidParams{Context: "CreateStreamInput"}
31425	if s.Files == nil {
31426		invalidParams.Add(request.NewErrParamRequired("Files"))
31427	}
31428	if s.Files != nil && len(s.Files) < 1 {
31429		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
31430	}
31431	if s.RoleArn == nil {
31432		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
31433	}
31434	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
31435		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
31436	}
31437	if s.StreamId == nil {
31438		invalidParams.Add(request.NewErrParamRequired("StreamId"))
31439	}
31440	if s.StreamId != nil && len(*s.StreamId) < 1 {
31441		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
31442	}
31443	if s.Files != nil {
31444		for i, v := range s.Files {
31445			if v == nil {
31446				continue
31447			}
31448			if err := v.Validate(); err != nil {
31449				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
31450			}
31451		}
31452	}
31453	if s.Tags != nil {
31454		for i, v := range s.Tags {
31455			if v == nil {
31456				continue
31457			}
31458			if err := v.Validate(); err != nil {
31459				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31460			}
31461		}
31462	}
31463
31464	if invalidParams.Len() > 0 {
31465		return invalidParams
31466	}
31467	return nil
31468}
31469
31470// SetDescription sets the Description field's value.
31471func (s *CreateStreamInput) SetDescription(v string) *CreateStreamInput {
31472	s.Description = &v
31473	return s
31474}
31475
31476// SetFiles sets the Files field's value.
31477func (s *CreateStreamInput) SetFiles(v []*StreamFile) *CreateStreamInput {
31478	s.Files = v
31479	return s
31480}
31481
31482// SetRoleArn sets the RoleArn field's value.
31483func (s *CreateStreamInput) SetRoleArn(v string) *CreateStreamInput {
31484	s.RoleArn = &v
31485	return s
31486}
31487
31488// SetStreamId sets the StreamId field's value.
31489func (s *CreateStreamInput) SetStreamId(v string) *CreateStreamInput {
31490	s.StreamId = &v
31491	return s
31492}
31493
31494// SetTags sets the Tags field's value.
31495func (s *CreateStreamInput) SetTags(v []*Tag) *CreateStreamInput {
31496	s.Tags = v
31497	return s
31498}
31499
31500type CreateStreamOutput struct {
31501	_ struct{} `type:"structure"`
31502
31503	// A description of the stream.
31504	Description *string `locationName:"description" type:"string"`
31505
31506	// The stream ARN.
31507	StreamArn *string `locationName:"streamArn" type:"string"`
31508
31509	// The stream ID.
31510	StreamId *string `locationName:"streamId" min:"1" type:"string"`
31511
31512	// The version of the stream.
31513	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
31514}
31515
31516// String returns the string representation
31517func (s CreateStreamOutput) String() string {
31518	return awsutil.Prettify(s)
31519}
31520
31521// GoString returns the string representation
31522func (s CreateStreamOutput) GoString() string {
31523	return s.String()
31524}
31525
31526// SetDescription sets the Description field's value.
31527func (s *CreateStreamOutput) SetDescription(v string) *CreateStreamOutput {
31528	s.Description = &v
31529	return s
31530}
31531
31532// SetStreamArn sets the StreamArn field's value.
31533func (s *CreateStreamOutput) SetStreamArn(v string) *CreateStreamOutput {
31534	s.StreamArn = &v
31535	return s
31536}
31537
31538// SetStreamId sets the StreamId field's value.
31539func (s *CreateStreamOutput) SetStreamId(v string) *CreateStreamOutput {
31540	s.StreamId = &v
31541	return s
31542}
31543
31544// SetStreamVersion sets the StreamVersion field's value.
31545func (s *CreateStreamOutput) SetStreamVersion(v int64) *CreateStreamOutput {
31546	s.StreamVersion = &v
31547	return s
31548}
31549
31550type CreateThingGroupInput struct {
31551	_ struct{} `type:"structure"`
31552
31553	// The name of the parent thing group.
31554	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
31555
31556	// Metadata which can be used to manage the thing group.
31557	Tags []*Tag `locationName:"tags" type:"list"`
31558
31559	// The thing group name to create.
31560	//
31561	// ThingGroupName is a required field
31562	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
31563
31564	// The thing group properties.
31565	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
31566}
31567
31568// String returns the string representation
31569func (s CreateThingGroupInput) String() string {
31570	return awsutil.Prettify(s)
31571}
31572
31573// GoString returns the string representation
31574func (s CreateThingGroupInput) GoString() string {
31575	return s.String()
31576}
31577
31578// Validate inspects the fields of the type to determine if they are valid.
31579func (s *CreateThingGroupInput) Validate() error {
31580	invalidParams := request.ErrInvalidParams{Context: "CreateThingGroupInput"}
31581	if s.ParentGroupName != nil && len(*s.ParentGroupName) < 1 {
31582		invalidParams.Add(request.NewErrParamMinLen("ParentGroupName", 1))
31583	}
31584	if s.ThingGroupName == nil {
31585		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
31586	}
31587	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
31588		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
31589	}
31590	if s.Tags != nil {
31591		for i, v := range s.Tags {
31592			if v == nil {
31593				continue
31594			}
31595			if err := v.Validate(); err != nil {
31596				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31597			}
31598		}
31599	}
31600
31601	if invalidParams.Len() > 0 {
31602		return invalidParams
31603	}
31604	return nil
31605}
31606
31607// SetParentGroupName sets the ParentGroupName field's value.
31608func (s *CreateThingGroupInput) SetParentGroupName(v string) *CreateThingGroupInput {
31609	s.ParentGroupName = &v
31610	return s
31611}
31612
31613// SetTags sets the Tags field's value.
31614func (s *CreateThingGroupInput) SetTags(v []*Tag) *CreateThingGroupInput {
31615	s.Tags = v
31616	return s
31617}
31618
31619// SetThingGroupName sets the ThingGroupName field's value.
31620func (s *CreateThingGroupInput) SetThingGroupName(v string) *CreateThingGroupInput {
31621	s.ThingGroupName = &v
31622	return s
31623}
31624
31625// SetThingGroupProperties sets the ThingGroupProperties field's value.
31626func (s *CreateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateThingGroupInput {
31627	s.ThingGroupProperties = v
31628	return s
31629}
31630
31631type CreateThingGroupOutput struct {
31632	_ struct{} `type:"structure"`
31633
31634	// The thing group ARN.
31635	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
31636
31637	// The thing group ID.
31638	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
31639
31640	// The thing group name.
31641	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
31642}
31643
31644// String returns the string representation
31645func (s CreateThingGroupOutput) String() string {
31646	return awsutil.Prettify(s)
31647}
31648
31649// GoString returns the string representation
31650func (s CreateThingGroupOutput) GoString() string {
31651	return s.String()
31652}
31653
31654// SetThingGroupArn sets the ThingGroupArn field's value.
31655func (s *CreateThingGroupOutput) SetThingGroupArn(v string) *CreateThingGroupOutput {
31656	s.ThingGroupArn = &v
31657	return s
31658}
31659
31660// SetThingGroupId sets the ThingGroupId field's value.
31661func (s *CreateThingGroupOutput) SetThingGroupId(v string) *CreateThingGroupOutput {
31662	s.ThingGroupId = &v
31663	return s
31664}
31665
31666// SetThingGroupName sets the ThingGroupName field's value.
31667func (s *CreateThingGroupOutput) SetThingGroupName(v string) *CreateThingGroupOutput {
31668	s.ThingGroupName = &v
31669	return s
31670}
31671
31672// The input for the CreateThing operation.
31673type CreateThingInput struct {
31674	_ struct{} `type:"structure"`
31675
31676	// The attribute payload, which consists of up to three name/value pairs in
31677	// a JSON document. For example:
31678	//
31679	// {\"attributes\":{\"string1\":\"string2\"}}
31680	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
31681
31682	// The name of the billing group the thing will be added to.
31683	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
31684
31685	// The name of the thing to create.
31686	//
31687	// You can't change a thing's name after you create it. To change a thing's
31688	// name, you must create a new thing, give it the new name, and then delete
31689	// the old thing.
31690	//
31691	// ThingName is a required field
31692	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
31693
31694	// The name of the thing type associated with the new thing.
31695	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
31696}
31697
31698// String returns the string representation
31699func (s CreateThingInput) String() string {
31700	return awsutil.Prettify(s)
31701}
31702
31703// GoString returns the string representation
31704func (s CreateThingInput) GoString() string {
31705	return s.String()
31706}
31707
31708// Validate inspects the fields of the type to determine if they are valid.
31709func (s *CreateThingInput) Validate() error {
31710	invalidParams := request.ErrInvalidParams{Context: "CreateThingInput"}
31711	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
31712		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
31713	}
31714	if s.ThingName == nil {
31715		invalidParams.Add(request.NewErrParamRequired("ThingName"))
31716	}
31717	if s.ThingName != nil && len(*s.ThingName) < 1 {
31718		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
31719	}
31720	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
31721		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
31722	}
31723
31724	if invalidParams.Len() > 0 {
31725		return invalidParams
31726	}
31727	return nil
31728}
31729
31730// SetAttributePayload sets the AttributePayload field's value.
31731func (s *CreateThingInput) SetAttributePayload(v *AttributePayload) *CreateThingInput {
31732	s.AttributePayload = v
31733	return s
31734}
31735
31736// SetBillingGroupName sets the BillingGroupName field's value.
31737func (s *CreateThingInput) SetBillingGroupName(v string) *CreateThingInput {
31738	s.BillingGroupName = &v
31739	return s
31740}
31741
31742// SetThingName sets the ThingName field's value.
31743func (s *CreateThingInput) SetThingName(v string) *CreateThingInput {
31744	s.ThingName = &v
31745	return s
31746}
31747
31748// SetThingTypeName sets the ThingTypeName field's value.
31749func (s *CreateThingInput) SetThingTypeName(v string) *CreateThingInput {
31750	s.ThingTypeName = &v
31751	return s
31752}
31753
31754// The output of the CreateThing operation.
31755type CreateThingOutput struct {
31756	_ struct{} `type:"structure"`
31757
31758	// The ARN of the new thing.
31759	ThingArn *string `locationName:"thingArn" type:"string"`
31760
31761	// The thing ID.
31762	ThingId *string `locationName:"thingId" type:"string"`
31763
31764	// The name of the new thing.
31765	ThingName *string `locationName:"thingName" min:"1" type:"string"`
31766}
31767
31768// String returns the string representation
31769func (s CreateThingOutput) String() string {
31770	return awsutil.Prettify(s)
31771}
31772
31773// GoString returns the string representation
31774func (s CreateThingOutput) GoString() string {
31775	return s.String()
31776}
31777
31778// SetThingArn sets the ThingArn field's value.
31779func (s *CreateThingOutput) SetThingArn(v string) *CreateThingOutput {
31780	s.ThingArn = &v
31781	return s
31782}
31783
31784// SetThingId sets the ThingId field's value.
31785func (s *CreateThingOutput) SetThingId(v string) *CreateThingOutput {
31786	s.ThingId = &v
31787	return s
31788}
31789
31790// SetThingName sets the ThingName field's value.
31791func (s *CreateThingOutput) SetThingName(v string) *CreateThingOutput {
31792	s.ThingName = &v
31793	return s
31794}
31795
31796// The input for the CreateThingType operation.
31797type CreateThingTypeInput struct {
31798	_ struct{} `type:"structure"`
31799
31800	// Metadata which can be used to manage the thing type.
31801	Tags []*Tag `locationName:"tags" type:"list"`
31802
31803	// The name of the thing type.
31804	//
31805	// ThingTypeName is a required field
31806	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
31807
31808	// The ThingTypeProperties for the thing type to create. It contains information
31809	// about the new thing type including a description, and a list of searchable
31810	// thing attribute names.
31811	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
31812}
31813
31814// String returns the string representation
31815func (s CreateThingTypeInput) String() string {
31816	return awsutil.Prettify(s)
31817}
31818
31819// GoString returns the string representation
31820func (s CreateThingTypeInput) GoString() string {
31821	return s.String()
31822}
31823
31824// Validate inspects the fields of the type to determine if they are valid.
31825func (s *CreateThingTypeInput) Validate() error {
31826	invalidParams := request.ErrInvalidParams{Context: "CreateThingTypeInput"}
31827	if s.ThingTypeName == nil {
31828		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
31829	}
31830	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
31831		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
31832	}
31833	if s.Tags != nil {
31834		for i, v := range s.Tags {
31835			if v == nil {
31836				continue
31837			}
31838			if err := v.Validate(); err != nil {
31839				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31840			}
31841		}
31842	}
31843
31844	if invalidParams.Len() > 0 {
31845		return invalidParams
31846	}
31847	return nil
31848}
31849
31850// SetTags sets the Tags field's value.
31851func (s *CreateThingTypeInput) SetTags(v []*Tag) *CreateThingTypeInput {
31852	s.Tags = v
31853	return s
31854}
31855
31856// SetThingTypeName sets the ThingTypeName field's value.
31857func (s *CreateThingTypeInput) SetThingTypeName(v string) *CreateThingTypeInput {
31858	s.ThingTypeName = &v
31859	return s
31860}
31861
31862// SetThingTypeProperties sets the ThingTypeProperties field's value.
31863func (s *CreateThingTypeInput) SetThingTypeProperties(v *ThingTypeProperties) *CreateThingTypeInput {
31864	s.ThingTypeProperties = v
31865	return s
31866}
31867
31868// The output of the CreateThingType operation.
31869type CreateThingTypeOutput struct {
31870	_ struct{} `type:"structure"`
31871
31872	// The Amazon Resource Name (ARN) of the thing type.
31873	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
31874
31875	// The thing type ID.
31876	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
31877
31878	// The name of the thing type.
31879	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
31880}
31881
31882// String returns the string representation
31883func (s CreateThingTypeOutput) String() string {
31884	return awsutil.Prettify(s)
31885}
31886
31887// GoString returns the string representation
31888func (s CreateThingTypeOutput) GoString() string {
31889	return s.String()
31890}
31891
31892// SetThingTypeArn sets the ThingTypeArn field's value.
31893func (s *CreateThingTypeOutput) SetThingTypeArn(v string) *CreateThingTypeOutput {
31894	s.ThingTypeArn = &v
31895	return s
31896}
31897
31898// SetThingTypeId sets the ThingTypeId field's value.
31899func (s *CreateThingTypeOutput) SetThingTypeId(v string) *CreateThingTypeOutput {
31900	s.ThingTypeId = &v
31901	return s
31902}
31903
31904// SetThingTypeName sets the ThingTypeName field's value.
31905func (s *CreateThingTypeOutput) SetThingTypeName(v string) *CreateThingTypeOutput {
31906	s.ThingTypeName = &v
31907	return s
31908}
31909
31910type CreateTopicRuleDestinationInput struct {
31911	_ struct{} `type:"structure"`
31912
31913	// The topic rule destination configuration.
31914	//
31915	// DestinationConfiguration is a required field
31916	DestinationConfiguration *TopicRuleDestinationConfiguration `locationName:"destinationConfiguration" type:"structure" required:"true"`
31917}
31918
31919// String returns the string representation
31920func (s CreateTopicRuleDestinationInput) String() string {
31921	return awsutil.Prettify(s)
31922}
31923
31924// GoString returns the string representation
31925func (s CreateTopicRuleDestinationInput) GoString() string {
31926	return s.String()
31927}
31928
31929// Validate inspects the fields of the type to determine if they are valid.
31930func (s *CreateTopicRuleDestinationInput) Validate() error {
31931	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleDestinationInput"}
31932	if s.DestinationConfiguration == nil {
31933		invalidParams.Add(request.NewErrParamRequired("DestinationConfiguration"))
31934	}
31935	if s.DestinationConfiguration != nil {
31936		if err := s.DestinationConfiguration.Validate(); err != nil {
31937			invalidParams.AddNested("DestinationConfiguration", err.(request.ErrInvalidParams))
31938		}
31939	}
31940
31941	if invalidParams.Len() > 0 {
31942		return invalidParams
31943	}
31944	return nil
31945}
31946
31947// SetDestinationConfiguration sets the DestinationConfiguration field's value.
31948func (s *CreateTopicRuleDestinationInput) SetDestinationConfiguration(v *TopicRuleDestinationConfiguration) *CreateTopicRuleDestinationInput {
31949	s.DestinationConfiguration = v
31950	return s
31951}
31952
31953type CreateTopicRuleDestinationOutput struct {
31954	_ struct{} `type:"structure"`
31955
31956	// The topic rule destination.
31957	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
31958}
31959
31960// String returns the string representation
31961func (s CreateTopicRuleDestinationOutput) String() string {
31962	return awsutil.Prettify(s)
31963}
31964
31965// GoString returns the string representation
31966func (s CreateTopicRuleDestinationOutput) GoString() string {
31967	return s.String()
31968}
31969
31970// SetTopicRuleDestination sets the TopicRuleDestination field's value.
31971func (s *CreateTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *CreateTopicRuleDestinationOutput {
31972	s.TopicRuleDestination = v
31973	return s
31974}
31975
31976// The input for the CreateTopicRule operation.
31977type CreateTopicRuleInput struct {
31978	_ struct{} `type:"structure" payload:"TopicRulePayload"`
31979
31980	// The name of the rule.
31981	//
31982	// RuleName is a required field
31983	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
31984
31985	// Metadata which can be used to manage the topic rule.
31986	//
31987	// For URI Request parameters use format: ...key1=value1&key2=value2...
31988	//
31989	// For the CLI command-line parameter use format: --tags "key1=value1&key2=value2..."
31990	//
31991	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
31992	Tags *string `location:"header" locationName:"x-amz-tagging" type:"string"`
31993
31994	// The rule payload.
31995	//
31996	// TopicRulePayload is a required field
31997	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
31998}
31999
32000// String returns the string representation
32001func (s CreateTopicRuleInput) String() string {
32002	return awsutil.Prettify(s)
32003}
32004
32005// GoString returns the string representation
32006func (s CreateTopicRuleInput) GoString() string {
32007	return s.String()
32008}
32009
32010// Validate inspects the fields of the type to determine if they are valid.
32011func (s *CreateTopicRuleInput) Validate() error {
32012	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleInput"}
32013	if s.RuleName == nil {
32014		invalidParams.Add(request.NewErrParamRequired("RuleName"))
32015	}
32016	if s.RuleName != nil && len(*s.RuleName) < 1 {
32017		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
32018	}
32019	if s.TopicRulePayload == nil {
32020		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
32021	}
32022	if s.TopicRulePayload != nil {
32023		if err := s.TopicRulePayload.Validate(); err != nil {
32024			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
32025		}
32026	}
32027
32028	if invalidParams.Len() > 0 {
32029		return invalidParams
32030	}
32031	return nil
32032}
32033
32034// SetRuleName sets the RuleName field's value.
32035func (s *CreateTopicRuleInput) SetRuleName(v string) *CreateTopicRuleInput {
32036	s.RuleName = &v
32037	return s
32038}
32039
32040// SetTags sets the Tags field's value.
32041func (s *CreateTopicRuleInput) SetTags(v string) *CreateTopicRuleInput {
32042	s.Tags = &v
32043	return s
32044}
32045
32046// SetTopicRulePayload sets the TopicRulePayload field's value.
32047func (s *CreateTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *CreateTopicRuleInput {
32048	s.TopicRulePayload = v
32049	return s
32050}
32051
32052type CreateTopicRuleOutput struct {
32053	_ struct{} `type:"structure"`
32054}
32055
32056// String returns the string representation
32057func (s CreateTopicRuleOutput) String() string {
32058	return awsutil.Prettify(s)
32059}
32060
32061// GoString returns the string representation
32062func (s CreateTopicRuleOutput) GoString() string {
32063	return s.String()
32064}
32065
32066// Describes a custom method used to code sign a file.
32067type CustomCodeSigning struct {
32068	_ struct{} `type:"structure"`
32069
32070	// The certificate chain.
32071	CertificateChain *CodeSigningCertificateChain `locationName:"certificateChain" type:"structure"`
32072
32073	// The hash algorithm used to code sign the file.
32074	HashAlgorithm *string `locationName:"hashAlgorithm" type:"string"`
32075
32076	// The signature for the file.
32077	Signature *CodeSigningSignature `locationName:"signature" type:"structure"`
32078
32079	// The signature algorithm used to code sign the file.
32080	SignatureAlgorithm *string `locationName:"signatureAlgorithm" type:"string"`
32081}
32082
32083// String returns the string representation
32084func (s CustomCodeSigning) String() string {
32085	return awsutil.Prettify(s)
32086}
32087
32088// GoString returns the string representation
32089func (s CustomCodeSigning) GoString() string {
32090	return s.String()
32091}
32092
32093// SetCertificateChain sets the CertificateChain field's value.
32094func (s *CustomCodeSigning) SetCertificateChain(v *CodeSigningCertificateChain) *CustomCodeSigning {
32095	s.CertificateChain = v
32096	return s
32097}
32098
32099// SetHashAlgorithm sets the HashAlgorithm field's value.
32100func (s *CustomCodeSigning) SetHashAlgorithm(v string) *CustomCodeSigning {
32101	s.HashAlgorithm = &v
32102	return s
32103}
32104
32105// SetSignature sets the Signature field's value.
32106func (s *CustomCodeSigning) SetSignature(v *CodeSigningSignature) *CustomCodeSigning {
32107	s.Signature = v
32108	return s
32109}
32110
32111// SetSignatureAlgorithm sets the SignatureAlgorithm field's value.
32112func (s *CustomCodeSigning) SetSignatureAlgorithm(v string) *CustomCodeSigning {
32113	s.SignatureAlgorithm = &v
32114	return s
32115}
32116
32117type DeleteAccountAuditConfigurationInput struct {
32118	_ struct{} `type:"structure"`
32119
32120	// If true, all scheduled audits are deleted.
32121	DeleteScheduledAudits *bool `location:"querystring" locationName:"deleteScheduledAudits" type:"boolean"`
32122}
32123
32124// String returns the string representation
32125func (s DeleteAccountAuditConfigurationInput) String() string {
32126	return awsutil.Prettify(s)
32127}
32128
32129// GoString returns the string representation
32130func (s DeleteAccountAuditConfigurationInput) GoString() string {
32131	return s.String()
32132}
32133
32134// SetDeleteScheduledAudits sets the DeleteScheduledAudits field's value.
32135func (s *DeleteAccountAuditConfigurationInput) SetDeleteScheduledAudits(v bool) *DeleteAccountAuditConfigurationInput {
32136	s.DeleteScheduledAudits = &v
32137	return s
32138}
32139
32140type DeleteAccountAuditConfigurationOutput struct {
32141	_ struct{} `type:"structure"`
32142}
32143
32144// String returns the string representation
32145func (s DeleteAccountAuditConfigurationOutput) String() string {
32146	return awsutil.Prettify(s)
32147}
32148
32149// GoString returns the string representation
32150func (s DeleteAccountAuditConfigurationOutput) GoString() string {
32151	return s.String()
32152}
32153
32154type DeleteAuditSuppressionInput struct {
32155	_ struct{} `type:"structure"`
32156
32157	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
32158	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
32159	// to select which checks are enabled.)
32160	//
32161	// CheckName is a required field
32162	CheckName *string `locationName:"checkName" type:"string" required:"true"`
32163
32164	// Information that identifies the noncompliant resource.
32165	//
32166	// ResourceIdentifier is a required field
32167	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
32168}
32169
32170// String returns the string representation
32171func (s DeleteAuditSuppressionInput) String() string {
32172	return awsutil.Prettify(s)
32173}
32174
32175// GoString returns the string representation
32176func (s DeleteAuditSuppressionInput) GoString() string {
32177	return s.String()
32178}
32179
32180// Validate inspects the fields of the type to determine if they are valid.
32181func (s *DeleteAuditSuppressionInput) Validate() error {
32182	invalidParams := request.ErrInvalidParams{Context: "DeleteAuditSuppressionInput"}
32183	if s.CheckName == nil {
32184		invalidParams.Add(request.NewErrParamRequired("CheckName"))
32185	}
32186	if s.ResourceIdentifier == nil {
32187		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
32188	}
32189	if s.ResourceIdentifier != nil {
32190		if err := s.ResourceIdentifier.Validate(); err != nil {
32191			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
32192		}
32193	}
32194
32195	if invalidParams.Len() > 0 {
32196		return invalidParams
32197	}
32198	return nil
32199}
32200
32201// SetCheckName sets the CheckName field's value.
32202func (s *DeleteAuditSuppressionInput) SetCheckName(v string) *DeleteAuditSuppressionInput {
32203	s.CheckName = &v
32204	return s
32205}
32206
32207// SetResourceIdentifier sets the ResourceIdentifier field's value.
32208func (s *DeleteAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *DeleteAuditSuppressionInput {
32209	s.ResourceIdentifier = v
32210	return s
32211}
32212
32213type DeleteAuditSuppressionOutput struct {
32214	_ struct{} `type:"structure"`
32215}
32216
32217// String returns the string representation
32218func (s DeleteAuditSuppressionOutput) String() string {
32219	return awsutil.Prettify(s)
32220}
32221
32222// GoString returns the string representation
32223func (s DeleteAuditSuppressionOutput) GoString() string {
32224	return s.String()
32225}
32226
32227type DeleteAuthorizerInput struct {
32228	_ struct{} `type:"structure"`
32229
32230	// The name of the authorizer to delete.
32231	//
32232	// AuthorizerName is a required field
32233	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
32234}
32235
32236// String returns the string representation
32237func (s DeleteAuthorizerInput) String() string {
32238	return awsutil.Prettify(s)
32239}
32240
32241// GoString returns the string representation
32242func (s DeleteAuthorizerInput) GoString() string {
32243	return s.String()
32244}
32245
32246// Validate inspects the fields of the type to determine if they are valid.
32247func (s *DeleteAuthorizerInput) Validate() error {
32248	invalidParams := request.ErrInvalidParams{Context: "DeleteAuthorizerInput"}
32249	if s.AuthorizerName == nil {
32250		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
32251	}
32252	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
32253		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
32254	}
32255
32256	if invalidParams.Len() > 0 {
32257		return invalidParams
32258	}
32259	return nil
32260}
32261
32262// SetAuthorizerName sets the AuthorizerName field's value.
32263func (s *DeleteAuthorizerInput) SetAuthorizerName(v string) *DeleteAuthorizerInput {
32264	s.AuthorizerName = &v
32265	return s
32266}
32267
32268type DeleteAuthorizerOutput struct {
32269	_ struct{} `type:"structure"`
32270}
32271
32272// String returns the string representation
32273func (s DeleteAuthorizerOutput) String() string {
32274	return awsutil.Prettify(s)
32275}
32276
32277// GoString returns the string representation
32278func (s DeleteAuthorizerOutput) GoString() string {
32279	return s.String()
32280}
32281
32282type DeleteBillingGroupInput struct {
32283	_ struct{} `type:"structure"`
32284
32285	// The name of the billing group.
32286	//
32287	// BillingGroupName is a required field
32288	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
32289
32290	// The expected version of the billing group. If the version of the billing
32291	// group does not match the expected version specified in the request, the DeleteBillingGroup
32292	// request is rejected with a VersionConflictException.
32293	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
32294}
32295
32296// String returns the string representation
32297func (s DeleteBillingGroupInput) String() string {
32298	return awsutil.Prettify(s)
32299}
32300
32301// GoString returns the string representation
32302func (s DeleteBillingGroupInput) GoString() string {
32303	return s.String()
32304}
32305
32306// Validate inspects the fields of the type to determine if they are valid.
32307func (s *DeleteBillingGroupInput) Validate() error {
32308	invalidParams := request.ErrInvalidParams{Context: "DeleteBillingGroupInput"}
32309	if s.BillingGroupName == nil {
32310		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
32311	}
32312	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
32313		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
32314	}
32315
32316	if invalidParams.Len() > 0 {
32317		return invalidParams
32318	}
32319	return nil
32320}
32321
32322// SetBillingGroupName sets the BillingGroupName field's value.
32323func (s *DeleteBillingGroupInput) SetBillingGroupName(v string) *DeleteBillingGroupInput {
32324	s.BillingGroupName = &v
32325	return s
32326}
32327
32328// SetExpectedVersion sets the ExpectedVersion field's value.
32329func (s *DeleteBillingGroupInput) SetExpectedVersion(v int64) *DeleteBillingGroupInput {
32330	s.ExpectedVersion = &v
32331	return s
32332}
32333
32334type DeleteBillingGroupOutput struct {
32335	_ struct{} `type:"structure"`
32336}
32337
32338// String returns the string representation
32339func (s DeleteBillingGroupOutput) String() string {
32340	return awsutil.Prettify(s)
32341}
32342
32343// GoString returns the string representation
32344func (s DeleteBillingGroupOutput) GoString() string {
32345	return s.String()
32346}
32347
32348// Input for the DeleteCACertificate operation.
32349type DeleteCACertificateInput struct {
32350	_ struct{} `type:"structure"`
32351
32352	// The ID of the certificate to delete. (The last part of the certificate ARN
32353	// contains the certificate ID.)
32354	//
32355	// CertificateId is a required field
32356	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
32357}
32358
32359// String returns the string representation
32360func (s DeleteCACertificateInput) String() string {
32361	return awsutil.Prettify(s)
32362}
32363
32364// GoString returns the string representation
32365func (s DeleteCACertificateInput) GoString() string {
32366	return s.String()
32367}
32368
32369// Validate inspects the fields of the type to determine if they are valid.
32370func (s *DeleteCACertificateInput) Validate() error {
32371	invalidParams := request.ErrInvalidParams{Context: "DeleteCACertificateInput"}
32372	if s.CertificateId == nil {
32373		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
32374	}
32375	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
32376		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
32377	}
32378
32379	if invalidParams.Len() > 0 {
32380		return invalidParams
32381	}
32382	return nil
32383}
32384
32385// SetCertificateId sets the CertificateId field's value.
32386func (s *DeleteCACertificateInput) SetCertificateId(v string) *DeleteCACertificateInput {
32387	s.CertificateId = &v
32388	return s
32389}
32390
32391// The output for the DeleteCACertificate operation.
32392type DeleteCACertificateOutput struct {
32393	_ struct{} `type:"structure"`
32394}
32395
32396// String returns the string representation
32397func (s DeleteCACertificateOutput) String() string {
32398	return awsutil.Prettify(s)
32399}
32400
32401// GoString returns the string representation
32402func (s DeleteCACertificateOutput) GoString() string {
32403	return s.String()
32404}
32405
32406// The input for the DeleteCertificate operation.
32407type DeleteCertificateInput struct {
32408	_ struct{} `type:"structure"`
32409
32410	// The ID of the certificate. (The last part of the certificate ARN contains
32411	// the certificate ID.)
32412	//
32413	// CertificateId is a required field
32414	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
32415
32416	// Forces the deletion of a certificate if it is inactive and is not attached
32417	// to an IoT thing.
32418	ForceDelete *bool `location:"querystring" locationName:"forceDelete" type:"boolean"`
32419}
32420
32421// String returns the string representation
32422func (s DeleteCertificateInput) String() string {
32423	return awsutil.Prettify(s)
32424}
32425
32426// GoString returns the string representation
32427func (s DeleteCertificateInput) GoString() string {
32428	return s.String()
32429}
32430
32431// Validate inspects the fields of the type to determine if they are valid.
32432func (s *DeleteCertificateInput) Validate() error {
32433	invalidParams := request.ErrInvalidParams{Context: "DeleteCertificateInput"}
32434	if s.CertificateId == nil {
32435		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
32436	}
32437	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
32438		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
32439	}
32440
32441	if invalidParams.Len() > 0 {
32442		return invalidParams
32443	}
32444	return nil
32445}
32446
32447// SetCertificateId sets the CertificateId field's value.
32448func (s *DeleteCertificateInput) SetCertificateId(v string) *DeleteCertificateInput {
32449	s.CertificateId = &v
32450	return s
32451}
32452
32453// SetForceDelete sets the ForceDelete field's value.
32454func (s *DeleteCertificateInput) SetForceDelete(v bool) *DeleteCertificateInput {
32455	s.ForceDelete = &v
32456	return s
32457}
32458
32459type DeleteCertificateOutput struct {
32460	_ struct{} `type:"structure"`
32461}
32462
32463// String returns the string representation
32464func (s DeleteCertificateOutput) String() string {
32465	return awsutil.Prettify(s)
32466}
32467
32468// GoString returns the string representation
32469func (s DeleteCertificateOutput) GoString() string {
32470	return s.String()
32471}
32472
32473// You can't delete the resource because it is attached to one or more resources.
32474type DeleteConflictException struct {
32475	_            struct{}                  `type:"structure"`
32476	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
32477
32478	// The message for the exception.
32479	Message_ *string `locationName:"message" type:"string"`
32480}
32481
32482// String returns the string representation
32483func (s DeleteConflictException) String() string {
32484	return awsutil.Prettify(s)
32485}
32486
32487// GoString returns the string representation
32488func (s DeleteConflictException) GoString() string {
32489	return s.String()
32490}
32491
32492func newErrorDeleteConflictException(v protocol.ResponseMetadata) error {
32493	return &DeleteConflictException{
32494		RespMetadata: v,
32495	}
32496}
32497
32498// Code returns the exception type name.
32499func (s *DeleteConflictException) Code() string {
32500	return "DeleteConflictException"
32501}
32502
32503// Message returns the exception's message.
32504func (s *DeleteConflictException) Message() string {
32505	if s.Message_ != nil {
32506		return *s.Message_
32507	}
32508	return ""
32509}
32510
32511// OrigErr always returns nil, satisfies awserr.Error interface.
32512func (s *DeleteConflictException) OrigErr() error {
32513	return nil
32514}
32515
32516func (s *DeleteConflictException) Error() string {
32517	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
32518}
32519
32520// Status code returns the HTTP status code for the request's response error.
32521func (s *DeleteConflictException) StatusCode() int {
32522	return s.RespMetadata.StatusCode
32523}
32524
32525// RequestID returns the service's response RequestID for request.
32526func (s *DeleteConflictException) RequestID() string {
32527	return s.RespMetadata.RequestID
32528}
32529
32530type DeleteCustomMetricInput struct {
32531	_ struct{} `type:"structure"`
32532
32533	// The name of the custom metric.
32534	//
32535	// MetricName is a required field
32536	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
32537}
32538
32539// String returns the string representation
32540func (s DeleteCustomMetricInput) String() string {
32541	return awsutil.Prettify(s)
32542}
32543
32544// GoString returns the string representation
32545func (s DeleteCustomMetricInput) GoString() string {
32546	return s.String()
32547}
32548
32549// Validate inspects the fields of the type to determine if they are valid.
32550func (s *DeleteCustomMetricInput) Validate() error {
32551	invalidParams := request.ErrInvalidParams{Context: "DeleteCustomMetricInput"}
32552	if s.MetricName == nil {
32553		invalidParams.Add(request.NewErrParamRequired("MetricName"))
32554	}
32555	if s.MetricName != nil && len(*s.MetricName) < 1 {
32556		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
32557	}
32558
32559	if invalidParams.Len() > 0 {
32560		return invalidParams
32561	}
32562	return nil
32563}
32564
32565// SetMetricName sets the MetricName field's value.
32566func (s *DeleteCustomMetricInput) SetMetricName(v string) *DeleteCustomMetricInput {
32567	s.MetricName = &v
32568	return s
32569}
32570
32571type DeleteCustomMetricOutput struct {
32572	_ struct{} `type:"structure"`
32573}
32574
32575// String returns the string representation
32576func (s DeleteCustomMetricOutput) String() string {
32577	return awsutil.Prettify(s)
32578}
32579
32580// GoString returns the string representation
32581func (s DeleteCustomMetricOutput) GoString() string {
32582	return s.String()
32583}
32584
32585type DeleteDimensionInput struct {
32586	_ struct{} `type:"structure"`
32587
32588	// The unique identifier for the dimension that you want to delete.
32589	//
32590	// Name is a required field
32591	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
32592}
32593
32594// String returns the string representation
32595func (s DeleteDimensionInput) String() string {
32596	return awsutil.Prettify(s)
32597}
32598
32599// GoString returns the string representation
32600func (s DeleteDimensionInput) GoString() string {
32601	return s.String()
32602}
32603
32604// Validate inspects the fields of the type to determine if they are valid.
32605func (s *DeleteDimensionInput) Validate() error {
32606	invalidParams := request.ErrInvalidParams{Context: "DeleteDimensionInput"}
32607	if s.Name == nil {
32608		invalidParams.Add(request.NewErrParamRequired("Name"))
32609	}
32610	if s.Name != nil && len(*s.Name) < 1 {
32611		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
32612	}
32613
32614	if invalidParams.Len() > 0 {
32615		return invalidParams
32616	}
32617	return nil
32618}
32619
32620// SetName sets the Name field's value.
32621func (s *DeleteDimensionInput) SetName(v string) *DeleteDimensionInput {
32622	s.Name = &v
32623	return s
32624}
32625
32626type DeleteDimensionOutput struct {
32627	_ struct{} `type:"structure"`
32628}
32629
32630// String returns the string representation
32631func (s DeleteDimensionOutput) String() string {
32632	return awsutil.Prettify(s)
32633}
32634
32635// GoString returns the string representation
32636func (s DeleteDimensionOutput) GoString() string {
32637	return s.String()
32638}
32639
32640type DeleteDomainConfigurationInput struct {
32641	_ struct{} `type:"structure"`
32642
32643	// The name of the domain configuration to be deleted.
32644	//
32645	// DomainConfigurationName is a required field
32646	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
32647}
32648
32649// String returns the string representation
32650func (s DeleteDomainConfigurationInput) String() string {
32651	return awsutil.Prettify(s)
32652}
32653
32654// GoString returns the string representation
32655func (s DeleteDomainConfigurationInput) GoString() string {
32656	return s.String()
32657}
32658
32659// Validate inspects the fields of the type to determine if they are valid.
32660func (s *DeleteDomainConfigurationInput) Validate() error {
32661	invalidParams := request.ErrInvalidParams{Context: "DeleteDomainConfigurationInput"}
32662	if s.DomainConfigurationName == nil {
32663		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
32664	}
32665	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
32666		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
32667	}
32668
32669	if invalidParams.Len() > 0 {
32670		return invalidParams
32671	}
32672	return nil
32673}
32674
32675// SetDomainConfigurationName sets the DomainConfigurationName field's value.
32676func (s *DeleteDomainConfigurationInput) SetDomainConfigurationName(v string) *DeleteDomainConfigurationInput {
32677	s.DomainConfigurationName = &v
32678	return s
32679}
32680
32681type DeleteDomainConfigurationOutput struct {
32682	_ struct{} `type:"structure"`
32683}
32684
32685// String returns the string representation
32686func (s DeleteDomainConfigurationOutput) String() string {
32687	return awsutil.Prettify(s)
32688}
32689
32690// GoString returns the string representation
32691func (s DeleteDomainConfigurationOutput) GoString() string {
32692	return s.String()
32693}
32694
32695type DeleteDynamicThingGroupInput struct {
32696	_ struct{} `type:"structure"`
32697
32698	// The expected version of the dynamic thing group to delete.
32699	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
32700
32701	// The name of the dynamic thing group to delete.
32702	//
32703	// ThingGroupName is a required field
32704	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
32705}
32706
32707// String returns the string representation
32708func (s DeleteDynamicThingGroupInput) String() string {
32709	return awsutil.Prettify(s)
32710}
32711
32712// GoString returns the string representation
32713func (s DeleteDynamicThingGroupInput) GoString() string {
32714	return s.String()
32715}
32716
32717// Validate inspects the fields of the type to determine if they are valid.
32718func (s *DeleteDynamicThingGroupInput) Validate() error {
32719	invalidParams := request.ErrInvalidParams{Context: "DeleteDynamicThingGroupInput"}
32720	if s.ThingGroupName == nil {
32721		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
32722	}
32723	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
32724		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
32725	}
32726
32727	if invalidParams.Len() > 0 {
32728		return invalidParams
32729	}
32730	return nil
32731}
32732
32733// SetExpectedVersion sets the ExpectedVersion field's value.
32734func (s *DeleteDynamicThingGroupInput) SetExpectedVersion(v int64) *DeleteDynamicThingGroupInput {
32735	s.ExpectedVersion = &v
32736	return s
32737}
32738
32739// SetThingGroupName sets the ThingGroupName field's value.
32740func (s *DeleteDynamicThingGroupInput) SetThingGroupName(v string) *DeleteDynamicThingGroupInput {
32741	s.ThingGroupName = &v
32742	return s
32743}
32744
32745type DeleteDynamicThingGroupOutput struct {
32746	_ struct{} `type:"structure"`
32747}
32748
32749// String returns the string representation
32750func (s DeleteDynamicThingGroupOutput) String() string {
32751	return awsutil.Prettify(s)
32752}
32753
32754// GoString returns the string representation
32755func (s DeleteDynamicThingGroupOutput) GoString() string {
32756	return s.String()
32757}
32758
32759type DeleteJobExecutionInput struct {
32760	_ struct{} `type:"structure"`
32761
32762	// The ID of the job execution to be deleted. The executionNumber refers to
32763	// the execution of a particular job on a particular device.
32764	//
32765	// Note that once a job execution is deleted, the executionNumber may be reused
32766	// by IoT, so be sure you get and use the correct value here.
32767	//
32768	// ExecutionNumber is a required field
32769	ExecutionNumber *int64 `location:"uri" locationName:"executionNumber" type:"long" required:"true"`
32770
32771	// (Optional) When true, you can delete a job execution which is "IN_PROGRESS".
32772	// Otherwise, you can only delete a job execution which is in a terminal state
32773	// ("SUCCEEDED", "FAILED", "REJECTED", "REMOVED" or "CANCELED") or an exception
32774	// will occur. The default is false.
32775	//
32776	// Deleting a job execution which is "IN_PROGRESS", will cause the device to
32777	// be unable to access job information or update the job execution status. Use
32778	// caution and ensure that the device is able to recover to a valid state.
32779	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
32780
32781	// The ID of the job whose execution on a particular device will be deleted.
32782	//
32783	// JobId is a required field
32784	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
32785
32786	// The namespace used to indicate that a job is a customer-managed job.
32787	//
32788	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
32789	// to MQTT topics that contain the value in the following format.
32790	//
32791	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
32792	//
32793	// The namespaceId feature is in public preview.
32794	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
32795
32796	// The name of the thing whose job execution will be deleted.
32797	//
32798	// ThingName is a required field
32799	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
32800}
32801
32802// String returns the string representation
32803func (s DeleteJobExecutionInput) String() string {
32804	return awsutil.Prettify(s)
32805}
32806
32807// GoString returns the string representation
32808func (s DeleteJobExecutionInput) GoString() string {
32809	return s.String()
32810}
32811
32812// Validate inspects the fields of the type to determine if they are valid.
32813func (s *DeleteJobExecutionInput) Validate() error {
32814	invalidParams := request.ErrInvalidParams{Context: "DeleteJobExecutionInput"}
32815	if s.ExecutionNumber == nil {
32816		invalidParams.Add(request.NewErrParamRequired("ExecutionNumber"))
32817	}
32818	if s.JobId == nil {
32819		invalidParams.Add(request.NewErrParamRequired("JobId"))
32820	}
32821	if s.JobId != nil && len(*s.JobId) < 1 {
32822		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
32823	}
32824	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
32825		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
32826	}
32827	if s.ThingName == nil {
32828		invalidParams.Add(request.NewErrParamRequired("ThingName"))
32829	}
32830	if s.ThingName != nil && len(*s.ThingName) < 1 {
32831		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
32832	}
32833
32834	if invalidParams.Len() > 0 {
32835		return invalidParams
32836	}
32837	return nil
32838}
32839
32840// SetExecutionNumber sets the ExecutionNumber field's value.
32841func (s *DeleteJobExecutionInput) SetExecutionNumber(v int64) *DeleteJobExecutionInput {
32842	s.ExecutionNumber = &v
32843	return s
32844}
32845
32846// SetForce sets the Force field's value.
32847func (s *DeleteJobExecutionInput) SetForce(v bool) *DeleteJobExecutionInput {
32848	s.Force = &v
32849	return s
32850}
32851
32852// SetJobId sets the JobId field's value.
32853func (s *DeleteJobExecutionInput) SetJobId(v string) *DeleteJobExecutionInput {
32854	s.JobId = &v
32855	return s
32856}
32857
32858// SetNamespaceId sets the NamespaceId field's value.
32859func (s *DeleteJobExecutionInput) SetNamespaceId(v string) *DeleteJobExecutionInput {
32860	s.NamespaceId = &v
32861	return s
32862}
32863
32864// SetThingName sets the ThingName field's value.
32865func (s *DeleteJobExecutionInput) SetThingName(v string) *DeleteJobExecutionInput {
32866	s.ThingName = &v
32867	return s
32868}
32869
32870type DeleteJobExecutionOutput struct {
32871	_ struct{} `type:"structure"`
32872}
32873
32874// String returns the string representation
32875func (s DeleteJobExecutionOutput) String() string {
32876	return awsutil.Prettify(s)
32877}
32878
32879// GoString returns the string representation
32880func (s DeleteJobExecutionOutput) GoString() string {
32881	return s.String()
32882}
32883
32884type DeleteJobInput struct {
32885	_ struct{} `type:"structure"`
32886
32887	// (Optional) When true, you can delete a job which is "IN_PROGRESS". Otherwise,
32888	// you can only delete a job which is in a terminal state ("COMPLETED" or "CANCELED")
32889	// or an exception will occur. The default is false.
32890	//
32891	// Deleting a job which is "IN_PROGRESS", will cause a device which is executing
32892	// the job to be unable to access job information or update the job execution
32893	// status. Use caution and ensure that each device executing a job which is
32894	// deleted is able to recover to a valid state.
32895	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
32896
32897	// The ID of the job to be deleted.
32898	//
32899	// After a job deletion is completed, you may reuse this jobId when you create
32900	// a new job. However, this is not recommended, and you must ensure that your
32901	// devices are not using the jobId to refer to the deleted job.
32902	//
32903	// JobId is a required field
32904	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
32905
32906	// The namespace used to indicate that a job is a customer-managed job.
32907	//
32908	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
32909	// to MQTT topics that contain the value in the following format.
32910	//
32911	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
32912	//
32913	// The namespaceId feature is in public preview.
32914	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
32915}
32916
32917// String returns the string representation
32918func (s DeleteJobInput) String() string {
32919	return awsutil.Prettify(s)
32920}
32921
32922// GoString returns the string representation
32923func (s DeleteJobInput) GoString() string {
32924	return s.String()
32925}
32926
32927// Validate inspects the fields of the type to determine if they are valid.
32928func (s *DeleteJobInput) Validate() error {
32929	invalidParams := request.ErrInvalidParams{Context: "DeleteJobInput"}
32930	if s.JobId == nil {
32931		invalidParams.Add(request.NewErrParamRequired("JobId"))
32932	}
32933	if s.JobId != nil && len(*s.JobId) < 1 {
32934		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
32935	}
32936	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
32937		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
32938	}
32939
32940	if invalidParams.Len() > 0 {
32941		return invalidParams
32942	}
32943	return nil
32944}
32945
32946// SetForce sets the Force field's value.
32947func (s *DeleteJobInput) SetForce(v bool) *DeleteJobInput {
32948	s.Force = &v
32949	return s
32950}
32951
32952// SetJobId sets the JobId field's value.
32953func (s *DeleteJobInput) SetJobId(v string) *DeleteJobInput {
32954	s.JobId = &v
32955	return s
32956}
32957
32958// SetNamespaceId sets the NamespaceId field's value.
32959func (s *DeleteJobInput) SetNamespaceId(v string) *DeleteJobInput {
32960	s.NamespaceId = &v
32961	return s
32962}
32963
32964type DeleteJobOutput struct {
32965	_ struct{} `type:"structure"`
32966}
32967
32968// String returns the string representation
32969func (s DeleteJobOutput) String() string {
32970	return awsutil.Prettify(s)
32971}
32972
32973// GoString returns the string representation
32974func (s DeleteJobOutput) GoString() string {
32975	return s.String()
32976}
32977
32978type DeleteJobTemplateInput struct {
32979	_ struct{} `type:"structure"`
32980
32981	// The unique identifier of the job template to delete.
32982	//
32983	// JobTemplateId is a required field
32984	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
32985}
32986
32987// String returns the string representation
32988func (s DeleteJobTemplateInput) String() string {
32989	return awsutil.Prettify(s)
32990}
32991
32992// GoString returns the string representation
32993func (s DeleteJobTemplateInput) GoString() string {
32994	return s.String()
32995}
32996
32997// Validate inspects the fields of the type to determine if they are valid.
32998func (s *DeleteJobTemplateInput) Validate() error {
32999	invalidParams := request.ErrInvalidParams{Context: "DeleteJobTemplateInput"}
33000	if s.JobTemplateId == nil {
33001		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
33002	}
33003	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
33004		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
33005	}
33006
33007	if invalidParams.Len() > 0 {
33008		return invalidParams
33009	}
33010	return nil
33011}
33012
33013// SetJobTemplateId sets the JobTemplateId field's value.
33014func (s *DeleteJobTemplateInput) SetJobTemplateId(v string) *DeleteJobTemplateInput {
33015	s.JobTemplateId = &v
33016	return s
33017}
33018
33019type DeleteJobTemplateOutput struct {
33020	_ struct{} `type:"structure"`
33021}
33022
33023// String returns the string representation
33024func (s DeleteJobTemplateOutput) String() string {
33025	return awsutil.Prettify(s)
33026}
33027
33028// GoString returns the string representation
33029func (s DeleteJobTemplateOutput) GoString() string {
33030	return s.String()
33031}
33032
33033type DeleteMitigationActionInput struct {
33034	_ struct{} `type:"structure"`
33035
33036	// The name of the mitigation action that you want to delete.
33037	//
33038	// ActionName is a required field
33039	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
33040}
33041
33042// String returns the string representation
33043func (s DeleteMitigationActionInput) String() string {
33044	return awsutil.Prettify(s)
33045}
33046
33047// GoString returns the string representation
33048func (s DeleteMitigationActionInput) GoString() string {
33049	return s.String()
33050}
33051
33052// Validate inspects the fields of the type to determine if they are valid.
33053func (s *DeleteMitigationActionInput) Validate() error {
33054	invalidParams := request.ErrInvalidParams{Context: "DeleteMitigationActionInput"}
33055	if s.ActionName == nil {
33056		invalidParams.Add(request.NewErrParamRequired("ActionName"))
33057	}
33058	if s.ActionName != nil && len(*s.ActionName) < 1 {
33059		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
33060	}
33061
33062	if invalidParams.Len() > 0 {
33063		return invalidParams
33064	}
33065	return nil
33066}
33067
33068// SetActionName sets the ActionName field's value.
33069func (s *DeleteMitigationActionInput) SetActionName(v string) *DeleteMitigationActionInput {
33070	s.ActionName = &v
33071	return s
33072}
33073
33074type DeleteMitigationActionOutput struct {
33075	_ struct{} `type:"structure"`
33076}
33077
33078// String returns the string representation
33079func (s DeleteMitigationActionOutput) String() string {
33080	return awsutil.Prettify(s)
33081}
33082
33083// GoString returns the string representation
33084func (s DeleteMitigationActionOutput) GoString() string {
33085	return s.String()
33086}
33087
33088type DeleteOTAUpdateInput struct {
33089	_ struct{} `type:"structure"`
33090
33091	// When true, the stream created by the OTAUpdate process is deleted when the
33092	// OTA update is deleted. Ignored if the stream specified in the OTAUpdate is
33093	// supplied by the user.
33094	DeleteStream *bool `location:"querystring" locationName:"deleteStream" type:"boolean"`
33095
33096	// When true, deletes the AWS job created by the OTAUpdate process even if it
33097	// is "IN_PROGRESS". Otherwise, if the job is not in a terminal state ("COMPLETED"
33098	// or "CANCELED") an exception will occur. The default is false.
33099	ForceDeleteAWSJob *bool `location:"querystring" locationName:"forceDeleteAWSJob" type:"boolean"`
33100
33101	// The ID of the OTA update to delete.
33102	//
33103	// OtaUpdateId is a required field
33104	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
33105}
33106
33107// String returns the string representation
33108func (s DeleteOTAUpdateInput) String() string {
33109	return awsutil.Prettify(s)
33110}
33111
33112// GoString returns the string representation
33113func (s DeleteOTAUpdateInput) GoString() string {
33114	return s.String()
33115}
33116
33117// Validate inspects the fields of the type to determine if they are valid.
33118func (s *DeleteOTAUpdateInput) Validate() error {
33119	invalidParams := request.ErrInvalidParams{Context: "DeleteOTAUpdateInput"}
33120	if s.OtaUpdateId == nil {
33121		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
33122	}
33123	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
33124		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
33125	}
33126
33127	if invalidParams.Len() > 0 {
33128		return invalidParams
33129	}
33130	return nil
33131}
33132
33133// SetDeleteStream sets the DeleteStream field's value.
33134func (s *DeleteOTAUpdateInput) SetDeleteStream(v bool) *DeleteOTAUpdateInput {
33135	s.DeleteStream = &v
33136	return s
33137}
33138
33139// SetForceDeleteAWSJob sets the ForceDeleteAWSJob field's value.
33140func (s *DeleteOTAUpdateInput) SetForceDeleteAWSJob(v bool) *DeleteOTAUpdateInput {
33141	s.ForceDeleteAWSJob = &v
33142	return s
33143}
33144
33145// SetOtaUpdateId sets the OtaUpdateId field's value.
33146func (s *DeleteOTAUpdateInput) SetOtaUpdateId(v string) *DeleteOTAUpdateInput {
33147	s.OtaUpdateId = &v
33148	return s
33149}
33150
33151type DeleteOTAUpdateOutput struct {
33152	_ struct{} `type:"structure"`
33153}
33154
33155// String returns the string representation
33156func (s DeleteOTAUpdateOutput) String() string {
33157	return awsutil.Prettify(s)
33158}
33159
33160// GoString returns the string representation
33161func (s DeleteOTAUpdateOutput) GoString() string {
33162	return s.String()
33163}
33164
33165// The input for the DeletePolicy operation.
33166type DeletePolicyInput struct {
33167	_ struct{} `type:"structure"`
33168
33169	// The name of the policy to delete.
33170	//
33171	// PolicyName is a required field
33172	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
33173}
33174
33175// String returns the string representation
33176func (s DeletePolicyInput) String() string {
33177	return awsutil.Prettify(s)
33178}
33179
33180// GoString returns the string representation
33181func (s DeletePolicyInput) GoString() string {
33182	return s.String()
33183}
33184
33185// Validate inspects the fields of the type to determine if they are valid.
33186func (s *DeletePolicyInput) Validate() error {
33187	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
33188	if s.PolicyName == nil {
33189		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
33190	}
33191	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
33192		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
33193	}
33194
33195	if invalidParams.Len() > 0 {
33196		return invalidParams
33197	}
33198	return nil
33199}
33200
33201// SetPolicyName sets the PolicyName field's value.
33202func (s *DeletePolicyInput) SetPolicyName(v string) *DeletePolicyInput {
33203	s.PolicyName = &v
33204	return s
33205}
33206
33207type DeletePolicyOutput struct {
33208	_ struct{} `type:"structure"`
33209}
33210
33211// String returns the string representation
33212func (s DeletePolicyOutput) String() string {
33213	return awsutil.Prettify(s)
33214}
33215
33216// GoString returns the string representation
33217func (s DeletePolicyOutput) GoString() string {
33218	return s.String()
33219}
33220
33221// The input for the DeletePolicyVersion operation.
33222type DeletePolicyVersionInput struct {
33223	_ struct{} `type:"structure"`
33224
33225	// The name of the policy.
33226	//
33227	// PolicyName is a required field
33228	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
33229
33230	// The policy version ID.
33231	//
33232	// PolicyVersionId is a required field
33233	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
33234}
33235
33236// String returns the string representation
33237func (s DeletePolicyVersionInput) String() string {
33238	return awsutil.Prettify(s)
33239}
33240
33241// GoString returns the string representation
33242func (s DeletePolicyVersionInput) GoString() string {
33243	return s.String()
33244}
33245
33246// Validate inspects the fields of the type to determine if they are valid.
33247func (s *DeletePolicyVersionInput) Validate() error {
33248	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyVersionInput"}
33249	if s.PolicyName == nil {
33250		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
33251	}
33252	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
33253		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
33254	}
33255	if s.PolicyVersionId == nil {
33256		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
33257	}
33258	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
33259		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
33260	}
33261
33262	if invalidParams.Len() > 0 {
33263		return invalidParams
33264	}
33265	return nil
33266}
33267
33268// SetPolicyName sets the PolicyName field's value.
33269func (s *DeletePolicyVersionInput) SetPolicyName(v string) *DeletePolicyVersionInput {
33270	s.PolicyName = &v
33271	return s
33272}
33273
33274// SetPolicyVersionId sets the PolicyVersionId field's value.
33275func (s *DeletePolicyVersionInput) SetPolicyVersionId(v string) *DeletePolicyVersionInput {
33276	s.PolicyVersionId = &v
33277	return s
33278}
33279
33280type DeletePolicyVersionOutput struct {
33281	_ struct{} `type:"structure"`
33282}
33283
33284// String returns the string representation
33285func (s DeletePolicyVersionOutput) String() string {
33286	return awsutil.Prettify(s)
33287}
33288
33289// GoString returns the string representation
33290func (s DeletePolicyVersionOutput) GoString() string {
33291	return s.String()
33292}
33293
33294type DeleteProvisioningTemplateInput struct {
33295	_ struct{} `type:"structure"`
33296
33297	// The name of the fleet provision template to delete.
33298	//
33299	// TemplateName is a required field
33300	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
33301}
33302
33303// String returns the string representation
33304func (s DeleteProvisioningTemplateInput) String() string {
33305	return awsutil.Prettify(s)
33306}
33307
33308// GoString returns the string representation
33309func (s DeleteProvisioningTemplateInput) GoString() string {
33310	return s.String()
33311}
33312
33313// Validate inspects the fields of the type to determine if they are valid.
33314func (s *DeleteProvisioningTemplateInput) Validate() error {
33315	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateInput"}
33316	if s.TemplateName == nil {
33317		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
33318	}
33319	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
33320		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
33321	}
33322
33323	if invalidParams.Len() > 0 {
33324		return invalidParams
33325	}
33326	return nil
33327}
33328
33329// SetTemplateName sets the TemplateName field's value.
33330func (s *DeleteProvisioningTemplateInput) SetTemplateName(v string) *DeleteProvisioningTemplateInput {
33331	s.TemplateName = &v
33332	return s
33333}
33334
33335type DeleteProvisioningTemplateOutput struct {
33336	_ struct{} `type:"structure"`
33337}
33338
33339// String returns the string representation
33340func (s DeleteProvisioningTemplateOutput) String() string {
33341	return awsutil.Prettify(s)
33342}
33343
33344// GoString returns the string representation
33345func (s DeleteProvisioningTemplateOutput) GoString() string {
33346	return s.String()
33347}
33348
33349type DeleteProvisioningTemplateVersionInput struct {
33350	_ struct{} `type:"structure"`
33351
33352	// The name of the fleet provisioning template version to delete.
33353	//
33354	// TemplateName is a required field
33355	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
33356
33357	// The fleet provisioning template version ID to delete.
33358	//
33359	// VersionId is a required field
33360	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
33361}
33362
33363// String returns the string representation
33364func (s DeleteProvisioningTemplateVersionInput) String() string {
33365	return awsutil.Prettify(s)
33366}
33367
33368// GoString returns the string representation
33369func (s DeleteProvisioningTemplateVersionInput) GoString() string {
33370	return s.String()
33371}
33372
33373// Validate inspects the fields of the type to determine if they are valid.
33374func (s *DeleteProvisioningTemplateVersionInput) Validate() error {
33375	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateVersionInput"}
33376	if s.TemplateName == nil {
33377		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
33378	}
33379	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
33380		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
33381	}
33382	if s.VersionId == nil {
33383		invalidParams.Add(request.NewErrParamRequired("VersionId"))
33384	}
33385
33386	if invalidParams.Len() > 0 {
33387		return invalidParams
33388	}
33389	return nil
33390}
33391
33392// SetTemplateName sets the TemplateName field's value.
33393func (s *DeleteProvisioningTemplateVersionInput) SetTemplateName(v string) *DeleteProvisioningTemplateVersionInput {
33394	s.TemplateName = &v
33395	return s
33396}
33397
33398// SetVersionId sets the VersionId field's value.
33399func (s *DeleteProvisioningTemplateVersionInput) SetVersionId(v int64) *DeleteProvisioningTemplateVersionInput {
33400	s.VersionId = &v
33401	return s
33402}
33403
33404type DeleteProvisioningTemplateVersionOutput struct {
33405	_ struct{} `type:"structure"`
33406}
33407
33408// String returns the string representation
33409func (s DeleteProvisioningTemplateVersionOutput) String() string {
33410	return awsutil.Prettify(s)
33411}
33412
33413// GoString returns the string representation
33414func (s DeleteProvisioningTemplateVersionOutput) GoString() string {
33415	return s.String()
33416}
33417
33418// The input for the DeleteRegistrationCode operation.
33419type DeleteRegistrationCodeInput struct {
33420	_ struct{} `type:"structure"`
33421}
33422
33423// String returns the string representation
33424func (s DeleteRegistrationCodeInput) String() string {
33425	return awsutil.Prettify(s)
33426}
33427
33428// GoString returns the string representation
33429func (s DeleteRegistrationCodeInput) GoString() string {
33430	return s.String()
33431}
33432
33433// The output for the DeleteRegistrationCode operation.
33434type DeleteRegistrationCodeOutput struct {
33435	_ struct{} `type:"structure"`
33436}
33437
33438// String returns the string representation
33439func (s DeleteRegistrationCodeOutput) String() string {
33440	return awsutil.Prettify(s)
33441}
33442
33443// GoString returns the string representation
33444func (s DeleteRegistrationCodeOutput) GoString() string {
33445	return s.String()
33446}
33447
33448type DeleteRoleAliasInput struct {
33449	_ struct{} `type:"structure"`
33450
33451	// The role alias to delete.
33452	//
33453	// RoleAlias is a required field
33454	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
33455}
33456
33457// String returns the string representation
33458func (s DeleteRoleAliasInput) String() string {
33459	return awsutil.Prettify(s)
33460}
33461
33462// GoString returns the string representation
33463func (s DeleteRoleAliasInput) GoString() string {
33464	return s.String()
33465}
33466
33467// Validate inspects the fields of the type to determine if they are valid.
33468func (s *DeleteRoleAliasInput) Validate() error {
33469	invalidParams := request.ErrInvalidParams{Context: "DeleteRoleAliasInput"}
33470	if s.RoleAlias == nil {
33471		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
33472	}
33473	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
33474		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
33475	}
33476
33477	if invalidParams.Len() > 0 {
33478		return invalidParams
33479	}
33480	return nil
33481}
33482
33483// SetRoleAlias sets the RoleAlias field's value.
33484func (s *DeleteRoleAliasInput) SetRoleAlias(v string) *DeleteRoleAliasInput {
33485	s.RoleAlias = &v
33486	return s
33487}
33488
33489type DeleteRoleAliasOutput struct {
33490	_ struct{} `type:"structure"`
33491}
33492
33493// String returns the string representation
33494func (s DeleteRoleAliasOutput) String() string {
33495	return awsutil.Prettify(s)
33496}
33497
33498// GoString returns the string representation
33499func (s DeleteRoleAliasOutput) GoString() string {
33500	return s.String()
33501}
33502
33503type DeleteScheduledAuditInput struct {
33504	_ struct{} `type:"structure"`
33505
33506	// The name of the scheduled audit you want to delete.
33507	//
33508	// ScheduledAuditName is a required field
33509	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
33510}
33511
33512// String returns the string representation
33513func (s DeleteScheduledAuditInput) String() string {
33514	return awsutil.Prettify(s)
33515}
33516
33517// GoString returns the string representation
33518func (s DeleteScheduledAuditInput) GoString() string {
33519	return s.String()
33520}
33521
33522// Validate inspects the fields of the type to determine if they are valid.
33523func (s *DeleteScheduledAuditInput) Validate() error {
33524	invalidParams := request.ErrInvalidParams{Context: "DeleteScheduledAuditInput"}
33525	if s.ScheduledAuditName == nil {
33526		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
33527	}
33528	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
33529		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
33530	}
33531
33532	if invalidParams.Len() > 0 {
33533		return invalidParams
33534	}
33535	return nil
33536}
33537
33538// SetScheduledAuditName sets the ScheduledAuditName field's value.
33539func (s *DeleteScheduledAuditInput) SetScheduledAuditName(v string) *DeleteScheduledAuditInput {
33540	s.ScheduledAuditName = &v
33541	return s
33542}
33543
33544type DeleteScheduledAuditOutput struct {
33545	_ struct{} `type:"structure"`
33546}
33547
33548// String returns the string representation
33549func (s DeleteScheduledAuditOutput) String() string {
33550	return awsutil.Prettify(s)
33551}
33552
33553// GoString returns the string representation
33554func (s DeleteScheduledAuditOutput) GoString() string {
33555	return s.String()
33556}
33557
33558type DeleteSecurityProfileInput struct {
33559	_ struct{} `type:"structure"`
33560
33561	// The expected version of the security profile. A new version is generated
33562	// whenever the security profile is updated. If you specify a value that is
33563	// different from the actual version, a VersionConflictException is thrown.
33564	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
33565
33566	// The name of the security profile to be deleted.
33567	//
33568	// SecurityProfileName is a required field
33569	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
33570}
33571
33572// String returns the string representation
33573func (s DeleteSecurityProfileInput) String() string {
33574	return awsutil.Prettify(s)
33575}
33576
33577// GoString returns the string representation
33578func (s DeleteSecurityProfileInput) GoString() string {
33579	return s.String()
33580}
33581
33582// Validate inspects the fields of the type to determine if they are valid.
33583func (s *DeleteSecurityProfileInput) Validate() error {
33584	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityProfileInput"}
33585	if s.SecurityProfileName == nil {
33586		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
33587	}
33588	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
33589		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
33590	}
33591
33592	if invalidParams.Len() > 0 {
33593		return invalidParams
33594	}
33595	return nil
33596}
33597
33598// SetExpectedVersion sets the ExpectedVersion field's value.
33599func (s *DeleteSecurityProfileInput) SetExpectedVersion(v int64) *DeleteSecurityProfileInput {
33600	s.ExpectedVersion = &v
33601	return s
33602}
33603
33604// SetSecurityProfileName sets the SecurityProfileName field's value.
33605func (s *DeleteSecurityProfileInput) SetSecurityProfileName(v string) *DeleteSecurityProfileInput {
33606	s.SecurityProfileName = &v
33607	return s
33608}
33609
33610type DeleteSecurityProfileOutput struct {
33611	_ struct{} `type:"structure"`
33612}
33613
33614// String returns the string representation
33615func (s DeleteSecurityProfileOutput) String() string {
33616	return awsutil.Prettify(s)
33617}
33618
33619// GoString returns the string representation
33620func (s DeleteSecurityProfileOutput) GoString() string {
33621	return s.String()
33622}
33623
33624type DeleteStreamInput struct {
33625	_ struct{} `type:"structure"`
33626
33627	// The stream ID.
33628	//
33629	// StreamId is a required field
33630	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
33631}
33632
33633// String returns the string representation
33634func (s DeleteStreamInput) String() string {
33635	return awsutil.Prettify(s)
33636}
33637
33638// GoString returns the string representation
33639func (s DeleteStreamInput) GoString() string {
33640	return s.String()
33641}
33642
33643// Validate inspects the fields of the type to determine if they are valid.
33644func (s *DeleteStreamInput) Validate() error {
33645	invalidParams := request.ErrInvalidParams{Context: "DeleteStreamInput"}
33646	if s.StreamId == nil {
33647		invalidParams.Add(request.NewErrParamRequired("StreamId"))
33648	}
33649	if s.StreamId != nil && len(*s.StreamId) < 1 {
33650		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
33651	}
33652
33653	if invalidParams.Len() > 0 {
33654		return invalidParams
33655	}
33656	return nil
33657}
33658
33659// SetStreamId sets the StreamId field's value.
33660func (s *DeleteStreamInput) SetStreamId(v string) *DeleteStreamInput {
33661	s.StreamId = &v
33662	return s
33663}
33664
33665type DeleteStreamOutput struct {
33666	_ struct{} `type:"structure"`
33667}
33668
33669// String returns the string representation
33670func (s DeleteStreamOutput) String() string {
33671	return awsutil.Prettify(s)
33672}
33673
33674// GoString returns the string representation
33675func (s DeleteStreamOutput) GoString() string {
33676	return s.String()
33677}
33678
33679type DeleteThingGroupInput struct {
33680	_ struct{} `type:"structure"`
33681
33682	// The expected version of the thing group to delete.
33683	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
33684
33685	// The name of the thing group to delete.
33686	//
33687	// ThingGroupName is a required field
33688	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
33689}
33690
33691// String returns the string representation
33692func (s DeleteThingGroupInput) String() string {
33693	return awsutil.Prettify(s)
33694}
33695
33696// GoString returns the string representation
33697func (s DeleteThingGroupInput) GoString() string {
33698	return s.String()
33699}
33700
33701// Validate inspects the fields of the type to determine if they are valid.
33702func (s *DeleteThingGroupInput) Validate() error {
33703	invalidParams := request.ErrInvalidParams{Context: "DeleteThingGroupInput"}
33704	if s.ThingGroupName == nil {
33705		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
33706	}
33707	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
33708		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
33709	}
33710
33711	if invalidParams.Len() > 0 {
33712		return invalidParams
33713	}
33714	return nil
33715}
33716
33717// SetExpectedVersion sets the ExpectedVersion field's value.
33718func (s *DeleteThingGroupInput) SetExpectedVersion(v int64) *DeleteThingGroupInput {
33719	s.ExpectedVersion = &v
33720	return s
33721}
33722
33723// SetThingGroupName sets the ThingGroupName field's value.
33724func (s *DeleteThingGroupInput) SetThingGroupName(v string) *DeleteThingGroupInput {
33725	s.ThingGroupName = &v
33726	return s
33727}
33728
33729type DeleteThingGroupOutput struct {
33730	_ struct{} `type:"structure"`
33731}
33732
33733// String returns the string representation
33734func (s DeleteThingGroupOutput) String() string {
33735	return awsutil.Prettify(s)
33736}
33737
33738// GoString returns the string representation
33739func (s DeleteThingGroupOutput) GoString() string {
33740	return s.String()
33741}
33742
33743// The input for the DeleteThing operation.
33744type DeleteThingInput struct {
33745	_ struct{} `type:"structure"`
33746
33747	// The expected version of the thing record in the registry. If the version
33748	// of the record in the registry does not match the expected version specified
33749	// in the request, the DeleteThing request is rejected with a VersionConflictException.
33750	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
33751
33752	// The name of the thing to delete.
33753	//
33754	// ThingName is a required field
33755	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
33756}
33757
33758// String returns the string representation
33759func (s DeleteThingInput) String() string {
33760	return awsutil.Prettify(s)
33761}
33762
33763// GoString returns the string representation
33764func (s DeleteThingInput) GoString() string {
33765	return s.String()
33766}
33767
33768// Validate inspects the fields of the type to determine if they are valid.
33769func (s *DeleteThingInput) Validate() error {
33770	invalidParams := request.ErrInvalidParams{Context: "DeleteThingInput"}
33771	if s.ThingName == nil {
33772		invalidParams.Add(request.NewErrParamRequired("ThingName"))
33773	}
33774	if s.ThingName != nil && len(*s.ThingName) < 1 {
33775		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
33776	}
33777
33778	if invalidParams.Len() > 0 {
33779		return invalidParams
33780	}
33781	return nil
33782}
33783
33784// SetExpectedVersion sets the ExpectedVersion field's value.
33785func (s *DeleteThingInput) SetExpectedVersion(v int64) *DeleteThingInput {
33786	s.ExpectedVersion = &v
33787	return s
33788}
33789
33790// SetThingName sets the ThingName field's value.
33791func (s *DeleteThingInput) SetThingName(v string) *DeleteThingInput {
33792	s.ThingName = &v
33793	return s
33794}
33795
33796// The output of the DeleteThing operation.
33797type DeleteThingOutput struct {
33798	_ struct{} `type:"structure"`
33799}
33800
33801// String returns the string representation
33802func (s DeleteThingOutput) String() string {
33803	return awsutil.Prettify(s)
33804}
33805
33806// GoString returns the string representation
33807func (s DeleteThingOutput) GoString() string {
33808	return s.String()
33809}
33810
33811// The input for the DeleteThingType operation.
33812type DeleteThingTypeInput struct {
33813	_ struct{} `type:"structure"`
33814
33815	// The name of the thing type.
33816	//
33817	// ThingTypeName is a required field
33818	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
33819}
33820
33821// String returns the string representation
33822func (s DeleteThingTypeInput) String() string {
33823	return awsutil.Prettify(s)
33824}
33825
33826// GoString returns the string representation
33827func (s DeleteThingTypeInput) GoString() string {
33828	return s.String()
33829}
33830
33831// Validate inspects the fields of the type to determine if they are valid.
33832func (s *DeleteThingTypeInput) Validate() error {
33833	invalidParams := request.ErrInvalidParams{Context: "DeleteThingTypeInput"}
33834	if s.ThingTypeName == nil {
33835		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
33836	}
33837	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
33838		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
33839	}
33840
33841	if invalidParams.Len() > 0 {
33842		return invalidParams
33843	}
33844	return nil
33845}
33846
33847// SetThingTypeName sets the ThingTypeName field's value.
33848func (s *DeleteThingTypeInput) SetThingTypeName(v string) *DeleteThingTypeInput {
33849	s.ThingTypeName = &v
33850	return s
33851}
33852
33853// The output for the DeleteThingType operation.
33854type DeleteThingTypeOutput struct {
33855	_ struct{} `type:"structure"`
33856}
33857
33858// String returns the string representation
33859func (s DeleteThingTypeOutput) String() string {
33860	return awsutil.Prettify(s)
33861}
33862
33863// GoString returns the string representation
33864func (s DeleteThingTypeOutput) GoString() string {
33865	return s.String()
33866}
33867
33868type DeleteTopicRuleDestinationInput struct {
33869	_ struct{} `type:"structure"`
33870
33871	// The ARN of the topic rule destination to delete.
33872	//
33873	// Arn is a required field
33874	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
33875}
33876
33877// String returns the string representation
33878func (s DeleteTopicRuleDestinationInput) String() string {
33879	return awsutil.Prettify(s)
33880}
33881
33882// GoString returns the string representation
33883func (s DeleteTopicRuleDestinationInput) GoString() string {
33884	return s.String()
33885}
33886
33887// Validate inspects the fields of the type to determine if they are valid.
33888func (s *DeleteTopicRuleDestinationInput) Validate() error {
33889	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleDestinationInput"}
33890	if s.Arn == nil {
33891		invalidParams.Add(request.NewErrParamRequired("Arn"))
33892	}
33893	if s.Arn != nil && len(*s.Arn) < 1 {
33894		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
33895	}
33896
33897	if invalidParams.Len() > 0 {
33898		return invalidParams
33899	}
33900	return nil
33901}
33902
33903// SetArn sets the Arn field's value.
33904func (s *DeleteTopicRuleDestinationInput) SetArn(v string) *DeleteTopicRuleDestinationInput {
33905	s.Arn = &v
33906	return s
33907}
33908
33909type DeleteTopicRuleDestinationOutput struct {
33910	_ struct{} `type:"structure"`
33911}
33912
33913// String returns the string representation
33914func (s DeleteTopicRuleDestinationOutput) String() string {
33915	return awsutil.Prettify(s)
33916}
33917
33918// GoString returns the string representation
33919func (s DeleteTopicRuleDestinationOutput) GoString() string {
33920	return s.String()
33921}
33922
33923// The input for the DeleteTopicRule operation.
33924type DeleteTopicRuleInput struct {
33925	_ struct{} `type:"structure"`
33926
33927	// The name of the rule.
33928	//
33929	// RuleName is a required field
33930	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
33931}
33932
33933// String returns the string representation
33934func (s DeleteTopicRuleInput) String() string {
33935	return awsutil.Prettify(s)
33936}
33937
33938// GoString returns the string representation
33939func (s DeleteTopicRuleInput) GoString() string {
33940	return s.String()
33941}
33942
33943// Validate inspects the fields of the type to determine if they are valid.
33944func (s *DeleteTopicRuleInput) Validate() error {
33945	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleInput"}
33946	if s.RuleName == nil {
33947		invalidParams.Add(request.NewErrParamRequired("RuleName"))
33948	}
33949	if s.RuleName != nil && len(*s.RuleName) < 1 {
33950		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
33951	}
33952
33953	if invalidParams.Len() > 0 {
33954		return invalidParams
33955	}
33956	return nil
33957}
33958
33959// SetRuleName sets the RuleName field's value.
33960func (s *DeleteTopicRuleInput) SetRuleName(v string) *DeleteTopicRuleInput {
33961	s.RuleName = &v
33962	return s
33963}
33964
33965type DeleteTopicRuleOutput struct {
33966	_ struct{} `type:"structure"`
33967}
33968
33969// String returns the string representation
33970func (s DeleteTopicRuleOutput) String() string {
33971	return awsutil.Prettify(s)
33972}
33973
33974// GoString returns the string representation
33975func (s DeleteTopicRuleOutput) GoString() string {
33976	return s.String()
33977}
33978
33979type DeleteV2LoggingLevelInput struct {
33980	_ struct{} `type:"structure"`
33981
33982	// The name of the resource for which you are configuring logging.
33983	//
33984	// TargetName is a required field
33985	TargetName *string `location:"querystring" locationName:"targetName" type:"string" required:"true"`
33986
33987	// The type of resource for which you are configuring logging. Must be THING_Group.
33988	//
33989	// TargetType is a required field
33990	TargetType *string `location:"querystring" locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
33991}
33992
33993// String returns the string representation
33994func (s DeleteV2LoggingLevelInput) String() string {
33995	return awsutil.Prettify(s)
33996}
33997
33998// GoString returns the string representation
33999func (s DeleteV2LoggingLevelInput) GoString() string {
34000	return s.String()
34001}
34002
34003// Validate inspects the fields of the type to determine if they are valid.
34004func (s *DeleteV2LoggingLevelInput) Validate() error {
34005	invalidParams := request.ErrInvalidParams{Context: "DeleteV2LoggingLevelInput"}
34006	if s.TargetName == nil {
34007		invalidParams.Add(request.NewErrParamRequired("TargetName"))
34008	}
34009	if s.TargetType == nil {
34010		invalidParams.Add(request.NewErrParamRequired("TargetType"))
34011	}
34012
34013	if invalidParams.Len() > 0 {
34014		return invalidParams
34015	}
34016	return nil
34017}
34018
34019// SetTargetName sets the TargetName field's value.
34020func (s *DeleteV2LoggingLevelInput) SetTargetName(v string) *DeleteV2LoggingLevelInput {
34021	s.TargetName = &v
34022	return s
34023}
34024
34025// SetTargetType sets the TargetType field's value.
34026func (s *DeleteV2LoggingLevelInput) SetTargetType(v string) *DeleteV2LoggingLevelInput {
34027	s.TargetType = &v
34028	return s
34029}
34030
34031type DeleteV2LoggingLevelOutput struct {
34032	_ struct{} `type:"structure"`
34033}
34034
34035// String returns the string representation
34036func (s DeleteV2LoggingLevelOutput) String() string {
34037	return awsutil.Prettify(s)
34038}
34039
34040// GoString returns the string representation
34041func (s DeleteV2LoggingLevelOutput) GoString() string {
34042	return s.String()
34043}
34044
34045// Contains information that denied the authorization.
34046type Denied struct {
34047	_ struct{} `type:"structure"`
34048
34049	// Information that explicitly denies the authorization.
34050	ExplicitDeny *ExplicitDeny `locationName:"explicitDeny" type:"structure"`
34051
34052	// Information that implicitly denies the authorization. When a policy doesn't
34053	// explicitly deny or allow an action on a resource it is considered an implicit
34054	// deny.
34055	ImplicitDeny *ImplicitDeny `locationName:"implicitDeny" type:"structure"`
34056}
34057
34058// String returns the string representation
34059func (s Denied) String() string {
34060	return awsutil.Prettify(s)
34061}
34062
34063// GoString returns the string representation
34064func (s Denied) GoString() string {
34065	return s.String()
34066}
34067
34068// SetExplicitDeny sets the ExplicitDeny field's value.
34069func (s *Denied) SetExplicitDeny(v *ExplicitDeny) *Denied {
34070	s.ExplicitDeny = v
34071	return s
34072}
34073
34074// SetImplicitDeny sets the ImplicitDeny field's value.
34075func (s *Denied) SetImplicitDeny(v *ImplicitDeny) *Denied {
34076	s.ImplicitDeny = v
34077	return s
34078}
34079
34080// The input for the DeprecateThingType operation.
34081type DeprecateThingTypeInput struct {
34082	_ struct{} `type:"structure"`
34083
34084	// The name of the thing type to deprecate.
34085	//
34086	// ThingTypeName is a required field
34087	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
34088
34089	// Whether to undeprecate a deprecated thing type. If true, the thing type will
34090	// not be deprecated anymore and you can associate it with things.
34091	UndoDeprecate *bool `locationName:"undoDeprecate" type:"boolean"`
34092}
34093
34094// String returns the string representation
34095func (s DeprecateThingTypeInput) String() string {
34096	return awsutil.Prettify(s)
34097}
34098
34099// GoString returns the string representation
34100func (s DeprecateThingTypeInput) GoString() string {
34101	return s.String()
34102}
34103
34104// Validate inspects the fields of the type to determine if they are valid.
34105func (s *DeprecateThingTypeInput) Validate() error {
34106	invalidParams := request.ErrInvalidParams{Context: "DeprecateThingTypeInput"}
34107	if s.ThingTypeName == nil {
34108		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
34109	}
34110	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
34111		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
34112	}
34113
34114	if invalidParams.Len() > 0 {
34115		return invalidParams
34116	}
34117	return nil
34118}
34119
34120// SetThingTypeName sets the ThingTypeName field's value.
34121func (s *DeprecateThingTypeInput) SetThingTypeName(v string) *DeprecateThingTypeInput {
34122	s.ThingTypeName = &v
34123	return s
34124}
34125
34126// SetUndoDeprecate sets the UndoDeprecate field's value.
34127func (s *DeprecateThingTypeInput) SetUndoDeprecate(v bool) *DeprecateThingTypeInput {
34128	s.UndoDeprecate = &v
34129	return s
34130}
34131
34132// The output for the DeprecateThingType operation.
34133type DeprecateThingTypeOutput struct {
34134	_ struct{} `type:"structure"`
34135}
34136
34137// String returns the string representation
34138func (s DeprecateThingTypeOutput) String() string {
34139	return awsutil.Prettify(s)
34140}
34141
34142// GoString returns the string representation
34143func (s DeprecateThingTypeOutput) GoString() string {
34144	return s.String()
34145}
34146
34147type DescribeAccountAuditConfigurationInput struct {
34148	_ struct{} `type:"structure"`
34149}
34150
34151// String returns the string representation
34152func (s DescribeAccountAuditConfigurationInput) String() string {
34153	return awsutil.Prettify(s)
34154}
34155
34156// GoString returns the string representation
34157func (s DescribeAccountAuditConfigurationInput) GoString() string {
34158	return s.String()
34159}
34160
34161type DescribeAccountAuditConfigurationOutput struct {
34162	_ struct{} `type:"structure"`
34163
34164	// Which audit checks are enabled and disabled for this account.
34165	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
34166
34167	// Information about the targets to which audit notifications are sent for this
34168	// account.
34169	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
34170
34171	// The ARN of the role that grants permission to AWS IoT to access information
34172	// about your devices, policies, certificates, and other items as required when
34173	// performing an audit.
34174	//
34175	// On the first call to UpdateAccountAuditConfiguration, this parameter is required.
34176	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
34177}
34178
34179// String returns the string representation
34180func (s DescribeAccountAuditConfigurationOutput) String() string {
34181	return awsutil.Prettify(s)
34182}
34183
34184// GoString returns the string representation
34185func (s DescribeAccountAuditConfigurationOutput) GoString() string {
34186	return s.String()
34187}
34188
34189// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
34190func (s *DescribeAccountAuditConfigurationOutput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *DescribeAccountAuditConfigurationOutput {
34191	s.AuditCheckConfigurations = v
34192	return s
34193}
34194
34195// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
34196func (s *DescribeAccountAuditConfigurationOutput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *DescribeAccountAuditConfigurationOutput {
34197	s.AuditNotificationTargetConfigurations = v
34198	return s
34199}
34200
34201// SetRoleArn sets the RoleArn field's value.
34202func (s *DescribeAccountAuditConfigurationOutput) SetRoleArn(v string) *DescribeAccountAuditConfigurationOutput {
34203	s.RoleArn = &v
34204	return s
34205}
34206
34207type DescribeAuditFindingInput struct {
34208	_ struct{} `type:"structure"`
34209
34210	// A unique identifier for a single audit finding. You can use this identifier
34211	// to apply mitigation actions to the finding.
34212	//
34213	// FindingId is a required field
34214	FindingId *string `location:"uri" locationName:"findingId" min:"1" type:"string" required:"true"`
34215}
34216
34217// String returns the string representation
34218func (s DescribeAuditFindingInput) String() string {
34219	return awsutil.Prettify(s)
34220}
34221
34222// GoString returns the string representation
34223func (s DescribeAuditFindingInput) GoString() string {
34224	return s.String()
34225}
34226
34227// Validate inspects the fields of the type to determine if they are valid.
34228func (s *DescribeAuditFindingInput) Validate() error {
34229	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditFindingInput"}
34230	if s.FindingId == nil {
34231		invalidParams.Add(request.NewErrParamRequired("FindingId"))
34232	}
34233	if s.FindingId != nil && len(*s.FindingId) < 1 {
34234		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
34235	}
34236
34237	if invalidParams.Len() > 0 {
34238		return invalidParams
34239	}
34240	return nil
34241}
34242
34243// SetFindingId sets the FindingId field's value.
34244func (s *DescribeAuditFindingInput) SetFindingId(v string) *DescribeAuditFindingInput {
34245	s.FindingId = &v
34246	return s
34247}
34248
34249type DescribeAuditFindingOutput struct {
34250	_ struct{} `type:"structure"`
34251
34252	// The findings (results) of the audit.
34253	Finding *AuditFinding `locationName:"finding" type:"structure"`
34254}
34255
34256// String returns the string representation
34257func (s DescribeAuditFindingOutput) String() string {
34258	return awsutil.Prettify(s)
34259}
34260
34261// GoString returns the string representation
34262func (s DescribeAuditFindingOutput) GoString() string {
34263	return s.String()
34264}
34265
34266// SetFinding sets the Finding field's value.
34267func (s *DescribeAuditFindingOutput) SetFinding(v *AuditFinding) *DescribeAuditFindingOutput {
34268	s.Finding = v
34269	return s
34270}
34271
34272type DescribeAuditMitigationActionsTaskInput struct {
34273	_ struct{} `type:"structure"`
34274
34275	// The unique identifier for the audit mitigation task.
34276	//
34277	// TaskId is a required field
34278	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
34279}
34280
34281// String returns the string representation
34282func (s DescribeAuditMitigationActionsTaskInput) String() string {
34283	return awsutil.Prettify(s)
34284}
34285
34286// GoString returns the string representation
34287func (s DescribeAuditMitigationActionsTaskInput) GoString() string {
34288	return s.String()
34289}
34290
34291// Validate inspects the fields of the type to determine if they are valid.
34292func (s *DescribeAuditMitigationActionsTaskInput) Validate() error {
34293	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditMitigationActionsTaskInput"}
34294	if s.TaskId == nil {
34295		invalidParams.Add(request.NewErrParamRequired("TaskId"))
34296	}
34297	if s.TaskId != nil && len(*s.TaskId) < 1 {
34298		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
34299	}
34300
34301	if invalidParams.Len() > 0 {
34302		return invalidParams
34303	}
34304	return nil
34305}
34306
34307// SetTaskId sets the TaskId field's value.
34308func (s *DescribeAuditMitigationActionsTaskInput) SetTaskId(v string) *DescribeAuditMitigationActionsTaskInput {
34309	s.TaskId = &v
34310	return s
34311}
34312
34313type DescribeAuditMitigationActionsTaskOutput struct {
34314	_ struct{} `type:"structure"`
34315
34316	// Specifies the mitigation actions and their parameters that are applied as
34317	// part of this task.
34318	ActionsDefinition []*MitigationAction `locationName:"actionsDefinition" type:"list"`
34319
34320	// Specifies the mitigation actions that should be applied to specific audit
34321	// checks.
34322	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map"`
34323
34324	// The date and time when the task was completed or canceled.
34325	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
34326
34327	// The date and time when the task was started.
34328	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
34329
34330	// Identifies the findings to which the mitigation actions are applied. This
34331	// can be by audit checks, by audit task, or a set of findings.
34332	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure"`
34333
34334	// Aggregate counts of the results when the mitigation tasks were applied to
34335	// the findings for this audit mitigation actions task.
34336	TaskStatistics map[string]*TaskStatisticsForAuditCheck `locationName:"taskStatistics" type:"map"`
34337
34338	// The current status of the task.
34339	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
34340}
34341
34342// String returns the string representation
34343func (s DescribeAuditMitigationActionsTaskOutput) String() string {
34344	return awsutil.Prettify(s)
34345}
34346
34347// GoString returns the string representation
34348func (s DescribeAuditMitigationActionsTaskOutput) GoString() string {
34349	return s.String()
34350}
34351
34352// SetActionsDefinition sets the ActionsDefinition field's value.
34353func (s *DescribeAuditMitigationActionsTaskOutput) SetActionsDefinition(v []*MitigationAction) *DescribeAuditMitigationActionsTaskOutput {
34354	s.ActionsDefinition = v
34355	return s
34356}
34357
34358// SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
34359func (s *DescribeAuditMitigationActionsTaskOutput) SetAuditCheckToActionsMapping(v map[string][]*string) *DescribeAuditMitigationActionsTaskOutput {
34360	s.AuditCheckToActionsMapping = v
34361	return s
34362}
34363
34364// SetEndTime sets the EndTime field's value.
34365func (s *DescribeAuditMitigationActionsTaskOutput) SetEndTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
34366	s.EndTime = &v
34367	return s
34368}
34369
34370// SetStartTime sets the StartTime field's value.
34371func (s *DescribeAuditMitigationActionsTaskOutput) SetStartTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
34372	s.StartTime = &v
34373	return s
34374}
34375
34376// SetTarget sets the Target field's value.
34377func (s *DescribeAuditMitigationActionsTaskOutput) SetTarget(v *AuditMitigationActionsTaskTarget) *DescribeAuditMitigationActionsTaskOutput {
34378	s.Target = v
34379	return s
34380}
34381
34382// SetTaskStatistics sets the TaskStatistics field's value.
34383func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatistics(v map[string]*TaskStatisticsForAuditCheck) *DescribeAuditMitigationActionsTaskOutput {
34384	s.TaskStatistics = v
34385	return s
34386}
34387
34388// SetTaskStatus sets the TaskStatus field's value.
34389func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatus(v string) *DescribeAuditMitigationActionsTaskOutput {
34390	s.TaskStatus = &v
34391	return s
34392}
34393
34394type DescribeAuditSuppressionInput struct {
34395	_ struct{} `type:"structure"`
34396
34397	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
34398	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
34399	// to select which checks are enabled.)
34400	//
34401	// CheckName is a required field
34402	CheckName *string `locationName:"checkName" type:"string" required:"true"`
34403
34404	// Information that identifies the noncompliant resource.
34405	//
34406	// ResourceIdentifier is a required field
34407	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
34408}
34409
34410// String returns the string representation
34411func (s DescribeAuditSuppressionInput) String() string {
34412	return awsutil.Prettify(s)
34413}
34414
34415// GoString returns the string representation
34416func (s DescribeAuditSuppressionInput) GoString() string {
34417	return s.String()
34418}
34419
34420// Validate inspects the fields of the type to determine if they are valid.
34421func (s *DescribeAuditSuppressionInput) Validate() error {
34422	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditSuppressionInput"}
34423	if s.CheckName == nil {
34424		invalidParams.Add(request.NewErrParamRequired("CheckName"))
34425	}
34426	if s.ResourceIdentifier == nil {
34427		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
34428	}
34429	if s.ResourceIdentifier != nil {
34430		if err := s.ResourceIdentifier.Validate(); err != nil {
34431			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
34432		}
34433	}
34434
34435	if invalidParams.Len() > 0 {
34436		return invalidParams
34437	}
34438	return nil
34439}
34440
34441// SetCheckName sets the CheckName field's value.
34442func (s *DescribeAuditSuppressionInput) SetCheckName(v string) *DescribeAuditSuppressionInput {
34443	s.CheckName = &v
34444	return s
34445}
34446
34447// SetResourceIdentifier sets the ResourceIdentifier field's value.
34448func (s *DescribeAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *DescribeAuditSuppressionInput {
34449	s.ResourceIdentifier = v
34450	return s
34451}
34452
34453type DescribeAuditSuppressionOutput struct {
34454	_ struct{} `type:"structure"`
34455
34456	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
34457	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
34458	// to select which checks are enabled.)
34459	CheckName *string `locationName:"checkName" type:"string"`
34460
34461	// The description of the audit suppression.
34462	Description *string `locationName:"description" type:"string"`
34463
34464	// The epoch timestamp in seconds at which this suppression expires.
34465	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
34466
34467	// Information that identifies the noncompliant resource.
34468	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
34469
34470	// Indicates whether a suppression should exist indefinitely or not.
34471	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
34472}
34473
34474// String returns the string representation
34475func (s DescribeAuditSuppressionOutput) String() string {
34476	return awsutil.Prettify(s)
34477}
34478
34479// GoString returns the string representation
34480func (s DescribeAuditSuppressionOutput) GoString() string {
34481	return s.String()
34482}
34483
34484// SetCheckName sets the CheckName field's value.
34485func (s *DescribeAuditSuppressionOutput) SetCheckName(v string) *DescribeAuditSuppressionOutput {
34486	s.CheckName = &v
34487	return s
34488}
34489
34490// SetDescription sets the Description field's value.
34491func (s *DescribeAuditSuppressionOutput) SetDescription(v string) *DescribeAuditSuppressionOutput {
34492	s.Description = &v
34493	return s
34494}
34495
34496// SetExpirationDate sets the ExpirationDate field's value.
34497func (s *DescribeAuditSuppressionOutput) SetExpirationDate(v time.Time) *DescribeAuditSuppressionOutput {
34498	s.ExpirationDate = &v
34499	return s
34500}
34501
34502// SetResourceIdentifier sets the ResourceIdentifier field's value.
34503func (s *DescribeAuditSuppressionOutput) SetResourceIdentifier(v *ResourceIdentifier) *DescribeAuditSuppressionOutput {
34504	s.ResourceIdentifier = v
34505	return s
34506}
34507
34508// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
34509func (s *DescribeAuditSuppressionOutput) SetSuppressIndefinitely(v bool) *DescribeAuditSuppressionOutput {
34510	s.SuppressIndefinitely = &v
34511	return s
34512}
34513
34514type DescribeAuditTaskInput struct {
34515	_ struct{} `type:"structure"`
34516
34517	// The ID of the audit whose information you want to get.
34518	//
34519	// TaskId is a required field
34520	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
34521}
34522
34523// String returns the string representation
34524func (s DescribeAuditTaskInput) String() string {
34525	return awsutil.Prettify(s)
34526}
34527
34528// GoString returns the string representation
34529func (s DescribeAuditTaskInput) GoString() string {
34530	return s.String()
34531}
34532
34533// Validate inspects the fields of the type to determine if they are valid.
34534func (s *DescribeAuditTaskInput) Validate() error {
34535	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditTaskInput"}
34536	if s.TaskId == nil {
34537		invalidParams.Add(request.NewErrParamRequired("TaskId"))
34538	}
34539	if s.TaskId != nil && len(*s.TaskId) < 1 {
34540		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
34541	}
34542
34543	if invalidParams.Len() > 0 {
34544		return invalidParams
34545	}
34546	return nil
34547}
34548
34549// SetTaskId sets the TaskId field's value.
34550func (s *DescribeAuditTaskInput) SetTaskId(v string) *DescribeAuditTaskInput {
34551	s.TaskId = &v
34552	return s
34553}
34554
34555type DescribeAuditTaskOutput struct {
34556	_ struct{} `type:"structure"`
34557
34558	// Detailed information about each check performed during this audit.
34559	AuditDetails map[string]*AuditCheckDetails `locationName:"auditDetails" type:"map"`
34560
34561	// The name of the scheduled audit (only if the audit was a scheduled audit).
34562	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
34563
34564	// The time the audit started.
34565	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
34566
34567	// Statistical information about the audit.
34568	TaskStatistics *TaskStatistics `locationName:"taskStatistics" type:"structure"`
34569
34570	// The status of the audit: one of "IN_PROGRESS", "COMPLETED", "FAILED", or
34571	// "CANCELED".
34572	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
34573
34574	// The type of audit: "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
34575	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
34576}
34577
34578// String returns the string representation
34579func (s DescribeAuditTaskOutput) String() string {
34580	return awsutil.Prettify(s)
34581}
34582
34583// GoString returns the string representation
34584func (s DescribeAuditTaskOutput) GoString() string {
34585	return s.String()
34586}
34587
34588// SetAuditDetails sets the AuditDetails field's value.
34589func (s *DescribeAuditTaskOutput) SetAuditDetails(v map[string]*AuditCheckDetails) *DescribeAuditTaskOutput {
34590	s.AuditDetails = v
34591	return s
34592}
34593
34594// SetScheduledAuditName sets the ScheduledAuditName field's value.
34595func (s *DescribeAuditTaskOutput) SetScheduledAuditName(v string) *DescribeAuditTaskOutput {
34596	s.ScheduledAuditName = &v
34597	return s
34598}
34599
34600// SetTaskStartTime sets the TaskStartTime field's value.
34601func (s *DescribeAuditTaskOutput) SetTaskStartTime(v time.Time) *DescribeAuditTaskOutput {
34602	s.TaskStartTime = &v
34603	return s
34604}
34605
34606// SetTaskStatistics sets the TaskStatistics field's value.
34607func (s *DescribeAuditTaskOutput) SetTaskStatistics(v *TaskStatistics) *DescribeAuditTaskOutput {
34608	s.TaskStatistics = v
34609	return s
34610}
34611
34612// SetTaskStatus sets the TaskStatus field's value.
34613func (s *DescribeAuditTaskOutput) SetTaskStatus(v string) *DescribeAuditTaskOutput {
34614	s.TaskStatus = &v
34615	return s
34616}
34617
34618// SetTaskType sets the TaskType field's value.
34619func (s *DescribeAuditTaskOutput) SetTaskType(v string) *DescribeAuditTaskOutput {
34620	s.TaskType = &v
34621	return s
34622}
34623
34624type DescribeAuthorizerInput struct {
34625	_ struct{} `type:"structure"`
34626
34627	// The name of the authorizer to describe.
34628	//
34629	// AuthorizerName is a required field
34630	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
34631}
34632
34633// String returns the string representation
34634func (s DescribeAuthorizerInput) String() string {
34635	return awsutil.Prettify(s)
34636}
34637
34638// GoString returns the string representation
34639func (s DescribeAuthorizerInput) GoString() string {
34640	return s.String()
34641}
34642
34643// Validate inspects the fields of the type to determine if they are valid.
34644func (s *DescribeAuthorizerInput) Validate() error {
34645	invalidParams := request.ErrInvalidParams{Context: "DescribeAuthorizerInput"}
34646	if s.AuthorizerName == nil {
34647		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
34648	}
34649	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
34650		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
34651	}
34652
34653	if invalidParams.Len() > 0 {
34654		return invalidParams
34655	}
34656	return nil
34657}
34658
34659// SetAuthorizerName sets the AuthorizerName field's value.
34660func (s *DescribeAuthorizerInput) SetAuthorizerName(v string) *DescribeAuthorizerInput {
34661	s.AuthorizerName = &v
34662	return s
34663}
34664
34665type DescribeAuthorizerOutput struct {
34666	_ struct{} `type:"structure"`
34667
34668	// The authorizer description.
34669	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
34670}
34671
34672// String returns the string representation
34673func (s DescribeAuthorizerOutput) String() string {
34674	return awsutil.Prettify(s)
34675}
34676
34677// GoString returns the string representation
34678func (s DescribeAuthorizerOutput) GoString() string {
34679	return s.String()
34680}
34681
34682// SetAuthorizerDescription sets the AuthorizerDescription field's value.
34683func (s *DescribeAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeAuthorizerOutput {
34684	s.AuthorizerDescription = v
34685	return s
34686}
34687
34688type DescribeBillingGroupInput struct {
34689	_ struct{} `type:"structure"`
34690
34691	// The name of the billing group.
34692	//
34693	// BillingGroupName is a required field
34694	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
34695}
34696
34697// String returns the string representation
34698func (s DescribeBillingGroupInput) String() string {
34699	return awsutil.Prettify(s)
34700}
34701
34702// GoString returns the string representation
34703func (s DescribeBillingGroupInput) GoString() string {
34704	return s.String()
34705}
34706
34707// Validate inspects the fields of the type to determine if they are valid.
34708func (s *DescribeBillingGroupInput) Validate() error {
34709	invalidParams := request.ErrInvalidParams{Context: "DescribeBillingGroupInput"}
34710	if s.BillingGroupName == nil {
34711		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
34712	}
34713	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
34714		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
34715	}
34716
34717	if invalidParams.Len() > 0 {
34718		return invalidParams
34719	}
34720	return nil
34721}
34722
34723// SetBillingGroupName sets the BillingGroupName field's value.
34724func (s *DescribeBillingGroupInput) SetBillingGroupName(v string) *DescribeBillingGroupInput {
34725	s.BillingGroupName = &v
34726	return s
34727}
34728
34729type DescribeBillingGroupOutput struct {
34730	_ struct{} `type:"structure"`
34731
34732	// The ARN of the billing group.
34733	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
34734
34735	// The ID of the billing group.
34736	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
34737
34738	// Additional information about the billing group.
34739	BillingGroupMetadata *BillingGroupMetadata `locationName:"billingGroupMetadata" type:"structure"`
34740
34741	// The name of the billing group.
34742	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
34743
34744	// The properties of the billing group.
34745	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
34746
34747	// The version of the billing group.
34748	Version *int64 `locationName:"version" type:"long"`
34749}
34750
34751// String returns the string representation
34752func (s DescribeBillingGroupOutput) String() string {
34753	return awsutil.Prettify(s)
34754}
34755
34756// GoString returns the string representation
34757func (s DescribeBillingGroupOutput) GoString() string {
34758	return s.String()
34759}
34760
34761// SetBillingGroupArn sets the BillingGroupArn field's value.
34762func (s *DescribeBillingGroupOutput) SetBillingGroupArn(v string) *DescribeBillingGroupOutput {
34763	s.BillingGroupArn = &v
34764	return s
34765}
34766
34767// SetBillingGroupId sets the BillingGroupId field's value.
34768func (s *DescribeBillingGroupOutput) SetBillingGroupId(v string) *DescribeBillingGroupOutput {
34769	s.BillingGroupId = &v
34770	return s
34771}
34772
34773// SetBillingGroupMetadata sets the BillingGroupMetadata field's value.
34774func (s *DescribeBillingGroupOutput) SetBillingGroupMetadata(v *BillingGroupMetadata) *DescribeBillingGroupOutput {
34775	s.BillingGroupMetadata = v
34776	return s
34777}
34778
34779// SetBillingGroupName sets the BillingGroupName field's value.
34780func (s *DescribeBillingGroupOutput) SetBillingGroupName(v string) *DescribeBillingGroupOutput {
34781	s.BillingGroupName = &v
34782	return s
34783}
34784
34785// SetBillingGroupProperties sets the BillingGroupProperties field's value.
34786func (s *DescribeBillingGroupOutput) SetBillingGroupProperties(v *BillingGroupProperties) *DescribeBillingGroupOutput {
34787	s.BillingGroupProperties = v
34788	return s
34789}
34790
34791// SetVersion sets the Version field's value.
34792func (s *DescribeBillingGroupOutput) SetVersion(v int64) *DescribeBillingGroupOutput {
34793	s.Version = &v
34794	return s
34795}
34796
34797// The input for the DescribeCACertificate operation.
34798type DescribeCACertificateInput struct {
34799	_ struct{} `type:"structure"`
34800
34801	// The CA certificate identifier.
34802	//
34803	// CertificateId is a required field
34804	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
34805}
34806
34807// String returns the string representation
34808func (s DescribeCACertificateInput) String() string {
34809	return awsutil.Prettify(s)
34810}
34811
34812// GoString returns the string representation
34813func (s DescribeCACertificateInput) GoString() string {
34814	return s.String()
34815}
34816
34817// Validate inspects the fields of the type to determine if they are valid.
34818func (s *DescribeCACertificateInput) Validate() error {
34819	invalidParams := request.ErrInvalidParams{Context: "DescribeCACertificateInput"}
34820	if s.CertificateId == nil {
34821		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
34822	}
34823	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
34824		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
34825	}
34826
34827	if invalidParams.Len() > 0 {
34828		return invalidParams
34829	}
34830	return nil
34831}
34832
34833// SetCertificateId sets the CertificateId field's value.
34834func (s *DescribeCACertificateInput) SetCertificateId(v string) *DescribeCACertificateInput {
34835	s.CertificateId = &v
34836	return s
34837}
34838
34839// The output from the DescribeCACertificate operation.
34840type DescribeCACertificateOutput struct {
34841	_ struct{} `type:"structure"`
34842
34843	// The CA certificate description.
34844	CertificateDescription *CACertificateDescription `locationName:"certificateDescription" type:"structure"`
34845
34846	// Information about the registration configuration.
34847	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
34848}
34849
34850// String returns the string representation
34851func (s DescribeCACertificateOutput) String() string {
34852	return awsutil.Prettify(s)
34853}
34854
34855// GoString returns the string representation
34856func (s DescribeCACertificateOutput) GoString() string {
34857	return s.String()
34858}
34859
34860// SetCertificateDescription sets the CertificateDescription field's value.
34861func (s *DescribeCACertificateOutput) SetCertificateDescription(v *CACertificateDescription) *DescribeCACertificateOutput {
34862	s.CertificateDescription = v
34863	return s
34864}
34865
34866// SetRegistrationConfig sets the RegistrationConfig field's value.
34867func (s *DescribeCACertificateOutput) SetRegistrationConfig(v *RegistrationConfig) *DescribeCACertificateOutput {
34868	s.RegistrationConfig = v
34869	return s
34870}
34871
34872// The input for the DescribeCertificate operation.
34873type DescribeCertificateInput struct {
34874	_ struct{} `type:"structure"`
34875
34876	// The ID of the certificate. (The last part of the certificate ARN contains
34877	// the certificate ID.)
34878	//
34879	// CertificateId is a required field
34880	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
34881}
34882
34883// String returns the string representation
34884func (s DescribeCertificateInput) String() string {
34885	return awsutil.Prettify(s)
34886}
34887
34888// GoString returns the string representation
34889func (s DescribeCertificateInput) GoString() string {
34890	return s.String()
34891}
34892
34893// Validate inspects the fields of the type to determine if they are valid.
34894func (s *DescribeCertificateInput) Validate() error {
34895	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateInput"}
34896	if s.CertificateId == nil {
34897		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
34898	}
34899	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
34900		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
34901	}
34902
34903	if invalidParams.Len() > 0 {
34904		return invalidParams
34905	}
34906	return nil
34907}
34908
34909// SetCertificateId sets the CertificateId field's value.
34910func (s *DescribeCertificateInput) SetCertificateId(v string) *DescribeCertificateInput {
34911	s.CertificateId = &v
34912	return s
34913}
34914
34915// The output of the DescribeCertificate operation.
34916type DescribeCertificateOutput struct {
34917	_ struct{} `type:"structure"`
34918
34919	// The description of the certificate.
34920	CertificateDescription *CertificateDescription `locationName:"certificateDescription" type:"structure"`
34921}
34922
34923// String returns the string representation
34924func (s DescribeCertificateOutput) String() string {
34925	return awsutil.Prettify(s)
34926}
34927
34928// GoString returns the string representation
34929func (s DescribeCertificateOutput) GoString() string {
34930	return s.String()
34931}
34932
34933// SetCertificateDescription sets the CertificateDescription field's value.
34934func (s *DescribeCertificateOutput) SetCertificateDescription(v *CertificateDescription) *DescribeCertificateOutput {
34935	s.CertificateDescription = v
34936	return s
34937}
34938
34939type DescribeCustomMetricInput struct {
34940	_ struct{} `type:"structure"`
34941
34942	// The name of the custom metric.
34943	//
34944	// MetricName is a required field
34945	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
34946}
34947
34948// String returns the string representation
34949func (s DescribeCustomMetricInput) String() string {
34950	return awsutil.Prettify(s)
34951}
34952
34953// GoString returns the string representation
34954func (s DescribeCustomMetricInput) GoString() string {
34955	return s.String()
34956}
34957
34958// Validate inspects the fields of the type to determine if they are valid.
34959func (s *DescribeCustomMetricInput) Validate() error {
34960	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomMetricInput"}
34961	if s.MetricName == nil {
34962		invalidParams.Add(request.NewErrParamRequired("MetricName"))
34963	}
34964	if s.MetricName != nil && len(*s.MetricName) < 1 {
34965		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
34966	}
34967
34968	if invalidParams.Len() > 0 {
34969		return invalidParams
34970	}
34971	return nil
34972}
34973
34974// SetMetricName sets the MetricName field's value.
34975func (s *DescribeCustomMetricInput) SetMetricName(v string) *DescribeCustomMetricInput {
34976	s.MetricName = &v
34977	return s
34978}
34979
34980type DescribeCustomMetricOutput struct {
34981	_ struct{} `type:"structure"`
34982
34983	// The creation date of the custom metric in milliseconds since epoch.
34984	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
34985
34986	// Field represents a friendly name in the console for the custom metric; doesn't
34987	// have to be unique. Don't use this name as the metric identifier in the device
34988	// metric report. Can be updated.
34989	DisplayName *string `locationName:"displayName" type:"string"`
34990
34991	// The time the custom metric was last modified in milliseconds since epoch.
34992	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
34993
34994	// The Amazon Resource Number (ARN) of the custom metric.
34995	MetricArn *string `locationName:"metricArn" type:"string"`
34996
34997	// The name of the custom metric.
34998	MetricName *string `locationName:"metricName" min:"1" type:"string"`
34999
35000	// The type of the custom metric. Types include string-list, ip-address-list,
35001	// number-list, and number.
35002	MetricType *string `locationName:"metricType" type:"string" enum:"CustomMetricType"`
35003}
35004
35005// String returns the string representation
35006func (s DescribeCustomMetricOutput) String() string {
35007	return awsutil.Prettify(s)
35008}
35009
35010// GoString returns the string representation
35011func (s DescribeCustomMetricOutput) GoString() string {
35012	return s.String()
35013}
35014
35015// SetCreationDate sets the CreationDate field's value.
35016func (s *DescribeCustomMetricOutput) SetCreationDate(v time.Time) *DescribeCustomMetricOutput {
35017	s.CreationDate = &v
35018	return s
35019}
35020
35021// SetDisplayName sets the DisplayName field's value.
35022func (s *DescribeCustomMetricOutput) SetDisplayName(v string) *DescribeCustomMetricOutput {
35023	s.DisplayName = &v
35024	return s
35025}
35026
35027// SetLastModifiedDate sets the LastModifiedDate field's value.
35028func (s *DescribeCustomMetricOutput) SetLastModifiedDate(v time.Time) *DescribeCustomMetricOutput {
35029	s.LastModifiedDate = &v
35030	return s
35031}
35032
35033// SetMetricArn sets the MetricArn field's value.
35034func (s *DescribeCustomMetricOutput) SetMetricArn(v string) *DescribeCustomMetricOutput {
35035	s.MetricArn = &v
35036	return s
35037}
35038
35039// SetMetricName sets the MetricName field's value.
35040func (s *DescribeCustomMetricOutput) SetMetricName(v string) *DescribeCustomMetricOutput {
35041	s.MetricName = &v
35042	return s
35043}
35044
35045// SetMetricType sets the MetricType field's value.
35046func (s *DescribeCustomMetricOutput) SetMetricType(v string) *DescribeCustomMetricOutput {
35047	s.MetricType = &v
35048	return s
35049}
35050
35051type DescribeDefaultAuthorizerInput struct {
35052	_ struct{} `type:"structure"`
35053}
35054
35055// String returns the string representation
35056func (s DescribeDefaultAuthorizerInput) String() string {
35057	return awsutil.Prettify(s)
35058}
35059
35060// GoString returns the string representation
35061func (s DescribeDefaultAuthorizerInput) GoString() string {
35062	return s.String()
35063}
35064
35065type DescribeDefaultAuthorizerOutput struct {
35066	_ struct{} `type:"structure"`
35067
35068	// The default authorizer's description.
35069	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
35070}
35071
35072// String returns the string representation
35073func (s DescribeDefaultAuthorizerOutput) String() string {
35074	return awsutil.Prettify(s)
35075}
35076
35077// GoString returns the string representation
35078func (s DescribeDefaultAuthorizerOutput) GoString() string {
35079	return s.String()
35080}
35081
35082// SetAuthorizerDescription sets the AuthorizerDescription field's value.
35083func (s *DescribeDefaultAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeDefaultAuthorizerOutput {
35084	s.AuthorizerDescription = v
35085	return s
35086}
35087
35088type DescribeDetectMitigationActionsTaskInput struct {
35089	_ struct{} `type:"structure"`
35090
35091	// The unique identifier of the task.
35092	//
35093	// TaskId is a required field
35094	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
35095}
35096
35097// String returns the string representation
35098func (s DescribeDetectMitigationActionsTaskInput) String() string {
35099	return awsutil.Prettify(s)
35100}
35101
35102// GoString returns the string representation
35103func (s DescribeDetectMitigationActionsTaskInput) GoString() string {
35104	return s.String()
35105}
35106
35107// Validate inspects the fields of the type to determine if they are valid.
35108func (s *DescribeDetectMitigationActionsTaskInput) Validate() error {
35109	invalidParams := request.ErrInvalidParams{Context: "DescribeDetectMitigationActionsTaskInput"}
35110	if s.TaskId == nil {
35111		invalidParams.Add(request.NewErrParamRequired("TaskId"))
35112	}
35113	if s.TaskId != nil && len(*s.TaskId) < 1 {
35114		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
35115	}
35116
35117	if invalidParams.Len() > 0 {
35118		return invalidParams
35119	}
35120	return nil
35121}
35122
35123// SetTaskId sets the TaskId field's value.
35124func (s *DescribeDetectMitigationActionsTaskInput) SetTaskId(v string) *DescribeDetectMitigationActionsTaskInput {
35125	s.TaskId = &v
35126	return s
35127}
35128
35129type DescribeDetectMitigationActionsTaskOutput struct {
35130	_ struct{} `type:"structure"`
35131
35132	// The description of a task.
35133	TaskSummary *DetectMitigationActionsTaskSummary `locationName:"taskSummary" type:"structure"`
35134}
35135
35136// String returns the string representation
35137func (s DescribeDetectMitigationActionsTaskOutput) String() string {
35138	return awsutil.Prettify(s)
35139}
35140
35141// GoString returns the string representation
35142func (s DescribeDetectMitigationActionsTaskOutput) GoString() string {
35143	return s.String()
35144}
35145
35146// SetTaskSummary sets the TaskSummary field's value.
35147func (s *DescribeDetectMitigationActionsTaskOutput) SetTaskSummary(v *DetectMitigationActionsTaskSummary) *DescribeDetectMitigationActionsTaskOutput {
35148	s.TaskSummary = v
35149	return s
35150}
35151
35152type DescribeDimensionInput struct {
35153	_ struct{} `type:"structure"`
35154
35155	// The unique identifier for the dimension.
35156	//
35157	// Name is a required field
35158	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
35159}
35160
35161// String returns the string representation
35162func (s DescribeDimensionInput) String() string {
35163	return awsutil.Prettify(s)
35164}
35165
35166// GoString returns the string representation
35167func (s DescribeDimensionInput) GoString() string {
35168	return s.String()
35169}
35170
35171// Validate inspects the fields of the type to determine if they are valid.
35172func (s *DescribeDimensionInput) Validate() error {
35173	invalidParams := request.ErrInvalidParams{Context: "DescribeDimensionInput"}
35174	if s.Name == nil {
35175		invalidParams.Add(request.NewErrParamRequired("Name"))
35176	}
35177	if s.Name != nil && len(*s.Name) < 1 {
35178		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
35179	}
35180
35181	if invalidParams.Len() > 0 {
35182		return invalidParams
35183	}
35184	return nil
35185}
35186
35187// SetName sets the Name field's value.
35188func (s *DescribeDimensionInput) SetName(v string) *DescribeDimensionInput {
35189	s.Name = &v
35190	return s
35191}
35192
35193type DescribeDimensionOutput struct {
35194	_ struct{} `type:"structure"`
35195
35196	// The Amazon Resource Name (ARN) for the dimension.
35197	Arn *string `locationName:"arn" type:"string"`
35198
35199	// The date the dimension was created.
35200	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
35201
35202	// The date the dimension was last modified.
35203	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
35204
35205	// The unique identifier for the dimension.
35206	Name *string `locationName:"name" min:"1" type:"string"`
35207
35208	// The value or list of values used to scope the dimension. For example, for
35209	// topic filters, this is the pattern used to match the MQTT topic name.
35210	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
35211
35212	// The type of the dimension.
35213	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
35214}
35215
35216// String returns the string representation
35217func (s DescribeDimensionOutput) String() string {
35218	return awsutil.Prettify(s)
35219}
35220
35221// GoString returns the string representation
35222func (s DescribeDimensionOutput) GoString() string {
35223	return s.String()
35224}
35225
35226// SetArn sets the Arn field's value.
35227func (s *DescribeDimensionOutput) SetArn(v string) *DescribeDimensionOutput {
35228	s.Arn = &v
35229	return s
35230}
35231
35232// SetCreationDate sets the CreationDate field's value.
35233func (s *DescribeDimensionOutput) SetCreationDate(v time.Time) *DescribeDimensionOutput {
35234	s.CreationDate = &v
35235	return s
35236}
35237
35238// SetLastModifiedDate sets the LastModifiedDate field's value.
35239func (s *DescribeDimensionOutput) SetLastModifiedDate(v time.Time) *DescribeDimensionOutput {
35240	s.LastModifiedDate = &v
35241	return s
35242}
35243
35244// SetName sets the Name field's value.
35245func (s *DescribeDimensionOutput) SetName(v string) *DescribeDimensionOutput {
35246	s.Name = &v
35247	return s
35248}
35249
35250// SetStringValues sets the StringValues field's value.
35251func (s *DescribeDimensionOutput) SetStringValues(v []*string) *DescribeDimensionOutput {
35252	s.StringValues = v
35253	return s
35254}
35255
35256// SetType sets the Type field's value.
35257func (s *DescribeDimensionOutput) SetType(v string) *DescribeDimensionOutput {
35258	s.Type = &v
35259	return s
35260}
35261
35262type DescribeDomainConfigurationInput struct {
35263	_ struct{} `type:"structure"`
35264
35265	// The name of the domain configuration.
35266	//
35267	// DomainConfigurationName is a required field
35268	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
35269}
35270
35271// String returns the string representation
35272func (s DescribeDomainConfigurationInput) String() string {
35273	return awsutil.Prettify(s)
35274}
35275
35276// GoString returns the string representation
35277func (s DescribeDomainConfigurationInput) GoString() string {
35278	return s.String()
35279}
35280
35281// Validate inspects the fields of the type to determine if they are valid.
35282func (s *DescribeDomainConfigurationInput) Validate() error {
35283	invalidParams := request.ErrInvalidParams{Context: "DescribeDomainConfigurationInput"}
35284	if s.DomainConfigurationName == nil {
35285		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
35286	}
35287	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
35288		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
35289	}
35290
35291	if invalidParams.Len() > 0 {
35292		return invalidParams
35293	}
35294	return nil
35295}
35296
35297// SetDomainConfigurationName sets the DomainConfigurationName field's value.
35298func (s *DescribeDomainConfigurationInput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationInput {
35299	s.DomainConfigurationName = &v
35300	return s
35301}
35302
35303type DescribeDomainConfigurationOutput struct {
35304	_ struct{} `type:"structure"`
35305
35306	// An object that specifies the authorization service for a domain.
35307	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
35308
35309	// The ARN of the domain configuration.
35310	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
35311
35312	// The name of the domain configuration.
35313	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
35314
35315	// A Boolean value that specifies the current state of the domain configuration.
35316	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
35317
35318	// The name of the domain.
35319	DomainName *string `locationName:"domainName" min:"1" type:"string"`
35320
35321	// The type of the domain.
35322	DomainType *string `locationName:"domainType" type:"string" enum:"DomainType"`
35323
35324	// The date and time the domain configuration's status was last changed.
35325	LastStatusChangeDate *time.Time `locationName:"lastStatusChangeDate" type:"timestamp"`
35326
35327	// A list containing summary information about the server certificate included
35328	// in the domain configuration.
35329	ServerCertificates []*ServerCertificateSummary `locationName:"serverCertificates" type:"list"`
35330
35331	// The type of service delivered by the endpoint.
35332	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
35333}
35334
35335// String returns the string representation
35336func (s DescribeDomainConfigurationOutput) String() string {
35337	return awsutil.Prettify(s)
35338}
35339
35340// GoString returns the string representation
35341func (s DescribeDomainConfigurationOutput) GoString() string {
35342	return s.String()
35343}
35344
35345// SetAuthorizerConfig sets the AuthorizerConfig field's value.
35346func (s *DescribeDomainConfigurationOutput) SetAuthorizerConfig(v *AuthorizerConfig) *DescribeDomainConfigurationOutput {
35347	s.AuthorizerConfig = v
35348	return s
35349}
35350
35351// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
35352func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationArn(v string) *DescribeDomainConfigurationOutput {
35353	s.DomainConfigurationArn = &v
35354	return s
35355}
35356
35357// SetDomainConfigurationName sets the DomainConfigurationName field's value.
35358func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationOutput {
35359	s.DomainConfigurationName = &v
35360	return s
35361}
35362
35363// SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
35364func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationStatus(v string) *DescribeDomainConfigurationOutput {
35365	s.DomainConfigurationStatus = &v
35366	return s
35367}
35368
35369// SetDomainName sets the DomainName field's value.
35370func (s *DescribeDomainConfigurationOutput) SetDomainName(v string) *DescribeDomainConfigurationOutput {
35371	s.DomainName = &v
35372	return s
35373}
35374
35375// SetDomainType sets the DomainType field's value.
35376func (s *DescribeDomainConfigurationOutput) SetDomainType(v string) *DescribeDomainConfigurationOutput {
35377	s.DomainType = &v
35378	return s
35379}
35380
35381// SetLastStatusChangeDate sets the LastStatusChangeDate field's value.
35382func (s *DescribeDomainConfigurationOutput) SetLastStatusChangeDate(v time.Time) *DescribeDomainConfigurationOutput {
35383	s.LastStatusChangeDate = &v
35384	return s
35385}
35386
35387// SetServerCertificates sets the ServerCertificates field's value.
35388func (s *DescribeDomainConfigurationOutput) SetServerCertificates(v []*ServerCertificateSummary) *DescribeDomainConfigurationOutput {
35389	s.ServerCertificates = v
35390	return s
35391}
35392
35393// SetServiceType sets the ServiceType field's value.
35394func (s *DescribeDomainConfigurationOutput) SetServiceType(v string) *DescribeDomainConfigurationOutput {
35395	s.ServiceType = &v
35396	return s
35397}
35398
35399// The input for the DescribeEndpoint operation.
35400type DescribeEndpointInput struct {
35401	_ struct{} `type:"structure"`
35402
35403	// The endpoint type. Valid endpoint types include:
35404	//
35405	//    * iot:Data - Returns a VeriSign signed data endpoint.
35406	//
35407	//    * iot:Data-ATS - Returns an ATS signed data endpoint.
35408	//
35409	//    * iot:CredentialProvider - Returns an AWS IoT credentials provider API
35410	//    endpoint.
35411	//
35412	//    * iot:Jobs - Returns an AWS IoT device management Jobs API endpoint.
35413	//
35414	// We strongly recommend that customers use the newer iot:Data-ATS endpoint
35415	// type to avoid issues related to the widespread distrust of Symantec certificate
35416	// authorities.
35417	EndpointType *string `location:"querystring" locationName:"endpointType" type:"string"`
35418}
35419
35420// String returns the string representation
35421func (s DescribeEndpointInput) String() string {
35422	return awsutil.Prettify(s)
35423}
35424
35425// GoString returns the string representation
35426func (s DescribeEndpointInput) GoString() string {
35427	return s.String()
35428}
35429
35430// SetEndpointType sets the EndpointType field's value.
35431func (s *DescribeEndpointInput) SetEndpointType(v string) *DescribeEndpointInput {
35432	s.EndpointType = &v
35433	return s
35434}
35435
35436// The output from the DescribeEndpoint operation.
35437type DescribeEndpointOutput struct {
35438	_ struct{} `type:"structure"`
35439
35440	// The endpoint. The format of the endpoint is as follows: identifier.iot.region.amazonaws.com.
35441	EndpointAddress *string `locationName:"endpointAddress" type:"string"`
35442}
35443
35444// String returns the string representation
35445func (s DescribeEndpointOutput) String() string {
35446	return awsutil.Prettify(s)
35447}
35448
35449// GoString returns the string representation
35450func (s DescribeEndpointOutput) GoString() string {
35451	return s.String()
35452}
35453
35454// SetEndpointAddress sets the EndpointAddress field's value.
35455func (s *DescribeEndpointOutput) SetEndpointAddress(v string) *DescribeEndpointOutput {
35456	s.EndpointAddress = &v
35457	return s
35458}
35459
35460type DescribeEventConfigurationsInput struct {
35461	_ struct{} `type:"structure"`
35462}
35463
35464// String returns the string representation
35465func (s DescribeEventConfigurationsInput) String() string {
35466	return awsutil.Prettify(s)
35467}
35468
35469// GoString returns the string representation
35470func (s DescribeEventConfigurationsInput) GoString() string {
35471	return s.String()
35472}
35473
35474type DescribeEventConfigurationsOutput struct {
35475	_ struct{} `type:"structure"`
35476
35477	// The creation date of the event configuration.
35478	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
35479
35480	// The event configurations.
35481	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
35482
35483	// The date the event configurations were last modified.
35484	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
35485}
35486
35487// String returns the string representation
35488func (s DescribeEventConfigurationsOutput) String() string {
35489	return awsutil.Prettify(s)
35490}
35491
35492// GoString returns the string representation
35493func (s DescribeEventConfigurationsOutput) GoString() string {
35494	return s.String()
35495}
35496
35497// SetCreationDate sets the CreationDate field's value.
35498func (s *DescribeEventConfigurationsOutput) SetCreationDate(v time.Time) *DescribeEventConfigurationsOutput {
35499	s.CreationDate = &v
35500	return s
35501}
35502
35503// SetEventConfigurations sets the EventConfigurations field's value.
35504func (s *DescribeEventConfigurationsOutput) SetEventConfigurations(v map[string]*Configuration) *DescribeEventConfigurationsOutput {
35505	s.EventConfigurations = v
35506	return s
35507}
35508
35509// SetLastModifiedDate sets the LastModifiedDate field's value.
35510func (s *DescribeEventConfigurationsOutput) SetLastModifiedDate(v time.Time) *DescribeEventConfigurationsOutput {
35511	s.LastModifiedDate = &v
35512	return s
35513}
35514
35515type DescribeIndexInput struct {
35516	_ struct{} `type:"structure"`
35517
35518	// The index name.
35519	//
35520	// IndexName is a required field
35521	IndexName *string `location:"uri" locationName:"indexName" min:"1" type:"string" required:"true"`
35522}
35523
35524// String returns the string representation
35525func (s DescribeIndexInput) String() string {
35526	return awsutil.Prettify(s)
35527}
35528
35529// GoString returns the string representation
35530func (s DescribeIndexInput) GoString() string {
35531	return s.String()
35532}
35533
35534// Validate inspects the fields of the type to determine if they are valid.
35535func (s *DescribeIndexInput) Validate() error {
35536	invalidParams := request.ErrInvalidParams{Context: "DescribeIndexInput"}
35537	if s.IndexName == nil {
35538		invalidParams.Add(request.NewErrParamRequired("IndexName"))
35539	}
35540	if s.IndexName != nil && len(*s.IndexName) < 1 {
35541		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
35542	}
35543
35544	if invalidParams.Len() > 0 {
35545		return invalidParams
35546	}
35547	return nil
35548}
35549
35550// SetIndexName sets the IndexName field's value.
35551func (s *DescribeIndexInput) SetIndexName(v string) *DescribeIndexInput {
35552	s.IndexName = &v
35553	return s
35554}
35555
35556type DescribeIndexOutput struct {
35557	_ struct{} `type:"structure"`
35558
35559	// The index name.
35560	IndexName *string `locationName:"indexName" min:"1" type:"string"`
35561
35562	// The index status.
35563	IndexStatus *string `locationName:"indexStatus" type:"string" enum:"IndexStatus"`
35564
35565	// Contains a value that specifies the type of indexing performed. Valid values
35566	// are:
35567	//
35568	//    * REGISTRY – Your thing index contains only registry data.
35569	//
35570	//    * REGISTRY_AND_SHADOW - Your thing index contains registry data and shadow
35571	//    data.
35572	//
35573	//    * REGISTRY_AND_CONNECTIVITY_STATUS - Your thing index contains registry
35574	//    data and thing connectivity status data.
35575	//
35576	//    * REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS - Your thing index contains
35577	//    registry data, shadow data, and thing connectivity status data.
35578	Schema *string `locationName:"schema" type:"string"`
35579}
35580
35581// String returns the string representation
35582func (s DescribeIndexOutput) String() string {
35583	return awsutil.Prettify(s)
35584}
35585
35586// GoString returns the string representation
35587func (s DescribeIndexOutput) GoString() string {
35588	return s.String()
35589}
35590
35591// SetIndexName sets the IndexName field's value.
35592func (s *DescribeIndexOutput) SetIndexName(v string) *DescribeIndexOutput {
35593	s.IndexName = &v
35594	return s
35595}
35596
35597// SetIndexStatus sets the IndexStatus field's value.
35598func (s *DescribeIndexOutput) SetIndexStatus(v string) *DescribeIndexOutput {
35599	s.IndexStatus = &v
35600	return s
35601}
35602
35603// SetSchema sets the Schema field's value.
35604func (s *DescribeIndexOutput) SetSchema(v string) *DescribeIndexOutput {
35605	s.Schema = &v
35606	return s
35607}
35608
35609type DescribeJobExecutionInput struct {
35610	_ struct{} `type:"structure"`
35611
35612	// A string (consisting of the digits "0" through "9" which is used to specify
35613	// a particular job execution on a particular device.
35614	ExecutionNumber *int64 `location:"querystring" locationName:"executionNumber" type:"long"`
35615
35616	// The unique identifier you assigned to this job when it was created.
35617	//
35618	// JobId is a required field
35619	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
35620
35621	// The name of the thing on which the job execution is running.
35622	//
35623	// ThingName is a required field
35624	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
35625}
35626
35627// String returns the string representation
35628func (s DescribeJobExecutionInput) String() string {
35629	return awsutil.Prettify(s)
35630}
35631
35632// GoString returns the string representation
35633func (s DescribeJobExecutionInput) GoString() string {
35634	return s.String()
35635}
35636
35637// Validate inspects the fields of the type to determine if they are valid.
35638func (s *DescribeJobExecutionInput) Validate() error {
35639	invalidParams := request.ErrInvalidParams{Context: "DescribeJobExecutionInput"}
35640	if s.JobId == nil {
35641		invalidParams.Add(request.NewErrParamRequired("JobId"))
35642	}
35643	if s.JobId != nil && len(*s.JobId) < 1 {
35644		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
35645	}
35646	if s.ThingName == nil {
35647		invalidParams.Add(request.NewErrParamRequired("ThingName"))
35648	}
35649	if s.ThingName != nil && len(*s.ThingName) < 1 {
35650		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
35651	}
35652
35653	if invalidParams.Len() > 0 {
35654		return invalidParams
35655	}
35656	return nil
35657}
35658
35659// SetExecutionNumber sets the ExecutionNumber field's value.
35660func (s *DescribeJobExecutionInput) SetExecutionNumber(v int64) *DescribeJobExecutionInput {
35661	s.ExecutionNumber = &v
35662	return s
35663}
35664
35665// SetJobId sets the JobId field's value.
35666func (s *DescribeJobExecutionInput) SetJobId(v string) *DescribeJobExecutionInput {
35667	s.JobId = &v
35668	return s
35669}
35670
35671// SetThingName sets the ThingName field's value.
35672func (s *DescribeJobExecutionInput) SetThingName(v string) *DescribeJobExecutionInput {
35673	s.ThingName = &v
35674	return s
35675}
35676
35677type DescribeJobExecutionOutput struct {
35678	_ struct{} `type:"structure"`
35679
35680	// Information about the job execution.
35681	Execution *JobExecution `locationName:"execution" type:"structure"`
35682}
35683
35684// String returns the string representation
35685func (s DescribeJobExecutionOutput) String() string {
35686	return awsutil.Prettify(s)
35687}
35688
35689// GoString returns the string representation
35690func (s DescribeJobExecutionOutput) GoString() string {
35691	return s.String()
35692}
35693
35694// SetExecution sets the Execution field's value.
35695func (s *DescribeJobExecutionOutput) SetExecution(v *JobExecution) *DescribeJobExecutionOutput {
35696	s.Execution = v
35697	return s
35698}
35699
35700type DescribeJobInput struct {
35701	_ struct{} `type:"structure"`
35702
35703	// The unique identifier you assigned to this job when it was created.
35704	//
35705	// JobId is a required field
35706	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
35707}
35708
35709// String returns the string representation
35710func (s DescribeJobInput) String() string {
35711	return awsutil.Prettify(s)
35712}
35713
35714// GoString returns the string representation
35715func (s DescribeJobInput) GoString() string {
35716	return s.String()
35717}
35718
35719// Validate inspects the fields of the type to determine if they are valid.
35720func (s *DescribeJobInput) Validate() error {
35721	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
35722	if s.JobId == nil {
35723		invalidParams.Add(request.NewErrParamRequired("JobId"))
35724	}
35725	if s.JobId != nil && len(*s.JobId) < 1 {
35726		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
35727	}
35728
35729	if invalidParams.Len() > 0 {
35730		return invalidParams
35731	}
35732	return nil
35733}
35734
35735// SetJobId sets the JobId field's value.
35736func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
35737	s.JobId = &v
35738	return s
35739}
35740
35741type DescribeJobOutput struct {
35742	_ struct{} `type:"structure"`
35743
35744	// An S3 link to the job document.
35745	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
35746
35747	// Information about the job.
35748	Job *Job `locationName:"job" type:"structure"`
35749}
35750
35751// String returns the string representation
35752func (s DescribeJobOutput) String() string {
35753	return awsutil.Prettify(s)
35754}
35755
35756// GoString returns the string representation
35757func (s DescribeJobOutput) GoString() string {
35758	return s.String()
35759}
35760
35761// SetDocumentSource sets the DocumentSource field's value.
35762func (s *DescribeJobOutput) SetDocumentSource(v string) *DescribeJobOutput {
35763	s.DocumentSource = &v
35764	return s
35765}
35766
35767// SetJob sets the Job field's value.
35768func (s *DescribeJobOutput) SetJob(v *Job) *DescribeJobOutput {
35769	s.Job = v
35770	return s
35771}
35772
35773type DescribeJobTemplateInput struct {
35774	_ struct{} `type:"structure"`
35775
35776	// The unique identifier of the job template.
35777	//
35778	// JobTemplateId is a required field
35779	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
35780}
35781
35782// String returns the string representation
35783func (s DescribeJobTemplateInput) String() string {
35784	return awsutil.Prettify(s)
35785}
35786
35787// GoString returns the string representation
35788func (s DescribeJobTemplateInput) GoString() string {
35789	return s.String()
35790}
35791
35792// Validate inspects the fields of the type to determine if they are valid.
35793func (s *DescribeJobTemplateInput) Validate() error {
35794	invalidParams := request.ErrInvalidParams{Context: "DescribeJobTemplateInput"}
35795	if s.JobTemplateId == nil {
35796		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
35797	}
35798	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
35799		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
35800	}
35801
35802	if invalidParams.Len() > 0 {
35803		return invalidParams
35804	}
35805	return nil
35806}
35807
35808// SetJobTemplateId sets the JobTemplateId field's value.
35809func (s *DescribeJobTemplateInput) SetJobTemplateId(v string) *DescribeJobTemplateInput {
35810	s.JobTemplateId = &v
35811	return s
35812}
35813
35814type DescribeJobTemplateOutput struct {
35815	_ struct{} `type:"structure"`
35816
35817	// The criteria that determine when and how a job abort takes place.
35818	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
35819
35820	// The time, in seconds since the epoch, when the job template was created.
35821	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
35822
35823	// A description of the job template.
35824	Description *string `locationName:"description" type:"string"`
35825
35826	// The job document.
35827	Document *string `locationName:"document" type:"string"`
35828
35829	// An S3 link to the job document.
35830	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
35831
35832	// Allows you to create a staged rollout of a job.
35833	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
35834
35835	// The ARN of the job template.
35836	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
35837
35838	// The unique identifier of the job template.
35839	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
35840
35841	// Configuration for pre-signed S3 URLs.
35842	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
35843
35844	// Specifies the amount of time each device has to finish its execution of the
35845	// job. A timer is started when the job execution status is set to IN_PROGRESS.
35846	// If the job execution status is not set to another terminal state before the
35847	// timer expires, it will be automatically set to TIMED_OUT.
35848	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
35849}
35850
35851// String returns the string representation
35852func (s DescribeJobTemplateOutput) String() string {
35853	return awsutil.Prettify(s)
35854}
35855
35856// GoString returns the string representation
35857func (s DescribeJobTemplateOutput) GoString() string {
35858	return s.String()
35859}
35860
35861// SetAbortConfig sets the AbortConfig field's value.
35862func (s *DescribeJobTemplateOutput) SetAbortConfig(v *AbortConfig) *DescribeJobTemplateOutput {
35863	s.AbortConfig = v
35864	return s
35865}
35866
35867// SetCreatedAt sets the CreatedAt field's value.
35868func (s *DescribeJobTemplateOutput) SetCreatedAt(v time.Time) *DescribeJobTemplateOutput {
35869	s.CreatedAt = &v
35870	return s
35871}
35872
35873// SetDescription sets the Description field's value.
35874func (s *DescribeJobTemplateOutput) SetDescription(v string) *DescribeJobTemplateOutput {
35875	s.Description = &v
35876	return s
35877}
35878
35879// SetDocument sets the Document field's value.
35880func (s *DescribeJobTemplateOutput) SetDocument(v string) *DescribeJobTemplateOutput {
35881	s.Document = &v
35882	return s
35883}
35884
35885// SetDocumentSource sets the DocumentSource field's value.
35886func (s *DescribeJobTemplateOutput) SetDocumentSource(v string) *DescribeJobTemplateOutput {
35887	s.DocumentSource = &v
35888	return s
35889}
35890
35891// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
35892func (s *DescribeJobTemplateOutput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *DescribeJobTemplateOutput {
35893	s.JobExecutionsRolloutConfig = v
35894	return s
35895}
35896
35897// SetJobTemplateArn sets the JobTemplateArn field's value.
35898func (s *DescribeJobTemplateOutput) SetJobTemplateArn(v string) *DescribeJobTemplateOutput {
35899	s.JobTemplateArn = &v
35900	return s
35901}
35902
35903// SetJobTemplateId sets the JobTemplateId field's value.
35904func (s *DescribeJobTemplateOutput) SetJobTemplateId(v string) *DescribeJobTemplateOutput {
35905	s.JobTemplateId = &v
35906	return s
35907}
35908
35909// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
35910func (s *DescribeJobTemplateOutput) SetPresignedUrlConfig(v *PresignedUrlConfig) *DescribeJobTemplateOutput {
35911	s.PresignedUrlConfig = v
35912	return s
35913}
35914
35915// SetTimeoutConfig sets the TimeoutConfig field's value.
35916func (s *DescribeJobTemplateOutput) SetTimeoutConfig(v *TimeoutConfig) *DescribeJobTemplateOutput {
35917	s.TimeoutConfig = v
35918	return s
35919}
35920
35921type DescribeMitigationActionInput struct {
35922	_ struct{} `type:"structure"`
35923
35924	// The friendly name that uniquely identifies the mitigation action.
35925	//
35926	// ActionName is a required field
35927	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
35928}
35929
35930// String returns the string representation
35931func (s DescribeMitigationActionInput) String() string {
35932	return awsutil.Prettify(s)
35933}
35934
35935// GoString returns the string representation
35936func (s DescribeMitigationActionInput) GoString() string {
35937	return s.String()
35938}
35939
35940// Validate inspects the fields of the type to determine if they are valid.
35941func (s *DescribeMitigationActionInput) Validate() error {
35942	invalidParams := request.ErrInvalidParams{Context: "DescribeMitigationActionInput"}
35943	if s.ActionName == nil {
35944		invalidParams.Add(request.NewErrParamRequired("ActionName"))
35945	}
35946	if s.ActionName != nil && len(*s.ActionName) < 1 {
35947		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
35948	}
35949
35950	if invalidParams.Len() > 0 {
35951		return invalidParams
35952	}
35953	return nil
35954}
35955
35956// SetActionName sets the ActionName field's value.
35957func (s *DescribeMitigationActionInput) SetActionName(v string) *DescribeMitigationActionInput {
35958	s.ActionName = &v
35959	return s
35960}
35961
35962type DescribeMitigationActionOutput struct {
35963	_ struct{} `type:"structure"`
35964
35965	// The ARN that identifies this migration action.
35966	ActionArn *string `locationName:"actionArn" type:"string"`
35967
35968	// A unique identifier for this action.
35969	ActionId *string `locationName:"actionId" type:"string"`
35970
35971	// The friendly name that uniquely identifies the mitigation action.
35972	ActionName *string `locationName:"actionName" type:"string"`
35973
35974	// Parameters that control how the mitigation action is applied, specific to
35975	// the type of mitigation action.
35976	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
35977
35978	// The type of mitigation action.
35979	ActionType *string `locationName:"actionType" type:"string" enum:"MitigationActionType"`
35980
35981	// The date and time when the mitigation action was added to your AWS account.
35982	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
35983
35984	// The date and time when the mitigation action was last changed.
35985	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
35986
35987	// The ARN of the IAM role used to apply this action.
35988	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
35989}
35990
35991// String returns the string representation
35992func (s DescribeMitigationActionOutput) String() string {
35993	return awsutil.Prettify(s)
35994}
35995
35996// GoString returns the string representation
35997func (s DescribeMitigationActionOutput) GoString() string {
35998	return s.String()
35999}
36000
36001// SetActionArn sets the ActionArn field's value.
36002func (s *DescribeMitigationActionOutput) SetActionArn(v string) *DescribeMitigationActionOutput {
36003	s.ActionArn = &v
36004	return s
36005}
36006
36007// SetActionId sets the ActionId field's value.
36008func (s *DescribeMitigationActionOutput) SetActionId(v string) *DescribeMitigationActionOutput {
36009	s.ActionId = &v
36010	return s
36011}
36012
36013// SetActionName sets the ActionName field's value.
36014func (s *DescribeMitigationActionOutput) SetActionName(v string) *DescribeMitigationActionOutput {
36015	s.ActionName = &v
36016	return s
36017}
36018
36019// SetActionParams sets the ActionParams field's value.
36020func (s *DescribeMitigationActionOutput) SetActionParams(v *MitigationActionParams) *DescribeMitigationActionOutput {
36021	s.ActionParams = v
36022	return s
36023}
36024
36025// SetActionType sets the ActionType field's value.
36026func (s *DescribeMitigationActionOutput) SetActionType(v string) *DescribeMitigationActionOutput {
36027	s.ActionType = &v
36028	return s
36029}
36030
36031// SetCreationDate sets the CreationDate field's value.
36032func (s *DescribeMitigationActionOutput) SetCreationDate(v time.Time) *DescribeMitigationActionOutput {
36033	s.CreationDate = &v
36034	return s
36035}
36036
36037// SetLastModifiedDate sets the LastModifiedDate field's value.
36038func (s *DescribeMitigationActionOutput) SetLastModifiedDate(v time.Time) *DescribeMitigationActionOutput {
36039	s.LastModifiedDate = &v
36040	return s
36041}
36042
36043// SetRoleArn sets the RoleArn field's value.
36044func (s *DescribeMitigationActionOutput) SetRoleArn(v string) *DescribeMitigationActionOutput {
36045	s.RoleArn = &v
36046	return s
36047}
36048
36049type DescribeProvisioningTemplateInput struct {
36050	_ struct{} `type:"structure"`
36051
36052	// The name of the fleet provisioning template.
36053	//
36054	// TemplateName is a required field
36055	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
36056}
36057
36058// String returns the string representation
36059func (s DescribeProvisioningTemplateInput) String() string {
36060	return awsutil.Prettify(s)
36061}
36062
36063// GoString returns the string representation
36064func (s DescribeProvisioningTemplateInput) GoString() string {
36065	return s.String()
36066}
36067
36068// Validate inspects the fields of the type to determine if they are valid.
36069func (s *DescribeProvisioningTemplateInput) Validate() error {
36070	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateInput"}
36071	if s.TemplateName == nil {
36072		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
36073	}
36074	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
36075		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
36076	}
36077
36078	if invalidParams.Len() > 0 {
36079		return invalidParams
36080	}
36081	return nil
36082}
36083
36084// SetTemplateName sets the TemplateName field's value.
36085func (s *DescribeProvisioningTemplateInput) SetTemplateName(v string) *DescribeProvisioningTemplateInput {
36086	s.TemplateName = &v
36087	return s
36088}
36089
36090type DescribeProvisioningTemplateOutput struct {
36091	_ struct{} `type:"structure"`
36092
36093	// The date when the fleet provisioning template was created.
36094	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
36095
36096	// The default fleet template version ID.
36097	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
36098
36099	// The description of the fleet provisioning template.
36100	Description *string `locationName:"description" type:"string"`
36101
36102	// True if the fleet provisioning template is enabled, otherwise false.
36103	Enabled *bool `locationName:"enabled" type:"boolean"`
36104
36105	// The date when the fleet provisioning template was last modified.
36106	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
36107
36108	// Gets information about a pre-provisioned hook.
36109	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
36110
36111	// The ARN of the role associated with the provisioning template. This IoT role
36112	// grants permission to provision a device.
36113	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
36114
36115	// The ARN of the fleet provisioning template.
36116	TemplateArn *string `locationName:"templateArn" type:"string"`
36117
36118	// The JSON formatted contents of the fleet provisioning template.
36119	TemplateBody *string `locationName:"templateBody" type:"string"`
36120
36121	// The name of the fleet provisioning template.
36122	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
36123}
36124
36125// String returns the string representation
36126func (s DescribeProvisioningTemplateOutput) String() string {
36127	return awsutil.Prettify(s)
36128}
36129
36130// GoString returns the string representation
36131func (s DescribeProvisioningTemplateOutput) GoString() string {
36132	return s.String()
36133}
36134
36135// SetCreationDate sets the CreationDate field's value.
36136func (s *DescribeProvisioningTemplateOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateOutput {
36137	s.CreationDate = &v
36138	return s
36139}
36140
36141// SetDefaultVersionId sets the DefaultVersionId field's value.
36142func (s *DescribeProvisioningTemplateOutput) SetDefaultVersionId(v int64) *DescribeProvisioningTemplateOutput {
36143	s.DefaultVersionId = &v
36144	return s
36145}
36146
36147// SetDescription sets the Description field's value.
36148func (s *DescribeProvisioningTemplateOutput) SetDescription(v string) *DescribeProvisioningTemplateOutput {
36149	s.Description = &v
36150	return s
36151}
36152
36153// SetEnabled sets the Enabled field's value.
36154func (s *DescribeProvisioningTemplateOutput) SetEnabled(v bool) *DescribeProvisioningTemplateOutput {
36155	s.Enabled = &v
36156	return s
36157}
36158
36159// SetLastModifiedDate sets the LastModifiedDate field's value.
36160func (s *DescribeProvisioningTemplateOutput) SetLastModifiedDate(v time.Time) *DescribeProvisioningTemplateOutput {
36161	s.LastModifiedDate = &v
36162	return s
36163}
36164
36165// SetPreProvisioningHook sets the PreProvisioningHook field's value.
36166func (s *DescribeProvisioningTemplateOutput) SetPreProvisioningHook(v *ProvisioningHook) *DescribeProvisioningTemplateOutput {
36167	s.PreProvisioningHook = v
36168	return s
36169}
36170
36171// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
36172func (s *DescribeProvisioningTemplateOutput) SetProvisioningRoleArn(v string) *DescribeProvisioningTemplateOutput {
36173	s.ProvisioningRoleArn = &v
36174	return s
36175}
36176
36177// SetTemplateArn sets the TemplateArn field's value.
36178func (s *DescribeProvisioningTemplateOutput) SetTemplateArn(v string) *DescribeProvisioningTemplateOutput {
36179	s.TemplateArn = &v
36180	return s
36181}
36182
36183// SetTemplateBody sets the TemplateBody field's value.
36184func (s *DescribeProvisioningTemplateOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateOutput {
36185	s.TemplateBody = &v
36186	return s
36187}
36188
36189// SetTemplateName sets the TemplateName field's value.
36190func (s *DescribeProvisioningTemplateOutput) SetTemplateName(v string) *DescribeProvisioningTemplateOutput {
36191	s.TemplateName = &v
36192	return s
36193}
36194
36195type DescribeProvisioningTemplateVersionInput struct {
36196	_ struct{} `type:"structure"`
36197
36198	// The template name.
36199	//
36200	// TemplateName is a required field
36201	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
36202
36203	// The fleet provisioning template version ID.
36204	//
36205	// VersionId is a required field
36206	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
36207}
36208
36209// String returns the string representation
36210func (s DescribeProvisioningTemplateVersionInput) String() string {
36211	return awsutil.Prettify(s)
36212}
36213
36214// GoString returns the string representation
36215func (s DescribeProvisioningTemplateVersionInput) GoString() string {
36216	return s.String()
36217}
36218
36219// Validate inspects the fields of the type to determine if they are valid.
36220func (s *DescribeProvisioningTemplateVersionInput) Validate() error {
36221	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateVersionInput"}
36222	if s.TemplateName == nil {
36223		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
36224	}
36225	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
36226		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
36227	}
36228	if s.VersionId == nil {
36229		invalidParams.Add(request.NewErrParamRequired("VersionId"))
36230	}
36231
36232	if invalidParams.Len() > 0 {
36233		return invalidParams
36234	}
36235	return nil
36236}
36237
36238// SetTemplateName sets the TemplateName field's value.
36239func (s *DescribeProvisioningTemplateVersionInput) SetTemplateName(v string) *DescribeProvisioningTemplateVersionInput {
36240	s.TemplateName = &v
36241	return s
36242}
36243
36244// SetVersionId sets the VersionId field's value.
36245func (s *DescribeProvisioningTemplateVersionInput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionInput {
36246	s.VersionId = &v
36247	return s
36248}
36249
36250type DescribeProvisioningTemplateVersionOutput struct {
36251	_ struct{} `type:"structure"`
36252
36253	// The date when the fleet provisioning template version was created.
36254	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
36255
36256	// True if the fleet provisioning template version is the default version.
36257	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
36258
36259	// The JSON formatted contents of the fleet provisioning template version.
36260	TemplateBody *string `locationName:"templateBody" type:"string"`
36261
36262	// The fleet provisioning template version ID.
36263	VersionId *int64 `locationName:"versionId" type:"integer"`
36264}
36265
36266// String returns the string representation
36267func (s DescribeProvisioningTemplateVersionOutput) String() string {
36268	return awsutil.Prettify(s)
36269}
36270
36271// GoString returns the string representation
36272func (s DescribeProvisioningTemplateVersionOutput) GoString() string {
36273	return s.String()
36274}
36275
36276// SetCreationDate sets the CreationDate field's value.
36277func (s *DescribeProvisioningTemplateVersionOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateVersionOutput {
36278	s.CreationDate = &v
36279	return s
36280}
36281
36282// SetIsDefaultVersion sets the IsDefaultVersion field's value.
36283func (s *DescribeProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *DescribeProvisioningTemplateVersionOutput {
36284	s.IsDefaultVersion = &v
36285	return s
36286}
36287
36288// SetTemplateBody sets the TemplateBody field's value.
36289func (s *DescribeProvisioningTemplateVersionOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateVersionOutput {
36290	s.TemplateBody = &v
36291	return s
36292}
36293
36294// SetVersionId sets the VersionId field's value.
36295func (s *DescribeProvisioningTemplateVersionOutput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionOutput {
36296	s.VersionId = &v
36297	return s
36298}
36299
36300type DescribeRoleAliasInput struct {
36301	_ struct{} `type:"structure"`
36302
36303	// The role alias to describe.
36304	//
36305	// RoleAlias is a required field
36306	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
36307}
36308
36309// String returns the string representation
36310func (s DescribeRoleAliasInput) String() string {
36311	return awsutil.Prettify(s)
36312}
36313
36314// GoString returns the string representation
36315func (s DescribeRoleAliasInput) GoString() string {
36316	return s.String()
36317}
36318
36319// Validate inspects the fields of the type to determine if they are valid.
36320func (s *DescribeRoleAliasInput) Validate() error {
36321	invalidParams := request.ErrInvalidParams{Context: "DescribeRoleAliasInput"}
36322	if s.RoleAlias == nil {
36323		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
36324	}
36325	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
36326		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
36327	}
36328
36329	if invalidParams.Len() > 0 {
36330		return invalidParams
36331	}
36332	return nil
36333}
36334
36335// SetRoleAlias sets the RoleAlias field's value.
36336func (s *DescribeRoleAliasInput) SetRoleAlias(v string) *DescribeRoleAliasInput {
36337	s.RoleAlias = &v
36338	return s
36339}
36340
36341type DescribeRoleAliasOutput struct {
36342	_ struct{} `type:"structure"`
36343
36344	// The role alias description.
36345	RoleAliasDescription *RoleAliasDescription `locationName:"roleAliasDescription" type:"structure"`
36346}
36347
36348// String returns the string representation
36349func (s DescribeRoleAliasOutput) String() string {
36350	return awsutil.Prettify(s)
36351}
36352
36353// GoString returns the string representation
36354func (s DescribeRoleAliasOutput) GoString() string {
36355	return s.String()
36356}
36357
36358// SetRoleAliasDescription sets the RoleAliasDescription field's value.
36359func (s *DescribeRoleAliasOutput) SetRoleAliasDescription(v *RoleAliasDescription) *DescribeRoleAliasOutput {
36360	s.RoleAliasDescription = v
36361	return s
36362}
36363
36364type DescribeScheduledAuditInput struct {
36365	_ struct{} `type:"structure"`
36366
36367	// The name of the scheduled audit whose information you want to get.
36368	//
36369	// ScheduledAuditName is a required field
36370	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
36371}
36372
36373// String returns the string representation
36374func (s DescribeScheduledAuditInput) String() string {
36375	return awsutil.Prettify(s)
36376}
36377
36378// GoString returns the string representation
36379func (s DescribeScheduledAuditInput) GoString() string {
36380	return s.String()
36381}
36382
36383// Validate inspects the fields of the type to determine if they are valid.
36384func (s *DescribeScheduledAuditInput) Validate() error {
36385	invalidParams := request.ErrInvalidParams{Context: "DescribeScheduledAuditInput"}
36386	if s.ScheduledAuditName == nil {
36387		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
36388	}
36389	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
36390		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
36391	}
36392
36393	if invalidParams.Len() > 0 {
36394		return invalidParams
36395	}
36396	return nil
36397}
36398
36399// SetScheduledAuditName sets the ScheduledAuditName field's value.
36400func (s *DescribeScheduledAuditInput) SetScheduledAuditName(v string) *DescribeScheduledAuditInput {
36401	s.ScheduledAuditName = &v
36402	return s
36403}
36404
36405type DescribeScheduledAuditOutput struct {
36406	_ struct{} `type:"structure"`
36407
36408	// The day of the month on which the scheduled audit takes place. This is will
36409	// be 1 through 31 or LAST. If days 29-31 are specified, and the month does
36410	// not have that many days, the audit takes place on the LAST day of the month.
36411	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
36412
36413	// The day of the week on which the scheduled audit takes place, either one
36414	// of SUN, MON, TUE, WED, THU, FRI, or SAT.
36415	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
36416
36417	// How often the scheduled audit takes place, either one of DAILY, WEEKLY, BIWEEKLY,
36418	// or MONTHLY. The start time of each audit is determined by the system.
36419	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
36420
36421	// The ARN of the scheduled audit.
36422	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
36423
36424	// The name of the scheduled audit.
36425	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
36426
36427	// Which checks are performed during the scheduled audit. Checks must be enabled
36428	// for your account. (Use DescribeAccountAuditConfiguration to see the list
36429	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
36430	// to select which checks are enabled.)
36431	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
36432}
36433
36434// String returns the string representation
36435func (s DescribeScheduledAuditOutput) String() string {
36436	return awsutil.Prettify(s)
36437}
36438
36439// GoString returns the string representation
36440func (s DescribeScheduledAuditOutput) GoString() string {
36441	return s.String()
36442}
36443
36444// SetDayOfMonth sets the DayOfMonth field's value.
36445func (s *DescribeScheduledAuditOutput) SetDayOfMonth(v string) *DescribeScheduledAuditOutput {
36446	s.DayOfMonth = &v
36447	return s
36448}
36449
36450// SetDayOfWeek sets the DayOfWeek field's value.
36451func (s *DescribeScheduledAuditOutput) SetDayOfWeek(v string) *DescribeScheduledAuditOutput {
36452	s.DayOfWeek = &v
36453	return s
36454}
36455
36456// SetFrequency sets the Frequency field's value.
36457func (s *DescribeScheduledAuditOutput) SetFrequency(v string) *DescribeScheduledAuditOutput {
36458	s.Frequency = &v
36459	return s
36460}
36461
36462// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
36463func (s *DescribeScheduledAuditOutput) SetScheduledAuditArn(v string) *DescribeScheduledAuditOutput {
36464	s.ScheduledAuditArn = &v
36465	return s
36466}
36467
36468// SetScheduledAuditName sets the ScheduledAuditName field's value.
36469func (s *DescribeScheduledAuditOutput) SetScheduledAuditName(v string) *DescribeScheduledAuditOutput {
36470	s.ScheduledAuditName = &v
36471	return s
36472}
36473
36474// SetTargetCheckNames sets the TargetCheckNames field's value.
36475func (s *DescribeScheduledAuditOutput) SetTargetCheckNames(v []*string) *DescribeScheduledAuditOutput {
36476	s.TargetCheckNames = v
36477	return s
36478}
36479
36480type DescribeSecurityProfileInput struct {
36481	_ struct{} `type:"structure"`
36482
36483	// The name of the security profile whose information you want to get.
36484	//
36485	// SecurityProfileName is a required field
36486	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
36487}
36488
36489// String returns the string representation
36490func (s DescribeSecurityProfileInput) String() string {
36491	return awsutil.Prettify(s)
36492}
36493
36494// GoString returns the string representation
36495func (s DescribeSecurityProfileInput) GoString() string {
36496	return s.String()
36497}
36498
36499// Validate inspects the fields of the type to determine if they are valid.
36500func (s *DescribeSecurityProfileInput) Validate() error {
36501	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityProfileInput"}
36502	if s.SecurityProfileName == nil {
36503		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
36504	}
36505	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
36506		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
36507	}
36508
36509	if invalidParams.Len() > 0 {
36510		return invalidParams
36511	}
36512	return nil
36513}
36514
36515// SetSecurityProfileName sets the SecurityProfileName field's value.
36516func (s *DescribeSecurityProfileInput) SetSecurityProfileName(v string) *DescribeSecurityProfileInput {
36517	s.SecurityProfileName = &v
36518	return s
36519}
36520
36521type DescribeSecurityProfileOutput struct {
36522	_ struct{} `type:"structure"`
36523
36524	// Please use DescribeSecurityProfileResponse$additionalMetricsToRetainV2 instead.
36525	//
36526	// A list of metrics whose data is retained (stored). By default, data is retained
36527	// for any metric used in the profile's behaviors, but it is also retained for
36528	// any metric specified here.
36529	//
36530	// Deprecated: Use additionalMetricsToRetainV2.
36531	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
36532
36533	// A list of metrics whose data is retained (stored). By default, data is retained
36534	// for any metric used in the profile's behaviors, but it is also retained for
36535	// any metric specified here.
36536	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
36537
36538	// Where the alerts are sent. (Alerts are always sent to the console.)
36539	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
36540
36541	// Specifies the behaviors that, when violated by a device (thing), cause an
36542	// alert.
36543	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
36544
36545	// The time the security profile was created.
36546	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
36547
36548	// The time the security profile was last modified.
36549	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
36550
36551	// The ARN of the security profile.
36552	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
36553
36554	// A description of the security profile (associated with the security profile
36555	// when it was created or updated).
36556	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
36557
36558	// The name of the security profile.
36559	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
36560
36561	// The version of the security profile. A new version is generated whenever
36562	// the security profile is updated.
36563	Version *int64 `locationName:"version" type:"long"`
36564}
36565
36566// String returns the string representation
36567func (s DescribeSecurityProfileOutput) String() string {
36568	return awsutil.Prettify(s)
36569}
36570
36571// GoString returns the string representation
36572func (s DescribeSecurityProfileOutput) GoString() string {
36573	return s.String()
36574}
36575
36576// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
36577func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *DescribeSecurityProfileOutput {
36578	s.AdditionalMetricsToRetain = v
36579	return s
36580}
36581
36582// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
36583func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *DescribeSecurityProfileOutput {
36584	s.AdditionalMetricsToRetainV2 = v
36585	return s
36586}
36587
36588// SetAlertTargets sets the AlertTargets field's value.
36589func (s *DescribeSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *DescribeSecurityProfileOutput {
36590	s.AlertTargets = v
36591	return s
36592}
36593
36594// SetBehaviors sets the Behaviors field's value.
36595func (s *DescribeSecurityProfileOutput) SetBehaviors(v []*Behavior) *DescribeSecurityProfileOutput {
36596	s.Behaviors = v
36597	return s
36598}
36599
36600// SetCreationDate sets the CreationDate field's value.
36601func (s *DescribeSecurityProfileOutput) SetCreationDate(v time.Time) *DescribeSecurityProfileOutput {
36602	s.CreationDate = &v
36603	return s
36604}
36605
36606// SetLastModifiedDate sets the LastModifiedDate field's value.
36607func (s *DescribeSecurityProfileOutput) SetLastModifiedDate(v time.Time) *DescribeSecurityProfileOutput {
36608	s.LastModifiedDate = &v
36609	return s
36610}
36611
36612// SetSecurityProfileArn sets the SecurityProfileArn field's value.
36613func (s *DescribeSecurityProfileOutput) SetSecurityProfileArn(v string) *DescribeSecurityProfileOutput {
36614	s.SecurityProfileArn = &v
36615	return s
36616}
36617
36618// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
36619func (s *DescribeSecurityProfileOutput) SetSecurityProfileDescription(v string) *DescribeSecurityProfileOutput {
36620	s.SecurityProfileDescription = &v
36621	return s
36622}
36623
36624// SetSecurityProfileName sets the SecurityProfileName field's value.
36625func (s *DescribeSecurityProfileOutput) SetSecurityProfileName(v string) *DescribeSecurityProfileOutput {
36626	s.SecurityProfileName = &v
36627	return s
36628}
36629
36630// SetVersion sets the Version field's value.
36631func (s *DescribeSecurityProfileOutput) SetVersion(v int64) *DescribeSecurityProfileOutput {
36632	s.Version = &v
36633	return s
36634}
36635
36636type DescribeStreamInput struct {
36637	_ struct{} `type:"structure"`
36638
36639	// The stream ID.
36640	//
36641	// StreamId is a required field
36642	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
36643}
36644
36645// String returns the string representation
36646func (s DescribeStreamInput) String() string {
36647	return awsutil.Prettify(s)
36648}
36649
36650// GoString returns the string representation
36651func (s DescribeStreamInput) GoString() string {
36652	return s.String()
36653}
36654
36655// Validate inspects the fields of the type to determine if they are valid.
36656func (s *DescribeStreamInput) Validate() error {
36657	invalidParams := request.ErrInvalidParams{Context: "DescribeStreamInput"}
36658	if s.StreamId == nil {
36659		invalidParams.Add(request.NewErrParamRequired("StreamId"))
36660	}
36661	if s.StreamId != nil && len(*s.StreamId) < 1 {
36662		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
36663	}
36664
36665	if invalidParams.Len() > 0 {
36666		return invalidParams
36667	}
36668	return nil
36669}
36670
36671// SetStreamId sets the StreamId field's value.
36672func (s *DescribeStreamInput) SetStreamId(v string) *DescribeStreamInput {
36673	s.StreamId = &v
36674	return s
36675}
36676
36677type DescribeStreamOutput struct {
36678	_ struct{} `type:"structure"`
36679
36680	// Information about the stream.
36681	StreamInfo *StreamInfo `locationName:"streamInfo" type:"structure"`
36682}
36683
36684// String returns the string representation
36685func (s DescribeStreamOutput) String() string {
36686	return awsutil.Prettify(s)
36687}
36688
36689// GoString returns the string representation
36690func (s DescribeStreamOutput) GoString() string {
36691	return s.String()
36692}
36693
36694// SetStreamInfo sets the StreamInfo field's value.
36695func (s *DescribeStreamOutput) SetStreamInfo(v *StreamInfo) *DescribeStreamOutput {
36696	s.StreamInfo = v
36697	return s
36698}
36699
36700type DescribeThingGroupInput struct {
36701	_ struct{} `type:"structure"`
36702
36703	// The name of the thing group.
36704	//
36705	// ThingGroupName is a required field
36706	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
36707}
36708
36709// String returns the string representation
36710func (s DescribeThingGroupInput) String() string {
36711	return awsutil.Prettify(s)
36712}
36713
36714// GoString returns the string representation
36715func (s DescribeThingGroupInput) GoString() string {
36716	return s.String()
36717}
36718
36719// Validate inspects the fields of the type to determine if they are valid.
36720func (s *DescribeThingGroupInput) Validate() error {
36721	invalidParams := request.ErrInvalidParams{Context: "DescribeThingGroupInput"}
36722	if s.ThingGroupName == nil {
36723		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
36724	}
36725	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
36726		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
36727	}
36728
36729	if invalidParams.Len() > 0 {
36730		return invalidParams
36731	}
36732	return nil
36733}
36734
36735// SetThingGroupName sets the ThingGroupName field's value.
36736func (s *DescribeThingGroupInput) SetThingGroupName(v string) *DescribeThingGroupInput {
36737	s.ThingGroupName = &v
36738	return s
36739}
36740
36741type DescribeThingGroupOutput struct {
36742	_ struct{} `type:"structure"`
36743
36744	// The dynamic thing group index name.
36745	IndexName *string `locationName:"indexName" min:"1" type:"string"`
36746
36747	// The dynamic thing group search query string.
36748	QueryString *string `locationName:"queryString" min:"1" type:"string"`
36749
36750	// The dynamic thing group query version.
36751	QueryVersion *string `locationName:"queryVersion" type:"string"`
36752
36753	// The dynamic thing group status.
36754	Status *string `locationName:"status" type:"string" enum:"DynamicGroupStatus"`
36755
36756	// The thing group ARN.
36757	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
36758
36759	// The thing group ID.
36760	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
36761
36762	// Thing group metadata.
36763	ThingGroupMetadata *ThingGroupMetadata `locationName:"thingGroupMetadata" type:"structure"`
36764
36765	// The name of the thing group.
36766	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
36767
36768	// The thing group properties.
36769	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
36770
36771	// The version of the thing group.
36772	Version *int64 `locationName:"version" type:"long"`
36773}
36774
36775// String returns the string representation
36776func (s DescribeThingGroupOutput) String() string {
36777	return awsutil.Prettify(s)
36778}
36779
36780// GoString returns the string representation
36781func (s DescribeThingGroupOutput) GoString() string {
36782	return s.String()
36783}
36784
36785// SetIndexName sets the IndexName field's value.
36786func (s *DescribeThingGroupOutput) SetIndexName(v string) *DescribeThingGroupOutput {
36787	s.IndexName = &v
36788	return s
36789}
36790
36791// SetQueryString sets the QueryString field's value.
36792func (s *DescribeThingGroupOutput) SetQueryString(v string) *DescribeThingGroupOutput {
36793	s.QueryString = &v
36794	return s
36795}
36796
36797// SetQueryVersion sets the QueryVersion field's value.
36798func (s *DescribeThingGroupOutput) SetQueryVersion(v string) *DescribeThingGroupOutput {
36799	s.QueryVersion = &v
36800	return s
36801}
36802
36803// SetStatus sets the Status field's value.
36804func (s *DescribeThingGroupOutput) SetStatus(v string) *DescribeThingGroupOutput {
36805	s.Status = &v
36806	return s
36807}
36808
36809// SetThingGroupArn sets the ThingGroupArn field's value.
36810func (s *DescribeThingGroupOutput) SetThingGroupArn(v string) *DescribeThingGroupOutput {
36811	s.ThingGroupArn = &v
36812	return s
36813}
36814
36815// SetThingGroupId sets the ThingGroupId field's value.
36816func (s *DescribeThingGroupOutput) SetThingGroupId(v string) *DescribeThingGroupOutput {
36817	s.ThingGroupId = &v
36818	return s
36819}
36820
36821// SetThingGroupMetadata sets the ThingGroupMetadata field's value.
36822func (s *DescribeThingGroupOutput) SetThingGroupMetadata(v *ThingGroupMetadata) *DescribeThingGroupOutput {
36823	s.ThingGroupMetadata = v
36824	return s
36825}
36826
36827// SetThingGroupName sets the ThingGroupName field's value.
36828func (s *DescribeThingGroupOutput) SetThingGroupName(v string) *DescribeThingGroupOutput {
36829	s.ThingGroupName = &v
36830	return s
36831}
36832
36833// SetThingGroupProperties sets the ThingGroupProperties field's value.
36834func (s *DescribeThingGroupOutput) SetThingGroupProperties(v *ThingGroupProperties) *DescribeThingGroupOutput {
36835	s.ThingGroupProperties = v
36836	return s
36837}
36838
36839// SetVersion sets the Version field's value.
36840func (s *DescribeThingGroupOutput) SetVersion(v int64) *DescribeThingGroupOutput {
36841	s.Version = &v
36842	return s
36843}
36844
36845// The input for the DescribeThing operation.
36846type DescribeThingInput struct {
36847	_ struct{} `type:"structure"`
36848
36849	// The name of the thing.
36850	//
36851	// ThingName is a required field
36852	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
36853}
36854
36855// String returns the string representation
36856func (s DescribeThingInput) String() string {
36857	return awsutil.Prettify(s)
36858}
36859
36860// GoString returns the string representation
36861func (s DescribeThingInput) GoString() string {
36862	return s.String()
36863}
36864
36865// Validate inspects the fields of the type to determine if they are valid.
36866func (s *DescribeThingInput) Validate() error {
36867	invalidParams := request.ErrInvalidParams{Context: "DescribeThingInput"}
36868	if s.ThingName == nil {
36869		invalidParams.Add(request.NewErrParamRequired("ThingName"))
36870	}
36871	if s.ThingName != nil && len(*s.ThingName) < 1 {
36872		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
36873	}
36874
36875	if invalidParams.Len() > 0 {
36876		return invalidParams
36877	}
36878	return nil
36879}
36880
36881// SetThingName sets the ThingName field's value.
36882func (s *DescribeThingInput) SetThingName(v string) *DescribeThingInput {
36883	s.ThingName = &v
36884	return s
36885}
36886
36887// The output from the DescribeThing operation.
36888type DescribeThingOutput struct {
36889	_ struct{} `type:"structure"`
36890
36891	// The thing attributes.
36892	Attributes map[string]*string `locationName:"attributes" type:"map"`
36893
36894	// The name of the billing group the thing belongs to.
36895	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
36896
36897	// The default MQTT client ID. For a typical device, the thing name is also
36898	// used as the default MQTT client ID. Although we don’t require a mapping
36899	// between a thing's registry name and its use of MQTT client IDs, certificates,
36900	// or shadow state, we recommend that you choose a thing name and use it as
36901	// the MQTT client ID for the registry and the Device Shadow service.
36902	//
36903	// This lets you better organize your AWS IoT fleet without removing the flexibility
36904	// of the underlying device certificate model or shadows.
36905	DefaultClientId *string `locationName:"defaultClientId" type:"string"`
36906
36907	// The ARN of the thing to describe.
36908	ThingArn *string `locationName:"thingArn" type:"string"`
36909
36910	// The ID of the thing to describe.
36911	ThingId *string `locationName:"thingId" type:"string"`
36912
36913	// The name of the thing.
36914	ThingName *string `locationName:"thingName" min:"1" type:"string"`
36915
36916	// The thing type name.
36917	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
36918
36919	// The current version of the thing record in the registry.
36920	//
36921	// To avoid unintentional changes to the information in the registry, you can
36922	// pass the version information in the expectedVersion parameter of the UpdateThing
36923	// and DeleteThing calls.
36924	Version *int64 `locationName:"version" type:"long"`
36925}
36926
36927// String returns the string representation
36928func (s DescribeThingOutput) String() string {
36929	return awsutil.Prettify(s)
36930}
36931
36932// GoString returns the string representation
36933func (s DescribeThingOutput) GoString() string {
36934	return s.String()
36935}
36936
36937// SetAttributes sets the Attributes field's value.
36938func (s *DescribeThingOutput) SetAttributes(v map[string]*string) *DescribeThingOutput {
36939	s.Attributes = v
36940	return s
36941}
36942
36943// SetBillingGroupName sets the BillingGroupName field's value.
36944func (s *DescribeThingOutput) SetBillingGroupName(v string) *DescribeThingOutput {
36945	s.BillingGroupName = &v
36946	return s
36947}
36948
36949// SetDefaultClientId sets the DefaultClientId field's value.
36950func (s *DescribeThingOutput) SetDefaultClientId(v string) *DescribeThingOutput {
36951	s.DefaultClientId = &v
36952	return s
36953}
36954
36955// SetThingArn sets the ThingArn field's value.
36956func (s *DescribeThingOutput) SetThingArn(v string) *DescribeThingOutput {
36957	s.ThingArn = &v
36958	return s
36959}
36960
36961// SetThingId sets the ThingId field's value.
36962func (s *DescribeThingOutput) SetThingId(v string) *DescribeThingOutput {
36963	s.ThingId = &v
36964	return s
36965}
36966
36967// SetThingName sets the ThingName field's value.
36968func (s *DescribeThingOutput) SetThingName(v string) *DescribeThingOutput {
36969	s.ThingName = &v
36970	return s
36971}
36972
36973// SetThingTypeName sets the ThingTypeName field's value.
36974func (s *DescribeThingOutput) SetThingTypeName(v string) *DescribeThingOutput {
36975	s.ThingTypeName = &v
36976	return s
36977}
36978
36979// SetVersion sets the Version field's value.
36980func (s *DescribeThingOutput) SetVersion(v int64) *DescribeThingOutput {
36981	s.Version = &v
36982	return s
36983}
36984
36985type DescribeThingRegistrationTaskInput struct {
36986	_ struct{} `type:"structure"`
36987
36988	// The task ID.
36989	//
36990	// TaskId is a required field
36991	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
36992}
36993
36994// String returns the string representation
36995func (s DescribeThingRegistrationTaskInput) String() string {
36996	return awsutil.Prettify(s)
36997}
36998
36999// GoString returns the string representation
37000func (s DescribeThingRegistrationTaskInput) GoString() string {
37001	return s.String()
37002}
37003
37004// Validate inspects the fields of the type to determine if they are valid.
37005func (s *DescribeThingRegistrationTaskInput) Validate() error {
37006	invalidParams := request.ErrInvalidParams{Context: "DescribeThingRegistrationTaskInput"}
37007	if s.TaskId == nil {
37008		invalidParams.Add(request.NewErrParamRequired("TaskId"))
37009	}
37010	if s.TaskId != nil && len(*s.TaskId) < 1 {
37011		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
37012	}
37013
37014	if invalidParams.Len() > 0 {
37015		return invalidParams
37016	}
37017	return nil
37018}
37019
37020// SetTaskId sets the TaskId field's value.
37021func (s *DescribeThingRegistrationTaskInput) SetTaskId(v string) *DescribeThingRegistrationTaskInput {
37022	s.TaskId = &v
37023	return s
37024}
37025
37026type DescribeThingRegistrationTaskOutput struct {
37027	_ struct{} `type:"structure"`
37028
37029	// The task creation date.
37030	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
37031
37032	// The number of things that failed to be provisioned.
37033	FailureCount *int64 `locationName:"failureCount" type:"integer"`
37034
37035	// The S3 bucket that contains the input file.
37036	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string"`
37037
37038	// The input file key.
37039	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string"`
37040
37041	// The date when the task was last modified.
37042	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
37043
37044	// The message.
37045	Message *string `locationName:"message" type:"string"`
37046
37047	// The progress of the bulk provisioning task expressed as a percentage.
37048	PercentageProgress *int64 `locationName:"percentageProgress" type:"integer"`
37049
37050	// The role ARN that grants access to the input file bucket.
37051	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
37052
37053	// The status of the bulk thing provisioning task.
37054	Status *string `locationName:"status" type:"string" enum:"Status"`
37055
37056	// The number of things successfully provisioned.
37057	SuccessCount *int64 `locationName:"successCount" type:"integer"`
37058
37059	// The task ID.
37060	TaskId *string `locationName:"taskId" type:"string"`
37061
37062	// The task's template.
37063	TemplateBody *string `locationName:"templateBody" type:"string"`
37064}
37065
37066// String returns the string representation
37067func (s DescribeThingRegistrationTaskOutput) String() string {
37068	return awsutil.Prettify(s)
37069}
37070
37071// GoString returns the string representation
37072func (s DescribeThingRegistrationTaskOutput) GoString() string {
37073	return s.String()
37074}
37075
37076// SetCreationDate sets the CreationDate field's value.
37077func (s *DescribeThingRegistrationTaskOutput) SetCreationDate(v time.Time) *DescribeThingRegistrationTaskOutput {
37078	s.CreationDate = &v
37079	return s
37080}
37081
37082// SetFailureCount sets the FailureCount field's value.
37083func (s *DescribeThingRegistrationTaskOutput) SetFailureCount(v int64) *DescribeThingRegistrationTaskOutput {
37084	s.FailureCount = &v
37085	return s
37086}
37087
37088// SetInputFileBucket sets the InputFileBucket field's value.
37089func (s *DescribeThingRegistrationTaskOutput) SetInputFileBucket(v string) *DescribeThingRegistrationTaskOutput {
37090	s.InputFileBucket = &v
37091	return s
37092}
37093
37094// SetInputFileKey sets the InputFileKey field's value.
37095func (s *DescribeThingRegistrationTaskOutput) SetInputFileKey(v string) *DescribeThingRegistrationTaskOutput {
37096	s.InputFileKey = &v
37097	return s
37098}
37099
37100// SetLastModifiedDate sets the LastModifiedDate field's value.
37101func (s *DescribeThingRegistrationTaskOutput) SetLastModifiedDate(v time.Time) *DescribeThingRegistrationTaskOutput {
37102	s.LastModifiedDate = &v
37103	return s
37104}
37105
37106// SetMessage sets the Message field's value.
37107func (s *DescribeThingRegistrationTaskOutput) SetMessage(v string) *DescribeThingRegistrationTaskOutput {
37108	s.Message = &v
37109	return s
37110}
37111
37112// SetPercentageProgress sets the PercentageProgress field's value.
37113func (s *DescribeThingRegistrationTaskOutput) SetPercentageProgress(v int64) *DescribeThingRegistrationTaskOutput {
37114	s.PercentageProgress = &v
37115	return s
37116}
37117
37118// SetRoleArn sets the RoleArn field's value.
37119func (s *DescribeThingRegistrationTaskOutput) SetRoleArn(v string) *DescribeThingRegistrationTaskOutput {
37120	s.RoleArn = &v
37121	return s
37122}
37123
37124// SetStatus sets the Status field's value.
37125func (s *DescribeThingRegistrationTaskOutput) SetStatus(v string) *DescribeThingRegistrationTaskOutput {
37126	s.Status = &v
37127	return s
37128}
37129
37130// SetSuccessCount sets the SuccessCount field's value.
37131func (s *DescribeThingRegistrationTaskOutput) SetSuccessCount(v int64) *DescribeThingRegistrationTaskOutput {
37132	s.SuccessCount = &v
37133	return s
37134}
37135
37136// SetTaskId sets the TaskId field's value.
37137func (s *DescribeThingRegistrationTaskOutput) SetTaskId(v string) *DescribeThingRegistrationTaskOutput {
37138	s.TaskId = &v
37139	return s
37140}
37141
37142// SetTemplateBody sets the TemplateBody field's value.
37143func (s *DescribeThingRegistrationTaskOutput) SetTemplateBody(v string) *DescribeThingRegistrationTaskOutput {
37144	s.TemplateBody = &v
37145	return s
37146}
37147
37148// The input for the DescribeThingType operation.
37149type DescribeThingTypeInput struct {
37150	_ struct{} `type:"structure"`
37151
37152	// The name of the thing type.
37153	//
37154	// ThingTypeName is a required field
37155	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
37156}
37157
37158// String returns the string representation
37159func (s DescribeThingTypeInput) String() string {
37160	return awsutil.Prettify(s)
37161}
37162
37163// GoString returns the string representation
37164func (s DescribeThingTypeInput) GoString() string {
37165	return s.String()
37166}
37167
37168// Validate inspects the fields of the type to determine if they are valid.
37169func (s *DescribeThingTypeInput) Validate() error {
37170	invalidParams := request.ErrInvalidParams{Context: "DescribeThingTypeInput"}
37171	if s.ThingTypeName == nil {
37172		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
37173	}
37174	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
37175		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
37176	}
37177
37178	if invalidParams.Len() > 0 {
37179		return invalidParams
37180	}
37181	return nil
37182}
37183
37184// SetThingTypeName sets the ThingTypeName field's value.
37185func (s *DescribeThingTypeInput) SetThingTypeName(v string) *DescribeThingTypeInput {
37186	s.ThingTypeName = &v
37187	return s
37188}
37189
37190// The output for the DescribeThingType operation.
37191type DescribeThingTypeOutput struct {
37192	_ struct{} `type:"structure"`
37193
37194	// The thing type ARN.
37195	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
37196
37197	// The thing type ID.
37198	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
37199
37200	// The ThingTypeMetadata contains additional information about the thing type
37201	// including: creation date and time, a value indicating whether the thing type
37202	// is deprecated, and a date and time when it was deprecated.
37203	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
37204
37205	// The name of the thing type.
37206	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
37207
37208	// The ThingTypeProperties contains information about the thing type including
37209	// description, and a list of searchable thing attribute names.
37210	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
37211}
37212
37213// String returns the string representation
37214func (s DescribeThingTypeOutput) String() string {
37215	return awsutil.Prettify(s)
37216}
37217
37218// GoString returns the string representation
37219func (s DescribeThingTypeOutput) GoString() string {
37220	return s.String()
37221}
37222
37223// SetThingTypeArn sets the ThingTypeArn field's value.
37224func (s *DescribeThingTypeOutput) SetThingTypeArn(v string) *DescribeThingTypeOutput {
37225	s.ThingTypeArn = &v
37226	return s
37227}
37228
37229// SetThingTypeId sets the ThingTypeId field's value.
37230func (s *DescribeThingTypeOutput) SetThingTypeId(v string) *DescribeThingTypeOutput {
37231	s.ThingTypeId = &v
37232	return s
37233}
37234
37235// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
37236func (s *DescribeThingTypeOutput) SetThingTypeMetadata(v *ThingTypeMetadata) *DescribeThingTypeOutput {
37237	s.ThingTypeMetadata = v
37238	return s
37239}
37240
37241// SetThingTypeName sets the ThingTypeName field's value.
37242func (s *DescribeThingTypeOutput) SetThingTypeName(v string) *DescribeThingTypeOutput {
37243	s.ThingTypeName = &v
37244	return s
37245}
37246
37247// SetThingTypeProperties sets the ThingTypeProperties field's value.
37248func (s *DescribeThingTypeOutput) SetThingTypeProperties(v *ThingTypeProperties) *DescribeThingTypeOutput {
37249	s.ThingTypeProperties = v
37250	return s
37251}
37252
37253// Describes the location of the updated firmware.
37254type Destination struct {
37255	_ struct{} `type:"structure"`
37256
37257	// Describes the location in S3 of the updated firmware.
37258	S3Destination *S3Destination `locationName:"s3Destination" type:"structure"`
37259}
37260
37261// String returns the string representation
37262func (s Destination) String() string {
37263	return awsutil.Prettify(s)
37264}
37265
37266// GoString returns the string representation
37267func (s Destination) GoString() string {
37268	return s.String()
37269}
37270
37271// Validate inspects the fields of the type to determine if they are valid.
37272func (s *Destination) Validate() error {
37273	invalidParams := request.ErrInvalidParams{Context: "Destination"}
37274	if s.S3Destination != nil {
37275		if err := s.S3Destination.Validate(); err != nil {
37276			invalidParams.AddNested("S3Destination", err.(request.ErrInvalidParams))
37277		}
37278	}
37279
37280	if invalidParams.Len() > 0 {
37281		return invalidParams
37282	}
37283	return nil
37284}
37285
37286// SetS3Destination sets the S3Destination field's value.
37287func (s *Destination) SetS3Destination(v *S3Destination) *Destination {
37288	s.S3Destination = v
37289	return s
37290}
37291
37292type DetachPolicyInput struct {
37293	_ struct{} `type:"structure"`
37294
37295	// The policy to detach.
37296	//
37297	// PolicyName is a required field
37298	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
37299
37300	// The target from which the policy will be detached.
37301	//
37302	// Target is a required field
37303	Target *string `locationName:"target" type:"string" required:"true"`
37304}
37305
37306// String returns the string representation
37307func (s DetachPolicyInput) String() string {
37308	return awsutil.Prettify(s)
37309}
37310
37311// GoString returns the string representation
37312func (s DetachPolicyInput) GoString() string {
37313	return s.String()
37314}
37315
37316// Validate inspects the fields of the type to determine if they are valid.
37317func (s *DetachPolicyInput) Validate() error {
37318	invalidParams := request.ErrInvalidParams{Context: "DetachPolicyInput"}
37319	if s.PolicyName == nil {
37320		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
37321	}
37322	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
37323		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
37324	}
37325	if s.Target == nil {
37326		invalidParams.Add(request.NewErrParamRequired("Target"))
37327	}
37328
37329	if invalidParams.Len() > 0 {
37330		return invalidParams
37331	}
37332	return nil
37333}
37334
37335// SetPolicyName sets the PolicyName field's value.
37336func (s *DetachPolicyInput) SetPolicyName(v string) *DetachPolicyInput {
37337	s.PolicyName = &v
37338	return s
37339}
37340
37341// SetTarget sets the Target field's value.
37342func (s *DetachPolicyInput) SetTarget(v string) *DetachPolicyInput {
37343	s.Target = &v
37344	return s
37345}
37346
37347type DetachPolicyOutput struct {
37348	_ struct{} `type:"structure"`
37349}
37350
37351// String returns the string representation
37352func (s DetachPolicyOutput) String() string {
37353	return awsutil.Prettify(s)
37354}
37355
37356// GoString returns the string representation
37357func (s DetachPolicyOutput) GoString() string {
37358	return s.String()
37359}
37360
37361// The input for the DetachPrincipalPolicy operation.
37362type DetachPrincipalPolicyInput struct {
37363	_ struct{} `type:"structure"`
37364
37365	// The name of the policy to detach.
37366	//
37367	// PolicyName is a required field
37368	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
37369
37370	// The principal.
37371	//
37372	// Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
37373	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
37374	// (region:id).
37375	//
37376	// Principal is a required field
37377	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
37378}
37379
37380// String returns the string representation
37381func (s DetachPrincipalPolicyInput) String() string {
37382	return awsutil.Prettify(s)
37383}
37384
37385// GoString returns the string representation
37386func (s DetachPrincipalPolicyInput) GoString() string {
37387	return s.String()
37388}
37389
37390// Validate inspects the fields of the type to determine if they are valid.
37391func (s *DetachPrincipalPolicyInput) Validate() error {
37392	invalidParams := request.ErrInvalidParams{Context: "DetachPrincipalPolicyInput"}
37393	if s.PolicyName == nil {
37394		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
37395	}
37396	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
37397		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
37398	}
37399	if s.Principal == nil {
37400		invalidParams.Add(request.NewErrParamRequired("Principal"))
37401	}
37402
37403	if invalidParams.Len() > 0 {
37404		return invalidParams
37405	}
37406	return nil
37407}
37408
37409// SetPolicyName sets the PolicyName field's value.
37410func (s *DetachPrincipalPolicyInput) SetPolicyName(v string) *DetachPrincipalPolicyInput {
37411	s.PolicyName = &v
37412	return s
37413}
37414
37415// SetPrincipal sets the Principal field's value.
37416func (s *DetachPrincipalPolicyInput) SetPrincipal(v string) *DetachPrincipalPolicyInput {
37417	s.Principal = &v
37418	return s
37419}
37420
37421type DetachPrincipalPolicyOutput struct {
37422	_ struct{} `type:"structure"`
37423}
37424
37425// String returns the string representation
37426func (s DetachPrincipalPolicyOutput) String() string {
37427	return awsutil.Prettify(s)
37428}
37429
37430// GoString returns the string representation
37431func (s DetachPrincipalPolicyOutput) GoString() string {
37432	return s.String()
37433}
37434
37435type DetachSecurityProfileInput struct {
37436	_ struct{} `type:"structure"`
37437
37438	// The security profile that is detached.
37439	//
37440	// SecurityProfileName is a required field
37441	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
37442
37443	// The ARN of the thing group from which the security profile is detached.
37444	//
37445	// SecurityProfileTargetArn is a required field
37446	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
37447}
37448
37449// String returns the string representation
37450func (s DetachSecurityProfileInput) String() string {
37451	return awsutil.Prettify(s)
37452}
37453
37454// GoString returns the string representation
37455func (s DetachSecurityProfileInput) GoString() string {
37456	return s.String()
37457}
37458
37459// Validate inspects the fields of the type to determine if they are valid.
37460func (s *DetachSecurityProfileInput) Validate() error {
37461	invalidParams := request.ErrInvalidParams{Context: "DetachSecurityProfileInput"}
37462	if s.SecurityProfileName == nil {
37463		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
37464	}
37465	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
37466		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
37467	}
37468	if s.SecurityProfileTargetArn == nil {
37469		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
37470	}
37471
37472	if invalidParams.Len() > 0 {
37473		return invalidParams
37474	}
37475	return nil
37476}
37477
37478// SetSecurityProfileName sets the SecurityProfileName field's value.
37479func (s *DetachSecurityProfileInput) SetSecurityProfileName(v string) *DetachSecurityProfileInput {
37480	s.SecurityProfileName = &v
37481	return s
37482}
37483
37484// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
37485func (s *DetachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *DetachSecurityProfileInput {
37486	s.SecurityProfileTargetArn = &v
37487	return s
37488}
37489
37490type DetachSecurityProfileOutput struct {
37491	_ struct{} `type:"structure"`
37492}
37493
37494// String returns the string representation
37495func (s DetachSecurityProfileOutput) String() string {
37496	return awsutil.Prettify(s)
37497}
37498
37499// GoString returns the string representation
37500func (s DetachSecurityProfileOutput) GoString() string {
37501	return s.String()
37502}
37503
37504// The input for the DetachThingPrincipal operation.
37505type DetachThingPrincipalInput struct {
37506	_ struct{} `type:"structure"`
37507
37508	// If the principal is a certificate, this value must be ARN of the certificate.
37509	// If the principal is an Amazon Cognito identity, this value must be the ID
37510	// of the Amazon Cognito identity.
37511	//
37512	// Principal is a required field
37513	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
37514
37515	// The name of the thing.
37516	//
37517	// ThingName is a required field
37518	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
37519}
37520
37521// String returns the string representation
37522func (s DetachThingPrincipalInput) String() string {
37523	return awsutil.Prettify(s)
37524}
37525
37526// GoString returns the string representation
37527func (s DetachThingPrincipalInput) GoString() string {
37528	return s.String()
37529}
37530
37531// Validate inspects the fields of the type to determine if they are valid.
37532func (s *DetachThingPrincipalInput) Validate() error {
37533	invalidParams := request.ErrInvalidParams{Context: "DetachThingPrincipalInput"}
37534	if s.Principal == nil {
37535		invalidParams.Add(request.NewErrParamRequired("Principal"))
37536	}
37537	if s.ThingName == nil {
37538		invalidParams.Add(request.NewErrParamRequired("ThingName"))
37539	}
37540	if s.ThingName != nil && len(*s.ThingName) < 1 {
37541		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
37542	}
37543
37544	if invalidParams.Len() > 0 {
37545		return invalidParams
37546	}
37547	return nil
37548}
37549
37550// SetPrincipal sets the Principal field's value.
37551func (s *DetachThingPrincipalInput) SetPrincipal(v string) *DetachThingPrincipalInput {
37552	s.Principal = &v
37553	return s
37554}
37555
37556// SetThingName sets the ThingName field's value.
37557func (s *DetachThingPrincipalInput) SetThingName(v string) *DetachThingPrincipalInput {
37558	s.ThingName = &v
37559	return s
37560}
37561
37562// The output from the DetachThingPrincipal operation.
37563type DetachThingPrincipalOutput struct {
37564	_ struct{} `type:"structure"`
37565}
37566
37567// String returns the string representation
37568func (s DetachThingPrincipalOutput) String() string {
37569	return awsutil.Prettify(s)
37570}
37571
37572// GoString returns the string representation
37573func (s DetachThingPrincipalOutput) GoString() string {
37574	return s.String()
37575}
37576
37577// Describes which mitigation actions should be executed.
37578type DetectMitigationActionExecution struct {
37579	_ struct{} `type:"structure"`
37580
37581	// The friendly name that uniquely identifies the mitigation action.
37582	ActionName *string `locationName:"actionName" type:"string"`
37583
37584	// The error code of a mitigation action.
37585	ErrorCode *string `locationName:"errorCode" type:"string"`
37586
37587	// The date a mitigation action ended.
37588	ExecutionEndDate *time.Time `locationName:"executionEndDate" type:"timestamp"`
37589
37590	// The date a mitigation action was started.
37591	ExecutionStartDate *time.Time `locationName:"executionStartDate" type:"timestamp"`
37592
37593	// The message of a mitigation action.
37594	Message *string `locationName:"message" type:"string"`
37595
37596	// The status of a mitigation action.
37597	Status *string `locationName:"status" type:"string" enum:"DetectMitigationActionExecutionStatus"`
37598
37599	// The unique identifier of the task.
37600	TaskId *string `locationName:"taskId" min:"1" type:"string"`
37601
37602	// The name of the thing.
37603	ThingName *string `locationName:"thingName" min:"1" type:"string"`
37604
37605	// The unique identifier of the violation.
37606	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
37607}
37608
37609// String returns the string representation
37610func (s DetectMitigationActionExecution) String() string {
37611	return awsutil.Prettify(s)
37612}
37613
37614// GoString returns the string representation
37615func (s DetectMitigationActionExecution) GoString() string {
37616	return s.String()
37617}
37618
37619// SetActionName sets the ActionName field's value.
37620func (s *DetectMitigationActionExecution) SetActionName(v string) *DetectMitigationActionExecution {
37621	s.ActionName = &v
37622	return s
37623}
37624
37625// SetErrorCode sets the ErrorCode field's value.
37626func (s *DetectMitigationActionExecution) SetErrorCode(v string) *DetectMitigationActionExecution {
37627	s.ErrorCode = &v
37628	return s
37629}
37630
37631// SetExecutionEndDate sets the ExecutionEndDate field's value.
37632func (s *DetectMitigationActionExecution) SetExecutionEndDate(v time.Time) *DetectMitigationActionExecution {
37633	s.ExecutionEndDate = &v
37634	return s
37635}
37636
37637// SetExecutionStartDate sets the ExecutionStartDate field's value.
37638func (s *DetectMitigationActionExecution) SetExecutionStartDate(v time.Time) *DetectMitigationActionExecution {
37639	s.ExecutionStartDate = &v
37640	return s
37641}
37642
37643// SetMessage sets the Message field's value.
37644func (s *DetectMitigationActionExecution) SetMessage(v string) *DetectMitigationActionExecution {
37645	s.Message = &v
37646	return s
37647}
37648
37649// SetStatus sets the Status field's value.
37650func (s *DetectMitigationActionExecution) SetStatus(v string) *DetectMitigationActionExecution {
37651	s.Status = &v
37652	return s
37653}
37654
37655// SetTaskId sets the TaskId field's value.
37656func (s *DetectMitigationActionExecution) SetTaskId(v string) *DetectMitigationActionExecution {
37657	s.TaskId = &v
37658	return s
37659}
37660
37661// SetThingName sets the ThingName field's value.
37662func (s *DetectMitigationActionExecution) SetThingName(v string) *DetectMitigationActionExecution {
37663	s.ThingName = &v
37664	return s
37665}
37666
37667// SetViolationId sets the ViolationId field's value.
37668func (s *DetectMitigationActionExecution) SetViolationId(v string) *DetectMitigationActionExecution {
37669	s.ViolationId = &v
37670	return s
37671}
37672
37673// The statistics of a mitigation action task.
37674type DetectMitigationActionsTaskStatistics struct {
37675	_ struct{} `type:"structure"`
37676
37677	// The actions that were performed.
37678	ActionsExecuted *int64 `locationName:"actionsExecuted" type:"long"`
37679
37680	// The actions that failed.
37681	ActionsFailed *int64 `locationName:"actionsFailed" type:"long"`
37682
37683	// The actions that were skipped.
37684	ActionsSkipped *int64 `locationName:"actionsSkipped" type:"long"`
37685}
37686
37687// String returns the string representation
37688func (s DetectMitigationActionsTaskStatistics) String() string {
37689	return awsutil.Prettify(s)
37690}
37691
37692// GoString returns the string representation
37693func (s DetectMitigationActionsTaskStatistics) GoString() string {
37694	return s.String()
37695}
37696
37697// SetActionsExecuted sets the ActionsExecuted field's value.
37698func (s *DetectMitigationActionsTaskStatistics) SetActionsExecuted(v int64) *DetectMitigationActionsTaskStatistics {
37699	s.ActionsExecuted = &v
37700	return s
37701}
37702
37703// SetActionsFailed sets the ActionsFailed field's value.
37704func (s *DetectMitigationActionsTaskStatistics) SetActionsFailed(v int64) *DetectMitigationActionsTaskStatistics {
37705	s.ActionsFailed = &v
37706	return s
37707}
37708
37709// SetActionsSkipped sets the ActionsSkipped field's value.
37710func (s *DetectMitigationActionsTaskStatistics) SetActionsSkipped(v int64) *DetectMitigationActionsTaskStatistics {
37711	s.ActionsSkipped = &v
37712	return s
37713}
37714
37715// The summary of the mitigation action tasks.
37716type DetectMitigationActionsTaskSummary struct {
37717	_ struct{} `type:"structure"`
37718
37719	// The definition of the actions.
37720	ActionsDefinition []*MitigationAction `locationName:"actionsDefinition" type:"list"`
37721
37722	// Includes only active violations.
37723	OnlyActiveViolationsIncluded *bool `locationName:"onlyActiveViolationsIncluded" type:"boolean"`
37724
37725	// Includes suppressed alerts.
37726	SuppressedAlertsIncluded *bool `locationName:"suppressedAlertsIncluded" type:"boolean"`
37727
37728	// Specifies the ML Detect findings to which the mitigation actions are applied.
37729	Target *DetectMitigationActionsTaskTarget `locationName:"target" type:"structure"`
37730
37731	// The date the task ended.
37732	TaskEndTime *time.Time `locationName:"taskEndTime" type:"timestamp"`
37733
37734	// The unique identifier of the task.
37735	TaskId *string `locationName:"taskId" min:"1" type:"string"`
37736
37737	// The date the task started.
37738	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
37739
37740	// The statistics of a mitigation action task.
37741	TaskStatistics *DetectMitigationActionsTaskStatistics `locationName:"taskStatistics" type:"structure"`
37742
37743	// The status of the task.
37744	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"DetectMitigationActionsTaskStatus"`
37745
37746	// Specifies the time period of which violation events occurred between.
37747	ViolationEventOccurrenceRange *ViolationEventOccurrenceRange `locationName:"violationEventOccurrenceRange" type:"structure"`
37748}
37749
37750// String returns the string representation
37751func (s DetectMitigationActionsTaskSummary) String() string {
37752	return awsutil.Prettify(s)
37753}
37754
37755// GoString returns the string representation
37756func (s DetectMitigationActionsTaskSummary) GoString() string {
37757	return s.String()
37758}
37759
37760// SetActionsDefinition sets the ActionsDefinition field's value.
37761func (s *DetectMitigationActionsTaskSummary) SetActionsDefinition(v []*MitigationAction) *DetectMitigationActionsTaskSummary {
37762	s.ActionsDefinition = v
37763	return s
37764}
37765
37766// SetOnlyActiveViolationsIncluded sets the OnlyActiveViolationsIncluded field's value.
37767func (s *DetectMitigationActionsTaskSummary) SetOnlyActiveViolationsIncluded(v bool) *DetectMitigationActionsTaskSummary {
37768	s.OnlyActiveViolationsIncluded = &v
37769	return s
37770}
37771
37772// SetSuppressedAlertsIncluded sets the SuppressedAlertsIncluded field's value.
37773func (s *DetectMitigationActionsTaskSummary) SetSuppressedAlertsIncluded(v bool) *DetectMitigationActionsTaskSummary {
37774	s.SuppressedAlertsIncluded = &v
37775	return s
37776}
37777
37778// SetTarget sets the Target field's value.
37779func (s *DetectMitigationActionsTaskSummary) SetTarget(v *DetectMitigationActionsTaskTarget) *DetectMitigationActionsTaskSummary {
37780	s.Target = v
37781	return s
37782}
37783
37784// SetTaskEndTime sets the TaskEndTime field's value.
37785func (s *DetectMitigationActionsTaskSummary) SetTaskEndTime(v time.Time) *DetectMitigationActionsTaskSummary {
37786	s.TaskEndTime = &v
37787	return s
37788}
37789
37790// SetTaskId sets the TaskId field's value.
37791func (s *DetectMitigationActionsTaskSummary) SetTaskId(v string) *DetectMitigationActionsTaskSummary {
37792	s.TaskId = &v
37793	return s
37794}
37795
37796// SetTaskStartTime sets the TaskStartTime field's value.
37797func (s *DetectMitigationActionsTaskSummary) SetTaskStartTime(v time.Time) *DetectMitigationActionsTaskSummary {
37798	s.TaskStartTime = &v
37799	return s
37800}
37801
37802// SetTaskStatistics sets the TaskStatistics field's value.
37803func (s *DetectMitigationActionsTaskSummary) SetTaskStatistics(v *DetectMitigationActionsTaskStatistics) *DetectMitigationActionsTaskSummary {
37804	s.TaskStatistics = v
37805	return s
37806}
37807
37808// SetTaskStatus sets the TaskStatus field's value.
37809func (s *DetectMitigationActionsTaskSummary) SetTaskStatus(v string) *DetectMitigationActionsTaskSummary {
37810	s.TaskStatus = &v
37811	return s
37812}
37813
37814// SetViolationEventOccurrenceRange sets the ViolationEventOccurrenceRange field's value.
37815func (s *DetectMitigationActionsTaskSummary) SetViolationEventOccurrenceRange(v *ViolationEventOccurrenceRange) *DetectMitigationActionsTaskSummary {
37816	s.ViolationEventOccurrenceRange = v
37817	return s
37818}
37819
37820// The target of a mitigation action task.
37821type DetectMitigationActionsTaskTarget struct {
37822	_ struct{} `type:"structure"`
37823
37824	// The name of the behavior.
37825	BehaviorName *string `locationName:"behaviorName" min:"1" type:"string"`
37826
37827	// The name of the security profile.
37828	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
37829
37830	// The unique identifiers of the violations.
37831	ViolationIds []*string `locationName:"violationIds" min:"1" type:"list"`
37832}
37833
37834// String returns the string representation
37835func (s DetectMitigationActionsTaskTarget) String() string {
37836	return awsutil.Prettify(s)
37837}
37838
37839// GoString returns the string representation
37840func (s DetectMitigationActionsTaskTarget) GoString() string {
37841	return s.String()
37842}
37843
37844// Validate inspects the fields of the type to determine if they are valid.
37845func (s *DetectMitigationActionsTaskTarget) Validate() error {
37846	invalidParams := request.ErrInvalidParams{Context: "DetectMitigationActionsTaskTarget"}
37847	if s.BehaviorName != nil && len(*s.BehaviorName) < 1 {
37848		invalidParams.Add(request.NewErrParamMinLen("BehaviorName", 1))
37849	}
37850	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
37851		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
37852	}
37853	if s.ViolationIds != nil && len(s.ViolationIds) < 1 {
37854		invalidParams.Add(request.NewErrParamMinLen("ViolationIds", 1))
37855	}
37856
37857	if invalidParams.Len() > 0 {
37858		return invalidParams
37859	}
37860	return nil
37861}
37862
37863// SetBehaviorName sets the BehaviorName field's value.
37864func (s *DetectMitigationActionsTaskTarget) SetBehaviorName(v string) *DetectMitigationActionsTaskTarget {
37865	s.BehaviorName = &v
37866	return s
37867}
37868
37869// SetSecurityProfileName sets the SecurityProfileName field's value.
37870func (s *DetectMitigationActionsTaskTarget) SetSecurityProfileName(v string) *DetectMitigationActionsTaskTarget {
37871	s.SecurityProfileName = &v
37872	return s
37873}
37874
37875// SetViolationIds sets the ViolationIds field's value.
37876func (s *DetectMitigationActionsTaskTarget) SetViolationIds(v []*string) *DetectMitigationActionsTaskTarget {
37877	s.ViolationIds = v
37878	return s
37879}
37880
37881// The input for the DisableTopicRuleRequest operation.
37882type DisableTopicRuleInput struct {
37883	_ struct{} `type:"structure"`
37884
37885	// The name of the rule to disable.
37886	//
37887	// RuleName is a required field
37888	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
37889}
37890
37891// String returns the string representation
37892func (s DisableTopicRuleInput) String() string {
37893	return awsutil.Prettify(s)
37894}
37895
37896// GoString returns the string representation
37897func (s DisableTopicRuleInput) GoString() string {
37898	return s.String()
37899}
37900
37901// Validate inspects the fields of the type to determine if they are valid.
37902func (s *DisableTopicRuleInput) Validate() error {
37903	invalidParams := request.ErrInvalidParams{Context: "DisableTopicRuleInput"}
37904	if s.RuleName == nil {
37905		invalidParams.Add(request.NewErrParamRequired("RuleName"))
37906	}
37907	if s.RuleName != nil && len(*s.RuleName) < 1 {
37908		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
37909	}
37910
37911	if invalidParams.Len() > 0 {
37912		return invalidParams
37913	}
37914	return nil
37915}
37916
37917// SetRuleName sets the RuleName field's value.
37918func (s *DisableTopicRuleInput) SetRuleName(v string) *DisableTopicRuleInput {
37919	s.RuleName = &v
37920	return s
37921}
37922
37923type DisableTopicRuleOutput struct {
37924	_ struct{} `type:"structure"`
37925}
37926
37927// String returns the string representation
37928func (s DisableTopicRuleOutput) String() string {
37929	return awsutil.Prettify(s)
37930}
37931
37932// GoString returns the string representation
37933func (s DisableTopicRuleOutput) GoString() string {
37934	return s.String()
37935}
37936
37937// The summary of a domain configuration. A domain configuration specifies custom
37938// IoT-specific information about a domain. A domain configuration can be associated
37939// with an AWS-managed domain (for example, dbc123defghijk.iot.us-west-2.amazonaws.com),
37940// a customer managed domain, or a default endpoint.
37941//
37942//    * Data
37943//
37944//    * Jobs
37945//
37946//    * CredentialProvider
37947type DomainConfigurationSummary struct {
37948	_ struct{} `type:"structure"`
37949
37950	// The ARN of the domain configuration.
37951	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
37952
37953	// The name of the domain configuration. This value must be unique to a region.
37954	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
37955
37956	// The type of service delivered by the endpoint.
37957	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
37958}
37959
37960// String returns the string representation
37961func (s DomainConfigurationSummary) String() string {
37962	return awsutil.Prettify(s)
37963}
37964
37965// GoString returns the string representation
37966func (s DomainConfigurationSummary) GoString() string {
37967	return s.String()
37968}
37969
37970// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
37971func (s *DomainConfigurationSummary) SetDomainConfigurationArn(v string) *DomainConfigurationSummary {
37972	s.DomainConfigurationArn = &v
37973	return s
37974}
37975
37976// SetDomainConfigurationName sets the DomainConfigurationName field's value.
37977func (s *DomainConfigurationSummary) SetDomainConfigurationName(v string) *DomainConfigurationSummary {
37978	s.DomainConfigurationName = &v
37979	return s
37980}
37981
37982// SetServiceType sets the ServiceType field's value.
37983func (s *DomainConfigurationSummary) SetServiceType(v string) *DomainConfigurationSummary {
37984	s.ServiceType = &v
37985	return s
37986}
37987
37988// Describes an action to write to a DynamoDB table.
37989//
37990// The tableName, hashKeyField, and rangeKeyField values must match the values
37991// used when you created the table.
37992//
37993// The hashKeyValue and rangeKeyvalue fields use a substitution template syntax.
37994// These templates provide data at runtime. The syntax is as follows: ${sql-expression}.
37995//
37996// You can specify any valid expression in a WHERE or SELECT clause, including
37997// JSON properties, comparisons, calculations, and functions. For example, the
37998// following field uses the third level of the topic:
37999//
38000// "hashKeyValue": "${topic(3)}"
38001//
38002// The following field uses the timestamp:
38003//
38004// "rangeKeyValue": "${timestamp()}"
38005type DynamoDBAction struct {
38006	_ struct{} `type:"structure"`
38007
38008	// The hash key name.
38009	//
38010	// HashKeyField is a required field
38011	HashKeyField *string `locationName:"hashKeyField" type:"string" required:"true"`
38012
38013	// The hash key type. Valid values are "STRING" or "NUMBER"
38014	HashKeyType *string `locationName:"hashKeyType" type:"string" enum:"DynamoKeyType"`
38015
38016	// The hash key value.
38017	//
38018	// HashKeyValue is a required field
38019	HashKeyValue *string `locationName:"hashKeyValue" type:"string" required:"true"`
38020
38021	// The type of operation to be performed. This follows the substitution template,
38022	// so it can be ${operation}, but the substitution must result in one of the
38023	// following: INSERT, UPDATE, or DELETE.
38024	Operation *string `locationName:"operation" type:"string"`
38025
38026	// The action payload. This name can be customized.
38027	PayloadField *string `locationName:"payloadField" type:"string"`
38028
38029	// The range key name.
38030	RangeKeyField *string `locationName:"rangeKeyField" type:"string"`
38031
38032	// The range key type. Valid values are "STRING" or "NUMBER"
38033	RangeKeyType *string `locationName:"rangeKeyType" type:"string" enum:"DynamoKeyType"`
38034
38035	// The range key value.
38036	RangeKeyValue *string `locationName:"rangeKeyValue" type:"string"`
38037
38038	// The ARN of the IAM role that grants access to the DynamoDB table.
38039	//
38040	// RoleArn is a required field
38041	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
38042
38043	// The name of the DynamoDB table.
38044	//
38045	// TableName is a required field
38046	TableName *string `locationName:"tableName" type:"string" required:"true"`
38047}
38048
38049// String returns the string representation
38050func (s DynamoDBAction) String() string {
38051	return awsutil.Prettify(s)
38052}
38053
38054// GoString returns the string representation
38055func (s DynamoDBAction) GoString() string {
38056	return s.String()
38057}
38058
38059// Validate inspects the fields of the type to determine if they are valid.
38060func (s *DynamoDBAction) Validate() error {
38061	invalidParams := request.ErrInvalidParams{Context: "DynamoDBAction"}
38062	if s.HashKeyField == nil {
38063		invalidParams.Add(request.NewErrParamRequired("HashKeyField"))
38064	}
38065	if s.HashKeyValue == nil {
38066		invalidParams.Add(request.NewErrParamRequired("HashKeyValue"))
38067	}
38068	if s.RoleArn == nil {
38069		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
38070	}
38071	if s.TableName == nil {
38072		invalidParams.Add(request.NewErrParamRequired("TableName"))
38073	}
38074
38075	if invalidParams.Len() > 0 {
38076		return invalidParams
38077	}
38078	return nil
38079}
38080
38081// SetHashKeyField sets the HashKeyField field's value.
38082func (s *DynamoDBAction) SetHashKeyField(v string) *DynamoDBAction {
38083	s.HashKeyField = &v
38084	return s
38085}
38086
38087// SetHashKeyType sets the HashKeyType field's value.
38088func (s *DynamoDBAction) SetHashKeyType(v string) *DynamoDBAction {
38089	s.HashKeyType = &v
38090	return s
38091}
38092
38093// SetHashKeyValue sets the HashKeyValue field's value.
38094func (s *DynamoDBAction) SetHashKeyValue(v string) *DynamoDBAction {
38095	s.HashKeyValue = &v
38096	return s
38097}
38098
38099// SetOperation sets the Operation field's value.
38100func (s *DynamoDBAction) SetOperation(v string) *DynamoDBAction {
38101	s.Operation = &v
38102	return s
38103}
38104
38105// SetPayloadField sets the PayloadField field's value.
38106func (s *DynamoDBAction) SetPayloadField(v string) *DynamoDBAction {
38107	s.PayloadField = &v
38108	return s
38109}
38110
38111// SetRangeKeyField sets the RangeKeyField field's value.
38112func (s *DynamoDBAction) SetRangeKeyField(v string) *DynamoDBAction {
38113	s.RangeKeyField = &v
38114	return s
38115}
38116
38117// SetRangeKeyType sets the RangeKeyType field's value.
38118func (s *DynamoDBAction) SetRangeKeyType(v string) *DynamoDBAction {
38119	s.RangeKeyType = &v
38120	return s
38121}
38122
38123// SetRangeKeyValue sets the RangeKeyValue field's value.
38124func (s *DynamoDBAction) SetRangeKeyValue(v string) *DynamoDBAction {
38125	s.RangeKeyValue = &v
38126	return s
38127}
38128
38129// SetRoleArn sets the RoleArn field's value.
38130func (s *DynamoDBAction) SetRoleArn(v string) *DynamoDBAction {
38131	s.RoleArn = &v
38132	return s
38133}
38134
38135// SetTableName sets the TableName field's value.
38136func (s *DynamoDBAction) SetTableName(v string) *DynamoDBAction {
38137	s.TableName = &v
38138	return s
38139}
38140
38141// Describes an action to write to a DynamoDB table.
38142//
38143// This DynamoDB action writes each attribute in the message payload into it's
38144// own column in the DynamoDB table.
38145type DynamoDBv2Action struct {
38146	_ struct{} `type:"structure"`
38147
38148	// Specifies the DynamoDB table to which the message data will be written. For
38149	// example:
38150	//
38151	// { "dynamoDBv2": { "roleArn": "aws:iam:12341251:my-role" "putItem": { "tableName":
38152	// "my-table" } } }
38153	//
38154	// Each attribute in the message payload will be written to a separate column
38155	// in the DynamoDB database.
38156	//
38157	// PutItem is a required field
38158	PutItem *PutItemInput `locationName:"putItem" type:"structure" required:"true"`
38159
38160	// The ARN of the IAM role that grants access to the DynamoDB table.
38161	//
38162	// RoleArn is a required field
38163	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
38164}
38165
38166// String returns the string representation
38167func (s DynamoDBv2Action) String() string {
38168	return awsutil.Prettify(s)
38169}
38170
38171// GoString returns the string representation
38172func (s DynamoDBv2Action) GoString() string {
38173	return s.String()
38174}
38175
38176// Validate inspects the fields of the type to determine if they are valid.
38177func (s *DynamoDBv2Action) Validate() error {
38178	invalidParams := request.ErrInvalidParams{Context: "DynamoDBv2Action"}
38179	if s.PutItem == nil {
38180		invalidParams.Add(request.NewErrParamRequired("PutItem"))
38181	}
38182	if s.RoleArn == nil {
38183		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
38184	}
38185	if s.PutItem != nil {
38186		if err := s.PutItem.Validate(); err != nil {
38187			invalidParams.AddNested("PutItem", err.(request.ErrInvalidParams))
38188		}
38189	}
38190
38191	if invalidParams.Len() > 0 {
38192		return invalidParams
38193	}
38194	return nil
38195}
38196
38197// SetPutItem sets the PutItem field's value.
38198func (s *DynamoDBv2Action) SetPutItem(v *PutItemInput) *DynamoDBv2Action {
38199	s.PutItem = v
38200	return s
38201}
38202
38203// SetRoleArn sets the RoleArn field's value.
38204func (s *DynamoDBv2Action) SetRoleArn(v string) *DynamoDBv2Action {
38205	s.RoleArn = &v
38206	return s
38207}
38208
38209// The policy that has the effect on the authorization results.
38210type EffectivePolicy struct {
38211	_ struct{} `type:"structure"`
38212
38213	// The policy ARN.
38214	PolicyArn *string `locationName:"policyArn" type:"string"`
38215
38216	// The IAM policy document.
38217	PolicyDocument *string `locationName:"policyDocument" type:"string"`
38218
38219	// The policy name.
38220	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
38221}
38222
38223// String returns the string representation
38224func (s EffectivePolicy) String() string {
38225	return awsutil.Prettify(s)
38226}
38227
38228// GoString returns the string representation
38229func (s EffectivePolicy) GoString() string {
38230	return s.String()
38231}
38232
38233// SetPolicyArn sets the PolicyArn field's value.
38234func (s *EffectivePolicy) SetPolicyArn(v string) *EffectivePolicy {
38235	s.PolicyArn = &v
38236	return s
38237}
38238
38239// SetPolicyDocument sets the PolicyDocument field's value.
38240func (s *EffectivePolicy) SetPolicyDocument(v string) *EffectivePolicy {
38241	s.PolicyDocument = &v
38242	return s
38243}
38244
38245// SetPolicyName sets the PolicyName field's value.
38246func (s *EffectivePolicy) SetPolicyName(v string) *EffectivePolicy {
38247	s.PolicyName = &v
38248	return s
38249}
38250
38251// Describes an action that writes data to an Amazon Elasticsearch Service domain.
38252type ElasticsearchAction struct {
38253	_ struct{} `type:"structure"`
38254
38255	// The endpoint of your Elasticsearch domain.
38256	//
38257	// Endpoint is a required field
38258	Endpoint *string `locationName:"endpoint" type:"string" required:"true"`
38259
38260	// The unique identifier for the document you are storing.
38261	//
38262	// Id is a required field
38263	Id *string `locationName:"id" type:"string" required:"true"`
38264
38265	// The Elasticsearch index where you want to store your data.
38266	//
38267	// Index is a required field
38268	Index *string `locationName:"index" type:"string" required:"true"`
38269
38270	// The IAM role ARN that has access to Elasticsearch.
38271	//
38272	// RoleArn is a required field
38273	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
38274
38275	// The type of document you are storing.
38276	//
38277	// Type is a required field
38278	Type *string `locationName:"type" type:"string" required:"true"`
38279}
38280
38281// String returns the string representation
38282func (s ElasticsearchAction) String() string {
38283	return awsutil.Prettify(s)
38284}
38285
38286// GoString returns the string representation
38287func (s ElasticsearchAction) GoString() string {
38288	return s.String()
38289}
38290
38291// Validate inspects the fields of the type to determine if they are valid.
38292func (s *ElasticsearchAction) Validate() error {
38293	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchAction"}
38294	if s.Endpoint == nil {
38295		invalidParams.Add(request.NewErrParamRequired("Endpoint"))
38296	}
38297	if s.Id == nil {
38298		invalidParams.Add(request.NewErrParamRequired("Id"))
38299	}
38300	if s.Index == nil {
38301		invalidParams.Add(request.NewErrParamRequired("Index"))
38302	}
38303	if s.RoleArn == nil {
38304		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
38305	}
38306	if s.Type == nil {
38307		invalidParams.Add(request.NewErrParamRequired("Type"))
38308	}
38309
38310	if invalidParams.Len() > 0 {
38311		return invalidParams
38312	}
38313	return nil
38314}
38315
38316// SetEndpoint sets the Endpoint field's value.
38317func (s *ElasticsearchAction) SetEndpoint(v string) *ElasticsearchAction {
38318	s.Endpoint = &v
38319	return s
38320}
38321
38322// SetId sets the Id field's value.
38323func (s *ElasticsearchAction) SetId(v string) *ElasticsearchAction {
38324	s.Id = &v
38325	return s
38326}
38327
38328// SetIndex sets the Index field's value.
38329func (s *ElasticsearchAction) SetIndex(v string) *ElasticsearchAction {
38330	s.Index = &v
38331	return s
38332}
38333
38334// SetRoleArn sets the RoleArn field's value.
38335func (s *ElasticsearchAction) SetRoleArn(v string) *ElasticsearchAction {
38336	s.RoleArn = &v
38337	return s
38338}
38339
38340// SetType sets the Type field's value.
38341func (s *ElasticsearchAction) SetType(v string) *ElasticsearchAction {
38342	s.Type = &v
38343	return s
38344}
38345
38346// Parameters used when defining a mitigation action that enable AWS IoT logging.
38347type EnableIoTLoggingParams struct {
38348	_ struct{} `type:"structure"`
38349
38350	// Specifies the type of information to be logged.
38351	//
38352	// LogLevel is a required field
38353	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
38354
38355	// The Amazon Resource Name (ARN) of the IAM role used for logging.
38356	//
38357	// RoleArnForLogging is a required field
38358	RoleArnForLogging *string `locationName:"roleArnForLogging" min:"20" type:"string" required:"true"`
38359}
38360
38361// String returns the string representation
38362func (s EnableIoTLoggingParams) String() string {
38363	return awsutil.Prettify(s)
38364}
38365
38366// GoString returns the string representation
38367func (s EnableIoTLoggingParams) GoString() string {
38368	return s.String()
38369}
38370
38371// Validate inspects the fields of the type to determine if they are valid.
38372func (s *EnableIoTLoggingParams) Validate() error {
38373	invalidParams := request.ErrInvalidParams{Context: "EnableIoTLoggingParams"}
38374	if s.LogLevel == nil {
38375		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
38376	}
38377	if s.RoleArnForLogging == nil {
38378		invalidParams.Add(request.NewErrParamRequired("RoleArnForLogging"))
38379	}
38380	if s.RoleArnForLogging != nil && len(*s.RoleArnForLogging) < 20 {
38381		invalidParams.Add(request.NewErrParamMinLen("RoleArnForLogging", 20))
38382	}
38383
38384	if invalidParams.Len() > 0 {
38385		return invalidParams
38386	}
38387	return nil
38388}
38389
38390// SetLogLevel sets the LogLevel field's value.
38391func (s *EnableIoTLoggingParams) SetLogLevel(v string) *EnableIoTLoggingParams {
38392	s.LogLevel = &v
38393	return s
38394}
38395
38396// SetRoleArnForLogging sets the RoleArnForLogging field's value.
38397func (s *EnableIoTLoggingParams) SetRoleArnForLogging(v string) *EnableIoTLoggingParams {
38398	s.RoleArnForLogging = &v
38399	return s
38400}
38401
38402// The input for the EnableTopicRuleRequest operation.
38403type EnableTopicRuleInput struct {
38404	_ struct{} `type:"structure"`
38405
38406	// The name of the topic rule to enable.
38407	//
38408	// RuleName is a required field
38409	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
38410}
38411
38412// String returns the string representation
38413func (s EnableTopicRuleInput) String() string {
38414	return awsutil.Prettify(s)
38415}
38416
38417// GoString returns the string representation
38418func (s EnableTopicRuleInput) GoString() string {
38419	return s.String()
38420}
38421
38422// Validate inspects the fields of the type to determine if they are valid.
38423func (s *EnableTopicRuleInput) Validate() error {
38424	invalidParams := request.ErrInvalidParams{Context: "EnableTopicRuleInput"}
38425	if s.RuleName == nil {
38426		invalidParams.Add(request.NewErrParamRequired("RuleName"))
38427	}
38428	if s.RuleName != nil && len(*s.RuleName) < 1 {
38429		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
38430	}
38431
38432	if invalidParams.Len() > 0 {
38433		return invalidParams
38434	}
38435	return nil
38436}
38437
38438// SetRuleName sets the RuleName field's value.
38439func (s *EnableTopicRuleInput) SetRuleName(v string) *EnableTopicRuleInput {
38440	s.RuleName = &v
38441	return s
38442}
38443
38444type EnableTopicRuleOutput struct {
38445	_ struct{} `type:"structure"`
38446}
38447
38448// String returns the string representation
38449func (s EnableTopicRuleOutput) String() string {
38450	return awsutil.Prettify(s)
38451}
38452
38453// GoString returns the string representation
38454func (s EnableTopicRuleOutput) GoString() string {
38455	return s.String()
38456}
38457
38458// Error information.
38459type ErrorInfo struct {
38460	_ struct{} `type:"structure"`
38461
38462	// The error code.
38463	Code *string `locationName:"code" type:"string"`
38464
38465	// The error message.
38466	Message *string `locationName:"message" type:"string"`
38467}
38468
38469// String returns the string representation
38470func (s ErrorInfo) String() string {
38471	return awsutil.Prettify(s)
38472}
38473
38474// GoString returns the string representation
38475func (s ErrorInfo) GoString() string {
38476	return s.String()
38477}
38478
38479// SetCode sets the Code field's value.
38480func (s *ErrorInfo) SetCode(v string) *ErrorInfo {
38481	s.Code = &v
38482	return s
38483}
38484
38485// SetMessage sets the Message field's value.
38486func (s *ErrorInfo) SetMessage(v string) *ErrorInfo {
38487	s.Message = &v
38488	return s
38489}
38490
38491// Information that explicitly denies authorization.
38492type ExplicitDeny struct {
38493	_ struct{} `type:"structure"`
38494
38495	// The policies that denied the authorization.
38496	Policies []*Policy `locationName:"policies" type:"list"`
38497}
38498
38499// String returns the string representation
38500func (s ExplicitDeny) String() string {
38501	return awsutil.Prettify(s)
38502}
38503
38504// GoString returns the string representation
38505func (s ExplicitDeny) GoString() string {
38506	return s.String()
38507}
38508
38509// SetPolicies sets the Policies field's value.
38510func (s *ExplicitDeny) SetPolicies(v []*Policy) *ExplicitDeny {
38511	s.Policies = v
38512	return s
38513}
38514
38515// Allows you to create an exponential rate of rollout for a job.
38516type ExponentialRolloutRate struct {
38517	_ struct{} `type:"structure"`
38518
38519	// The minimum number of things that will be notified of a pending job, per
38520	// minute at the start of job rollout. This parameter allows you to define the
38521	// initial rate of rollout.
38522	//
38523	// BaseRatePerMinute is a required field
38524	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
38525
38526	// The exponential factor to increase the rate of rollout for a job.
38527	//
38528	// AWS IoT supports up to one digit after the decimal (for example, 1.5, but
38529	// not 1.55).
38530	//
38531	// IncrementFactor is a required field
38532	IncrementFactor *float64 `locationName:"incrementFactor" min:"1" type:"double" required:"true"`
38533
38534	// The criteria to initiate the increase in rate of rollout for a job.
38535	//
38536	// RateIncreaseCriteria is a required field
38537	RateIncreaseCriteria *RateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
38538}
38539
38540// String returns the string representation
38541func (s ExponentialRolloutRate) String() string {
38542	return awsutil.Prettify(s)
38543}
38544
38545// GoString returns the string representation
38546func (s ExponentialRolloutRate) GoString() string {
38547	return s.String()
38548}
38549
38550// Validate inspects the fields of the type to determine if they are valid.
38551func (s *ExponentialRolloutRate) Validate() error {
38552	invalidParams := request.ErrInvalidParams{Context: "ExponentialRolloutRate"}
38553	if s.BaseRatePerMinute == nil {
38554		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
38555	}
38556	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
38557		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
38558	}
38559	if s.IncrementFactor == nil {
38560		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
38561	}
38562	if s.IncrementFactor != nil && *s.IncrementFactor < 1 {
38563		invalidParams.Add(request.NewErrParamMinValue("IncrementFactor", 1))
38564	}
38565	if s.RateIncreaseCriteria == nil {
38566		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
38567	}
38568	if s.RateIncreaseCriteria != nil {
38569		if err := s.RateIncreaseCriteria.Validate(); err != nil {
38570			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
38571		}
38572	}
38573
38574	if invalidParams.Len() > 0 {
38575		return invalidParams
38576	}
38577	return nil
38578}
38579
38580// SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
38581func (s *ExponentialRolloutRate) SetBaseRatePerMinute(v int64) *ExponentialRolloutRate {
38582	s.BaseRatePerMinute = &v
38583	return s
38584}
38585
38586// SetIncrementFactor sets the IncrementFactor field's value.
38587func (s *ExponentialRolloutRate) SetIncrementFactor(v float64) *ExponentialRolloutRate {
38588	s.IncrementFactor = &v
38589	return s
38590}
38591
38592// SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
38593func (s *ExponentialRolloutRate) SetRateIncreaseCriteria(v *RateIncreaseCriteria) *ExponentialRolloutRate {
38594	s.RateIncreaseCriteria = v
38595	return s
38596}
38597
38598// Describes the name and data type at a field.
38599type Field struct {
38600	_ struct{} `type:"structure"`
38601
38602	// The name of the field.
38603	Name *string `locationName:"name" type:"string"`
38604
38605	// The datatype of the field.
38606	Type *string `locationName:"type" type:"string" enum:"FieldType"`
38607}
38608
38609// String returns the string representation
38610func (s Field) String() string {
38611	return awsutil.Prettify(s)
38612}
38613
38614// GoString returns the string representation
38615func (s Field) GoString() string {
38616	return s.String()
38617}
38618
38619// SetName sets the Name field's value.
38620func (s *Field) SetName(v string) *Field {
38621	s.Name = &v
38622	return s
38623}
38624
38625// SetType sets the Type field's value.
38626func (s *Field) SetType(v string) *Field {
38627	s.Type = &v
38628	return s
38629}
38630
38631// The location of the OTA update.
38632type FileLocation struct {
38633	_ struct{} `type:"structure"`
38634
38635	// The location of the updated firmware in S3.
38636	S3Location *S3Location `locationName:"s3Location" type:"structure"`
38637
38638	// The stream that contains the OTA update.
38639	Stream *Stream `locationName:"stream" type:"structure"`
38640}
38641
38642// String returns the string representation
38643func (s FileLocation) String() string {
38644	return awsutil.Prettify(s)
38645}
38646
38647// GoString returns the string representation
38648func (s FileLocation) GoString() string {
38649	return s.String()
38650}
38651
38652// Validate inspects the fields of the type to determine if they are valid.
38653func (s *FileLocation) Validate() error {
38654	invalidParams := request.ErrInvalidParams{Context: "FileLocation"}
38655	if s.S3Location != nil {
38656		if err := s.S3Location.Validate(); err != nil {
38657			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
38658		}
38659	}
38660	if s.Stream != nil {
38661		if err := s.Stream.Validate(); err != nil {
38662			invalidParams.AddNested("Stream", err.(request.ErrInvalidParams))
38663		}
38664	}
38665
38666	if invalidParams.Len() > 0 {
38667		return invalidParams
38668	}
38669	return nil
38670}
38671
38672// SetS3Location sets the S3Location field's value.
38673func (s *FileLocation) SetS3Location(v *S3Location) *FileLocation {
38674	s.S3Location = v
38675	return s
38676}
38677
38678// SetStream sets the Stream field's value.
38679func (s *FileLocation) SetStream(v *Stream) *FileLocation {
38680	s.Stream = v
38681	return s
38682}
38683
38684// Describes an action that writes data to an Amazon Kinesis Firehose stream.
38685type FirehoseAction struct {
38686	_ struct{} `type:"structure"`
38687
38688	// Whether to deliver the Kinesis Data Firehose stream as a batch by using PutRecordBatch
38689	// (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html).
38690	// The default value is false.
38691	//
38692	// When batchMode is true and the rule's SQL statement evaluates to an Array,
38693	// each Array element forms one record in the PutRecordBatch (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)
38694	// request. The resulting array can't have more than 500 records.
38695	BatchMode *bool `locationName:"batchMode" type:"boolean"`
38696
38697	// The delivery stream name.
38698	//
38699	// DeliveryStreamName is a required field
38700	DeliveryStreamName *string `locationName:"deliveryStreamName" type:"string" required:"true"`
38701
38702	// The IAM role that grants access to the Amazon Kinesis Firehose stream.
38703	//
38704	// RoleArn is a required field
38705	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
38706
38707	// A character separator that will be used to separate records written to the
38708	// Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows
38709	// newline), ',' (comma).
38710	Separator *string `locationName:"separator" type:"string"`
38711}
38712
38713// String returns the string representation
38714func (s FirehoseAction) String() string {
38715	return awsutil.Prettify(s)
38716}
38717
38718// GoString returns the string representation
38719func (s FirehoseAction) GoString() string {
38720	return s.String()
38721}
38722
38723// Validate inspects the fields of the type to determine if they are valid.
38724func (s *FirehoseAction) Validate() error {
38725	invalidParams := request.ErrInvalidParams{Context: "FirehoseAction"}
38726	if s.DeliveryStreamName == nil {
38727		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
38728	}
38729	if s.RoleArn == nil {
38730		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
38731	}
38732
38733	if invalidParams.Len() > 0 {
38734		return invalidParams
38735	}
38736	return nil
38737}
38738
38739// SetBatchMode sets the BatchMode field's value.
38740func (s *FirehoseAction) SetBatchMode(v bool) *FirehoseAction {
38741	s.BatchMode = &v
38742	return s
38743}
38744
38745// SetDeliveryStreamName sets the DeliveryStreamName field's value.
38746func (s *FirehoseAction) SetDeliveryStreamName(v string) *FirehoseAction {
38747	s.DeliveryStreamName = &v
38748	return s
38749}
38750
38751// SetRoleArn sets the RoleArn field's value.
38752func (s *FirehoseAction) SetRoleArn(v string) *FirehoseAction {
38753	s.RoleArn = &v
38754	return s
38755}
38756
38757// SetSeparator sets the Separator field's value.
38758func (s *FirehoseAction) SetSeparator(v string) *FirehoseAction {
38759	s.Separator = &v
38760	return s
38761}
38762
38763type GetBehaviorModelTrainingSummariesInput struct {
38764	_ struct{} `type:"structure"`
38765
38766	// The maximum number of results to return at one time. The default is 25.
38767	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
38768
38769	// The token for the next set of results.
38770	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
38771
38772	// The name of the security profile.
38773	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
38774}
38775
38776// String returns the string representation
38777func (s GetBehaviorModelTrainingSummariesInput) String() string {
38778	return awsutil.Prettify(s)
38779}
38780
38781// GoString returns the string representation
38782func (s GetBehaviorModelTrainingSummariesInput) GoString() string {
38783	return s.String()
38784}
38785
38786// Validate inspects the fields of the type to determine if they are valid.
38787func (s *GetBehaviorModelTrainingSummariesInput) Validate() error {
38788	invalidParams := request.ErrInvalidParams{Context: "GetBehaviorModelTrainingSummariesInput"}
38789	if s.MaxResults != nil && *s.MaxResults < 1 {
38790		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
38791	}
38792	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
38793		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
38794	}
38795
38796	if invalidParams.Len() > 0 {
38797		return invalidParams
38798	}
38799	return nil
38800}
38801
38802// SetMaxResults sets the MaxResults field's value.
38803func (s *GetBehaviorModelTrainingSummariesInput) SetMaxResults(v int64) *GetBehaviorModelTrainingSummariesInput {
38804	s.MaxResults = &v
38805	return s
38806}
38807
38808// SetNextToken sets the NextToken field's value.
38809func (s *GetBehaviorModelTrainingSummariesInput) SetNextToken(v string) *GetBehaviorModelTrainingSummariesInput {
38810	s.NextToken = &v
38811	return s
38812}
38813
38814// SetSecurityProfileName sets the SecurityProfileName field's value.
38815func (s *GetBehaviorModelTrainingSummariesInput) SetSecurityProfileName(v string) *GetBehaviorModelTrainingSummariesInput {
38816	s.SecurityProfileName = &v
38817	return s
38818}
38819
38820type GetBehaviorModelTrainingSummariesOutput struct {
38821	_ struct{} `type:"structure"`
38822
38823	// A token that can be used to retrieve the next set of results, or null if
38824	// there are no additional results.
38825	NextToken *string `locationName:"nextToken" type:"string"`
38826
38827	// A list of all ML Detect behaviors and their model status for a given Security
38828	// Profile.
38829	Summaries []*BehaviorModelTrainingSummary `locationName:"summaries" type:"list"`
38830}
38831
38832// String returns the string representation
38833func (s GetBehaviorModelTrainingSummariesOutput) String() string {
38834	return awsutil.Prettify(s)
38835}
38836
38837// GoString returns the string representation
38838func (s GetBehaviorModelTrainingSummariesOutput) GoString() string {
38839	return s.String()
38840}
38841
38842// SetNextToken sets the NextToken field's value.
38843func (s *GetBehaviorModelTrainingSummariesOutput) SetNextToken(v string) *GetBehaviorModelTrainingSummariesOutput {
38844	s.NextToken = &v
38845	return s
38846}
38847
38848// SetSummaries sets the Summaries field's value.
38849func (s *GetBehaviorModelTrainingSummariesOutput) SetSummaries(v []*BehaviorModelTrainingSummary) *GetBehaviorModelTrainingSummariesOutput {
38850	s.Summaries = v
38851	return s
38852}
38853
38854type GetCardinalityInput struct {
38855	_ struct{} `type:"structure"`
38856
38857	// The field to aggregate.
38858	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
38859
38860	// The name of the index to search.
38861	IndexName *string `locationName:"indexName" min:"1" type:"string"`
38862
38863	// The search query.
38864	//
38865	// QueryString is a required field
38866	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
38867
38868	// The query version.
38869	QueryVersion *string `locationName:"queryVersion" type:"string"`
38870}
38871
38872// String returns the string representation
38873func (s GetCardinalityInput) String() string {
38874	return awsutil.Prettify(s)
38875}
38876
38877// GoString returns the string representation
38878func (s GetCardinalityInput) GoString() string {
38879	return s.String()
38880}
38881
38882// Validate inspects the fields of the type to determine if they are valid.
38883func (s *GetCardinalityInput) Validate() error {
38884	invalidParams := request.ErrInvalidParams{Context: "GetCardinalityInput"}
38885	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
38886		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
38887	}
38888	if s.IndexName != nil && len(*s.IndexName) < 1 {
38889		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
38890	}
38891	if s.QueryString == nil {
38892		invalidParams.Add(request.NewErrParamRequired("QueryString"))
38893	}
38894	if s.QueryString != nil && len(*s.QueryString) < 1 {
38895		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
38896	}
38897
38898	if invalidParams.Len() > 0 {
38899		return invalidParams
38900	}
38901	return nil
38902}
38903
38904// SetAggregationField sets the AggregationField field's value.
38905func (s *GetCardinalityInput) SetAggregationField(v string) *GetCardinalityInput {
38906	s.AggregationField = &v
38907	return s
38908}
38909
38910// SetIndexName sets the IndexName field's value.
38911func (s *GetCardinalityInput) SetIndexName(v string) *GetCardinalityInput {
38912	s.IndexName = &v
38913	return s
38914}
38915
38916// SetQueryString sets the QueryString field's value.
38917func (s *GetCardinalityInput) SetQueryString(v string) *GetCardinalityInput {
38918	s.QueryString = &v
38919	return s
38920}
38921
38922// SetQueryVersion sets the QueryVersion field's value.
38923func (s *GetCardinalityInput) SetQueryVersion(v string) *GetCardinalityInput {
38924	s.QueryVersion = &v
38925	return s
38926}
38927
38928type GetCardinalityOutput struct {
38929	_ struct{} `type:"structure"`
38930
38931	// The approximate count of unique values that match the query.
38932	Cardinality *int64 `locationName:"cardinality" type:"integer"`
38933}
38934
38935// String returns the string representation
38936func (s GetCardinalityOutput) String() string {
38937	return awsutil.Prettify(s)
38938}
38939
38940// GoString returns the string representation
38941func (s GetCardinalityOutput) GoString() string {
38942	return s.String()
38943}
38944
38945// SetCardinality sets the Cardinality field's value.
38946func (s *GetCardinalityOutput) SetCardinality(v int64) *GetCardinalityOutput {
38947	s.Cardinality = &v
38948	return s
38949}
38950
38951type GetEffectivePoliciesInput struct {
38952	_ struct{} `type:"structure"`
38953
38954	// The Cognito identity pool ID.
38955	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
38956
38957	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
38958	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
38959	// (region:id).
38960	Principal *string `locationName:"principal" type:"string"`
38961
38962	// The thing name.
38963	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
38964}
38965
38966// String returns the string representation
38967func (s GetEffectivePoliciesInput) String() string {
38968	return awsutil.Prettify(s)
38969}
38970
38971// GoString returns the string representation
38972func (s GetEffectivePoliciesInput) GoString() string {
38973	return s.String()
38974}
38975
38976// Validate inspects the fields of the type to determine if they are valid.
38977func (s *GetEffectivePoliciesInput) Validate() error {
38978	invalidParams := request.ErrInvalidParams{Context: "GetEffectivePoliciesInput"}
38979	if s.ThingName != nil && len(*s.ThingName) < 1 {
38980		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
38981	}
38982
38983	if invalidParams.Len() > 0 {
38984		return invalidParams
38985	}
38986	return nil
38987}
38988
38989// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
38990func (s *GetEffectivePoliciesInput) SetCognitoIdentityPoolId(v string) *GetEffectivePoliciesInput {
38991	s.CognitoIdentityPoolId = &v
38992	return s
38993}
38994
38995// SetPrincipal sets the Principal field's value.
38996func (s *GetEffectivePoliciesInput) SetPrincipal(v string) *GetEffectivePoliciesInput {
38997	s.Principal = &v
38998	return s
38999}
39000
39001// SetThingName sets the ThingName field's value.
39002func (s *GetEffectivePoliciesInput) SetThingName(v string) *GetEffectivePoliciesInput {
39003	s.ThingName = &v
39004	return s
39005}
39006
39007type GetEffectivePoliciesOutput struct {
39008	_ struct{} `type:"structure"`
39009
39010	// The effective policies.
39011	EffectivePolicies []*EffectivePolicy `locationName:"effectivePolicies" type:"list"`
39012}
39013
39014// String returns the string representation
39015func (s GetEffectivePoliciesOutput) String() string {
39016	return awsutil.Prettify(s)
39017}
39018
39019// GoString returns the string representation
39020func (s GetEffectivePoliciesOutput) GoString() string {
39021	return s.String()
39022}
39023
39024// SetEffectivePolicies sets the EffectivePolicies field's value.
39025func (s *GetEffectivePoliciesOutput) SetEffectivePolicies(v []*EffectivePolicy) *GetEffectivePoliciesOutput {
39026	s.EffectivePolicies = v
39027	return s
39028}
39029
39030type GetIndexingConfigurationInput struct {
39031	_ struct{} `type:"structure"`
39032}
39033
39034// String returns the string representation
39035func (s GetIndexingConfigurationInput) String() string {
39036	return awsutil.Prettify(s)
39037}
39038
39039// GoString returns the string representation
39040func (s GetIndexingConfigurationInput) GoString() string {
39041	return s.String()
39042}
39043
39044type GetIndexingConfigurationOutput struct {
39045	_ struct{} `type:"structure"`
39046
39047	// The index configuration.
39048	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
39049
39050	// Thing indexing configuration.
39051	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
39052}
39053
39054// String returns the string representation
39055func (s GetIndexingConfigurationOutput) String() string {
39056	return awsutil.Prettify(s)
39057}
39058
39059// GoString returns the string representation
39060func (s GetIndexingConfigurationOutput) GoString() string {
39061	return s.String()
39062}
39063
39064// SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
39065func (s *GetIndexingConfigurationOutput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *GetIndexingConfigurationOutput {
39066	s.ThingGroupIndexingConfiguration = v
39067	return s
39068}
39069
39070// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
39071func (s *GetIndexingConfigurationOutput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *GetIndexingConfigurationOutput {
39072	s.ThingIndexingConfiguration = v
39073	return s
39074}
39075
39076type GetJobDocumentInput struct {
39077	_ struct{} `type:"structure"`
39078
39079	// The unique identifier you assigned to this job when it was created.
39080	//
39081	// JobId is a required field
39082	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
39083}
39084
39085// String returns the string representation
39086func (s GetJobDocumentInput) String() string {
39087	return awsutil.Prettify(s)
39088}
39089
39090// GoString returns the string representation
39091func (s GetJobDocumentInput) GoString() string {
39092	return s.String()
39093}
39094
39095// Validate inspects the fields of the type to determine if they are valid.
39096func (s *GetJobDocumentInput) Validate() error {
39097	invalidParams := request.ErrInvalidParams{Context: "GetJobDocumentInput"}
39098	if s.JobId == nil {
39099		invalidParams.Add(request.NewErrParamRequired("JobId"))
39100	}
39101	if s.JobId != nil && len(*s.JobId) < 1 {
39102		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
39103	}
39104
39105	if invalidParams.Len() > 0 {
39106		return invalidParams
39107	}
39108	return nil
39109}
39110
39111// SetJobId sets the JobId field's value.
39112func (s *GetJobDocumentInput) SetJobId(v string) *GetJobDocumentInput {
39113	s.JobId = &v
39114	return s
39115}
39116
39117type GetJobDocumentOutput struct {
39118	_ struct{} `type:"structure"`
39119
39120	// The job document content.
39121	Document *string `locationName:"document" type:"string"`
39122}
39123
39124// String returns the string representation
39125func (s GetJobDocumentOutput) String() string {
39126	return awsutil.Prettify(s)
39127}
39128
39129// GoString returns the string representation
39130func (s GetJobDocumentOutput) GoString() string {
39131	return s.String()
39132}
39133
39134// SetDocument sets the Document field's value.
39135func (s *GetJobDocumentOutput) SetDocument(v string) *GetJobDocumentOutput {
39136	s.Document = &v
39137	return s
39138}
39139
39140// The input for the GetLoggingOptions operation.
39141type GetLoggingOptionsInput struct {
39142	_ struct{} `type:"structure"`
39143}
39144
39145// String returns the string representation
39146func (s GetLoggingOptionsInput) String() string {
39147	return awsutil.Prettify(s)
39148}
39149
39150// GoString returns the string representation
39151func (s GetLoggingOptionsInput) GoString() string {
39152	return s.String()
39153}
39154
39155// The output from the GetLoggingOptions operation.
39156type GetLoggingOptionsOutput struct {
39157	_ struct{} `type:"structure"`
39158
39159	// The logging level.
39160	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
39161
39162	// The ARN of the IAM role that grants access.
39163	RoleArn *string `locationName:"roleArn" type:"string"`
39164}
39165
39166// String returns the string representation
39167func (s GetLoggingOptionsOutput) String() string {
39168	return awsutil.Prettify(s)
39169}
39170
39171// GoString returns the string representation
39172func (s GetLoggingOptionsOutput) GoString() string {
39173	return s.String()
39174}
39175
39176// SetLogLevel sets the LogLevel field's value.
39177func (s *GetLoggingOptionsOutput) SetLogLevel(v string) *GetLoggingOptionsOutput {
39178	s.LogLevel = &v
39179	return s
39180}
39181
39182// SetRoleArn sets the RoleArn field's value.
39183func (s *GetLoggingOptionsOutput) SetRoleArn(v string) *GetLoggingOptionsOutput {
39184	s.RoleArn = &v
39185	return s
39186}
39187
39188type GetOTAUpdateInput struct {
39189	_ struct{} `type:"structure"`
39190
39191	// The OTA update ID.
39192	//
39193	// OtaUpdateId is a required field
39194	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
39195}
39196
39197// String returns the string representation
39198func (s GetOTAUpdateInput) String() string {
39199	return awsutil.Prettify(s)
39200}
39201
39202// GoString returns the string representation
39203func (s GetOTAUpdateInput) GoString() string {
39204	return s.String()
39205}
39206
39207// Validate inspects the fields of the type to determine if they are valid.
39208func (s *GetOTAUpdateInput) Validate() error {
39209	invalidParams := request.ErrInvalidParams{Context: "GetOTAUpdateInput"}
39210	if s.OtaUpdateId == nil {
39211		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
39212	}
39213	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
39214		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
39215	}
39216
39217	if invalidParams.Len() > 0 {
39218		return invalidParams
39219	}
39220	return nil
39221}
39222
39223// SetOtaUpdateId sets the OtaUpdateId field's value.
39224func (s *GetOTAUpdateInput) SetOtaUpdateId(v string) *GetOTAUpdateInput {
39225	s.OtaUpdateId = &v
39226	return s
39227}
39228
39229type GetOTAUpdateOutput struct {
39230	_ struct{} `type:"structure"`
39231
39232	// The OTA update info.
39233	OtaUpdateInfo *OTAUpdateInfo `locationName:"otaUpdateInfo" type:"structure"`
39234}
39235
39236// String returns the string representation
39237func (s GetOTAUpdateOutput) String() string {
39238	return awsutil.Prettify(s)
39239}
39240
39241// GoString returns the string representation
39242func (s GetOTAUpdateOutput) GoString() string {
39243	return s.String()
39244}
39245
39246// SetOtaUpdateInfo sets the OtaUpdateInfo field's value.
39247func (s *GetOTAUpdateOutput) SetOtaUpdateInfo(v *OTAUpdateInfo) *GetOTAUpdateOutput {
39248	s.OtaUpdateInfo = v
39249	return s
39250}
39251
39252type GetPercentilesInput struct {
39253	_ struct{} `type:"structure"`
39254
39255	// The field to aggregate.
39256	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
39257
39258	// The name of the index to search.
39259	IndexName *string `locationName:"indexName" min:"1" type:"string"`
39260
39261	// The percentile groups returned.
39262	Percents []*float64 `locationName:"percents" type:"list"`
39263
39264	// The query string.
39265	//
39266	// QueryString is a required field
39267	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
39268
39269	// The query version.
39270	QueryVersion *string `locationName:"queryVersion" type:"string"`
39271}
39272
39273// String returns the string representation
39274func (s GetPercentilesInput) String() string {
39275	return awsutil.Prettify(s)
39276}
39277
39278// GoString returns the string representation
39279func (s GetPercentilesInput) GoString() string {
39280	return s.String()
39281}
39282
39283// Validate inspects the fields of the type to determine if they are valid.
39284func (s *GetPercentilesInput) Validate() error {
39285	invalidParams := request.ErrInvalidParams{Context: "GetPercentilesInput"}
39286	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
39287		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
39288	}
39289	if s.IndexName != nil && len(*s.IndexName) < 1 {
39290		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
39291	}
39292	if s.QueryString == nil {
39293		invalidParams.Add(request.NewErrParamRequired("QueryString"))
39294	}
39295	if s.QueryString != nil && len(*s.QueryString) < 1 {
39296		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
39297	}
39298
39299	if invalidParams.Len() > 0 {
39300		return invalidParams
39301	}
39302	return nil
39303}
39304
39305// SetAggregationField sets the AggregationField field's value.
39306func (s *GetPercentilesInput) SetAggregationField(v string) *GetPercentilesInput {
39307	s.AggregationField = &v
39308	return s
39309}
39310
39311// SetIndexName sets the IndexName field's value.
39312func (s *GetPercentilesInput) SetIndexName(v string) *GetPercentilesInput {
39313	s.IndexName = &v
39314	return s
39315}
39316
39317// SetPercents sets the Percents field's value.
39318func (s *GetPercentilesInput) SetPercents(v []*float64) *GetPercentilesInput {
39319	s.Percents = v
39320	return s
39321}
39322
39323// SetQueryString sets the QueryString field's value.
39324func (s *GetPercentilesInput) SetQueryString(v string) *GetPercentilesInput {
39325	s.QueryString = &v
39326	return s
39327}
39328
39329// SetQueryVersion sets the QueryVersion field's value.
39330func (s *GetPercentilesInput) SetQueryVersion(v string) *GetPercentilesInput {
39331	s.QueryVersion = &v
39332	return s
39333}
39334
39335type GetPercentilesOutput struct {
39336	_ struct{} `type:"structure"`
39337
39338	// The percentile values of the aggregated fields.
39339	Percentiles []*PercentPair `locationName:"percentiles" type:"list"`
39340}
39341
39342// String returns the string representation
39343func (s GetPercentilesOutput) String() string {
39344	return awsutil.Prettify(s)
39345}
39346
39347// GoString returns the string representation
39348func (s GetPercentilesOutput) GoString() string {
39349	return s.String()
39350}
39351
39352// SetPercentiles sets the Percentiles field's value.
39353func (s *GetPercentilesOutput) SetPercentiles(v []*PercentPair) *GetPercentilesOutput {
39354	s.Percentiles = v
39355	return s
39356}
39357
39358// The input for the GetPolicy operation.
39359type GetPolicyInput struct {
39360	_ struct{} `type:"structure"`
39361
39362	// The name of the policy.
39363	//
39364	// PolicyName is a required field
39365	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
39366}
39367
39368// String returns the string representation
39369func (s GetPolicyInput) String() string {
39370	return awsutil.Prettify(s)
39371}
39372
39373// GoString returns the string representation
39374func (s GetPolicyInput) GoString() string {
39375	return s.String()
39376}
39377
39378// Validate inspects the fields of the type to determine if they are valid.
39379func (s *GetPolicyInput) Validate() error {
39380	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
39381	if s.PolicyName == nil {
39382		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
39383	}
39384	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
39385		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
39386	}
39387
39388	if invalidParams.Len() > 0 {
39389		return invalidParams
39390	}
39391	return nil
39392}
39393
39394// SetPolicyName sets the PolicyName field's value.
39395func (s *GetPolicyInput) SetPolicyName(v string) *GetPolicyInput {
39396	s.PolicyName = &v
39397	return s
39398}
39399
39400// The output from the GetPolicy operation.
39401type GetPolicyOutput struct {
39402	_ struct{} `type:"structure"`
39403
39404	// The date the policy was created.
39405	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
39406
39407	// The default policy version ID.
39408	DefaultVersionId *string `locationName:"defaultVersionId" type:"string"`
39409
39410	// The generation ID of the policy.
39411	GenerationId *string `locationName:"generationId" type:"string"`
39412
39413	// The date the policy was last modified.
39414	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
39415
39416	// The policy ARN.
39417	PolicyArn *string `locationName:"policyArn" type:"string"`
39418
39419	// The JSON document that describes the policy.
39420	PolicyDocument *string `locationName:"policyDocument" type:"string"`
39421
39422	// The policy name.
39423	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
39424}
39425
39426// String returns the string representation
39427func (s GetPolicyOutput) String() string {
39428	return awsutil.Prettify(s)
39429}
39430
39431// GoString returns the string representation
39432func (s GetPolicyOutput) GoString() string {
39433	return s.String()
39434}
39435
39436// SetCreationDate sets the CreationDate field's value.
39437func (s *GetPolicyOutput) SetCreationDate(v time.Time) *GetPolicyOutput {
39438	s.CreationDate = &v
39439	return s
39440}
39441
39442// SetDefaultVersionId sets the DefaultVersionId field's value.
39443func (s *GetPolicyOutput) SetDefaultVersionId(v string) *GetPolicyOutput {
39444	s.DefaultVersionId = &v
39445	return s
39446}
39447
39448// SetGenerationId sets the GenerationId field's value.
39449func (s *GetPolicyOutput) SetGenerationId(v string) *GetPolicyOutput {
39450	s.GenerationId = &v
39451	return s
39452}
39453
39454// SetLastModifiedDate sets the LastModifiedDate field's value.
39455func (s *GetPolicyOutput) SetLastModifiedDate(v time.Time) *GetPolicyOutput {
39456	s.LastModifiedDate = &v
39457	return s
39458}
39459
39460// SetPolicyArn sets the PolicyArn field's value.
39461func (s *GetPolicyOutput) SetPolicyArn(v string) *GetPolicyOutput {
39462	s.PolicyArn = &v
39463	return s
39464}
39465
39466// SetPolicyDocument sets the PolicyDocument field's value.
39467func (s *GetPolicyOutput) SetPolicyDocument(v string) *GetPolicyOutput {
39468	s.PolicyDocument = &v
39469	return s
39470}
39471
39472// SetPolicyName sets the PolicyName field's value.
39473func (s *GetPolicyOutput) SetPolicyName(v string) *GetPolicyOutput {
39474	s.PolicyName = &v
39475	return s
39476}
39477
39478// The input for the GetPolicyVersion operation.
39479type GetPolicyVersionInput struct {
39480	_ struct{} `type:"structure"`
39481
39482	// The name of the policy.
39483	//
39484	// PolicyName is a required field
39485	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
39486
39487	// The policy version ID.
39488	//
39489	// PolicyVersionId is a required field
39490	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
39491}
39492
39493// String returns the string representation
39494func (s GetPolicyVersionInput) String() string {
39495	return awsutil.Prettify(s)
39496}
39497
39498// GoString returns the string representation
39499func (s GetPolicyVersionInput) GoString() string {
39500	return s.String()
39501}
39502
39503// Validate inspects the fields of the type to determine if they are valid.
39504func (s *GetPolicyVersionInput) Validate() error {
39505	invalidParams := request.ErrInvalidParams{Context: "GetPolicyVersionInput"}
39506	if s.PolicyName == nil {
39507		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
39508	}
39509	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
39510		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
39511	}
39512	if s.PolicyVersionId == nil {
39513		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
39514	}
39515	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
39516		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
39517	}
39518
39519	if invalidParams.Len() > 0 {
39520		return invalidParams
39521	}
39522	return nil
39523}
39524
39525// SetPolicyName sets the PolicyName field's value.
39526func (s *GetPolicyVersionInput) SetPolicyName(v string) *GetPolicyVersionInput {
39527	s.PolicyName = &v
39528	return s
39529}
39530
39531// SetPolicyVersionId sets the PolicyVersionId field's value.
39532func (s *GetPolicyVersionInput) SetPolicyVersionId(v string) *GetPolicyVersionInput {
39533	s.PolicyVersionId = &v
39534	return s
39535}
39536
39537// The output from the GetPolicyVersion operation.
39538type GetPolicyVersionOutput struct {
39539	_ struct{} `type:"structure"`
39540
39541	// The date the policy was created.
39542	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
39543
39544	// The generation ID of the policy version.
39545	GenerationId *string `locationName:"generationId" type:"string"`
39546
39547	// Specifies whether the policy version is the default.
39548	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
39549
39550	// The date the policy was last modified.
39551	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
39552
39553	// The policy ARN.
39554	PolicyArn *string `locationName:"policyArn" type:"string"`
39555
39556	// The JSON document that describes the policy.
39557	PolicyDocument *string `locationName:"policyDocument" type:"string"`
39558
39559	// The policy name.
39560	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
39561
39562	// The policy version ID.
39563	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
39564}
39565
39566// String returns the string representation
39567func (s GetPolicyVersionOutput) String() string {
39568	return awsutil.Prettify(s)
39569}
39570
39571// GoString returns the string representation
39572func (s GetPolicyVersionOutput) GoString() string {
39573	return s.String()
39574}
39575
39576// SetCreationDate sets the CreationDate field's value.
39577func (s *GetPolicyVersionOutput) SetCreationDate(v time.Time) *GetPolicyVersionOutput {
39578	s.CreationDate = &v
39579	return s
39580}
39581
39582// SetGenerationId sets the GenerationId field's value.
39583func (s *GetPolicyVersionOutput) SetGenerationId(v string) *GetPolicyVersionOutput {
39584	s.GenerationId = &v
39585	return s
39586}
39587
39588// SetIsDefaultVersion sets the IsDefaultVersion field's value.
39589func (s *GetPolicyVersionOutput) SetIsDefaultVersion(v bool) *GetPolicyVersionOutput {
39590	s.IsDefaultVersion = &v
39591	return s
39592}
39593
39594// SetLastModifiedDate sets the LastModifiedDate field's value.
39595func (s *GetPolicyVersionOutput) SetLastModifiedDate(v time.Time) *GetPolicyVersionOutput {
39596	s.LastModifiedDate = &v
39597	return s
39598}
39599
39600// SetPolicyArn sets the PolicyArn field's value.
39601func (s *GetPolicyVersionOutput) SetPolicyArn(v string) *GetPolicyVersionOutput {
39602	s.PolicyArn = &v
39603	return s
39604}
39605
39606// SetPolicyDocument sets the PolicyDocument field's value.
39607func (s *GetPolicyVersionOutput) SetPolicyDocument(v string) *GetPolicyVersionOutput {
39608	s.PolicyDocument = &v
39609	return s
39610}
39611
39612// SetPolicyName sets the PolicyName field's value.
39613func (s *GetPolicyVersionOutput) SetPolicyName(v string) *GetPolicyVersionOutput {
39614	s.PolicyName = &v
39615	return s
39616}
39617
39618// SetPolicyVersionId sets the PolicyVersionId field's value.
39619func (s *GetPolicyVersionOutput) SetPolicyVersionId(v string) *GetPolicyVersionOutput {
39620	s.PolicyVersionId = &v
39621	return s
39622}
39623
39624// The input to the GetRegistrationCode operation.
39625type GetRegistrationCodeInput struct {
39626	_ struct{} `type:"structure"`
39627}
39628
39629// String returns the string representation
39630func (s GetRegistrationCodeInput) String() string {
39631	return awsutil.Prettify(s)
39632}
39633
39634// GoString returns the string representation
39635func (s GetRegistrationCodeInput) GoString() string {
39636	return s.String()
39637}
39638
39639// The output from the GetRegistrationCode operation.
39640type GetRegistrationCodeOutput struct {
39641	_ struct{} `type:"structure"`
39642
39643	// The CA certificate registration code.
39644	RegistrationCode *string `locationName:"registrationCode" min:"64" type:"string"`
39645}
39646
39647// String returns the string representation
39648func (s GetRegistrationCodeOutput) String() string {
39649	return awsutil.Prettify(s)
39650}
39651
39652// GoString returns the string representation
39653func (s GetRegistrationCodeOutput) GoString() string {
39654	return s.String()
39655}
39656
39657// SetRegistrationCode sets the RegistrationCode field's value.
39658func (s *GetRegistrationCodeOutput) SetRegistrationCode(v string) *GetRegistrationCodeOutput {
39659	s.RegistrationCode = &v
39660	return s
39661}
39662
39663type GetStatisticsInput struct {
39664	_ struct{} `type:"structure"`
39665
39666	// The aggregation field name.
39667	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
39668
39669	// The name of the index to search. The default value is AWS_Things.
39670	IndexName *string `locationName:"indexName" min:"1" type:"string"`
39671
39672	// The query used to search. You can specify "*" for the query string to get
39673	// the count of all indexed things in your AWS account.
39674	//
39675	// QueryString is a required field
39676	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
39677
39678	// The version of the query used to search.
39679	QueryVersion *string `locationName:"queryVersion" type:"string"`
39680}
39681
39682// String returns the string representation
39683func (s GetStatisticsInput) String() string {
39684	return awsutil.Prettify(s)
39685}
39686
39687// GoString returns the string representation
39688func (s GetStatisticsInput) GoString() string {
39689	return s.String()
39690}
39691
39692// Validate inspects the fields of the type to determine if they are valid.
39693func (s *GetStatisticsInput) Validate() error {
39694	invalidParams := request.ErrInvalidParams{Context: "GetStatisticsInput"}
39695	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
39696		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
39697	}
39698	if s.IndexName != nil && len(*s.IndexName) < 1 {
39699		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
39700	}
39701	if s.QueryString == nil {
39702		invalidParams.Add(request.NewErrParamRequired("QueryString"))
39703	}
39704	if s.QueryString != nil && len(*s.QueryString) < 1 {
39705		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
39706	}
39707
39708	if invalidParams.Len() > 0 {
39709		return invalidParams
39710	}
39711	return nil
39712}
39713
39714// SetAggregationField sets the AggregationField field's value.
39715func (s *GetStatisticsInput) SetAggregationField(v string) *GetStatisticsInput {
39716	s.AggregationField = &v
39717	return s
39718}
39719
39720// SetIndexName sets the IndexName field's value.
39721func (s *GetStatisticsInput) SetIndexName(v string) *GetStatisticsInput {
39722	s.IndexName = &v
39723	return s
39724}
39725
39726// SetQueryString sets the QueryString field's value.
39727func (s *GetStatisticsInput) SetQueryString(v string) *GetStatisticsInput {
39728	s.QueryString = &v
39729	return s
39730}
39731
39732// SetQueryVersion sets the QueryVersion field's value.
39733func (s *GetStatisticsInput) SetQueryVersion(v string) *GetStatisticsInput {
39734	s.QueryVersion = &v
39735	return s
39736}
39737
39738type GetStatisticsOutput struct {
39739	_ struct{} `type:"structure"`
39740
39741	// The statistics returned by the Fleet Indexing service based on the query
39742	// and aggregation field.
39743	Statistics *Statistics `locationName:"statistics" type:"structure"`
39744}
39745
39746// String returns the string representation
39747func (s GetStatisticsOutput) String() string {
39748	return awsutil.Prettify(s)
39749}
39750
39751// GoString returns the string representation
39752func (s GetStatisticsOutput) GoString() string {
39753	return s.String()
39754}
39755
39756// SetStatistics sets the Statistics field's value.
39757func (s *GetStatisticsOutput) SetStatistics(v *Statistics) *GetStatisticsOutput {
39758	s.Statistics = v
39759	return s
39760}
39761
39762type GetTopicRuleDestinationInput struct {
39763	_ struct{} `type:"structure"`
39764
39765	// The ARN of the topic rule destination.
39766	//
39767	// Arn is a required field
39768	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
39769}
39770
39771// String returns the string representation
39772func (s GetTopicRuleDestinationInput) String() string {
39773	return awsutil.Prettify(s)
39774}
39775
39776// GoString returns the string representation
39777func (s GetTopicRuleDestinationInput) GoString() string {
39778	return s.String()
39779}
39780
39781// Validate inspects the fields of the type to determine if they are valid.
39782func (s *GetTopicRuleDestinationInput) Validate() error {
39783	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleDestinationInput"}
39784	if s.Arn == nil {
39785		invalidParams.Add(request.NewErrParamRequired("Arn"))
39786	}
39787	if s.Arn != nil && len(*s.Arn) < 1 {
39788		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
39789	}
39790
39791	if invalidParams.Len() > 0 {
39792		return invalidParams
39793	}
39794	return nil
39795}
39796
39797// SetArn sets the Arn field's value.
39798func (s *GetTopicRuleDestinationInput) SetArn(v string) *GetTopicRuleDestinationInput {
39799	s.Arn = &v
39800	return s
39801}
39802
39803type GetTopicRuleDestinationOutput struct {
39804	_ struct{} `type:"structure"`
39805
39806	// The topic rule destination.
39807	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
39808}
39809
39810// String returns the string representation
39811func (s GetTopicRuleDestinationOutput) String() string {
39812	return awsutil.Prettify(s)
39813}
39814
39815// GoString returns the string representation
39816func (s GetTopicRuleDestinationOutput) GoString() string {
39817	return s.String()
39818}
39819
39820// SetTopicRuleDestination sets the TopicRuleDestination field's value.
39821func (s *GetTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *GetTopicRuleDestinationOutput {
39822	s.TopicRuleDestination = v
39823	return s
39824}
39825
39826// The input for the GetTopicRule operation.
39827type GetTopicRuleInput struct {
39828	_ struct{} `type:"structure"`
39829
39830	// The name of the rule.
39831	//
39832	// RuleName is a required field
39833	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
39834}
39835
39836// String returns the string representation
39837func (s GetTopicRuleInput) String() string {
39838	return awsutil.Prettify(s)
39839}
39840
39841// GoString returns the string representation
39842func (s GetTopicRuleInput) GoString() string {
39843	return s.String()
39844}
39845
39846// Validate inspects the fields of the type to determine if they are valid.
39847func (s *GetTopicRuleInput) Validate() error {
39848	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleInput"}
39849	if s.RuleName == nil {
39850		invalidParams.Add(request.NewErrParamRequired("RuleName"))
39851	}
39852	if s.RuleName != nil && len(*s.RuleName) < 1 {
39853		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
39854	}
39855
39856	if invalidParams.Len() > 0 {
39857		return invalidParams
39858	}
39859	return nil
39860}
39861
39862// SetRuleName sets the RuleName field's value.
39863func (s *GetTopicRuleInput) SetRuleName(v string) *GetTopicRuleInput {
39864	s.RuleName = &v
39865	return s
39866}
39867
39868// The output from the GetTopicRule operation.
39869type GetTopicRuleOutput struct {
39870	_ struct{} `type:"structure"`
39871
39872	// The rule.
39873	Rule *TopicRule `locationName:"rule" type:"structure"`
39874
39875	// The rule ARN.
39876	RuleArn *string `locationName:"ruleArn" type:"string"`
39877}
39878
39879// String returns the string representation
39880func (s GetTopicRuleOutput) String() string {
39881	return awsutil.Prettify(s)
39882}
39883
39884// GoString returns the string representation
39885func (s GetTopicRuleOutput) GoString() string {
39886	return s.String()
39887}
39888
39889// SetRule sets the Rule field's value.
39890func (s *GetTopicRuleOutput) SetRule(v *TopicRule) *GetTopicRuleOutput {
39891	s.Rule = v
39892	return s
39893}
39894
39895// SetRuleArn sets the RuleArn field's value.
39896func (s *GetTopicRuleOutput) SetRuleArn(v string) *GetTopicRuleOutput {
39897	s.RuleArn = &v
39898	return s
39899}
39900
39901type GetV2LoggingOptionsInput struct {
39902	_ struct{} `type:"structure"`
39903}
39904
39905// String returns the string representation
39906func (s GetV2LoggingOptionsInput) String() string {
39907	return awsutil.Prettify(s)
39908}
39909
39910// GoString returns the string representation
39911func (s GetV2LoggingOptionsInput) GoString() string {
39912	return s.String()
39913}
39914
39915type GetV2LoggingOptionsOutput struct {
39916	_ struct{} `type:"structure"`
39917
39918	// The default log level.
39919	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
39920
39921	// Disables all logs.
39922	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
39923
39924	// The IAM role ARN AWS IoT uses to write to your CloudWatch logs.
39925	RoleArn *string `locationName:"roleArn" type:"string"`
39926}
39927
39928// String returns the string representation
39929func (s GetV2LoggingOptionsOutput) String() string {
39930	return awsutil.Prettify(s)
39931}
39932
39933// GoString returns the string representation
39934func (s GetV2LoggingOptionsOutput) GoString() string {
39935	return s.String()
39936}
39937
39938// SetDefaultLogLevel sets the DefaultLogLevel field's value.
39939func (s *GetV2LoggingOptionsOutput) SetDefaultLogLevel(v string) *GetV2LoggingOptionsOutput {
39940	s.DefaultLogLevel = &v
39941	return s
39942}
39943
39944// SetDisableAllLogs sets the DisableAllLogs field's value.
39945func (s *GetV2LoggingOptionsOutput) SetDisableAllLogs(v bool) *GetV2LoggingOptionsOutput {
39946	s.DisableAllLogs = &v
39947	return s
39948}
39949
39950// SetRoleArn sets the RoleArn field's value.
39951func (s *GetV2LoggingOptionsOutput) SetRoleArn(v string) *GetV2LoggingOptionsOutput {
39952	s.RoleArn = &v
39953	return s
39954}
39955
39956// The name and ARN of a group.
39957type GroupNameAndArn struct {
39958	_ struct{} `type:"structure"`
39959
39960	// The group ARN.
39961	GroupArn *string `locationName:"groupArn" type:"string"`
39962
39963	// The group name.
39964	GroupName *string `locationName:"groupName" min:"1" type:"string"`
39965}
39966
39967// String returns the string representation
39968func (s GroupNameAndArn) String() string {
39969	return awsutil.Prettify(s)
39970}
39971
39972// GoString returns the string representation
39973func (s GroupNameAndArn) GoString() string {
39974	return s.String()
39975}
39976
39977// SetGroupArn sets the GroupArn field's value.
39978func (s *GroupNameAndArn) SetGroupArn(v string) *GroupNameAndArn {
39979	s.GroupArn = &v
39980	return s
39981}
39982
39983// SetGroupName sets the GroupName field's value.
39984func (s *GroupNameAndArn) SetGroupName(v string) *GroupNameAndArn {
39985	s.GroupName = &v
39986	return s
39987}
39988
39989// Send data to an HTTPS endpoint.
39990type HttpAction struct {
39991	_ struct{} `type:"structure"`
39992
39993	// The authentication method to use when sending data to an HTTPS endpoint.
39994	Auth *HttpAuthorization `locationName:"auth" type:"structure"`
39995
39996	// The URL to which AWS IoT sends a confirmation message. The value of the confirmation
39997	// URL must be a prefix of the endpoint URL. If you do not specify a confirmation
39998	// URL AWS IoT uses the endpoint URL as the confirmation URL. If you use substitution
39999	// templates in the confirmationUrl, you must create and enable topic rule destinations
40000	// that match each possible value of the substitution template before traffic
40001	// is allowed to your endpoint URL.
40002	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
40003
40004	// The HTTP headers to send with the message data.
40005	Headers []*HttpActionHeader `locationName:"headers" type:"list"`
40006
40007	// The endpoint URL. If substitution templates are used in the URL, you must
40008	// also specify a confirmationUrl. If this is a new destination, a new TopicRuleDestination
40009	// is created if possible.
40010	//
40011	// Url is a required field
40012	Url *string `locationName:"url" type:"string" required:"true"`
40013}
40014
40015// String returns the string representation
40016func (s HttpAction) String() string {
40017	return awsutil.Prettify(s)
40018}
40019
40020// GoString returns the string representation
40021func (s HttpAction) GoString() string {
40022	return s.String()
40023}
40024
40025// Validate inspects the fields of the type to determine if they are valid.
40026func (s *HttpAction) Validate() error {
40027	invalidParams := request.ErrInvalidParams{Context: "HttpAction"}
40028	if s.Url == nil {
40029		invalidParams.Add(request.NewErrParamRequired("Url"))
40030	}
40031	if s.Auth != nil {
40032		if err := s.Auth.Validate(); err != nil {
40033			invalidParams.AddNested("Auth", err.(request.ErrInvalidParams))
40034		}
40035	}
40036	if s.Headers != nil {
40037		for i, v := range s.Headers {
40038			if v == nil {
40039				continue
40040			}
40041			if err := v.Validate(); err != nil {
40042				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Headers", i), err.(request.ErrInvalidParams))
40043			}
40044		}
40045	}
40046
40047	if invalidParams.Len() > 0 {
40048		return invalidParams
40049	}
40050	return nil
40051}
40052
40053// SetAuth sets the Auth field's value.
40054func (s *HttpAction) SetAuth(v *HttpAuthorization) *HttpAction {
40055	s.Auth = v
40056	return s
40057}
40058
40059// SetConfirmationUrl sets the ConfirmationUrl field's value.
40060func (s *HttpAction) SetConfirmationUrl(v string) *HttpAction {
40061	s.ConfirmationUrl = &v
40062	return s
40063}
40064
40065// SetHeaders sets the Headers field's value.
40066func (s *HttpAction) SetHeaders(v []*HttpActionHeader) *HttpAction {
40067	s.Headers = v
40068	return s
40069}
40070
40071// SetUrl sets the Url field's value.
40072func (s *HttpAction) SetUrl(v string) *HttpAction {
40073	s.Url = &v
40074	return s
40075}
40076
40077// The HTTP action header.
40078type HttpActionHeader struct {
40079	_ struct{} `type:"structure"`
40080
40081	// The HTTP header key.
40082	//
40083	// Key is a required field
40084	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
40085
40086	// The HTTP header value. Substitution templates are supported.
40087	//
40088	// Value is a required field
40089	Value *string `locationName:"value" type:"string" required:"true"`
40090}
40091
40092// String returns the string representation
40093func (s HttpActionHeader) String() string {
40094	return awsutil.Prettify(s)
40095}
40096
40097// GoString returns the string representation
40098func (s HttpActionHeader) GoString() string {
40099	return s.String()
40100}
40101
40102// Validate inspects the fields of the type to determine if they are valid.
40103func (s *HttpActionHeader) Validate() error {
40104	invalidParams := request.ErrInvalidParams{Context: "HttpActionHeader"}
40105	if s.Key == nil {
40106		invalidParams.Add(request.NewErrParamRequired("Key"))
40107	}
40108	if s.Key != nil && len(*s.Key) < 1 {
40109		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
40110	}
40111	if s.Value == nil {
40112		invalidParams.Add(request.NewErrParamRequired("Value"))
40113	}
40114
40115	if invalidParams.Len() > 0 {
40116		return invalidParams
40117	}
40118	return nil
40119}
40120
40121// SetKey sets the Key field's value.
40122func (s *HttpActionHeader) SetKey(v string) *HttpActionHeader {
40123	s.Key = &v
40124	return s
40125}
40126
40127// SetValue sets the Value field's value.
40128func (s *HttpActionHeader) SetValue(v string) *HttpActionHeader {
40129	s.Value = &v
40130	return s
40131}
40132
40133// The authorization method used to send messages.
40134type HttpAuthorization struct {
40135	_ struct{} `type:"structure"`
40136
40137	// Use Sig V4 authorization. For more information, see Signature Version 4 Signing
40138	// Process (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
40139	Sigv4 *SigV4Authorization `locationName:"sigv4" type:"structure"`
40140}
40141
40142// String returns the string representation
40143func (s HttpAuthorization) String() string {
40144	return awsutil.Prettify(s)
40145}
40146
40147// GoString returns the string representation
40148func (s HttpAuthorization) GoString() string {
40149	return s.String()
40150}
40151
40152// Validate inspects the fields of the type to determine if they are valid.
40153func (s *HttpAuthorization) Validate() error {
40154	invalidParams := request.ErrInvalidParams{Context: "HttpAuthorization"}
40155	if s.Sigv4 != nil {
40156		if err := s.Sigv4.Validate(); err != nil {
40157			invalidParams.AddNested("Sigv4", err.(request.ErrInvalidParams))
40158		}
40159	}
40160
40161	if invalidParams.Len() > 0 {
40162		return invalidParams
40163	}
40164	return nil
40165}
40166
40167// SetSigv4 sets the Sigv4 field's value.
40168func (s *HttpAuthorization) SetSigv4(v *SigV4Authorization) *HttpAuthorization {
40169	s.Sigv4 = v
40170	return s
40171}
40172
40173// Specifies the HTTP context to use for the test authorizer request.
40174type HttpContext struct {
40175	_ struct{} `type:"structure"`
40176
40177	// The header keys and values in an HTTP authorization request.
40178	Headers map[string]*string `locationName:"headers" type:"map"`
40179
40180	// The query string keys and values in an HTTP authorization request.
40181	QueryString *string `locationName:"queryString" min:"1" type:"string"`
40182}
40183
40184// String returns the string representation
40185func (s HttpContext) String() string {
40186	return awsutil.Prettify(s)
40187}
40188
40189// GoString returns the string representation
40190func (s HttpContext) GoString() string {
40191	return s.String()
40192}
40193
40194// Validate inspects the fields of the type to determine if they are valid.
40195func (s *HttpContext) Validate() error {
40196	invalidParams := request.ErrInvalidParams{Context: "HttpContext"}
40197	if s.QueryString != nil && len(*s.QueryString) < 1 {
40198		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
40199	}
40200
40201	if invalidParams.Len() > 0 {
40202		return invalidParams
40203	}
40204	return nil
40205}
40206
40207// SetHeaders sets the Headers field's value.
40208func (s *HttpContext) SetHeaders(v map[string]*string) *HttpContext {
40209	s.Headers = v
40210	return s
40211}
40212
40213// SetQueryString sets the QueryString field's value.
40214func (s *HttpContext) SetQueryString(v string) *HttpContext {
40215	s.QueryString = &v
40216	return s
40217}
40218
40219// HTTP URL destination configuration used by the topic rule's HTTP action.
40220type HttpUrlDestinationConfiguration struct {
40221	_ struct{} `type:"structure"`
40222
40223	// The URL AWS IoT uses to confirm ownership of or access to the topic rule
40224	// destination URL.
40225	//
40226	// ConfirmationUrl is a required field
40227	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string" required:"true"`
40228}
40229
40230// String returns the string representation
40231func (s HttpUrlDestinationConfiguration) String() string {
40232	return awsutil.Prettify(s)
40233}
40234
40235// GoString returns the string representation
40236func (s HttpUrlDestinationConfiguration) GoString() string {
40237	return s.String()
40238}
40239
40240// Validate inspects the fields of the type to determine if they are valid.
40241func (s *HttpUrlDestinationConfiguration) Validate() error {
40242	invalidParams := request.ErrInvalidParams{Context: "HttpUrlDestinationConfiguration"}
40243	if s.ConfirmationUrl == nil {
40244		invalidParams.Add(request.NewErrParamRequired("ConfirmationUrl"))
40245	}
40246
40247	if invalidParams.Len() > 0 {
40248		return invalidParams
40249	}
40250	return nil
40251}
40252
40253// SetConfirmationUrl sets the ConfirmationUrl field's value.
40254func (s *HttpUrlDestinationConfiguration) SetConfirmationUrl(v string) *HttpUrlDestinationConfiguration {
40255	s.ConfirmationUrl = &v
40256	return s
40257}
40258
40259// HTTP URL destination properties.
40260type HttpUrlDestinationProperties struct {
40261	_ struct{} `type:"structure"`
40262
40263	// The URL used to confirm the HTTP topic rule destination URL.
40264	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
40265}
40266
40267// String returns the string representation
40268func (s HttpUrlDestinationProperties) String() string {
40269	return awsutil.Prettify(s)
40270}
40271
40272// GoString returns the string representation
40273func (s HttpUrlDestinationProperties) GoString() string {
40274	return s.String()
40275}
40276
40277// SetConfirmationUrl sets the ConfirmationUrl field's value.
40278func (s *HttpUrlDestinationProperties) SetConfirmationUrl(v string) *HttpUrlDestinationProperties {
40279	s.ConfirmationUrl = &v
40280	return s
40281}
40282
40283// Information about an HTTP URL destination.
40284type HttpUrlDestinationSummary struct {
40285	_ struct{} `type:"structure"`
40286
40287	// The URL used to confirm ownership of or access to the HTTP topic rule destination
40288	// URL.
40289	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
40290}
40291
40292// String returns the string representation
40293func (s HttpUrlDestinationSummary) String() string {
40294	return awsutil.Prettify(s)
40295}
40296
40297// GoString returns the string representation
40298func (s HttpUrlDestinationSummary) GoString() string {
40299	return s.String()
40300}
40301
40302// SetConfirmationUrl sets the ConfirmationUrl field's value.
40303func (s *HttpUrlDestinationSummary) SetConfirmationUrl(v string) *HttpUrlDestinationSummary {
40304	s.ConfirmationUrl = &v
40305	return s
40306}
40307
40308// Information that implicitly denies authorization. When policy doesn't explicitly
40309// deny or allow an action on a resource it is considered an implicit deny.
40310type ImplicitDeny struct {
40311	_ struct{} `type:"structure"`
40312
40313	// Policies that don't contain a matching allow or deny statement for the specified
40314	// action on the specified resource.
40315	Policies []*Policy `locationName:"policies" type:"list"`
40316}
40317
40318// String returns the string representation
40319func (s ImplicitDeny) String() string {
40320	return awsutil.Prettify(s)
40321}
40322
40323// GoString returns the string representation
40324func (s ImplicitDeny) GoString() string {
40325	return s.String()
40326}
40327
40328// SetPolicies sets the Policies field's value.
40329func (s *ImplicitDeny) SetPolicies(v []*Policy) *ImplicitDeny {
40330	s.Policies = v
40331	return s
40332}
40333
40334// The index is not ready.
40335type IndexNotReadyException struct {
40336	_            struct{}                  `type:"structure"`
40337	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40338
40339	// The message for the exception.
40340	Message_ *string `locationName:"message" type:"string"`
40341}
40342
40343// String returns the string representation
40344func (s IndexNotReadyException) String() string {
40345	return awsutil.Prettify(s)
40346}
40347
40348// GoString returns the string representation
40349func (s IndexNotReadyException) GoString() string {
40350	return s.String()
40351}
40352
40353func newErrorIndexNotReadyException(v protocol.ResponseMetadata) error {
40354	return &IndexNotReadyException{
40355		RespMetadata: v,
40356	}
40357}
40358
40359// Code returns the exception type name.
40360func (s *IndexNotReadyException) Code() string {
40361	return "IndexNotReadyException"
40362}
40363
40364// Message returns the exception's message.
40365func (s *IndexNotReadyException) Message() string {
40366	if s.Message_ != nil {
40367		return *s.Message_
40368	}
40369	return ""
40370}
40371
40372// OrigErr always returns nil, satisfies awserr.Error interface.
40373func (s *IndexNotReadyException) OrigErr() error {
40374	return nil
40375}
40376
40377func (s *IndexNotReadyException) Error() string {
40378	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40379}
40380
40381// Status code returns the HTTP status code for the request's response error.
40382func (s *IndexNotReadyException) StatusCode() int {
40383	return s.RespMetadata.StatusCode
40384}
40385
40386// RequestID returns the service's response RequestID for request.
40387func (s *IndexNotReadyException) RequestID() string {
40388	return s.RespMetadata.RequestID
40389}
40390
40391// An unexpected error has occurred.
40392type InternalException struct {
40393	_            struct{}                  `type:"structure"`
40394	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40395
40396	// The message for the exception.
40397	Message_ *string `locationName:"message" type:"string"`
40398}
40399
40400// String returns the string representation
40401func (s InternalException) String() string {
40402	return awsutil.Prettify(s)
40403}
40404
40405// GoString returns the string representation
40406func (s InternalException) GoString() string {
40407	return s.String()
40408}
40409
40410func newErrorInternalException(v protocol.ResponseMetadata) error {
40411	return &InternalException{
40412		RespMetadata: v,
40413	}
40414}
40415
40416// Code returns the exception type name.
40417func (s *InternalException) Code() string {
40418	return "InternalException"
40419}
40420
40421// Message returns the exception's message.
40422func (s *InternalException) Message() string {
40423	if s.Message_ != nil {
40424		return *s.Message_
40425	}
40426	return ""
40427}
40428
40429// OrigErr always returns nil, satisfies awserr.Error interface.
40430func (s *InternalException) OrigErr() error {
40431	return nil
40432}
40433
40434func (s *InternalException) Error() string {
40435	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40436}
40437
40438// Status code returns the HTTP status code for the request's response error.
40439func (s *InternalException) StatusCode() int {
40440	return s.RespMetadata.StatusCode
40441}
40442
40443// RequestID returns the service's response RequestID for request.
40444func (s *InternalException) RequestID() string {
40445	return s.RespMetadata.RequestID
40446}
40447
40448// An unexpected error has occurred.
40449type InternalFailureException struct {
40450	_            struct{}                  `type:"structure"`
40451	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40452
40453	// The message for the exception.
40454	Message_ *string `locationName:"message" type:"string"`
40455}
40456
40457// String returns the string representation
40458func (s InternalFailureException) String() string {
40459	return awsutil.Prettify(s)
40460}
40461
40462// GoString returns the string representation
40463func (s InternalFailureException) GoString() string {
40464	return s.String()
40465}
40466
40467func newErrorInternalFailureException(v protocol.ResponseMetadata) error {
40468	return &InternalFailureException{
40469		RespMetadata: v,
40470	}
40471}
40472
40473// Code returns the exception type name.
40474func (s *InternalFailureException) Code() string {
40475	return "InternalFailureException"
40476}
40477
40478// Message returns the exception's message.
40479func (s *InternalFailureException) Message() string {
40480	if s.Message_ != nil {
40481		return *s.Message_
40482	}
40483	return ""
40484}
40485
40486// OrigErr always returns nil, satisfies awserr.Error interface.
40487func (s *InternalFailureException) OrigErr() error {
40488	return nil
40489}
40490
40491func (s *InternalFailureException) Error() string {
40492	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40493}
40494
40495// Status code returns the HTTP status code for the request's response error.
40496func (s *InternalFailureException) StatusCode() int {
40497	return s.RespMetadata.StatusCode
40498}
40499
40500// RequestID returns the service's response RequestID for request.
40501func (s *InternalFailureException) RequestID() string {
40502	return s.RespMetadata.RequestID
40503}
40504
40505// The aggregation is invalid.
40506type InvalidAggregationException struct {
40507	_            struct{}                  `type:"structure"`
40508	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40509
40510	Message_ *string `locationName:"message" type:"string"`
40511}
40512
40513// String returns the string representation
40514func (s InvalidAggregationException) String() string {
40515	return awsutil.Prettify(s)
40516}
40517
40518// GoString returns the string representation
40519func (s InvalidAggregationException) GoString() string {
40520	return s.String()
40521}
40522
40523func newErrorInvalidAggregationException(v protocol.ResponseMetadata) error {
40524	return &InvalidAggregationException{
40525		RespMetadata: v,
40526	}
40527}
40528
40529// Code returns the exception type name.
40530func (s *InvalidAggregationException) Code() string {
40531	return "InvalidAggregationException"
40532}
40533
40534// Message returns the exception's message.
40535func (s *InvalidAggregationException) Message() string {
40536	if s.Message_ != nil {
40537		return *s.Message_
40538	}
40539	return ""
40540}
40541
40542// OrigErr always returns nil, satisfies awserr.Error interface.
40543func (s *InvalidAggregationException) OrigErr() error {
40544	return nil
40545}
40546
40547func (s *InvalidAggregationException) Error() string {
40548	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40549}
40550
40551// Status code returns the HTTP status code for the request's response error.
40552func (s *InvalidAggregationException) StatusCode() int {
40553	return s.RespMetadata.StatusCode
40554}
40555
40556// RequestID returns the service's response RequestID for request.
40557func (s *InvalidAggregationException) RequestID() string {
40558	return s.RespMetadata.RequestID
40559}
40560
40561// The query is invalid.
40562type InvalidQueryException struct {
40563	_            struct{}                  `type:"structure"`
40564	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40565
40566	// The message for the exception.
40567	Message_ *string `locationName:"message" type:"string"`
40568}
40569
40570// String returns the string representation
40571func (s InvalidQueryException) String() string {
40572	return awsutil.Prettify(s)
40573}
40574
40575// GoString returns the string representation
40576func (s InvalidQueryException) GoString() string {
40577	return s.String()
40578}
40579
40580func newErrorInvalidQueryException(v protocol.ResponseMetadata) error {
40581	return &InvalidQueryException{
40582		RespMetadata: v,
40583	}
40584}
40585
40586// Code returns the exception type name.
40587func (s *InvalidQueryException) Code() string {
40588	return "InvalidQueryException"
40589}
40590
40591// Message returns the exception's message.
40592func (s *InvalidQueryException) Message() string {
40593	if s.Message_ != nil {
40594		return *s.Message_
40595	}
40596	return ""
40597}
40598
40599// OrigErr always returns nil, satisfies awserr.Error interface.
40600func (s *InvalidQueryException) OrigErr() error {
40601	return nil
40602}
40603
40604func (s *InvalidQueryException) Error() string {
40605	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40606}
40607
40608// Status code returns the HTTP status code for the request's response error.
40609func (s *InvalidQueryException) StatusCode() int {
40610	return s.RespMetadata.StatusCode
40611}
40612
40613// RequestID returns the service's response RequestID for request.
40614func (s *InvalidQueryException) RequestID() string {
40615	return s.RespMetadata.RequestID
40616}
40617
40618// The request is not valid.
40619type InvalidRequestException struct {
40620	_            struct{}                  `type:"structure"`
40621	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40622
40623	// The message for the exception.
40624	Message_ *string `locationName:"message" type:"string"`
40625}
40626
40627// String returns the string representation
40628func (s InvalidRequestException) String() string {
40629	return awsutil.Prettify(s)
40630}
40631
40632// GoString returns the string representation
40633func (s InvalidRequestException) GoString() string {
40634	return s.String()
40635}
40636
40637func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
40638	return &InvalidRequestException{
40639		RespMetadata: v,
40640	}
40641}
40642
40643// Code returns the exception type name.
40644func (s *InvalidRequestException) Code() string {
40645	return "InvalidRequestException"
40646}
40647
40648// Message returns the exception's message.
40649func (s *InvalidRequestException) Message() string {
40650	if s.Message_ != nil {
40651		return *s.Message_
40652	}
40653	return ""
40654}
40655
40656// OrigErr always returns nil, satisfies awserr.Error interface.
40657func (s *InvalidRequestException) OrigErr() error {
40658	return nil
40659}
40660
40661func (s *InvalidRequestException) Error() string {
40662	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40663}
40664
40665// Status code returns the HTTP status code for the request's response error.
40666func (s *InvalidRequestException) StatusCode() int {
40667	return s.RespMetadata.StatusCode
40668}
40669
40670// RequestID returns the service's response RequestID for request.
40671func (s *InvalidRequestException) RequestID() string {
40672	return s.RespMetadata.RequestID
40673}
40674
40675// The response is invalid.
40676type InvalidResponseException struct {
40677	_            struct{}                  `type:"structure"`
40678	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40679
40680	// The message for the exception.
40681	Message_ *string `locationName:"message" type:"string"`
40682}
40683
40684// String returns the string representation
40685func (s InvalidResponseException) String() string {
40686	return awsutil.Prettify(s)
40687}
40688
40689// GoString returns the string representation
40690func (s InvalidResponseException) GoString() string {
40691	return s.String()
40692}
40693
40694func newErrorInvalidResponseException(v protocol.ResponseMetadata) error {
40695	return &InvalidResponseException{
40696		RespMetadata: v,
40697	}
40698}
40699
40700// Code returns the exception type name.
40701func (s *InvalidResponseException) Code() string {
40702	return "InvalidResponseException"
40703}
40704
40705// Message returns the exception's message.
40706func (s *InvalidResponseException) Message() string {
40707	if s.Message_ != nil {
40708		return *s.Message_
40709	}
40710	return ""
40711}
40712
40713// OrigErr always returns nil, satisfies awserr.Error interface.
40714func (s *InvalidResponseException) OrigErr() error {
40715	return nil
40716}
40717
40718func (s *InvalidResponseException) Error() string {
40719	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40720}
40721
40722// Status code returns the HTTP status code for the request's response error.
40723func (s *InvalidResponseException) StatusCode() int {
40724	return s.RespMetadata.StatusCode
40725}
40726
40727// RequestID returns the service's response RequestID for request.
40728func (s *InvalidResponseException) RequestID() string {
40729	return s.RespMetadata.RequestID
40730}
40731
40732// An attempt was made to change to an invalid state, for example by deleting
40733// a job or a job execution which is "IN_PROGRESS" without setting the force
40734// parameter.
40735type InvalidStateTransitionException struct {
40736	_            struct{}                  `type:"structure"`
40737	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40738
40739	// The message for the exception.
40740	Message_ *string `locationName:"message" type:"string"`
40741}
40742
40743// String returns the string representation
40744func (s InvalidStateTransitionException) String() string {
40745	return awsutil.Prettify(s)
40746}
40747
40748// GoString returns the string representation
40749func (s InvalidStateTransitionException) GoString() string {
40750	return s.String()
40751}
40752
40753func newErrorInvalidStateTransitionException(v protocol.ResponseMetadata) error {
40754	return &InvalidStateTransitionException{
40755		RespMetadata: v,
40756	}
40757}
40758
40759// Code returns the exception type name.
40760func (s *InvalidStateTransitionException) Code() string {
40761	return "InvalidStateTransitionException"
40762}
40763
40764// Message returns the exception's message.
40765func (s *InvalidStateTransitionException) Message() string {
40766	if s.Message_ != nil {
40767		return *s.Message_
40768	}
40769	return ""
40770}
40771
40772// OrigErr always returns nil, satisfies awserr.Error interface.
40773func (s *InvalidStateTransitionException) OrigErr() error {
40774	return nil
40775}
40776
40777func (s *InvalidStateTransitionException) Error() string {
40778	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40779}
40780
40781// Status code returns the HTTP status code for the request's response error.
40782func (s *InvalidStateTransitionException) StatusCode() int {
40783	return s.RespMetadata.StatusCode
40784}
40785
40786// RequestID returns the service's response RequestID for request.
40787func (s *InvalidStateTransitionException) RequestID() string {
40788	return s.RespMetadata.RequestID
40789}
40790
40791// Sends message data to an AWS IoT Analytics channel.
40792type IotAnalyticsAction struct {
40793	_ struct{} `type:"structure"`
40794
40795	// Whether to process the action as a batch. The default value is false.
40796	//
40797	// When batchMode is true and the rule SQL statement evaluates to an Array,
40798	// each Array element is delivered as a separate message when passed by BatchPutMessage
40799	// (https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html)
40800	// to the AWS IoT Analytics channel. The resulting array can't have more than
40801	// 100 messages.
40802	BatchMode *bool `locationName:"batchMode" type:"boolean"`
40803
40804	// (deprecated) The ARN of the IoT Analytics channel to which message data will
40805	// be sent.
40806	ChannelArn *string `locationName:"channelArn" type:"string"`
40807
40808	// The name of the IoT Analytics channel to which message data will be sent.
40809	ChannelName *string `locationName:"channelName" type:"string"`
40810
40811	// The ARN of the role which has a policy that grants IoT Analytics permission
40812	// to send message data via IoT Analytics (iotanalytics:BatchPutMessage).
40813	RoleArn *string `locationName:"roleArn" type:"string"`
40814}
40815
40816// String returns the string representation
40817func (s IotAnalyticsAction) String() string {
40818	return awsutil.Prettify(s)
40819}
40820
40821// GoString returns the string representation
40822func (s IotAnalyticsAction) GoString() string {
40823	return s.String()
40824}
40825
40826// SetBatchMode sets the BatchMode field's value.
40827func (s *IotAnalyticsAction) SetBatchMode(v bool) *IotAnalyticsAction {
40828	s.BatchMode = &v
40829	return s
40830}
40831
40832// SetChannelArn sets the ChannelArn field's value.
40833func (s *IotAnalyticsAction) SetChannelArn(v string) *IotAnalyticsAction {
40834	s.ChannelArn = &v
40835	return s
40836}
40837
40838// SetChannelName sets the ChannelName field's value.
40839func (s *IotAnalyticsAction) SetChannelName(v string) *IotAnalyticsAction {
40840	s.ChannelName = &v
40841	return s
40842}
40843
40844// SetRoleArn sets the RoleArn field's value.
40845func (s *IotAnalyticsAction) SetRoleArn(v string) *IotAnalyticsAction {
40846	s.RoleArn = &v
40847	return s
40848}
40849
40850// Sends an input to an AWS IoT Events detector.
40851type IotEventsAction struct {
40852	_ struct{} `type:"structure"`
40853
40854	// Whether to process the event actions as a batch. The default value is false.
40855	//
40856	// When batchMode is true, you can't specify a messageId.
40857	//
40858	// When batchMode is true and the rule SQL statement evaluates to an Array,
40859	// each Array element is treated as a separate message when it's sent to AWS
40860	// IoT Events by calling BatchPutMessage (https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html).
40861	// The resulting array can't have more than 10 messages.
40862	BatchMode *bool `locationName:"batchMode" type:"boolean"`
40863
40864	// The name of the AWS IoT Events input.
40865	//
40866	// InputName is a required field
40867	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
40868
40869	// The ID of the message. The default messageId is a new UUID value.
40870	//
40871	// When batchMode is true, you can't specify a messageId--a new UUID value will
40872	// be assigned.
40873	//
40874	// Assign a value to this property to ensure that only one input (message) with
40875	// a given messageId will be processed by an AWS IoT Events detector.
40876	MessageId *string `locationName:"messageId" type:"string"`
40877
40878	// The ARN of the role that grants AWS IoT permission to send an input to an
40879	// AWS IoT Events detector. ("Action":"iotevents:BatchPutMessage").
40880	//
40881	// RoleArn is a required field
40882	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
40883}
40884
40885// String returns the string representation
40886func (s IotEventsAction) String() string {
40887	return awsutil.Prettify(s)
40888}
40889
40890// GoString returns the string representation
40891func (s IotEventsAction) GoString() string {
40892	return s.String()
40893}
40894
40895// Validate inspects the fields of the type to determine if they are valid.
40896func (s *IotEventsAction) Validate() error {
40897	invalidParams := request.ErrInvalidParams{Context: "IotEventsAction"}
40898	if s.InputName == nil {
40899		invalidParams.Add(request.NewErrParamRequired("InputName"))
40900	}
40901	if s.InputName != nil && len(*s.InputName) < 1 {
40902		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
40903	}
40904	if s.RoleArn == nil {
40905		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
40906	}
40907
40908	if invalidParams.Len() > 0 {
40909		return invalidParams
40910	}
40911	return nil
40912}
40913
40914// SetBatchMode sets the BatchMode field's value.
40915func (s *IotEventsAction) SetBatchMode(v bool) *IotEventsAction {
40916	s.BatchMode = &v
40917	return s
40918}
40919
40920// SetInputName sets the InputName field's value.
40921func (s *IotEventsAction) SetInputName(v string) *IotEventsAction {
40922	s.InputName = &v
40923	return s
40924}
40925
40926// SetMessageId sets the MessageId field's value.
40927func (s *IotEventsAction) SetMessageId(v string) *IotEventsAction {
40928	s.MessageId = &v
40929	return s
40930}
40931
40932// SetRoleArn sets the RoleArn field's value.
40933func (s *IotEventsAction) SetRoleArn(v string) *IotEventsAction {
40934	s.RoleArn = &v
40935	return s
40936}
40937
40938// Describes an action to send data from an MQTT message that triggered the
40939// rule to AWS IoT SiteWise asset properties.
40940type IotSiteWiseAction struct {
40941	_ struct{} `type:"structure"`
40942
40943	// A list of asset property value entries.
40944	//
40945	// PutAssetPropertyValueEntries is a required field
40946	PutAssetPropertyValueEntries []*PutAssetPropertyValueEntry `locationName:"putAssetPropertyValueEntries" min:"1" type:"list" required:"true"`
40947
40948	// The ARN of the role that grants AWS IoT permission to send an asset property
40949	// value to AWS IoTSiteWise. ("Action": "iotsitewise:BatchPutAssetPropertyValue").
40950	// The trust policy can restrict access to specific asset hierarchy paths.
40951	//
40952	// RoleArn is a required field
40953	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
40954}
40955
40956// String returns the string representation
40957func (s IotSiteWiseAction) String() string {
40958	return awsutil.Prettify(s)
40959}
40960
40961// GoString returns the string representation
40962func (s IotSiteWiseAction) GoString() string {
40963	return s.String()
40964}
40965
40966// Validate inspects the fields of the type to determine if they are valid.
40967func (s *IotSiteWiseAction) Validate() error {
40968	invalidParams := request.ErrInvalidParams{Context: "IotSiteWiseAction"}
40969	if s.PutAssetPropertyValueEntries == nil {
40970		invalidParams.Add(request.NewErrParamRequired("PutAssetPropertyValueEntries"))
40971	}
40972	if s.PutAssetPropertyValueEntries != nil && len(s.PutAssetPropertyValueEntries) < 1 {
40973		invalidParams.Add(request.NewErrParamMinLen("PutAssetPropertyValueEntries", 1))
40974	}
40975	if s.RoleArn == nil {
40976		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
40977	}
40978	if s.PutAssetPropertyValueEntries != nil {
40979		for i, v := range s.PutAssetPropertyValueEntries {
40980			if v == nil {
40981				continue
40982			}
40983			if err := v.Validate(); err != nil {
40984				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PutAssetPropertyValueEntries", i), err.(request.ErrInvalidParams))
40985			}
40986		}
40987	}
40988
40989	if invalidParams.Len() > 0 {
40990		return invalidParams
40991	}
40992	return nil
40993}
40994
40995// SetPutAssetPropertyValueEntries sets the PutAssetPropertyValueEntries field's value.
40996func (s *IotSiteWiseAction) SetPutAssetPropertyValueEntries(v []*PutAssetPropertyValueEntry) *IotSiteWiseAction {
40997	s.PutAssetPropertyValueEntries = v
40998	return s
40999}
41000
41001// SetRoleArn sets the RoleArn field's value.
41002func (s *IotSiteWiseAction) SetRoleArn(v string) *IotSiteWiseAction {
41003	s.RoleArn = &v
41004	return s
41005}
41006
41007// The Job object contains details about a job.
41008type Job struct {
41009	_ struct{} `type:"structure"`
41010
41011	// Configuration for criteria to abort the job.
41012	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
41013
41014	// If the job was updated, describes the reason for the update.
41015	Comment *string `locationName:"comment" type:"string"`
41016
41017	// The time, in seconds since the epoch, when the job was completed.
41018	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
41019
41020	// The time, in seconds since the epoch, when the job was created.
41021	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
41022
41023	// A short text description of the job.
41024	Description *string `locationName:"description" type:"string"`
41025
41026	// Will be true if the job was canceled with the optional force parameter set
41027	// to true.
41028	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
41029
41030	// An ARN identifying the job with format "arn:aws:iot:region:account:job/jobId".
41031	JobArn *string `locationName:"jobArn" type:"string"`
41032
41033	// Allows you to create a staged rollout of a job.
41034	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
41035
41036	// The unique identifier you assigned to this job when it was created.
41037	JobId *string `locationName:"jobId" min:"1" type:"string"`
41038
41039	// Details about the job process.
41040	JobProcessDetails *JobProcessDetails `locationName:"jobProcessDetails" type:"structure"`
41041
41042	// The ARN of the job template used to create the job.
41043	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
41044
41045	// The time, in seconds since the epoch, when the job was last updated.
41046	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
41047
41048	// The namespace used to indicate that a job is a customer-managed job.
41049	//
41050	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
41051	// to MQTT topics that contain the value in the following format.
41052	//
41053	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
41054	//
41055	// The namespaceId feature is in public preview.
41056	NamespaceId *string `locationName:"namespaceId" min:"1" type:"string"`
41057
41058	// Configuration for pre-signed S3 URLs.
41059	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
41060
41061	// If the job was updated, provides the reason code for the update.
41062	ReasonCode *string `locationName:"reasonCode" type:"string"`
41063
41064	// The status of the job, one of IN_PROGRESS, CANCELED, DELETION_IN_PROGRESS
41065	// or COMPLETED.
41066	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
41067
41068	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
41069	// after all those things specified as targets have completed the job (SNAPSHOT).
41070	// If continuous, the job may also be run on a thing when a change is detected
41071	// in a target. For example, a job will run on a device when the thing representing
41072	// the device is added to a target group, even after the job was completed by
41073	// all things originally in the group.
41074	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
41075
41076	// A list of IoT things and thing groups to which the job should be sent.
41077	Targets []*string `locationName:"targets" min:"1" type:"list"`
41078
41079	// Specifies the amount of time each device has to finish its execution of the
41080	// job. A timer is started when the job execution status is set to IN_PROGRESS.
41081	// If the job execution status is not set to another terminal state before the
41082	// timer expires, it will be automatically set to TIMED_OUT.
41083	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
41084}
41085
41086// String returns the string representation
41087func (s Job) String() string {
41088	return awsutil.Prettify(s)
41089}
41090
41091// GoString returns the string representation
41092func (s Job) GoString() string {
41093	return s.String()
41094}
41095
41096// SetAbortConfig sets the AbortConfig field's value.
41097func (s *Job) SetAbortConfig(v *AbortConfig) *Job {
41098	s.AbortConfig = v
41099	return s
41100}
41101
41102// SetComment sets the Comment field's value.
41103func (s *Job) SetComment(v string) *Job {
41104	s.Comment = &v
41105	return s
41106}
41107
41108// SetCompletedAt sets the CompletedAt field's value.
41109func (s *Job) SetCompletedAt(v time.Time) *Job {
41110	s.CompletedAt = &v
41111	return s
41112}
41113
41114// SetCreatedAt sets the CreatedAt field's value.
41115func (s *Job) SetCreatedAt(v time.Time) *Job {
41116	s.CreatedAt = &v
41117	return s
41118}
41119
41120// SetDescription sets the Description field's value.
41121func (s *Job) SetDescription(v string) *Job {
41122	s.Description = &v
41123	return s
41124}
41125
41126// SetForceCanceled sets the ForceCanceled field's value.
41127func (s *Job) SetForceCanceled(v bool) *Job {
41128	s.ForceCanceled = &v
41129	return s
41130}
41131
41132// SetJobArn sets the JobArn field's value.
41133func (s *Job) SetJobArn(v string) *Job {
41134	s.JobArn = &v
41135	return s
41136}
41137
41138// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
41139func (s *Job) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *Job {
41140	s.JobExecutionsRolloutConfig = v
41141	return s
41142}
41143
41144// SetJobId sets the JobId field's value.
41145func (s *Job) SetJobId(v string) *Job {
41146	s.JobId = &v
41147	return s
41148}
41149
41150// SetJobProcessDetails sets the JobProcessDetails field's value.
41151func (s *Job) SetJobProcessDetails(v *JobProcessDetails) *Job {
41152	s.JobProcessDetails = v
41153	return s
41154}
41155
41156// SetJobTemplateArn sets the JobTemplateArn field's value.
41157func (s *Job) SetJobTemplateArn(v string) *Job {
41158	s.JobTemplateArn = &v
41159	return s
41160}
41161
41162// SetLastUpdatedAt sets the LastUpdatedAt field's value.
41163func (s *Job) SetLastUpdatedAt(v time.Time) *Job {
41164	s.LastUpdatedAt = &v
41165	return s
41166}
41167
41168// SetNamespaceId sets the NamespaceId field's value.
41169func (s *Job) SetNamespaceId(v string) *Job {
41170	s.NamespaceId = &v
41171	return s
41172}
41173
41174// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
41175func (s *Job) SetPresignedUrlConfig(v *PresignedUrlConfig) *Job {
41176	s.PresignedUrlConfig = v
41177	return s
41178}
41179
41180// SetReasonCode sets the ReasonCode field's value.
41181func (s *Job) SetReasonCode(v string) *Job {
41182	s.ReasonCode = &v
41183	return s
41184}
41185
41186// SetStatus sets the Status field's value.
41187func (s *Job) SetStatus(v string) *Job {
41188	s.Status = &v
41189	return s
41190}
41191
41192// SetTargetSelection sets the TargetSelection field's value.
41193func (s *Job) SetTargetSelection(v string) *Job {
41194	s.TargetSelection = &v
41195	return s
41196}
41197
41198// SetTargets sets the Targets field's value.
41199func (s *Job) SetTargets(v []*string) *Job {
41200	s.Targets = v
41201	return s
41202}
41203
41204// SetTimeoutConfig sets the TimeoutConfig field's value.
41205func (s *Job) SetTimeoutConfig(v *TimeoutConfig) *Job {
41206	s.TimeoutConfig = v
41207	return s
41208}
41209
41210// The job execution object represents the execution of a job on a particular
41211// device.
41212type JobExecution struct {
41213	_ struct{} `type:"structure"`
41214
41215	// The estimated number of seconds that remain before the job execution status
41216	// will be changed to TIMED_OUT. The timeout interval can be anywhere between
41217	// 1 minute and 7 days (1 to 10080 minutes). The actual job execution timeout
41218	// can occur up to 60 seconds later than the estimated duration. This value
41219	// will not be included if the job execution has reached a terminal status.
41220	ApproximateSecondsBeforeTimedOut *int64 `locationName:"approximateSecondsBeforeTimedOut" type:"long"`
41221
41222	// A string (consisting of the digits "0" through "9") which identifies this
41223	// particular job execution on this particular device. It can be used in commands
41224	// which return or update job execution information.
41225	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
41226
41227	// Will be true if the job execution was canceled with the optional force parameter
41228	// set to true.
41229	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
41230
41231	// The unique identifier you assigned to the job when it was created.
41232	JobId *string `locationName:"jobId" min:"1" type:"string"`
41233
41234	// The time, in seconds since the epoch, when the job execution was last updated.
41235	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
41236
41237	// The time, in seconds since the epoch, when the job execution was queued.
41238	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
41239
41240	// The time, in seconds since the epoch, when the job execution started.
41241	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
41242
41243	// The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCEEDED,
41244	// TIMED_OUT, CANCELED, or REJECTED).
41245	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
41246
41247	// A collection of name/value pairs that describe the status of the job execution.
41248	StatusDetails *JobExecutionStatusDetails `locationName:"statusDetails" type:"structure"`
41249
41250	// The ARN of the thing on which the job execution is running.
41251	ThingArn *string `locationName:"thingArn" type:"string"`
41252
41253	// The version of the job execution. Job execution versions are incremented
41254	// each time they are updated by a device.
41255	VersionNumber *int64 `locationName:"versionNumber" type:"long"`
41256}
41257
41258// String returns the string representation
41259func (s JobExecution) String() string {
41260	return awsutil.Prettify(s)
41261}
41262
41263// GoString returns the string representation
41264func (s JobExecution) GoString() string {
41265	return s.String()
41266}
41267
41268// SetApproximateSecondsBeforeTimedOut sets the ApproximateSecondsBeforeTimedOut field's value.
41269func (s *JobExecution) SetApproximateSecondsBeforeTimedOut(v int64) *JobExecution {
41270	s.ApproximateSecondsBeforeTimedOut = &v
41271	return s
41272}
41273
41274// SetExecutionNumber sets the ExecutionNumber field's value.
41275func (s *JobExecution) SetExecutionNumber(v int64) *JobExecution {
41276	s.ExecutionNumber = &v
41277	return s
41278}
41279
41280// SetForceCanceled sets the ForceCanceled field's value.
41281func (s *JobExecution) SetForceCanceled(v bool) *JobExecution {
41282	s.ForceCanceled = &v
41283	return s
41284}
41285
41286// SetJobId sets the JobId field's value.
41287func (s *JobExecution) SetJobId(v string) *JobExecution {
41288	s.JobId = &v
41289	return s
41290}
41291
41292// SetLastUpdatedAt sets the LastUpdatedAt field's value.
41293func (s *JobExecution) SetLastUpdatedAt(v time.Time) *JobExecution {
41294	s.LastUpdatedAt = &v
41295	return s
41296}
41297
41298// SetQueuedAt sets the QueuedAt field's value.
41299func (s *JobExecution) SetQueuedAt(v time.Time) *JobExecution {
41300	s.QueuedAt = &v
41301	return s
41302}
41303
41304// SetStartedAt sets the StartedAt field's value.
41305func (s *JobExecution) SetStartedAt(v time.Time) *JobExecution {
41306	s.StartedAt = &v
41307	return s
41308}
41309
41310// SetStatus sets the Status field's value.
41311func (s *JobExecution) SetStatus(v string) *JobExecution {
41312	s.Status = &v
41313	return s
41314}
41315
41316// SetStatusDetails sets the StatusDetails field's value.
41317func (s *JobExecution) SetStatusDetails(v *JobExecutionStatusDetails) *JobExecution {
41318	s.StatusDetails = v
41319	return s
41320}
41321
41322// SetThingArn sets the ThingArn field's value.
41323func (s *JobExecution) SetThingArn(v string) *JobExecution {
41324	s.ThingArn = &v
41325	return s
41326}
41327
41328// SetVersionNumber sets the VersionNumber field's value.
41329func (s *JobExecution) SetVersionNumber(v int64) *JobExecution {
41330	s.VersionNumber = &v
41331	return s
41332}
41333
41334// Details of the job execution status.
41335type JobExecutionStatusDetails struct {
41336	_ struct{} `type:"structure"`
41337
41338	// The job execution status.
41339	DetailsMap map[string]*string `locationName:"detailsMap" type:"map"`
41340}
41341
41342// String returns the string representation
41343func (s JobExecutionStatusDetails) String() string {
41344	return awsutil.Prettify(s)
41345}
41346
41347// GoString returns the string representation
41348func (s JobExecutionStatusDetails) GoString() string {
41349	return s.String()
41350}
41351
41352// SetDetailsMap sets the DetailsMap field's value.
41353func (s *JobExecutionStatusDetails) SetDetailsMap(v map[string]*string) *JobExecutionStatusDetails {
41354	s.DetailsMap = v
41355	return s
41356}
41357
41358// The job execution summary.
41359type JobExecutionSummary struct {
41360	_ struct{} `type:"structure"`
41361
41362	// A string (consisting of the digits "0" through "9") which identifies this
41363	// particular job execution on this particular device. It can be used later
41364	// in commands which return or update job execution information.
41365	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
41366
41367	// The time, in seconds since the epoch, when the job execution was last updated.
41368	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
41369
41370	// The time, in seconds since the epoch, when the job execution was queued.
41371	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
41372
41373	// The time, in seconds since the epoch, when the job execution started.
41374	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
41375
41376	// The status of the job execution.
41377	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
41378}
41379
41380// String returns the string representation
41381func (s JobExecutionSummary) String() string {
41382	return awsutil.Prettify(s)
41383}
41384
41385// GoString returns the string representation
41386func (s JobExecutionSummary) GoString() string {
41387	return s.String()
41388}
41389
41390// SetExecutionNumber sets the ExecutionNumber field's value.
41391func (s *JobExecutionSummary) SetExecutionNumber(v int64) *JobExecutionSummary {
41392	s.ExecutionNumber = &v
41393	return s
41394}
41395
41396// SetLastUpdatedAt sets the LastUpdatedAt field's value.
41397func (s *JobExecutionSummary) SetLastUpdatedAt(v time.Time) *JobExecutionSummary {
41398	s.LastUpdatedAt = &v
41399	return s
41400}
41401
41402// SetQueuedAt sets the QueuedAt field's value.
41403func (s *JobExecutionSummary) SetQueuedAt(v time.Time) *JobExecutionSummary {
41404	s.QueuedAt = &v
41405	return s
41406}
41407
41408// SetStartedAt sets the StartedAt field's value.
41409func (s *JobExecutionSummary) SetStartedAt(v time.Time) *JobExecutionSummary {
41410	s.StartedAt = &v
41411	return s
41412}
41413
41414// SetStatus sets the Status field's value.
41415func (s *JobExecutionSummary) SetStatus(v string) *JobExecutionSummary {
41416	s.Status = &v
41417	return s
41418}
41419
41420// Contains a summary of information about job executions for a specific job.
41421type JobExecutionSummaryForJob struct {
41422	_ struct{} `type:"structure"`
41423
41424	// Contains a subset of information about a job execution.
41425	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
41426
41427	// The ARN of the thing on which the job execution is running.
41428	ThingArn *string `locationName:"thingArn" type:"string"`
41429}
41430
41431// String returns the string representation
41432func (s JobExecutionSummaryForJob) String() string {
41433	return awsutil.Prettify(s)
41434}
41435
41436// GoString returns the string representation
41437func (s JobExecutionSummaryForJob) GoString() string {
41438	return s.String()
41439}
41440
41441// SetJobExecutionSummary sets the JobExecutionSummary field's value.
41442func (s *JobExecutionSummaryForJob) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForJob {
41443	s.JobExecutionSummary = v
41444	return s
41445}
41446
41447// SetThingArn sets the ThingArn field's value.
41448func (s *JobExecutionSummaryForJob) SetThingArn(v string) *JobExecutionSummaryForJob {
41449	s.ThingArn = &v
41450	return s
41451}
41452
41453// The job execution summary for a thing.
41454type JobExecutionSummaryForThing struct {
41455	_ struct{} `type:"structure"`
41456
41457	// Contains a subset of information about a job execution.
41458	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
41459
41460	// The unique identifier you assigned to this job when it was created.
41461	JobId *string `locationName:"jobId" min:"1" type:"string"`
41462}
41463
41464// String returns the string representation
41465func (s JobExecutionSummaryForThing) String() string {
41466	return awsutil.Prettify(s)
41467}
41468
41469// GoString returns the string representation
41470func (s JobExecutionSummaryForThing) GoString() string {
41471	return s.String()
41472}
41473
41474// SetJobExecutionSummary sets the JobExecutionSummary field's value.
41475func (s *JobExecutionSummaryForThing) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForThing {
41476	s.JobExecutionSummary = v
41477	return s
41478}
41479
41480// SetJobId sets the JobId field's value.
41481func (s *JobExecutionSummaryForThing) SetJobId(v string) *JobExecutionSummaryForThing {
41482	s.JobId = &v
41483	return s
41484}
41485
41486// Allows you to create a staged rollout of a job.
41487type JobExecutionsRolloutConfig struct {
41488	_ struct{} `type:"structure"`
41489
41490	// The rate of increase for a job rollout. This parameter allows you to define
41491	// an exponential rate for a job rollout.
41492	ExponentialRate *ExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
41493
41494	// The maximum number of things that will be notified of a pending job, per
41495	// minute. This parameter allows you to create a staged rollout.
41496	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
41497}
41498
41499// String returns the string representation
41500func (s JobExecutionsRolloutConfig) String() string {
41501	return awsutil.Prettify(s)
41502}
41503
41504// GoString returns the string representation
41505func (s JobExecutionsRolloutConfig) GoString() string {
41506	return s.String()
41507}
41508
41509// Validate inspects the fields of the type to determine if they are valid.
41510func (s *JobExecutionsRolloutConfig) Validate() error {
41511	invalidParams := request.ErrInvalidParams{Context: "JobExecutionsRolloutConfig"}
41512	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
41513		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
41514	}
41515	if s.ExponentialRate != nil {
41516		if err := s.ExponentialRate.Validate(); err != nil {
41517			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
41518		}
41519	}
41520
41521	if invalidParams.Len() > 0 {
41522		return invalidParams
41523	}
41524	return nil
41525}
41526
41527// SetExponentialRate sets the ExponentialRate field's value.
41528func (s *JobExecutionsRolloutConfig) SetExponentialRate(v *ExponentialRolloutRate) *JobExecutionsRolloutConfig {
41529	s.ExponentialRate = v
41530	return s
41531}
41532
41533// SetMaximumPerMinute sets the MaximumPerMinute field's value.
41534func (s *JobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *JobExecutionsRolloutConfig {
41535	s.MaximumPerMinute = &v
41536	return s
41537}
41538
41539// The job process details.
41540type JobProcessDetails struct {
41541	_ struct{} `type:"structure"`
41542
41543	// The number of things that cancelled the job.
41544	NumberOfCanceledThings *int64 `locationName:"numberOfCanceledThings" type:"integer"`
41545
41546	// The number of things that failed executing the job.
41547	NumberOfFailedThings *int64 `locationName:"numberOfFailedThings" type:"integer"`
41548
41549	// The number of things currently executing the job.
41550	NumberOfInProgressThings *int64 `locationName:"numberOfInProgressThings" type:"integer"`
41551
41552	// The number of things that are awaiting execution of the job.
41553	NumberOfQueuedThings *int64 `locationName:"numberOfQueuedThings" type:"integer"`
41554
41555	// The number of things that rejected the job.
41556	NumberOfRejectedThings *int64 `locationName:"numberOfRejectedThings" type:"integer"`
41557
41558	// The number of things that are no longer scheduled to execute the job because
41559	// they have been deleted or have been removed from the group that was a target
41560	// of the job.
41561	NumberOfRemovedThings *int64 `locationName:"numberOfRemovedThings" type:"integer"`
41562
41563	// The number of things which successfully completed the job.
41564	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" type:"integer"`
41565
41566	// The number of things whose job execution status is TIMED_OUT.
41567	NumberOfTimedOutThings *int64 `locationName:"numberOfTimedOutThings" type:"integer"`
41568
41569	// The target devices to which the job execution is being rolled out. This value
41570	// will be null after the job execution has finished rolling out to all the
41571	// target devices.
41572	ProcessingTargets []*string `locationName:"processingTargets" type:"list"`
41573}
41574
41575// String returns the string representation
41576func (s JobProcessDetails) String() string {
41577	return awsutil.Prettify(s)
41578}
41579
41580// GoString returns the string representation
41581func (s JobProcessDetails) GoString() string {
41582	return s.String()
41583}
41584
41585// SetNumberOfCanceledThings sets the NumberOfCanceledThings field's value.
41586func (s *JobProcessDetails) SetNumberOfCanceledThings(v int64) *JobProcessDetails {
41587	s.NumberOfCanceledThings = &v
41588	return s
41589}
41590
41591// SetNumberOfFailedThings sets the NumberOfFailedThings field's value.
41592func (s *JobProcessDetails) SetNumberOfFailedThings(v int64) *JobProcessDetails {
41593	s.NumberOfFailedThings = &v
41594	return s
41595}
41596
41597// SetNumberOfInProgressThings sets the NumberOfInProgressThings field's value.
41598func (s *JobProcessDetails) SetNumberOfInProgressThings(v int64) *JobProcessDetails {
41599	s.NumberOfInProgressThings = &v
41600	return s
41601}
41602
41603// SetNumberOfQueuedThings sets the NumberOfQueuedThings field's value.
41604func (s *JobProcessDetails) SetNumberOfQueuedThings(v int64) *JobProcessDetails {
41605	s.NumberOfQueuedThings = &v
41606	return s
41607}
41608
41609// SetNumberOfRejectedThings sets the NumberOfRejectedThings field's value.
41610func (s *JobProcessDetails) SetNumberOfRejectedThings(v int64) *JobProcessDetails {
41611	s.NumberOfRejectedThings = &v
41612	return s
41613}
41614
41615// SetNumberOfRemovedThings sets the NumberOfRemovedThings field's value.
41616func (s *JobProcessDetails) SetNumberOfRemovedThings(v int64) *JobProcessDetails {
41617	s.NumberOfRemovedThings = &v
41618	return s
41619}
41620
41621// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
41622func (s *JobProcessDetails) SetNumberOfSucceededThings(v int64) *JobProcessDetails {
41623	s.NumberOfSucceededThings = &v
41624	return s
41625}
41626
41627// SetNumberOfTimedOutThings sets the NumberOfTimedOutThings field's value.
41628func (s *JobProcessDetails) SetNumberOfTimedOutThings(v int64) *JobProcessDetails {
41629	s.NumberOfTimedOutThings = &v
41630	return s
41631}
41632
41633// SetProcessingTargets sets the ProcessingTargets field's value.
41634func (s *JobProcessDetails) SetProcessingTargets(v []*string) *JobProcessDetails {
41635	s.ProcessingTargets = v
41636	return s
41637}
41638
41639// The job summary.
41640type JobSummary struct {
41641	_ struct{} `type:"structure"`
41642
41643	// The time, in seconds since the epoch, when the job completed.
41644	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
41645
41646	// The time, in seconds since the epoch, when the job was created.
41647	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
41648
41649	// The job ARN.
41650	JobArn *string `locationName:"jobArn" type:"string"`
41651
41652	// The unique identifier you assigned to this job when it was created.
41653	JobId *string `locationName:"jobId" min:"1" type:"string"`
41654
41655	// The time, in seconds since the epoch, when the job was last updated.
41656	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
41657
41658	// The job summary status.
41659	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
41660
41661	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
41662	// after all those things specified as targets have completed the job (SNAPSHOT).
41663	// If continuous, the job may also be run on a thing when a change is detected
41664	// in a target. For example, a job will run on a thing when the thing is added
41665	// to a target group, even after the job was completed by all things originally
41666	// in the group.
41667	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
41668
41669	// The ID of the thing group.
41670	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
41671}
41672
41673// String returns the string representation
41674func (s JobSummary) String() string {
41675	return awsutil.Prettify(s)
41676}
41677
41678// GoString returns the string representation
41679func (s JobSummary) GoString() string {
41680	return s.String()
41681}
41682
41683// SetCompletedAt sets the CompletedAt field's value.
41684func (s *JobSummary) SetCompletedAt(v time.Time) *JobSummary {
41685	s.CompletedAt = &v
41686	return s
41687}
41688
41689// SetCreatedAt sets the CreatedAt field's value.
41690func (s *JobSummary) SetCreatedAt(v time.Time) *JobSummary {
41691	s.CreatedAt = &v
41692	return s
41693}
41694
41695// SetJobArn sets the JobArn field's value.
41696func (s *JobSummary) SetJobArn(v string) *JobSummary {
41697	s.JobArn = &v
41698	return s
41699}
41700
41701// SetJobId sets the JobId field's value.
41702func (s *JobSummary) SetJobId(v string) *JobSummary {
41703	s.JobId = &v
41704	return s
41705}
41706
41707// SetLastUpdatedAt sets the LastUpdatedAt field's value.
41708func (s *JobSummary) SetLastUpdatedAt(v time.Time) *JobSummary {
41709	s.LastUpdatedAt = &v
41710	return s
41711}
41712
41713// SetStatus sets the Status field's value.
41714func (s *JobSummary) SetStatus(v string) *JobSummary {
41715	s.Status = &v
41716	return s
41717}
41718
41719// SetTargetSelection sets the TargetSelection field's value.
41720func (s *JobSummary) SetTargetSelection(v string) *JobSummary {
41721	s.TargetSelection = &v
41722	return s
41723}
41724
41725// SetThingGroupId sets the ThingGroupId field's value.
41726func (s *JobSummary) SetThingGroupId(v string) *JobSummary {
41727	s.ThingGroupId = &v
41728	return s
41729}
41730
41731// An object that contains information about the job template.
41732type JobTemplateSummary struct {
41733	_ struct{} `type:"structure"`
41734
41735	// The time, in seconds since the epoch, when the job template was created.
41736	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
41737
41738	// A description of the job template.
41739	Description *string `locationName:"description" type:"string"`
41740
41741	// The ARN of the job template.
41742	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
41743
41744	// The unique identifier of the job template.
41745	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
41746}
41747
41748// String returns the string representation
41749func (s JobTemplateSummary) String() string {
41750	return awsutil.Prettify(s)
41751}
41752
41753// GoString returns the string representation
41754func (s JobTemplateSummary) GoString() string {
41755	return s.String()
41756}
41757
41758// SetCreatedAt sets the CreatedAt field's value.
41759func (s *JobTemplateSummary) SetCreatedAt(v time.Time) *JobTemplateSummary {
41760	s.CreatedAt = &v
41761	return s
41762}
41763
41764// SetDescription sets the Description field's value.
41765func (s *JobTemplateSummary) SetDescription(v string) *JobTemplateSummary {
41766	s.Description = &v
41767	return s
41768}
41769
41770// SetJobTemplateArn sets the JobTemplateArn field's value.
41771func (s *JobTemplateSummary) SetJobTemplateArn(v string) *JobTemplateSummary {
41772	s.JobTemplateArn = &v
41773	return s
41774}
41775
41776// SetJobTemplateId sets the JobTemplateId field's value.
41777func (s *JobTemplateSummary) SetJobTemplateId(v string) *JobTemplateSummary {
41778	s.JobTemplateId = &v
41779	return s
41780}
41781
41782// Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK)
41783// or self-managed Apache Kafka cluster.
41784type KafkaAction struct {
41785	_ struct{} `type:"structure"`
41786
41787	// Properties of the Apache Kafka producer client.
41788	//
41789	// ClientProperties is a required field
41790	ClientProperties map[string]*string `locationName:"clientProperties" type:"map" required:"true"`
41791
41792	// The ARN of Kafka action's VPC TopicRuleDestination.
41793	//
41794	// DestinationArn is a required field
41795	DestinationArn *string `locationName:"destinationArn" type:"string" required:"true"`
41796
41797	// The Kafka message key.
41798	Key *string `locationName:"key" type:"string"`
41799
41800	// The Kafka message partition.
41801	Partition *string `locationName:"partition" type:"string"`
41802
41803	// The Kafka topic for messages to be sent to the Kafka broker.
41804	//
41805	// Topic is a required field
41806	Topic *string `locationName:"topic" type:"string" required:"true"`
41807}
41808
41809// String returns the string representation
41810func (s KafkaAction) String() string {
41811	return awsutil.Prettify(s)
41812}
41813
41814// GoString returns the string representation
41815func (s KafkaAction) GoString() string {
41816	return s.String()
41817}
41818
41819// Validate inspects the fields of the type to determine if they are valid.
41820func (s *KafkaAction) Validate() error {
41821	invalidParams := request.ErrInvalidParams{Context: "KafkaAction"}
41822	if s.ClientProperties == nil {
41823		invalidParams.Add(request.NewErrParamRequired("ClientProperties"))
41824	}
41825	if s.DestinationArn == nil {
41826		invalidParams.Add(request.NewErrParamRequired("DestinationArn"))
41827	}
41828	if s.Topic == nil {
41829		invalidParams.Add(request.NewErrParamRequired("Topic"))
41830	}
41831
41832	if invalidParams.Len() > 0 {
41833		return invalidParams
41834	}
41835	return nil
41836}
41837
41838// SetClientProperties sets the ClientProperties field's value.
41839func (s *KafkaAction) SetClientProperties(v map[string]*string) *KafkaAction {
41840	s.ClientProperties = v
41841	return s
41842}
41843
41844// SetDestinationArn sets the DestinationArn field's value.
41845func (s *KafkaAction) SetDestinationArn(v string) *KafkaAction {
41846	s.DestinationArn = &v
41847	return s
41848}
41849
41850// SetKey sets the Key field's value.
41851func (s *KafkaAction) SetKey(v string) *KafkaAction {
41852	s.Key = &v
41853	return s
41854}
41855
41856// SetPartition sets the Partition field's value.
41857func (s *KafkaAction) SetPartition(v string) *KafkaAction {
41858	s.Partition = &v
41859	return s
41860}
41861
41862// SetTopic sets the Topic field's value.
41863func (s *KafkaAction) SetTopic(v string) *KafkaAction {
41864	s.Topic = &v
41865	return s
41866}
41867
41868// Describes a key pair.
41869type KeyPair struct {
41870	_ struct{} `type:"structure"`
41871
41872	// The private key.
41873	PrivateKey *string `min:"1" type:"string" sensitive:"true"`
41874
41875	// The public key.
41876	PublicKey *string `min:"1" type:"string"`
41877}
41878
41879// String returns the string representation
41880func (s KeyPair) String() string {
41881	return awsutil.Prettify(s)
41882}
41883
41884// GoString returns the string representation
41885func (s KeyPair) GoString() string {
41886	return s.String()
41887}
41888
41889// SetPrivateKey sets the PrivateKey field's value.
41890func (s *KeyPair) SetPrivateKey(v string) *KeyPair {
41891	s.PrivateKey = &v
41892	return s
41893}
41894
41895// SetPublicKey sets the PublicKey field's value.
41896func (s *KeyPair) SetPublicKey(v string) *KeyPair {
41897	s.PublicKey = &v
41898	return s
41899}
41900
41901// Describes an action to write data to an Amazon Kinesis stream.
41902type KinesisAction struct {
41903	_ struct{} `type:"structure"`
41904
41905	// The partition key.
41906	PartitionKey *string `locationName:"partitionKey" type:"string"`
41907
41908	// The ARN of the IAM role that grants access to the Amazon Kinesis stream.
41909	//
41910	// RoleArn is a required field
41911	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
41912
41913	// The name of the Amazon Kinesis stream.
41914	//
41915	// StreamName is a required field
41916	StreamName *string `locationName:"streamName" type:"string" required:"true"`
41917}
41918
41919// String returns the string representation
41920func (s KinesisAction) String() string {
41921	return awsutil.Prettify(s)
41922}
41923
41924// GoString returns the string representation
41925func (s KinesisAction) GoString() string {
41926	return s.String()
41927}
41928
41929// Validate inspects the fields of the type to determine if they are valid.
41930func (s *KinesisAction) Validate() error {
41931	invalidParams := request.ErrInvalidParams{Context: "KinesisAction"}
41932	if s.RoleArn == nil {
41933		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
41934	}
41935	if s.StreamName == nil {
41936		invalidParams.Add(request.NewErrParamRequired("StreamName"))
41937	}
41938
41939	if invalidParams.Len() > 0 {
41940		return invalidParams
41941	}
41942	return nil
41943}
41944
41945// SetPartitionKey sets the PartitionKey field's value.
41946func (s *KinesisAction) SetPartitionKey(v string) *KinesisAction {
41947	s.PartitionKey = &v
41948	return s
41949}
41950
41951// SetRoleArn sets the RoleArn field's value.
41952func (s *KinesisAction) SetRoleArn(v string) *KinesisAction {
41953	s.RoleArn = &v
41954	return s
41955}
41956
41957// SetStreamName sets the StreamName field's value.
41958func (s *KinesisAction) SetStreamName(v string) *KinesisAction {
41959	s.StreamName = &v
41960	return s
41961}
41962
41963// Describes an action to invoke a Lambda function.
41964type LambdaAction struct {
41965	_ struct{} `type:"structure"`
41966
41967	// The ARN of the Lambda function.
41968	//
41969	// FunctionArn is a required field
41970	FunctionArn *string `locationName:"functionArn" type:"string" required:"true"`
41971}
41972
41973// String returns the string representation
41974func (s LambdaAction) String() string {
41975	return awsutil.Prettify(s)
41976}
41977
41978// GoString returns the string representation
41979func (s LambdaAction) GoString() string {
41980	return s.String()
41981}
41982
41983// Validate inspects the fields of the type to determine if they are valid.
41984func (s *LambdaAction) Validate() error {
41985	invalidParams := request.ErrInvalidParams{Context: "LambdaAction"}
41986	if s.FunctionArn == nil {
41987		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
41988	}
41989
41990	if invalidParams.Len() > 0 {
41991		return invalidParams
41992	}
41993	return nil
41994}
41995
41996// SetFunctionArn sets the FunctionArn field's value.
41997func (s *LambdaAction) SetFunctionArn(v string) *LambdaAction {
41998	s.FunctionArn = &v
41999	return s
42000}
42001
42002// A limit has been exceeded.
42003type LimitExceededException struct {
42004	_            struct{}                  `type:"structure"`
42005	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
42006
42007	// The message for the exception.
42008	Message_ *string `locationName:"message" type:"string"`
42009}
42010
42011// String returns the string representation
42012func (s LimitExceededException) String() string {
42013	return awsutil.Prettify(s)
42014}
42015
42016// GoString returns the string representation
42017func (s LimitExceededException) GoString() string {
42018	return s.String()
42019}
42020
42021func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
42022	return &LimitExceededException{
42023		RespMetadata: v,
42024	}
42025}
42026
42027// Code returns the exception type name.
42028func (s *LimitExceededException) Code() string {
42029	return "LimitExceededException"
42030}
42031
42032// Message returns the exception's message.
42033func (s *LimitExceededException) Message() string {
42034	if s.Message_ != nil {
42035		return *s.Message_
42036	}
42037	return ""
42038}
42039
42040// OrigErr always returns nil, satisfies awserr.Error interface.
42041func (s *LimitExceededException) OrigErr() error {
42042	return nil
42043}
42044
42045func (s *LimitExceededException) Error() string {
42046	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
42047}
42048
42049// Status code returns the HTTP status code for the request's response error.
42050func (s *LimitExceededException) StatusCode() int {
42051	return s.RespMetadata.StatusCode
42052}
42053
42054// RequestID returns the service's response RequestID for request.
42055func (s *LimitExceededException) RequestID() string {
42056	return s.RespMetadata.RequestID
42057}
42058
42059type ListActiveViolationsInput struct {
42060	_ struct{} `type:"structure"`
42061
42062	// The criteria for a behavior.
42063	BehaviorCriteriaType *string `location:"querystring" locationName:"behaviorCriteriaType" type:"string" enum:"BehaviorCriteriaType"`
42064
42065	// A list of all suppressed alerts.
42066	ListSuppressedAlerts *bool `location:"querystring" locationName:"listSuppressedAlerts" type:"boolean"`
42067
42068	// The maximum number of results to return at one time.
42069	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
42070
42071	// The token for the next set of results.
42072	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
42073
42074	// The name of the Device Defender security profile for which violations are
42075	// listed.
42076	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
42077
42078	// The name of the thing whose active violations are listed.
42079	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
42080}
42081
42082// String returns the string representation
42083func (s ListActiveViolationsInput) String() string {
42084	return awsutil.Prettify(s)
42085}
42086
42087// GoString returns the string representation
42088func (s ListActiveViolationsInput) GoString() string {
42089	return s.String()
42090}
42091
42092// Validate inspects the fields of the type to determine if they are valid.
42093func (s *ListActiveViolationsInput) Validate() error {
42094	invalidParams := request.ErrInvalidParams{Context: "ListActiveViolationsInput"}
42095	if s.MaxResults != nil && *s.MaxResults < 1 {
42096		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42097	}
42098	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
42099		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
42100	}
42101	if s.ThingName != nil && len(*s.ThingName) < 1 {
42102		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
42103	}
42104
42105	if invalidParams.Len() > 0 {
42106		return invalidParams
42107	}
42108	return nil
42109}
42110
42111// SetBehaviorCriteriaType sets the BehaviorCriteriaType field's value.
42112func (s *ListActiveViolationsInput) SetBehaviorCriteriaType(v string) *ListActiveViolationsInput {
42113	s.BehaviorCriteriaType = &v
42114	return s
42115}
42116
42117// SetListSuppressedAlerts sets the ListSuppressedAlerts field's value.
42118func (s *ListActiveViolationsInput) SetListSuppressedAlerts(v bool) *ListActiveViolationsInput {
42119	s.ListSuppressedAlerts = &v
42120	return s
42121}
42122
42123// SetMaxResults sets the MaxResults field's value.
42124func (s *ListActiveViolationsInput) SetMaxResults(v int64) *ListActiveViolationsInput {
42125	s.MaxResults = &v
42126	return s
42127}
42128
42129// SetNextToken sets the NextToken field's value.
42130func (s *ListActiveViolationsInput) SetNextToken(v string) *ListActiveViolationsInput {
42131	s.NextToken = &v
42132	return s
42133}
42134
42135// SetSecurityProfileName sets the SecurityProfileName field's value.
42136func (s *ListActiveViolationsInput) SetSecurityProfileName(v string) *ListActiveViolationsInput {
42137	s.SecurityProfileName = &v
42138	return s
42139}
42140
42141// SetThingName sets the ThingName field's value.
42142func (s *ListActiveViolationsInput) SetThingName(v string) *ListActiveViolationsInput {
42143	s.ThingName = &v
42144	return s
42145}
42146
42147type ListActiveViolationsOutput struct {
42148	_ struct{} `type:"structure"`
42149
42150	// The list of active violations.
42151	ActiveViolations []*ActiveViolation `locationName:"activeViolations" type:"list"`
42152
42153	// A token that can be used to retrieve the next set of results, or null if
42154	// there are no additional results.
42155	NextToken *string `locationName:"nextToken" type:"string"`
42156}
42157
42158// String returns the string representation
42159func (s ListActiveViolationsOutput) String() string {
42160	return awsutil.Prettify(s)
42161}
42162
42163// GoString returns the string representation
42164func (s ListActiveViolationsOutput) GoString() string {
42165	return s.String()
42166}
42167
42168// SetActiveViolations sets the ActiveViolations field's value.
42169func (s *ListActiveViolationsOutput) SetActiveViolations(v []*ActiveViolation) *ListActiveViolationsOutput {
42170	s.ActiveViolations = v
42171	return s
42172}
42173
42174// SetNextToken sets the NextToken field's value.
42175func (s *ListActiveViolationsOutput) SetNextToken(v string) *ListActiveViolationsOutput {
42176	s.NextToken = &v
42177	return s
42178}
42179
42180type ListAttachedPoliciesInput struct {
42181	_ struct{} `type:"structure"`
42182
42183	// The token to retrieve the next set of results.
42184	Marker *string `location:"querystring" locationName:"marker" type:"string"`
42185
42186	// The maximum number of results to be returned per request.
42187	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
42188
42189	// When true, recursively list attached policies.
42190	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
42191
42192	// The group or principal for which the policies will be listed. Valid principals
42193	// are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId), thingGroupArn
42194	// (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId (region:id).
42195	//
42196	// Target is a required field
42197	Target *string `location:"uri" locationName:"target" type:"string" required:"true"`
42198}
42199
42200// String returns the string representation
42201func (s ListAttachedPoliciesInput) String() string {
42202	return awsutil.Prettify(s)
42203}
42204
42205// GoString returns the string representation
42206func (s ListAttachedPoliciesInput) GoString() string {
42207	return s.String()
42208}
42209
42210// Validate inspects the fields of the type to determine if they are valid.
42211func (s *ListAttachedPoliciesInput) Validate() error {
42212	invalidParams := request.ErrInvalidParams{Context: "ListAttachedPoliciesInput"}
42213	if s.PageSize != nil && *s.PageSize < 1 {
42214		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
42215	}
42216	if s.Target == nil {
42217		invalidParams.Add(request.NewErrParamRequired("Target"))
42218	}
42219	if s.Target != nil && len(*s.Target) < 1 {
42220		invalidParams.Add(request.NewErrParamMinLen("Target", 1))
42221	}
42222
42223	if invalidParams.Len() > 0 {
42224		return invalidParams
42225	}
42226	return nil
42227}
42228
42229// SetMarker sets the Marker field's value.
42230func (s *ListAttachedPoliciesInput) SetMarker(v string) *ListAttachedPoliciesInput {
42231	s.Marker = &v
42232	return s
42233}
42234
42235// SetPageSize sets the PageSize field's value.
42236func (s *ListAttachedPoliciesInput) SetPageSize(v int64) *ListAttachedPoliciesInput {
42237	s.PageSize = &v
42238	return s
42239}
42240
42241// SetRecursive sets the Recursive field's value.
42242func (s *ListAttachedPoliciesInput) SetRecursive(v bool) *ListAttachedPoliciesInput {
42243	s.Recursive = &v
42244	return s
42245}
42246
42247// SetTarget sets the Target field's value.
42248func (s *ListAttachedPoliciesInput) SetTarget(v string) *ListAttachedPoliciesInput {
42249	s.Target = &v
42250	return s
42251}
42252
42253type ListAttachedPoliciesOutput struct {
42254	_ struct{} `type:"structure"`
42255
42256	// The token to retrieve the next set of results, or ``null`` if there are no
42257	// more results.
42258	NextMarker *string `locationName:"nextMarker" type:"string"`
42259
42260	// The policies.
42261	Policies []*Policy `locationName:"policies" type:"list"`
42262}
42263
42264// String returns the string representation
42265func (s ListAttachedPoliciesOutput) String() string {
42266	return awsutil.Prettify(s)
42267}
42268
42269// GoString returns the string representation
42270func (s ListAttachedPoliciesOutput) GoString() string {
42271	return s.String()
42272}
42273
42274// SetNextMarker sets the NextMarker field's value.
42275func (s *ListAttachedPoliciesOutput) SetNextMarker(v string) *ListAttachedPoliciesOutput {
42276	s.NextMarker = &v
42277	return s
42278}
42279
42280// SetPolicies sets the Policies field's value.
42281func (s *ListAttachedPoliciesOutput) SetPolicies(v []*Policy) *ListAttachedPoliciesOutput {
42282	s.Policies = v
42283	return s
42284}
42285
42286type ListAuditFindingsInput struct {
42287	_ struct{} `type:"structure"`
42288
42289	// A filter to limit results to the findings for the specified audit check.
42290	CheckName *string `locationName:"checkName" type:"string"`
42291
42292	// A filter to limit results to those found before the specified time. You must
42293	// specify either the startTime and endTime or the taskId, but not both.
42294	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
42295
42296	// Boolean flag indicating whether only the suppressed findings or the unsuppressed
42297	// findings should be listed. If this parameter isn't provided, the response
42298	// will list both suppressed and unsuppressed findings.
42299	ListSuppressedFindings *bool `locationName:"listSuppressedFindings" type:"boolean"`
42300
42301	// The maximum number of results to return at one time. The default is 25.
42302	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
42303
42304	// The token for the next set of results.
42305	NextToken *string `locationName:"nextToken" type:"string"`
42306
42307	// Information identifying the noncompliant resource.
42308	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
42309
42310	// A filter to limit results to those found after the specified time. You must
42311	// specify either the startTime and endTime or the taskId, but not both.
42312	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
42313
42314	// A filter to limit results to the audit with the specified ID. You must specify
42315	// either the taskId or the startTime and endTime, but not both.
42316	TaskId *string `locationName:"taskId" min:"1" type:"string"`
42317}
42318
42319// String returns the string representation
42320func (s ListAuditFindingsInput) String() string {
42321	return awsutil.Prettify(s)
42322}
42323
42324// GoString returns the string representation
42325func (s ListAuditFindingsInput) GoString() string {
42326	return s.String()
42327}
42328
42329// Validate inspects the fields of the type to determine if they are valid.
42330func (s *ListAuditFindingsInput) Validate() error {
42331	invalidParams := request.ErrInvalidParams{Context: "ListAuditFindingsInput"}
42332	if s.MaxResults != nil && *s.MaxResults < 1 {
42333		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42334	}
42335	if s.TaskId != nil && len(*s.TaskId) < 1 {
42336		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
42337	}
42338	if s.ResourceIdentifier != nil {
42339		if err := s.ResourceIdentifier.Validate(); err != nil {
42340			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
42341		}
42342	}
42343
42344	if invalidParams.Len() > 0 {
42345		return invalidParams
42346	}
42347	return nil
42348}
42349
42350// SetCheckName sets the CheckName field's value.
42351func (s *ListAuditFindingsInput) SetCheckName(v string) *ListAuditFindingsInput {
42352	s.CheckName = &v
42353	return s
42354}
42355
42356// SetEndTime sets the EndTime field's value.
42357func (s *ListAuditFindingsInput) SetEndTime(v time.Time) *ListAuditFindingsInput {
42358	s.EndTime = &v
42359	return s
42360}
42361
42362// SetListSuppressedFindings sets the ListSuppressedFindings field's value.
42363func (s *ListAuditFindingsInput) SetListSuppressedFindings(v bool) *ListAuditFindingsInput {
42364	s.ListSuppressedFindings = &v
42365	return s
42366}
42367
42368// SetMaxResults sets the MaxResults field's value.
42369func (s *ListAuditFindingsInput) SetMaxResults(v int64) *ListAuditFindingsInput {
42370	s.MaxResults = &v
42371	return s
42372}
42373
42374// SetNextToken sets the NextToken field's value.
42375func (s *ListAuditFindingsInput) SetNextToken(v string) *ListAuditFindingsInput {
42376	s.NextToken = &v
42377	return s
42378}
42379
42380// SetResourceIdentifier sets the ResourceIdentifier field's value.
42381func (s *ListAuditFindingsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditFindingsInput {
42382	s.ResourceIdentifier = v
42383	return s
42384}
42385
42386// SetStartTime sets the StartTime field's value.
42387func (s *ListAuditFindingsInput) SetStartTime(v time.Time) *ListAuditFindingsInput {
42388	s.StartTime = &v
42389	return s
42390}
42391
42392// SetTaskId sets the TaskId field's value.
42393func (s *ListAuditFindingsInput) SetTaskId(v string) *ListAuditFindingsInput {
42394	s.TaskId = &v
42395	return s
42396}
42397
42398type ListAuditFindingsOutput struct {
42399	_ struct{} `type:"structure"`
42400
42401	// The findings (results) of the audit.
42402	Findings []*AuditFinding `locationName:"findings" type:"list"`
42403
42404	// A token that can be used to retrieve the next set of results, or null if
42405	// there are no additional results.
42406	NextToken *string `locationName:"nextToken" type:"string"`
42407}
42408
42409// String returns the string representation
42410func (s ListAuditFindingsOutput) String() string {
42411	return awsutil.Prettify(s)
42412}
42413
42414// GoString returns the string representation
42415func (s ListAuditFindingsOutput) GoString() string {
42416	return s.String()
42417}
42418
42419// SetFindings sets the Findings field's value.
42420func (s *ListAuditFindingsOutput) SetFindings(v []*AuditFinding) *ListAuditFindingsOutput {
42421	s.Findings = v
42422	return s
42423}
42424
42425// SetNextToken sets the NextToken field's value.
42426func (s *ListAuditFindingsOutput) SetNextToken(v string) *ListAuditFindingsOutput {
42427	s.NextToken = &v
42428	return s
42429}
42430
42431type ListAuditMitigationActionsExecutionsInput struct {
42432	_ struct{} `type:"structure"`
42433
42434	// Specify this filter to limit results to those with a specific status.
42435	ActionStatus *string `location:"querystring" locationName:"actionStatus" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
42436
42437	// Specify this filter to limit results to those that were applied to a specific
42438	// audit finding.
42439	//
42440	// FindingId is a required field
42441	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string" required:"true"`
42442
42443	// The maximum number of results to return at one time. The default is 25.
42444	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
42445
42446	// The token for the next set of results.
42447	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
42448
42449	// Specify this filter to limit results to actions for a specific audit mitigation
42450	// actions task.
42451	//
42452	// TaskId is a required field
42453	TaskId *string `location:"querystring" locationName:"taskId" min:"1" type:"string" required:"true"`
42454}
42455
42456// String returns the string representation
42457func (s ListAuditMitigationActionsExecutionsInput) String() string {
42458	return awsutil.Prettify(s)
42459}
42460
42461// GoString returns the string representation
42462func (s ListAuditMitigationActionsExecutionsInput) GoString() string {
42463	return s.String()
42464}
42465
42466// Validate inspects the fields of the type to determine if they are valid.
42467func (s *ListAuditMitigationActionsExecutionsInput) Validate() error {
42468	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsExecutionsInput"}
42469	if s.FindingId == nil {
42470		invalidParams.Add(request.NewErrParamRequired("FindingId"))
42471	}
42472	if s.FindingId != nil && len(*s.FindingId) < 1 {
42473		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
42474	}
42475	if s.MaxResults != nil && *s.MaxResults < 1 {
42476		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42477	}
42478	if s.TaskId == nil {
42479		invalidParams.Add(request.NewErrParamRequired("TaskId"))
42480	}
42481	if s.TaskId != nil && len(*s.TaskId) < 1 {
42482		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
42483	}
42484
42485	if invalidParams.Len() > 0 {
42486		return invalidParams
42487	}
42488	return nil
42489}
42490
42491// SetActionStatus sets the ActionStatus field's value.
42492func (s *ListAuditMitigationActionsExecutionsInput) SetActionStatus(v string) *ListAuditMitigationActionsExecutionsInput {
42493	s.ActionStatus = &v
42494	return s
42495}
42496
42497// SetFindingId sets the FindingId field's value.
42498func (s *ListAuditMitigationActionsExecutionsInput) SetFindingId(v string) *ListAuditMitigationActionsExecutionsInput {
42499	s.FindingId = &v
42500	return s
42501}
42502
42503// SetMaxResults sets the MaxResults field's value.
42504func (s *ListAuditMitigationActionsExecutionsInput) SetMaxResults(v int64) *ListAuditMitigationActionsExecutionsInput {
42505	s.MaxResults = &v
42506	return s
42507}
42508
42509// SetNextToken sets the NextToken field's value.
42510func (s *ListAuditMitigationActionsExecutionsInput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsInput {
42511	s.NextToken = &v
42512	return s
42513}
42514
42515// SetTaskId sets the TaskId field's value.
42516func (s *ListAuditMitigationActionsExecutionsInput) SetTaskId(v string) *ListAuditMitigationActionsExecutionsInput {
42517	s.TaskId = &v
42518	return s
42519}
42520
42521type ListAuditMitigationActionsExecutionsOutput struct {
42522	_ struct{} `type:"structure"`
42523
42524	// A set of task execution results based on the input parameters. Details include
42525	// the mitigation action applied, start time, and task status.
42526	ActionsExecutions []*AuditMitigationActionExecutionMetadata `locationName:"actionsExecutions" type:"list"`
42527
42528	// The token for the next set of results.
42529	NextToken *string `locationName:"nextToken" type:"string"`
42530}
42531
42532// String returns the string representation
42533func (s ListAuditMitigationActionsExecutionsOutput) String() string {
42534	return awsutil.Prettify(s)
42535}
42536
42537// GoString returns the string representation
42538func (s ListAuditMitigationActionsExecutionsOutput) GoString() string {
42539	return s.String()
42540}
42541
42542// SetActionsExecutions sets the ActionsExecutions field's value.
42543func (s *ListAuditMitigationActionsExecutionsOutput) SetActionsExecutions(v []*AuditMitigationActionExecutionMetadata) *ListAuditMitigationActionsExecutionsOutput {
42544	s.ActionsExecutions = v
42545	return s
42546}
42547
42548// SetNextToken sets the NextToken field's value.
42549func (s *ListAuditMitigationActionsExecutionsOutput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsOutput {
42550	s.NextToken = &v
42551	return s
42552}
42553
42554type ListAuditMitigationActionsTasksInput struct {
42555	_ struct{} `type:"structure"`
42556
42557	// Specify this filter to limit results to tasks that were applied to results
42558	// for a specific audit.
42559	AuditTaskId *string `location:"querystring" locationName:"auditTaskId" min:"1" type:"string"`
42560
42561	// Specify this filter to limit results to tasks that were completed or canceled
42562	// on or before a specific date and time.
42563	//
42564	// EndTime is a required field
42565	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
42566
42567	// Specify this filter to limit results to tasks that were applied to a specific
42568	// audit finding.
42569	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string"`
42570
42571	// The maximum number of results to return at one time. The default is 25.
42572	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
42573
42574	// The token for the next set of results.
42575	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
42576
42577	// Specify this filter to limit results to tasks that began on or after a specific
42578	// date and time.
42579	//
42580	// StartTime is a required field
42581	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
42582
42583	// Specify this filter to limit results to tasks that are in a specific state.
42584	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
42585}
42586
42587// String returns the string representation
42588func (s ListAuditMitigationActionsTasksInput) String() string {
42589	return awsutil.Prettify(s)
42590}
42591
42592// GoString returns the string representation
42593func (s ListAuditMitigationActionsTasksInput) GoString() string {
42594	return s.String()
42595}
42596
42597// Validate inspects the fields of the type to determine if they are valid.
42598func (s *ListAuditMitigationActionsTasksInput) Validate() error {
42599	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsTasksInput"}
42600	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
42601		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
42602	}
42603	if s.EndTime == nil {
42604		invalidParams.Add(request.NewErrParamRequired("EndTime"))
42605	}
42606	if s.FindingId != nil && len(*s.FindingId) < 1 {
42607		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
42608	}
42609	if s.MaxResults != nil && *s.MaxResults < 1 {
42610		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42611	}
42612	if s.StartTime == nil {
42613		invalidParams.Add(request.NewErrParamRequired("StartTime"))
42614	}
42615
42616	if invalidParams.Len() > 0 {
42617		return invalidParams
42618	}
42619	return nil
42620}
42621
42622// SetAuditTaskId sets the AuditTaskId field's value.
42623func (s *ListAuditMitigationActionsTasksInput) SetAuditTaskId(v string) *ListAuditMitigationActionsTasksInput {
42624	s.AuditTaskId = &v
42625	return s
42626}
42627
42628// SetEndTime sets the EndTime field's value.
42629func (s *ListAuditMitigationActionsTasksInput) SetEndTime(v time.Time) *ListAuditMitigationActionsTasksInput {
42630	s.EndTime = &v
42631	return s
42632}
42633
42634// SetFindingId sets the FindingId field's value.
42635func (s *ListAuditMitigationActionsTasksInput) SetFindingId(v string) *ListAuditMitigationActionsTasksInput {
42636	s.FindingId = &v
42637	return s
42638}
42639
42640// SetMaxResults sets the MaxResults field's value.
42641func (s *ListAuditMitigationActionsTasksInput) SetMaxResults(v int64) *ListAuditMitigationActionsTasksInput {
42642	s.MaxResults = &v
42643	return s
42644}
42645
42646// SetNextToken sets the NextToken field's value.
42647func (s *ListAuditMitigationActionsTasksInput) SetNextToken(v string) *ListAuditMitigationActionsTasksInput {
42648	s.NextToken = &v
42649	return s
42650}
42651
42652// SetStartTime sets the StartTime field's value.
42653func (s *ListAuditMitigationActionsTasksInput) SetStartTime(v time.Time) *ListAuditMitigationActionsTasksInput {
42654	s.StartTime = &v
42655	return s
42656}
42657
42658// SetTaskStatus sets the TaskStatus field's value.
42659func (s *ListAuditMitigationActionsTasksInput) SetTaskStatus(v string) *ListAuditMitigationActionsTasksInput {
42660	s.TaskStatus = &v
42661	return s
42662}
42663
42664type ListAuditMitigationActionsTasksOutput struct {
42665	_ struct{} `type:"structure"`
42666
42667	// The token for the next set of results.
42668	NextToken *string `locationName:"nextToken" type:"string"`
42669
42670	// The collection of audit mitigation tasks that matched the filter criteria.
42671	Tasks []*AuditMitigationActionsTaskMetadata `locationName:"tasks" type:"list"`
42672}
42673
42674// String returns the string representation
42675func (s ListAuditMitigationActionsTasksOutput) String() string {
42676	return awsutil.Prettify(s)
42677}
42678
42679// GoString returns the string representation
42680func (s ListAuditMitigationActionsTasksOutput) GoString() string {
42681	return s.String()
42682}
42683
42684// SetNextToken sets the NextToken field's value.
42685func (s *ListAuditMitigationActionsTasksOutput) SetNextToken(v string) *ListAuditMitigationActionsTasksOutput {
42686	s.NextToken = &v
42687	return s
42688}
42689
42690// SetTasks sets the Tasks field's value.
42691func (s *ListAuditMitigationActionsTasksOutput) SetTasks(v []*AuditMitigationActionsTaskMetadata) *ListAuditMitigationActionsTasksOutput {
42692	s.Tasks = v
42693	return s
42694}
42695
42696type ListAuditSuppressionsInput struct {
42697	_ struct{} `type:"structure"`
42698
42699	// Determines whether suppressions are listed in ascending order by expiration
42700	// date or not. If parameter isn't provided, ascendingOrder=true.
42701	AscendingOrder *bool `locationName:"ascendingOrder" type:"boolean"`
42702
42703	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
42704	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
42705	// to select which checks are enabled.)
42706	CheckName *string `locationName:"checkName" type:"string"`
42707
42708	// The maximum number of results to return at one time. The default is 25.
42709	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
42710
42711	// The token for the next set of results.
42712	NextToken *string `locationName:"nextToken" type:"string"`
42713
42714	// Information that identifies the noncompliant resource.
42715	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
42716}
42717
42718// String returns the string representation
42719func (s ListAuditSuppressionsInput) String() string {
42720	return awsutil.Prettify(s)
42721}
42722
42723// GoString returns the string representation
42724func (s ListAuditSuppressionsInput) GoString() string {
42725	return s.String()
42726}
42727
42728// Validate inspects the fields of the type to determine if they are valid.
42729func (s *ListAuditSuppressionsInput) Validate() error {
42730	invalidParams := request.ErrInvalidParams{Context: "ListAuditSuppressionsInput"}
42731	if s.MaxResults != nil && *s.MaxResults < 1 {
42732		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42733	}
42734	if s.ResourceIdentifier != nil {
42735		if err := s.ResourceIdentifier.Validate(); err != nil {
42736			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
42737		}
42738	}
42739
42740	if invalidParams.Len() > 0 {
42741		return invalidParams
42742	}
42743	return nil
42744}
42745
42746// SetAscendingOrder sets the AscendingOrder field's value.
42747func (s *ListAuditSuppressionsInput) SetAscendingOrder(v bool) *ListAuditSuppressionsInput {
42748	s.AscendingOrder = &v
42749	return s
42750}
42751
42752// SetCheckName sets the CheckName field's value.
42753func (s *ListAuditSuppressionsInput) SetCheckName(v string) *ListAuditSuppressionsInput {
42754	s.CheckName = &v
42755	return s
42756}
42757
42758// SetMaxResults sets the MaxResults field's value.
42759func (s *ListAuditSuppressionsInput) SetMaxResults(v int64) *ListAuditSuppressionsInput {
42760	s.MaxResults = &v
42761	return s
42762}
42763
42764// SetNextToken sets the NextToken field's value.
42765func (s *ListAuditSuppressionsInput) SetNextToken(v string) *ListAuditSuppressionsInput {
42766	s.NextToken = &v
42767	return s
42768}
42769
42770// SetResourceIdentifier sets the ResourceIdentifier field's value.
42771func (s *ListAuditSuppressionsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditSuppressionsInput {
42772	s.ResourceIdentifier = v
42773	return s
42774}
42775
42776type ListAuditSuppressionsOutput struct {
42777	_ struct{} `type:"structure"`
42778
42779	// A token that can be used to retrieve the next set of results, or null if
42780	// there are no additional results.
42781	NextToken *string `locationName:"nextToken" type:"string"`
42782
42783	// List of audit suppressions.
42784	Suppressions []*AuditSuppression `locationName:"suppressions" type:"list"`
42785}
42786
42787// String returns the string representation
42788func (s ListAuditSuppressionsOutput) String() string {
42789	return awsutil.Prettify(s)
42790}
42791
42792// GoString returns the string representation
42793func (s ListAuditSuppressionsOutput) GoString() string {
42794	return s.String()
42795}
42796
42797// SetNextToken sets the NextToken field's value.
42798func (s *ListAuditSuppressionsOutput) SetNextToken(v string) *ListAuditSuppressionsOutput {
42799	s.NextToken = &v
42800	return s
42801}
42802
42803// SetSuppressions sets the Suppressions field's value.
42804func (s *ListAuditSuppressionsOutput) SetSuppressions(v []*AuditSuppression) *ListAuditSuppressionsOutput {
42805	s.Suppressions = v
42806	return s
42807}
42808
42809type ListAuditTasksInput struct {
42810	_ struct{} `type:"structure"`
42811
42812	// The end of the time period.
42813	//
42814	// EndTime is a required field
42815	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
42816
42817	// The maximum number of results to return at one time. The default is 25.
42818	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
42819
42820	// The token for the next set of results.
42821	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
42822
42823	// The beginning of the time period. Audit information is retained for a limited
42824	// time (90 days). Requesting a start time prior to what is retained results
42825	// in an "InvalidRequestException".
42826	//
42827	// StartTime is a required field
42828	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
42829
42830	// A filter to limit the output to audits with the specified completion status:
42831	// can be one of "IN_PROGRESS", "COMPLETED", "FAILED", or "CANCELED".
42832	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
42833
42834	// A filter to limit the output to the specified type of audit: can be one of
42835	// "ON_DEMAND_AUDIT_TASK" or "SCHEDULED__AUDIT_TASK".
42836	TaskType *string `location:"querystring" locationName:"taskType" type:"string" enum:"AuditTaskType"`
42837}
42838
42839// String returns the string representation
42840func (s ListAuditTasksInput) String() string {
42841	return awsutil.Prettify(s)
42842}
42843
42844// GoString returns the string representation
42845func (s ListAuditTasksInput) GoString() string {
42846	return s.String()
42847}
42848
42849// Validate inspects the fields of the type to determine if they are valid.
42850func (s *ListAuditTasksInput) Validate() error {
42851	invalidParams := request.ErrInvalidParams{Context: "ListAuditTasksInput"}
42852	if s.EndTime == nil {
42853		invalidParams.Add(request.NewErrParamRequired("EndTime"))
42854	}
42855	if s.MaxResults != nil && *s.MaxResults < 1 {
42856		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42857	}
42858	if s.StartTime == nil {
42859		invalidParams.Add(request.NewErrParamRequired("StartTime"))
42860	}
42861
42862	if invalidParams.Len() > 0 {
42863		return invalidParams
42864	}
42865	return nil
42866}
42867
42868// SetEndTime sets the EndTime field's value.
42869func (s *ListAuditTasksInput) SetEndTime(v time.Time) *ListAuditTasksInput {
42870	s.EndTime = &v
42871	return s
42872}
42873
42874// SetMaxResults sets the MaxResults field's value.
42875func (s *ListAuditTasksInput) SetMaxResults(v int64) *ListAuditTasksInput {
42876	s.MaxResults = &v
42877	return s
42878}
42879
42880// SetNextToken sets the NextToken field's value.
42881func (s *ListAuditTasksInput) SetNextToken(v string) *ListAuditTasksInput {
42882	s.NextToken = &v
42883	return s
42884}
42885
42886// SetStartTime sets the StartTime field's value.
42887func (s *ListAuditTasksInput) SetStartTime(v time.Time) *ListAuditTasksInput {
42888	s.StartTime = &v
42889	return s
42890}
42891
42892// SetTaskStatus sets the TaskStatus field's value.
42893func (s *ListAuditTasksInput) SetTaskStatus(v string) *ListAuditTasksInput {
42894	s.TaskStatus = &v
42895	return s
42896}
42897
42898// SetTaskType sets the TaskType field's value.
42899func (s *ListAuditTasksInput) SetTaskType(v string) *ListAuditTasksInput {
42900	s.TaskType = &v
42901	return s
42902}
42903
42904type ListAuditTasksOutput struct {
42905	_ struct{} `type:"structure"`
42906
42907	// A token that can be used to retrieve the next set of results, or null if
42908	// there are no additional results.
42909	NextToken *string `locationName:"nextToken" type:"string"`
42910
42911	// The audits that were performed during the specified time period.
42912	Tasks []*AuditTaskMetadata `locationName:"tasks" type:"list"`
42913}
42914
42915// String returns the string representation
42916func (s ListAuditTasksOutput) String() string {
42917	return awsutil.Prettify(s)
42918}
42919
42920// GoString returns the string representation
42921func (s ListAuditTasksOutput) GoString() string {
42922	return s.String()
42923}
42924
42925// SetNextToken sets the NextToken field's value.
42926func (s *ListAuditTasksOutput) SetNextToken(v string) *ListAuditTasksOutput {
42927	s.NextToken = &v
42928	return s
42929}
42930
42931// SetTasks sets the Tasks field's value.
42932func (s *ListAuditTasksOutput) SetTasks(v []*AuditTaskMetadata) *ListAuditTasksOutput {
42933	s.Tasks = v
42934	return s
42935}
42936
42937type ListAuthorizersInput struct {
42938	_ struct{} `type:"structure"`
42939
42940	// Return the list of authorizers in ascending alphabetical order.
42941	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
42942
42943	// A marker used to get the next set of results.
42944	Marker *string `location:"querystring" locationName:"marker" type:"string"`
42945
42946	// The maximum number of results to return at one time.
42947	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
42948
42949	// The status of the list authorizers request.
42950	Status *string `location:"querystring" locationName:"status" type:"string" enum:"AuthorizerStatus"`
42951}
42952
42953// String returns the string representation
42954func (s ListAuthorizersInput) String() string {
42955	return awsutil.Prettify(s)
42956}
42957
42958// GoString returns the string representation
42959func (s ListAuthorizersInput) GoString() string {
42960	return s.String()
42961}
42962
42963// Validate inspects the fields of the type to determine if they are valid.
42964func (s *ListAuthorizersInput) Validate() error {
42965	invalidParams := request.ErrInvalidParams{Context: "ListAuthorizersInput"}
42966	if s.PageSize != nil && *s.PageSize < 1 {
42967		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
42968	}
42969
42970	if invalidParams.Len() > 0 {
42971		return invalidParams
42972	}
42973	return nil
42974}
42975
42976// SetAscendingOrder sets the AscendingOrder field's value.
42977func (s *ListAuthorizersInput) SetAscendingOrder(v bool) *ListAuthorizersInput {
42978	s.AscendingOrder = &v
42979	return s
42980}
42981
42982// SetMarker sets the Marker field's value.
42983func (s *ListAuthorizersInput) SetMarker(v string) *ListAuthorizersInput {
42984	s.Marker = &v
42985	return s
42986}
42987
42988// SetPageSize sets the PageSize field's value.
42989func (s *ListAuthorizersInput) SetPageSize(v int64) *ListAuthorizersInput {
42990	s.PageSize = &v
42991	return s
42992}
42993
42994// SetStatus sets the Status field's value.
42995func (s *ListAuthorizersInput) SetStatus(v string) *ListAuthorizersInput {
42996	s.Status = &v
42997	return s
42998}
42999
43000type ListAuthorizersOutput struct {
43001	_ struct{} `type:"structure"`
43002
43003	// The authorizers.
43004	Authorizers []*AuthorizerSummary `locationName:"authorizers" type:"list"`
43005
43006	// A marker used to get the next set of results.
43007	NextMarker *string `locationName:"nextMarker" type:"string"`
43008}
43009
43010// String returns the string representation
43011func (s ListAuthorizersOutput) String() string {
43012	return awsutil.Prettify(s)
43013}
43014
43015// GoString returns the string representation
43016func (s ListAuthorizersOutput) GoString() string {
43017	return s.String()
43018}
43019
43020// SetAuthorizers sets the Authorizers field's value.
43021func (s *ListAuthorizersOutput) SetAuthorizers(v []*AuthorizerSummary) *ListAuthorizersOutput {
43022	s.Authorizers = v
43023	return s
43024}
43025
43026// SetNextMarker sets the NextMarker field's value.
43027func (s *ListAuthorizersOutput) SetNextMarker(v string) *ListAuthorizersOutput {
43028	s.NextMarker = &v
43029	return s
43030}
43031
43032type ListBillingGroupsInput struct {
43033	_ struct{} `type:"structure"`
43034
43035	// The maximum number of results to return per request.
43036	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43037
43038	// Limit the results to billing groups whose names have the given prefix.
43039	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
43040
43041	// To retrieve the next set of results, the nextToken value from a previous
43042	// response; otherwise null to receive the first set of results.
43043	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43044}
43045
43046// String returns the string representation
43047func (s ListBillingGroupsInput) String() string {
43048	return awsutil.Prettify(s)
43049}
43050
43051// GoString returns the string representation
43052func (s ListBillingGroupsInput) GoString() string {
43053	return s.String()
43054}
43055
43056// Validate inspects the fields of the type to determine if they are valid.
43057func (s *ListBillingGroupsInput) Validate() error {
43058	invalidParams := request.ErrInvalidParams{Context: "ListBillingGroupsInput"}
43059	if s.MaxResults != nil && *s.MaxResults < 1 {
43060		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43061	}
43062	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
43063		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
43064	}
43065
43066	if invalidParams.Len() > 0 {
43067		return invalidParams
43068	}
43069	return nil
43070}
43071
43072// SetMaxResults sets the MaxResults field's value.
43073func (s *ListBillingGroupsInput) SetMaxResults(v int64) *ListBillingGroupsInput {
43074	s.MaxResults = &v
43075	return s
43076}
43077
43078// SetNamePrefixFilter sets the NamePrefixFilter field's value.
43079func (s *ListBillingGroupsInput) SetNamePrefixFilter(v string) *ListBillingGroupsInput {
43080	s.NamePrefixFilter = &v
43081	return s
43082}
43083
43084// SetNextToken sets the NextToken field's value.
43085func (s *ListBillingGroupsInput) SetNextToken(v string) *ListBillingGroupsInput {
43086	s.NextToken = &v
43087	return s
43088}
43089
43090type ListBillingGroupsOutput struct {
43091	_ struct{} `type:"structure"`
43092
43093	// The list of billing groups.
43094	BillingGroups []*GroupNameAndArn `locationName:"billingGroups" type:"list"`
43095
43096	// The token to use to get the next set of results, or null if there are no
43097	// additional results.
43098	NextToken *string `locationName:"nextToken" type:"string"`
43099}
43100
43101// String returns the string representation
43102func (s ListBillingGroupsOutput) String() string {
43103	return awsutil.Prettify(s)
43104}
43105
43106// GoString returns the string representation
43107func (s ListBillingGroupsOutput) GoString() string {
43108	return s.String()
43109}
43110
43111// SetBillingGroups sets the BillingGroups field's value.
43112func (s *ListBillingGroupsOutput) SetBillingGroups(v []*GroupNameAndArn) *ListBillingGroupsOutput {
43113	s.BillingGroups = v
43114	return s
43115}
43116
43117// SetNextToken sets the NextToken field's value.
43118func (s *ListBillingGroupsOutput) SetNextToken(v string) *ListBillingGroupsOutput {
43119	s.NextToken = &v
43120	return s
43121}
43122
43123// Input for the ListCACertificates operation.
43124type ListCACertificatesInput struct {
43125	_ struct{} `type:"structure"`
43126
43127	// Determines the order of the results.
43128	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
43129
43130	// The marker for the next set of results.
43131	Marker *string `location:"querystring" locationName:"marker" type:"string"`
43132
43133	// The result page size.
43134	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
43135}
43136
43137// String returns the string representation
43138func (s ListCACertificatesInput) String() string {
43139	return awsutil.Prettify(s)
43140}
43141
43142// GoString returns the string representation
43143func (s ListCACertificatesInput) GoString() string {
43144	return s.String()
43145}
43146
43147// Validate inspects the fields of the type to determine if they are valid.
43148func (s *ListCACertificatesInput) Validate() error {
43149	invalidParams := request.ErrInvalidParams{Context: "ListCACertificatesInput"}
43150	if s.PageSize != nil && *s.PageSize < 1 {
43151		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
43152	}
43153
43154	if invalidParams.Len() > 0 {
43155		return invalidParams
43156	}
43157	return nil
43158}
43159
43160// SetAscendingOrder sets the AscendingOrder field's value.
43161func (s *ListCACertificatesInput) SetAscendingOrder(v bool) *ListCACertificatesInput {
43162	s.AscendingOrder = &v
43163	return s
43164}
43165
43166// SetMarker sets the Marker field's value.
43167func (s *ListCACertificatesInput) SetMarker(v string) *ListCACertificatesInput {
43168	s.Marker = &v
43169	return s
43170}
43171
43172// SetPageSize sets the PageSize field's value.
43173func (s *ListCACertificatesInput) SetPageSize(v int64) *ListCACertificatesInput {
43174	s.PageSize = &v
43175	return s
43176}
43177
43178// The output from the ListCACertificates operation.
43179type ListCACertificatesOutput struct {
43180	_ struct{} `type:"structure"`
43181
43182	// The CA certificates registered in your AWS account.
43183	Certificates []*CACertificate `locationName:"certificates" type:"list"`
43184
43185	// The current position within the list of CA certificates.
43186	NextMarker *string `locationName:"nextMarker" type:"string"`
43187}
43188
43189// String returns the string representation
43190func (s ListCACertificatesOutput) String() string {
43191	return awsutil.Prettify(s)
43192}
43193
43194// GoString returns the string representation
43195func (s ListCACertificatesOutput) GoString() string {
43196	return s.String()
43197}
43198
43199// SetCertificates sets the Certificates field's value.
43200func (s *ListCACertificatesOutput) SetCertificates(v []*CACertificate) *ListCACertificatesOutput {
43201	s.Certificates = v
43202	return s
43203}
43204
43205// SetNextMarker sets the NextMarker field's value.
43206func (s *ListCACertificatesOutput) SetNextMarker(v string) *ListCACertificatesOutput {
43207	s.NextMarker = &v
43208	return s
43209}
43210
43211// The input to the ListCertificatesByCA operation.
43212type ListCertificatesByCAInput struct {
43213	_ struct{} `type:"structure"`
43214
43215	// Specifies the order for results. If True, the results are returned in ascending
43216	// order, based on the creation date.
43217	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
43218
43219	// The ID of the CA certificate. This operation will list all registered device
43220	// certificate that were signed by this CA certificate.
43221	//
43222	// CaCertificateId is a required field
43223	CaCertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
43224
43225	// The marker for the next set of results.
43226	Marker *string `location:"querystring" locationName:"marker" type:"string"`
43227
43228	// The result page size.
43229	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
43230}
43231
43232// String returns the string representation
43233func (s ListCertificatesByCAInput) String() string {
43234	return awsutil.Prettify(s)
43235}
43236
43237// GoString returns the string representation
43238func (s ListCertificatesByCAInput) GoString() string {
43239	return s.String()
43240}
43241
43242// Validate inspects the fields of the type to determine if they are valid.
43243func (s *ListCertificatesByCAInput) Validate() error {
43244	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesByCAInput"}
43245	if s.CaCertificateId == nil {
43246		invalidParams.Add(request.NewErrParamRequired("CaCertificateId"))
43247	}
43248	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
43249		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
43250	}
43251	if s.PageSize != nil && *s.PageSize < 1 {
43252		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
43253	}
43254
43255	if invalidParams.Len() > 0 {
43256		return invalidParams
43257	}
43258	return nil
43259}
43260
43261// SetAscendingOrder sets the AscendingOrder field's value.
43262func (s *ListCertificatesByCAInput) SetAscendingOrder(v bool) *ListCertificatesByCAInput {
43263	s.AscendingOrder = &v
43264	return s
43265}
43266
43267// SetCaCertificateId sets the CaCertificateId field's value.
43268func (s *ListCertificatesByCAInput) SetCaCertificateId(v string) *ListCertificatesByCAInput {
43269	s.CaCertificateId = &v
43270	return s
43271}
43272
43273// SetMarker sets the Marker field's value.
43274func (s *ListCertificatesByCAInput) SetMarker(v string) *ListCertificatesByCAInput {
43275	s.Marker = &v
43276	return s
43277}
43278
43279// SetPageSize sets the PageSize field's value.
43280func (s *ListCertificatesByCAInput) SetPageSize(v int64) *ListCertificatesByCAInput {
43281	s.PageSize = &v
43282	return s
43283}
43284
43285// The output of the ListCertificatesByCA operation.
43286type ListCertificatesByCAOutput struct {
43287	_ struct{} `type:"structure"`
43288
43289	// The device certificates signed by the specified CA certificate.
43290	Certificates []*Certificate `locationName:"certificates" type:"list"`
43291
43292	// The marker for the next set of results, or null if there are no additional
43293	// results.
43294	NextMarker *string `locationName:"nextMarker" type:"string"`
43295}
43296
43297// String returns the string representation
43298func (s ListCertificatesByCAOutput) String() string {
43299	return awsutil.Prettify(s)
43300}
43301
43302// GoString returns the string representation
43303func (s ListCertificatesByCAOutput) GoString() string {
43304	return s.String()
43305}
43306
43307// SetCertificates sets the Certificates field's value.
43308func (s *ListCertificatesByCAOutput) SetCertificates(v []*Certificate) *ListCertificatesByCAOutput {
43309	s.Certificates = v
43310	return s
43311}
43312
43313// SetNextMarker sets the NextMarker field's value.
43314func (s *ListCertificatesByCAOutput) SetNextMarker(v string) *ListCertificatesByCAOutput {
43315	s.NextMarker = &v
43316	return s
43317}
43318
43319// The input for the ListCertificates operation.
43320type ListCertificatesInput struct {
43321	_ struct{} `type:"structure"`
43322
43323	// Specifies the order for results. If True, the results are returned in ascending
43324	// order, based on the creation date.
43325	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
43326
43327	// The marker for the next set of results.
43328	Marker *string `location:"querystring" locationName:"marker" type:"string"`
43329
43330	// The result page size.
43331	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
43332}
43333
43334// String returns the string representation
43335func (s ListCertificatesInput) String() string {
43336	return awsutil.Prettify(s)
43337}
43338
43339// GoString returns the string representation
43340func (s ListCertificatesInput) GoString() string {
43341	return s.String()
43342}
43343
43344// Validate inspects the fields of the type to determine if they are valid.
43345func (s *ListCertificatesInput) Validate() error {
43346	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesInput"}
43347	if s.PageSize != nil && *s.PageSize < 1 {
43348		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
43349	}
43350
43351	if invalidParams.Len() > 0 {
43352		return invalidParams
43353	}
43354	return nil
43355}
43356
43357// SetAscendingOrder sets the AscendingOrder field's value.
43358func (s *ListCertificatesInput) SetAscendingOrder(v bool) *ListCertificatesInput {
43359	s.AscendingOrder = &v
43360	return s
43361}
43362
43363// SetMarker sets the Marker field's value.
43364func (s *ListCertificatesInput) SetMarker(v string) *ListCertificatesInput {
43365	s.Marker = &v
43366	return s
43367}
43368
43369// SetPageSize sets the PageSize field's value.
43370func (s *ListCertificatesInput) SetPageSize(v int64) *ListCertificatesInput {
43371	s.PageSize = &v
43372	return s
43373}
43374
43375// The output of the ListCertificates operation.
43376type ListCertificatesOutput struct {
43377	_ struct{} `type:"structure"`
43378
43379	// The descriptions of the certificates.
43380	Certificates []*Certificate `locationName:"certificates" type:"list"`
43381
43382	// The marker for the next set of results, or null if there are no additional
43383	// results.
43384	NextMarker *string `locationName:"nextMarker" type:"string"`
43385}
43386
43387// String returns the string representation
43388func (s ListCertificatesOutput) String() string {
43389	return awsutil.Prettify(s)
43390}
43391
43392// GoString returns the string representation
43393func (s ListCertificatesOutput) GoString() string {
43394	return s.String()
43395}
43396
43397// SetCertificates sets the Certificates field's value.
43398func (s *ListCertificatesOutput) SetCertificates(v []*Certificate) *ListCertificatesOutput {
43399	s.Certificates = v
43400	return s
43401}
43402
43403// SetNextMarker sets the NextMarker field's value.
43404func (s *ListCertificatesOutput) SetNextMarker(v string) *ListCertificatesOutput {
43405	s.NextMarker = &v
43406	return s
43407}
43408
43409type ListCustomMetricsInput struct {
43410	_ struct{} `type:"structure"`
43411
43412	// The maximum number of results to return at one time. The default is 25.
43413	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43414
43415	// The token for the next set of results.
43416	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43417}
43418
43419// String returns the string representation
43420func (s ListCustomMetricsInput) String() string {
43421	return awsutil.Prettify(s)
43422}
43423
43424// GoString returns the string representation
43425func (s ListCustomMetricsInput) GoString() string {
43426	return s.String()
43427}
43428
43429// Validate inspects the fields of the type to determine if they are valid.
43430func (s *ListCustomMetricsInput) Validate() error {
43431	invalidParams := request.ErrInvalidParams{Context: "ListCustomMetricsInput"}
43432	if s.MaxResults != nil && *s.MaxResults < 1 {
43433		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43434	}
43435
43436	if invalidParams.Len() > 0 {
43437		return invalidParams
43438	}
43439	return nil
43440}
43441
43442// SetMaxResults sets the MaxResults field's value.
43443func (s *ListCustomMetricsInput) SetMaxResults(v int64) *ListCustomMetricsInput {
43444	s.MaxResults = &v
43445	return s
43446}
43447
43448// SetNextToken sets the NextToken field's value.
43449func (s *ListCustomMetricsInput) SetNextToken(v string) *ListCustomMetricsInput {
43450	s.NextToken = &v
43451	return s
43452}
43453
43454type ListCustomMetricsOutput struct {
43455	_ struct{} `type:"structure"`
43456
43457	// The name of the custom metric.
43458	MetricNames []*string `locationName:"metricNames" type:"list"`
43459
43460	// A token that can be used to retrieve the next set of results, or null if
43461	// there are no additional results.
43462	NextToken *string `locationName:"nextToken" type:"string"`
43463}
43464
43465// String returns the string representation
43466func (s ListCustomMetricsOutput) String() string {
43467	return awsutil.Prettify(s)
43468}
43469
43470// GoString returns the string representation
43471func (s ListCustomMetricsOutput) GoString() string {
43472	return s.String()
43473}
43474
43475// SetMetricNames sets the MetricNames field's value.
43476func (s *ListCustomMetricsOutput) SetMetricNames(v []*string) *ListCustomMetricsOutput {
43477	s.MetricNames = v
43478	return s
43479}
43480
43481// SetNextToken sets the NextToken field's value.
43482func (s *ListCustomMetricsOutput) SetNextToken(v string) *ListCustomMetricsOutput {
43483	s.NextToken = &v
43484	return s
43485}
43486
43487type ListDetectMitigationActionsExecutionsInput struct {
43488	_ struct{} `type:"structure"`
43489
43490	// The end of the time period for which ML Detect mitigation actions executions
43491	// are returned.
43492	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp"`
43493
43494	// The maximum number of results to return at one time. The default is 25.
43495	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43496
43497	// The token for the next set of results.
43498	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43499
43500	// A filter to limit results to those found after the specified time. You must
43501	// specify either the startTime and endTime or the taskId, but not both.
43502	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp"`
43503
43504	// The unique identifier of the task.
43505	TaskId *string `location:"querystring" locationName:"taskId" min:"1" type:"string"`
43506
43507	// The name of the thing whose mitigation actions are listed.
43508	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
43509
43510	// The unique identifier of the violation.
43511	ViolationId *string `location:"querystring" locationName:"violationId" min:"1" type:"string"`
43512}
43513
43514// String returns the string representation
43515func (s ListDetectMitigationActionsExecutionsInput) String() string {
43516	return awsutil.Prettify(s)
43517}
43518
43519// GoString returns the string representation
43520func (s ListDetectMitigationActionsExecutionsInput) GoString() string {
43521	return s.String()
43522}
43523
43524// Validate inspects the fields of the type to determine if they are valid.
43525func (s *ListDetectMitigationActionsExecutionsInput) Validate() error {
43526	invalidParams := request.ErrInvalidParams{Context: "ListDetectMitigationActionsExecutionsInput"}
43527	if s.MaxResults != nil && *s.MaxResults < 1 {
43528		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43529	}
43530	if s.TaskId != nil && len(*s.TaskId) < 1 {
43531		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
43532	}
43533	if s.ThingName != nil && len(*s.ThingName) < 1 {
43534		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
43535	}
43536	if s.ViolationId != nil && len(*s.ViolationId) < 1 {
43537		invalidParams.Add(request.NewErrParamMinLen("ViolationId", 1))
43538	}
43539
43540	if invalidParams.Len() > 0 {
43541		return invalidParams
43542	}
43543	return nil
43544}
43545
43546// SetEndTime sets the EndTime field's value.
43547func (s *ListDetectMitigationActionsExecutionsInput) SetEndTime(v time.Time) *ListDetectMitigationActionsExecutionsInput {
43548	s.EndTime = &v
43549	return s
43550}
43551
43552// SetMaxResults sets the MaxResults field's value.
43553func (s *ListDetectMitigationActionsExecutionsInput) SetMaxResults(v int64) *ListDetectMitigationActionsExecutionsInput {
43554	s.MaxResults = &v
43555	return s
43556}
43557
43558// SetNextToken sets the NextToken field's value.
43559func (s *ListDetectMitigationActionsExecutionsInput) SetNextToken(v string) *ListDetectMitigationActionsExecutionsInput {
43560	s.NextToken = &v
43561	return s
43562}
43563
43564// SetStartTime sets the StartTime field's value.
43565func (s *ListDetectMitigationActionsExecutionsInput) SetStartTime(v time.Time) *ListDetectMitigationActionsExecutionsInput {
43566	s.StartTime = &v
43567	return s
43568}
43569
43570// SetTaskId sets the TaskId field's value.
43571func (s *ListDetectMitigationActionsExecutionsInput) SetTaskId(v string) *ListDetectMitigationActionsExecutionsInput {
43572	s.TaskId = &v
43573	return s
43574}
43575
43576// SetThingName sets the ThingName field's value.
43577func (s *ListDetectMitigationActionsExecutionsInput) SetThingName(v string) *ListDetectMitigationActionsExecutionsInput {
43578	s.ThingName = &v
43579	return s
43580}
43581
43582// SetViolationId sets the ViolationId field's value.
43583func (s *ListDetectMitigationActionsExecutionsInput) SetViolationId(v string) *ListDetectMitigationActionsExecutionsInput {
43584	s.ViolationId = &v
43585	return s
43586}
43587
43588type ListDetectMitigationActionsExecutionsOutput struct {
43589	_ struct{} `type:"structure"`
43590
43591	// List of actions executions.
43592	ActionsExecutions []*DetectMitigationActionExecution `locationName:"actionsExecutions" type:"list"`
43593
43594	// A token that can be used to retrieve the next set of results, or null if
43595	// there are no additional results.
43596	NextToken *string `locationName:"nextToken" type:"string"`
43597}
43598
43599// String returns the string representation
43600func (s ListDetectMitigationActionsExecutionsOutput) String() string {
43601	return awsutil.Prettify(s)
43602}
43603
43604// GoString returns the string representation
43605func (s ListDetectMitigationActionsExecutionsOutput) GoString() string {
43606	return s.String()
43607}
43608
43609// SetActionsExecutions sets the ActionsExecutions field's value.
43610func (s *ListDetectMitigationActionsExecutionsOutput) SetActionsExecutions(v []*DetectMitigationActionExecution) *ListDetectMitigationActionsExecutionsOutput {
43611	s.ActionsExecutions = v
43612	return s
43613}
43614
43615// SetNextToken sets the NextToken field's value.
43616func (s *ListDetectMitigationActionsExecutionsOutput) SetNextToken(v string) *ListDetectMitigationActionsExecutionsOutput {
43617	s.NextToken = &v
43618	return s
43619}
43620
43621type ListDetectMitigationActionsTasksInput struct {
43622	_ struct{} `type:"structure"`
43623
43624	// The end of the time period for which ML Detect mitigation actions tasks are
43625	// returned.
43626	//
43627	// EndTime is a required field
43628	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
43629
43630	// The maximum number of results to return at one time. The default is 25.
43631	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43632
43633	// The token for the next set of results.
43634	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43635
43636	// A filter to limit results to those found after the specified time. You must
43637	// specify either the startTime and endTime or the taskId, but not both.
43638	//
43639	// StartTime is a required field
43640	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
43641}
43642
43643// String returns the string representation
43644func (s ListDetectMitigationActionsTasksInput) String() string {
43645	return awsutil.Prettify(s)
43646}
43647
43648// GoString returns the string representation
43649func (s ListDetectMitigationActionsTasksInput) GoString() string {
43650	return s.String()
43651}
43652
43653// Validate inspects the fields of the type to determine if they are valid.
43654func (s *ListDetectMitigationActionsTasksInput) Validate() error {
43655	invalidParams := request.ErrInvalidParams{Context: "ListDetectMitigationActionsTasksInput"}
43656	if s.EndTime == nil {
43657		invalidParams.Add(request.NewErrParamRequired("EndTime"))
43658	}
43659	if s.MaxResults != nil && *s.MaxResults < 1 {
43660		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43661	}
43662	if s.StartTime == nil {
43663		invalidParams.Add(request.NewErrParamRequired("StartTime"))
43664	}
43665
43666	if invalidParams.Len() > 0 {
43667		return invalidParams
43668	}
43669	return nil
43670}
43671
43672// SetEndTime sets the EndTime field's value.
43673func (s *ListDetectMitigationActionsTasksInput) SetEndTime(v time.Time) *ListDetectMitigationActionsTasksInput {
43674	s.EndTime = &v
43675	return s
43676}
43677
43678// SetMaxResults sets the MaxResults field's value.
43679func (s *ListDetectMitigationActionsTasksInput) SetMaxResults(v int64) *ListDetectMitigationActionsTasksInput {
43680	s.MaxResults = &v
43681	return s
43682}
43683
43684// SetNextToken sets the NextToken field's value.
43685func (s *ListDetectMitigationActionsTasksInput) SetNextToken(v string) *ListDetectMitigationActionsTasksInput {
43686	s.NextToken = &v
43687	return s
43688}
43689
43690// SetStartTime sets the StartTime field's value.
43691func (s *ListDetectMitigationActionsTasksInput) SetStartTime(v time.Time) *ListDetectMitigationActionsTasksInput {
43692	s.StartTime = &v
43693	return s
43694}
43695
43696type ListDetectMitigationActionsTasksOutput struct {
43697	_ struct{} `type:"structure"`
43698
43699	// A token that can be used to retrieve the next set of results, or null if
43700	// there are no additional results.
43701	NextToken *string `locationName:"nextToken" type:"string"`
43702
43703	// The collection of ML Detect mitigation tasks that matched the filter criteria.
43704	Tasks []*DetectMitigationActionsTaskSummary `locationName:"tasks" type:"list"`
43705}
43706
43707// String returns the string representation
43708func (s ListDetectMitigationActionsTasksOutput) String() string {
43709	return awsutil.Prettify(s)
43710}
43711
43712// GoString returns the string representation
43713func (s ListDetectMitigationActionsTasksOutput) GoString() string {
43714	return s.String()
43715}
43716
43717// SetNextToken sets the NextToken field's value.
43718func (s *ListDetectMitigationActionsTasksOutput) SetNextToken(v string) *ListDetectMitigationActionsTasksOutput {
43719	s.NextToken = &v
43720	return s
43721}
43722
43723// SetTasks sets the Tasks field's value.
43724func (s *ListDetectMitigationActionsTasksOutput) SetTasks(v []*DetectMitigationActionsTaskSummary) *ListDetectMitigationActionsTasksOutput {
43725	s.Tasks = v
43726	return s
43727}
43728
43729type ListDimensionsInput struct {
43730	_ struct{} `type:"structure"`
43731
43732	// The maximum number of results to retrieve at one time.
43733	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43734
43735	// The token for the next set of results.
43736	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43737}
43738
43739// String returns the string representation
43740func (s ListDimensionsInput) String() string {
43741	return awsutil.Prettify(s)
43742}
43743
43744// GoString returns the string representation
43745func (s ListDimensionsInput) GoString() string {
43746	return s.String()
43747}
43748
43749// Validate inspects the fields of the type to determine if they are valid.
43750func (s *ListDimensionsInput) Validate() error {
43751	invalidParams := request.ErrInvalidParams{Context: "ListDimensionsInput"}
43752	if s.MaxResults != nil && *s.MaxResults < 1 {
43753		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43754	}
43755
43756	if invalidParams.Len() > 0 {
43757		return invalidParams
43758	}
43759	return nil
43760}
43761
43762// SetMaxResults sets the MaxResults field's value.
43763func (s *ListDimensionsInput) SetMaxResults(v int64) *ListDimensionsInput {
43764	s.MaxResults = &v
43765	return s
43766}
43767
43768// SetNextToken sets the NextToken field's value.
43769func (s *ListDimensionsInput) SetNextToken(v string) *ListDimensionsInput {
43770	s.NextToken = &v
43771	return s
43772}
43773
43774type ListDimensionsOutput struct {
43775	_ struct{} `type:"structure"`
43776
43777	// A list of the names of the defined dimensions. Use DescribeDimension to get
43778	// details for a dimension.
43779	DimensionNames []*string `locationName:"dimensionNames" type:"list"`
43780
43781	// A token that can be used to retrieve the next set of results, or null if
43782	// there are no additional results.
43783	NextToken *string `locationName:"nextToken" type:"string"`
43784}
43785
43786// String returns the string representation
43787func (s ListDimensionsOutput) String() string {
43788	return awsutil.Prettify(s)
43789}
43790
43791// GoString returns the string representation
43792func (s ListDimensionsOutput) GoString() string {
43793	return s.String()
43794}
43795
43796// SetDimensionNames sets the DimensionNames field's value.
43797func (s *ListDimensionsOutput) SetDimensionNames(v []*string) *ListDimensionsOutput {
43798	s.DimensionNames = v
43799	return s
43800}
43801
43802// SetNextToken sets the NextToken field's value.
43803func (s *ListDimensionsOutput) SetNextToken(v string) *ListDimensionsOutput {
43804	s.NextToken = &v
43805	return s
43806}
43807
43808type ListDomainConfigurationsInput struct {
43809	_ struct{} `type:"structure"`
43810
43811	// The marker for the next set of results.
43812	Marker *string `location:"querystring" locationName:"marker" type:"string"`
43813
43814	// The result page size.
43815	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
43816
43817	// The type of service delivered by the endpoint.
43818	ServiceType *string `location:"querystring" locationName:"serviceType" type:"string" enum:"ServiceType"`
43819}
43820
43821// String returns the string representation
43822func (s ListDomainConfigurationsInput) String() string {
43823	return awsutil.Prettify(s)
43824}
43825
43826// GoString returns the string representation
43827func (s ListDomainConfigurationsInput) GoString() string {
43828	return s.String()
43829}
43830
43831// Validate inspects the fields of the type to determine if they are valid.
43832func (s *ListDomainConfigurationsInput) Validate() error {
43833	invalidParams := request.ErrInvalidParams{Context: "ListDomainConfigurationsInput"}
43834	if s.PageSize != nil && *s.PageSize < 1 {
43835		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
43836	}
43837
43838	if invalidParams.Len() > 0 {
43839		return invalidParams
43840	}
43841	return nil
43842}
43843
43844// SetMarker sets the Marker field's value.
43845func (s *ListDomainConfigurationsInput) SetMarker(v string) *ListDomainConfigurationsInput {
43846	s.Marker = &v
43847	return s
43848}
43849
43850// SetPageSize sets the PageSize field's value.
43851func (s *ListDomainConfigurationsInput) SetPageSize(v int64) *ListDomainConfigurationsInput {
43852	s.PageSize = &v
43853	return s
43854}
43855
43856// SetServiceType sets the ServiceType field's value.
43857func (s *ListDomainConfigurationsInput) SetServiceType(v string) *ListDomainConfigurationsInput {
43858	s.ServiceType = &v
43859	return s
43860}
43861
43862type ListDomainConfigurationsOutput struct {
43863	_ struct{} `type:"structure"`
43864
43865	// A list of objects that contain summary information about the user's domain
43866	// configurations.
43867	DomainConfigurations []*DomainConfigurationSummary `locationName:"domainConfigurations" type:"list"`
43868
43869	// The marker for the next set of results.
43870	NextMarker *string `locationName:"nextMarker" type:"string"`
43871}
43872
43873// String returns the string representation
43874func (s ListDomainConfigurationsOutput) String() string {
43875	return awsutil.Prettify(s)
43876}
43877
43878// GoString returns the string representation
43879func (s ListDomainConfigurationsOutput) GoString() string {
43880	return s.String()
43881}
43882
43883// SetDomainConfigurations sets the DomainConfigurations field's value.
43884func (s *ListDomainConfigurationsOutput) SetDomainConfigurations(v []*DomainConfigurationSummary) *ListDomainConfigurationsOutput {
43885	s.DomainConfigurations = v
43886	return s
43887}
43888
43889// SetNextMarker sets the NextMarker field's value.
43890func (s *ListDomainConfigurationsOutput) SetNextMarker(v string) *ListDomainConfigurationsOutput {
43891	s.NextMarker = &v
43892	return s
43893}
43894
43895type ListIndicesInput struct {
43896	_ struct{} `type:"structure"`
43897
43898	// The maximum number of results to return at one time.
43899	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43900
43901	// The token used to get the next set of results, or null if there are no additional
43902	// results.
43903	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43904}
43905
43906// String returns the string representation
43907func (s ListIndicesInput) String() string {
43908	return awsutil.Prettify(s)
43909}
43910
43911// GoString returns the string representation
43912func (s ListIndicesInput) GoString() string {
43913	return s.String()
43914}
43915
43916// Validate inspects the fields of the type to determine if they are valid.
43917func (s *ListIndicesInput) Validate() error {
43918	invalidParams := request.ErrInvalidParams{Context: "ListIndicesInput"}
43919	if s.MaxResults != nil && *s.MaxResults < 1 {
43920		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43921	}
43922
43923	if invalidParams.Len() > 0 {
43924		return invalidParams
43925	}
43926	return nil
43927}
43928
43929// SetMaxResults sets the MaxResults field's value.
43930func (s *ListIndicesInput) SetMaxResults(v int64) *ListIndicesInput {
43931	s.MaxResults = &v
43932	return s
43933}
43934
43935// SetNextToken sets the NextToken field's value.
43936func (s *ListIndicesInput) SetNextToken(v string) *ListIndicesInput {
43937	s.NextToken = &v
43938	return s
43939}
43940
43941type ListIndicesOutput struct {
43942	_ struct{} `type:"structure"`
43943
43944	// The index names.
43945	IndexNames []*string `locationName:"indexNames" type:"list"`
43946
43947	// The token used to get the next set of results, or null if there are no additional
43948	// results.
43949	NextToken *string `locationName:"nextToken" type:"string"`
43950}
43951
43952// String returns the string representation
43953func (s ListIndicesOutput) String() string {
43954	return awsutil.Prettify(s)
43955}
43956
43957// GoString returns the string representation
43958func (s ListIndicesOutput) GoString() string {
43959	return s.String()
43960}
43961
43962// SetIndexNames sets the IndexNames field's value.
43963func (s *ListIndicesOutput) SetIndexNames(v []*string) *ListIndicesOutput {
43964	s.IndexNames = v
43965	return s
43966}
43967
43968// SetNextToken sets the NextToken field's value.
43969func (s *ListIndicesOutput) SetNextToken(v string) *ListIndicesOutput {
43970	s.NextToken = &v
43971	return s
43972}
43973
43974type ListJobExecutionsForJobInput struct {
43975	_ struct{} `type:"structure"`
43976
43977	// The unique identifier you assigned to this job when it was created.
43978	//
43979	// JobId is a required field
43980	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
43981
43982	// The maximum number of results to be returned per request.
43983	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43984
43985	// The token to retrieve the next set of results.
43986	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43987
43988	// The status of the job.
43989	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
43990}
43991
43992// String returns the string representation
43993func (s ListJobExecutionsForJobInput) String() string {
43994	return awsutil.Prettify(s)
43995}
43996
43997// GoString returns the string representation
43998func (s ListJobExecutionsForJobInput) GoString() string {
43999	return s.String()
44000}
44001
44002// Validate inspects the fields of the type to determine if they are valid.
44003func (s *ListJobExecutionsForJobInput) Validate() error {
44004	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForJobInput"}
44005	if s.JobId == nil {
44006		invalidParams.Add(request.NewErrParamRequired("JobId"))
44007	}
44008	if s.JobId != nil && len(*s.JobId) < 1 {
44009		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
44010	}
44011	if s.MaxResults != nil && *s.MaxResults < 1 {
44012		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44013	}
44014
44015	if invalidParams.Len() > 0 {
44016		return invalidParams
44017	}
44018	return nil
44019}
44020
44021// SetJobId sets the JobId field's value.
44022func (s *ListJobExecutionsForJobInput) SetJobId(v string) *ListJobExecutionsForJobInput {
44023	s.JobId = &v
44024	return s
44025}
44026
44027// SetMaxResults sets the MaxResults field's value.
44028func (s *ListJobExecutionsForJobInput) SetMaxResults(v int64) *ListJobExecutionsForJobInput {
44029	s.MaxResults = &v
44030	return s
44031}
44032
44033// SetNextToken sets the NextToken field's value.
44034func (s *ListJobExecutionsForJobInput) SetNextToken(v string) *ListJobExecutionsForJobInput {
44035	s.NextToken = &v
44036	return s
44037}
44038
44039// SetStatus sets the Status field's value.
44040func (s *ListJobExecutionsForJobInput) SetStatus(v string) *ListJobExecutionsForJobInput {
44041	s.Status = &v
44042	return s
44043}
44044
44045type ListJobExecutionsForJobOutput struct {
44046	_ struct{} `type:"structure"`
44047
44048	// A list of job execution summaries.
44049	ExecutionSummaries []*JobExecutionSummaryForJob `locationName:"executionSummaries" type:"list"`
44050
44051	// The token for the next set of results, or null if there are no additional
44052	// results.
44053	NextToken *string `locationName:"nextToken" type:"string"`
44054}
44055
44056// String returns the string representation
44057func (s ListJobExecutionsForJobOutput) String() string {
44058	return awsutil.Prettify(s)
44059}
44060
44061// GoString returns the string representation
44062func (s ListJobExecutionsForJobOutput) GoString() string {
44063	return s.String()
44064}
44065
44066// SetExecutionSummaries sets the ExecutionSummaries field's value.
44067func (s *ListJobExecutionsForJobOutput) SetExecutionSummaries(v []*JobExecutionSummaryForJob) *ListJobExecutionsForJobOutput {
44068	s.ExecutionSummaries = v
44069	return s
44070}
44071
44072// SetNextToken sets the NextToken field's value.
44073func (s *ListJobExecutionsForJobOutput) SetNextToken(v string) *ListJobExecutionsForJobOutput {
44074	s.NextToken = &v
44075	return s
44076}
44077
44078type ListJobExecutionsForThingInput struct {
44079	_ struct{} `type:"structure"`
44080
44081	// The maximum number of results to be returned per request.
44082	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44083
44084	// The namespace used to indicate that a job is a customer-managed job.
44085	//
44086	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
44087	// to MQTT topics that contain the value in the following format.
44088	//
44089	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
44090	//
44091	// The namespaceId feature is in public preview.
44092	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
44093
44094	// The token to retrieve the next set of results.
44095	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44096
44097	// An optional filter that lets you search for jobs that have the specified
44098	// status.
44099	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
44100
44101	// The thing name.
44102	//
44103	// ThingName is a required field
44104	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
44105}
44106
44107// String returns the string representation
44108func (s ListJobExecutionsForThingInput) String() string {
44109	return awsutil.Prettify(s)
44110}
44111
44112// GoString returns the string representation
44113func (s ListJobExecutionsForThingInput) GoString() string {
44114	return s.String()
44115}
44116
44117// Validate inspects the fields of the type to determine if they are valid.
44118func (s *ListJobExecutionsForThingInput) Validate() error {
44119	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForThingInput"}
44120	if s.MaxResults != nil && *s.MaxResults < 1 {
44121		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44122	}
44123	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
44124		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
44125	}
44126	if s.ThingName == nil {
44127		invalidParams.Add(request.NewErrParamRequired("ThingName"))
44128	}
44129	if s.ThingName != nil && len(*s.ThingName) < 1 {
44130		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
44131	}
44132
44133	if invalidParams.Len() > 0 {
44134		return invalidParams
44135	}
44136	return nil
44137}
44138
44139// SetMaxResults sets the MaxResults field's value.
44140func (s *ListJobExecutionsForThingInput) SetMaxResults(v int64) *ListJobExecutionsForThingInput {
44141	s.MaxResults = &v
44142	return s
44143}
44144
44145// SetNamespaceId sets the NamespaceId field's value.
44146func (s *ListJobExecutionsForThingInput) SetNamespaceId(v string) *ListJobExecutionsForThingInput {
44147	s.NamespaceId = &v
44148	return s
44149}
44150
44151// SetNextToken sets the NextToken field's value.
44152func (s *ListJobExecutionsForThingInput) SetNextToken(v string) *ListJobExecutionsForThingInput {
44153	s.NextToken = &v
44154	return s
44155}
44156
44157// SetStatus sets the Status field's value.
44158func (s *ListJobExecutionsForThingInput) SetStatus(v string) *ListJobExecutionsForThingInput {
44159	s.Status = &v
44160	return s
44161}
44162
44163// SetThingName sets the ThingName field's value.
44164func (s *ListJobExecutionsForThingInput) SetThingName(v string) *ListJobExecutionsForThingInput {
44165	s.ThingName = &v
44166	return s
44167}
44168
44169type ListJobExecutionsForThingOutput struct {
44170	_ struct{} `type:"structure"`
44171
44172	// A list of job execution summaries.
44173	ExecutionSummaries []*JobExecutionSummaryForThing `locationName:"executionSummaries" type:"list"`
44174
44175	// The token for the next set of results, or null if there are no additional
44176	// results.
44177	NextToken *string `locationName:"nextToken" type:"string"`
44178}
44179
44180// String returns the string representation
44181func (s ListJobExecutionsForThingOutput) String() string {
44182	return awsutil.Prettify(s)
44183}
44184
44185// GoString returns the string representation
44186func (s ListJobExecutionsForThingOutput) GoString() string {
44187	return s.String()
44188}
44189
44190// SetExecutionSummaries sets the ExecutionSummaries field's value.
44191func (s *ListJobExecutionsForThingOutput) SetExecutionSummaries(v []*JobExecutionSummaryForThing) *ListJobExecutionsForThingOutput {
44192	s.ExecutionSummaries = v
44193	return s
44194}
44195
44196// SetNextToken sets the NextToken field's value.
44197func (s *ListJobExecutionsForThingOutput) SetNextToken(v string) *ListJobExecutionsForThingOutput {
44198	s.NextToken = &v
44199	return s
44200}
44201
44202type ListJobTemplatesInput struct {
44203	_ struct{} `type:"structure"`
44204
44205	// The maximum number of results to return in the list.
44206	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44207
44208	// The token to use to return the next set of results in the list.
44209	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44210}
44211
44212// String returns the string representation
44213func (s ListJobTemplatesInput) String() string {
44214	return awsutil.Prettify(s)
44215}
44216
44217// GoString returns the string representation
44218func (s ListJobTemplatesInput) GoString() string {
44219	return s.String()
44220}
44221
44222// Validate inspects the fields of the type to determine if they are valid.
44223func (s *ListJobTemplatesInput) Validate() error {
44224	invalidParams := request.ErrInvalidParams{Context: "ListJobTemplatesInput"}
44225	if s.MaxResults != nil && *s.MaxResults < 1 {
44226		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44227	}
44228
44229	if invalidParams.Len() > 0 {
44230		return invalidParams
44231	}
44232	return nil
44233}
44234
44235// SetMaxResults sets the MaxResults field's value.
44236func (s *ListJobTemplatesInput) SetMaxResults(v int64) *ListJobTemplatesInput {
44237	s.MaxResults = &v
44238	return s
44239}
44240
44241// SetNextToken sets the NextToken field's value.
44242func (s *ListJobTemplatesInput) SetNextToken(v string) *ListJobTemplatesInput {
44243	s.NextToken = &v
44244	return s
44245}
44246
44247type ListJobTemplatesOutput struct {
44248	_ struct{} `type:"structure"`
44249
44250	// A list of objects that contain information about the job templates.
44251	JobTemplates []*JobTemplateSummary `locationName:"jobTemplates" type:"list"`
44252
44253	// The token for the next set of results, or null if there are no additional
44254	// results.
44255	NextToken *string `locationName:"nextToken" type:"string"`
44256}
44257
44258// String returns the string representation
44259func (s ListJobTemplatesOutput) String() string {
44260	return awsutil.Prettify(s)
44261}
44262
44263// GoString returns the string representation
44264func (s ListJobTemplatesOutput) GoString() string {
44265	return s.String()
44266}
44267
44268// SetJobTemplates sets the JobTemplates field's value.
44269func (s *ListJobTemplatesOutput) SetJobTemplates(v []*JobTemplateSummary) *ListJobTemplatesOutput {
44270	s.JobTemplates = v
44271	return s
44272}
44273
44274// SetNextToken sets the NextToken field's value.
44275func (s *ListJobTemplatesOutput) SetNextToken(v string) *ListJobTemplatesOutput {
44276	s.NextToken = &v
44277	return s
44278}
44279
44280type ListJobsInput struct {
44281	_ struct{} `type:"structure"`
44282
44283	// The maximum number of results to return per request.
44284	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44285
44286	// The namespace used to indicate that a job is a customer-managed job.
44287	//
44288	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
44289	// to MQTT topics that contain the value in the following format.
44290	//
44291	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
44292	//
44293	// The namespaceId feature is in public preview.
44294	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
44295
44296	// The token to retrieve the next set of results.
44297	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44298
44299	// An optional filter that lets you search for jobs that have the specified
44300	// status.
44301	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobStatus"`
44302
44303	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
44304	// after all those things specified as targets have completed the job (SNAPSHOT).
44305	// If continuous, the job may also be run on a thing when a change is detected
44306	// in a target. For example, a job will run on a thing when the thing is added
44307	// to a target group, even after the job was completed by all things originally
44308	// in the group.
44309	TargetSelection *string `location:"querystring" locationName:"targetSelection" type:"string" enum:"TargetSelection"`
44310
44311	// A filter that limits the returned jobs to those for the specified group.
44312	ThingGroupId *string `location:"querystring" locationName:"thingGroupId" min:"1" type:"string"`
44313
44314	// A filter that limits the returned jobs to those for the specified group.
44315	ThingGroupName *string `location:"querystring" locationName:"thingGroupName" min:"1" type:"string"`
44316}
44317
44318// String returns the string representation
44319func (s ListJobsInput) String() string {
44320	return awsutil.Prettify(s)
44321}
44322
44323// GoString returns the string representation
44324func (s ListJobsInput) GoString() string {
44325	return s.String()
44326}
44327
44328// Validate inspects the fields of the type to determine if they are valid.
44329func (s *ListJobsInput) Validate() error {
44330	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
44331	if s.MaxResults != nil && *s.MaxResults < 1 {
44332		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44333	}
44334	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
44335		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
44336	}
44337	if s.ThingGroupId != nil && len(*s.ThingGroupId) < 1 {
44338		invalidParams.Add(request.NewErrParamMinLen("ThingGroupId", 1))
44339	}
44340	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
44341		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
44342	}
44343
44344	if invalidParams.Len() > 0 {
44345		return invalidParams
44346	}
44347	return nil
44348}
44349
44350// SetMaxResults sets the MaxResults field's value.
44351func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
44352	s.MaxResults = &v
44353	return s
44354}
44355
44356// SetNamespaceId sets the NamespaceId field's value.
44357func (s *ListJobsInput) SetNamespaceId(v string) *ListJobsInput {
44358	s.NamespaceId = &v
44359	return s
44360}
44361
44362// SetNextToken sets the NextToken field's value.
44363func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
44364	s.NextToken = &v
44365	return s
44366}
44367
44368// SetStatus sets the Status field's value.
44369func (s *ListJobsInput) SetStatus(v string) *ListJobsInput {
44370	s.Status = &v
44371	return s
44372}
44373
44374// SetTargetSelection sets the TargetSelection field's value.
44375func (s *ListJobsInput) SetTargetSelection(v string) *ListJobsInput {
44376	s.TargetSelection = &v
44377	return s
44378}
44379
44380// SetThingGroupId sets the ThingGroupId field's value.
44381func (s *ListJobsInput) SetThingGroupId(v string) *ListJobsInput {
44382	s.ThingGroupId = &v
44383	return s
44384}
44385
44386// SetThingGroupName sets the ThingGroupName field's value.
44387func (s *ListJobsInput) SetThingGroupName(v string) *ListJobsInput {
44388	s.ThingGroupName = &v
44389	return s
44390}
44391
44392type ListJobsOutput struct {
44393	_ struct{} `type:"structure"`
44394
44395	// A list of jobs.
44396	Jobs []*JobSummary `locationName:"jobs" type:"list"`
44397
44398	// The token for the next set of results, or null if there are no additional
44399	// results.
44400	NextToken *string `locationName:"nextToken" type:"string"`
44401}
44402
44403// String returns the string representation
44404func (s ListJobsOutput) String() string {
44405	return awsutil.Prettify(s)
44406}
44407
44408// GoString returns the string representation
44409func (s ListJobsOutput) GoString() string {
44410	return s.String()
44411}
44412
44413// SetJobs sets the Jobs field's value.
44414func (s *ListJobsOutput) SetJobs(v []*JobSummary) *ListJobsOutput {
44415	s.Jobs = v
44416	return s
44417}
44418
44419// SetNextToken sets the NextToken field's value.
44420func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
44421	s.NextToken = &v
44422	return s
44423}
44424
44425type ListMitigationActionsInput struct {
44426	_ struct{} `type:"structure"`
44427
44428	// Specify a value to limit the result to mitigation actions with a specific
44429	// action type.
44430	ActionType *string `location:"querystring" locationName:"actionType" type:"string" enum:"MitigationActionType"`
44431
44432	// The maximum number of results to return at one time. The default is 25.
44433	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44434
44435	// The token for the next set of results.
44436	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44437}
44438
44439// String returns the string representation
44440func (s ListMitigationActionsInput) String() string {
44441	return awsutil.Prettify(s)
44442}
44443
44444// GoString returns the string representation
44445func (s ListMitigationActionsInput) GoString() string {
44446	return s.String()
44447}
44448
44449// Validate inspects the fields of the type to determine if they are valid.
44450func (s *ListMitigationActionsInput) Validate() error {
44451	invalidParams := request.ErrInvalidParams{Context: "ListMitigationActionsInput"}
44452	if s.MaxResults != nil && *s.MaxResults < 1 {
44453		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44454	}
44455
44456	if invalidParams.Len() > 0 {
44457		return invalidParams
44458	}
44459	return nil
44460}
44461
44462// SetActionType sets the ActionType field's value.
44463func (s *ListMitigationActionsInput) SetActionType(v string) *ListMitigationActionsInput {
44464	s.ActionType = &v
44465	return s
44466}
44467
44468// SetMaxResults sets the MaxResults field's value.
44469func (s *ListMitigationActionsInput) SetMaxResults(v int64) *ListMitigationActionsInput {
44470	s.MaxResults = &v
44471	return s
44472}
44473
44474// SetNextToken sets the NextToken field's value.
44475func (s *ListMitigationActionsInput) SetNextToken(v string) *ListMitigationActionsInput {
44476	s.NextToken = &v
44477	return s
44478}
44479
44480type ListMitigationActionsOutput struct {
44481	_ struct{} `type:"structure"`
44482
44483	// A set of actions that matched the specified filter criteria.
44484	ActionIdentifiers []*MitigationActionIdentifier `locationName:"actionIdentifiers" type:"list"`
44485
44486	// The token for the next set of results.
44487	NextToken *string `locationName:"nextToken" type:"string"`
44488}
44489
44490// String returns the string representation
44491func (s ListMitigationActionsOutput) String() string {
44492	return awsutil.Prettify(s)
44493}
44494
44495// GoString returns the string representation
44496func (s ListMitigationActionsOutput) GoString() string {
44497	return s.String()
44498}
44499
44500// SetActionIdentifiers sets the ActionIdentifiers field's value.
44501func (s *ListMitigationActionsOutput) SetActionIdentifiers(v []*MitigationActionIdentifier) *ListMitigationActionsOutput {
44502	s.ActionIdentifiers = v
44503	return s
44504}
44505
44506// SetNextToken sets the NextToken field's value.
44507func (s *ListMitigationActionsOutput) SetNextToken(v string) *ListMitigationActionsOutput {
44508	s.NextToken = &v
44509	return s
44510}
44511
44512type ListOTAUpdatesInput struct {
44513	_ struct{} `type:"structure"`
44514
44515	// The maximum number of results to return at one time.
44516	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44517
44518	// A token used to retrieve the next set of results.
44519	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44520
44521	// The OTA update job status.
44522	OtaUpdateStatus *string `location:"querystring" locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
44523}
44524
44525// String returns the string representation
44526func (s ListOTAUpdatesInput) String() string {
44527	return awsutil.Prettify(s)
44528}
44529
44530// GoString returns the string representation
44531func (s ListOTAUpdatesInput) GoString() string {
44532	return s.String()
44533}
44534
44535// Validate inspects the fields of the type to determine if they are valid.
44536func (s *ListOTAUpdatesInput) Validate() error {
44537	invalidParams := request.ErrInvalidParams{Context: "ListOTAUpdatesInput"}
44538	if s.MaxResults != nil && *s.MaxResults < 1 {
44539		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44540	}
44541
44542	if invalidParams.Len() > 0 {
44543		return invalidParams
44544	}
44545	return nil
44546}
44547
44548// SetMaxResults sets the MaxResults field's value.
44549func (s *ListOTAUpdatesInput) SetMaxResults(v int64) *ListOTAUpdatesInput {
44550	s.MaxResults = &v
44551	return s
44552}
44553
44554// SetNextToken sets the NextToken field's value.
44555func (s *ListOTAUpdatesInput) SetNextToken(v string) *ListOTAUpdatesInput {
44556	s.NextToken = &v
44557	return s
44558}
44559
44560// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
44561func (s *ListOTAUpdatesInput) SetOtaUpdateStatus(v string) *ListOTAUpdatesInput {
44562	s.OtaUpdateStatus = &v
44563	return s
44564}
44565
44566type ListOTAUpdatesOutput struct {
44567	_ struct{} `type:"structure"`
44568
44569	// A token to use to get the next set of results.
44570	NextToken *string `locationName:"nextToken" type:"string"`
44571
44572	// A list of OTA update jobs.
44573	OtaUpdates []*OTAUpdateSummary `locationName:"otaUpdates" type:"list"`
44574}
44575
44576// String returns the string representation
44577func (s ListOTAUpdatesOutput) String() string {
44578	return awsutil.Prettify(s)
44579}
44580
44581// GoString returns the string representation
44582func (s ListOTAUpdatesOutput) GoString() string {
44583	return s.String()
44584}
44585
44586// SetNextToken sets the NextToken field's value.
44587func (s *ListOTAUpdatesOutput) SetNextToken(v string) *ListOTAUpdatesOutput {
44588	s.NextToken = &v
44589	return s
44590}
44591
44592// SetOtaUpdates sets the OtaUpdates field's value.
44593func (s *ListOTAUpdatesOutput) SetOtaUpdates(v []*OTAUpdateSummary) *ListOTAUpdatesOutput {
44594	s.OtaUpdates = v
44595	return s
44596}
44597
44598// The input to the ListOutgoingCertificates operation.
44599type ListOutgoingCertificatesInput struct {
44600	_ struct{} `type:"structure"`
44601
44602	// Specifies the order for results. If True, the results are returned in ascending
44603	// order, based on the creation date.
44604	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
44605
44606	// The marker for the next set of results.
44607	Marker *string `location:"querystring" locationName:"marker" type:"string"`
44608
44609	// The result page size.
44610	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
44611}
44612
44613// String returns the string representation
44614func (s ListOutgoingCertificatesInput) String() string {
44615	return awsutil.Prettify(s)
44616}
44617
44618// GoString returns the string representation
44619func (s ListOutgoingCertificatesInput) GoString() string {
44620	return s.String()
44621}
44622
44623// Validate inspects the fields of the type to determine if they are valid.
44624func (s *ListOutgoingCertificatesInput) Validate() error {
44625	invalidParams := request.ErrInvalidParams{Context: "ListOutgoingCertificatesInput"}
44626	if s.PageSize != nil && *s.PageSize < 1 {
44627		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
44628	}
44629
44630	if invalidParams.Len() > 0 {
44631		return invalidParams
44632	}
44633	return nil
44634}
44635
44636// SetAscendingOrder sets the AscendingOrder field's value.
44637func (s *ListOutgoingCertificatesInput) SetAscendingOrder(v bool) *ListOutgoingCertificatesInput {
44638	s.AscendingOrder = &v
44639	return s
44640}
44641
44642// SetMarker sets the Marker field's value.
44643func (s *ListOutgoingCertificatesInput) SetMarker(v string) *ListOutgoingCertificatesInput {
44644	s.Marker = &v
44645	return s
44646}
44647
44648// SetPageSize sets the PageSize field's value.
44649func (s *ListOutgoingCertificatesInput) SetPageSize(v int64) *ListOutgoingCertificatesInput {
44650	s.PageSize = &v
44651	return s
44652}
44653
44654// The output from the ListOutgoingCertificates operation.
44655type ListOutgoingCertificatesOutput struct {
44656	_ struct{} `type:"structure"`
44657
44658	// The marker for the next set of results.
44659	NextMarker *string `locationName:"nextMarker" type:"string"`
44660
44661	// The certificates that are being transferred but not yet accepted.
44662	OutgoingCertificates []*OutgoingCertificate `locationName:"outgoingCertificates" type:"list"`
44663}
44664
44665// String returns the string representation
44666func (s ListOutgoingCertificatesOutput) String() string {
44667	return awsutil.Prettify(s)
44668}
44669
44670// GoString returns the string representation
44671func (s ListOutgoingCertificatesOutput) GoString() string {
44672	return s.String()
44673}
44674
44675// SetNextMarker sets the NextMarker field's value.
44676func (s *ListOutgoingCertificatesOutput) SetNextMarker(v string) *ListOutgoingCertificatesOutput {
44677	s.NextMarker = &v
44678	return s
44679}
44680
44681// SetOutgoingCertificates sets the OutgoingCertificates field's value.
44682func (s *ListOutgoingCertificatesOutput) SetOutgoingCertificates(v []*OutgoingCertificate) *ListOutgoingCertificatesOutput {
44683	s.OutgoingCertificates = v
44684	return s
44685}
44686
44687// The input for the ListPolicies operation.
44688type ListPoliciesInput struct {
44689	_ struct{} `type:"structure"`
44690
44691	// Specifies the order for results. If true, the results are returned in ascending
44692	// creation order.
44693	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
44694
44695	// The marker for the next set of results.
44696	Marker *string `location:"querystring" locationName:"marker" type:"string"`
44697
44698	// The result page size.
44699	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
44700}
44701
44702// String returns the string representation
44703func (s ListPoliciesInput) String() string {
44704	return awsutil.Prettify(s)
44705}
44706
44707// GoString returns the string representation
44708func (s ListPoliciesInput) GoString() string {
44709	return s.String()
44710}
44711
44712// Validate inspects the fields of the type to determine if they are valid.
44713func (s *ListPoliciesInput) Validate() error {
44714	invalidParams := request.ErrInvalidParams{Context: "ListPoliciesInput"}
44715	if s.PageSize != nil && *s.PageSize < 1 {
44716		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
44717	}
44718
44719	if invalidParams.Len() > 0 {
44720		return invalidParams
44721	}
44722	return nil
44723}
44724
44725// SetAscendingOrder sets the AscendingOrder field's value.
44726func (s *ListPoliciesInput) SetAscendingOrder(v bool) *ListPoliciesInput {
44727	s.AscendingOrder = &v
44728	return s
44729}
44730
44731// SetMarker sets the Marker field's value.
44732func (s *ListPoliciesInput) SetMarker(v string) *ListPoliciesInput {
44733	s.Marker = &v
44734	return s
44735}
44736
44737// SetPageSize sets the PageSize field's value.
44738func (s *ListPoliciesInput) SetPageSize(v int64) *ListPoliciesInput {
44739	s.PageSize = &v
44740	return s
44741}
44742
44743// The output from the ListPolicies operation.
44744type ListPoliciesOutput struct {
44745	_ struct{} `type:"structure"`
44746
44747	// The marker for the next set of results, or null if there are no additional
44748	// results.
44749	NextMarker *string `locationName:"nextMarker" type:"string"`
44750
44751	// The descriptions of the policies.
44752	Policies []*Policy `locationName:"policies" type:"list"`
44753}
44754
44755// String returns the string representation
44756func (s ListPoliciesOutput) String() string {
44757	return awsutil.Prettify(s)
44758}
44759
44760// GoString returns the string representation
44761func (s ListPoliciesOutput) GoString() string {
44762	return s.String()
44763}
44764
44765// SetNextMarker sets the NextMarker field's value.
44766func (s *ListPoliciesOutput) SetNextMarker(v string) *ListPoliciesOutput {
44767	s.NextMarker = &v
44768	return s
44769}
44770
44771// SetPolicies sets the Policies field's value.
44772func (s *ListPoliciesOutput) SetPolicies(v []*Policy) *ListPoliciesOutput {
44773	s.Policies = v
44774	return s
44775}
44776
44777// The input for the ListPolicyPrincipals operation.
44778type ListPolicyPrincipalsInput struct {
44779	_ struct{} `type:"structure"`
44780
44781	// Specifies the order for results. If true, the results are returned in ascending
44782	// creation order.
44783	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
44784
44785	// The marker for the next set of results.
44786	Marker *string `location:"querystring" locationName:"marker" type:"string"`
44787
44788	// The result page size.
44789	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
44790
44791	// The policy name.
44792	//
44793	// PolicyName is a required field
44794	PolicyName *string `location:"header" locationName:"x-amzn-iot-policy" min:"1" type:"string" required:"true"`
44795}
44796
44797// String returns the string representation
44798func (s ListPolicyPrincipalsInput) String() string {
44799	return awsutil.Prettify(s)
44800}
44801
44802// GoString returns the string representation
44803func (s ListPolicyPrincipalsInput) GoString() string {
44804	return s.String()
44805}
44806
44807// Validate inspects the fields of the type to determine if they are valid.
44808func (s *ListPolicyPrincipalsInput) Validate() error {
44809	invalidParams := request.ErrInvalidParams{Context: "ListPolicyPrincipalsInput"}
44810	if s.PageSize != nil && *s.PageSize < 1 {
44811		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
44812	}
44813	if s.PolicyName == nil {
44814		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
44815	}
44816	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
44817		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
44818	}
44819
44820	if invalidParams.Len() > 0 {
44821		return invalidParams
44822	}
44823	return nil
44824}
44825
44826// SetAscendingOrder sets the AscendingOrder field's value.
44827func (s *ListPolicyPrincipalsInput) SetAscendingOrder(v bool) *ListPolicyPrincipalsInput {
44828	s.AscendingOrder = &v
44829	return s
44830}
44831
44832// SetMarker sets the Marker field's value.
44833func (s *ListPolicyPrincipalsInput) SetMarker(v string) *ListPolicyPrincipalsInput {
44834	s.Marker = &v
44835	return s
44836}
44837
44838// SetPageSize sets the PageSize field's value.
44839func (s *ListPolicyPrincipalsInput) SetPageSize(v int64) *ListPolicyPrincipalsInput {
44840	s.PageSize = &v
44841	return s
44842}
44843
44844// SetPolicyName sets the PolicyName field's value.
44845func (s *ListPolicyPrincipalsInput) SetPolicyName(v string) *ListPolicyPrincipalsInput {
44846	s.PolicyName = &v
44847	return s
44848}
44849
44850// The output from the ListPolicyPrincipals operation.
44851type ListPolicyPrincipalsOutput struct {
44852	_ struct{} `type:"structure"`
44853
44854	// The marker for the next set of results, or null if there are no additional
44855	// results.
44856	NextMarker *string `locationName:"nextMarker" type:"string"`
44857
44858	// The descriptions of the principals.
44859	Principals []*string `locationName:"principals" type:"list"`
44860}
44861
44862// String returns the string representation
44863func (s ListPolicyPrincipalsOutput) String() string {
44864	return awsutil.Prettify(s)
44865}
44866
44867// GoString returns the string representation
44868func (s ListPolicyPrincipalsOutput) GoString() string {
44869	return s.String()
44870}
44871
44872// SetNextMarker sets the NextMarker field's value.
44873func (s *ListPolicyPrincipalsOutput) SetNextMarker(v string) *ListPolicyPrincipalsOutput {
44874	s.NextMarker = &v
44875	return s
44876}
44877
44878// SetPrincipals sets the Principals field's value.
44879func (s *ListPolicyPrincipalsOutput) SetPrincipals(v []*string) *ListPolicyPrincipalsOutput {
44880	s.Principals = v
44881	return s
44882}
44883
44884// The input for the ListPolicyVersions operation.
44885type ListPolicyVersionsInput struct {
44886	_ struct{} `type:"structure"`
44887
44888	// The policy name.
44889	//
44890	// PolicyName is a required field
44891	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
44892}
44893
44894// String returns the string representation
44895func (s ListPolicyVersionsInput) String() string {
44896	return awsutil.Prettify(s)
44897}
44898
44899// GoString returns the string representation
44900func (s ListPolicyVersionsInput) GoString() string {
44901	return s.String()
44902}
44903
44904// Validate inspects the fields of the type to determine if they are valid.
44905func (s *ListPolicyVersionsInput) Validate() error {
44906	invalidParams := request.ErrInvalidParams{Context: "ListPolicyVersionsInput"}
44907	if s.PolicyName == nil {
44908		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
44909	}
44910	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
44911		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
44912	}
44913
44914	if invalidParams.Len() > 0 {
44915		return invalidParams
44916	}
44917	return nil
44918}
44919
44920// SetPolicyName sets the PolicyName field's value.
44921func (s *ListPolicyVersionsInput) SetPolicyName(v string) *ListPolicyVersionsInput {
44922	s.PolicyName = &v
44923	return s
44924}
44925
44926// The output from the ListPolicyVersions operation.
44927type ListPolicyVersionsOutput struct {
44928	_ struct{} `type:"structure"`
44929
44930	// The policy versions.
44931	PolicyVersions []*PolicyVersion `locationName:"policyVersions" type:"list"`
44932}
44933
44934// String returns the string representation
44935func (s ListPolicyVersionsOutput) String() string {
44936	return awsutil.Prettify(s)
44937}
44938
44939// GoString returns the string representation
44940func (s ListPolicyVersionsOutput) GoString() string {
44941	return s.String()
44942}
44943
44944// SetPolicyVersions sets the PolicyVersions field's value.
44945func (s *ListPolicyVersionsOutput) SetPolicyVersions(v []*PolicyVersion) *ListPolicyVersionsOutput {
44946	s.PolicyVersions = v
44947	return s
44948}
44949
44950// The input for the ListPrincipalPolicies operation.
44951type ListPrincipalPoliciesInput struct {
44952	_ struct{} `type:"structure"`
44953
44954	// Specifies the order for results. If true, results are returned in ascending
44955	// creation order.
44956	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
44957
44958	// The marker for the next set of results.
44959	Marker *string `location:"querystring" locationName:"marker" type:"string"`
44960
44961	// The result page size.
44962	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
44963
44964	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
44965	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
44966	// (region:id).
44967	//
44968	// Principal is a required field
44969	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
44970}
44971
44972// String returns the string representation
44973func (s ListPrincipalPoliciesInput) String() string {
44974	return awsutil.Prettify(s)
44975}
44976
44977// GoString returns the string representation
44978func (s ListPrincipalPoliciesInput) GoString() string {
44979	return s.String()
44980}
44981
44982// Validate inspects the fields of the type to determine if they are valid.
44983func (s *ListPrincipalPoliciesInput) Validate() error {
44984	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalPoliciesInput"}
44985	if s.PageSize != nil && *s.PageSize < 1 {
44986		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
44987	}
44988	if s.Principal == nil {
44989		invalidParams.Add(request.NewErrParamRequired("Principal"))
44990	}
44991
44992	if invalidParams.Len() > 0 {
44993		return invalidParams
44994	}
44995	return nil
44996}
44997
44998// SetAscendingOrder sets the AscendingOrder field's value.
44999func (s *ListPrincipalPoliciesInput) SetAscendingOrder(v bool) *ListPrincipalPoliciesInput {
45000	s.AscendingOrder = &v
45001	return s
45002}
45003
45004// SetMarker sets the Marker field's value.
45005func (s *ListPrincipalPoliciesInput) SetMarker(v string) *ListPrincipalPoliciesInput {
45006	s.Marker = &v
45007	return s
45008}
45009
45010// SetPageSize sets the PageSize field's value.
45011func (s *ListPrincipalPoliciesInput) SetPageSize(v int64) *ListPrincipalPoliciesInput {
45012	s.PageSize = &v
45013	return s
45014}
45015
45016// SetPrincipal sets the Principal field's value.
45017func (s *ListPrincipalPoliciesInput) SetPrincipal(v string) *ListPrincipalPoliciesInput {
45018	s.Principal = &v
45019	return s
45020}
45021
45022// The output from the ListPrincipalPolicies operation.
45023type ListPrincipalPoliciesOutput struct {
45024	_ struct{} `type:"structure"`
45025
45026	// The marker for the next set of results, or null if there are no additional
45027	// results.
45028	NextMarker *string `locationName:"nextMarker" type:"string"`
45029
45030	// The policies.
45031	Policies []*Policy `locationName:"policies" type:"list"`
45032}
45033
45034// String returns the string representation
45035func (s ListPrincipalPoliciesOutput) String() string {
45036	return awsutil.Prettify(s)
45037}
45038
45039// GoString returns the string representation
45040func (s ListPrincipalPoliciesOutput) GoString() string {
45041	return s.String()
45042}
45043
45044// SetNextMarker sets the NextMarker field's value.
45045func (s *ListPrincipalPoliciesOutput) SetNextMarker(v string) *ListPrincipalPoliciesOutput {
45046	s.NextMarker = &v
45047	return s
45048}
45049
45050// SetPolicies sets the Policies field's value.
45051func (s *ListPrincipalPoliciesOutput) SetPolicies(v []*Policy) *ListPrincipalPoliciesOutput {
45052	s.Policies = v
45053	return s
45054}
45055
45056// The input for the ListPrincipalThings operation.
45057type ListPrincipalThingsInput struct {
45058	_ struct{} `type:"structure"`
45059
45060	// The maximum number of results to return in this operation.
45061	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45062
45063	// To retrieve the next set of results, the nextToken value from a previous
45064	// response; otherwise null to receive the first set of results.
45065	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45066
45067	// The principal.
45068	//
45069	// Principal is a required field
45070	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
45071}
45072
45073// String returns the string representation
45074func (s ListPrincipalThingsInput) String() string {
45075	return awsutil.Prettify(s)
45076}
45077
45078// GoString returns the string representation
45079func (s ListPrincipalThingsInput) GoString() string {
45080	return s.String()
45081}
45082
45083// Validate inspects the fields of the type to determine if they are valid.
45084func (s *ListPrincipalThingsInput) Validate() error {
45085	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalThingsInput"}
45086	if s.MaxResults != nil && *s.MaxResults < 1 {
45087		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45088	}
45089	if s.Principal == nil {
45090		invalidParams.Add(request.NewErrParamRequired("Principal"))
45091	}
45092
45093	if invalidParams.Len() > 0 {
45094		return invalidParams
45095	}
45096	return nil
45097}
45098
45099// SetMaxResults sets the MaxResults field's value.
45100func (s *ListPrincipalThingsInput) SetMaxResults(v int64) *ListPrincipalThingsInput {
45101	s.MaxResults = &v
45102	return s
45103}
45104
45105// SetNextToken sets the NextToken field's value.
45106func (s *ListPrincipalThingsInput) SetNextToken(v string) *ListPrincipalThingsInput {
45107	s.NextToken = &v
45108	return s
45109}
45110
45111// SetPrincipal sets the Principal field's value.
45112func (s *ListPrincipalThingsInput) SetPrincipal(v string) *ListPrincipalThingsInput {
45113	s.Principal = &v
45114	return s
45115}
45116
45117// The output from the ListPrincipalThings operation.
45118type ListPrincipalThingsOutput struct {
45119	_ struct{} `type:"structure"`
45120
45121	// The token to use to get the next set of results, or null if there are no
45122	// additional results.
45123	NextToken *string `locationName:"nextToken" type:"string"`
45124
45125	// The things.
45126	Things []*string `locationName:"things" type:"list"`
45127}
45128
45129// String returns the string representation
45130func (s ListPrincipalThingsOutput) String() string {
45131	return awsutil.Prettify(s)
45132}
45133
45134// GoString returns the string representation
45135func (s ListPrincipalThingsOutput) GoString() string {
45136	return s.String()
45137}
45138
45139// SetNextToken sets the NextToken field's value.
45140func (s *ListPrincipalThingsOutput) SetNextToken(v string) *ListPrincipalThingsOutput {
45141	s.NextToken = &v
45142	return s
45143}
45144
45145// SetThings sets the Things field's value.
45146func (s *ListPrincipalThingsOutput) SetThings(v []*string) *ListPrincipalThingsOutput {
45147	s.Things = v
45148	return s
45149}
45150
45151type ListProvisioningTemplateVersionsInput struct {
45152	_ struct{} `type:"structure"`
45153
45154	// The maximum number of results to return at one time.
45155	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45156
45157	// A token to retrieve the next set of results.
45158	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45159
45160	// The name of the fleet provisioning template.
45161	//
45162	// TemplateName is a required field
45163	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
45164}
45165
45166// String returns the string representation
45167func (s ListProvisioningTemplateVersionsInput) String() string {
45168	return awsutil.Prettify(s)
45169}
45170
45171// GoString returns the string representation
45172func (s ListProvisioningTemplateVersionsInput) GoString() string {
45173	return s.String()
45174}
45175
45176// Validate inspects the fields of the type to determine if they are valid.
45177func (s *ListProvisioningTemplateVersionsInput) Validate() error {
45178	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplateVersionsInput"}
45179	if s.MaxResults != nil && *s.MaxResults < 1 {
45180		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45181	}
45182	if s.TemplateName == nil {
45183		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
45184	}
45185	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
45186		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
45187	}
45188
45189	if invalidParams.Len() > 0 {
45190		return invalidParams
45191	}
45192	return nil
45193}
45194
45195// SetMaxResults sets the MaxResults field's value.
45196func (s *ListProvisioningTemplateVersionsInput) SetMaxResults(v int64) *ListProvisioningTemplateVersionsInput {
45197	s.MaxResults = &v
45198	return s
45199}
45200
45201// SetNextToken sets the NextToken field's value.
45202func (s *ListProvisioningTemplateVersionsInput) SetNextToken(v string) *ListProvisioningTemplateVersionsInput {
45203	s.NextToken = &v
45204	return s
45205}
45206
45207// SetTemplateName sets the TemplateName field's value.
45208func (s *ListProvisioningTemplateVersionsInput) SetTemplateName(v string) *ListProvisioningTemplateVersionsInput {
45209	s.TemplateName = &v
45210	return s
45211}
45212
45213type ListProvisioningTemplateVersionsOutput struct {
45214	_ struct{} `type:"structure"`
45215
45216	// A token to retrieve the next set of results.
45217	NextToken *string `locationName:"nextToken" type:"string"`
45218
45219	// The list of fleet provisioning template versions.
45220	Versions []*ProvisioningTemplateVersionSummary `locationName:"versions" type:"list"`
45221}
45222
45223// String returns the string representation
45224func (s ListProvisioningTemplateVersionsOutput) String() string {
45225	return awsutil.Prettify(s)
45226}
45227
45228// GoString returns the string representation
45229func (s ListProvisioningTemplateVersionsOutput) GoString() string {
45230	return s.String()
45231}
45232
45233// SetNextToken sets the NextToken field's value.
45234func (s *ListProvisioningTemplateVersionsOutput) SetNextToken(v string) *ListProvisioningTemplateVersionsOutput {
45235	s.NextToken = &v
45236	return s
45237}
45238
45239// SetVersions sets the Versions field's value.
45240func (s *ListProvisioningTemplateVersionsOutput) SetVersions(v []*ProvisioningTemplateVersionSummary) *ListProvisioningTemplateVersionsOutput {
45241	s.Versions = v
45242	return s
45243}
45244
45245type ListProvisioningTemplatesInput struct {
45246	_ struct{} `type:"structure"`
45247
45248	// The maximum number of results to return at one time.
45249	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45250
45251	// A token to retrieve the next set of results.
45252	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45253}
45254
45255// String returns the string representation
45256func (s ListProvisioningTemplatesInput) String() string {
45257	return awsutil.Prettify(s)
45258}
45259
45260// GoString returns the string representation
45261func (s ListProvisioningTemplatesInput) GoString() string {
45262	return s.String()
45263}
45264
45265// Validate inspects the fields of the type to determine if they are valid.
45266func (s *ListProvisioningTemplatesInput) Validate() error {
45267	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplatesInput"}
45268	if s.MaxResults != nil && *s.MaxResults < 1 {
45269		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45270	}
45271
45272	if invalidParams.Len() > 0 {
45273		return invalidParams
45274	}
45275	return nil
45276}
45277
45278// SetMaxResults sets the MaxResults field's value.
45279func (s *ListProvisioningTemplatesInput) SetMaxResults(v int64) *ListProvisioningTemplatesInput {
45280	s.MaxResults = &v
45281	return s
45282}
45283
45284// SetNextToken sets the NextToken field's value.
45285func (s *ListProvisioningTemplatesInput) SetNextToken(v string) *ListProvisioningTemplatesInput {
45286	s.NextToken = &v
45287	return s
45288}
45289
45290type ListProvisioningTemplatesOutput struct {
45291	_ struct{} `type:"structure"`
45292
45293	// A token to retrieve the next set of results.
45294	NextToken *string `locationName:"nextToken" type:"string"`
45295
45296	// A list of fleet provisioning templates
45297	Templates []*ProvisioningTemplateSummary `locationName:"templates" type:"list"`
45298}
45299
45300// String returns the string representation
45301func (s ListProvisioningTemplatesOutput) String() string {
45302	return awsutil.Prettify(s)
45303}
45304
45305// GoString returns the string representation
45306func (s ListProvisioningTemplatesOutput) GoString() string {
45307	return s.String()
45308}
45309
45310// SetNextToken sets the NextToken field's value.
45311func (s *ListProvisioningTemplatesOutput) SetNextToken(v string) *ListProvisioningTemplatesOutput {
45312	s.NextToken = &v
45313	return s
45314}
45315
45316// SetTemplates sets the Templates field's value.
45317func (s *ListProvisioningTemplatesOutput) SetTemplates(v []*ProvisioningTemplateSummary) *ListProvisioningTemplatesOutput {
45318	s.Templates = v
45319	return s
45320}
45321
45322type ListRoleAliasesInput struct {
45323	_ struct{} `type:"structure"`
45324
45325	// Return the list of role aliases in ascending alphabetical order.
45326	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
45327
45328	// A marker used to get the next set of results.
45329	Marker *string `location:"querystring" locationName:"marker" type:"string"`
45330
45331	// The maximum number of results to return at one time.
45332	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
45333}
45334
45335// String returns the string representation
45336func (s ListRoleAliasesInput) String() string {
45337	return awsutil.Prettify(s)
45338}
45339
45340// GoString returns the string representation
45341func (s ListRoleAliasesInput) GoString() string {
45342	return s.String()
45343}
45344
45345// Validate inspects the fields of the type to determine if they are valid.
45346func (s *ListRoleAliasesInput) Validate() error {
45347	invalidParams := request.ErrInvalidParams{Context: "ListRoleAliasesInput"}
45348	if s.PageSize != nil && *s.PageSize < 1 {
45349		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
45350	}
45351
45352	if invalidParams.Len() > 0 {
45353		return invalidParams
45354	}
45355	return nil
45356}
45357
45358// SetAscendingOrder sets the AscendingOrder field's value.
45359func (s *ListRoleAliasesInput) SetAscendingOrder(v bool) *ListRoleAliasesInput {
45360	s.AscendingOrder = &v
45361	return s
45362}
45363
45364// SetMarker sets the Marker field's value.
45365func (s *ListRoleAliasesInput) SetMarker(v string) *ListRoleAliasesInput {
45366	s.Marker = &v
45367	return s
45368}
45369
45370// SetPageSize sets the PageSize field's value.
45371func (s *ListRoleAliasesInput) SetPageSize(v int64) *ListRoleAliasesInput {
45372	s.PageSize = &v
45373	return s
45374}
45375
45376type ListRoleAliasesOutput struct {
45377	_ struct{} `type:"structure"`
45378
45379	// A marker used to get the next set of results.
45380	NextMarker *string `locationName:"nextMarker" type:"string"`
45381
45382	// The role aliases.
45383	RoleAliases []*string `locationName:"roleAliases" type:"list"`
45384}
45385
45386// String returns the string representation
45387func (s ListRoleAliasesOutput) String() string {
45388	return awsutil.Prettify(s)
45389}
45390
45391// GoString returns the string representation
45392func (s ListRoleAliasesOutput) GoString() string {
45393	return s.String()
45394}
45395
45396// SetNextMarker sets the NextMarker field's value.
45397func (s *ListRoleAliasesOutput) SetNextMarker(v string) *ListRoleAliasesOutput {
45398	s.NextMarker = &v
45399	return s
45400}
45401
45402// SetRoleAliases sets the RoleAliases field's value.
45403func (s *ListRoleAliasesOutput) SetRoleAliases(v []*string) *ListRoleAliasesOutput {
45404	s.RoleAliases = v
45405	return s
45406}
45407
45408type ListScheduledAuditsInput struct {
45409	_ struct{} `type:"structure"`
45410
45411	// The maximum number of results to return at one time. The default is 25.
45412	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45413
45414	// The token for the next set of results.
45415	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45416}
45417
45418// String returns the string representation
45419func (s ListScheduledAuditsInput) String() string {
45420	return awsutil.Prettify(s)
45421}
45422
45423// GoString returns the string representation
45424func (s ListScheduledAuditsInput) GoString() string {
45425	return s.String()
45426}
45427
45428// Validate inspects the fields of the type to determine if they are valid.
45429func (s *ListScheduledAuditsInput) Validate() error {
45430	invalidParams := request.ErrInvalidParams{Context: "ListScheduledAuditsInput"}
45431	if s.MaxResults != nil && *s.MaxResults < 1 {
45432		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45433	}
45434
45435	if invalidParams.Len() > 0 {
45436		return invalidParams
45437	}
45438	return nil
45439}
45440
45441// SetMaxResults sets the MaxResults field's value.
45442func (s *ListScheduledAuditsInput) SetMaxResults(v int64) *ListScheduledAuditsInput {
45443	s.MaxResults = &v
45444	return s
45445}
45446
45447// SetNextToken sets the NextToken field's value.
45448func (s *ListScheduledAuditsInput) SetNextToken(v string) *ListScheduledAuditsInput {
45449	s.NextToken = &v
45450	return s
45451}
45452
45453type ListScheduledAuditsOutput struct {
45454	_ struct{} `type:"structure"`
45455
45456	// A token that can be used to retrieve the next set of results, or null if
45457	// there are no additional results.
45458	NextToken *string `locationName:"nextToken" type:"string"`
45459
45460	// The list of scheduled audits.
45461	ScheduledAudits []*ScheduledAuditMetadata `locationName:"scheduledAudits" type:"list"`
45462}
45463
45464// String returns the string representation
45465func (s ListScheduledAuditsOutput) String() string {
45466	return awsutil.Prettify(s)
45467}
45468
45469// GoString returns the string representation
45470func (s ListScheduledAuditsOutput) GoString() string {
45471	return s.String()
45472}
45473
45474// SetNextToken sets the NextToken field's value.
45475func (s *ListScheduledAuditsOutput) SetNextToken(v string) *ListScheduledAuditsOutput {
45476	s.NextToken = &v
45477	return s
45478}
45479
45480// SetScheduledAudits sets the ScheduledAudits field's value.
45481func (s *ListScheduledAuditsOutput) SetScheduledAudits(v []*ScheduledAuditMetadata) *ListScheduledAuditsOutput {
45482	s.ScheduledAudits = v
45483	return s
45484}
45485
45486type ListSecurityProfilesForTargetInput struct {
45487	_ struct{} `type:"structure"`
45488
45489	// The maximum number of results to return at one time.
45490	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45491
45492	// The token for the next set of results.
45493	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45494
45495	// If true, return child groups too.
45496	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
45497
45498	// The ARN of the target (thing group) whose attached security profiles you
45499	// want to get.
45500	//
45501	// SecurityProfileTargetArn is a required field
45502	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
45503}
45504
45505// String returns the string representation
45506func (s ListSecurityProfilesForTargetInput) String() string {
45507	return awsutil.Prettify(s)
45508}
45509
45510// GoString returns the string representation
45511func (s ListSecurityProfilesForTargetInput) GoString() string {
45512	return s.String()
45513}
45514
45515// Validate inspects the fields of the type to determine if they are valid.
45516func (s *ListSecurityProfilesForTargetInput) Validate() error {
45517	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesForTargetInput"}
45518	if s.MaxResults != nil && *s.MaxResults < 1 {
45519		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45520	}
45521	if s.SecurityProfileTargetArn == nil {
45522		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
45523	}
45524
45525	if invalidParams.Len() > 0 {
45526		return invalidParams
45527	}
45528	return nil
45529}
45530
45531// SetMaxResults sets the MaxResults field's value.
45532func (s *ListSecurityProfilesForTargetInput) SetMaxResults(v int64) *ListSecurityProfilesForTargetInput {
45533	s.MaxResults = &v
45534	return s
45535}
45536
45537// SetNextToken sets the NextToken field's value.
45538func (s *ListSecurityProfilesForTargetInput) SetNextToken(v string) *ListSecurityProfilesForTargetInput {
45539	s.NextToken = &v
45540	return s
45541}
45542
45543// SetRecursive sets the Recursive field's value.
45544func (s *ListSecurityProfilesForTargetInput) SetRecursive(v bool) *ListSecurityProfilesForTargetInput {
45545	s.Recursive = &v
45546	return s
45547}
45548
45549// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
45550func (s *ListSecurityProfilesForTargetInput) SetSecurityProfileTargetArn(v string) *ListSecurityProfilesForTargetInput {
45551	s.SecurityProfileTargetArn = &v
45552	return s
45553}
45554
45555type ListSecurityProfilesForTargetOutput struct {
45556	_ struct{} `type:"structure"`
45557
45558	// A token that can be used to retrieve the next set of results, or null if
45559	// there are no additional results.
45560	NextToken *string `locationName:"nextToken" type:"string"`
45561
45562	// A list of security profiles and their associated targets.
45563	SecurityProfileTargetMappings []*SecurityProfileTargetMapping `locationName:"securityProfileTargetMappings" type:"list"`
45564}
45565
45566// String returns the string representation
45567func (s ListSecurityProfilesForTargetOutput) String() string {
45568	return awsutil.Prettify(s)
45569}
45570
45571// GoString returns the string representation
45572func (s ListSecurityProfilesForTargetOutput) GoString() string {
45573	return s.String()
45574}
45575
45576// SetNextToken sets the NextToken field's value.
45577func (s *ListSecurityProfilesForTargetOutput) SetNextToken(v string) *ListSecurityProfilesForTargetOutput {
45578	s.NextToken = &v
45579	return s
45580}
45581
45582// SetSecurityProfileTargetMappings sets the SecurityProfileTargetMappings field's value.
45583func (s *ListSecurityProfilesForTargetOutput) SetSecurityProfileTargetMappings(v []*SecurityProfileTargetMapping) *ListSecurityProfilesForTargetOutput {
45584	s.SecurityProfileTargetMappings = v
45585	return s
45586}
45587
45588type ListSecurityProfilesInput struct {
45589	_ struct{} `type:"structure"`
45590
45591	// A filter to limit results to the security profiles that use the defined dimension.
45592	// Cannot be used with metricName
45593	DimensionName *string `location:"querystring" locationName:"dimensionName" min:"1" type:"string"`
45594
45595	// The maximum number of results to return at one time.
45596	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45597
45598	// The name of the custom metric. Cannot be used with dimensionName.
45599	MetricName *string `location:"querystring" locationName:"metricName" min:"1" type:"string"`
45600
45601	// The token for the next set of results.
45602	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45603}
45604
45605// String returns the string representation
45606func (s ListSecurityProfilesInput) String() string {
45607	return awsutil.Prettify(s)
45608}
45609
45610// GoString returns the string representation
45611func (s ListSecurityProfilesInput) GoString() string {
45612	return s.String()
45613}
45614
45615// Validate inspects the fields of the type to determine if they are valid.
45616func (s *ListSecurityProfilesInput) Validate() error {
45617	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesInput"}
45618	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
45619		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
45620	}
45621	if s.MaxResults != nil && *s.MaxResults < 1 {
45622		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45623	}
45624	if s.MetricName != nil && len(*s.MetricName) < 1 {
45625		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
45626	}
45627
45628	if invalidParams.Len() > 0 {
45629		return invalidParams
45630	}
45631	return nil
45632}
45633
45634// SetDimensionName sets the DimensionName field's value.
45635func (s *ListSecurityProfilesInput) SetDimensionName(v string) *ListSecurityProfilesInput {
45636	s.DimensionName = &v
45637	return s
45638}
45639
45640// SetMaxResults sets the MaxResults field's value.
45641func (s *ListSecurityProfilesInput) SetMaxResults(v int64) *ListSecurityProfilesInput {
45642	s.MaxResults = &v
45643	return s
45644}
45645
45646// SetMetricName sets the MetricName field's value.
45647func (s *ListSecurityProfilesInput) SetMetricName(v string) *ListSecurityProfilesInput {
45648	s.MetricName = &v
45649	return s
45650}
45651
45652// SetNextToken sets the NextToken field's value.
45653func (s *ListSecurityProfilesInput) SetNextToken(v string) *ListSecurityProfilesInput {
45654	s.NextToken = &v
45655	return s
45656}
45657
45658type ListSecurityProfilesOutput struct {
45659	_ struct{} `type:"structure"`
45660
45661	// A token that can be used to retrieve the next set of results, or null if
45662	// there are no additional results.
45663	NextToken *string `locationName:"nextToken" type:"string"`
45664
45665	// A list of security profile identifiers (names and ARNs).
45666	SecurityProfileIdentifiers []*SecurityProfileIdentifier `locationName:"securityProfileIdentifiers" type:"list"`
45667}
45668
45669// String returns the string representation
45670func (s ListSecurityProfilesOutput) String() string {
45671	return awsutil.Prettify(s)
45672}
45673
45674// GoString returns the string representation
45675func (s ListSecurityProfilesOutput) GoString() string {
45676	return s.String()
45677}
45678
45679// SetNextToken sets the NextToken field's value.
45680func (s *ListSecurityProfilesOutput) SetNextToken(v string) *ListSecurityProfilesOutput {
45681	s.NextToken = &v
45682	return s
45683}
45684
45685// SetSecurityProfileIdentifiers sets the SecurityProfileIdentifiers field's value.
45686func (s *ListSecurityProfilesOutput) SetSecurityProfileIdentifiers(v []*SecurityProfileIdentifier) *ListSecurityProfilesOutput {
45687	s.SecurityProfileIdentifiers = v
45688	return s
45689}
45690
45691type ListStreamsInput struct {
45692	_ struct{} `type:"structure"`
45693
45694	// Set to true to return the list of streams in ascending order.
45695	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
45696
45697	// The maximum number of results to return at a time.
45698	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45699
45700	// A token used to get the next set of results.
45701	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45702}
45703
45704// String returns the string representation
45705func (s ListStreamsInput) String() string {
45706	return awsutil.Prettify(s)
45707}
45708
45709// GoString returns the string representation
45710func (s ListStreamsInput) GoString() string {
45711	return s.String()
45712}
45713
45714// Validate inspects the fields of the type to determine if they are valid.
45715func (s *ListStreamsInput) Validate() error {
45716	invalidParams := request.ErrInvalidParams{Context: "ListStreamsInput"}
45717	if s.MaxResults != nil && *s.MaxResults < 1 {
45718		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45719	}
45720
45721	if invalidParams.Len() > 0 {
45722		return invalidParams
45723	}
45724	return nil
45725}
45726
45727// SetAscendingOrder sets the AscendingOrder field's value.
45728func (s *ListStreamsInput) SetAscendingOrder(v bool) *ListStreamsInput {
45729	s.AscendingOrder = &v
45730	return s
45731}
45732
45733// SetMaxResults sets the MaxResults field's value.
45734func (s *ListStreamsInput) SetMaxResults(v int64) *ListStreamsInput {
45735	s.MaxResults = &v
45736	return s
45737}
45738
45739// SetNextToken sets the NextToken field's value.
45740func (s *ListStreamsInput) SetNextToken(v string) *ListStreamsInput {
45741	s.NextToken = &v
45742	return s
45743}
45744
45745type ListStreamsOutput struct {
45746	_ struct{} `type:"structure"`
45747
45748	// A token used to get the next set of results.
45749	NextToken *string `locationName:"nextToken" type:"string"`
45750
45751	// A list of streams.
45752	Streams []*StreamSummary `locationName:"streams" type:"list"`
45753}
45754
45755// String returns the string representation
45756func (s ListStreamsOutput) String() string {
45757	return awsutil.Prettify(s)
45758}
45759
45760// GoString returns the string representation
45761func (s ListStreamsOutput) GoString() string {
45762	return s.String()
45763}
45764
45765// SetNextToken sets the NextToken field's value.
45766func (s *ListStreamsOutput) SetNextToken(v string) *ListStreamsOutput {
45767	s.NextToken = &v
45768	return s
45769}
45770
45771// SetStreams sets the Streams field's value.
45772func (s *ListStreamsOutput) SetStreams(v []*StreamSummary) *ListStreamsOutput {
45773	s.Streams = v
45774	return s
45775}
45776
45777type ListTagsForResourceInput struct {
45778	_ struct{} `type:"structure"`
45779
45780	// To retrieve the next set of results, the nextToken value from a previous
45781	// response; otherwise null to receive the first set of results.
45782	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45783
45784	// The ARN of the resource.
45785	//
45786	// ResourceArn is a required field
45787	ResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string" required:"true"`
45788}
45789
45790// String returns the string representation
45791func (s ListTagsForResourceInput) String() string {
45792	return awsutil.Prettify(s)
45793}
45794
45795// GoString returns the string representation
45796func (s ListTagsForResourceInput) GoString() string {
45797	return s.String()
45798}
45799
45800// Validate inspects the fields of the type to determine if they are valid.
45801func (s *ListTagsForResourceInput) Validate() error {
45802	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
45803	if s.ResourceArn == nil {
45804		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
45805	}
45806
45807	if invalidParams.Len() > 0 {
45808		return invalidParams
45809	}
45810	return nil
45811}
45812
45813// SetNextToken sets the NextToken field's value.
45814func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
45815	s.NextToken = &v
45816	return s
45817}
45818
45819// SetResourceArn sets the ResourceArn field's value.
45820func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
45821	s.ResourceArn = &v
45822	return s
45823}
45824
45825type ListTagsForResourceOutput struct {
45826	_ struct{} `type:"structure"`
45827
45828	// The token to use to get the next set of results, or null if there are no
45829	// additional results.
45830	NextToken *string `locationName:"nextToken" type:"string"`
45831
45832	// The list of tags assigned to the resource.
45833	Tags []*Tag `locationName:"tags" type:"list"`
45834}
45835
45836// String returns the string representation
45837func (s ListTagsForResourceOutput) String() string {
45838	return awsutil.Prettify(s)
45839}
45840
45841// GoString returns the string representation
45842func (s ListTagsForResourceOutput) GoString() string {
45843	return s.String()
45844}
45845
45846// SetNextToken sets the NextToken field's value.
45847func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
45848	s.NextToken = &v
45849	return s
45850}
45851
45852// SetTags sets the Tags field's value.
45853func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
45854	s.Tags = v
45855	return s
45856}
45857
45858type ListTargetsForPolicyInput struct {
45859	_ struct{} `type:"structure"`
45860
45861	// A marker used to get the next set of results.
45862	Marker *string `location:"querystring" locationName:"marker" type:"string"`
45863
45864	// The maximum number of results to return at one time.
45865	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
45866
45867	// The policy name.
45868	//
45869	// PolicyName is a required field
45870	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
45871}
45872
45873// String returns the string representation
45874func (s ListTargetsForPolicyInput) String() string {
45875	return awsutil.Prettify(s)
45876}
45877
45878// GoString returns the string representation
45879func (s ListTargetsForPolicyInput) GoString() string {
45880	return s.String()
45881}
45882
45883// Validate inspects the fields of the type to determine if they are valid.
45884func (s *ListTargetsForPolicyInput) Validate() error {
45885	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForPolicyInput"}
45886	if s.PageSize != nil && *s.PageSize < 1 {
45887		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
45888	}
45889	if s.PolicyName == nil {
45890		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
45891	}
45892	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
45893		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
45894	}
45895
45896	if invalidParams.Len() > 0 {
45897		return invalidParams
45898	}
45899	return nil
45900}
45901
45902// SetMarker sets the Marker field's value.
45903func (s *ListTargetsForPolicyInput) SetMarker(v string) *ListTargetsForPolicyInput {
45904	s.Marker = &v
45905	return s
45906}
45907
45908// SetPageSize sets the PageSize field's value.
45909func (s *ListTargetsForPolicyInput) SetPageSize(v int64) *ListTargetsForPolicyInput {
45910	s.PageSize = &v
45911	return s
45912}
45913
45914// SetPolicyName sets the PolicyName field's value.
45915func (s *ListTargetsForPolicyInput) SetPolicyName(v string) *ListTargetsForPolicyInput {
45916	s.PolicyName = &v
45917	return s
45918}
45919
45920type ListTargetsForPolicyOutput struct {
45921	_ struct{} `type:"structure"`
45922
45923	// A marker used to get the next set of results.
45924	NextMarker *string `locationName:"nextMarker" type:"string"`
45925
45926	// The policy targets.
45927	Targets []*string `locationName:"targets" type:"list"`
45928}
45929
45930// String returns the string representation
45931func (s ListTargetsForPolicyOutput) String() string {
45932	return awsutil.Prettify(s)
45933}
45934
45935// GoString returns the string representation
45936func (s ListTargetsForPolicyOutput) GoString() string {
45937	return s.String()
45938}
45939
45940// SetNextMarker sets the NextMarker field's value.
45941func (s *ListTargetsForPolicyOutput) SetNextMarker(v string) *ListTargetsForPolicyOutput {
45942	s.NextMarker = &v
45943	return s
45944}
45945
45946// SetTargets sets the Targets field's value.
45947func (s *ListTargetsForPolicyOutput) SetTargets(v []*string) *ListTargetsForPolicyOutput {
45948	s.Targets = v
45949	return s
45950}
45951
45952type ListTargetsForSecurityProfileInput struct {
45953	_ struct{} `type:"structure"`
45954
45955	// The maximum number of results to return at one time.
45956	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45957
45958	// The token for the next set of results.
45959	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45960
45961	// The security profile.
45962	//
45963	// SecurityProfileName is a required field
45964	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
45965}
45966
45967// String returns the string representation
45968func (s ListTargetsForSecurityProfileInput) String() string {
45969	return awsutil.Prettify(s)
45970}
45971
45972// GoString returns the string representation
45973func (s ListTargetsForSecurityProfileInput) GoString() string {
45974	return s.String()
45975}
45976
45977// Validate inspects the fields of the type to determine if they are valid.
45978func (s *ListTargetsForSecurityProfileInput) Validate() error {
45979	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForSecurityProfileInput"}
45980	if s.MaxResults != nil && *s.MaxResults < 1 {
45981		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45982	}
45983	if s.SecurityProfileName == nil {
45984		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
45985	}
45986	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
45987		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
45988	}
45989
45990	if invalidParams.Len() > 0 {
45991		return invalidParams
45992	}
45993	return nil
45994}
45995
45996// SetMaxResults sets the MaxResults field's value.
45997func (s *ListTargetsForSecurityProfileInput) SetMaxResults(v int64) *ListTargetsForSecurityProfileInput {
45998	s.MaxResults = &v
45999	return s
46000}
46001
46002// SetNextToken sets the NextToken field's value.
46003func (s *ListTargetsForSecurityProfileInput) SetNextToken(v string) *ListTargetsForSecurityProfileInput {
46004	s.NextToken = &v
46005	return s
46006}
46007
46008// SetSecurityProfileName sets the SecurityProfileName field's value.
46009func (s *ListTargetsForSecurityProfileInput) SetSecurityProfileName(v string) *ListTargetsForSecurityProfileInput {
46010	s.SecurityProfileName = &v
46011	return s
46012}
46013
46014type ListTargetsForSecurityProfileOutput struct {
46015	_ struct{} `type:"structure"`
46016
46017	// A token that can be used to retrieve the next set of results, or null if
46018	// there are no additional results.
46019	NextToken *string `locationName:"nextToken" type:"string"`
46020
46021	// The thing groups to which the security profile is attached.
46022	SecurityProfileTargets []*SecurityProfileTarget `locationName:"securityProfileTargets" type:"list"`
46023}
46024
46025// String returns the string representation
46026func (s ListTargetsForSecurityProfileOutput) String() string {
46027	return awsutil.Prettify(s)
46028}
46029
46030// GoString returns the string representation
46031func (s ListTargetsForSecurityProfileOutput) GoString() string {
46032	return s.String()
46033}
46034
46035// SetNextToken sets the NextToken field's value.
46036func (s *ListTargetsForSecurityProfileOutput) SetNextToken(v string) *ListTargetsForSecurityProfileOutput {
46037	s.NextToken = &v
46038	return s
46039}
46040
46041// SetSecurityProfileTargets sets the SecurityProfileTargets field's value.
46042func (s *ListTargetsForSecurityProfileOutput) SetSecurityProfileTargets(v []*SecurityProfileTarget) *ListTargetsForSecurityProfileOutput {
46043	s.SecurityProfileTargets = v
46044	return s
46045}
46046
46047type ListThingGroupsForThingInput struct {
46048	_ struct{} `type:"structure"`
46049
46050	// The maximum number of results to return at one time.
46051	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46052
46053	// To retrieve the next set of results, the nextToken value from a previous
46054	// response; otherwise null to receive the first set of results.
46055	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46056
46057	// The thing name.
46058	//
46059	// ThingName is a required field
46060	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
46061}
46062
46063// String returns the string representation
46064func (s ListThingGroupsForThingInput) String() string {
46065	return awsutil.Prettify(s)
46066}
46067
46068// GoString returns the string representation
46069func (s ListThingGroupsForThingInput) GoString() string {
46070	return s.String()
46071}
46072
46073// Validate inspects the fields of the type to determine if they are valid.
46074func (s *ListThingGroupsForThingInput) Validate() error {
46075	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsForThingInput"}
46076	if s.MaxResults != nil && *s.MaxResults < 1 {
46077		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46078	}
46079	if s.ThingName == nil {
46080		invalidParams.Add(request.NewErrParamRequired("ThingName"))
46081	}
46082	if s.ThingName != nil && len(*s.ThingName) < 1 {
46083		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
46084	}
46085
46086	if invalidParams.Len() > 0 {
46087		return invalidParams
46088	}
46089	return nil
46090}
46091
46092// SetMaxResults sets the MaxResults field's value.
46093func (s *ListThingGroupsForThingInput) SetMaxResults(v int64) *ListThingGroupsForThingInput {
46094	s.MaxResults = &v
46095	return s
46096}
46097
46098// SetNextToken sets the NextToken field's value.
46099func (s *ListThingGroupsForThingInput) SetNextToken(v string) *ListThingGroupsForThingInput {
46100	s.NextToken = &v
46101	return s
46102}
46103
46104// SetThingName sets the ThingName field's value.
46105func (s *ListThingGroupsForThingInput) SetThingName(v string) *ListThingGroupsForThingInput {
46106	s.ThingName = &v
46107	return s
46108}
46109
46110type ListThingGroupsForThingOutput struct {
46111	_ struct{} `type:"structure"`
46112
46113	// The token to use to get the next set of results, or null if there are no
46114	// additional results.
46115	NextToken *string `locationName:"nextToken" type:"string"`
46116
46117	// The thing groups.
46118	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
46119}
46120
46121// String returns the string representation
46122func (s ListThingGroupsForThingOutput) String() string {
46123	return awsutil.Prettify(s)
46124}
46125
46126// GoString returns the string representation
46127func (s ListThingGroupsForThingOutput) GoString() string {
46128	return s.String()
46129}
46130
46131// SetNextToken sets the NextToken field's value.
46132func (s *ListThingGroupsForThingOutput) SetNextToken(v string) *ListThingGroupsForThingOutput {
46133	s.NextToken = &v
46134	return s
46135}
46136
46137// SetThingGroups sets the ThingGroups field's value.
46138func (s *ListThingGroupsForThingOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsForThingOutput {
46139	s.ThingGroups = v
46140	return s
46141}
46142
46143type ListThingGroupsInput struct {
46144	_ struct{} `type:"structure"`
46145
46146	// The maximum number of results to return at one time.
46147	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46148
46149	// A filter that limits the results to those with the specified name prefix.
46150	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
46151
46152	// To retrieve the next set of results, the nextToken value from a previous
46153	// response; otherwise null to receive the first set of results.
46154	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46155
46156	// A filter that limits the results to those with the specified parent group.
46157	ParentGroup *string `location:"querystring" locationName:"parentGroup" min:"1" type:"string"`
46158
46159	// If true, return child groups as well.
46160	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
46161}
46162
46163// String returns the string representation
46164func (s ListThingGroupsInput) String() string {
46165	return awsutil.Prettify(s)
46166}
46167
46168// GoString returns the string representation
46169func (s ListThingGroupsInput) GoString() string {
46170	return s.String()
46171}
46172
46173// Validate inspects the fields of the type to determine if they are valid.
46174func (s *ListThingGroupsInput) Validate() error {
46175	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsInput"}
46176	if s.MaxResults != nil && *s.MaxResults < 1 {
46177		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46178	}
46179	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
46180		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
46181	}
46182	if s.ParentGroup != nil && len(*s.ParentGroup) < 1 {
46183		invalidParams.Add(request.NewErrParamMinLen("ParentGroup", 1))
46184	}
46185
46186	if invalidParams.Len() > 0 {
46187		return invalidParams
46188	}
46189	return nil
46190}
46191
46192// SetMaxResults sets the MaxResults field's value.
46193func (s *ListThingGroupsInput) SetMaxResults(v int64) *ListThingGroupsInput {
46194	s.MaxResults = &v
46195	return s
46196}
46197
46198// SetNamePrefixFilter sets the NamePrefixFilter field's value.
46199func (s *ListThingGroupsInput) SetNamePrefixFilter(v string) *ListThingGroupsInput {
46200	s.NamePrefixFilter = &v
46201	return s
46202}
46203
46204// SetNextToken sets the NextToken field's value.
46205func (s *ListThingGroupsInput) SetNextToken(v string) *ListThingGroupsInput {
46206	s.NextToken = &v
46207	return s
46208}
46209
46210// SetParentGroup sets the ParentGroup field's value.
46211func (s *ListThingGroupsInput) SetParentGroup(v string) *ListThingGroupsInput {
46212	s.ParentGroup = &v
46213	return s
46214}
46215
46216// SetRecursive sets the Recursive field's value.
46217func (s *ListThingGroupsInput) SetRecursive(v bool) *ListThingGroupsInput {
46218	s.Recursive = &v
46219	return s
46220}
46221
46222type ListThingGroupsOutput struct {
46223	_ struct{} `type:"structure"`
46224
46225	// The token to use to get the next set of results. Will not be returned if
46226	// operation has returned all results.
46227	NextToken *string `locationName:"nextToken" type:"string"`
46228
46229	// The thing groups.
46230	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
46231}
46232
46233// String returns the string representation
46234func (s ListThingGroupsOutput) String() string {
46235	return awsutil.Prettify(s)
46236}
46237
46238// GoString returns the string representation
46239func (s ListThingGroupsOutput) GoString() string {
46240	return s.String()
46241}
46242
46243// SetNextToken sets the NextToken field's value.
46244func (s *ListThingGroupsOutput) SetNextToken(v string) *ListThingGroupsOutput {
46245	s.NextToken = &v
46246	return s
46247}
46248
46249// SetThingGroups sets the ThingGroups field's value.
46250func (s *ListThingGroupsOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsOutput {
46251	s.ThingGroups = v
46252	return s
46253}
46254
46255// The input for the ListThingPrincipal operation.
46256type ListThingPrincipalsInput struct {
46257	_ struct{} `type:"structure"`
46258
46259	// The maximum number of results to return in this operation.
46260	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46261
46262	// To retrieve the next set of results, the nextToken value from a previous
46263	// response; otherwise null to receive the first set of results.
46264	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46265
46266	// The name of the thing.
46267	//
46268	// ThingName is a required field
46269	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
46270}
46271
46272// String returns the string representation
46273func (s ListThingPrincipalsInput) String() string {
46274	return awsutil.Prettify(s)
46275}
46276
46277// GoString returns the string representation
46278func (s ListThingPrincipalsInput) GoString() string {
46279	return s.String()
46280}
46281
46282// Validate inspects the fields of the type to determine if they are valid.
46283func (s *ListThingPrincipalsInput) Validate() error {
46284	invalidParams := request.ErrInvalidParams{Context: "ListThingPrincipalsInput"}
46285	if s.MaxResults != nil && *s.MaxResults < 1 {
46286		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46287	}
46288	if s.ThingName == nil {
46289		invalidParams.Add(request.NewErrParamRequired("ThingName"))
46290	}
46291	if s.ThingName != nil && len(*s.ThingName) < 1 {
46292		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
46293	}
46294
46295	if invalidParams.Len() > 0 {
46296		return invalidParams
46297	}
46298	return nil
46299}
46300
46301// SetMaxResults sets the MaxResults field's value.
46302func (s *ListThingPrincipalsInput) SetMaxResults(v int64) *ListThingPrincipalsInput {
46303	s.MaxResults = &v
46304	return s
46305}
46306
46307// SetNextToken sets the NextToken field's value.
46308func (s *ListThingPrincipalsInput) SetNextToken(v string) *ListThingPrincipalsInput {
46309	s.NextToken = &v
46310	return s
46311}
46312
46313// SetThingName sets the ThingName field's value.
46314func (s *ListThingPrincipalsInput) SetThingName(v string) *ListThingPrincipalsInput {
46315	s.ThingName = &v
46316	return s
46317}
46318
46319// The output from the ListThingPrincipals operation.
46320type ListThingPrincipalsOutput struct {
46321	_ struct{} `type:"structure"`
46322
46323	// The token to use to get the next set of results, or null if there are no
46324	// additional results.
46325	NextToken *string `locationName:"nextToken" type:"string"`
46326
46327	// The principals associated with the thing.
46328	Principals []*string `locationName:"principals" type:"list"`
46329}
46330
46331// String returns the string representation
46332func (s ListThingPrincipalsOutput) String() string {
46333	return awsutil.Prettify(s)
46334}
46335
46336// GoString returns the string representation
46337func (s ListThingPrincipalsOutput) GoString() string {
46338	return s.String()
46339}
46340
46341// SetNextToken sets the NextToken field's value.
46342func (s *ListThingPrincipalsOutput) SetNextToken(v string) *ListThingPrincipalsOutput {
46343	s.NextToken = &v
46344	return s
46345}
46346
46347// SetPrincipals sets the Principals field's value.
46348func (s *ListThingPrincipalsOutput) SetPrincipals(v []*string) *ListThingPrincipalsOutput {
46349	s.Principals = v
46350	return s
46351}
46352
46353type ListThingRegistrationTaskReportsInput struct {
46354	_ struct{} `type:"structure"`
46355
46356	// The maximum number of results to return per request.
46357	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46358
46359	// To retrieve the next set of results, the nextToken value from a previous
46360	// response; otherwise null to receive the first set of results.
46361	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46362
46363	// The type of task report.
46364	//
46365	// ReportType is a required field
46366	ReportType *string `location:"querystring" locationName:"reportType" type:"string" required:"true" enum:"ReportType"`
46367
46368	// The id of the task.
46369	//
46370	// TaskId is a required field
46371	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
46372}
46373
46374// String returns the string representation
46375func (s ListThingRegistrationTaskReportsInput) String() string {
46376	return awsutil.Prettify(s)
46377}
46378
46379// GoString returns the string representation
46380func (s ListThingRegistrationTaskReportsInput) GoString() string {
46381	return s.String()
46382}
46383
46384// Validate inspects the fields of the type to determine if they are valid.
46385func (s *ListThingRegistrationTaskReportsInput) Validate() error {
46386	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTaskReportsInput"}
46387	if s.MaxResults != nil && *s.MaxResults < 1 {
46388		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46389	}
46390	if s.ReportType == nil {
46391		invalidParams.Add(request.NewErrParamRequired("ReportType"))
46392	}
46393	if s.TaskId == nil {
46394		invalidParams.Add(request.NewErrParamRequired("TaskId"))
46395	}
46396	if s.TaskId != nil && len(*s.TaskId) < 1 {
46397		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
46398	}
46399
46400	if invalidParams.Len() > 0 {
46401		return invalidParams
46402	}
46403	return nil
46404}
46405
46406// SetMaxResults sets the MaxResults field's value.
46407func (s *ListThingRegistrationTaskReportsInput) SetMaxResults(v int64) *ListThingRegistrationTaskReportsInput {
46408	s.MaxResults = &v
46409	return s
46410}
46411
46412// SetNextToken sets the NextToken field's value.
46413func (s *ListThingRegistrationTaskReportsInput) SetNextToken(v string) *ListThingRegistrationTaskReportsInput {
46414	s.NextToken = &v
46415	return s
46416}
46417
46418// SetReportType sets the ReportType field's value.
46419func (s *ListThingRegistrationTaskReportsInput) SetReportType(v string) *ListThingRegistrationTaskReportsInput {
46420	s.ReportType = &v
46421	return s
46422}
46423
46424// SetTaskId sets the TaskId field's value.
46425func (s *ListThingRegistrationTaskReportsInput) SetTaskId(v string) *ListThingRegistrationTaskReportsInput {
46426	s.TaskId = &v
46427	return s
46428}
46429
46430type ListThingRegistrationTaskReportsOutput struct {
46431	_ struct{} `type:"structure"`
46432
46433	// The token to use to get the next set of results, or null if there are no
46434	// additional results.
46435	NextToken *string `locationName:"nextToken" type:"string"`
46436
46437	// The type of task report.
46438	ReportType *string `locationName:"reportType" type:"string" enum:"ReportType"`
46439
46440	// Links to the task resources.
46441	ResourceLinks []*string `locationName:"resourceLinks" type:"list"`
46442}
46443
46444// String returns the string representation
46445func (s ListThingRegistrationTaskReportsOutput) String() string {
46446	return awsutil.Prettify(s)
46447}
46448
46449// GoString returns the string representation
46450func (s ListThingRegistrationTaskReportsOutput) GoString() string {
46451	return s.String()
46452}
46453
46454// SetNextToken sets the NextToken field's value.
46455func (s *ListThingRegistrationTaskReportsOutput) SetNextToken(v string) *ListThingRegistrationTaskReportsOutput {
46456	s.NextToken = &v
46457	return s
46458}
46459
46460// SetReportType sets the ReportType field's value.
46461func (s *ListThingRegistrationTaskReportsOutput) SetReportType(v string) *ListThingRegistrationTaskReportsOutput {
46462	s.ReportType = &v
46463	return s
46464}
46465
46466// SetResourceLinks sets the ResourceLinks field's value.
46467func (s *ListThingRegistrationTaskReportsOutput) SetResourceLinks(v []*string) *ListThingRegistrationTaskReportsOutput {
46468	s.ResourceLinks = v
46469	return s
46470}
46471
46472type ListThingRegistrationTasksInput struct {
46473	_ struct{} `type:"structure"`
46474
46475	// The maximum number of results to return at one time.
46476	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46477
46478	// To retrieve the next set of results, the nextToken value from a previous
46479	// response; otherwise null to receive the first set of results.
46480	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46481
46482	// The status of the bulk thing provisioning task.
46483	Status *string `location:"querystring" locationName:"status" type:"string" enum:"Status"`
46484}
46485
46486// String returns the string representation
46487func (s ListThingRegistrationTasksInput) String() string {
46488	return awsutil.Prettify(s)
46489}
46490
46491// GoString returns the string representation
46492func (s ListThingRegistrationTasksInput) GoString() string {
46493	return s.String()
46494}
46495
46496// Validate inspects the fields of the type to determine if they are valid.
46497func (s *ListThingRegistrationTasksInput) Validate() error {
46498	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTasksInput"}
46499	if s.MaxResults != nil && *s.MaxResults < 1 {
46500		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46501	}
46502
46503	if invalidParams.Len() > 0 {
46504		return invalidParams
46505	}
46506	return nil
46507}
46508
46509// SetMaxResults sets the MaxResults field's value.
46510func (s *ListThingRegistrationTasksInput) SetMaxResults(v int64) *ListThingRegistrationTasksInput {
46511	s.MaxResults = &v
46512	return s
46513}
46514
46515// SetNextToken sets the NextToken field's value.
46516func (s *ListThingRegistrationTasksInput) SetNextToken(v string) *ListThingRegistrationTasksInput {
46517	s.NextToken = &v
46518	return s
46519}
46520
46521// SetStatus sets the Status field's value.
46522func (s *ListThingRegistrationTasksInput) SetStatus(v string) *ListThingRegistrationTasksInput {
46523	s.Status = &v
46524	return s
46525}
46526
46527type ListThingRegistrationTasksOutput struct {
46528	_ struct{} `type:"structure"`
46529
46530	// The token to use to get the next set of results, or null if there are no
46531	// additional results.
46532	NextToken *string `locationName:"nextToken" type:"string"`
46533
46534	// A list of bulk thing provisioning task IDs.
46535	TaskIds []*string `locationName:"taskIds" type:"list"`
46536}
46537
46538// String returns the string representation
46539func (s ListThingRegistrationTasksOutput) String() string {
46540	return awsutil.Prettify(s)
46541}
46542
46543// GoString returns the string representation
46544func (s ListThingRegistrationTasksOutput) GoString() string {
46545	return s.String()
46546}
46547
46548// SetNextToken sets the NextToken field's value.
46549func (s *ListThingRegistrationTasksOutput) SetNextToken(v string) *ListThingRegistrationTasksOutput {
46550	s.NextToken = &v
46551	return s
46552}
46553
46554// SetTaskIds sets the TaskIds field's value.
46555func (s *ListThingRegistrationTasksOutput) SetTaskIds(v []*string) *ListThingRegistrationTasksOutput {
46556	s.TaskIds = v
46557	return s
46558}
46559
46560// The input for the ListThingTypes operation.
46561type ListThingTypesInput struct {
46562	_ struct{} `type:"structure"`
46563
46564	// The maximum number of results to return in this operation.
46565	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46566
46567	// To retrieve the next set of results, the nextToken value from a previous
46568	// response; otherwise null to receive the first set of results.
46569	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46570
46571	// The name of the thing type.
46572	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
46573}
46574
46575// String returns the string representation
46576func (s ListThingTypesInput) String() string {
46577	return awsutil.Prettify(s)
46578}
46579
46580// GoString returns the string representation
46581func (s ListThingTypesInput) GoString() string {
46582	return s.String()
46583}
46584
46585// Validate inspects the fields of the type to determine if they are valid.
46586func (s *ListThingTypesInput) Validate() error {
46587	invalidParams := request.ErrInvalidParams{Context: "ListThingTypesInput"}
46588	if s.MaxResults != nil && *s.MaxResults < 1 {
46589		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46590	}
46591	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
46592		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
46593	}
46594
46595	if invalidParams.Len() > 0 {
46596		return invalidParams
46597	}
46598	return nil
46599}
46600
46601// SetMaxResults sets the MaxResults field's value.
46602func (s *ListThingTypesInput) SetMaxResults(v int64) *ListThingTypesInput {
46603	s.MaxResults = &v
46604	return s
46605}
46606
46607// SetNextToken sets the NextToken field's value.
46608func (s *ListThingTypesInput) SetNextToken(v string) *ListThingTypesInput {
46609	s.NextToken = &v
46610	return s
46611}
46612
46613// SetThingTypeName sets the ThingTypeName field's value.
46614func (s *ListThingTypesInput) SetThingTypeName(v string) *ListThingTypesInput {
46615	s.ThingTypeName = &v
46616	return s
46617}
46618
46619// The output for the ListThingTypes operation.
46620type ListThingTypesOutput struct {
46621	_ struct{} `type:"structure"`
46622
46623	// The token for the next set of results. Will not be returned if operation
46624	// has returned all results.
46625	NextToken *string `locationName:"nextToken" type:"string"`
46626
46627	// The thing types.
46628	ThingTypes []*ThingTypeDefinition `locationName:"thingTypes" type:"list"`
46629}
46630
46631// String returns the string representation
46632func (s ListThingTypesOutput) String() string {
46633	return awsutil.Prettify(s)
46634}
46635
46636// GoString returns the string representation
46637func (s ListThingTypesOutput) GoString() string {
46638	return s.String()
46639}
46640
46641// SetNextToken sets the NextToken field's value.
46642func (s *ListThingTypesOutput) SetNextToken(v string) *ListThingTypesOutput {
46643	s.NextToken = &v
46644	return s
46645}
46646
46647// SetThingTypes sets the ThingTypes field's value.
46648func (s *ListThingTypesOutput) SetThingTypes(v []*ThingTypeDefinition) *ListThingTypesOutput {
46649	s.ThingTypes = v
46650	return s
46651}
46652
46653type ListThingsInBillingGroupInput struct {
46654	_ struct{} `type:"structure"`
46655
46656	// The name of the billing group.
46657	//
46658	// BillingGroupName is a required field
46659	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
46660
46661	// The maximum number of results to return per request.
46662	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46663
46664	// To retrieve the next set of results, the nextToken value from a previous
46665	// response; otherwise null to receive the first set of results.
46666	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46667}
46668
46669// String returns the string representation
46670func (s ListThingsInBillingGroupInput) String() string {
46671	return awsutil.Prettify(s)
46672}
46673
46674// GoString returns the string representation
46675func (s ListThingsInBillingGroupInput) GoString() string {
46676	return s.String()
46677}
46678
46679// Validate inspects the fields of the type to determine if they are valid.
46680func (s *ListThingsInBillingGroupInput) Validate() error {
46681	invalidParams := request.ErrInvalidParams{Context: "ListThingsInBillingGroupInput"}
46682	if s.BillingGroupName == nil {
46683		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
46684	}
46685	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
46686		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
46687	}
46688	if s.MaxResults != nil && *s.MaxResults < 1 {
46689		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46690	}
46691
46692	if invalidParams.Len() > 0 {
46693		return invalidParams
46694	}
46695	return nil
46696}
46697
46698// SetBillingGroupName sets the BillingGroupName field's value.
46699func (s *ListThingsInBillingGroupInput) SetBillingGroupName(v string) *ListThingsInBillingGroupInput {
46700	s.BillingGroupName = &v
46701	return s
46702}
46703
46704// SetMaxResults sets the MaxResults field's value.
46705func (s *ListThingsInBillingGroupInput) SetMaxResults(v int64) *ListThingsInBillingGroupInput {
46706	s.MaxResults = &v
46707	return s
46708}
46709
46710// SetNextToken sets the NextToken field's value.
46711func (s *ListThingsInBillingGroupInput) SetNextToken(v string) *ListThingsInBillingGroupInput {
46712	s.NextToken = &v
46713	return s
46714}
46715
46716type ListThingsInBillingGroupOutput struct {
46717	_ struct{} `type:"structure"`
46718
46719	// The token to use to get the next set of results. Will not be returned if
46720	// operation has returned all results.
46721	NextToken *string `locationName:"nextToken" type:"string"`
46722
46723	// A list of things in the billing group.
46724	Things []*string `locationName:"things" type:"list"`
46725}
46726
46727// String returns the string representation
46728func (s ListThingsInBillingGroupOutput) String() string {
46729	return awsutil.Prettify(s)
46730}
46731
46732// GoString returns the string representation
46733func (s ListThingsInBillingGroupOutput) GoString() string {
46734	return s.String()
46735}
46736
46737// SetNextToken sets the NextToken field's value.
46738func (s *ListThingsInBillingGroupOutput) SetNextToken(v string) *ListThingsInBillingGroupOutput {
46739	s.NextToken = &v
46740	return s
46741}
46742
46743// SetThings sets the Things field's value.
46744func (s *ListThingsInBillingGroupOutput) SetThings(v []*string) *ListThingsInBillingGroupOutput {
46745	s.Things = v
46746	return s
46747}
46748
46749type ListThingsInThingGroupInput struct {
46750	_ struct{} `type:"structure"`
46751
46752	// The maximum number of results to return at one time.
46753	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46754
46755	// To retrieve the next set of results, the nextToken value from a previous
46756	// response; otherwise null to receive the first set of results.
46757	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46758
46759	// When true, list things in this thing group and in all child groups as well.
46760	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
46761
46762	// The thing group name.
46763	//
46764	// ThingGroupName is a required field
46765	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
46766}
46767
46768// String returns the string representation
46769func (s ListThingsInThingGroupInput) String() string {
46770	return awsutil.Prettify(s)
46771}
46772
46773// GoString returns the string representation
46774func (s ListThingsInThingGroupInput) GoString() string {
46775	return s.String()
46776}
46777
46778// Validate inspects the fields of the type to determine if they are valid.
46779func (s *ListThingsInThingGroupInput) Validate() error {
46780	invalidParams := request.ErrInvalidParams{Context: "ListThingsInThingGroupInput"}
46781	if s.MaxResults != nil && *s.MaxResults < 1 {
46782		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46783	}
46784	if s.ThingGroupName == nil {
46785		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
46786	}
46787	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
46788		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
46789	}
46790
46791	if invalidParams.Len() > 0 {
46792		return invalidParams
46793	}
46794	return nil
46795}
46796
46797// SetMaxResults sets the MaxResults field's value.
46798func (s *ListThingsInThingGroupInput) SetMaxResults(v int64) *ListThingsInThingGroupInput {
46799	s.MaxResults = &v
46800	return s
46801}
46802
46803// SetNextToken sets the NextToken field's value.
46804func (s *ListThingsInThingGroupInput) SetNextToken(v string) *ListThingsInThingGroupInput {
46805	s.NextToken = &v
46806	return s
46807}
46808
46809// SetRecursive sets the Recursive field's value.
46810func (s *ListThingsInThingGroupInput) SetRecursive(v bool) *ListThingsInThingGroupInput {
46811	s.Recursive = &v
46812	return s
46813}
46814
46815// SetThingGroupName sets the ThingGroupName field's value.
46816func (s *ListThingsInThingGroupInput) SetThingGroupName(v string) *ListThingsInThingGroupInput {
46817	s.ThingGroupName = &v
46818	return s
46819}
46820
46821type ListThingsInThingGroupOutput struct {
46822	_ struct{} `type:"structure"`
46823
46824	// The token to use to get the next set of results, or null if there are no
46825	// additional results.
46826	NextToken *string `locationName:"nextToken" type:"string"`
46827
46828	// The things in the specified thing group.
46829	Things []*string `locationName:"things" type:"list"`
46830}
46831
46832// String returns the string representation
46833func (s ListThingsInThingGroupOutput) String() string {
46834	return awsutil.Prettify(s)
46835}
46836
46837// GoString returns the string representation
46838func (s ListThingsInThingGroupOutput) GoString() string {
46839	return s.String()
46840}
46841
46842// SetNextToken sets the NextToken field's value.
46843func (s *ListThingsInThingGroupOutput) SetNextToken(v string) *ListThingsInThingGroupOutput {
46844	s.NextToken = &v
46845	return s
46846}
46847
46848// SetThings sets the Things field's value.
46849func (s *ListThingsInThingGroupOutput) SetThings(v []*string) *ListThingsInThingGroupOutput {
46850	s.Things = v
46851	return s
46852}
46853
46854// The input for the ListThings operation.
46855type ListThingsInput struct {
46856	_ struct{} `type:"structure"`
46857
46858	// The attribute name used to search for things.
46859	AttributeName *string `location:"querystring" locationName:"attributeName" type:"string"`
46860
46861	// The attribute value used to search for things.
46862	AttributeValue *string `location:"querystring" locationName:"attributeValue" type:"string"`
46863
46864	// The maximum number of results to return in this operation.
46865	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46866
46867	// To retrieve the next set of results, the nextToken value from a previous
46868	// response; otherwise null to receive the first set of results.
46869	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46870
46871	// The name of the thing type used to search for things.
46872	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
46873
46874	// When true, the action returns the thing resources with attribute values that
46875	// start with the attributeValue provided.
46876	//
46877	// When false, or not present, the action returns only the thing resources with
46878	// attribute values that match the entire attributeValue provided.
46879	UsePrefixAttributeValue *bool `location:"querystring" locationName:"usePrefixAttributeValue" type:"boolean"`
46880}
46881
46882// String returns the string representation
46883func (s ListThingsInput) String() string {
46884	return awsutil.Prettify(s)
46885}
46886
46887// GoString returns the string representation
46888func (s ListThingsInput) GoString() string {
46889	return s.String()
46890}
46891
46892// Validate inspects the fields of the type to determine if they are valid.
46893func (s *ListThingsInput) Validate() error {
46894	invalidParams := request.ErrInvalidParams{Context: "ListThingsInput"}
46895	if s.MaxResults != nil && *s.MaxResults < 1 {
46896		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46897	}
46898	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
46899		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
46900	}
46901
46902	if invalidParams.Len() > 0 {
46903		return invalidParams
46904	}
46905	return nil
46906}
46907
46908// SetAttributeName sets the AttributeName field's value.
46909func (s *ListThingsInput) SetAttributeName(v string) *ListThingsInput {
46910	s.AttributeName = &v
46911	return s
46912}
46913
46914// SetAttributeValue sets the AttributeValue field's value.
46915func (s *ListThingsInput) SetAttributeValue(v string) *ListThingsInput {
46916	s.AttributeValue = &v
46917	return s
46918}
46919
46920// SetMaxResults sets the MaxResults field's value.
46921func (s *ListThingsInput) SetMaxResults(v int64) *ListThingsInput {
46922	s.MaxResults = &v
46923	return s
46924}
46925
46926// SetNextToken sets the NextToken field's value.
46927func (s *ListThingsInput) SetNextToken(v string) *ListThingsInput {
46928	s.NextToken = &v
46929	return s
46930}
46931
46932// SetThingTypeName sets the ThingTypeName field's value.
46933func (s *ListThingsInput) SetThingTypeName(v string) *ListThingsInput {
46934	s.ThingTypeName = &v
46935	return s
46936}
46937
46938// SetUsePrefixAttributeValue sets the UsePrefixAttributeValue field's value.
46939func (s *ListThingsInput) SetUsePrefixAttributeValue(v bool) *ListThingsInput {
46940	s.UsePrefixAttributeValue = &v
46941	return s
46942}
46943
46944// The output from the ListThings operation.
46945type ListThingsOutput struct {
46946	_ struct{} `type:"structure"`
46947
46948	// The token to use to get the next set of results. Will not be returned if
46949	// operation has returned all results.
46950	NextToken *string `locationName:"nextToken" type:"string"`
46951
46952	// The things.
46953	Things []*ThingAttribute `locationName:"things" type:"list"`
46954}
46955
46956// String returns the string representation
46957func (s ListThingsOutput) String() string {
46958	return awsutil.Prettify(s)
46959}
46960
46961// GoString returns the string representation
46962func (s ListThingsOutput) GoString() string {
46963	return s.String()
46964}
46965
46966// SetNextToken sets the NextToken field's value.
46967func (s *ListThingsOutput) SetNextToken(v string) *ListThingsOutput {
46968	s.NextToken = &v
46969	return s
46970}
46971
46972// SetThings sets the Things field's value.
46973func (s *ListThingsOutput) SetThings(v []*ThingAttribute) *ListThingsOutput {
46974	s.Things = v
46975	return s
46976}
46977
46978type ListTopicRuleDestinationsInput struct {
46979	_ struct{} `type:"structure"`
46980
46981	// The maximum number of results to return at one time.
46982	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46983
46984	// To retrieve the next set of results, the nextToken value from a previous
46985	// response; otherwise null to receive the first set of results.
46986	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46987}
46988
46989// String returns the string representation
46990func (s ListTopicRuleDestinationsInput) String() string {
46991	return awsutil.Prettify(s)
46992}
46993
46994// GoString returns the string representation
46995func (s ListTopicRuleDestinationsInput) GoString() string {
46996	return s.String()
46997}
46998
46999// Validate inspects the fields of the type to determine if they are valid.
47000func (s *ListTopicRuleDestinationsInput) Validate() error {
47001	invalidParams := request.ErrInvalidParams{Context: "ListTopicRuleDestinationsInput"}
47002	if s.MaxResults != nil && *s.MaxResults < 1 {
47003		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47004	}
47005
47006	if invalidParams.Len() > 0 {
47007		return invalidParams
47008	}
47009	return nil
47010}
47011
47012// SetMaxResults sets the MaxResults field's value.
47013func (s *ListTopicRuleDestinationsInput) SetMaxResults(v int64) *ListTopicRuleDestinationsInput {
47014	s.MaxResults = &v
47015	return s
47016}
47017
47018// SetNextToken sets the NextToken field's value.
47019func (s *ListTopicRuleDestinationsInput) SetNextToken(v string) *ListTopicRuleDestinationsInput {
47020	s.NextToken = &v
47021	return s
47022}
47023
47024type ListTopicRuleDestinationsOutput struct {
47025	_ struct{} `type:"structure"`
47026
47027	// Information about a topic rule destination.
47028	DestinationSummaries []*TopicRuleDestinationSummary `locationName:"destinationSummaries" type:"list"`
47029
47030	// The token to use to get the next set of results, or null if there are no
47031	// additional results.
47032	NextToken *string `locationName:"nextToken" type:"string"`
47033}
47034
47035// String returns the string representation
47036func (s ListTopicRuleDestinationsOutput) String() string {
47037	return awsutil.Prettify(s)
47038}
47039
47040// GoString returns the string representation
47041func (s ListTopicRuleDestinationsOutput) GoString() string {
47042	return s.String()
47043}
47044
47045// SetDestinationSummaries sets the DestinationSummaries field's value.
47046func (s *ListTopicRuleDestinationsOutput) SetDestinationSummaries(v []*TopicRuleDestinationSummary) *ListTopicRuleDestinationsOutput {
47047	s.DestinationSummaries = v
47048	return s
47049}
47050
47051// SetNextToken sets the NextToken field's value.
47052func (s *ListTopicRuleDestinationsOutput) SetNextToken(v string) *ListTopicRuleDestinationsOutput {
47053	s.NextToken = &v
47054	return s
47055}
47056
47057// The input for the ListTopicRules operation.
47058type ListTopicRulesInput struct {
47059	_ struct{} `type:"structure"`
47060
47061	// The maximum number of results to return.
47062	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47063
47064	// To retrieve the next set of results, the nextToken value from a previous
47065	// response; otherwise null to receive the first set of results.
47066	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47067
47068	// Specifies whether the rule is disabled.
47069	RuleDisabled *bool `location:"querystring" locationName:"ruleDisabled" type:"boolean"`
47070
47071	// The topic.
47072	Topic *string `location:"querystring" locationName:"topic" type:"string"`
47073}
47074
47075// String returns the string representation
47076func (s ListTopicRulesInput) String() string {
47077	return awsutil.Prettify(s)
47078}
47079
47080// GoString returns the string representation
47081func (s ListTopicRulesInput) GoString() string {
47082	return s.String()
47083}
47084
47085// Validate inspects the fields of the type to determine if they are valid.
47086func (s *ListTopicRulesInput) Validate() error {
47087	invalidParams := request.ErrInvalidParams{Context: "ListTopicRulesInput"}
47088	if s.MaxResults != nil && *s.MaxResults < 1 {
47089		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47090	}
47091
47092	if invalidParams.Len() > 0 {
47093		return invalidParams
47094	}
47095	return nil
47096}
47097
47098// SetMaxResults sets the MaxResults field's value.
47099func (s *ListTopicRulesInput) SetMaxResults(v int64) *ListTopicRulesInput {
47100	s.MaxResults = &v
47101	return s
47102}
47103
47104// SetNextToken sets the NextToken field's value.
47105func (s *ListTopicRulesInput) SetNextToken(v string) *ListTopicRulesInput {
47106	s.NextToken = &v
47107	return s
47108}
47109
47110// SetRuleDisabled sets the RuleDisabled field's value.
47111func (s *ListTopicRulesInput) SetRuleDisabled(v bool) *ListTopicRulesInput {
47112	s.RuleDisabled = &v
47113	return s
47114}
47115
47116// SetTopic sets the Topic field's value.
47117func (s *ListTopicRulesInput) SetTopic(v string) *ListTopicRulesInput {
47118	s.Topic = &v
47119	return s
47120}
47121
47122// The output from the ListTopicRules operation.
47123type ListTopicRulesOutput struct {
47124	_ struct{} `type:"structure"`
47125
47126	// The token to use to get the next set of results, or null if there are no
47127	// additional results.
47128	NextToken *string `locationName:"nextToken" type:"string"`
47129
47130	// The rules.
47131	Rules []*TopicRuleListItem `locationName:"rules" type:"list"`
47132}
47133
47134// String returns the string representation
47135func (s ListTopicRulesOutput) String() string {
47136	return awsutil.Prettify(s)
47137}
47138
47139// GoString returns the string representation
47140func (s ListTopicRulesOutput) GoString() string {
47141	return s.String()
47142}
47143
47144// SetNextToken sets the NextToken field's value.
47145func (s *ListTopicRulesOutput) SetNextToken(v string) *ListTopicRulesOutput {
47146	s.NextToken = &v
47147	return s
47148}
47149
47150// SetRules sets the Rules field's value.
47151func (s *ListTopicRulesOutput) SetRules(v []*TopicRuleListItem) *ListTopicRulesOutput {
47152	s.Rules = v
47153	return s
47154}
47155
47156type ListV2LoggingLevelsInput struct {
47157	_ struct{} `type:"structure"`
47158
47159	// The maximum number of results to return at one time.
47160	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47161
47162	// To retrieve the next set of results, the nextToken value from a previous
47163	// response; otherwise null to receive the first set of results.
47164	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47165
47166	// The type of resource for which you are configuring logging. Must be THING_Group.
47167	TargetType *string `location:"querystring" locationName:"targetType" type:"string" enum:"LogTargetType"`
47168}
47169
47170// String returns the string representation
47171func (s ListV2LoggingLevelsInput) String() string {
47172	return awsutil.Prettify(s)
47173}
47174
47175// GoString returns the string representation
47176func (s ListV2LoggingLevelsInput) GoString() string {
47177	return s.String()
47178}
47179
47180// Validate inspects the fields of the type to determine if they are valid.
47181func (s *ListV2LoggingLevelsInput) Validate() error {
47182	invalidParams := request.ErrInvalidParams{Context: "ListV2LoggingLevelsInput"}
47183	if s.MaxResults != nil && *s.MaxResults < 1 {
47184		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47185	}
47186
47187	if invalidParams.Len() > 0 {
47188		return invalidParams
47189	}
47190	return nil
47191}
47192
47193// SetMaxResults sets the MaxResults field's value.
47194func (s *ListV2LoggingLevelsInput) SetMaxResults(v int64) *ListV2LoggingLevelsInput {
47195	s.MaxResults = &v
47196	return s
47197}
47198
47199// SetNextToken sets the NextToken field's value.
47200func (s *ListV2LoggingLevelsInput) SetNextToken(v string) *ListV2LoggingLevelsInput {
47201	s.NextToken = &v
47202	return s
47203}
47204
47205// SetTargetType sets the TargetType field's value.
47206func (s *ListV2LoggingLevelsInput) SetTargetType(v string) *ListV2LoggingLevelsInput {
47207	s.TargetType = &v
47208	return s
47209}
47210
47211type ListV2LoggingLevelsOutput struct {
47212	_ struct{} `type:"structure"`
47213
47214	// The logging configuration for a target.
47215	LogTargetConfigurations []*LogTargetConfiguration `locationName:"logTargetConfigurations" type:"list"`
47216
47217	// The token to use to get the next set of results, or null if there are no
47218	// additional results.
47219	NextToken *string `locationName:"nextToken" type:"string"`
47220}
47221
47222// String returns the string representation
47223func (s ListV2LoggingLevelsOutput) String() string {
47224	return awsutil.Prettify(s)
47225}
47226
47227// GoString returns the string representation
47228func (s ListV2LoggingLevelsOutput) GoString() string {
47229	return s.String()
47230}
47231
47232// SetLogTargetConfigurations sets the LogTargetConfigurations field's value.
47233func (s *ListV2LoggingLevelsOutput) SetLogTargetConfigurations(v []*LogTargetConfiguration) *ListV2LoggingLevelsOutput {
47234	s.LogTargetConfigurations = v
47235	return s
47236}
47237
47238// SetNextToken sets the NextToken field's value.
47239func (s *ListV2LoggingLevelsOutput) SetNextToken(v string) *ListV2LoggingLevelsOutput {
47240	s.NextToken = &v
47241	return s
47242}
47243
47244type ListViolationEventsInput struct {
47245	_ struct{} `type:"structure"`
47246
47247	// The criteria for a behavior.
47248	BehaviorCriteriaType *string `location:"querystring" locationName:"behaviorCriteriaType" type:"string" enum:"BehaviorCriteriaType"`
47249
47250	// The end time for the alerts to be listed.
47251	//
47252	// EndTime is a required field
47253	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
47254
47255	// A list of all suppressed alerts.
47256	ListSuppressedAlerts *bool `location:"querystring" locationName:"listSuppressedAlerts" type:"boolean"`
47257
47258	// The maximum number of results to return at one time.
47259	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47260
47261	// The token for the next set of results.
47262	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47263
47264	// A filter to limit results to those alerts generated by the specified security
47265	// profile.
47266	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
47267
47268	// The start time for the alerts to be listed.
47269	//
47270	// StartTime is a required field
47271	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
47272
47273	// A filter to limit results to those alerts caused by the specified thing.
47274	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
47275}
47276
47277// String returns the string representation
47278func (s ListViolationEventsInput) String() string {
47279	return awsutil.Prettify(s)
47280}
47281
47282// GoString returns the string representation
47283func (s ListViolationEventsInput) GoString() string {
47284	return s.String()
47285}
47286
47287// Validate inspects the fields of the type to determine if they are valid.
47288func (s *ListViolationEventsInput) Validate() error {
47289	invalidParams := request.ErrInvalidParams{Context: "ListViolationEventsInput"}
47290	if s.EndTime == nil {
47291		invalidParams.Add(request.NewErrParamRequired("EndTime"))
47292	}
47293	if s.MaxResults != nil && *s.MaxResults < 1 {
47294		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47295	}
47296	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
47297		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
47298	}
47299	if s.StartTime == nil {
47300		invalidParams.Add(request.NewErrParamRequired("StartTime"))
47301	}
47302	if s.ThingName != nil && len(*s.ThingName) < 1 {
47303		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
47304	}
47305
47306	if invalidParams.Len() > 0 {
47307		return invalidParams
47308	}
47309	return nil
47310}
47311
47312// SetBehaviorCriteriaType sets the BehaviorCriteriaType field's value.
47313func (s *ListViolationEventsInput) SetBehaviorCriteriaType(v string) *ListViolationEventsInput {
47314	s.BehaviorCriteriaType = &v
47315	return s
47316}
47317
47318// SetEndTime sets the EndTime field's value.
47319func (s *ListViolationEventsInput) SetEndTime(v time.Time) *ListViolationEventsInput {
47320	s.EndTime = &v
47321	return s
47322}
47323
47324// SetListSuppressedAlerts sets the ListSuppressedAlerts field's value.
47325func (s *ListViolationEventsInput) SetListSuppressedAlerts(v bool) *ListViolationEventsInput {
47326	s.ListSuppressedAlerts = &v
47327	return s
47328}
47329
47330// SetMaxResults sets the MaxResults field's value.
47331func (s *ListViolationEventsInput) SetMaxResults(v int64) *ListViolationEventsInput {
47332	s.MaxResults = &v
47333	return s
47334}
47335
47336// SetNextToken sets the NextToken field's value.
47337func (s *ListViolationEventsInput) SetNextToken(v string) *ListViolationEventsInput {
47338	s.NextToken = &v
47339	return s
47340}
47341
47342// SetSecurityProfileName sets the SecurityProfileName field's value.
47343func (s *ListViolationEventsInput) SetSecurityProfileName(v string) *ListViolationEventsInput {
47344	s.SecurityProfileName = &v
47345	return s
47346}
47347
47348// SetStartTime sets the StartTime field's value.
47349func (s *ListViolationEventsInput) SetStartTime(v time.Time) *ListViolationEventsInput {
47350	s.StartTime = &v
47351	return s
47352}
47353
47354// SetThingName sets the ThingName field's value.
47355func (s *ListViolationEventsInput) SetThingName(v string) *ListViolationEventsInput {
47356	s.ThingName = &v
47357	return s
47358}
47359
47360type ListViolationEventsOutput struct {
47361	_ struct{} `type:"structure"`
47362
47363	// A token that can be used to retrieve the next set of results, or null if
47364	// there are no additional results.
47365	NextToken *string `locationName:"nextToken" type:"string"`
47366
47367	// The security profile violation alerts issued for this account during the
47368	// given time period, potentially filtered by security profile, behavior violated,
47369	// or thing (device) violating.
47370	ViolationEvents []*ViolationEvent `locationName:"violationEvents" type:"list"`
47371}
47372
47373// String returns the string representation
47374func (s ListViolationEventsOutput) String() string {
47375	return awsutil.Prettify(s)
47376}
47377
47378// GoString returns the string representation
47379func (s ListViolationEventsOutput) GoString() string {
47380	return s.String()
47381}
47382
47383// SetNextToken sets the NextToken field's value.
47384func (s *ListViolationEventsOutput) SetNextToken(v string) *ListViolationEventsOutput {
47385	s.NextToken = &v
47386	return s
47387}
47388
47389// SetViolationEvents sets the ViolationEvents field's value.
47390func (s *ListViolationEventsOutput) SetViolationEvents(v []*ViolationEvent) *ListViolationEventsOutput {
47391	s.ViolationEvents = v
47392	return s
47393}
47394
47395// A log target.
47396type LogTarget struct {
47397	_ struct{} `type:"structure"`
47398
47399	// The target name.
47400	TargetName *string `locationName:"targetName" type:"string"`
47401
47402	// The target type.
47403	//
47404	// TargetType is a required field
47405	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
47406}
47407
47408// String returns the string representation
47409func (s LogTarget) String() string {
47410	return awsutil.Prettify(s)
47411}
47412
47413// GoString returns the string representation
47414func (s LogTarget) GoString() string {
47415	return s.String()
47416}
47417
47418// Validate inspects the fields of the type to determine if they are valid.
47419func (s *LogTarget) Validate() error {
47420	invalidParams := request.ErrInvalidParams{Context: "LogTarget"}
47421	if s.TargetType == nil {
47422		invalidParams.Add(request.NewErrParamRequired("TargetType"))
47423	}
47424
47425	if invalidParams.Len() > 0 {
47426		return invalidParams
47427	}
47428	return nil
47429}
47430
47431// SetTargetName sets the TargetName field's value.
47432func (s *LogTarget) SetTargetName(v string) *LogTarget {
47433	s.TargetName = &v
47434	return s
47435}
47436
47437// SetTargetType sets the TargetType field's value.
47438func (s *LogTarget) SetTargetType(v string) *LogTarget {
47439	s.TargetType = &v
47440	return s
47441}
47442
47443// The target configuration.
47444type LogTargetConfiguration struct {
47445	_ struct{} `type:"structure"`
47446
47447	// The logging level.
47448	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
47449
47450	// A log target
47451	LogTarget *LogTarget `locationName:"logTarget" type:"structure"`
47452}
47453
47454// String returns the string representation
47455func (s LogTargetConfiguration) String() string {
47456	return awsutil.Prettify(s)
47457}
47458
47459// GoString returns the string representation
47460func (s LogTargetConfiguration) GoString() string {
47461	return s.String()
47462}
47463
47464// SetLogLevel sets the LogLevel field's value.
47465func (s *LogTargetConfiguration) SetLogLevel(v string) *LogTargetConfiguration {
47466	s.LogLevel = &v
47467	return s
47468}
47469
47470// SetLogTarget sets the LogTarget field's value.
47471func (s *LogTargetConfiguration) SetLogTarget(v *LogTarget) *LogTargetConfiguration {
47472	s.LogTarget = v
47473	return s
47474}
47475
47476// Describes the logging options payload.
47477type LoggingOptionsPayload struct {
47478	_ struct{} `type:"structure"`
47479
47480	// The log level.
47481	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
47482
47483	// The ARN of the IAM role that grants access.
47484	//
47485	// RoleArn is a required field
47486	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
47487}
47488
47489// String returns the string representation
47490func (s LoggingOptionsPayload) String() string {
47491	return awsutil.Prettify(s)
47492}
47493
47494// GoString returns the string representation
47495func (s LoggingOptionsPayload) GoString() string {
47496	return s.String()
47497}
47498
47499// Validate inspects the fields of the type to determine if they are valid.
47500func (s *LoggingOptionsPayload) Validate() error {
47501	invalidParams := request.ErrInvalidParams{Context: "LoggingOptionsPayload"}
47502	if s.RoleArn == nil {
47503		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
47504	}
47505
47506	if invalidParams.Len() > 0 {
47507		return invalidParams
47508	}
47509	return nil
47510}
47511
47512// SetLogLevel sets the LogLevel field's value.
47513func (s *LoggingOptionsPayload) SetLogLevel(v string) *LoggingOptionsPayload {
47514	s.LogLevel = &v
47515	return s
47516}
47517
47518// SetRoleArn sets the RoleArn field's value.
47519func (s *LoggingOptionsPayload) SetRoleArn(v string) *LoggingOptionsPayload {
47520	s.RoleArn = &v
47521	return s
47522}
47523
47524// The configuration of an ML Detect Security Profile.
47525type MachineLearningDetectionConfig struct {
47526	_ struct{} `type:"structure"`
47527
47528	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or
47529	// High.
47530	//
47531	// ConfidenceLevel is a required field
47532	ConfidenceLevel *string `locationName:"confidenceLevel" type:"string" required:"true" enum:"ConfidenceLevel"`
47533}
47534
47535// String returns the string representation
47536func (s MachineLearningDetectionConfig) String() string {
47537	return awsutil.Prettify(s)
47538}
47539
47540// GoString returns the string representation
47541func (s MachineLearningDetectionConfig) GoString() string {
47542	return s.String()
47543}
47544
47545// Validate inspects the fields of the type to determine if they are valid.
47546func (s *MachineLearningDetectionConfig) Validate() error {
47547	invalidParams := request.ErrInvalidParams{Context: "MachineLearningDetectionConfig"}
47548	if s.ConfidenceLevel == nil {
47549		invalidParams.Add(request.NewErrParamRequired("ConfidenceLevel"))
47550	}
47551
47552	if invalidParams.Len() > 0 {
47553		return invalidParams
47554	}
47555	return nil
47556}
47557
47558// SetConfidenceLevel sets the ConfidenceLevel field's value.
47559func (s *MachineLearningDetectionConfig) SetConfidenceLevel(v string) *MachineLearningDetectionConfig {
47560	s.ConfidenceLevel = &v
47561	return s
47562}
47563
47564// The policy documentation is not valid.
47565type MalformedPolicyException struct {
47566	_            struct{}                  `type:"structure"`
47567	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
47568
47569	// The message for the exception.
47570	Message_ *string `locationName:"message" type:"string"`
47571}
47572
47573// String returns the string representation
47574func (s MalformedPolicyException) String() string {
47575	return awsutil.Prettify(s)
47576}
47577
47578// GoString returns the string representation
47579func (s MalformedPolicyException) GoString() string {
47580	return s.String()
47581}
47582
47583func newErrorMalformedPolicyException(v protocol.ResponseMetadata) error {
47584	return &MalformedPolicyException{
47585		RespMetadata: v,
47586	}
47587}
47588
47589// Code returns the exception type name.
47590func (s *MalformedPolicyException) Code() string {
47591	return "MalformedPolicyException"
47592}
47593
47594// Message returns the exception's message.
47595func (s *MalformedPolicyException) Message() string {
47596	if s.Message_ != nil {
47597		return *s.Message_
47598	}
47599	return ""
47600}
47601
47602// OrigErr always returns nil, satisfies awserr.Error interface.
47603func (s *MalformedPolicyException) OrigErr() error {
47604	return nil
47605}
47606
47607func (s *MalformedPolicyException) Error() string {
47608	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
47609}
47610
47611// Status code returns the HTTP status code for the request's response error.
47612func (s *MalformedPolicyException) StatusCode() int {
47613	return s.RespMetadata.StatusCode
47614}
47615
47616// RequestID returns the service's response RequestID for request.
47617func (s *MalformedPolicyException) RequestID() string {
47618	return s.RespMetadata.RequestID
47619}
47620
47621// The dimension of a metric.
47622type MetricDimension struct {
47623	_ struct{} `type:"structure"`
47624
47625	// A unique identifier for the dimension.
47626	//
47627	// DimensionName is a required field
47628	DimensionName *string `locationName:"dimensionName" min:"1" type:"string" required:"true"`
47629
47630	// Defines how the dimensionValues of a dimension are interpreted. For example,
47631	// for dimension type TOPIC_FILTER, the IN operator, a message will be counted
47632	// only if its topic matches one of the topic filters. With NOT_IN operator,
47633	// a message will be counted only if it doesn't match any of the topic filters.
47634	// The operator is optional: if it's not provided (is null), it will be interpreted
47635	// as IN.
47636	Operator *string `locationName:"operator" type:"string" enum:"DimensionValueOperator"`
47637}
47638
47639// String returns the string representation
47640func (s MetricDimension) String() string {
47641	return awsutil.Prettify(s)
47642}
47643
47644// GoString returns the string representation
47645func (s MetricDimension) GoString() string {
47646	return s.String()
47647}
47648
47649// Validate inspects the fields of the type to determine if they are valid.
47650func (s *MetricDimension) Validate() error {
47651	invalidParams := request.ErrInvalidParams{Context: "MetricDimension"}
47652	if s.DimensionName == nil {
47653		invalidParams.Add(request.NewErrParamRequired("DimensionName"))
47654	}
47655	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
47656		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
47657	}
47658
47659	if invalidParams.Len() > 0 {
47660		return invalidParams
47661	}
47662	return nil
47663}
47664
47665// SetDimensionName sets the DimensionName field's value.
47666func (s *MetricDimension) SetDimensionName(v string) *MetricDimension {
47667	s.DimensionName = &v
47668	return s
47669}
47670
47671// SetOperator sets the Operator field's value.
47672func (s *MetricDimension) SetOperator(v string) *MetricDimension {
47673	s.Operator = &v
47674	return s
47675}
47676
47677// The metric you want to retain. Dimensions are optional.
47678type MetricToRetain struct {
47679	_ struct{} `type:"structure"`
47680
47681	// What is measured by the behavior.
47682	//
47683	// Metric is a required field
47684	Metric *string `locationName:"metric" type:"string" required:"true"`
47685
47686	// The dimension of a metric. This can't be used with custom metrics.
47687	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
47688}
47689
47690// String returns the string representation
47691func (s MetricToRetain) String() string {
47692	return awsutil.Prettify(s)
47693}
47694
47695// GoString returns the string representation
47696func (s MetricToRetain) GoString() string {
47697	return s.String()
47698}
47699
47700// Validate inspects the fields of the type to determine if they are valid.
47701func (s *MetricToRetain) Validate() error {
47702	invalidParams := request.ErrInvalidParams{Context: "MetricToRetain"}
47703	if s.Metric == nil {
47704		invalidParams.Add(request.NewErrParamRequired("Metric"))
47705	}
47706	if s.MetricDimension != nil {
47707		if err := s.MetricDimension.Validate(); err != nil {
47708			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
47709		}
47710	}
47711
47712	if invalidParams.Len() > 0 {
47713		return invalidParams
47714	}
47715	return nil
47716}
47717
47718// SetMetric sets the Metric field's value.
47719func (s *MetricToRetain) SetMetric(v string) *MetricToRetain {
47720	s.Metric = &v
47721	return s
47722}
47723
47724// SetMetricDimension sets the MetricDimension field's value.
47725func (s *MetricToRetain) SetMetricDimension(v *MetricDimension) *MetricToRetain {
47726	s.MetricDimension = v
47727	return s
47728}
47729
47730// The value to be compared with the metric.
47731type MetricValue struct {
47732	_ struct{} `type:"structure"`
47733
47734	// If the comparisonOperator calls for a set of CIDRs, use this to specify that
47735	// set to be compared with the metric.
47736	Cidrs []*string `locationName:"cidrs" type:"list"`
47737
47738	// If the comparisonOperator calls for a numeric value, use this to specify
47739	// that numeric value to be compared with the metric.
47740	Count *int64 `locationName:"count" type:"long"`
47741
47742	// The numeral value of a metric.
47743	Number *float64 `locationName:"number" type:"double"`
47744
47745	// The numeral values of a metric.
47746	Numbers []*float64 `locationName:"numbers" type:"list"`
47747
47748	// If the comparisonOperator calls for a set of ports, use this to specify that
47749	// set to be compared with the metric.
47750	Ports []*int64 `locationName:"ports" type:"list"`
47751
47752	// The string values of a metric.
47753	Strings []*string `locationName:"strings" type:"list"`
47754}
47755
47756// String returns the string representation
47757func (s MetricValue) String() string {
47758	return awsutil.Prettify(s)
47759}
47760
47761// GoString returns the string representation
47762func (s MetricValue) GoString() string {
47763	return s.String()
47764}
47765
47766// SetCidrs sets the Cidrs field's value.
47767func (s *MetricValue) SetCidrs(v []*string) *MetricValue {
47768	s.Cidrs = v
47769	return s
47770}
47771
47772// SetCount sets the Count field's value.
47773func (s *MetricValue) SetCount(v int64) *MetricValue {
47774	s.Count = &v
47775	return s
47776}
47777
47778// SetNumber sets the Number field's value.
47779func (s *MetricValue) SetNumber(v float64) *MetricValue {
47780	s.Number = &v
47781	return s
47782}
47783
47784// SetNumbers sets the Numbers field's value.
47785func (s *MetricValue) SetNumbers(v []*float64) *MetricValue {
47786	s.Numbers = v
47787	return s
47788}
47789
47790// SetPorts sets the Ports field's value.
47791func (s *MetricValue) SetPorts(v []*int64) *MetricValue {
47792	s.Ports = v
47793	return s
47794}
47795
47796// SetStrings sets the Strings field's value.
47797func (s *MetricValue) SetStrings(v []*string) *MetricValue {
47798	s.Strings = v
47799	return s
47800}
47801
47802// Describes which changes should be applied as part of a mitigation action.
47803type MitigationAction struct {
47804	_ struct{} `type:"structure"`
47805
47806	// The set of parameters for this mitigation action. The parameters vary, depending
47807	// on the kind of action you apply.
47808	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
47809
47810	// A unique identifier for the mitigation action.
47811	Id *string `locationName:"id" type:"string"`
47812
47813	// A user-friendly name for the mitigation action.
47814	Name *string `locationName:"name" type:"string"`
47815
47816	// The IAM role ARN used to apply this mitigation action.
47817	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
47818}
47819
47820// String returns the string representation
47821func (s MitigationAction) String() string {
47822	return awsutil.Prettify(s)
47823}
47824
47825// GoString returns the string representation
47826func (s MitigationAction) GoString() string {
47827	return s.String()
47828}
47829
47830// SetActionParams sets the ActionParams field's value.
47831func (s *MitigationAction) SetActionParams(v *MitigationActionParams) *MitigationAction {
47832	s.ActionParams = v
47833	return s
47834}
47835
47836// SetId sets the Id field's value.
47837func (s *MitigationAction) SetId(v string) *MitigationAction {
47838	s.Id = &v
47839	return s
47840}
47841
47842// SetName sets the Name field's value.
47843func (s *MitigationAction) SetName(v string) *MitigationAction {
47844	s.Name = &v
47845	return s
47846}
47847
47848// SetRoleArn sets the RoleArn field's value.
47849func (s *MitigationAction) SetRoleArn(v string) *MitigationAction {
47850	s.RoleArn = &v
47851	return s
47852}
47853
47854// Information that identifies a mitigation action. This information is returned
47855// by ListMitigationActions.
47856type MitigationActionIdentifier struct {
47857	_ struct{} `type:"structure"`
47858
47859	// The IAM role ARN used to apply this mitigation action.
47860	ActionArn *string `locationName:"actionArn" type:"string"`
47861
47862	// The friendly name of the mitigation action.
47863	ActionName *string `locationName:"actionName" type:"string"`
47864
47865	// The date when this mitigation action was created.
47866	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
47867}
47868
47869// String returns the string representation
47870func (s MitigationActionIdentifier) String() string {
47871	return awsutil.Prettify(s)
47872}
47873
47874// GoString returns the string representation
47875func (s MitigationActionIdentifier) GoString() string {
47876	return s.String()
47877}
47878
47879// SetActionArn sets the ActionArn field's value.
47880func (s *MitigationActionIdentifier) SetActionArn(v string) *MitigationActionIdentifier {
47881	s.ActionArn = &v
47882	return s
47883}
47884
47885// SetActionName sets the ActionName field's value.
47886func (s *MitigationActionIdentifier) SetActionName(v string) *MitigationActionIdentifier {
47887	s.ActionName = &v
47888	return s
47889}
47890
47891// SetCreationDate sets the CreationDate field's value.
47892func (s *MitigationActionIdentifier) SetCreationDate(v time.Time) *MitigationActionIdentifier {
47893	s.CreationDate = &v
47894	return s
47895}
47896
47897// The set of parameters for this mitigation action. You can specify only one
47898// type of parameter (in other words, you can apply only one action for each
47899// defined mitigation action).
47900type MitigationActionParams struct {
47901	_ struct{} `type:"structure"`
47902
47903	// Parameters to define a mitigation action that moves devices associated with
47904	// a certificate to one or more specified thing groups, typically for quarantine.
47905	AddThingsToThingGroupParams *AddThingsToThingGroupParams `locationName:"addThingsToThingGroupParams" type:"structure"`
47906
47907	// Parameters to define a mitigation action that enables AWS IoT logging at
47908	// a specified level of detail.
47909	EnableIoTLoggingParams *EnableIoTLoggingParams `locationName:"enableIoTLoggingParams" type:"structure"`
47910
47911	// Parameters to define a mitigation action that publishes findings to Amazon
47912	// Simple Notification Service (Amazon SNS. You can implement your own custom
47913	// actions in response to the Amazon SNS messages.
47914	PublishFindingToSnsParams *PublishFindingToSnsParams `locationName:"publishFindingToSnsParams" type:"structure"`
47915
47916	// Parameters to define a mitigation action that adds a blank policy to restrict
47917	// permissions.
47918	ReplaceDefaultPolicyVersionParams *ReplaceDefaultPolicyVersionParams `locationName:"replaceDefaultPolicyVersionParams" type:"structure"`
47919
47920	// Parameters to define a mitigation action that changes the state of the CA
47921	// certificate to inactive.
47922	UpdateCACertificateParams *UpdateCACertificateParams `locationName:"updateCACertificateParams" type:"structure"`
47923
47924	// Parameters to define a mitigation action that changes the state of the device
47925	// certificate to inactive.
47926	UpdateDeviceCertificateParams *UpdateDeviceCertificateParams `locationName:"updateDeviceCertificateParams" type:"structure"`
47927}
47928
47929// String returns the string representation
47930func (s MitigationActionParams) String() string {
47931	return awsutil.Prettify(s)
47932}
47933
47934// GoString returns the string representation
47935func (s MitigationActionParams) GoString() string {
47936	return s.String()
47937}
47938
47939// Validate inspects the fields of the type to determine if they are valid.
47940func (s *MitigationActionParams) Validate() error {
47941	invalidParams := request.ErrInvalidParams{Context: "MitigationActionParams"}
47942	if s.AddThingsToThingGroupParams != nil {
47943		if err := s.AddThingsToThingGroupParams.Validate(); err != nil {
47944			invalidParams.AddNested("AddThingsToThingGroupParams", err.(request.ErrInvalidParams))
47945		}
47946	}
47947	if s.EnableIoTLoggingParams != nil {
47948		if err := s.EnableIoTLoggingParams.Validate(); err != nil {
47949			invalidParams.AddNested("EnableIoTLoggingParams", err.(request.ErrInvalidParams))
47950		}
47951	}
47952	if s.PublishFindingToSnsParams != nil {
47953		if err := s.PublishFindingToSnsParams.Validate(); err != nil {
47954			invalidParams.AddNested("PublishFindingToSnsParams", err.(request.ErrInvalidParams))
47955		}
47956	}
47957	if s.ReplaceDefaultPolicyVersionParams != nil {
47958		if err := s.ReplaceDefaultPolicyVersionParams.Validate(); err != nil {
47959			invalidParams.AddNested("ReplaceDefaultPolicyVersionParams", err.(request.ErrInvalidParams))
47960		}
47961	}
47962	if s.UpdateCACertificateParams != nil {
47963		if err := s.UpdateCACertificateParams.Validate(); err != nil {
47964			invalidParams.AddNested("UpdateCACertificateParams", err.(request.ErrInvalidParams))
47965		}
47966	}
47967	if s.UpdateDeviceCertificateParams != nil {
47968		if err := s.UpdateDeviceCertificateParams.Validate(); err != nil {
47969			invalidParams.AddNested("UpdateDeviceCertificateParams", err.(request.ErrInvalidParams))
47970		}
47971	}
47972
47973	if invalidParams.Len() > 0 {
47974		return invalidParams
47975	}
47976	return nil
47977}
47978
47979// SetAddThingsToThingGroupParams sets the AddThingsToThingGroupParams field's value.
47980func (s *MitigationActionParams) SetAddThingsToThingGroupParams(v *AddThingsToThingGroupParams) *MitigationActionParams {
47981	s.AddThingsToThingGroupParams = v
47982	return s
47983}
47984
47985// SetEnableIoTLoggingParams sets the EnableIoTLoggingParams field's value.
47986func (s *MitigationActionParams) SetEnableIoTLoggingParams(v *EnableIoTLoggingParams) *MitigationActionParams {
47987	s.EnableIoTLoggingParams = v
47988	return s
47989}
47990
47991// SetPublishFindingToSnsParams sets the PublishFindingToSnsParams field's value.
47992func (s *MitigationActionParams) SetPublishFindingToSnsParams(v *PublishFindingToSnsParams) *MitigationActionParams {
47993	s.PublishFindingToSnsParams = v
47994	return s
47995}
47996
47997// SetReplaceDefaultPolicyVersionParams sets the ReplaceDefaultPolicyVersionParams field's value.
47998func (s *MitigationActionParams) SetReplaceDefaultPolicyVersionParams(v *ReplaceDefaultPolicyVersionParams) *MitigationActionParams {
47999	s.ReplaceDefaultPolicyVersionParams = v
48000	return s
48001}
48002
48003// SetUpdateCACertificateParams sets the UpdateCACertificateParams field's value.
48004func (s *MitigationActionParams) SetUpdateCACertificateParams(v *UpdateCACertificateParams) *MitigationActionParams {
48005	s.UpdateCACertificateParams = v
48006	return s
48007}
48008
48009// SetUpdateDeviceCertificateParams sets the UpdateDeviceCertificateParams field's value.
48010func (s *MitigationActionParams) SetUpdateDeviceCertificateParams(v *UpdateDeviceCertificateParams) *MitigationActionParams {
48011	s.UpdateDeviceCertificateParams = v
48012	return s
48013}
48014
48015// Specifies the MQTT context to use for the test authorizer request
48016type MqttContext struct {
48017	_ struct{} `type:"structure"`
48018
48019	// The value of the clientId key in an MQTT authorization request.
48020	ClientId *string `locationName:"clientId" min:"1" type:"string"`
48021
48022	// The value of the password key in an MQTT authorization request.
48023	//
48024	// Password is automatically base64 encoded/decoded by the SDK.
48025	Password []byte `locationName:"password" min:"1" type:"blob"`
48026
48027	// The value of the username key in an MQTT authorization request.
48028	Username *string `locationName:"username" min:"1" type:"string"`
48029}
48030
48031// String returns the string representation
48032func (s MqttContext) String() string {
48033	return awsutil.Prettify(s)
48034}
48035
48036// GoString returns the string representation
48037func (s MqttContext) GoString() string {
48038	return s.String()
48039}
48040
48041// Validate inspects the fields of the type to determine if they are valid.
48042func (s *MqttContext) Validate() error {
48043	invalidParams := request.ErrInvalidParams{Context: "MqttContext"}
48044	if s.ClientId != nil && len(*s.ClientId) < 1 {
48045		invalidParams.Add(request.NewErrParamMinLen("ClientId", 1))
48046	}
48047	if s.Password != nil && len(s.Password) < 1 {
48048		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
48049	}
48050	if s.Username != nil && len(*s.Username) < 1 {
48051		invalidParams.Add(request.NewErrParamMinLen("Username", 1))
48052	}
48053
48054	if invalidParams.Len() > 0 {
48055		return invalidParams
48056	}
48057	return nil
48058}
48059
48060// SetClientId sets the ClientId field's value.
48061func (s *MqttContext) SetClientId(v string) *MqttContext {
48062	s.ClientId = &v
48063	return s
48064}
48065
48066// SetPassword sets the Password field's value.
48067func (s *MqttContext) SetPassword(v []byte) *MqttContext {
48068	s.Password = v
48069	return s
48070}
48071
48072// SetUsername sets the Username field's value.
48073func (s *MqttContext) SetUsername(v string) *MqttContext {
48074	s.Username = &v
48075	return s
48076}
48077
48078// Information about the resource that was noncompliant with the audit check.
48079type NonCompliantResource struct {
48080	_ struct{} `type:"structure"`
48081
48082	// Other information about the noncompliant resource.
48083	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
48084
48085	// Information that identifies the noncompliant resource.
48086	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
48087
48088	// The type of the noncompliant resource.
48089	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
48090}
48091
48092// String returns the string representation
48093func (s NonCompliantResource) String() string {
48094	return awsutil.Prettify(s)
48095}
48096
48097// GoString returns the string representation
48098func (s NonCompliantResource) GoString() string {
48099	return s.String()
48100}
48101
48102// SetAdditionalInfo sets the AdditionalInfo field's value.
48103func (s *NonCompliantResource) SetAdditionalInfo(v map[string]*string) *NonCompliantResource {
48104	s.AdditionalInfo = v
48105	return s
48106}
48107
48108// SetResourceIdentifier sets the ResourceIdentifier field's value.
48109func (s *NonCompliantResource) SetResourceIdentifier(v *ResourceIdentifier) *NonCompliantResource {
48110	s.ResourceIdentifier = v
48111	return s
48112}
48113
48114// SetResourceType sets the ResourceType field's value.
48115func (s *NonCompliantResource) SetResourceType(v string) *NonCompliantResource {
48116	s.ResourceType = &v
48117	return s
48118}
48119
48120// The resource is not configured.
48121type NotConfiguredException struct {
48122	_            struct{}                  `type:"structure"`
48123	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
48124
48125	// The message for the exception.
48126	Message_ *string `locationName:"message" type:"string"`
48127}
48128
48129// String returns the string representation
48130func (s NotConfiguredException) String() string {
48131	return awsutil.Prettify(s)
48132}
48133
48134// GoString returns the string representation
48135func (s NotConfiguredException) GoString() string {
48136	return s.String()
48137}
48138
48139func newErrorNotConfiguredException(v protocol.ResponseMetadata) error {
48140	return &NotConfiguredException{
48141		RespMetadata: v,
48142	}
48143}
48144
48145// Code returns the exception type name.
48146func (s *NotConfiguredException) Code() string {
48147	return "NotConfiguredException"
48148}
48149
48150// Message returns the exception's message.
48151func (s *NotConfiguredException) Message() string {
48152	if s.Message_ != nil {
48153		return *s.Message_
48154	}
48155	return ""
48156}
48157
48158// OrigErr always returns nil, satisfies awserr.Error interface.
48159func (s *NotConfiguredException) OrigErr() error {
48160	return nil
48161}
48162
48163func (s *NotConfiguredException) Error() string {
48164	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
48165}
48166
48167// Status code returns the HTTP status code for the request's response error.
48168func (s *NotConfiguredException) StatusCode() int {
48169	return s.RespMetadata.StatusCode
48170}
48171
48172// RequestID returns the service's response RequestID for request.
48173func (s *NotConfiguredException) RequestID() string {
48174	return s.RespMetadata.RequestID
48175}
48176
48177// Describes a file to be associated with an OTA update.
48178type OTAUpdateFile struct {
48179	_ struct{} `type:"structure"`
48180
48181	// A list of name/attribute pairs.
48182	Attributes map[string]*string `locationName:"attributes" type:"map"`
48183
48184	// The code signing method of the file.
48185	CodeSigning *CodeSigning `locationName:"codeSigning" type:"structure"`
48186
48187	// The location of the updated firmware.
48188	FileLocation *FileLocation `locationName:"fileLocation" type:"structure"`
48189
48190	// The name of the file.
48191	FileName *string `locationName:"fileName" type:"string"`
48192
48193	// An integer value you can include in the job document to allow your devices
48194	// to identify the type of file received from the cloud.
48195	FileType *int64 `locationName:"fileType" type:"integer"`
48196
48197	// The file version.
48198	FileVersion *string `locationName:"fileVersion" type:"string"`
48199}
48200
48201// String returns the string representation
48202func (s OTAUpdateFile) String() string {
48203	return awsutil.Prettify(s)
48204}
48205
48206// GoString returns the string representation
48207func (s OTAUpdateFile) GoString() string {
48208	return s.String()
48209}
48210
48211// Validate inspects the fields of the type to determine if they are valid.
48212func (s *OTAUpdateFile) Validate() error {
48213	invalidParams := request.ErrInvalidParams{Context: "OTAUpdateFile"}
48214	if s.CodeSigning != nil {
48215		if err := s.CodeSigning.Validate(); err != nil {
48216			invalidParams.AddNested("CodeSigning", err.(request.ErrInvalidParams))
48217		}
48218	}
48219	if s.FileLocation != nil {
48220		if err := s.FileLocation.Validate(); err != nil {
48221			invalidParams.AddNested("FileLocation", err.(request.ErrInvalidParams))
48222		}
48223	}
48224
48225	if invalidParams.Len() > 0 {
48226		return invalidParams
48227	}
48228	return nil
48229}
48230
48231// SetAttributes sets the Attributes field's value.
48232func (s *OTAUpdateFile) SetAttributes(v map[string]*string) *OTAUpdateFile {
48233	s.Attributes = v
48234	return s
48235}
48236
48237// SetCodeSigning sets the CodeSigning field's value.
48238func (s *OTAUpdateFile) SetCodeSigning(v *CodeSigning) *OTAUpdateFile {
48239	s.CodeSigning = v
48240	return s
48241}
48242
48243// SetFileLocation sets the FileLocation field's value.
48244func (s *OTAUpdateFile) SetFileLocation(v *FileLocation) *OTAUpdateFile {
48245	s.FileLocation = v
48246	return s
48247}
48248
48249// SetFileName sets the FileName field's value.
48250func (s *OTAUpdateFile) SetFileName(v string) *OTAUpdateFile {
48251	s.FileName = &v
48252	return s
48253}
48254
48255// SetFileType sets the FileType field's value.
48256func (s *OTAUpdateFile) SetFileType(v int64) *OTAUpdateFile {
48257	s.FileType = &v
48258	return s
48259}
48260
48261// SetFileVersion sets the FileVersion field's value.
48262func (s *OTAUpdateFile) SetFileVersion(v string) *OTAUpdateFile {
48263	s.FileVersion = &v
48264	return s
48265}
48266
48267// Information about an OTA update.
48268type OTAUpdateInfo struct {
48269	_ struct{} `type:"structure"`
48270
48271	// A collection of name/value pairs
48272	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
48273
48274	// The AWS IoT job ARN associated with the OTA update.
48275	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
48276
48277	// The AWS IoT job ID associated with the OTA update.
48278	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
48279
48280	// Configuration for the rollout of OTA updates.
48281	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
48282
48283	// Configuration information for pre-signed URLs. Valid when protocols contains
48284	// HTTP.
48285	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
48286
48287	// The date when the OTA update was created.
48288	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
48289
48290	// A description of the OTA update.
48291	Description *string `locationName:"description" type:"string"`
48292
48293	// Error information associated with the OTA update.
48294	ErrorInfo *ErrorInfo `locationName:"errorInfo" type:"structure"`
48295
48296	// The date when the OTA update was last updated.
48297	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
48298
48299	// The OTA update ARN.
48300	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
48301
48302	// A list of files associated with the OTA update.
48303	OtaUpdateFiles []*OTAUpdateFile `locationName:"otaUpdateFiles" min:"1" type:"list"`
48304
48305	// The OTA update ID.
48306	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
48307
48308	// The status of the OTA update.
48309	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
48310
48311	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
48312	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
48313	// can choose the protocol.
48314	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
48315
48316	// Specifies whether the OTA update will continue to run (CONTINUOUS), or will
48317	// be complete after all those things specified as targets have completed the
48318	// OTA update (SNAPSHOT). If continuous, the OTA update may also be run on a
48319	// thing when a change is detected in a target. For example, an OTA update will
48320	// run on a thing when the thing is added to a target group, even after the
48321	// OTA update was completed by all things originally in the group.
48322	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
48323
48324	// The targets of the OTA update.
48325	Targets []*string `locationName:"targets" min:"1" type:"list"`
48326}
48327
48328// String returns the string representation
48329func (s OTAUpdateInfo) String() string {
48330	return awsutil.Prettify(s)
48331}
48332
48333// GoString returns the string representation
48334func (s OTAUpdateInfo) GoString() string {
48335	return s.String()
48336}
48337
48338// SetAdditionalParameters sets the AdditionalParameters field's value.
48339func (s *OTAUpdateInfo) SetAdditionalParameters(v map[string]*string) *OTAUpdateInfo {
48340	s.AdditionalParameters = v
48341	return s
48342}
48343
48344// SetAwsIotJobArn sets the AwsIotJobArn field's value.
48345func (s *OTAUpdateInfo) SetAwsIotJobArn(v string) *OTAUpdateInfo {
48346	s.AwsIotJobArn = &v
48347	return s
48348}
48349
48350// SetAwsIotJobId sets the AwsIotJobId field's value.
48351func (s *OTAUpdateInfo) SetAwsIotJobId(v string) *OTAUpdateInfo {
48352	s.AwsIotJobId = &v
48353	return s
48354}
48355
48356// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
48357func (s *OTAUpdateInfo) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *OTAUpdateInfo {
48358	s.AwsJobExecutionsRolloutConfig = v
48359	return s
48360}
48361
48362// SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
48363func (s *OTAUpdateInfo) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *OTAUpdateInfo {
48364	s.AwsJobPresignedUrlConfig = v
48365	return s
48366}
48367
48368// SetCreationDate sets the CreationDate field's value.
48369func (s *OTAUpdateInfo) SetCreationDate(v time.Time) *OTAUpdateInfo {
48370	s.CreationDate = &v
48371	return s
48372}
48373
48374// SetDescription sets the Description field's value.
48375func (s *OTAUpdateInfo) SetDescription(v string) *OTAUpdateInfo {
48376	s.Description = &v
48377	return s
48378}
48379
48380// SetErrorInfo sets the ErrorInfo field's value.
48381func (s *OTAUpdateInfo) SetErrorInfo(v *ErrorInfo) *OTAUpdateInfo {
48382	s.ErrorInfo = v
48383	return s
48384}
48385
48386// SetLastModifiedDate sets the LastModifiedDate field's value.
48387func (s *OTAUpdateInfo) SetLastModifiedDate(v time.Time) *OTAUpdateInfo {
48388	s.LastModifiedDate = &v
48389	return s
48390}
48391
48392// SetOtaUpdateArn sets the OtaUpdateArn field's value.
48393func (s *OTAUpdateInfo) SetOtaUpdateArn(v string) *OTAUpdateInfo {
48394	s.OtaUpdateArn = &v
48395	return s
48396}
48397
48398// SetOtaUpdateFiles sets the OtaUpdateFiles field's value.
48399func (s *OTAUpdateInfo) SetOtaUpdateFiles(v []*OTAUpdateFile) *OTAUpdateInfo {
48400	s.OtaUpdateFiles = v
48401	return s
48402}
48403
48404// SetOtaUpdateId sets the OtaUpdateId field's value.
48405func (s *OTAUpdateInfo) SetOtaUpdateId(v string) *OTAUpdateInfo {
48406	s.OtaUpdateId = &v
48407	return s
48408}
48409
48410// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
48411func (s *OTAUpdateInfo) SetOtaUpdateStatus(v string) *OTAUpdateInfo {
48412	s.OtaUpdateStatus = &v
48413	return s
48414}
48415
48416// SetProtocols sets the Protocols field's value.
48417func (s *OTAUpdateInfo) SetProtocols(v []*string) *OTAUpdateInfo {
48418	s.Protocols = v
48419	return s
48420}
48421
48422// SetTargetSelection sets the TargetSelection field's value.
48423func (s *OTAUpdateInfo) SetTargetSelection(v string) *OTAUpdateInfo {
48424	s.TargetSelection = &v
48425	return s
48426}
48427
48428// SetTargets sets the Targets field's value.
48429func (s *OTAUpdateInfo) SetTargets(v []*string) *OTAUpdateInfo {
48430	s.Targets = v
48431	return s
48432}
48433
48434// An OTA update summary.
48435type OTAUpdateSummary struct {
48436	_ struct{} `type:"structure"`
48437
48438	// The date when the OTA update was created.
48439	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
48440
48441	// The OTA update ARN.
48442	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
48443
48444	// The OTA update ID.
48445	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
48446}
48447
48448// String returns the string representation
48449func (s OTAUpdateSummary) String() string {
48450	return awsutil.Prettify(s)
48451}
48452
48453// GoString returns the string representation
48454func (s OTAUpdateSummary) GoString() string {
48455	return s.String()
48456}
48457
48458// SetCreationDate sets the CreationDate field's value.
48459func (s *OTAUpdateSummary) SetCreationDate(v time.Time) *OTAUpdateSummary {
48460	s.CreationDate = &v
48461	return s
48462}
48463
48464// SetOtaUpdateArn sets the OtaUpdateArn field's value.
48465func (s *OTAUpdateSummary) SetOtaUpdateArn(v string) *OTAUpdateSummary {
48466	s.OtaUpdateArn = &v
48467	return s
48468}
48469
48470// SetOtaUpdateId sets the OtaUpdateId field's value.
48471func (s *OTAUpdateSummary) SetOtaUpdateId(v string) *OTAUpdateSummary {
48472	s.OtaUpdateId = &v
48473	return s
48474}
48475
48476// A certificate that has been transferred but not yet accepted.
48477type OutgoingCertificate struct {
48478	_ struct{} `type:"structure"`
48479
48480	// The certificate ARN.
48481	CertificateArn *string `locationName:"certificateArn" type:"string"`
48482
48483	// The certificate ID.
48484	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
48485
48486	// The certificate creation date.
48487	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
48488
48489	// The date the transfer was initiated.
48490	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
48491
48492	// The transfer message.
48493	TransferMessage *string `locationName:"transferMessage" type:"string"`
48494
48495	// The AWS account to which the transfer was made.
48496	TransferredTo *string `locationName:"transferredTo" min:"12" type:"string"`
48497}
48498
48499// String returns the string representation
48500func (s OutgoingCertificate) String() string {
48501	return awsutil.Prettify(s)
48502}
48503
48504// GoString returns the string representation
48505func (s OutgoingCertificate) GoString() string {
48506	return s.String()
48507}
48508
48509// SetCertificateArn sets the CertificateArn field's value.
48510func (s *OutgoingCertificate) SetCertificateArn(v string) *OutgoingCertificate {
48511	s.CertificateArn = &v
48512	return s
48513}
48514
48515// SetCertificateId sets the CertificateId field's value.
48516func (s *OutgoingCertificate) SetCertificateId(v string) *OutgoingCertificate {
48517	s.CertificateId = &v
48518	return s
48519}
48520
48521// SetCreationDate sets the CreationDate field's value.
48522func (s *OutgoingCertificate) SetCreationDate(v time.Time) *OutgoingCertificate {
48523	s.CreationDate = &v
48524	return s
48525}
48526
48527// SetTransferDate sets the TransferDate field's value.
48528func (s *OutgoingCertificate) SetTransferDate(v time.Time) *OutgoingCertificate {
48529	s.TransferDate = &v
48530	return s
48531}
48532
48533// SetTransferMessage sets the TransferMessage field's value.
48534func (s *OutgoingCertificate) SetTransferMessage(v string) *OutgoingCertificate {
48535	s.TransferMessage = &v
48536	return s
48537}
48538
48539// SetTransferredTo sets the TransferredTo field's value.
48540func (s *OutgoingCertificate) SetTransferredTo(v string) *OutgoingCertificate {
48541	s.TransferredTo = &v
48542	return s
48543}
48544
48545// Describes the percentile and percentile value.
48546type PercentPair struct {
48547	_ struct{} `type:"structure"`
48548
48549	// The percentile.
48550	Percent *float64 `locationName:"percent" type:"double"`
48551
48552	// The value of the percentile.
48553	Value *float64 `locationName:"value" type:"double"`
48554}
48555
48556// String returns the string representation
48557func (s PercentPair) String() string {
48558	return awsutil.Prettify(s)
48559}
48560
48561// GoString returns the string representation
48562func (s PercentPair) GoString() string {
48563	return s.String()
48564}
48565
48566// SetPercent sets the Percent field's value.
48567func (s *PercentPair) SetPercent(v float64) *PercentPair {
48568	s.Percent = &v
48569	return s
48570}
48571
48572// SetValue sets the Value field's value.
48573func (s *PercentPair) SetValue(v float64) *PercentPair {
48574	s.Value = &v
48575	return s
48576}
48577
48578// Describes an AWS IoT policy.
48579type Policy struct {
48580	_ struct{} `type:"structure"`
48581
48582	// The policy ARN.
48583	PolicyArn *string `locationName:"policyArn" type:"string"`
48584
48585	// The policy name.
48586	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
48587}
48588
48589// String returns the string representation
48590func (s Policy) String() string {
48591	return awsutil.Prettify(s)
48592}
48593
48594// GoString returns the string representation
48595func (s Policy) GoString() string {
48596	return s.String()
48597}
48598
48599// SetPolicyArn sets the PolicyArn field's value.
48600func (s *Policy) SetPolicyArn(v string) *Policy {
48601	s.PolicyArn = &v
48602	return s
48603}
48604
48605// SetPolicyName sets the PolicyName field's value.
48606func (s *Policy) SetPolicyName(v string) *Policy {
48607	s.PolicyName = &v
48608	return s
48609}
48610
48611// Describes a policy version.
48612type PolicyVersion struct {
48613	_ struct{} `type:"structure"`
48614
48615	// The date and time the policy was created.
48616	CreateDate *time.Time `locationName:"createDate" type:"timestamp"`
48617
48618	// Specifies whether the policy version is the default.
48619	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
48620
48621	// The policy version ID.
48622	VersionId *string `locationName:"versionId" type:"string"`
48623}
48624
48625// String returns the string representation
48626func (s PolicyVersion) String() string {
48627	return awsutil.Prettify(s)
48628}
48629
48630// GoString returns the string representation
48631func (s PolicyVersion) GoString() string {
48632	return s.String()
48633}
48634
48635// SetCreateDate sets the CreateDate field's value.
48636func (s *PolicyVersion) SetCreateDate(v time.Time) *PolicyVersion {
48637	s.CreateDate = &v
48638	return s
48639}
48640
48641// SetIsDefaultVersion sets the IsDefaultVersion field's value.
48642func (s *PolicyVersion) SetIsDefaultVersion(v bool) *PolicyVersion {
48643	s.IsDefaultVersion = &v
48644	return s
48645}
48646
48647// SetVersionId sets the VersionId field's value.
48648func (s *PolicyVersion) SetVersionId(v string) *PolicyVersion {
48649	s.VersionId = &v
48650	return s
48651}
48652
48653// Information about the version of the policy associated with the resource.
48654type PolicyVersionIdentifier struct {
48655	_ struct{} `type:"structure"`
48656
48657	// The name of the policy.
48658	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
48659
48660	// The ID of the version of the policy associated with the resource.
48661	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
48662}
48663
48664// String returns the string representation
48665func (s PolicyVersionIdentifier) String() string {
48666	return awsutil.Prettify(s)
48667}
48668
48669// GoString returns the string representation
48670func (s PolicyVersionIdentifier) GoString() string {
48671	return s.String()
48672}
48673
48674// Validate inspects the fields of the type to determine if they are valid.
48675func (s *PolicyVersionIdentifier) Validate() error {
48676	invalidParams := request.ErrInvalidParams{Context: "PolicyVersionIdentifier"}
48677	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
48678		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
48679	}
48680
48681	if invalidParams.Len() > 0 {
48682		return invalidParams
48683	}
48684	return nil
48685}
48686
48687// SetPolicyName sets the PolicyName field's value.
48688func (s *PolicyVersionIdentifier) SetPolicyName(v string) *PolicyVersionIdentifier {
48689	s.PolicyName = &v
48690	return s
48691}
48692
48693// SetPolicyVersionId sets the PolicyVersionId field's value.
48694func (s *PolicyVersionIdentifier) SetPolicyVersionId(v string) *PolicyVersionIdentifier {
48695	s.PolicyVersionId = &v
48696	return s
48697}
48698
48699// Configuration for pre-signed S3 URLs.
48700type PresignedUrlConfig struct {
48701	_ struct{} `type:"structure"`
48702
48703	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
48704	// the default value is 3600 seconds. Pre-signed URLs are generated when Jobs
48705	// receives an MQTT request for the job document.
48706	ExpiresInSec *int64 `locationName:"expiresInSec" min:"60" type:"long"`
48707
48708	// The ARN of an IAM role that grants grants permission to download files from
48709	// the S3 bucket where the job data/updates are stored. The role must also grant
48710	// permission for IoT to download the files.
48711	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
48712}
48713
48714// String returns the string representation
48715func (s PresignedUrlConfig) String() string {
48716	return awsutil.Prettify(s)
48717}
48718
48719// GoString returns the string representation
48720func (s PresignedUrlConfig) GoString() string {
48721	return s.String()
48722}
48723
48724// Validate inspects the fields of the type to determine if they are valid.
48725func (s *PresignedUrlConfig) Validate() error {
48726	invalidParams := request.ErrInvalidParams{Context: "PresignedUrlConfig"}
48727	if s.ExpiresInSec != nil && *s.ExpiresInSec < 60 {
48728		invalidParams.Add(request.NewErrParamMinValue("ExpiresInSec", 60))
48729	}
48730	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
48731		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
48732	}
48733
48734	if invalidParams.Len() > 0 {
48735		return invalidParams
48736	}
48737	return nil
48738}
48739
48740// SetExpiresInSec sets the ExpiresInSec field's value.
48741func (s *PresignedUrlConfig) SetExpiresInSec(v int64) *PresignedUrlConfig {
48742	s.ExpiresInSec = &v
48743	return s
48744}
48745
48746// SetRoleArn sets the RoleArn field's value.
48747func (s *PresignedUrlConfig) SetRoleArn(v string) *PresignedUrlConfig {
48748	s.RoleArn = &v
48749	return s
48750}
48751
48752// Structure that contains payloadVersion and targetArn.
48753type ProvisioningHook struct {
48754	_ struct{} `type:"structure"`
48755
48756	// The payload that was sent to the target function.
48757	//
48758	// Note: Only Lambda functions are currently supported.
48759	PayloadVersion *string `locationName:"payloadVersion" min:"10" type:"string"`
48760
48761	// The ARN of the target function.
48762	//
48763	// Note: Only Lambda functions are currently supported.
48764	//
48765	// TargetArn is a required field
48766	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
48767}
48768
48769// String returns the string representation
48770func (s ProvisioningHook) String() string {
48771	return awsutil.Prettify(s)
48772}
48773
48774// GoString returns the string representation
48775func (s ProvisioningHook) GoString() string {
48776	return s.String()
48777}
48778
48779// Validate inspects the fields of the type to determine if they are valid.
48780func (s *ProvisioningHook) Validate() error {
48781	invalidParams := request.ErrInvalidParams{Context: "ProvisioningHook"}
48782	if s.PayloadVersion != nil && len(*s.PayloadVersion) < 10 {
48783		invalidParams.Add(request.NewErrParamMinLen("PayloadVersion", 10))
48784	}
48785	if s.TargetArn == nil {
48786		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
48787	}
48788
48789	if invalidParams.Len() > 0 {
48790		return invalidParams
48791	}
48792	return nil
48793}
48794
48795// SetPayloadVersion sets the PayloadVersion field's value.
48796func (s *ProvisioningHook) SetPayloadVersion(v string) *ProvisioningHook {
48797	s.PayloadVersion = &v
48798	return s
48799}
48800
48801// SetTargetArn sets the TargetArn field's value.
48802func (s *ProvisioningHook) SetTargetArn(v string) *ProvisioningHook {
48803	s.TargetArn = &v
48804	return s
48805}
48806
48807// A summary of information about a fleet provisioning template.
48808type ProvisioningTemplateSummary struct {
48809	_ struct{} `type:"structure"`
48810
48811	// The date when the fleet provisioning template summary was created.
48812	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
48813
48814	// The description of the fleet provisioning template.
48815	Description *string `locationName:"description" type:"string"`
48816
48817	// True if the fleet provision template is enabled, otherwise false.
48818	Enabled *bool `locationName:"enabled" type:"boolean"`
48819
48820	// The date when the fleet provisioning template summary was last modified.
48821	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
48822
48823	// The ARN of the fleet provisioning template.
48824	TemplateArn *string `locationName:"templateArn" type:"string"`
48825
48826	// The name of the fleet provisioning template.
48827	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
48828}
48829
48830// String returns the string representation
48831func (s ProvisioningTemplateSummary) String() string {
48832	return awsutil.Prettify(s)
48833}
48834
48835// GoString returns the string representation
48836func (s ProvisioningTemplateSummary) GoString() string {
48837	return s.String()
48838}
48839
48840// SetCreationDate sets the CreationDate field's value.
48841func (s *ProvisioningTemplateSummary) SetCreationDate(v time.Time) *ProvisioningTemplateSummary {
48842	s.CreationDate = &v
48843	return s
48844}
48845
48846// SetDescription sets the Description field's value.
48847func (s *ProvisioningTemplateSummary) SetDescription(v string) *ProvisioningTemplateSummary {
48848	s.Description = &v
48849	return s
48850}
48851
48852// SetEnabled sets the Enabled field's value.
48853func (s *ProvisioningTemplateSummary) SetEnabled(v bool) *ProvisioningTemplateSummary {
48854	s.Enabled = &v
48855	return s
48856}
48857
48858// SetLastModifiedDate sets the LastModifiedDate field's value.
48859func (s *ProvisioningTemplateSummary) SetLastModifiedDate(v time.Time) *ProvisioningTemplateSummary {
48860	s.LastModifiedDate = &v
48861	return s
48862}
48863
48864// SetTemplateArn sets the TemplateArn field's value.
48865func (s *ProvisioningTemplateSummary) SetTemplateArn(v string) *ProvisioningTemplateSummary {
48866	s.TemplateArn = &v
48867	return s
48868}
48869
48870// SetTemplateName sets the TemplateName field's value.
48871func (s *ProvisioningTemplateSummary) SetTemplateName(v string) *ProvisioningTemplateSummary {
48872	s.TemplateName = &v
48873	return s
48874}
48875
48876// A summary of information about a fleet provision template version.
48877type ProvisioningTemplateVersionSummary struct {
48878	_ struct{} `type:"structure"`
48879
48880	// The date when the fleet provisioning template version was created
48881	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
48882
48883	// True if the fleet provisioning template version is the default version, otherwise
48884	// false.
48885	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
48886
48887	// The ID of the fleet privisioning template version.
48888	VersionId *int64 `locationName:"versionId" type:"integer"`
48889}
48890
48891// String returns the string representation
48892func (s ProvisioningTemplateVersionSummary) String() string {
48893	return awsutil.Prettify(s)
48894}
48895
48896// GoString returns the string representation
48897func (s ProvisioningTemplateVersionSummary) GoString() string {
48898	return s.String()
48899}
48900
48901// SetCreationDate sets the CreationDate field's value.
48902func (s *ProvisioningTemplateVersionSummary) SetCreationDate(v time.Time) *ProvisioningTemplateVersionSummary {
48903	s.CreationDate = &v
48904	return s
48905}
48906
48907// SetIsDefaultVersion sets the IsDefaultVersion field's value.
48908func (s *ProvisioningTemplateVersionSummary) SetIsDefaultVersion(v bool) *ProvisioningTemplateVersionSummary {
48909	s.IsDefaultVersion = &v
48910	return s
48911}
48912
48913// SetVersionId sets the VersionId field's value.
48914func (s *ProvisioningTemplateVersionSummary) SetVersionId(v int64) *ProvisioningTemplateVersionSummary {
48915	s.VersionId = &v
48916	return s
48917}
48918
48919// Parameters to define a mitigation action that publishes findings to Amazon
48920// SNS. You can implement your own custom actions in response to the Amazon
48921// SNS messages.
48922type PublishFindingToSnsParams struct {
48923	_ struct{} `type:"structure"`
48924
48925	// The ARN of the topic to which you want to publish the findings.
48926	//
48927	// TopicArn is a required field
48928	TopicArn *string `locationName:"topicArn" type:"string" required:"true"`
48929}
48930
48931// String returns the string representation
48932func (s PublishFindingToSnsParams) String() string {
48933	return awsutil.Prettify(s)
48934}
48935
48936// GoString returns the string representation
48937func (s PublishFindingToSnsParams) GoString() string {
48938	return s.String()
48939}
48940
48941// Validate inspects the fields of the type to determine if they are valid.
48942func (s *PublishFindingToSnsParams) Validate() error {
48943	invalidParams := request.ErrInvalidParams{Context: "PublishFindingToSnsParams"}
48944	if s.TopicArn == nil {
48945		invalidParams.Add(request.NewErrParamRequired("TopicArn"))
48946	}
48947
48948	if invalidParams.Len() > 0 {
48949		return invalidParams
48950	}
48951	return nil
48952}
48953
48954// SetTopicArn sets the TopicArn field's value.
48955func (s *PublishFindingToSnsParams) SetTopicArn(v string) *PublishFindingToSnsParams {
48956	s.TopicArn = &v
48957	return s
48958}
48959
48960// An asset property value entry containing the following information.
48961type PutAssetPropertyValueEntry struct {
48962	_ struct{} `type:"structure"`
48963
48964	// The ID of the AWS IoT SiteWise asset. You must specify either a propertyAlias
48965	// or both an aliasId and a propertyId. Accepts substitution templates.
48966	AssetId *string `locationName:"assetId" type:"string"`
48967
48968	// Optional. A unique identifier for this entry that you can define to better
48969	// track which message caused an error in case of failure. Accepts substitution
48970	// templates. Defaults to a new UUID.
48971	EntryId *string `locationName:"entryId" type:"string"`
48972
48973	// The name of the property alias associated with your asset property. You must
48974	// specify either a propertyAlias or both an aliasId and a propertyId. Accepts
48975	// substitution templates.
48976	PropertyAlias *string `locationName:"propertyAlias" min:"1" type:"string"`
48977
48978	// The ID of the asset's property. You must specify either a propertyAlias or
48979	// both an aliasId and a propertyId. Accepts substitution templates.
48980	PropertyId *string `locationName:"propertyId" type:"string"`
48981
48982	// A list of property values to insert that each contain timestamp, quality,
48983	// and value (TQV) information.
48984	//
48985	// PropertyValues is a required field
48986	PropertyValues []*AssetPropertyValue `locationName:"propertyValues" min:"1" type:"list" required:"true"`
48987}
48988
48989// String returns the string representation
48990func (s PutAssetPropertyValueEntry) String() string {
48991	return awsutil.Prettify(s)
48992}
48993
48994// GoString returns the string representation
48995func (s PutAssetPropertyValueEntry) GoString() string {
48996	return s.String()
48997}
48998
48999// Validate inspects the fields of the type to determine if they are valid.
49000func (s *PutAssetPropertyValueEntry) Validate() error {
49001	invalidParams := request.ErrInvalidParams{Context: "PutAssetPropertyValueEntry"}
49002	if s.PropertyAlias != nil && len(*s.PropertyAlias) < 1 {
49003		invalidParams.Add(request.NewErrParamMinLen("PropertyAlias", 1))
49004	}
49005	if s.PropertyValues == nil {
49006		invalidParams.Add(request.NewErrParamRequired("PropertyValues"))
49007	}
49008	if s.PropertyValues != nil && len(s.PropertyValues) < 1 {
49009		invalidParams.Add(request.NewErrParamMinLen("PropertyValues", 1))
49010	}
49011	if s.PropertyValues != nil {
49012		for i, v := range s.PropertyValues {
49013			if v == nil {
49014				continue
49015			}
49016			if err := v.Validate(); err != nil {
49017				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PropertyValues", i), err.(request.ErrInvalidParams))
49018			}
49019		}
49020	}
49021
49022	if invalidParams.Len() > 0 {
49023		return invalidParams
49024	}
49025	return nil
49026}
49027
49028// SetAssetId sets the AssetId field's value.
49029func (s *PutAssetPropertyValueEntry) SetAssetId(v string) *PutAssetPropertyValueEntry {
49030	s.AssetId = &v
49031	return s
49032}
49033
49034// SetEntryId sets the EntryId field's value.
49035func (s *PutAssetPropertyValueEntry) SetEntryId(v string) *PutAssetPropertyValueEntry {
49036	s.EntryId = &v
49037	return s
49038}
49039
49040// SetPropertyAlias sets the PropertyAlias field's value.
49041func (s *PutAssetPropertyValueEntry) SetPropertyAlias(v string) *PutAssetPropertyValueEntry {
49042	s.PropertyAlias = &v
49043	return s
49044}
49045
49046// SetPropertyId sets the PropertyId field's value.
49047func (s *PutAssetPropertyValueEntry) SetPropertyId(v string) *PutAssetPropertyValueEntry {
49048	s.PropertyId = &v
49049	return s
49050}
49051
49052// SetPropertyValues sets the PropertyValues field's value.
49053func (s *PutAssetPropertyValueEntry) SetPropertyValues(v []*AssetPropertyValue) *PutAssetPropertyValueEntry {
49054	s.PropertyValues = v
49055	return s
49056}
49057
49058// The input for the DynamoActionVS action that specifies the DynamoDB table
49059// to which the message data will be written.
49060type PutItemInput struct {
49061	_ struct{} `type:"structure"`
49062
49063	// The table where the message data will be written.
49064	//
49065	// TableName is a required field
49066	TableName *string `locationName:"tableName" type:"string" required:"true"`
49067}
49068
49069// String returns the string representation
49070func (s PutItemInput) String() string {
49071	return awsutil.Prettify(s)
49072}
49073
49074// GoString returns the string representation
49075func (s PutItemInput) GoString() string {
49076	return s.String()
49077}
49078
49079// Validate inspects the fields of the type to determine if they are valid.
49080func (s *PutItemInput) Validate() error {
49081	invalidParams := request.ErrInvalidParams{Context: "PutItemInput"}
49082	if s.TableName == nil {
49083		invalidParams.Add(request.NewErrParamRequired("TableName"))
49084	}
49085
49086	if invalidParams.Len() > 0 {
49087		return invalidParams
49088	}
49089	return nil
49090}
49091
49092// SetTableName sets the TableName field's value.
49093func (s *PutItemInput) SetTableName(v string) *PutItemInput {
49094	s.TableName = &v
49095	return s
49096}
49097
49098// Allows you to define a criteria to initiate the increase in rate of rollout
49099// for a job.
49100type RateIncreaseCriteria struct {
49101	_ struct{} `type:"structure"`
49102
49103	// The threshold for number of notified things that will initiate the increase
49104	// in rate of rollout.
49105	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
49106
49107	// The threshold for number of succeeded things that will initiate the increase
49108	// in rate of rollout.
49109	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
49110}
49111
49112// String returns the string representation
49113func (s RateIncreaseCriteria) String() string {
49114	return awsutil.Prettify(s)
49115}
49116
49117// GoString returns the string representation
49118func (s RateIncreaseCriteria) GoString() string {
49119	return s.String()
49120}
49121
49122// Validate inspects the fields of the type to determine if they are valid.
49123func (s *RateIncreaseCriteria) Validate() error {
49124	invalidParams := request.ErrInvalidParams{Context: "RateIncreaseCriteria"}
49125	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
49126		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
49127	}
49128	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
49129		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
49130	}
49131
49132	if invalidParams.Len() > 0 {
49133		return invalidParams
49134	}
49135	return nil
49136}
49137
49138// SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
49139func (s *RateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *RateIncreaseCriteria {
49140	s.NumberOfNotifiedThings = &v
49141	return s
49142}
49143
49144// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
49145func (s *RateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *RateIncreaseCriteria {
49146	s.NumberOfSucceededThings = &v
49147	return s
49148}
49149
49150// The input to the RegisterCACertificate operation.
49151type RegisterCACertificateInput struct {
49152	_ struct{} `type:"structure"`
49153
49154	// Allows this CA certificate to be used for auto registration of device certificates.
49155	AllowAutoRegistration *bool `location:"querystring" locationName:"allowAutoRegistration" type:"boolean"`
49156
49157	// The CA certificate.
49158	//
49159	// CaCertificate is a required field
49160	CaCertificate *string `locationName:"caCertificate" min:"1" type:"string" required:"true"`
49161
49162	// Information about the registration configuration.
49163	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
49164
49165	// A boolean value that specifies if the CA certificate is set to active.
49166	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
49167
49168	// Metadata which can be used to manage the CA certificate.
49169	//
49170	// For URI Request parameters use format: ...key1=value1&key2=value2...
49171	//
49172	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
49173	//
49174	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
49175	Tags []*Tag `locationName:"tags" type:"list"`
49176
49177	// The private key verification certificate.
49178	//
49179	// VerificationCertificate is a required field
49180	VerificationCertificate *string `locationName:"verificationCertificate" min:"1" type:"string" required:"true"`
49181}
49182
49183// String returns the string representation
49184func (s RegisterCACertificateInput) String() string {
49185	return awsutil.Prettify(s)
49186}
49187
49188// GoString returns the string representation
49189func (s RegisterCACertificateInput) GoString() string {
49190	return s.String()
49191}
49192
49193// Validate inspects the fields of the type to determine if they are valid.
49194func (s *RegisterCACertificateInput) Validate() error {
49195	invalidParams := request.ErrInvalidParams{Context: "RegisterCACertificateInput"}
49196	if s.CaCertificate == nil {
49197		invalidParams.Add(request.NewErrParamRequired("CaCertificate"))
49198	}
49199	if s.CaCertificate != nil && len(*s.CaCertificate) < 1 {
49200		invalidParams.Add(request.NewErrParamMinLen("CaCertificate", 1))
49201	}
49202	if s.VerificationCertificate == nil {
49203		invalidParams.Add(request.NewErrParamRequired("VerificationCertificate"))
49204	}
49205	if s.VerificationCertificate != nil && len(*s.VerificationCertificate) < 1 {
49206		invalidParams.Add(request.NewErrParamMinLen("VerificationCertificate", 1))
49207	}
49208	if s.RegistrationConfig != nil {
49209		if err := s.RegistrationConfig.Validate(); err != nil {
49210			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
49211		}
49212	}
49213	if s.Tags != nil {
49214		for i, v := range s.Tags {
49215			if v == nil {
49216				continue
49217			}
49218			if err := v.Validate(); err != nil {
49219				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
49220			}
49221		}
49222	}
49223
49224	if invalidParams.Len() > 0 {
49225		return invalidParams
49226	}
49227	return nil
49228}
49229
49230// SetAllowAutoRegistration sets the AllowAutoRegistration field's value.
49231func (s *RegisterCACertificateInput) SetAllowAutoRegistration(v bool) *RegisterCACertificateInput {
49232	s.AllowAutoRegistration = &v
49233	return s
49234}
49235
49236// SetCaCertificate sets the CaCertificate field's value.
49237func (s *RegisterCACertificateInput) SetCaCertificate(v string) *RegisterCACertificateInput {
49238	s.CaCertificate = &v
49239	return s
49240}
49241
49242// SetRegistrationConfig sets the RegistrationConfig field's value.
49243func (s *RegisterCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *RegisterCACertificateInput {
49244	s.RegistrationConfig = v
49245	return s
49246}
49247
49248// SetSetAsActive sets the SetAsActive field's value.
49249func (s *RegisterCACertificateInput) SetSetAsActive(v bool) *RegisterCACertificateInput {
49250	s.SetAsActive = &v
49251	return s
49252}
49253
49254// SetTags sets the Tags field's value.
49255func (s *RegisterCACertificateInput) SetTags(v []*Tag) *RegisterCACertificateInput {
49256	s.Tags = v
49257	return s
49258}
49259
49260// SetVerificationCertificate sets the VerificationCertificate field's value.
49261func (s *RegisterCACertificateInput) SetVerificationCertificate(v string) *RegisterCACertificateInput {
49262	s.VerificationCertificate = &v
49263	return s
49264}
49265
49266// The output from the RegisterCACertificateResponse operation.
49267type RegisterCACertificateOutput struct {
49268	_ struct{} `type:"structure"`
49269
49270	// The CA certificate ARN.
49271	CertificateArn *string `locationName:"certificateArn" type:"string"`
49272
49273	// The CA certificate identifier.
49274	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
49275}
49276
49277// String returns the string representation
49278func (s RegisterCACertificateOutput) String() string {
49279	return awsutil.Prettify(s)
49280}
49281
49282// GoString returns the string representation
49283func (s RegisterCACertificateOutput) GoString() string {
49284	return s.String()
49285}
49286
49287// SetCertificateArn sets the CertificateArn field's value.
49288func (s *RegisterCACertificateOutput) SetCertificateArn(v string) *RegisterCACertificateOutput {
49289	s.CertificateArn = &v
49290	return s
49291}
49292
49293// SetCertificateId sets the CertificateId field's value.
49294func (s *RegisterCACertificateOutput) SetCertificateId(v string) *RegisterCACertificateOutput {
49295	s.CertificateId = &v
49296	return s
49297}
49298
49299// The input to the RegisterCertificate operation.
49300type RegisterCertificateInput struct {
49301	_ struct{} `type:"structure"`
49302
49303	// The CA certificate used to sign the device certificate being registered.
49304	CaCertificatePem *string `locationName:"caCertificatePem" min:"1" type:"string"`
49305
49306	// The certificate data, in PEM format.
49307	//
49308	// CertificatePem is a required field
49309	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
49310
49311	// A boolean value that specifies if the certificate is set to active.
49312	//
49313	// Deprecated: SetAsActive has been deprecated
49314	SetAsActive *bool `location:"querystring" locationName:"setAsActive" deprecated:"true" type:"boolean"`
49315
49316	// The status of the register certificate request.
49317	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
49318}
49319
49320// String returns the string representation
49321func (s RegisterCertificateInput) String() string {
49322	return awsutil.Prettify(s)
49323}
49324
49325// GoString returns the string representation
49326func (s RegisterCertificateInput) GoString() string {
49327	return s.String()
49328}
49329
49330// Validate inspects the fields of the type to determine if they are valid.
49331func (s *RegisterCertificateInput) Validate() error {
49332	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateInput"}
49333	if s.CaCertificatePem != nil && len(*s.CaCertificatePem) < 1 {
49334		invalidParams.Add(request.NewErrParamMinLen("CaCertificatePem", 1))
49335	}
49336	if s.CertificatePem == nil {
49337		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
49338	}
49339	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
49340		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
49341	}
49342
49343	if invalidParams.Len() > 0 {
49344		return invalidParams
49345	}
49346	return nil
49347}
49348
49349// SetCaCertificatePem sets the CaCertificatePem field's value.
49350func (s *RegisterCertificateInput) SetCaCertificatePem(v string) *RegisterCertificateInput {
49351	s.CaCertificatePem = &v
49352	return s
49353}
49354
49355// SetCertificatePem sets the CertificatePem field's value.
49356func (s *RegisterCertificateInput) SetCertificatePem(v string) *RegisterCertificateInput {
49357	s.CertificatePem = &v
49358	return s
49359}
49360
49361// SetSetAsActive sets the SetAsActive field's value.
49362func (s *RegisterCertificateInput) SetSetAsActive(v bool) *RegisterCertificateInput {
49363	s.SetAsActive = &v
49364	return s
49365}
49366
49367// SetStatus sets the Status field's value.
49368func (s *RegisterCertificateInput) SetStatus(v string) *RegisterCertificateInput {
49369	s.Status = &v
49370	return s
49371}
49372
49373// The output from the RegisterCertificate operation.
49374type RegisterCertificateOutput struct {
49375	_ struct{} `type:"structure"`
49376
49377	// The certificate ARN.
49378	CertificateArn *string `locationName:"certificateArn" type:"string"`
49379
49380	// The certificate identifier.
49381	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
49382}
49383
49384// String returns the string representation
49385func (s RegisterCertificateOutput) String() string {
49386	return awsutil.Prettify(s)
49387}
49388
49389// GoString returns the string representation
49390func (s RegisterCertificateOutput) GoString() string {
49391	return s.String()
49392}
49393
49394// SetCertificateArn sets the CertificateArn field's value.
49395func (s *RegisterCertificateOutput) SetCertificateArn(v string) *RegisterCertificateOutput {
49396	s.CertificateArn = &v
49397	return s
49398}
49399
49400// SetCertificateId sets the CertificateId field's value.
49401func (s *RegisterCertificateOutput) SetCertificateId(v string) *RegisterCertificateOutput {
49402	s.CertificateId = &v
49403	return s
49404}
49405
49406type RegisterCertificateWithoutCAInput struct {
49407	_ struct{} `type:"structure"`
49408
49409	// The certificate data, in PEM format.
49410	//
49411	// CertificatePem is a required field
49412	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
49413
49414	// The status of the register certificate request.
49415	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
49416}
49417
49418// String returns the string representation
49419func (s RegisterCertificateWithoutCAInput) String() string {
49420	return awsutil.Prettify(s)
49421}
49422
49423// GoString returns the string representation
49424func (s RegisterCertificateWithoutCAInput) GoString() string {
49425	return s.String()
49426}
49427
49428// Validate inspects the fields of the type to determine if they are valid.
49429func (s *RegisterCertificateWithoutCAInput) Validate() error {
49430	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateWithoutCAInput"}
49431	if s.CertificatePem == nil {
49432		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
49433	}
49434	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
49435		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
49436	}
49437
49438	if invalidParams.Len() > 0 {
49439		return invalidParams
49440	}
49441	return nil
49442}
49443
49444// SetCertificatePem sets the CertificatePem field's value.
49445func (s *RegisterCertificateWithoutCAInput) SetCertificatePem(v string) *RegisterCertificateWithoutCAInput {
49446	s.CertificatePem = &v
49447	return s
49448}
49449
49450// SetStatus sets the Status field's value.
49451func (s *RegisterCertificateWithoutCAInput) SetStatus(v string) *RegisterCertificateWithoutCAInput {
49452	s.Status = &v
49453	return s
49454}
49455
49456type RegisterCertificateWithoutCAOutput struct {
49457	_ struct{} `type:"structure"`
49458
49459	// The Amazon Resource Name (ARN) of the registered certificate.
49460	CertificateArn *string `locationName:"certificateArn" type:"string"`
49461
49462	// The ID of the registered certificate. (The last part of the certificate ARN
49463	// contains the certificate ID.
49464	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
49465}
49466
49467// String returns the string representation
49468func (s RegisterCertificateWithoutCAOutput) String() string {
49469	return awsutil.Prettify(s)
49470}
49471
49472// GoString returns the string representation
49473func (s RegisterCertificateWithoutCAOutput) GoString() string {
49474	return s.String()
49475}
49476
49477// SetCertificateArn sets the CertificateArn field's value.
49478func (s *RegisterCertificateWithoutCAOutput) SetCertificateArn(v string) *RegisterCertificateWithoutCAOutput {
49479	s.CertificateArn = &v
49480	return s
49481}
49482
49483// SetCertificateId sets the CertificateId field's value.
49484func (s *RegisterCertificateWithoutCAOutput) SetCertificateId(v string) *RegisterCertificateWithoutCAOutput {
49485	s.CertificateId = &v
49486	return s
49487}
49488
49489type RegisterThingInput struct {
49490	_ struct{} `type:"structure"`
49491
49492	// The parameters for provisioning a thing. See Provisioning Templates (https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html)
49493	// for more information.
49494	Parameters map[string]*string `locationName:"parameters" type:"map"`
49495
49496	// The provisioning template. See Provisioning Devices That Have Device Certificates
49497	// (https://docs.aws.amazon.com/iot/latest/developerguide/provision-w-cert.html)
49498	// for more information.
49499	//
49500	// TemplateBody is a required field
49501	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
49502}
49503
49504// String returns the string representation
49505func (s RegisterThingInput) String() string {
49506	return awsutil.Prettify(s)
49507}
49508
49509// GoString returns the string representation
49510func (s RegisterThingInput) GoString() string {
49511	return s.String()
49512}
49513
49514// Validate inspects the fields of the type to determine if they are valid.
49515func (s *RegisterThingInput) Validate() error {
49516	invalidParams := request.ErrInvalidParams{Context: "RegisterThingInput"}
49517	if s.TemplateBody == nil {
49518		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
49519	}
49520
49521	if invalidParams.Len() > 0 {
49522		return invalidParams
49523	}
49524	return nil
49525}
49526
49527// SetParameters sets the Parameters field's value.
49528func (s *RegisterThingInput) SetParameters(v map[string]*string) *RegisterThingInput {
49529	s.Parameters = v
49530	return s
49531}
49532
49533// SetTemplateBody sets the TemplateBody field's value.
49534func (s *RegisterThingInput) SetTemplateBody(v string) *RegisterThingInput {
49535	s.TemplateBody = &v
49536	return s
49537}
49538
49539type RegisterThingOutput struct {
49540	_ struct{} `type:"structure"`
49541
49542	// The certificate data, in PEM format.
49543	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
49544
49545	// ARNs for the generated resources.
49546	ResourceArns map[string]*string `locationName:"resourceArns" type:"map"`
49547}
49548
49549// String returns the string representation
49550func (s RegisterThingOutput) String() string {
49551	return awsutil.Prettify(s)
49552}
49553
49554// GoString returns the string representation
49555func (s RegisterThingOutput) GoString() string {
49556	return s.String()
49557}
49558
49559// SetCertificatePem sets the CertificatePem field's value.
49560func (s *RegisterThingOutput) SetCertificatePem(v string) *RegisterThingOutput {
49561	s.CertificatePem = &v
49562	return s
49563}
49564
49565// SetResourceArns sets the ResourceArns field's value.
49566func (s *RegisterThingOutput) SetResourceArns(v map[string]*string) *RegisterThingOutput {
49567	s.ResourceArns = v
49568	return s
49569}
49570
49571// The registration code is invalid.
49572type RegistrationCodeValidationException struct {
49573	_            struct{}                  `type:"structure"`
49574	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
49575
49576	// Additional information about the exception.
49577	Message_ *string `locationName:"message" type:"string"`
49578}
49579
49580// String returns the string representation
49581func (s RegistrationCodeValidationException) String() string {
49582	return awsutil.Prettify(s)
49583}
49584
49585// GoString returns the string representation
49586func (s RegistrationCodeValidationException) GoString() string {
49587	return s.String()
49588}
49589
49590func newErrorRegistrationCodeValidationException(v protocol.ResponseMetadata) error {
49591	return &RegistrationCodeValidationException{
49592		RespMetadata: v,
49593	}
49594}
49595
49596// Code returns the exception type name.
49597func (s *RegistrationCodeValidationException) Code() string {
49598	return "RegistrationCodeValidationException"
49599}
49600
49601// Message returns the exception's message.
49602func (s *RegistrationCodeValidationException) Message() string {
49603	if s.Message_ != nil {
49604		return *s.Message_
49605	}
49606	return ""
49607}
49608
49609// OrigErr always returns nil, satisfies awserr.Error interface.
49610func (s *RegistrationCodeValidationException) OrigErr() error {
49611	return nil
49612}
49613
49614func (s *RegistrationCodeValidationException) Error() string {
49615	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
49616}
49617
49618// Status code returns the HTTP status code for the request's response error.
49619func (s *RegistrationCodeValidationException) StatusCode() int {
49620	return s.RespMetadata.StatusCode
49621}
49622
49623// RequestID returns the service's response RequestID for request.
49624func (s *RegistrationCodeValidationException) RequestID() string {
49625	return s.RespMetadata.RequestID
49626}
49627
49628// The registration configuration.
49629type RegistrationConfig struct {
49630	_ struct{} `type:"structure"`
49631
49632	// The ARN of the role.
49633	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
49634
49635	// The template body.
49636	TemplateBody *string `locationName:"templateBody" type:"string"`
49637}
49638
49639// String returns the string representation
49640func (s RegistrationConfig) String() string {
49641	return awsutil.Prettify(s)
49642}
49643
49644// GoString returns the string representation
49645func (s RegistrationConfig) GoString() string {
49646	return s.String()
49647}
49648
49649// Validate inspects the fields of the type to determine if they are valid.
49650func (s *RegistrationConfig) Validate() error {
49651	invalidParams := request.ErrInvalidParams{Context: "RegistrationConfig"}
49652	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
49653		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
49654	}
49655
49656	if invalidParams.Len() > 0 {
49657		return invalidParams
49658	}
49659	return nil
49660}
49661
49662// SetRoleArn sets the RoleArn field's value.
49663func (s *RegistrationConfig) SetRoleArn(v string) *RegistrationConfig {
49664	s.RoleArn = &v
49665	return s
49666}
49667
49668// SetTemplateBody sets the TemplateBody field's value.
49669func (s *RegistrationConfig) SetTemplateBody(v string) *RegistrationConfig {
49670	s.TemplateBody = &v
49671	return s
49672}
49673
49674// The input for the RejectCertificateTransfer operation.
49675type RejectCertificateTransferInput struct {
49676	_ struct{} `type:"structure"`
49677
49678	// The ID of the certificate. (The last part of the certificate ARN contains
49679	// the certificate ID.)
49680	//
49681	// CertificateId is a required field
49682	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
49683
49684	// The reason the certificate transfer was rejected.
49685	RejectReason *string `locationName:"rejectReason" type:"string"`
49686}
49687
49688// String returns the string representation
49689func (s RejectCertificateTransferInput) String() string {
49690	return awsutil.Prettify(s)
49691}
49692
49693// GoString returns the string representation
49694func (s RejectCertificateTransferInput) GoString() string {
49695	return s.String()
49696}
49697
49698// Validate inspects the fields of the type to determine if they are valid.
49699func (s *RejectCertificateTransferInput) Validate() error {
49700	invalidParams := request.ErrInvalidParams{Context: "RejectCertificateTransferInput"}
49701	if s.CertificateId == nil {
49702		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
49703	}
49704	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
49705		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
49706	}
49707
49708	if invalidParams.Len() > 0 {
49709		return invalidParams
49710	}
49711	return nil
49712}
49713
49714// SetCertificateId sets the CertificateId field's value.
49715func (s *RejectCertificateTransferInput) SetCertificateId(v string) *RejectCertificateTransferInput {
49716	s.CertificateId = &v
49717	return s
49718}
49719
49720// SetRejectReason sets the RejectReason field's value.
49721func (s *RejectCertificateTransferInput) SetRejectReason(v string) *RejectCertificateTransferInput {
49722	s.RejectReason = &v
49723	return s
49724}
49725
49726type RejectCertificateTransferOutput struct {
49727	_ struct{} `type:"structure"`
49728}
49729
49730// String returns the string representation
49731func (s RejectCertificateTransferOutput) String() string {
49732	return awsutil.Prettify(s)
49733}
49734
49735// GoString returns the string representation
49736func (s RejectCertificateTransferOutput) GoString() string {
49737	return s.String()
49738}
49739
49740// Information about a related resource.
49741type RelatedResource struct {
49742	_ struct{} `type:"structure"`
49743
49744	// Other information about the resource.
49745	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
49746
49747	// Information that identifies the resource.
49748	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
49749
49750	// The type of resource.
49751	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
49752}
49753
49754// String returns the string representation
49755func (s RelatedResource) String() string {
49756	return awsutil.Prettify(s)
49757}
49758
49759// GoString returns the string representation
49760func (s RelatedResource) GoString() string {
49761	return s.String()
49762}
49763
49764// SetAdditionalInfo sets the AdditionalInfo field's value.
49765func (s *RelatedResource) SetAdditionalInfo(v map[string]*string) *RelatedResource {
49766	s.AdditionalInfo = v
49767	return s
49768}
49769
49770// SetResourceIdentifier sets the ResourceIdentifier field's value.
49771func (s *RelatedResource) SetResourceIdentifier(v *ResourceIdentifier) *RelatedResource {
49772	s.ResourceIdentifier = v
49773	return s
49774}
49775
49776// SetResourceType sets the ResourceType field's value.
49777func (s *RelatedResource) SetResourceType(v string) *RelatedResource {
49778	s.ResourceType = &v
49779	return s
49780}
49781
49782type RemoveThingFromBillingGroupInput struct {
49783	_ struct{} `type:"structure"`
49784
49785	// The ARN of the billing group.
49786	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
49787
49788	// The name of the billing group.
49789	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
49790
49791	// The ARN of the thing to be removed from the billing group.
49792	ThingArn *string `locationName:"thingArn" type:"string"`
49793
49794	// The name of the thing to be removed from the billing group.
49795	ThingName *string `locationName:"thingName" min:"1" type:"string"`
49796}
49797
49798// String returns the string representation
49799func (s RemoveThingFromBillingGroupInput) String() string {
49800	return awsutil.Prettify(s)
49801}
49802
49803// GoString returns the string representation
49804func (s RemoveThingFromBillingGroupInput) GoString() string {
49805	return s.String()
49806}
49807
49808// Validate inspects the fields of the type to determine if they are valid.
49809func (s *RemoveThingFromBillingGroupInput) Validate() error {
49810	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromBillingGroupInput"}
49811	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
49812		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
49813	}
49814	if s.ThingName != nil && len(*s.ThingName) < 1 {
49815		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
49816	}
49817
49818	if invalidParams.Len() > 0 {
49819		return invalidParams
49820	}
49821	return nil
49822}
49823
49824// SetBillingGroupArn sets the BillingGroupArn field's value.
49825func (s *RemoveThingFromBillingGroupInput) SetBillingGroupArn(v string) *RemoveThingFromBillingGroupInput {
49826	s.BillingGroupArn = &v
49827	return s
49828}
49829
49830// SetBillingGroupName sets the BillingGroupName field's value.
49831func (s *RemoveThingFromBillingGroupInput) SetBillingGroupName(v string) *RemoveThingFromBillingGroupInput {
49832	s.BillingGroupName = &v
49833	return s
49834}
49835
49836// SetThingArn sets the ThingArn field's value.
49837func (s *RemoveThingFromBillingGroupInput) SetThingArn(v string) *RemoveThingFromBillingGroupInput {
49838	s.ThingArn = &v
49839	return s
49840}
49841
49842// SetThingName sets the ThingName field's value.
49843func (s *RemoveThingFromBillingGroupInput) SetThingName(v string) *RemoveThingFromBillingGroupInput {
49844	s.ThingName = &v
49845	return s
49846}
49847
49848type RemoveThingFromBillingGroupOutput struct {
49849	_ struct{} `type:"structure"`
49850}
49851
49852// String returns the string representation
49853func (s RemoveThingFromBillingGroupOutput) String() string {
49854	return awsutil.Prettify(s)
49855}
49856
49857// GoString returns the string representation
49858func (s RemoveThingFromBillingGroupOutput) GoString() string {
49859	return s.String()
49860}
49861
49862type RemoveThingFromThingGroupInput struct {
49863	_ struct{} `type:"structure"`
49864
49865	// The ARN of the thing to remove from the group.
49866	ThingArn *string `locationName:"thingArn" type:"string"`
49867
49868	// The group ARN.
49869	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
49870
49871	// The group name.
49872	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
49873
49874	// The name of the thing to remove from the group.
49875	ThingName *string `locationName:"thingName" min:"1" type:"string"`
49876}
49877
49878// String returns the string representation
49879func (s RemoveThingFromThingGroupInput) String() string {
49880	return awsutil.Prettify(s)
49881}
49882
49883// GoString returns the string representation
49884func (s RemoveThingFromThingGroupInput) GoString() string {
49885	return s.String()
49886}
49887
49888// Validate inspects the fields of the type to determine if they are valid.
49889func (s *RemoveThingFromThingGroupInput) Validate() error {
49890	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromThingGroupInput"}
49891	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
49892		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
49893	}
49894	if s.ThingName != nil && len(*s.ThingName) < 1 {
49895		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
49896	}
49897
49898	if invalidParams.Len() > 0 {
49899		return invalidParams
49900	}
49901	return nil
49902}
49903
49904// SetThingArn sets the ThingArn field's value.
49905func (s *RemoveThingFromThingGroupInput) SetThingArn(v string) *RemoveThingFromThingGroupInput {
49906	s.ThingArn = &v
49907	return s
49908}
49909
49910// SetThingGroupArn sets the ThingGroupArn field's value.
49911func (s *RemoveThingFromThingGroupInput) SetThingGroupArn(v string) *RemoveThingFromThingGroupInput {
49912	s.ThingGroupArn = &v
49913	return s
49914}
49915
49916// SetThingGroupName sets the ThingGroupName field's value.
49917func (s *RemoveThingFromThingGroupInput) SetThingGroupName(v string) *RemoveThingFromThingGroupInput {
49918	s.ThingGroupName = &v
49919	return s
49920}
49921
49922// SetThingName sets the ThingName field's value.
49923func (s *RemoveThingFromThingGroupInput) SetThingName(v string) *RemoveThingFromThingGroupInput {
49924	s.ThingName = &v
49925	return s
49926}
49927
49928type RemoveThingFromThingGroupOutput struct {
49929	_ struct{} `type:"structure"`
49930}
49931
49932// String returns the string representation
49933func (s RemoveThingFromThingGroupOutput) String() string {
49934	return awsutil.Prettify(s)
49935}
49936
49937// GoString returns the string representation
49938func (s RemoveThingFromThingGroupOutput) GoString() string {
49939	return s.String()
49940}
49941
49942// Parameters to define a mitigation action that adds a blank policy to restrict
49943// permissions.
49944type ReplaceDefaultPolicyVersionParams struct {
49945	_ struct{} `type:"structure"`
49946
49947	// The name of the template to be applied. The only supported value is BLANK_POLICY.
49948	//
49949	// TemplateName is a required field
49950	TemplateName *string `locationName:"templateName" type:"string" required:"true" enum:"PolicyTemplateName"`
49951}
49952
49953// String returns the string representation
49954func (s ReplaceDefaultPolicyVersionParams) String() string {
49955	return awsutil.Prettify(s)
49956}
49957
49958// GoString returns the string representation
49959func (s ReplaceDefaultPolicyVersionParams) GoString() string {
49960	return s.String()
49961}
49962
49963// Validate inspects the fields of the type to determine if they are valid.
49964func (s *ReplaceDefaultPolicyVersionParams) Validate() error {
49965	invalidParams := request.ErrInvalidParams{Context: "ReplaceDefaultPolicyVersionParams"}
49966	if s.TemplateName == nil {
49967		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
49968	}
49969
49970	if invalidParams.Len() > 0 {
49971		return invalidParams
49972	}
49973	return nil
49974}
49975
49976// SetTemplateName sets the TemplateName field's value.
49977func (s *ReplaceDefaultPolicyVersionParams) SetTemplateName(v string) *ReplaceDefaultPolicyVersionParams {
49978	s.TemplateName = &v
49979	return s
49980}
49981
49982// The input for the ReplaceTopicRule operation.
49983type ReplaceTopicRuleInput struct {
49984	_ struct{} `type:"structure" payload:"TopicRulePayload"`
49985
49986	// The name of the rule.
49987	//
49988	// RuleName is a required field
49989	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
49990
49991	// The rule payload.
49992	//
49993	// TopicRulePayload is a required field
49994	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
49995}
49996
49997// String returns the string representation
49998func (s ReplaceTopicRuleInput) String() string {
49999	return awsutil.Prettify(s)
50000}
50001
50002// GoString returns the string representation
50003func (s ReplaceTopicRuleInput) GoString() string {
50004	return s.String()
50005}
50006
50007// Validate inspects the fields of the type to determine if they are valid.
50008func (s *ReplaceTopicRuleInput) Validate() error {
50009	invalidParams := request.ErrInvalidParams{Context: "ReplaceTopicRuleInput"}
50010	if s.RuleName == nil {
50011		invalidParams.Add(request.NewErrParamRequired("RuleName"))
50012	}
50013	if s.RuleName != nil && len(*s.RuleName) < 1 {
50014		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
50015	}
50016	if s.TopicRulePayload == nil {
50017		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
50018	}
50019	if s.TopicRulePayload != nil {
50020		if err := s.TopicRulePayload.Validate(); err != nil {
50021			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
50022		}
50023	}
50024
50025	if invalidParams.Len() > 0 {
50026		return invalidParams
50027	}
50028	return nil
50029}
50030
50031// SetRuleName sets the RuleName field's value.
50032func (s *ReplaceTopicRuleInput) SetRuleName(v string) *ReplaceTopicRuleInput {
50033	s.RuleName = &v
50034	return s
50035}
50036
50037// SetTopicRulePayload sets the TopicRulePayload field's value.
50038func (s *ReplaceTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *ReplaceTopicRuleInput {
50039	s.TopicRulePayload = v
50040	return s
50041}
50042
50043type ReplaceTopicRuleOutput struct {
50044	_ struct{} `type:"structure"`
50045}
50046
50047// String returns the string representation
50048func (s ReplaceTopicRuleOutput) String() string {
50049	return awsutil.Prettify(s)
50050}
50051
50052// GoString returns the string representation
50053func (s ReplaceTopicRuleOutput) GoString() string {
50054	return s.String()
50055}
50056
50057// Describes an action to republish to another topic.
50058type RepublishAction struct {
50059	_ struct{} `type:"structure"`
50060
50061	// The Quality of Service (QoS) level to use when republishing messages. The
50062	// default value is 0.
50063	Qos *int64 `locationName:"qos" type:"integer"`
50064
50065	// The ARN of the IAM role that grants access.
50066	//
50067	// RoleArn is a required field
50068	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
50069
50070	// The name of the MQTT topic.
50071	//
50072	// Topic is a required field
50073	Topic *string `locationName:"topic" type:"string" required:"true"`
50074}
50075
50076// String returns the string representation
50077func (s RepublishAction) String() string {
50078	return awsutil.Prettify(s)
50079}
50080
50081// GoString returns the string representation
50082func (s RepublishAction) GoString() string {
50083	return s.String()
50084}
50085
50086// Validate inspects the fields of the type to determine if they are valid.
50087func (s *RepublishAction) Validate() error {
50088	invalidParams := request.ErrInvalidParams{Context: "RepublishAction"}
50089	if s.RoleArn == nil {
50090		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
50091	}
50092	if s.Topic == nil {
50093		invalidParams.Add(request.NewErrParamRequired("Topic"))
50094	}
50095
50096	if invalidParams.Len() > 0 {
50097		return invalidParams
50098	}
50099	return nil
50100}
50101
50102// SetQos sets the Qos field's value.
50103func (s *RepublishAction) SetQos(v int64) *RepublishAction {
50104	s.Qos = &v
50105	return s
50106}
50107
50108// SetRoleArn sets the RoleArn field's value.
50109func (s *RepublishAction) SetRoleArn(v string) *RepublishAction {
50110	s.RoleArn = &v
50111	return s
50112}
50113
50114// SetTopic sets the Topic field's value.
50115func (s *RepublishAction) SetTopic(v string) *RepublishAction {
50116	s.Topic = &v
50117	return s
50118}
50119
50120// The resource already exists.
50121type ResourceAlreadyExistsException struct {
50122	_            struct{}                  `type:"structure"`
50123	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
50124
50125	// The message for the exception.
50126	Message_ *string `locationName:"message" type:"string"`
50127
50128	// The ARN of the resource that caused the exception.
50129	ResourceArn *string `locationName:"resourceArn" type:"string"`
50130
50131	// The ID of the resource that caused the exception.
50132	ResourceId *string `locationName:"resourceId" type:"string"`
50133}
50134
50135// String returns the string representation
50136func (s ResourceAlreadyExistsException) String() string {
50137	return awsutil.Prettify(s)
50138}
50139
50140// GoString returns the string representation
50141func (s ResourceAlreadyExistsException) GoString() string {
50142	return s.String()
50143}
50144
50145func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
50146	return &ResourceAlreadyExistsException{
50147		RespMetadata: v,
50148	}
50149}
50150
50151// Code returns the exception type name.
50152func (s *ResourceAlreadyExistsException) Code() string {
50153	return "ResourceAlreadyExistsException"
50154}
50155
50156// Message returns the exception's message.
50157func (s *ResourceAlreadyExistsException) Message() string {
50158	if s.Message_ != nil {
50159		return *s.Message_
50160	}
50161	return ""
50162}
50163
50164// OrigErr always returns nil, satisfies awserr.Error interface.
50165func (s *ResourceAlreadyExistsException) OrigErr() error {
50166	return nil
50167}
50168
50169func (s *ResourceAlreadyExistsException) Error() string {
50170	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
50171}
50172
50173// Status code returns the HTTP status code for the request's response error.
50174func (s *ResourceAlreadyExistsException) StatusCode() int {
50175	return s.RespMetadata.StatusCode
50176}
50177
50178// RequestID returns the service's response RequestID for request.
50179func (s *ResourceAlreadyExistsException) RequestID() string {
50180	return s.RespMetadata.RequestID
50181}
50182
50183// Information that identifies the noncompliant resource.
50184type ResourceIdentifier struct {
50185	_ struct{} `type:"structure"`
50186
50187	// The account with which the resource is associated.
50188	Account *string `locationName:"account" min:"12" type:"string"`
50189
50190	// The ID of the CA certificate used to authorize the certificate.
50191	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
50192
50193	// The client ID.
50194	ClientId *string `locationName:"clientId" type:"string"`
50195
50196	// The ID of the Amazon Cognito identity pool.
50197	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
50198
50199	// The ID of the certificate attached to the resource.
50200	DeviceCertificateId *string `locationName:"deviceCertificateId" min:"64" type:"string"`
50201
50202	// The ARN of the IAM role that has overly permissive actions.
50203	IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string"`
50204
50205	// The version of the policy associated with the resource.
50206	PolicyVersionIdentifier *PolicyVersionIdentifier `locationName:"policyVersionIdentifier" type:"structure"`
50207
50208	// The ARN of the role alias that has overly permissive actions.
50209	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
50210}
50211
50212// String returns the string representation
50213func (s ResourceIdentifier) String() string {
50214	return awsutil.Prettify(s)
50215}
50216
50217// GoString returns the string representation
50218func (s ResourceIdentifier) GoString() string {
50219	return s.String()
50220}
50221
50222// Validate inspects the fields of the type to determine if they are valid.
50223func (s *ResourceIdentifier) Validate() error {
50224	invalidParams := request.ErrInvalidParams{Context: "ResourceIdentifier"}
50225	if s.Account != nil && len(*s.Account) < 12 {
50226		invalidParams.Add(request.NewErrParamMinLen("Account", 12))
50227	}
50228	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
50229		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
50230	}
50231	if s.DeviceCertificateId != nil && len(*s.DeviceCertificateId) < 64 {
50232		invalidParams.Add(request.NewErrParamMinLen("DeviceCertificateId", 64))
50233	}
50234	if s.IamRoleArn != nil && len(*s.IamRoleArn) < 20 {
50235		invalidParams.Add(request.NewErrParamMinLen("IamRoleArn", 20))
50236	}
50237	if s.RoleAliasArn != nil && len(*s.RoleAliasArn) < 1 {
50238		invalidParams.Add(request.NewErrParamMinLen("RoleAliasArn", 1))
50239	}
50240	if s.PolicyVersionIdentifier != nil {
50241		if err := s.PolicyVersionIdentifier.Validate(); err != nil {
50242			invalidParams.AddNested("PolicyVersionIdentifier", err.(request.ErrInvalidParams))
50243		}
50244	}
50245
50246	if invalidParams.Len() > 0 {
50247		return invalidParams
50248	}
50249	return nil
50250}
50251
50252// SetAccount sets the Account field's value.
50253func (s *ResourceIdentifier) SetAccount(v string) *ResourceIdentifier {
50254	s.Account = &v
50255	return s
50256}
50257
50258// SetCaCertificateId sets the CaCertificateId field's value.
50259func (s *ResourceIdentifier) SetCaCertificateId(v string) *ResourceIdentifier {
50260	s.CaCertificateId = &v
50261	return s
50262}
50263
50264// SetClientId sets the ClientId field's value.
50265func (s *ResourceIdentifier) SetClientId(v string) *ResourceIdentifier {
50266	s.ClientId = &v
50267	return s
50268}
50269
50270// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
50271func (s *ResourceIdentifier) SetCognitoIdentityPoolId(v string) *ResourceIdentifier {
50272	s.CognitoIdentityPoolId = &v
50273	return s
50274}
50275
50276// SetDeviceCertificateId sets the DeviceCertificateId field's value.
50277func (s *ResourceIdentifier) SetDeviceCertificateId(v string) *ResourceIdentifier {
50278	s.DeviceCertificateId = &v
50279	return s
50280}
50281
50282// SetIamRoleArn sets the IamRoleArn field's value.
50283func (s *ResourceIdentifier) SetIamRoleArn(v string) *ResourceIdentifier {
50284	s.IamRoleArn = &v
50285	return s
50286}
50287
50288// SetPolicyVersionIdentifier sets the PolicyVersionIdentifier field's value.
50289func (s *ResourceIdentifier) SetPolicyVersionIdentifier(v *PolicyVersionIdentifier) *ResourceIdentifier {
50290	s.PolicyVersionIdentifier = v
50291	return s
50292}
50293
50294// SetRoleAliasArn sets the RoleAliasArn field's value.
50295func (s *ResourceIdentifier) SetRoleAliasArn(v string) *ResourceIdentifier {
50296	s.RoleAliasArn = &v
50297	return s
50298}
50299
50300// The specified resource does not exist.
50301type ResourceNotFoundException struct {
50302	_            struct{}                  `type:"structure"`
50303	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
50304
50305	// The message for the exception.
50306	Message_ *string `locationName:"message" type:"string"`
50307}
50308
50309// String returns the string representation
50310func (s ResourceNotFoundException) String() string {
50311	return awsutil.Prettify(s)
50312}
50313
50314// GoString returns the string representation
50315func (s ResourceNotFoundException) GoString() string {
50316	return s.String()
50317}
50318
50319func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
50320	return &ResourceNotFoundException{
50321		RespMetadata: v,
50322	}
50323}
50324
50325// Code returns the exception type name.
50326func (s *ResourceNotFoundException) Code() string {
50327	return "ResourceNotFoundException"
50328}
50329
50330// Message returns the exception's message.
50331func (s *ResourceNotFoundException) Message() string {
50332	if s.Message_ != nil {
50333		return *s.Message_
50334	}
50335	return ""
50336}
50337
50338// OrigErr always returns nil, satisfies awserr.Error interface.
50339func (s *ResourceNotFoundException) OrigErr() error {
50340	return nil
50341}
50342
50343func (s *ResourceNotFoundException) Error() string {
50344	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
50345}
50346
50347// Status code returns the HTTP status code for the request's response error.
50348func (s *ResourceNotFoundException) StatusCode() int {
50349	return s.RespMetadata.StatusCode
50350}
50351
50352// RequestID returns the service's response RequestID for request.
50353func (s *ResourceNotFoundException) RequestID() string {
50354	return s.RespMetadata.RequestID
50355}
50356
50357// The resource registration failed.
50358type ResourceRegistrationFailureException struct {
50359	_            struct{}                  `type:"structure"`
50360	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
50361
50362	// The message for the exception.
50363	Message_ *string `locationName:"message" type:"string"`
50364}
50365
50366// String returns the string representation
50367func (s ResourceRegistrationFailureException) String() string {
50368	return awsutil.Prettify(s)
50369}
50370
50371// GoString returns the string representation
50372func (s ResourceRegistrationFailureException) GoString() string {
50373	return s.String()
50374}
50375
50376func newErrorResourceRegistrationFailureException(v protocol.ResponseMetadata) error {
50377	return &ResourceRegistrationFailureException{
50378		RespMetadata: v,
50379	}
50380}
50381
50382// Code returns the exception type name.
50383func (s *ResourceRegistrationFailureException) Code() string {
50384	return "ResourceRegistrationFailureException"
50385}
50386
50387// Message returns the exception's message.
50388func (s *ResourceRegistrationFailureException) Message() string {
50389	if s.Message_ != nil {
50390		return *s.Message_
50391	}
50392	return ""
50393}
50394
50395// OrigErr always returns nil, satisfies awserr.Error interface.
50396func (s *ResourceRegistrationFailureException) OrigErr() error {
50397	return nil
50398}
50399
50400func (s *ResourceRegistrationFailureException) Error() string {
50401	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
50402}
50403
50404// Status code returns the HTTP status code for the request's response error.
50405func (s *ResourceRegistrationFailureException) StatusCode() int {
50406	return s.RespMetadata.StatusCode
50407}
50408
50409// RequestID returns the service's response RequestID for request.
50410func (s *ResourceRegistrationFailureException) RequestID() string {
50411	return s.RespMetadata.RequestID
50412}
50413
50414// Role alias description.
50415type RoleAliasDescription struct {
50416	_ struct{} `type:"structure"`
50417
50418	// The UNIX timestamp of when the role alias was created.
50419	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
50420
50421	// The number of seconds for which the credential is valid.
50422	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
50423
50424	// The UNIX timestamp of when the role alias was last modified.
50425	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
50426
50427	// The role alias owner.
50428	Owner *string `locationName:"owner" min:"12" type:"string"`
50429
50430	// The role alias.
50431	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
50432
50433	// The ARN of the role alias.
50434	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
50435
50436	// The role ARN.
50437	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
50438}
50439
50440// String returns the string representation
50441func (s RoleAliasDescription) String() string {
50442	return awsutil.Prettify(s)
50443}
50444
50445// GoString returns the string representation
50446func (s RoleAliasDescription) GoString() string {
50447	return s.String()
50448}
50449
50450// SetCreationDate sets the CreationDate field's value.
50451func (s *RoleAliasDescription) SetCreationDate(v time.Time) *RoleAliasDescription {
50452	s.CreationDate = &v
50453	return s
50454}
50455
50456// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
50457func (s *RoleAliasDescription) SetCredentialDurationSeconds(v int64) *RoleAliasDescription {
50458	s.CredentialDurationSeconds = &v
50459	return s
50460}
50461
50462// SetLastModifiedDate sets the LastModifiedDate field's value.
50463func (s *RoleAliasDescription) SetLastModifiedDate(v time.Time) *RoleAliasDescription {
50464	s.LastModifiedDate = &v
50465	return s
50466}
50467
50468// SetOwner sets the Owner field's value.
50469func (s *RoleAliasDescription) SetOwner(v string) *RoleAliasDescription {
50470	s.Owner = &v
50471	return s
50472}
50473
50474// SetRoleAlias sets the RoleAlias field's value.
50475func (s *RoleAliasDescription) SetRoleAlias(v string) *RoleAliasDescription {
50476	s.RoleAlias = &v
50477	return s
50478}
50479
50480// SetRoleAliasArn sets the RoleAliasArn field's value.
50481func (s *RoleAliasDescription) SetRoleAliasArn(v string) *RoleAliasDescription {
50482	s.RoleAliasArn = &v
50483	return s
50484}
50485
50486// SetRoleArn sets the RoleArn field's value.
50487func (s *RoleAliasDescription) SetRoleArn(v string) *RoleAliasDescription {
50488	s.RoleArn = &v
50489	return s
50490}
50491
50492// Describes an action to write data to an Amazon S3 bucket.
50493type S3Action struct {
50494	_ struct{} `type:"structure"`
50495
50496	// The Amazon S3 bucket.
50497	//
50498	// BucketName is a required field
50499	BucketName *string `locationName:"bucketName" type:"string" required:"true"`
50500
50501	// The Amazon S3 canned ACL that controls access to the object identified by
50502	// the object key. For more information, see S3 canned ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl).
50503	CannedAcl *string `locationName:"cannedAcl" type:"string" enum:"CannedAccessControlList"`
50504
50505	// The object key. For more information, see Actions, resources, and condition
50506	// keys for Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html).
50507	//
50508	// Key is a required field
50509	Key *string `locationName:"key" type:"string" required:"true"`
50510
50511	// The ARN of the IAM role that grants access.
50512	//
50513	// RoleArn is a required field
50514	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
50515}
50516
50517// String returns the string representation
50518func (s S3Action) String() string {
50519	return awsutil.Prettify(s)
50520}
50521
50522// GoString returns the string representation
50523func (s S3Action) GoString() string {
50524	return s.String()
50525}
50526
50527// Validate inspects the fields of the type to determine if they are valid.
50528func (s *S3Action) Validate() error {
50529	invalidParams := request.ErrInvalidParams{Context: "S3Action"}
50530	if s.BucketName == nil {
50531		invalidParams.Add(request.NewErrParamRequired("BucketName"))
50532	}
50533	if s.Key == nil {
50534		invalidParams.Add(request.NewErrParamRequired("Key"))
50535	}
50536	if s.RoleArn == nil {
50537		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
50538	}
50539
50540	if invalidParams.Len() > 0 {
50541		return invalidParams
50542	}
50543	return nil
50544}
50545
50546// SetBucketName sets the BucketName field's value.
50547func (s *S3Action) SetBucketName(v string) *S3Action {
50548	s.BucketName = &v
50549	return s
50550}
50551
50552// SetCannedAcl sets the CannedAcl field's value.
50553func (s *S3Action) SetCannedAcl(v string) *S3Action {
50554	s.CannedAcl = &v
50555	return s
50556}
50557
50558// SetKey sets the Key field's value.
50559func (s *S3Action) SetKey(v string) *S3Action {
50560	s.Key = &v
50561	return s
50562}
50563
50564// SetRoleArn sets the RoleArn field's value.
50565func (s *S3Action) SetRoleArn(v string) *S3Action {
50566	s.RoleArn = &v
50567	return s
50568}
50569
50570// Describes the location of updated firmware in S3.
50571type S3Destination struct {
50572	_ struct{} `type:"structure"`
50573
50574	// The S3 bucket that contains the updated firmware.
50575	Bucket *string `locationName:"bucket" min:"1" type:"string"`
50576
50577	// The S3 prefix.
50578	Prefix *string `locationName:"prefix" type:"string"`
50579}
50580
50581// String returns the string representation
50582func (s S3Destination) String() string {
50583	return awsutil.Prettify(s)
50584}
50585
50586// GoString returns the string representation
50587func (s S3Destination) GoString() string {
50588	return s.String()
50589}
50590
50591// Validate inspects the fields of the type to determine if they are valid.
50592func (s *S3Destination) Validate() error {
50593	invalidParams := request.ErrInvalidParams{Context: "S3Destination"}
50594	if s.Bucket != nil && len(*s.Bucket) < 1 {
50595		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
50596	}
50597
50598	if invalidParams.Len() > 0 {
50599		return invalidParams
50600	}
50601	return nil
50602}
50603
50604// SetBucket sets the Bucket field's value.
50605func (s *S3Destination) SetBucket(v string) *S3Destination {
50606	s.Bucket = &v
50607	return s
50608}
50609
50610// SetPrefix sets the Prefix field's value.
50611func (s *S3Destination) SetPrefix(v string) *S3Destination {
50612	s.Prefix = &v
50613	return s
50614}
50615
50616// The S3 location.
50617type S3Location struct {
50618	_ struct{} `type:"structure"`
50619
50620	// The S3 bucket.
50621	Bucket *string `locationName:"bucket" min:"1" type:"string"`
50622
50623	// The S3 key.
50624	Key *string `locationName:"key" min:"1" type:"string"`
50625
50626	// The S3 bucket version.
50627	Version *string `locationName:"version" type:"string"`
50628}
50629
50630// String returns the string representation
50631func (s S3Location) String() string {
50632	return awsutil.Prettify(s)
50633}
50634
50635// GoString returns the string representation
50636func (s S3Location) GoString() string {
50637	return s.String()
50638}
50639
50640// Validate inspects the fields of the type to determine if they are valid.
50641func (s *S3Location) Validate() error {
50642	invalidParams := request.ErrInvalidParams{Context: "S3Location"}
50643	if s.Bucket != nil && len(*s.Bucket) < 1 {
50644		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
50645	}
50646	if s.Key != nil && len(*s.Key) < 1 {
50647		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
50648	}
50649
50650	if invalidParams.Len() > 0 {
50651		return invalidParams
50652	}
50653	return nil
50654}
50655
50656// SetBucket sets the Bucket field's value.
50657func (s *S3Location) SetBucket(v string) *S3Location {
50658	s.Bucket = &v
50659	return s
50660}
50661
50662// SetKey sets the Key field's value.
50663func (s *S3Location) SetKey(v string) *S3Location {
50664	s.Key = &v
50665	return s
50666}
50667
50668// SetVersion sets the Version field's value.
50669func (s *S3Location) SetVersion(v string) *S3Location {
50670	s.Version = &v
50671	return s
50672}
50673
50674// Describes an action to write a message to a Salesforce IoT Cloud Input Stream.
50675type SalesforceAction struct {
50676	_ struct{} `type:"structure"`
50677
50678	// The token used to authenticate access to the Salesforce IoT Cloud Input Stream.
50679	// The token is available from the Salesforce IoT Cloud platform after creation
50680	// of the Input Stream.
50681	//
50682	// Token is a required field
50683	Token *string `locationName:"token" min:"40" type:"string" required:"true"`
50684
50685	// The URL exposed by the Salesforce IoT Cloud Input Stream. The URL is available
50686	// from the Salesforce IoT Cloud platform after creation of the Input Stream.
50687	//
50688	// Url is a required field
50689	Url *string `locationName:"url" type:"string" required:"true"`
50690}
50691
50692// String returns the string representation
50693func (s SalesforceAction) String() string {
50694	return awsutil.Prettify(s)
50695}
50696
50697// GoString returns the string representation
50698func (s SalesforceAction) GoString() string {
50699	return s.String()
50700}
50701
50702// Validate inspects the fields of the type to determine if they are valid.
50703func (s *SalesforceAction) Validate() error {
50704	invalidParams := request.ErrInvalidParams{Context: "SalesforceAction"}
50705	if s.Token == nil {
50706		invalidParams.Add(request.NewErrParamRequired("Token"))
50707	}
50708	if s.Token != nil && len(*s.Token) < 40 {
50709		invalidParams.Add(request.NewErrParamMinLen("Token", 40))
50710	}
50711	if s.Url == nil {
50712		invalidParams.Add(request.NewErrParamRequired("Url"))
50713	}
50714
50715	if invalidParams.Len() > 0 {
50716		return invalidParams
50717	}
50718	return nil
50719}
50720
50721// SetToken sets the Token field's value.
50722func (s *SalesforceAction) SetToken(v string) *SalesforceAction {
50723	s.Token = &v
50724	return s
50725}
50726
50727// SetUrl sets the Url field's value.
50728func (s *SalesforceAction) SetUrl(v string) *SalesforceAction {
50729	s.Url = &v
50730	return s
50731}
50732
50733// Information about the scheduled audit.
50734type ScheduledAuditMetadata struct {
50735	_ struct{} `type:"structure"`
50736
50737	// The day of the month on which the scheduled audit is run (if the frequency
50738	// is "MONTHLY"). If days 29-31 are specified, and the month does not have that
50739	// many days, the audit takes place on the "LAST" day of the month.
50740	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
50741
50742	// The day of the week on which the scheduled audit is run (if the frequency
50743	// is "WEEKLY" or "BIWEEKLY").
50744	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
50745
50746	// How often the scheduled audit occurs.
50747	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
50748
50749	// The ARN of the scheduled audit.
50750	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
50751
50752	// The name of the scheduled audit.
50753	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
50754}
50755
50756// String returns the string representation
50757func (s ScheduledAuditMetadata) String() string {
50758	return awsutil.Prettify(s)
50759}
50760
50761// GoString returns the string representation
50762func (s ScheduledAuditMetadata) GoString() string {
50763	return s.String()
50764}
50765
50766// SetDayOfMonth sets the DayOfMonth field's value.
50767func (s *ScheduledAuditMetadata) SetDayOfMonth(v string) *ScheduledAuditMetadata {
50768	s.DayOfMonth = &v
50769	return s
50770}
50771
50772// SetDayOfWeek sets the DayOfWeek field's value.
50773func (s *ScheduledAuditMetadata) SetDayOfWeek(v string) *ScheduledAuditMetadata {
50774	s.DayOfWeek = &v
50775	return s
50776}
50777
50778// SetFrequency sets the Frequency field's value.
50779func (s *ScheduledAuditMetadata) SetFrequency(v string) *ScheduledAuditMetadata {
50780	s.Frequency = &v
50781	return s
50782}
50783
50784// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
50785func (s *ScheduledAuditMetadata) SetScheduledAuditArn(v string) *ScheduledAuditMetadata {
50786	s.ScheduledAuditArn = &v
50787	return s
50788}
50789
50790// SetScheduledAuditName sets the ScheduledAuditName field's value.
50791func (s *ScheduledAuditMetadata) SetScheduledAuditName(v string) *ScheduledAuditMetadata {
50792	s.ScheduledAuditName = &v
50793	return s
50794}
50795
50796type SearchIndexInput struct {
50797	_ struct{} `type:"structure"`
50798
50799	// The search index name.
50800	IndexName *string `locationName:"indexName" min:"1" type:"string"`
50801
50802	// The maximum number of results to return at one time.
50803	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
50804
50805	// The token used to get the next set of results, or null if there are no additional
50806	// results.
50807	NextToken *string `locationName:"nextToken" type:"string"`
50808
50809	// The search query string.
50810	//
50811	// QueryString is a required field
50812	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
50813
50814	// The query version.
50815	QueryVersion *string `locationName:"queryVersion" type:"string"`
50816}
50817
50818// String returns the string representation
50819func (s SearchIndexInput) String() string {
50820	return awsutil.Prettify(s)
50821}
50822
50823// GoString returns the string representation
50824func (s SearchIndexInput) GoString() string {
50825	return s.String()
50826}
50827
50828// Validate inspects the fields of the type to determine if they are valid.
50829func (s *SearchIndexInput) Validate() error {
50830	invalidParams := request.ErrInvalidParams{Context: "SearchIndexInput"}
50831	if s.IndexName != nil && len(*s.IndexName) < 1 {
50832		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
50833	}
50834	if s.MaxResults != nil && *s.MaxResults < 1 {
50835		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
50836	}
50837	if s.QueryString == nil {
50838		invalidParams.Add(request.NewErrParamRequired("QueryString"))
50839	}
50840	if s.QueryString != nil && len(*s.QueryString) < 1 {
50841		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
50842	}
50843
50844	if invalidParams.Len() > 0 {
50845		return invalidParams
50846	}
50847	return nil
50848}
50849
50850// SetIndexName sets the IndexName field's value.
50851func (s *SearchIndexInput) SetIndexName(v string) *SearchIndexInput {
50852	s.IndexName = &v
50853	return s
50854}
50855
50856// SetMaxResults sets the MaxResults field's value.
50857func (s *SearchIndexInput) SetMaxResults(v int64) *SearchIndexInput {
50858	s.MaxResults = &v
50859	return s
50860}
50861
50862// SetNextToken sets the NextToken field's value.
50863func (s *SearchIndexInput) SetNextToken(v string) *SearchIndexInput {
50864	s.NextToken = &v
50865	return s
50866}
50867
50868// SetQueryString sets the QueryString field's value.
50869func (s *SearchIndexInput) SetQueryString(v string) *SearchIndexInput {
50870	s.QueryString = &v
50871	return s
50872}
50873
50874// SetQueryVersion sets the QueryVersion field's value.
50875func (s *SearchIndexInput) SetQueryVersion(v string) *SearchIndexInput {
50876	s.QueryVersion = &v
50877	return s
50878}
50879
50880type SearchIndexOutput struct {
50881	_ struct{} `type:"structure"`
50882
50883	// The token used to get the next set of results, or null if there are no additional
50884	// results.
50885	NextToken *string `locationName:"nextToken" type:"string"`
50886
50887	// The thing groups that match the search query.
50888	ThingGroups []*ThingGroupDocument `locationName:"thingGroups" type:"list"`
50889
50890	// The things that match the search query.
50891	Things []*ThingDocument `locationName:"things" type:"list"`
50892}
50893
50894// String returns the string representation
50895func (s SearchIndexOutput) String() string {
50896	return awsutil.Prettify(s)
50897}
50898
50899// GoString returns the string representation
50900func (s SearchIndexOutput) GoString() string {
50901	return s.String()
50902}
50903
50904// SetNextToken sets the NextToken field's value.
50905func (s *SearchIndexOutput) SetNextToken(v string) *SearchIndexOutput {
50906	s.NextToken = &v
50907	return s
50908}
50909
50910// SetThingGroups sets the ThingGroups field's value.
50911func (s *SearchIndexOutput) SetThingGroups(v []*ThingGroupDocument) *SearchIndexOutput {
50912	s.ThingGroups = v
50913	return s
50914}
50915
50916// SetThings sets the Things field's value.
50917func (s *SearchIndexOutput) SetThings(v []*ThingDocument) *SearchIndexOutput {
50918	s.Things = v
50919	return s
50920}
50921
50922// Identifying information for a Device Defender security profile.
50923type SecurityProfileIdentifier struct {
50924	_ struct{} `type:"structure"`
50925
50926	// The ARN of the security profile.
50927	//
50928	// Arn is a required field
50929	Arn *string `locationName:"arn" type:"string" required:"true"`
50930
50931	// The name you've given to the security profile.
50932	//
50933	// Name is a required field
50934	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
50935}
50936
50937// String returns the string representation
50938func (s SecurityProfileIdentifier) String() string {
50939	return awsutil.Prettify(s)
50940}
50941
50942// GoString returns the string representation
50943func (s SecurityProfileIdentifier) GoString() string {
50944	return s.String()
50945}
50946
50947// SetArn sets the Arn field's value.
50948func (s *SecurityProfileIdentifier) SetArn(v string) *SecurityProfileIdentifier {
50949	s.Arn = &v
50950	return s
50951}
50952
50953// SetName sets the Name field's value.
50954func (s *SecurityProfileIdentifier) SetName(v string) *SecurityProfileIdentifier {
50955	s.Name = &v
50956	return s
50957}
50958
50959// A target to which an alert is sent when a security profile behavior is violated.
50960type SecurityProfileTarget struct {
50961	_ struct{} `type:"structure"`
50962
50963	// The ARN of the security profile.
50964	//
50965	// Arn is a required field
50966	Arn *string `locationName:"arn" type:"string" required:"true"`
50967}
50968
50969// String returns the string representation
50970func (s SecurityProfileTarget) String() string {
50971	return awsutil.Prettify(s)
50972}
50973
50974// GoString returns the string representation
50975func (s SecurityProfileTarget) GoString() string {
50976	return s.String()
50977}
50978
50979// SetArn sets the Arn field's value.
50980func (s *SecurityProfileTarget) SetArn(v string) *SecurityProfileTarget {
50981	s.Arn = &v
50982	return s
50983}
50984
50985// Information about a security profile and the target associated with it.
50986type SecurityProfileTargetMapping struct {
50987	_ struct{} `type:"structure"`
50988
50989	// Information that identifies the security profile.
50990	SecurityProfileIdentifier *SecurityProfileIdentifier `locationName:"securityProfileIdentifier" type:"structure"`
50991
50992	// Information about the target (thing group) associated with the security profile.
50993	Target *SecurityProfileTarget `locationName:"target" type:"structure"`
50994}
50995
50996// String returns the string representation
50997func (s SecurityProfileTargetMapping) String() string {
50998	return awsutil.Prettify(s)
50999}
51000
51001// GoString returns the string representation
51002func (s SecurityProfileTargetMapping) GoString() string {
51003	return s.String()
51004}
51005
51006// SetSecurityProfileIdentifier sets the SecurityProfileIdentifier field's value.
51007func (s *SecurityProfileTargetMapping) SetSecurityProfileIdentifier(v *SecurityProfileIdentifier) *SecurityProfileTargetMapping {
51008	s.SecurityProfileIdentifier = v
51009	return s
51010}
51011
51012// SetTarget sets the Target field's value.
51013func (s *SecurityProfileTargetMapping) SetTarget(v *SecurityProfileTarget) *SecurityProfileTargetMapping {
51014	s.Target = v
51015	return s
51016}
51017
51018// An object that contains information about a server certificate.
51019type ServerCertificateSummary struct {
51020	_ struct{} `type:"structure"`
51021
51022	// The ARN of the server certificate.
51023	ServerCertificateArn *string `locationName:"serverCertificateArn" min:"1" type:"string"`
51024
51025	// The status of the server certificate.
51026	ServerCertificateStatus *string `locationName:"serverCertificateStatus" type:"string" enum:"ServerCertificateStatus"`
51027
51028	// Details that explain the status of the server certificate.
51029	ServerCertificateStatusDetail *string `locationName:"serverCertificateStatusDetail" type:"string"`
51030}
51031
51032// String returns the string representation
51033func (s ServerCertificateSummary) String() string {
51034	return awsutil.Prettify(s)
51035}
51036
51037// GoString returns the string representation
51038func (s ServerCertificateSummary) GoString() string {
51039	return s.String()
51040}
51041
51042// SetServerCertificateArn sets the ServerCertificateArn field's value.
51043func (s *ServerCertificateSummary) SetServerCertificateArn(v string) *ServerCertificateSummary {
51044	s.ServerCertificateArn = &v
51045	return s
51046}
51047
51048// SetServerCertificateStatus sets the ServerCertificateStatus field's value.
51049func (s *ServerCertificateSummary) SetServerCertificateStatus(v string) *ServerCertificateSummary {
51050	s.ServerCertificateStatus = &v
51051	return s
51052}
51053
51054// SetServerCertificateStatusDetail sets the ServerCertificateStatusDetail field's value.
51055func (s *ServerCertificateSummary) SetServerCertificateStatusDetail(v string) *ServerCertificateSummary {
51056	s.ServerCertificateStatusDetail = &v
51057	return s
51058}
51059
51060// The service is temporarily unavailable.
51061type ServiceUnavailableException struct {
51062	_            struct{}                  `type:"structure"`
51063	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
51064
51065	// The message for the exception.
51066	Message_ *string `locationName:"message" type:"string"`
51067}
51068
51069// String returns the string representation
51070func (s ServiceUnavailableException) String() string {
51071	return awsutil.Prettify(s)
51072}
51073
51074// GoString returns the string representation
51075func (s ServiceUnavailableException) GoString() string {
51076	return s.String()
51077}
51078
51079func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
51080	return &ServiceUnavailableException{
51081		RespMetadata: v,
51082	}
51083}
51084
51085// Code returns the exception type name.
51086func (s *ServiceUnavailableException) Code() string {
51087	return "ServiceUnavailableException"
51088}
51089
51090// Message returns the exception's message.
51091func (s *ServiceUnavailableException) Message() string {
51092	if s.Message_ != nil {
51093		return *s.Message_
51094	}
51095	return ""
51096}
51097
51098// OrigErr always returns nil, satisfies awserr.Error interface.
51099func (s *ServiceUnavailableException) OrigErr() error {
51100	return nil
51101}
51102
51103func (s *ServiceUnavailableException) Error() string {
51104	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
51105}
51106
51107// Status code returns the HTTP status code for the request's response error.
51108func (s *ServiceUnavailableException) StatusCode() int {
51109	return s.RespMetadata.StatusCode
51110}
51111
51112// RequestID returns the service's response RequestID for request.
51113func (s *ServiceUnavailableException) RequestID() string {
51114	return s.RespMetadata.RequestID
51115}
51116
51117type SetDefaultAuthorizerInput struct {
51118	_ struct{} `type:"structure"`
51119
51120	// The authorizer name.
51121	//
51122	// AuthorizerName is a required field
51123	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string" required:"true"`
51124}
51125
51126// String returns the string representation
51127func (s SetDefaultAuthorizerInput) String() string {
51128	return awsutil.Prettify(s)
51129}
51130
51131// GoString returns the string representation
51132func (s SetDefaultAuthorizerInput) GoString() string {
51133	return s.String()
51134}
51135
51136// Validate inspects the fields of the type to determine if they are valid.
51137func (s *SetDefaultAuthorizerInput) Validate() error {
51138	invalidParams := request.ErrInvalidParams{Context: "SetDefaultAuthorizerInput"}
51139	if s.AuthorizerName == nil {
51140		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
51141	}
51142	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
51143		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
51144	}
51145
51146	if invalidParams.Len() > 0 {
51147		return invalidParams
51148	}
51149	return nil
51150}
51151
51152// SetAuthorizerName sets the AuthorizerName field's value.
51153func (s *SetDefaultAuthorizerInput) SetAuthorizerName(v string) *SetDefaultAuthorizerInput {
51154	s.AuthorizerName = &v
51155	return s
51156}
51157
51158type SetDefaultAuthorizerOutput struct {
51159	_ struct{} `type:"structure"`
51160
51161	// The authorizer ARN.
51162	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
51163
51164	// The authorizer name.
51165	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
51166}
51167
51168// String returns the string representation
51169func (s SetDefaultAuthorizerOutput) String() string {
51170	return awsutil.Prettify(s)
51171}
51172
51173// GoString returns the string representation
51174func (s SetDefaultAuthorizerOutput) GoString() string {
51175	return s.String()
51176}
51177
51178// SetAuthorizerArn sets the AuthorizerArn field's value.
51179func (s *SetDefaultAuthorizerOutput) SetAuthorizerArn(v string) *SetDefaultAuthorizerOutput {
51180	s.AuthorizerArn = &v
51181	return s
51182}
51183
51184// SetAuthorizerName sets the AuthorizerName field's value.
51185func (s *SetDefaultAuthorizerOutput) SetAuthorizerName(v string) *SetDefaultAuthorizerOutput {
51186	s.AuthorizerName = &v
51187	return s
51188}
51189
51190// The input for the SetDefaultPolicyVersion operation.
51191type SetDefaultPolicyVersionInput struct {
51192	_ struct{} `type:"structure"`
51193
51194	// The policy name.
51195	//
51196	// PolicyName is a required field
51197	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
51198
51199	// The policy version ID.
51200	//
51201	// PolicyVersionId is a required field
51202	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
51203}
51204
51205// String returns the string representation
51206func (s SetDefaultPolicyVersionInput) String() string {
51207	return awsutil.Prettify(s)
51208}
51209
51210// GoString returns the string representation
51211func (s SetDefaultPolicyVersionInput) GoString() string {
51212	return s.String()
51213}
51214
51215// Validate inspects the fields of the type to determine if they are valid.
51216func (s *SetDefaultPolicyVersionInput) Validate() error {
51217	invalidParams := request.ErrInvalidParams{Context: "SetDefaultPolicyVersionInput"}
51218	if s.PolicyName == nil {
51219		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
51220	}
51221	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
51222		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
51223	}
51224	if s.PolicyVersionId == nil {
51225		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
51226	}
51227	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
51228		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
51229	}
51230
51231	if invalidParams.Len() > 0 {
51232		return invalidParams
51233	}
51234	return nil
51235}
51236
51237// SetPolicyName sets the PolicyName field's value.
51238func (s *SetDefaultPolicyVersionInput) SetPolicyName(v string) *SetDefaultPolicyVersionInput {
51239	s.PolicyName = &v
51240	return s
51241}
51242
51243// SetPolicyVersionId sets the PolicyVersionId field's value.
51244func (s *SetDefaultPolicyVersionInput) SetPolicyVersionId(v string) *SetDefaultPolicyVersionInput {
51245	s.PolicyVersionId = &v
51246	return s
51247}
51248
51249type SetDefaultPolicyVersionOutput struct {
51250	_ struct{} `type:"structure"`
51251}
51252
51253// String returns the string representation
51254func (s SetDefaultPolicyVersionOutput) String() string {
51255	return awsutil.Prettify(s)
51256}
51257
51258// GoString returns the string representation
51259func (s SetDefaultPolicyVersionOutput) GoString() string {
51260	return s.String()
51261}
51262
51263// The input for the SetLoggingOptions operation.
51264type SetLoggingOptionsInput struct {
51265	_ struct{} `type:"structure" payload:"LoggingOptionsPayload"`
51266
51267	// The logging options payload.
51268	//
51269	// LoggingOptionsPayload is a required field
51270	LoggingOptionsPayload *LoggingOptionsPayload `locationName:"loggingOptionsPayload" type:"structure" required:"true"`
51271}
51272
51273// String returns the string representation
51274func (s SetLoggingOptionsInput) String() string {
51275	return awsutil.Prettify(s)
51276}
51277
51278// GoString returns the string representation
51279func (s SetLoggingOptionsInput) GoString() string {
51280	return s.String()
51281}
51282
51283// Validate inspects the fields of the type to determine if they are valid.
51284func (s *SetLoggingOptionsInput) Validate() error {
51285	invalidParams := request.ErrInvalidParams{Context: "SetLoggingOptionsInput"}
51286	if s.LoggingOptionsPayload == nil {
51287		invalidParams.Add(request.NewErrParamRequired("LoggingOptionsPayload"))
51288	}
51289	if s.LoggingOptionsPayload != nil {
51290		if err := s.LoggingOptionsPayload.Validate(); err != nil {
51291			invalidParams.AddNested("LoggingOptionsPayload", err.(request.ErrInvalidParams))
51292		}
51293	}
51294
51295	if invalidParams.Len() > 0 {
51296		return invalidParams
51297	}
51298	return nil
51299}
51300
51301// SetLoggingOptionsPayload sets the LoggingOptionsPayload field's value.
51302func (s *SetLoggingOptionsInput) SetLoggingOptionsPayload(v *LoggingOptionsPayload) *SetLoggingOptionsInput {
51303	s.LoggingOptionsPayload = v
51304	return s
51305}
51306
51307type SetLoggingOptionsOutput struct {
51308	_ struct{} `type:"structure"`
51309}
51310
51311// String returns the string representation
51312func (s SetLoggingOptionsOutput) String() string {
51313	return awsutil.Prettify(s)
51314}
51315
51316// GoString returns the string representation
51317func (s SetLoggingOptionsOutput) GoString() string {
51318	return s.String()
51319}
51320
51321type SetV2LoggingLevelInput struct {
51322	_ struct{} `type:"structure"`
51323
51324	// The log level.
51325	//
51326	// LogLevel is a required field
51327	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
51328
51329	// The log target.
51330	//
51331	// LogTarget is a required field
51332	LogTarget *LogTarget `locationName:"logTarget" type:"structure" required:"true"`
51333}
51334
51335// String returns the string representation
51336func (s SetV2LoggingLevelInput) String() string {
51337	return awsutil.Prettify(s)
51338}
51339
51340// GoString returns the string representation
51341func (s SetV2LoggingLevelInput) GoString() string {
51342	return s.String()
51343}
51344
51345// Validate inspects the fields of the type to determine if they are valid.
51346func (s *SetV2LoggingLevelInput) Validate() error {
51347	invalidParams := request.ErrInvalidParams{Context: "SetV2LoggingLevelInput"}
51348	if s.LogLevel == nil {
51349		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
51350	}
51351	if s.LogTarget == nil {
51352		invalidParams.Add(request.NewErrParamRequired("LogTarget"))
51353	}
51354	if s.LogTarget != nil {
51355		if err := s.LogTarget.Validate(); err != nil {
51356			invalidParams.AddNested("LogTarget", err.(request.ErrInvalidParams))
51357		}
51358	}
51359
51360	if invalidParams.Len() > 0 {
51361		return invalidParams
51362	}
51363	return nil
51364}
51365
51366// SetLogLevel sets the LogLevel field's value.
51367func (s *SetV2LoggingLevelInput) SetLogLevel(v string) *SetV2LoggingLevelInput {
51368	s.LogLevel = &v
51369	return s
51370}
51371
51372// SetLogTarget sets the LogTarget field's value.
51373func (s *SetV2LoggingLevelInput) SetLogTarget(v *LogTarget) *SetV2LoggingLevelInput {
51374	s.LogTarget = v
51375	return s
51376}
51377
51378type SetV2LoggingLevelOutput struct {
51379	_ struct{} `type:"structure"`
51380}
51381
51382// String returns the string representation
51383func (s SetV2LoggingLevelOutput) String() string {
51384	return awsutil.Prettify(s)
51385}
51386
51387// GoString returns the string representation
51388func (s SetV2LoggingLevelOutput) GoString() string {
51389	return s.String()
51390}
51391
51392type SetV2LoggingOptionsInput struct {
51393	_ struct{} `type:"structure"`
51394
51395	// The default logging level.
51396	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
51397
51398	// If true all logs are disabled. The default is false.
51399	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
51400
51401	// The ARN of the role that allows IoT to write to Cloudwatch logs.
51402	RoleArn *string `locationName:"roleArn" type:"string"`
51403}
51404
51405// String returns the string representation
51406func (s SetV2LoggingOptionsInput) String() string {
51407	return awsutil.Prettify(s)
51408}
51409
51410// GoString returns the string representation
51411func (s SetV2LoggingOptionsInput) GoString() string {
51412	return s.String()
51413}
51414
51415// SetDefaultLogLevel sets the DefaultLogLevel field's value.
51416func (s *SetV2LoggingOptionsInput) SetDefaultLogLevel(v string) *SetV2LoggingOptionsInput {
51417	s.DefaultLogLevel = &v
51418	return s
51419}
51420
51421// SetDisableAllLogs sets the DisableAllLogs field's value.
51422func (s *SetV2LoggingOptionsInput) SetDisableAllLogs(v bool) *SetV2LoggingOptionsInput {
51423	s.DisableAllLogs = &v
51424	return s
51425}
51426
51427// SetRoleArn sets the RoleArn field's value.
51428func (s *SetV2LoggingOptionsInput) SetRoleArn(v string) *SetV2LoggingOptionsInput {
51429	s.RoleArn = &v
51430	return s
51431}
51432
51433type SetV2LoggingOptionsOutput struct {
51434	_ struct{} `type:"structure"`
51435}
51436
51437// String returns the string representation
51438func (s SetV2LoggingOptionsOutput) String() string {
51439	return awsutil.Prettify(s)
51440}
51441
51442// GoString returns the string representation
51443func (s SetV2LoggingOptionsOutput) GoString() string {
51444	return s.String()
51445}
51446
51447// For more information, see Signature Version 4 signing process (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
51448type SigV4Authorization struct {
51449	_ struct{} `type:"structure"`
51450
51451	// The ARN of the signing role.
51452	//
51453	// RoleArn is a required field
51454	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
51455
51456	// The service name to use while signing with Sig V4.
51457	//
51458	// ServiceName is a required field
51459	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
51460
51461	// The signing region.
51462	//
51463	// SigningRegion is a required field
51464	SigningRegion *string `locationName:"signingRegion" type:"string" required:"true"`
51465}
51466
51467// String returns the string representation
51468func (s SigV4Authorization) String() string {
51469	return awsutil.Prettify(s)
51470}
51471
51472// GoString returns the string representation
51473func (s SigV4Authorization) GoString() string {
51474	return s.String()
51475}
51476
51477// Validate inspects the fields of the type to determine if they are valid.
51478func (s *SigV4Authorization) Validate() error {
51479	invalidParams := request.ErrInvalidParams{Context: "SigV4Authorization"}
51480	if s.RoleArn == nil {
51481		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
51482	}
51483	if s.ServiceName == nil {
51484		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
51485	}
51486	if s.SigningRegion == nil {
51487		invalidParams.Add(request.NewErrParamRequired("SigningRegion"))
51488	}
51489
51490	if invalidParams.Len() > 0 {
51491		return invalidParams
51492	}
51493	return nil
51494}
51495
51496// SetRoleArn sets the RoleArn field's value.
51497func (s *SigV4Authorization) SetRoleArn(v string) *SigV4Authorization {
51498	s.RoleArn = &v
51499	return s
51500}
51501
51502// SetServiceName sets the ServiceName field's value.
51503func (s *SigV4Authorization) SetServiceName(v string) *SigV4Authorization {
51504	s.ServiceName = &v
51505	return s
51506}
51507
51508// SetSigningRegion sets the SigningRegion field's value.
51509func (s *SigV4Authorization) SetSigningRegion(v string) *SigV4Authorization {
51510	s.SigningRegion = &v
51511	return s
51512}
51513
51514// Describes the code-signing profile.
51515type SigningProfileParameter struct {
51516	_ struct{} `type:"structure"`
51517
51518	// Certificate ARN.
51519	CertificateArn *string `locationName:"certificateArn" type:"string"`
51520
51521	// The location of the code-signing certificate on your device.
51522	CertificatePathOnDevice *string `locationName:"certificatePathOnDevice" type:"string"`
51523
51524	// The hardware platform of your device.
51525	Platform *string `locationName:"platform" type:"string"`
51526}
51527
51528// String returns the string representation
51529func (s SigningProfileParameter) String() string {
51530	return awsutil.Prettify(s)
51531}
51532
51533// GoString returns the string representation
51534func (s SigningProfileParameter) GoString() string {
51535	return s.String()
51536}
51537
51538// SetCertificateArn sets the CertificateArn field's value.
51539func (s *SigningProfileParameter) SetCertificateArn(v string) *SigningProfileParameter {
51540	s.CertificateArn = &v
51541	return s
51542}
51543
51544// SetCertificatePathOnDevice sets the CertificatePathOnDevice field's value.
51545func (s *SigningProfileParameter) SetCertificatePathOnDevice(v string) *SigningProfileParameter {
51546	s.CertificatePathOnDevice = &v
51547	return s
51548}
51549
51550// SetPlatform sets the Platform field's value.
51551func (s *SigningProfileParameter) SetPlatform(v string) *SigningProfileParameter {
51552	s.Platform = &v
51553	return s
51554}
51555
51556// Describes an action to publish to an Amazon SNS topic.
51557type SnsAction struct {
51558	_ struct{} `type:"structure"`
51559
51560	// (Optional) The message format of the message to publish. Accepted values
51561	// are "JSON" and "RAW". The default value of the attribute is "RAW". SNS uses
51562	// this setting to determine if the payload should be parsed and relevant platform-specific
51563	// bits of the payload should be extracted. To read more about SNS message formats,
51564	// see https://docs.aws.amazon.com/sns/latest/dg/json-formats.html (https://docs.aws.amazon.com/sns/latest/dg/json-formats.html)
51565	// refer to their official documentation.
51566	MessageFormat *string `locationName:"messageFormat" type:"string" enum:"MessageFormat"`
51567
51568	// The ARN of the IAM role that grants access.
51569	//
51570	// RoleArn is a required field
51571	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
51572
51573	// The ARN of the SNS topic.
51574	//
51575	// TargetArn is a required field
51576	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
51577}
51578
51579// String returns the string representation
51580func (s SnsAction) String() string {
51581	return awsutil.Prettify(s)
51582}
51583
51584// GoString returns the string representation
51585func (s SnsAction) GoString() string {
51586	return s.String()
51587}
51588
51589// Validate inspects the fields of the type to determine if they are valid.
51590func (s *SnsAction) Validate() error {
51591	invalidParams := request.ErrInvalidParams{Context: "SnsAction"}
51592	if s.RoleArn == nil {
51593		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
51594	}
51595	if s.TargetArn == nil {
51596		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
51597	}
51598
51599	if invalidParams.Len() > 0 {
51600		return invalidParams
51601	}
51602	return nil
51603}
51604
51605// SetMessageFormat sets the MessageFormat field's value.
51606func (s *SnsAction) SetMessageFormat(v string) *SnsAction {
51607	s.MessageFormat = &v
51608	return s
51609}
51610
51611// SetRoleArn sets the RoleArn field's value.
51612func (s *SnsAction) SetRoleArn(v string) *SnsAction {
51613	s.RoleArn = &v
51614	return s
51615}
51616
51617// SetTargetArn sets the TargetArn field's value.
51618func (s *SnsAction) SetTargetArn(v string) *SnsAction {
51619	s.TargetArn = &v
51620	return s
51621}
51622
51623// The Rule-SQL expression can't be parsed correctly.
51624type SqlParseException struct {
51625	_            struct{}                  `type:"structure"`
51626	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
51627
51628	// The message for the exception.
51629	Message_ *string `locationName:"message" type:"string"`
51630}
51631
51632// String returns the string representation
51633func (s SqlParseException) String() string {
51634	return awsutil.Prettify(s)
51635}
51636
51637// GoString returns the string representation
51638func (s SqlParseException) GoString() string {
51639	return s.String()
51640}
51641
51642func newErrorSqlParseException(v protocol.ResponseMetadata) error {
51643	return &SqlParseException{
51644		RespMetadata: v,
51645	}
51646}
51647
51648// Code returns the exception type name.
51649func (s *SqlParseException) Code() string {
51650	return "SqlParseException"
51651}
51652
51653// Message returns the exception's message.
51654func (s *SqlParseException) Message() string {
51655	if s.Message_ != nil {
51656		return *s.Message_
51657	}
51658	return ""
51659}
51660
51661// OrigErr always returns nil, satisfies awserr.Error interface.
51662func (s *SqlParseException) OrigErr() error {
51663	return nil
51664}
51665
51666func (s *SqlParseException) Error() string {
51667	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
51668}
51669
51670// Status code returns the HTTP status code for the request's response error.
51671func (s *SqlParseException) StatusCode() int {
51672	return s.RespMetadata.StatusCode
51673}
51674
51675// RequestID returns the service's response RequestID for request.
51676func (s *SqlParseException) RequestID() string {
51677	return s.RespMetadata.RequestID
51678}
51679
51680// Describes an action to publish data to an Amazon SQS queue.
51681type SqsAction struct {
51682	_ struct{} `type:"structure"`
51683
51684	// The URL of the Amazon SQS queue.
51685	//
51686	// QueueUrl is a required field
51687	QueueUrl *string `locationName:"queueUrl" type:"string" required:"true"`
51688
51689	// The ARN of the IAM role that grants access.
51690	//
51691	// RoleArn is a required field
51692	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
51693
51694	// Specifies whether to use Base64 encoding.
51695	UseBase64 *bool `locationName:"useBase64" type:"boolean"`
51696}
51697
51698// String returns the string representation
51699func (s SqsAction) String() string {
51700	return awsutil.Prettify(s)
51701}
51702
51703// GoString returns the string representation
51704func (s SqsAction) GoString() string {
51705	return s.String()
51706}
51707
51708// Validate inspects the fields of the type to determine if they are valid.
51709func (s *SqsAction) Validate() error {
51710	invalidParams := request.ErrInvalidParams{Context: "SqsAction"}
51711	if s.QueueUrl == nil {
51712		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
51713	}
51714	if s.RoleArn == nil {
51715		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
51716	}
51717
51718	if invalidParams.Len() > 0 {
51719		return invalidParams
51720	}
51721	return nil
51722}
51723
51724// SetQueueUrl sets the QueueUrl field's value.
51725func (s *SqsAction) SetQueueUrl(v string) *SqsAction {
51726	s.QueueUrl = &v
51727	return s
51728}
51729
51730// SetRoleArn sets the RoleArn field's value.
51731func (s *SqsAction) SetRoleArn(v string) *SqsAction {
51732	s.RoleArn = &v
51733	return s
51734}
51735
51736// SetUseBase64 sets the UseBase64 field's value.
51737func (s *SqsAction) SetUseBase64(v bool) *SqsAction {
51738	s.UseBase64 = &v
51739	return s
51740}
51741
51742type StartAuditMitigationActionsTaskInput struct {
51743	_ struct{} `type:"structure"`
51744
51745	// For an audit check, specifies which mitigation actions to apply. Those actions
51746	// must be defined in your AWS account.
51747	//
51748	// AuditCheckToActionsMapping is a required field
51749	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map" required:"true"`
51750
51751	// Each audit mitigation task must have a unique client request token. If you
51752	// try to start a new task with the same token as a task that already exists,
51753	// an exception occurs. If you omit this value, a unique client request token
51754	// is generated automatically.
51755	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
51756
51757	// Specifies the audit findings to which the mitigation actions are applied.
51758	// You can apply them to a type of audit check, to all findings from an audit,
51759	// or to a specific set of findings.
51760	//
51761	// Target is a required field
51762	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure" required:"true"`
51763
51764	// A unique identifier for the task. You can use this identifier to check the
51765	// status of the task or to cancel it.
51766	//
51767	// TaskId is a required field
51768	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
51769}
51770
51771// String returns the string representation
51772func (s StartAuditMitigationActionsTaskInput) String() string {
51773	return awsutil.Prettify(s)
51774}
51775
51776// GoString returns the string representation
51777func (s StartAuditMitigationActionsTaskInput) GoString() string {
51778	return s.String()
51779}
51780
51781// Validate inspects the fields of the type to determine if they are valid.
51782func (s *StartAuditMitigationActionsTaskInput) Validate() error {
51783	invalidParams := request.ErrInvalidParams{Context: "StartAuditMitigationActionsTaskInput"}
51784	if s.AuditCheckToActionsMapping == nil {
51785		invalidParams.Add(request.NewErrParamRequired("AuditCheckToActionsMapping"))
51786	}
51787	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
51788		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
51789	}
51790	if s.Target == nil {
51791		invalidParams.Add(request.NewErrParamRequired("Target"))
51792	}
51793	if s.TaskId == nil {
51794		invalidParams.Add(request.NewErrParamRequired("TaskId"))
51795	}
51796	if s.TaskId != nil && len(*s.TaskId) < 1 {
51797		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
51798	}
51799	if s.Target != nil {
51800		if err := s.Target.Validate(); err != nil {
51801			invalidParams.AddNested("Target", err.(request.ErrInvalidParams))
51802		}
51803	}
51804
51805	if invalidParams.Len() > 0 {
51806		return invalidParams
51807	}
51808	return nil
51809}
51810
51811// SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
51812func (s *StartAuditMitigationActionsTaskInput) SetAuditCheckToActionsMapping(v map[string][]*string) *StartAuditMitigationActionsTaskInput {
51813	s.AuditCheckToActionsMapping = v
51814	return s
51815}
51816
51817// SetClientRequestToken sets the ClientRequestToken field's value.
51818func (s *StartAuditMitigationActionsTaskInput) SetClientRequestToken(v string) *StartAuditMitigationActionsTaskInput {
51819	s.ClientRequestToken = &v
51820	return s
51821}
51822
51823// SetTarget sets the Target field's value.
51824func (s *StartAuditMitigationActionsTaskInput) SetTarget(v *AuditMitigationActionsTaskTarget) *StartAuditMitigationActionsTaskInput {
51825	s.Target = v
51826	return s
51827}
51828
51829// SetTaskId sets the TaskId field's value.
51830func (s *StartAuditMitigationActionsTaskInput) SetTaskId(v string) *StartAuditMitigationActionsTaskInput {
51831	s.TaskId = &v
51832	return s
51833}
51834
51835type StartAuditMitigationActionsTaskOutput struct {
51836	_ struct{} `type:"structure"`
51837
51838	// The unique identifier for the audit mitigation task. This matches the taskId
51839	// that you specified in the request.
51840	TaskId *string `locationName:"taskId" min:"1" type:"string"`
51841}
51842
51843// String returns the string representation
51844func (s StartAuditMitigationActionsTaskOutput) String() string {
51845	return awsutil.Prettify(s)
51846}
51847
51848// GoString returns the string representation
51849func (s StartAuditMitigationActionsTaskOutput) GoString() string {
51850	return s.String()
51851}
51852
51853// SetTaskId sets the TaskId field's value.
51854func (s *StartAuditMitigationActionsTaskOutput) SetTaskId(v string) *StartAuditMitigationActionsTaskOutput {
51855	s.TaskId = &v
51856	return s
51857}
51858
51859type StartDetectMitigationActionsTaskInput struct {
51860	_ struct{} `type:"structure"`
51861
51862	// The actions to be performed when a device has unexpected behavior.
51863	//
51864	// Actions is a required field
51865	Actions []*string `locationName:"actions" min:"1" type:"list" required:"true"`
51866
51867	// Each mitigation action task must have a unique client request token. If you
51868	// try to create a new task with the same token as a task that already exists,
51869	// an exception occurs. If you omit this value, AWS SDKs will automatically
51870	// generate a unique client request.
51871	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
51872
51873	// Specifies to list only active violations.
51874	IncludeOnlyActiveViolations *bool `locationName:"includeOnlyActiveViolations" type:"boolean"`
51875
51876	// Specifies to include suppressed alerts.
51877	IncludeSuppressedAlerts *bool `locationName:"includeSuppressedAlerts" type:"boolean"`
51878
51879	// Specifies the ML Detect findings to which the mitigation actions are applied.
51880	//
51881	// Target is a required field
51882	Target *DetectMitigationActionsTaskTarget `locationName:"target" type:"structure" required:"true"`
51883
51884	// The unique identifier of the task.
51885	//
51886	// TaskId is a required field
51887	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
51888
51889	// Specifies the time period of which violation events occurred between.
51890	ViolationEventOccurrenceRange *ViolationEventOccurrenceRange `locationName:"violationEventOccurrenceRange" type:"structure"`
51891}
51892
51893// String returns the string representation
51894func (s StartDetectMitigationActionsTaskInput) String() string {
51895	return awsutil.Prettify(s)
51896}
51897
51898// GoString returns the string representation
51899func (s StartDetectMitigationActionsTaskInput) GoString() string {
51900	return s.String()
51901}
51902
51903// Validate inspects the fields of the type to determine if they are valid.
51904func (s *StartDetectMitigationActionsTaskInput) Validate() error {
51905	invalidParams := request.ErrInvalidParams{Context: "StartDetectMitigationActionsTaskInput"}
51906	if s.Actions == nil {
51907		invalidParams.Add(request.NewErrParamRequired("Actions"))
51908	}
51909	if s.Actions != nil && len(s.Actions) < 1 {
51910		invalidParams.Add(request.NewErrParamMinLen("Actions", 1))
51911	}
51912	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
51913		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
51914	}
51915	if s.Target == nil {
51916		invalidParams.Add(request.NewErrParamRequired("Target"))
51917	}
51918	if s.TaskId == nil {
51919		invalidParams.Add(request.NewErrParamRequired("TaskId"))
51920	}
51921	if s.TaskId != nil && len(*s.TaskId) < 1 {
51922		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
51923	}
51924	if s.Target != nil {
51925		if err := s.Target.Validate(); err != nil {
51926			invalidParams.AddNested("Target", err.(request.ErrInvalidParams))
51927		}
51928	}
51929	if s.ViolationEventOccurrenceRange != nil {
51930		if err := s.ViolationEventOccurrenceRange.Validate(); err != nil {
51931			invalidParams.AddNested("ViolationEventOccurrenceRange", err.(request.ErrInvalidParams))
51932		}
51933	}
51934
51935	if invalidParams.Len() > 0 {
51936		return invalidParams
51937	}
51938	return nil
51939}
51940
51941// SetActions sets the Actions field's value.
51942func (s *StartDetectMitigationActionsTaskInput) SetActions(v []*string) *StartDetectMitigationActionsTaskInput {
51943	s.Actions = v
51944	return s
51945}
51946
51947// SetClientRequestToken sets the ClientRequestToken field's value.
51948func (s *StartDetectMitigationActionsTaskInput) SetClientRequestToken(v string) *StartDetectMitigationActionsTaskInput {
51949	s.ClientRequestToken = &v
51950	return s
51951}
51952
51953// SetIncludeOnlyActiveViolations sets the IncludeOnlyActiveViolations field's value.
51954func (s *StartDetectMitigationActionsTaskInput) SetIncludeOnlyActiveViolations(v bool) *StartDetectMitigationActionsTaskInput {
51955	s.IncludeOnlyActiveViolations = &v
51956	return s
51957}
51958
51959// SetIncludeSuppressedAlerts sets the IncludeSuppressedAlerts field's value.
51960func (s *StartDetectMitigationActionsTaskInput) SetIncludeSuppressedAlerts(v bool) *StartDetectMitigationActionsTaskInput {
51961	s.IncludeSuppressedAlerts = &v
51962	return s
51963}
51964
51965// SetTarget sets the Target field's value.
51966func (s *StartDetectMitigationActionsTaskInput) SetTarget(v *DetectMitigationActionsTaskTarget) *StartDetectMitigationActionsTaskInput {
51967	s.Target = v
51968	return s
51969}
51970
51971// SetTaskId sets the TaskId field's value.
51972func (s *StartDetectMitigationActionsTaskInput) SetTaskId(v string) *StartDetectMitigationActionsTaskInput {
51973	s.TaskId = &v
51974	return s
51975}
51976
51977// SetViolationEventOccurrenceRange sets the ViolationEventOccurrenceRange field's value.
51978func (s *StartDetectMitigationActionsTaskInput) SetViolationEventOccurrenceRange(v *ViolationEventOccurrenceRange) *StartDetectMitigationActionsTaskInput {
51979	s.ViolationEventOccurrenceRange = v
51980	return s
51981}
51982
51983type StartDetectMitigationActionsTaskOutput struct {
51984	_ struct{} `type:"structure"`
51985
51986	// The unique identifier of the task.
51987	TaskId *string `locationName:"taskId" min:"1" type:"string"`
51988}
51989
51990// String returns the string representation
51991func (s StartDetectMitigationActionsTaskOutput) String() string {
51992	return awsutil.Prettify(s)
51993}
51994
51995// GoString returns the string representation
51996func (s StartDetectMitigationActionsTaskOutput) GoString() string {
51997	return s.String()
51998}
51999
52000// SetTaskId sets the TaskId field's value.
52001func (s *StartDetectMitigationActionsTaskOutput) SetTaskId(v string) *StartDetectMitigationActionsTaskOutput {
52002	s.TaskId = &v
52003	return s
52004}
52005
52006type StartOnDemandAuditTaskInput struct {
52007	_ struct{} `type:"structure"`
52008
52009	// Which checks are performed during the audit. The checks you specify must
52010	// be enabled for your account or an exception occurs. Use DescribeAccountAuditConfiguration
52011	// to see the list of all checks, including those that are enabled or UpdateAccountAuditConfiguration
52012	// to select which checks are enabled.
52013	//
52014	// TargetCheckNames is a required field
52015	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
52016}
52017
52018// String returns the string representation
52019func (s StartOnDemandAuditTaskInput) String() string {
52020	return awsutil.Prettify(s)
52021}
52022
52023// GoString returns the string representation
52024func (s StartOnDemandAuditTaskInput) GoString() string {
52025	return s.String()
52026}
52027
52028// Validate inspects the fields of the type to determine if they are valid.
52029func (s *StartOnDemandAuditTaskInput) Validate() error {
52030	invalidParams := request.ErrInvalidParams{Context: "StartOnDemandAuditTaskInput"}
52031	if s.TargetCheckNames == nil {
52032		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
52033	}
52034
52035	if invalidParams.Len() > 0 {
52036		return invalidParams
52037	}
52038	return nil
52039}
52040
52041// SetTargetCheckNames sets the TargetCheckNames field's value.
52042func (s *StartOnDemandAuditTaskInput) SetTargetCheckNames(v []*string) *StartOnDemandAuditTaskInput {
52043	s.TargetCheckNames = v
52044	return s
52045}
52046
52047type StartOnDemandAuditTaskOutput struct {
52048	_ struct{} `type:"structure"`
52049
52050	// The ID of the on-demand audit you started.
52051	TaskId *string `locationName:"taskId" min:"1" type:"string"`
52052}
52053
52054// String returns the string representation
52055func (s StartOnDemandAuditTaskOutput) String() string {
52056	return awsutil.Prettify(s)
52057}
52058
52059// GoString returns the string representation
52060func (s StartOnDemandAuditTaskOutput) GoString() string {
52061	return s.String()
52062}
52063
52064// SetTaskId sets the TaskId field's value.
52065func (s *StartOnDemandAuditTaskOutput) SetTaskId(v string) *StartOnDemandAuditTaskOutput {
52066	s.TaskId = &v
52067	return s
52068}
52069
52070// Information required to start a signing job.
52071type StartSigningJobParameter struct {
52072	_ struct{} `type:"structure"`
52073
52074	// The location to write the code-signed file.
52075	Destination *Destination `locationName:"destination" type:"structure"`
52076
52077	// The code-signing profile name.
52078	SigningProfileName *string `locationName:"signingProfileName" type:"string"`
52079
52080	// Describes the code-signing profile.
52081	SigningProfileParameter *SigningProfileParameter `locationName:"signingProfileParameter" type:"structure"`
52082}
52083
52084// String returns the string representation
52085func (s StartSigningJobParameter) String() string {
52086	return awsutil.Prettify(s)
52087}
52088
52089// GoString returns the string representation
52090func (s StartSigningJobParameter) GoString() string {
52091	return s.String()
52092}
52093
52094// Validate inspects the fields of the type to determine if they are valid.
52095func (s *StartSigningJobParameter) Validate() error {
52096	invalidParams := request.ErrInvalidParams{Context: "StartSigningJobParameter"}
52097	if s.Destination != nil {
52098		if err := s.Destination.Validate(); err != nil {
52099			invalidParams.AddNested("Destination", err.(request.ErrInvalidParams))
52100		}
52101	}
52102
52103	if invalidParams.Len() > 0 {
52104		return invalidParams
52105	}
52106	return nil
52107}
52108
52109// SetDestination sets the Destination field's value.
52110func (s *StartSigningJobParameter) SetDestination(v *Destination) *StartSigningJobParameter {
52111	s.Destination = v
52112	return s
52113}
52114
52115// SetSigningProfileName sets the SigningProfileName field's value.
52116func (s *StartSigningJobParameter) SetSigningProfileName(v string) *StartSigningJobParameter {
52117	s.SigningProfileName = &v
52118	return s
52119}
52120
52121// SetSigningProfileParameter sets the SigningProfileParameter field's value.
52122func (s *StartSigningJobParameter) SetSigningProfileParameter(v *SigningProfileParameter) *StartSigningJobParameter {
52123	s.SigningProfileParameter = v
52124	return s
52125}
52126
52127type StartThingRegistrationTaskInput struct {
52128	_ struct{} `type:"structure"`
52129
52130	// The S3 bucket that contains the input file.
52131	//
52132	// InputFileBucket is a required field
52133	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string" required:"true"`
52134
52135	// The name of input file within the S3 bucket. This file contains a newline
52136	// delimited JSON file. Each line contains the parameter values to provision
52137	// one device (thing).
52138	//
52139	// InputFileKey is a required field
52140	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string" required:"true"`
52141
52142	// The IAM role ARN that grants permission the input file.
52143	//
52144	// RoleArn is a required field
52145	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
52146
52147	// The provisioning template.
52148	//
52149	// TemplateBody is a required field
52150	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
52151}
52152
52153// String returns the string representation
52154func (s StartThingRegistrationTaskInput) String() string {
52155	return awsutil.Prettify(s)
52156}
52157
52158// GoString returns the string representation
52159func (s StartThingRegistrationTaskInput) GoString() string {
52160	return s.String()
52161}
52162
52163// Validate inspects the fields of the type to determine if they are valid.
52164func (s *StartThingRegistrationTaskInput) Validate() error {
52165	invalidParams := request.ErrInvalidParams{Context: "StartThingRegistrationTaskInput"}
52166	if s.InputFileBucket == nil {
52167		invalidParams.Add(request.NewErrParamRequired("InputFileBucket"))
52168	}
52169	if s.InputFileBucket != nil && len(*s.InputFileBucket) < 3 {
52170		invalidParams.Add(request.NewErrParamMinLen("InputFileBucket", 3))
52171	}
52172	if s.InputFileKey == nil {
52173		invalidParams.Add(request.NewErrParamRequired("InputFileKey"))
52174	}
52175	if s.InputFileKey != nil && len(*s.InputFileKey) < 1 {
52176		invalidParams.Add(request.NewErrParamMinLen("InputFileKey", 1))
52177	}
52178	if s.RoleArn == nil {
52179		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
52180	}
52181	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
52182		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
52183	}
52184	if s.TemplateBody == nil {
52185		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
52186	}
52187
52188	if invalidParams.Len() > 0 {
52189		return invalidParams
52190	}
52191	return nil
52192}
52193
52194// SetInputFileBucket sets the InputFileBucket field's value.
52195func (s *StartThingRegistrationTaskInput) SetInputFileBucket(v string) *StartThingRegistrationTaskInput {
52196	s.InputFileBucket = &v
52197	return s
52198}
52199
52200// SetInputFileKey sets the InputFileKey field's value.
52201func (s *StartThingRegistrationTaskInput) SetInputFileKey(v string) *StartThingRegistrationTaskInput {
52202	s.InputFileKey = &v
52203	return s
52204}
52205
52206// SetRoleArn sets the RoleArn field's value.
52207func (s *StartThingRegistrationTaskInput) SetRoleArn(v string) *StartThingRegistrationTaskInput {
52208	s.RoleArn = &v
52209	return s
52210}
52211
52212// SetTemplateBody sets the TemplateBody field's value.
52213func (s *StartThingRegistrationTaskInput) SetTemplateBody(v string) *StartThingRegistrationTaskInput {
52214	s.TemplateBody = &v
52215	return s
52216}
52217
52218type StartThingRegistrationTaskOutput struct {
52219	_ struct{} `type:"structure"`
52220
52221	// The bulk thing provisioning task ID.
52222	TaskId *string `locationName:"taskId" type:"string"`
52223}
52224
52225// String returns the string representation
52226func (s StartThingRegistrationTaskOutput) String() string {
52227	return awsutil.Prettify(s)
52228}
52229
52230// GoString returns the string representation
52231func (s StartThingRegistrationTaskOutput) GoString() string {
52232	return s.String()
52233}
52234
52235// SetTaskId sets the TaskId field's value.
52236func (s *StartThingRegistrationTaskOutput) SetTaskId(v string) *StartThingRegistrationTaskOutput {
52237	s.TaskId = &v
52238	return s
52239}
52240
52241// A statistical ranking (percentile) that indicates a threshold value by which
52242// a behavior is determined to be in compliance or in violation of the behavior.
52243type StatisticalThreshold struct {
52244	_ struct{} `type:"structure"`
52245
52246	// The percentile that resolves to a threshold value by which compliance with
52247	// a behavior is determined. Metrics are collected over the specified period
52248	// (durationSeconds) from all reporting devices in your account and statistical
52249	// ranks are calculated. Then, the measurements from a device are collected
52250	// over the same period. If the accumulated measurements from the device fall
52251	// above or below (comparisonOperator) the value associated with the percentile
52252	// specified, then the device is considered to be in compliance with the behavior,
52253	// otherwise a violation occurs.
52254	Statistic *string `locationName:"statistic" type:"string"`
52255}
52256
52257// String returns the string representation
52258func (s StatisticalThreshold) String() string {
52259	return awsutil.Prettify(s)
52260}
52261
52262// GoString returns the string representation
52263func (s StatisticalThreshold) GoString() string {
52264	return s.String()
52265}
52266
52267// SetStatistic sets the Statistic field's value.
52268func (s *StatisticalThreshold) SetStatistic(v string) *StatisticalThreshold {
52269	s.Statistic = &v
52270	return s
52271}
52272
52273// A map of key-value pairs for all supported statistics. Currently, only count
52274// is supported.
52275type Statistics struct {
52276	_ struct{} `type:"structure"`
52277
52278	// The average of the aggregated field values.
52279	Average *float64 `locationName:"average" type:"double"`
52280
52281	// The count of things that match the query.
52282	Count *int64 `locationName:"count" type:"integer"`
52283
52284	// The maximum aggregated field value.
52285	Maximum *float64 `locationName:"maximum" type:"double"`
52286
52287	// The minimum aggregated field value.
52288	Minimum *float64 `locationName:"minimum" type:"double"`
52289
52290	// The standard deviation of the aggregated field values.
52291	StdDeviation *float64 `locationName:"stdDeviation" type:"double"`
52292
52293	// The sum of the aggregated field values.
52294	Sum *float64 `locationName:"sum" type:"double"`
52295
52296	// The sum of the squares of the aggregated field values.
52297	SumOfSquares *float64 `locationName:"sumOfSquares" type:"double"`
52298
52299	// The variance of the aggregated field values.
52300	Variance *float64 `locationName:"variance" type:"double"`
52301}
52302
52303// String returns the string representation
52304func (s Statistics) String() string {
52305	return awsutil.Prettify(s)
52306}
52307
52308// GoString returns the string representation
52309func (s Statistics) GoString() string {
52310	return s.String()
52311}
52312
52313// SetAverage sets the Average field's value.
52314func (s *Statistics) SetAverage(v float64) *Statistics {
52315	s.Average = &v
52316	return s
52317}
52318
52319// SetCount sets the Count field's value.
52320func (s *Statistics) SetCount(v int64) *Statistics {
52321	s.Count = &v
52322	return s
52323}
52324
52325// SetMaximum sets the Maximum field's value.
52326func (s *Statistics) SetMaximum(v float64) *Statistics {
52327	s.Maximum = &v
52328	return s
52329}
52330
52331// SetMinimum sets the Minimum field's value.
52332func (s *Statistics) SetMinimum(v float64) *Statistics {
52333	s.Minimum = &v
52334	return s
52335}
52336
52337// SetStdDeviation sets the StdDeviation field's value.
52338func (s *Statistics) SetStdDeviation(v float64) *Statistics {
52339	s.StdDeviation = &v
52340	return s
52341}
52342
52343// SetSum sets the Sum field's value.
52344func (s *Statistics) SetSum(v float64) *Statistics {
52345	s.Sum = &v
52346	return s
52347}
52348
52349// SetSumOfSquares sets the SumOfSquares field's value.
52350func (s *Statistics) SetSumOfSquares(v float64) *Statistics {
52351	s.SumOfSquares = &v
52352	return s
52353}
52354
52355// SetVariance sets the Variance field's value.
52356func (s *Statistics) SetVariance(v float64) *Statistics {
52357	s.Variance = &v
52358	return s
52359}
52360
52361// Starts execution of a Step Functions state machine.
52362type StepFunctionsAction struct {
52363	_ struct{} `type:"structure"`
52364
52365	// (Optional) A name will be given to the state machine execution consisting
52366	// of this prefix followed by a UUID. Step Functions automatically creates a
52367	// unique name for each state machine execution if one is not provided.
52368	ExecutionNamePrefix *string `locationName:"executionNamePrefix" type:"string"`
52369
52370	// The ARN of the role that grants IoT permission to start execution of a state
52371	// machine ("Action":"states:StartExecution").
52372	//
52373	// RoleArn is a required field
52374	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
52375
52376	// The name of the Step Functions state machine whose execution will be started.
52377	//
52378	// StateMachineName is a required field
52379	StateMachineName *string `locationName:"stateMachineName" type:"string" required:"true"`
52380}
52381
52382// String returns the string representation
52383func (s StepFunctionsAction) String() string {
52384	return awsutil.Prettify(s)
52385}
52386
52387// GoString returns the string representation
52388func (s StepFunctionsAction) GoString() string {
52389	return s.String()
52390}
52391
52392// Validate inspects the fields of the type to determine if they are valid.
52393func (s *StepFunctionsAction) Validate() error {
52394	invalidParams := request.ErrInvalidParams{Context: "StepFunctionsAction"}
52395	if s.RoleArn == nil {
52396		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
52397	}
52398	if s.StateMachineName == nil {
52399		invalidParams.Add(request.NewErrParamRequired("StateMachineName"))
52400	}
52401
52402	if invalidParams.Len() > 0 {
52403		return invalidParams
52404	}
52405	return nil
52406}
52407
52408// SetExecutionNamePrefix sets the ExecutionNamePrefix field's value.
52409func (s *StepFunctionsAction) SetExecutionNamePrefix(v string) *StepFunctionsAction {
52410	s.ExecutionNamePrefix = &v
52411	return s
52412}
52413
52414// SetRoleArn sets the RoleArn field's value.
52415func (s *StepFunctionsAction) SetRoleArn(v string) *StepFunctionsAction {
52416	s.RoleArn = &v
52417	return s
52418}
52419
52420// SetStateMachineName sets the StateMachineName field's value.
52421func (s *StepFunctionsAction) SetStateMachineName(v string) *StepFunctionsAction {
52422	s.StateMachineName = &v
52423	return s
52424}
52425
52426type StopThingRegistrationTaskInput struct {
52427	_ struct{} `type:"structure"`
52428
52429	// The bulk thing provisioning task ID.
52430	//
52431	// TaskId is a required field
52432	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
52433}
52434
52435// String returns the string representation
52436func (s StopThingRegistrationTaskInput) String() string {
52437	return awsutil.Prettify(s)
52438}
52439
52440// GoString returns the string representation
52441func (s StopThingRegistrationTaskInput) GoString() string {
52442	return s.String()
52443}
52444
52445// Validate inspects the fields of the type to determine if they are valid.
52446func (s *StopThingRegistrationTaskInput) Validate() error {
52447	invalidParams := request.ErrInvalidParams{Context: "StopThingRegistrationTaskInput"}
52448	if s.TaskId == nil {
52449		invalidParams.Add(request.NewErrParamRequired("TaskId"))
52450	}
52451	if s.TaskId != nil && len(*s.TaskId) < 1 {
52452		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
52453	}
52454
52455	if invalidParams.Len() > 0 {
52456		return invalidParams
52457	}
52458	return nil
52459}
52460
52461// SetTaskId sets the TaskId field's value.
52462func (s *StopThingRegistrationTaskInput) SetTaskId(v string) *StopThingRegistrationTaskInput {
52463	s.TaskId = &v
52464	return s
52465}
52466
52467type StopThingRegistrationTaskOutput struct {
52468	_ struct{} `type:"structure"`
52469}
52470
52471// String returns the string representation
52472func (s StopThingRegistrationTaskOutput) String() string {
52473	return awsutil.Prettify(s)
52474}
52475
52476// GoString returns the string representation
52477func (s StopThingRegistrationTaskOutput) GoString() string {
52478	return s.String()
52479}
52480
52481// Describes a group of files that can be streamed.
52482type Stream struct {
52483	_ struct{} `type:"structure"`
52484
52485	// The ID of a file associated with a stream.
52486	FileId *int64 `locationName:"fileId" type:"integer"`
52487
52488	// The stream ID.
52489	StreamId *string `locationName:"streamId" min:"1" type:"string"`
52490}
52491
52492// String returns the string representation
52493func (s Stream) String() string {
52494	return awsutil.Prettify(s)
52495}
52496
52497// GoString returns the string representation
52498func (s Stream) GoString() string {
52499	return s.String()
52500}
52501
52502// Validate inspects the fields of the type to determine if they are valid.
52503func (s *Stream) Validate() error {
52504	invalidParams := request.ErrInvalidParams{Context: "Stream"}
52505	if s.StreamId != nil && len(*s.StreamId) < 1 {
52506		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
52507	}
52508
52509	if invalidParams.Len() > 0 {
52510		return invalidParams
52511	}
52512	return nil
52513}
52514
52515// SetFileId sets the FileId field's value.
52516func (s *Stream) SetFileId(v int64) *Stream {
52517	s.FileId = &v
52518	return s
52519}
52520
52521// SetStreamId sets the StreamId field's value.
52522func (s *Stream) SetStreamId(v string) *Stream {
52523	s.StreamId = &v
52524	return s
52525}
52526
52527// Represents a file to stream.
52528type StreamFile struct {
52529	_ struct{} `type:"structure"`
52530
52531	// The file ID.
52532	FileId *int64 `locationName:"fileId" type:"integer"`
52533
52534	// The location of the file in S3.
52535	S3Location *S3Location `locationName:"s3Location" type:"structure"`
52536}
52537
52538// String returns the string representation
52539func (s StreamFile) String() string {
52540	return awsutil.Prettify(s)
52541}
52542
52543// GoString returns the string representation
52544func (s StreamFile) GoString() string {
52545	return s.String()
52546}
52547
52548// Validate inspects the fields of the type to determine if they are valid.
52549func (s *StreamFile) Validate() error {
52550	invalidParams := request.ErrInvalidParams{Context: "StreamFile"}
52551	if s.S3Location != nil {
52552		if err := s.S3Location.Validate(); err != nil {
52553			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
52554		}
52555	}
52556
52557	if invalidParams.Len() > 0 {
52558		return invalidParams
52559	}
52560	return nil
52561}
52562
52563// SetFileId sets the FileId field's value.
52564func (s *StreamFile) SetFileId(v int64) *StreamFile {
52565	s.FileId = &v
52566	return s
52567}
52568
52569// SetS3Location sets the S3Location field's value.
52570func (s *StreamFile) SetS3Location(v *S3Location) *StreamFile {
52571	s.S3Location = v
52572	return s
52573}
52574
52575// Information about a stream.
52576type StreamInfo struct {
52577	_ struct{} `type:"structure"`
52578
52579	// The date when the stream was created.
52580	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
52581
52582	// The description of the stream.
52583	Description *string `locationName:"description" type:"string"`
52584
52585	// The files to stream.
52586	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
52587
52588	// The date when the stream was last updated.
52589	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
52590
52591	// An IAM role AWS IoT assumes to access your S3 files.
52592	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
52593
52594	// The stream ARN.
52595	StreamArn *string `locationName:"streamArn" type:"string"`
52596
52597	// The stream ID.
52598	StreamId *string `locationName:"streamId" min:"1" type:"string"`
52599
52600	// The stream version.
52601	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
52602}
52603
52604// String returns the string representation
52605func (s StreamInfo) String() string {
52606	return awsutil.Prettify(s)
52607}
52608
52609// GoString returns the string representation
52610func (s StreamInfo) GoString() string {
52611	return s.String()
52612}
52613
52614// SetCreatedAt sets the CreatedAt field's value.
52615func (s *StreamInfo) SetCreatedAt(v time.Time) *StreamInfo {
52616	s.CreatedAt = &v
52617	return s
52618}
52619
52620// SetDescription sets the Description field's value.
52621func (s *StreamInfo) SetDescription(v string) *StreamInfo {
52622	s.Description = &v
52623	return s
52624}
52625
52626// SetFiles sets the Files field's value.
52627func (s *StreamInfo) SetFiles(v []*StreamFile) *StreamInfo {
52628	s.Files = v
52629	return s
52630}
52631
52632// SetLastUpdatedAt sets the LastUpdatedAt field's value.
52633func (s *StreamInfo) SetLastUpdatedAt(v time.Time) *StreamInfo {
52634	s.LastUpdatedAt = &v
52635	return s
52636}
52637
52638// SetRoleArn sets the RoleArn field's value.
52639func (s *StreamInfo) SetRoleArn(v string) *StreamInfo {
52640	s.RoleArn = &v
52641	return s
52642}
52643
52644// SetStreamArn sets the StreamArn field's value.
52645func (s *StreamInfo) SetStreamArn(v string) *StreamInfo {
52646	s.StreamArn = &v
52647	return s
52648}
52649
52650// SetStreamId sets the StreamId field's value.
52651func (s *StreamInfo) SetStreamId(v string) *StreamInfo {
52652	s.StreamId = &v
52653	return s
52654}
52655
52656// SetStreamVersion sets the StreamVersion field's value.
52657func (s *StreamInfo) SetStreamVersion(v int64) *StreamInfo {
52658	s.StreamVersion = &v
52659	return s
52660}
52661
52662// A summary of a stream.
52663type StreamSummary struct {
52664	_ struct{} `type:"structure"`
52665
52666	// A description of the stream.
52667	Description *string `locationName:"description" type:"string"`
52668
52669	// The stream ARN.
52670	StreamArn *string `locationName:"streamArn" type:"string"`
52671
52672	// The stream ID.
52673	StreamId *string `locationName:"streamId" min:"1" type:"string"`
52674
52675	// The stream version.
52676	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
52677}
52678
52679// String returns the string representation
52680func (s StreamSummary) String() string {
52681	return awsutil.Prettify(s)
52682}
52683
52684// GoString returns the string representation
52685func (s StreamSummary) GoString() string {
52686	return s.String()
52687}
52688
52689// SetDescription sets the Description field's value.
52690func (s *StreamSummary) SetDescription(v string) *StreamSummary {
52691	s.Description = &v
52692	return s
52693}
52694
52695// SetStreamArn sets the StreamArn field's value.
52696func (s *StreamSummary) SetStreamArn(v string) *StreamSummary {
52697	s.StreamArn = &v
52698	return s
52699}
52700
52701// SetStreamId sets the StreamId field's value.
52702func (s *StreamSummary) SetStreamId(v string) *StreamSummary {
52703	s.StreamId = &v
52704	return s
52705}
52706
52707// SetStreamVersion sets the StreamVersion field's value.
52708func (s *StreamSummary) SetStreamVersion(v int64) *StreamSummary {
52709	s.StreamVersion = &v
52710	return s
52711}
52712
52713// A set of key/value pairs that are used to manage the resource.
52714type Tag struct {
52715	_ struct{} `type:"structure"`
52716
52717	// The tag's key.
52718	//
52719	// Key is a required field
52720	Key *string `min:"1" type:"string" required:"true"`
52721
52722	// The tag's value.
52723	Value *string `min:"1" type:"string"`
52724}
52725
52726// String returns the string representation
52727func (s Tag) String() string {
52728	return awsutil.Prettify(s)
52729}
52730
52731// GoString returns the string representation
52732func (s Tag) GoString() string {
52733	return s.String()
52734}
52735
52736// Validate inspects the fields of the type to determine if they are valid.
52737func (s *Tag) Validate() error {
52738	invalidParams := request.ErrInvalidParams{Context: "Tag"}
52739	if s.Key == nil {
52740		invalidParams.Add(request.NewErrParamRequired("Key"))
52741	}
52742	if s.Key != nil && len(*s.Key) < 1 {
52743		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
52744	}
52745	if s.Value != nil && len(*s.Value) < 1 {
52746		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
52747	}
52748
52749	if invalidParams.Len() > 0 {
52750		return invalidParams
52751	}
52752	return nil
52753}
52754
52755// SetKey sets the Key field's value.
52756func (s *Tag) SetKey(v string) *Tag {
52757	s.Key = &v
52758	return s
52759}
52760
52761// SetValue sets the Value field's value.
52762func (s *Tag) SetValue(v string) *Tag {
52763	s.Value = &v
52764	return s
52765}
52766
52767type TagResourceInput struct {
52768	_ struct{} `type:"structure"`
52769
52770	// The ARN of the resource.
52771	//
52772	// ResourceArn is a required field
52773	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
52774
52775	// The new or modified tags for the resource.
52776	//
52777	// Tags is a required field
52778	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
52779}
52780
52781// String returns the string representation
52782func (s TagResourceInput) String() string {
52783	return awsutil.Prettify(s)
52784}
52785
52786// GoString returns the string representation
52787func (s TagResourceInput) GoString() string {
52788	return s.String()
52789}
52790
52791// Validate inspects the fields of the type to determine if they are valid.
52792func (s *TagResourceInput) Validate() error {
52793	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
52794	if s.ResourceArn == nil {
52795		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
52796	}
52797	if s.Tags == nil {
52798		invalidParams.Add(request.NewErrParamRequired("Tags"))
52799	}
52800	if s.Tags != nil {
52801		for i, v := range s.Tags {
52802			if v == nil {
52803				continue
52804			}
52805			if err := v.Validate(); err != nil {
52806				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
52807			}
52808		}
52809	}
52810
52811	if invalidParams.Len() > 0 {
52812		return invalidParams
52813	}
52814	return nil
52815}
52816
52817// SetResourceArn sets the ResourceArn field's value.
52818func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
52819	s.ResourceArn = &v
52820	return s
52821}
52822
52823// SetTags sets the Tags field's value.
52824func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
52825	s.Tags = v
52826	return s
52827}
52828
52829type TagResourceOutput struct {
52830	_ struct{} `type:"structure"`
52831}
52832
52833// String returns the string representation
52834func (s TagResourceOutput) String() string {
52835	return awsutil.Prettify(s)
52836}
52837
52838// GoString returns the string representation
52839func (s TagResourceOutput) GoString() string {
52840	return s.String()
52841}
52842
52843// This exception occurs if you attempt to start a task with the same task-id
52844// as an existing task but with a different clientRequestToken.
52845type TaskAlreadyExistsException struct {
52846	_            struct{}                  `type:"structure"`
52847	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
52848
52849	Message_ *string `locationName:"message" type:"string"`
52850}
52851
52852// String returns the string representation
52853func (s TaskAlreadyExistsException) String() string {
52854	return awsutil.Prettify(s)
52855}
52856
52857// GoString returns the string representation
52858func (s TaskAlreadyExistsException) GoString() string {
52859	return s.String()
52860}
52861
52862func newErrorTaskAlreadyExistsException(v protocol.ResponseMetadata) error {
52863	return &TaskAlreadyExistsException{
52864		RespMetadata: v,
52865	}
52866}
52867
52868// Code returns the exception type name.
52869func (s *TaskAlreadyExistsException) Code() string {
52870	return "TaskAlreadyExistsException"
52871}
52872
52873// Message returns the exception's message.
52874func (s *TaskAlreadyExistsException) Message() string {
52875	if s.Message_ != nil {
52876		return *s.Message_
52877	}
52878	return ""
52879}
52880
52881// OrigErr always returns nil, satisfies awserr.Error interface.
52882func (s *TaskAlreadyExistsException) OrigErr() error {
52883	return nil
52884}
52885
52886func (s *TaskAlreadyExistsException) Error() string {
52887	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
52888}
52889
52890// Status code returns the HTTP status code for the request's response error.
52891func (s *TaskAlreadyExistsException) StatusCode() int {
52892	return s.RespMetadata.StatusCode
52893}
52894
52895// RequestID returns the service's response RequestID for request.
52896func (s *TaskAlreadyExistsException) RequestID() string {
52897	return s.RespMetadata.RequestID
52898}
52899
52900// Statistics for the checks performed during the audit.
52901type TaskStatistics struct {
52902	_ struct{} `type:"structure"`
52903
52904	// The number of checks that did not run because the audit was canceled.
52905	CanceledChecks *int64 `locationName:"canceledChecks" type:"integer"`
52906
52907	// The number of checks that found compliant resources.
52908	CompliantChecks *int64 `locationName:"compliantChecks" type:"integer"`
52909
52910	// The number of checks.
52911	FailedChecks *int64 `locationName:"failedChecks" type:"integer"`
52912
52913	// The number of checks in progress.
52914	InProgressChecks *int64 `locationName:"inProgressChecks" type:"integer"`
52915
52916	// The number of checks that found noncompliant resources.
52917	NonCompliantChecks *int64 `locationName:"nonCompliantChecks" type:"integer"`
52918
52919	// The number of checks in this audit.
52920	TotalChecks *int64 `locationName:"totalChecks" type:"integer"`
52921
52922	// The number of checks waiting for data collection.
52923	WaitingForDataCollectionChecks *int64 `locationName:"waitingForDataCollectionChecks" type:"integer"`
52924}
52925
52926// String returns the string representation
52927func (s TaskStatistics) String() string {
52928	return awsutil.Prettify(s)
52929}
52930
52931// GoString returns the string representation
52932func (s TaskStatistics) GoString() string {
52933	return s.String()
52934}
52935
52936// SetCanceledChecks sets the CanceledChecks field's value.
52937func (s *TaskStatistics) SetCanceledChecks(v int64) *TaskStatistics {
52938	s.CanceledChecks = &v
52939	return s
52940}
52941
52942// SetCompliantChecks sets the CompliantChecks field's value.
52943func (s *TaskStatistics) SetCompliantChecks(v int64) *TaskStatistics {
52944	s.CompliantChecks = &v
52945	return s
52946}
52947
52948// SetFailedChecks sets the FailedChecks field's value.
52949func (s *TaskStatistics) SetFailedChecks(v int64) *TaskStatistics {
52950	s.FailedChecks = &v
52951	return s
52952}
52953
52954// SetInProgressChecks sets the InProgressChecks field's value.
52955func (s *TaskStatistics) SetInProgressChecks(v int64) *TaskStatistics {
52956	s.InProgressChecks = &v
52957	return s
52958}
52959
52960// SetNonCompliantChecks sets the NonCompliantChecks field's value.
52961func (s *TaskStatistics) SetNonCompliantChecks(v int64) *TaskStatistics {
52962	s.NonCompliantChecks = &v
52963	return s
52964}
52965
52966// SetTotalChecks sets the TotalChecks field's value.
52967func (s *TaskStatistics) SetTotalChecks(v int64) *TaskStatistics {
52968	s.TotalChecks = &v
52969	return s
52970}
52971
52972// SetWaitingForDataCollectionChecks sets the WaitingForDataCollectionChecks field's value.
52973func (s *TaskStatistics) SetWaitingForDataCollectionChecks(v int64) *TaskStatistics {
52974	s.WaitingForDataCollectionChecks = &v
52975	return s
52976}
52977
52978// Provides summary counts of how many tasks for findings are in a particular
52979// state. This information is included in the response from DescribeAuditMitigationActionsTask.
52980type TaskStatisticsForAuditCheck struct {
52981	_ struct{} `type:"structure"`
52982
52983	// The number of findings to which the mitigation action task was canceled when
52984	// applied.
52985	CanceledFindingsCount *int64 `locationName:"canceledFindingsCount" type:"long"`
52986
52987	// The number of findings for which at least one of the actions failed when
52988	// applied.
52989	FailedFindingsCount *int64 `locationName:"failedFindingsCount" type:"long"`
52990
52991	// The number of findings skipped because of filter conditions provided in the
52992	// parameters to the command.
52993	SkippedFindingsCount *int64 `locationName:"skippedFindingsCount" type:"long"`
52994
52995	// The number of findings for which all mitigation actions succeeded when applied.
52996	SucceededFindingsCount *int64 `locationName:"succeededFindingsCount" type:"long"`
52997
52998	// The total number of findings to which a task is being applied.
52999	TotalFindingsCount *int64 `locationName:"totalFindingsCount" type:"long"`
53000}
53001
53002// String returns the string representation
53003func (s TaskStatisticsForAuditCheck) String() string {
53004	return awsutil.Prettify(s)
53005}
53006
53007// GoString returns the string representation
53008func (s TaskStatisticsForAuditCheck) GoString() string {
53009	return s.String()
53010}
53011
53012// SetCanceledFindingsCount sets the CanceledFindingsCount field's value.
53013func (s *TaskStatisticsForAuditCheck) SetCanceledFindingsCount(v int64) *TaskStatisticsForAuditCheck {
53014	s.CanceledFindingsCount = &v
53015	return s
53016}
53017
53018// SetFailedFindingsCount sets the FailedFindingsCount field's value.
53019func (s *TaskStatisticsForAuditCheck) SetFailedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
53020	s.FailedFindingsCount = &v
53021	return s
53022}
53023
53024// SetSkippedFindingsCount sets the SkippedFindingsCount field's value.
53025func (s *TaskStatisticsForAuditCheck) SetSkippedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
53026	s.SkippedFindingsCount = &v
53027	return s
53028}
53029
53030// SetSucceededFindingsCount sets the SucceededFindingsCount field's value.
53031func (s *TaskStatisticsForAuditCheck) SetSucceededFindingsCount(v int64) *TaskStatisticsForAuditCheck {
53032	s.SucceededFindingsCount = &v
53033	return s
53034}
53035
53036// SetTotalFindingsCount sets the TotalFindingsCount field's value.
53037func (s *TaskStatisticsForAuditCheck) SetTotalFindingsCount(v int64) *TaskStatisticsForAuditCheck {
53038	s.TotalFindingsCount = &v
53039	return s
53040}
53041
53042type TestAuthorizationInput struct {
53043	_ struct{} `type:"structure"`
53044
53045	// A list of authorization info objects. Simulating authorization will create
53046	// a response for each authInfo object in the list.
53047	//
53048	// AuthInfos is a required field
53049	AuthInfos []*AuthInfo `locationName:"authInfos" min:"1" type:"list" required:"true"`
53050
53051	// The MQTT client ID.
53052	ClientId *string `location:"querystring" locationName:"clientId" type:"string"`
53053
53054	// The Cognito identity pool ID.
53055	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
53056
53057	// When testing custom authorization, the policies specified here are treated
53058	// as if they are attached to the principal being authorized.
53059	PolicyNamesToAdd []*string `locationName:"policyNamesToAdd" type:"list"`
53060
53061	// When testing custom authorization, the policies specified here are treated
53062	// as if they are not attached to the principal being authorized.
53063	PolicyNamesToSkip []*string `locationName:"policyNamesToSkip" type:"list"`
53064
53065	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
53066	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
53067	// (region:id).
53068	Principal *string `locationName:"principal" type:"string"`
53069}
53070
53071// String returns the string representation
53072func (s TestAuthorizationInput) String() string {
53073	return awsutil.Prettify(s)
53074}
53075
53076// GoString returns the string representation
53077func (s TestAuthorizationInput) GoString() string {
53078	return s.String()
53079}
53080
53081// Validate inspects the fields of the type to determine if they are valid.
53082func (s *TestAuthorizationInput) Validate() error {
53083	invalidParams := request.ErrInvalidParams{Context: "TestAuthorizationInput"}
53084	if s.AuthInfos == nil {
53085		invalidParams.Add(request.NewErrParamRequired("AuthInfos"))
53086	}
53087	if s.AuthInfos != nil && len(s.AuthInfos) < 1 {
53088		invalidParams.Add(request.NewErrParamMinLen("AuthInfos", 1))
53089	}
53090	if s.AuthInfos != nil {
53091		for i, v := range s.AuthInfos {
53092			if v == nil {
53093				continue
53094			}
53095			if err := v.Validate(); err != nil {
53096				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuthInfos", i), err.(request.ErrInvalidParams))
53097			}
53098		}
53099	}
53100
53101	if invalidParams.Len() > 0 {
53102		return invalidParams
53103	}
53104	return nil
53105}
53106
53107// SetAuthInfos sets the AuthInfos field's value.
53108func (s *TestAuthorizationInput) SetAuthInfos(v []*AuthInfo) *TestAuthorizationInput {
53109	s.AuthInfos = v
53110	return s
53111}
53112
53113// SetClientId sets the ClientId field's value.
53114func (s *TestAuthorizationInput) SetClientId(v string) *TestAuthorizationInput {
53115	s.ClientId = &v
53116	return s
53117}
53118
53119// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
53120func (s *TestAuthorizationInput) SetCognitoIdentityPoolId(v string) *TestAuthorizationInput {
53121	s.CognitoIdentityPoolId = &v
53122	return s
53123}
53124
53125// SetPolicyNamesToAdd sets the PolicyNamesToAdd field's value.
53126func (s *TestAuthorizationInput) SetPolicyNamesToAdd(v []*string) *TestAuthorizationInput {
53127	s.PolicyNamesToAdd = v
53128	return s
53129}
53130
53131// SetPolicyNamesToSkip sets the PolicyNamesToSkip field's value.
53132func (s *TestAuthorizationInput) SetPolicyNamesToSkip(v []*string) *TestAuthorizationInput {
53133	s.PolicyNamesToSkip = v
53134	return s
53135}
53136
53137// SetPrincipal sets the Principal field's value.
53138func (s *TestAuthorizationInput) SetPrincipal(v string) *TestAuthorizationInput {
53139	s.Principal = &v
53140	return s
53141}
53142
53143type TestAuthorizationOutput struct {
53144	_ struct{} `type:"structure"`
53145
53146	// The authentication results.
53147	AuthResults []*AuthResult `locationName:"authResults" type:"list"`
53148}
53149
53150// String returns the string representation
53151func (s TestAuthorizationOutput) String() string {
53152	return awsutil.Prettify(s)
53153}
53154
53155// GoString returns the string representation
53156func (s TestAuthorizationOutput) GoString() string {
53157	return s.String()
53158}
53159
53160// SetAuthResults sets the AuthResults field's value.
53161func (s *TestAuthorizationOutput) SetAuthResults(v []*AuthResult) *TestAuthorizationOutput {
53162	s.AuthResults = v
53163	return s
53164}
53165
53166type TestInvokeAuthorizerInput struct {
53167	_ struct{} `type:"structure"`
53168
53169	// The custom authorizer name.
53170	//
53171	// AuthorizerName is a required field
53172	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
53173
53174	// Specifies a test HTTP authorization request.
53175	HttpContext *HttpContext `locationName:"httpContext" type:"structure"`
53176
53177	// Specifies a test MQTT authorization request.
53178	MqttContext *MqttContext `locationName:"mqttContext" type:"structure"`
53179
53180	// Specifies a test TLS authorization request.
53181	TlsContext *TlsContext `locationName:"tlsContext" type:"structure"`
53182
53183	// The token returned by your custom authentication service.
53184	Token *string `locationName:"token" min:"1" type:"string"`
53185
53186	// The signature made with the token and your custom authentication service's
53187	// private key. This value must be Base-64-encoded.
53188	TokenSignature *string `locationName:"tokenSignature" min:"1" type:"string"`
53189}
53190
53191// String returns the string representation
53192func (s TestInvokeAuthorizerInput) String() string {
53193	return awsutil.Prettify(s)
53194}
53195
53196// GoString returns the string representation
53197func (s TestInvokeAuthorizerInput) GoString() string {
53198	return s.String()
53199}
53200
53201// Validate inspects the fields of the type to determine if they are valid.
53202func (s *TestInvokeAuthorizerInput) Validate() error {
53203	invalidParams := request.ErrInvalidParams{Context: "TestInvokeAuthorizerInput"}
53204	if s.AuthorizerName == nil {
53205		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
53206	}
53207	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
53208		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
53209	}
53210	if s.Token != nil && len(*s.Token) < 1 {
53211		invalidParams.Add(request.NewErrParamMinLen("Token", 1))
53212	}
53213	if s.TokenSignature != nil && len(*s.TokenSignature) < 1 {
53214		invalidParams.Add(request.NewErrParamMinLen("TokenSignature", 1))
53215	}
53216	if s.HttpContext != nil {
53217		if err := s.HttpContext.Validate(); err != nil {
53218			invalidParams.AddNested("HttpContext", err.(request.ErrInvalidParams))
53219		}
53220	}
53221	if s.MqttContext != nil {
53222		if err := s.MqttContext.Validate(); err != nil {
53223			invalidParams.AddNested("MqttContext", err.(request.ErrInvalidParams))
53224		}
53225	}
53226	if s.TlsContext != nil {
53227		if err := s.TlsContext.Validate(); err != nil {
53228			invalidParams.AddNested("TlsContext", err.(request.ErrInvalidParams))
53229		}
53230	}
53231
53232	if invalidParams.Len() > 0 {
53233		return invalidParams
53234	}
53235	return nil
53236}
53237
53238// SetAuthorizerName sets the AuthorizerName field's value.
53239func (s *TestInvokeAuthorizerInput) SetAuthorizerName(v string) *TestInvokeAuthorizerInput {
53240	s.AuthorizerName = &v
53241	return s
53242}
53243
53244// SetHttpContext sets the HttpContext field's value.
53245func (s *TestInvokeAuthorizerInput) SetHttpContext(v *HttpContext) *TestInvokeAuthorizerInput {
53246	s.HttpContext = v
53247	return s
53248}
53249
53250// SetMqttContext sets the MqttContext field's value.
53251func (s *TestInvokeAuthorizerInput) SetMqttContext(v *MqttContext) *TestInvokeAuthorizerInput {
53252	s.MqttContext = v
53253	return s
53254}
53255
53256// SetTlsContext sets the TlsContext field's value.
53257func (s *TestInvokeAuthorizerInput) SetTlsContext(v *TlsContext) *TestInvokeAuthorizerInput {
53258	s.TlsContext = v
53259	return s
53260}
53261
53262// SetToken sets the Token field's value.
53263func (s *TestInvokeAuthorizerInput) SetToken(v string) *TestInvokeAuthorizerInput {
53264	s.Token = &v
53265	return s
53266}
53267
53268// SetTokenSignature sets the TokenSignature field's value.
53269func (s *TestInvokeAuthorizerInput) SetTokenSignature(v string) *TestInvokeAuthorizerInput {
53270	s.TokenSignature = &v
53271	return s
53272}
53273
53274type TestInvokeAuthorizerOutput struct {
53275	_ struct{} `type:"structure"`
53276
53277	// The number of seconds after which the connection is terminated.
53278	DisconnectAfterInSeconds *int64 `locationName:"disconnectAfterInSeconds" type:"integer"`
53279
53280	// True if the token is authenticated, otherwise false.
53281	IsAuthenticated *bool `locationName:"isAuthenticated" type:"boolean"`
53282
53283	// IAM policy documents.
53284	PolicyDocuments []*string `locationName:"policyDocuments" type:"list"`
53285
53286	// The principal ID.
53287	PrincipalId *string `locationName:"principalId" min:"1" type:"string"`
53288
53289	// The number of seconds after which the temporary credentials are refreshed.
53290	RefreshAfterInSeconds *int64 `locationName:"refreshAfterInSeconds" type:"integer"`
53291}
53292
53293// String returns the string representation
53294func (s TestInvokeAuthorizerOutput) String() string {
53295	return awsutil.Prettify(s)
53296}
53297
53298// GoString returns the string representation
53299func (s TestInvokeAuthorizerOutput) GoString() string {
53300	return s.String()
53301}
53302
53303// SetDisconnectAfterInSeconds sets the DisconnectAfterInSeconds field's value.
53304func (s *TestInvokeAuthorizerOutput) SetDisconnectAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
53305	s.DisconnectAfterInSeconds = &v
53306	return s
53307}
53308
53309// SetIsAuthenticated sets the IsAuthenticated field's value.
53310func (s *TestInvokeAuthorizerOutput) SetIsAuthenticated(v bool) *TestInvokeAuthorizerOutput {
53311	s.IsAuthenticated = &v
53312	return s
53313}
53314
53315// SetPolicyDocuments sets the PolicyDocuments field's value.
53316func (s *TestInvokeAuthorizerOutput) SetPolicyDocuments(v []*string) *TestInvokeAuthorizerOutput {
53317	s.PolicyDocuments = v
53318	return s
53319}
53320
53321// SetPrincipalId sets the PrincipalId field's value.
53322func (s *TestInvokeAuthorizerOutput) SetPrincipalId(v string) *TestInvokeAuthorizerOutput {
53323	s.PrincipalId = &v
53324	return s
53325}
53326
53327// SetRefreshAfterInSeconds sets the RefreshAfterInSeconds field's value.
53328func (s *TestInvokeAuthorizerOutput) SetRefreshAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
53329	s.RefreshAfterInSeconds = &v
53330	return s
53331}
53332
53333// The properties of the thing, including thing name, thing type name, and a
53334// list of thing attributes.
53335type ThingAttribute struct {
53336	_ struct{} `type:"structure"`
53337
53338	// A list of thing attributes which are name-value pairs.
53339	Attributes map[string]*string `locationName:"attributes" type:"map"`
53340
53341	// The thing ARN.
53342	ThingArn *string `locationName:"thingArn" type:"string"`
53343
53344	// The name of the thing.
53345	ThingName *string `locationName:"thingName" min:"1" type:"string"`
53346
53347	// The name of the thing type, if the thing has been associated with a type.
53348	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
53349
53350	// The version of the thing record in the registry.
53351	Version *int64 `locationName:"version" type:"long"`
53352}
53353
53354// String returns the string representation
53355func (s ThingAttribute) String() string {
53356	return awsutil.Prettify(s)
53357}
53358
53359// GoString returns the string representation
53360func (s ThingAttribute) GoString() string {
53361	return s.String()
53362}
53363
53364// SetAttributes sets the Attributes field's value.
53365func (s *ThingAttribute) SetAttributes(v map[string]*string) *ThingAttribute {
53366	s.Attributes = v
53367	return s
53368}
53369
53370// SetThingArn sets the ThingArn field's value.
53371func (s *ThingAttribute) SetThingArn(v string) *ThingAttribute {
53372	s.ThingArn = &v
53373	return s
53374}
53375
53376// SetThingName sets the ThingName field's value.
53377func (s *ThingAttribute) SetThingName(v string) *ThingAttribute {
53378	s.ThingName = &v
53379	return s
53380}
53381
53382// SetThingTypeName sets the ThingTypeName field's value.
53383func (s *ThingAttribute) SetThingTypeName(v string) *ThingAttribute {
53384	s.ThingTypeName = &v
53385	return s
53386}
53387
53388// SetVersion sets the Version field's value.
53389func (s *ThingAttribute) SetVersion(v int64) *ThingAttribute {
53390	s.Version = &v
53391	return s
53392}
53393
53394// The connectivity status of the thing.
53395type ThingConnectivity struct {
53396	_ struct{} `type:"structure"`
53397
53398	// True if the thing is connected to the AWS IoT service; false if it is not
53399	// connected.
53400	Connected *bool `locationName:"connected" type:"boolean"`
53401
53402	// The epoch time (in milliseconds) when the thing last connected or disconnected.
53403	// If the thing has been disconnected for more than a few weeks, the time value
53404	// might be missing.
53405	Timestamp *int64 `locationName:"timestamp" type:"long"`
53406}
53407
53408// String returns the string representation
53409func (s ThingConnectivity) String() string {
53410	return awsutil.Prettify(s)
53411}
53412
53413// GoString returns the string representation
53414func (s ThingConnectivity) GoString() string {
53415	return s.String()
53416}
53417
53418// SetConnected sets the Connected field's value.
53419func (s *ThingConnectivity) SetConnected(v bool) *ThingConnectivity {
53420	s.Connected = &v
53421	return s
53422}
53423
53424// SetTimestamp sets the Timestamp field's value.
53425func (s *ThingConnectivity) SetTimestamp(v int64) *ThingConnectivity {
53426	s.Timestamp = &v
53427	return s
53428}
53429
53430// The thing search index document.
53431type ThingDocument struct {
53432	_ struct{} `type:"structure"`
53433
53434	// The attributes.
53435	Attributes map[string]*string `locationName:"attributes" type:"map"`
53436
53437	// Indicates whether the thing is connected to the AWS IoT service.
53438	Connectivity *ThingConnectivity `locationName:"connectivity" type:"structure"`
53439
53440	// The shadow.
53441	Shadow *string `locationName:"shadow" type:"string"`
53442
53443	// Thing group names.
53444	ThingGroupNames []*string `locationName:"thingGroupNames" type:"list"`
53445
53446	// The thing ID.
53447	ThingId *string `locationName:"thingId" type:"string"`
53448
53449	// The thing name.
53450	ThingName *string `locationName:"thingName" min:"1" type:"string"`
53451
53452	// The thing type name.
53453	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
53454}
53455
53456// String returns the string representation
53457func (s ThingDocument) String() string {
53458	return awsutil.Prettify(s)
53459}
53460
53461// GoString returns the string representation
53462func (s ThingDocument) GoString() string {
53463	return s.String()
53464}
53465
53466// SetAttributes sets the Attributes field's value.
53467func (s *ThingDocument) SetAttributes(v map[string]*string) *ThingDocument {
53468	s.Attributes = v
53469	return s
53470}
53471
53472// SetConnectivity sets the Connectivity field's value.
53473func (s *ThingDocument) SetConnectivity(v *ThingConnectivity) *ThingDocument {
53474	s.Connectivity = v
53475	return s
53476}
53477
53478// SetShadow sets the Shadow field's value.
53479func (s *ThingDocument) SetShadow(v string) *ThingDocument {
53480	s.Shadow = &v
53481	return s
53482}
53483
53484// SetThingGroupNames sets the ThingGroupNames field's value.
53485func (s *ThingDocument) SetThingGroupNames(v []*string) *ThingDocument {
53486	s.ThingGroupNames = v
53487	return s
53488}
53489
53490// SetThingId sets the ThingId field's value.
53491func (s *ThingDocument) SetThingId(v string) *ThingDocument {
53492	s.ThingId = &v
53493	return s
53494}
53495
53496// SetThingName sets the ThingName field's value.
53497func (s *ThingDocument) SetThingName(v string) *ThingDocument {
53498	s.ThingName = &v
53499	return s
53500}
53501
53502// SetThingTypeName sets the ThingTypeName field's value.
53503func (s *ThingDocument) SetThingTypeName(v string) *ThingDocument {
53504	s.ThingTypeName = &v
53505	return s
53506}
53507
53508// The thing group search index document.
53509type ThingGroupDocument struct {
53510	_ struct{} `type:"structure"`
53511
53512	// The thing group attributes.
53513	Attributes map[string]*string `locationName:"attributes" type:"map"`
53514
53515	// Parent group names.
53516	ParentGroupNames []*string `locationName:"parentGroupNames" type:"list"`
53517
53518	// The thing group description.
53519	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
53520
53521	// The thing group ID.
53522	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
53523
53524	// The thing group name.
53525	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
53526}
53527
53528// String returns the string representation
53529func (s ThingGroupDocument) String() string {
53530	return awsutil.Prettify(s)
53531}
53532
53533// GoString returns the string representation
53534func (s ThingGroupDocument) GoString() string {
53535	return s.String()
53536}
53537
53538// SetAttributes sets the Attributes field's value.
53539func (s *ThingGroupDocument) SetAttributes(v map[string]*string) *ThingGroupDocument {
53540	s.Attributes = v
53541	return s
53542}
53543
53544// SetParentGroupNames sets the ParentGroupNames field's value.
53545func (s *ThingGroupDocument) SetParentGroupNames(v []*string) *ThingGroupDocument {
53546	s.ParentGroupNames = v
53547	return s
53548}
53549
53550// SetThingGroupDescription sets the ThingGroupDescription field's value.
53551func (s *ThingGroupDocument) SetThingGroupDescription(v string) *ThingGroupDocument {
53552	s.ThingGroupDescription = &v
53553	return s
53554}
53555
53556// SetThingGroupId sets the ThingGroupId field's value.
53557func (s *ThingGroupDocument) SetThingGroupId(v string) *ThingGroupDocument {
53558	s.ThingGroupId = &v
53559	return s
53560}
53561
53562// SetThingGroupName sets the ThingGroupName field's value.
53563func (s *ThingGroupDocument) SetThingGroupName(v string) *ThingGroupDocument {
53564	s.ThingGroupName = &v
53565	return s
53566}
53567
53568// Thing group indexing configuration.
53569type ThingGroupIndexingConfiguration struct {
53570	_ struct{} `type:"structure"`
53571
53572	// A list of thing group fields to index. This list cannot contain any managed
53573	// fields. Use the GetIndexingConfiguration API to get a list of managed fields.
53574	//
53575	// Contains custom field names and their data type.
53576	CustomFields []*Field `locationName:"customFields" type:"list"`
53577
53578	// Contains fields that are indexed and whose types are already known by the
53579	// Fleet Indexing service.
53580	ManagedFields []*Field `locationName:"managedFields" type:"list"`
53581
53582	// Thing group indexing mode.
53583	//
53584	// ThingGroupIndexingMode is a required field
53585	ThingGroupIndexingMode *string `locationName:"thingGroupIndexingMode" type:"string" required:"true" enum:"ThingGroupIndexingMode"`
53586}
53587
53588// String returns the string representation
53589func (s ThingGroupIndexingConfiguration) String() string {
53590	return awsutil.Prettify(s)
53591}
53592
53593// GoString returns the string representation
53594func (s ThingGroupIndexingConfiguration) GoString() string {
53595	return s.String()
53596}
53597
53598// Validate inspects the fields of the type to determine if they are valid.
53599func (s *ThingGroupIndexingConfiguration) Validate() error {
53600	invalidParams := request.ErrInvalidParams{Context: "ThingGroupIndexingConfiguration"}
53601	if s.ThingGroupIndexingMode == nil {
53602		invalidParams.Add(request.NewErrParamRequired("ThingGroupIndexingMode"))
53603	}
53604
53605	if invalidParams.Len() > 0 {
53606		return invalidParams
53607	}
53608	return nil
53609}
53610
53611// SetCustomFields sets the CustomFields field's value.
53612func (s *ThingGroupIndexingConfiguration) SetCustomFields(v []*Field) *ThingGroupIndexingConfiguration {
53613	s.CustomFields = v
53614	return s
53615}
53616
53617// SetManagedFields sets the ManagedFields field's value.
53618func (s *ThingGroupIndexingConfiguration) SetManagedFields(v []*Field) *ThingGroupIndexingConfiguration {
53619	s.ManagedFields = v
53620	return s
53621}
53622
53623// SetThingGroupIndexingMode sets the ThingGroupIndexingMode field's value.
53624func (s *ThingGroupIndexingConfiguration) SetThingGroupIndexingMode(v string) *ThingGroupIndexingConfiguration {
53625	s.ThingGroupIndexingMode = &v
53626	return s
53627}
53628
53629// Thing group metadata.
53630type ThingGroupMetadata struct {
53631	_ struct{} `type:"structure"`
53632
53633	// The UNIX timestamp of when the thing group was created.
53634	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
53635
53636	// The parent thing group name.
53637	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
53638
53639	// The root parent thing group.
53640	RootToParentThingGroups []*GroupNameAndArn `locationName:"rootToParentThingGroups" type:"list"`
53641}
53642
53643// String returns the string representation
53644func (s ThingGroupMetadata) String() string {
53645	return awsutil.Prettify(s)
53646}
53647
53648// GoString returns the string representation
53649func (s ThingGroupMetadata) GoString() string {
53650	return s.String()
53651}
53652
53653// SetCreationDate sets the CreationDate field's value.
53654func (s *ThingGroupMetadata) SetCreationDate(v time.Time) *ThingGroupMetadata {
53655	s.CreationDate = &v
53656	return s
53657}
53658
53659// SetParentGroupName sets the ParentGroupName field's value.
53660func (s *ThingGroupMetadata) SetParentGroupName(v string) *ThingGroupMetadata {
53661	s.ParentGroupName = &v
53662	return s
53663}
53664
53665// SetRootToParentThingGroups sets the RootToParentThingGroups field's value.
53666func (s *ThingGroupMetadata) SetRootToParentThingGroups(v []*GroupNameAndArn) *ThingGroupMetadata {
53667	s.RootToParentThingGroups = v
53668	return s
53669}
53670
53671// Thing group properties.
53672type ThingGroupProperties struct {
53673	_ struct{} `type:"structure"`
53674
53675	// The thing group attributes in JSON format.
53676	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
53677
53678	// The thing group description.
53679	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
53680}
53681
53682// String returns the string representation
53683func (s ThingGroupProperties) String() string {
53684	return awsutil.Prettify(s)
53685}
53686
53687// GoString returns the string representation
53688func (s ThingGroupProperties) GoString() string {
53689	return s.String()
53690}
53691
53692// SetAttributePayload sets the AttributePayload field's value.
53693func (s *ThingGroupProperties) SetAttributePayload(v *AttributePayload) *ThingGroupProperties {
53694	s.AttributePayload = v
53695	return s
53696}
53697
53698// SetThingGroupDescription sets the ThingGroupDescription field's value.
53699func (s *ThingGroupProperties) SetThingGroupDescription(v string) *ThingGroupProperties {
53700	s.ThingGroupDescription = &v
53701	return s
53702}
53703
53704// The thing indexing configuration. For more information, see Managing Thing
53705// Indexing (https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html).
53706type ThingIndexingConfiguration struct {
53707	_ struct{} `type:"structure"`
53708
53709	// Contains custom field names and their data type.
53710	CustomFields []*Field `locationName:"customFields" type:"list"`
53711
53712	// Contains fields that are indexed and whose types are already known by the
53713	// Fleet Indexing service.
53714	ManagedFields []*Field `locationName:"managedFields" type:"list"`
53715
53716	// Thing connectivity indexing mode. Valid values are:
53717	//
53718	//    * STATUS – Your thing index contains connectivity status. To enable
53719	//    thing connectivity indexing, thingIndexMode must not be set to OFF.
53720	//
53721	//    * OFF - Thing connectivity status indexing is disabled.
53722	ThingConnectivityIndexingMode *string `locationName:"thingConnectivityIndexingMode" type:"string" enum:"ThingConnectivityIndexingMode"`
53723
53724	// Thing indexing mode. Valid values are:
53725	//
53726	//    * REGISTRY – Your thing index contains registry data only.
53727	//
53728	//    * REGISTRY_AND_SHADOW - Your thing index contains registry and shadow
53729	//    data.
53730	//
53731	//    * OFF - Thing indexing is disabled.
53732	//
53733	// ThingIndexingMode is a required field
53734	ThingIndexingMode *string `locationName:"thingIndexingMode" type:"string" required:"true" enum:"ThingIndexingMode"`
53735}
53736
53737// String returns the string representation
53738func (s ThingIndexingConfiguration) String() string {
53739	return awsutil.Prettify(s)
53740}
53741
53742// GoString returns the string representation
53743func (s ThingIndexingConfiguration) GoString() string {
53744	return s.String()
53745}
53746
53747// Validate inspects the fields of the type to determine if they are valid.
53748func (s *ThingIndexingConfiguration) Validate() error {
53749	invalidParams := request.ErrInvalidParams{Context: "ThingIndexingConfiguration"}
53750	if s.ThingIndexingMode == nil {
53751		invalidParams.Add(request.NewErrParamRequired("ThingIndexingMode"))
53752	}
53753
53754	if invalidParams.Len() > 0 {
53755		return invalidParams
53756	}
53757	return nil
53758}
53759
53760// SetCustomFields sets the CustomFields field's value.
53761func (s *ThingIndexingConfiguration) SetCustomFields(v []*Field) *ThingIndexingConfiguration {
53762	s.CustomFields = v
53763	return s
53764}
53765
53766// SetManagedFields sets the ManagedFields field's value.
53767func (s *ThingIndexingConfiguration) SetManagedFields(v []*Field) *ThingIndexingConfiguration {
53768	s.ManagedFields = v
53769	return s
53770}
53771
53772// SetThingConnectivityIndexingMode sets the ThingConnectivityIndexingMode field's value.
53773func (s *ThingIndexingConfiguration) SetThingConnectivityIndexingMode(v string) *ThingIndexingConfiguration {
53774	s.ThingConnectivityIndexingMode = &v
53775	return s
53776}
53777
53778// SetThingIndexingMode sets the ThingIndexingMode field's value.
53779func (s *ThingIndexingConfiguration) SetThingIndexingMode(v string) *ThingIndexingConfiguration {
53780	s.ThingIndexingMode = &v
53781	return s
53782}
53783
53784// The definition of the thing type, including thing type name and description.
53785type ThingTypeDefinition struct {
53786	_ struct{} `type:"structure"`
53787
53788	// The thing type ARN.
53789	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
53790
53791	// The ThingTypeMetadata contains additional information about the thing type
53792	// including: creation date and time, a value indicating whether the thing type
53793	// is deprecated, and a date and time when it was deprecated.
53794	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
53795
53796	// The name of the thing type.
53797	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
53798
53799	// The ThingTypeProperties for the thing type.
53800	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
53801}
53802
53803// String returns the string representation
53804func (s ThingTypeDefinition) String() string {
53805	return awsutil.Prettify(s)
53806}
53807
53808// GoString returns the string representation
53809func (s ThingTypeDefinition) GoString() string {
53810	return s.String()
53811}
53812
53813// SetThingTypeArn sets the ThingTypeArn field's value.
53814func (s *ThingTypeDefinition) SetThingTypeArn(v string) *ThingTypeDefinition {
53815	s.ThingTypeArn = &v
53816	return s
53817}
53818
53819// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
53820func (s *ThingTypeDefinition) SetThingTypeMetadata(v *ThingTypeMetadata) *ThingTypeDefinition {
53821	s.ThingTypeMetadata = v
53822	return s
53823}
53824
53825// SetThingTypeName sets the ThingTypeName field's value.
53826func (s *ThingTypeDefinition) SetThingTypeName(v string) *ThingTypeDefinition {
53827	s.ThingTypeName = &v
53828	return s
53829}
53830
53831// SetThingTypeProperties sets the ThingTypeProperties field's value.
53832func (s *ThingTypeDefinition) SetThingTypeProperties(v *ThingTypeProperties) *ThingTypeDefinition {
53833	s.ThingTypeProperties = v
53834	return s
53835}
53836
53837// The ThingTypeMetadata contains additional information about the thing type
53838// including: creation date and time, a value indicating whether the thing type
53839// is deprecated, and a date and time when time was deprecated.
53840type ThingTypeMetadata struct {
53841	_ struct{} `type:"structure"`
53842
53843	// The date and time when the thing type was created.
53844	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
53845
53846	// Whether the thing type is deprecated. If true, no new things could be associated
53847	// with this type.
53848	Deprecated *bool `locationName:"deprecated" type:"boolean"`
53849
53850	// The date and time when the thing type was deprecated.
53851	DeprecationDate *time.Time `locationName:"deprecationDate" type:"timestamp"`
53852}
53853
53854// String returns the string representation
53855func (s ThingTypeMetadata) String() string {
53856	return awsutil.Prettify(s)
53857}
53858
53859// GoString returns the string representation
53860func (s ThingTypeMetadata) GoString() string {
53861	return s.String()
53862}
53863
53864// SetCreationDate sets the CreationDate field's value.
53865func (s *ThingTypeMetadata) SetCreationDate(v time.Time) *ThingTypeMetadata {
53866	s.CreationDate = &v
53867	return s
53868}
53869
53870// SetDeprecated sets the Deprecated field's value.
53871func (s *ThingTypeMetadata) SetDeprecated(v bool) *ThingTypeMetadata {
53872	s.Deprecated = &v
53873	return s
53874}
53875
53876// SetDeprecationDate sets the DeprecationDate field's value.
53877func (s *ThingTypeMetadata) SetDeprecationDate(v time.Time) *ThingTypeMetadata {
53878	s.DeprecationDate = &v
53879	return s
53880}
53881
53882// The ThingTypeProperties contains information about the thing type including:
53883// a thing type description, and a list of searchable thing attribute names.
53884type ThingTypeProperties struct {
53885	_ struct{} `type:"structure"`
53886
53887	// A list of searchable thing attribute names.
53888	SearchableAttributes []*string `locationName:"searchableAttributes" type:"list"`
53889
53890	// The description of the thing type.
53891	ThingTypeDescription *string `locationName:"thingTypeDescription" type:"string"`
53892}
53893
53894// String returns the string representation
53895func (s ThingTypeProperties) String() string {
53896	return awsutil.Prettify(s)
53897}
53898
53899// GoString returns the string representation
53900func (s ThingTypeProperties) GoString() string {
53901	return s.String()
53902}
53903
53904// SetSearchableAttributes sets the SearchableAttributes field's value.
53905func (s *ThingTypeProperties) SetSearchableAttributes(v []*string) *ThingTypeProperties {
53906	s.SearchableAttributes = v
53907	return s
53908}
53909
53910// SetThingTypeDescription sets the ThingTypeDescription field's value.
53911func (s *ThingTypeProperties) SetThingTypeDescription(v string) *ThingTypeProperties {
53912	s.ThingTypeDescription = &v
53913	return s
53914}
53915
53916// The rate exceeds the limit.
53917type ThrottlingException struct {
53918	_            struct{}                  `type:"structure"`
53919	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
53920
53921	// The message for the exception.
53922	Message_ *string `locationName:"message" type:"string"`
53923}
53924
53925// String returns the string representation
53926func (s ThrottlingException) String() string {
53927	return awsutil.Prettify(s)
53928}
53929
53930// GoString returns the string representation
53931func (s ThrottlingException) GoString() string {
53932	return s.String()
53933}
53934
53935func newErrorThrottlingException(v protocol.ResponseMetadata) error {
53936	return &ThrottlingException{
53937		RespMetadata: v,
53938	}
53939}
53940
53941// Code returns the exception type name.
53942func (s *ThrottlingException) Code() string {
53943	return "ThrottlingException"
53944}
53945
53946// Message returns the exception's message.
53947func (s *ThrottlingException) Message() string {
53948	if s.Message_ != nil {
53949		return *s.Message_
53950	}
53951	return ""
53952}
53953
53954// OrigErr always returns nil, satisfies awserr.Error interface.
53955func (s *ThrottlingException) OrigErr() error {
53956	return nil
53957}
53958
53959func (s *ThrottlingException) Error() string {
53960	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
53961}
53962
53963// Status code returns the HTTP status code for the request's response error.
53964func (s *ThrottlingException) StatusCode() int {
53965	return s.RespMetadata.StatusCode
53966}
53967
53968// RequestID returns the service's response RequestID for request.
53969func (s *ThrottlingException) RequestID() string {
53970	return s.RespMetadata.RequestID
53971}
53972
53973// Specifies the amount of time each device has to finish its execution of the
53974// job. A timer is started when the job execution status is set to IN_PROGRESS.
53975// If the job execution status is not set to another terminal state before the
53976// timer expires, it will be automatically set to TIMED_OUT.
53977type TimeoutConfig struct {
53978	_ struct{} `type:"structure"`
53979
53980	// Specifies the amount of time, in minutes, this device has to finish execution
53981	// of this job. The timeout interval can be anywhere between 1 minute and 7
53982	// days (1 to 10080 minutes). The in progress timer can't be updated and will
53983	// apply to all job executions for the job. Whenever a job execution remains
53984	// in the IN_PROGRESS status for longer than this interval, the job execution
53985	// will fail and switch to the terminal TIMED_OUT status.
53986	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
53987}
53988
53989// String returns the string representation
53990func (s TimeoutConfig) String() string {
53991	return awsutil.Prettify(s)
53992}
53993
53994// GoString returns the string representation
53995func (s TimeoutConfig) GoString() string {
53996	return s.String()
53997}
53998
53999// SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
54000func (s *TimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *TimeoutConfig {
54001	s.InProgressTimeoutInMinutes = &v
54002	return s
54003}
54004
54005// The Timestream rule action writes attributes (measures) from an MQTT message
54006// into an Amazon Timestream table. For more information, see the Timestream
54007// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
54008// topic rule action documentation.
54009type TimestreamAction struct {
54010	_ struct{} `type:"structure"`
54011
54012	// The name of an Amazon Timestream database.
54013	//
54014	// DatabaseName is a required field
54015	DatabaseName *string `locationName:"databaseName" type:"string" required:"true"`
54016
54017	// Metadata attributes of the time series that are written in each measure record.
54018	//
54019	// Dimensions is a required field
54020	Dimensions []*TimestreamDimension `locationName:"dimensions" min:"1" type:"list" required:"true"`
54021
54022	// The ARN of the role that grants permission to write to the Amazon Timestream
54023	// database table.
54024	//
54025	// RoleArn is a required field
54026	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
54027
54028	// The name of the database table into which to write the measure records.
54029	//
54030	// TableName is a required field
54031	TableName *string `locationName:"tableName" type:"string" required:"true"`
54032
54033	// Specifies an application-defined value to replace the default value assigned
54034	// to the Timestream record's timestamp in the time column.
54035	//
54036	// You can use this property to specify the value and the precision of the Timestream
54037	// record's timestamp. You can specify a value from the message payload or a
54038	// value computed by a substitution template.
54039	//
54040	// If omitted, the topic rule action assigns the timestamp, in milliseconds,
54041	// at the time it processed the rule.
54042	Timestamp *TimestreamTimestamp `locationName:"timestamp" type:"structure"`
54043}
54044
54045// String returns the string representation
54046func (s TimestreamAction) String() string {
54047	return awsutil.Prettify(s)
54048}
54049
54050// GoString returns the string representation
54051func (s TimestreamAction) GoString() string {
54052	return s.String()
54053}
54054
54055// Validate inspects the fields of the type to determine if they are valid.
54056func (s *TimestreamAction) Validate() error {
54057	invalidParams := request.ErrInvalidParams{Context: "TimestreamAction"}
54058	if s.DatabaseName == nil {
54059		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
54060	}
54061	if s.Dimensions == nil {
54062		invalidParams.Add(request.NewErrParamRequired("Dimensions"))
54063	}
54064	if s.Dimensions != nil && len(s.Dimensions) < 1 {
54065		invalidParams.Add(request.NewErrParamMinLen("Dimensions", 1))
54066	}
54067	if s.RoleArn == nil {
54068		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
54069	}
54070	if s.TableName == nil {
54071		invalidParams.Add(request.NewErrParamRequired("TableName"))
54072	}
54073	if s.Dimensions != nil {
54074		for i, v := range s.Dimensions {
54075			if v == nil {
54076				continue
54077			}
54078			if err := v.Validate(); err != nil {
54079				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
54080			}
54081		}
54082	}
54083	if s.Timestamp != nil {
54084		if err := s.Timestamp.Validate(); err != nil {
54085			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
54086		}
54087	}
54088
54089	if invalidParams.Len() > 0 {
54090		return invalidParams
54091	}
54092	return nil
54093}
54094
54095// SetDatabaseName sets the DatabaseName field's value.
54096func (s *TimestreamAction) SetDatabaseName(v string) *TimestreamAction {
54097	s.DatabaseName = &v
54098	return s
54099}
54100
54101// SetDimensions sets the Dimensions field's value.
54102func (s *TimestreamAction) SetDimensions(v []*TimestreamDimension) *TimestreamAction {
54103	s.Dimensions = v
54104	return s
54105}
54106
54107// SetRoleArn sets the RoleArn field's value.
54108func (s *TimestreamAction) SetRoleArn(v string) *TimestreamAction {
54109	s.RoleArn = &v
54110	return s
54111}
54112
54113// SetTableName sets the TableName field's value.
54114func (s *TimestreamAction) SetTableName(v string) *TimestreamAction {
54115	s.TableName = &v
54116	return s
54117}
54118
54119// SetTimestamp sets the Timestamp field's value.
54120func (s *TimestreamAction) SetTimestamp(v *TimestreamTimestamp) *TimestreamAction {
54121	s.Timestamp = v
54122	return s
54123}
54124
54125// Metadata attributes of the time series that are written in each measure record.
54126type TimestreamDimension struct {
54127	_ struct{} `type:"structure"`
54128
54129	// The metadata dimension name. This is the name of the column in the Amazon
54130	// Timestream database table record.
54131	//
54132	// Dimensions cannot be named: measure_name, measure_value, or time. These names
54133	// are reserved. Dimension names cannot start with ts_ or measure_value and
54134	// they cannot contain the colon (:) character.
54135	//
54136	// Name is a required field
54137	Name *string `locationName:"name" type:"string" required:"true"`
54138
54139	// The value to write in this column of the database record.
54140	//
54141	// Value is a required field
54142	Value *string `locationName:"value" type:"string" required:"true"`
54143}
54144
54145// String returns the string representation
54146func (s TimestreamDimension) String() string {
54147	return awsutil.Prettify(s)
54148}
54149
54150// GoString returns the string representation
54151func (s TimestreamDimension) GoString() string {
54152	return s.String()
54153}
54154
54155// Validate inspects the fields of the type to determine if they are valid.
54156func (s *TimestreamDimension) Validate() error {
54157	invalidParams := request.ErrInvalidParams{Context: "TimestreamDimension"}
54158	if s.Name == nil {
54159		invalidParams.Add(request.NewErrParamRequired("Name"))
54160	}
54161	if s.Value == nil {
54162		invalidParams.Add(request.NewErrParamRequired("Value"))
54163	}
54164
54165	if invalidParams.Len() > 0 {
54166		return invalidParams
54167	}
54168	return nil
54169}
54170
54171// SetName sets the Name field's value.
54172func (s *TimestreamDimension) SetName(v string) *TimestreamDimension {
54173	s.Name = &v
54174	return s
54175}
54176
54177// SetValue sets the Value field's value.
54178func (s *TimestreamDimension) SetValue(v string) *TimestreamDimension {
54179	s.Value = &v
54180	return s
54181}
54182
54183// Describes how to interpret an application-defined timestamp value from an
54184// MQTT message payload and the precision of that value.
54185type TimestreamTimestamp struct {
54186	_ struct{} `type:"structure"`
54187
54188	// The precision of the timestamp value that results from the expression described
54189	// in value.
54190	//
54191	// Valid values: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. The default
54192	// is MILLISECONDS.
54193	//
54194	// Unit is a required field
54195	Unit *string `locationName:"unit" type:"string" required:"true"`
54196
54197	// An expression that returns a long epoch time value.
54198	//
54199	// Value is a required field
54200	Value *string `locationName:"value" type:"string" required:"true"`
54201}
54202
54203// String returns the string representation
54204func (s TimestreamTimestamp) String() string {
54205	return awsutil.Prettify(s)
54206}
54207
54208// GoString returns the string representation
54209func (s TimestreamTimestamp) GoString() string {
54210	return s.String()
54211}
54212
54213// Validate inspects the fields of the type to determine if they are valid.
54214func (s *TimestreamTimestamp) Validate() error {
54215	invalidParams := request.ErrInvalidParams{Context: "TimestreamTimestamp"}
54216	if s.Unit == nil {
54217		invalidParams.Add(request.NewErrParamRequired("Unit"))
54218	}
54219	if s.Value == nil {
54220		invalidParams.Add(request.NewErrParamRequired("Value"))
54221	}
54222
54223	if invalidParams.Len() > 0 {
54224		return invalidParams
54225	}
54226	return nil
54227}
54228
54229// SetUnit sets the Unit field's value.
54230func (s *TimestreamTimestamp) SetUnit(v string) *TimestreamTimestamp {
54231	s.Unit = &v
54232	return s
54233}
54234
54235// SetValue sets the Value field's value.
54236func (s *TimestreamTimestamp) SetValue(v string) *TimestreamTimestamp {
54237	s.Value = &v
54238	return s
54239}
54240
54241// Specifies the TLS context to use for the test authorizer request.
54242type TlsContext struct {
54243	_ struct{} `type:"structure"`
54244
54245	// The value of the serverName key in a TLS authorization request.
54246	ServerName *string `locationName:"serverName" min:"1" type:"string"`
54247}
54248
54249// String returns the string representation
54250func (s TlsContext) String() string {
54251	return awsutil.Prettify(s)
54252}
54253
54254// GoString returns the string representation
54255func (s TlsContext) GoString() string {
54256	return s.String()
54257}
54258
54259// Validate inspects the fields of the type to determine if they are valid.
54260func (s *TlsContext) Validate() error {
54261	invalidParams := request.ErrInvalidParams{Context: "TlsContext"}
54262	if s.ServerName != nil && len(*s.ServerName) < 1 {
54263		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
54264	}
54265
54266	if invalidParams.Len() > 0 {
54267		return invalidParams
54268	}
54269	return nil
54270}
54271
54272// SetServerName sets the ServerName field's value.
54273func (s *TlsContext) SetServerName(v string) *TlsContext {
54274	s.ServerName = &v
54275	return s
54276}
54277
54278// Describes a rule.
54279type TopicRule struct {
54280	_ struct{} `type:"structure"`
54281
54282	// The actions associated with the rule.
54283	Actions []*Action `locationName:"actions" type:"list"`
54284
54285	// The version of the SQL rules engine to use when evaluating the rule.
54286	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
54287
54288	// The date and time the rule was created.
54289	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
54290
54291	// The description of the rule.
54292	Description *string `locationName:"description" type:"string"`
54293
54294	// The action to perform when an error occurs.
54295	ErrorAction *Action `locationName:"errorAction" type:"structure"`
54296
54297	// Specifies whether the rule is disabled.
54298	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
54299
54300	// The name of the rule.
54301	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
54302
54303	// The SQL statement used to query the topic. When using a SQL query with multiple
54304	// lines, be sure to escape the newline characters.
54305	Sql *string `locationName:"sql" type:"string"`
54306}
54307
54308// String returns the string representation
54309func (s TopicRule) String() string {
54310	return awsutil.Prettify(s)
54311}
54312
54313// GoString returns the string representation
54314func (s TopicRule) GoString() string {
54315	return s.String()
54316}
54317
54318// SetActions sets the Actions field's value.
54319func (s *TopicRule) SetActions(v []*Action) *TopicRule {
54320	s.Actions = v
54321	return s
54322}
54323
54324// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
54325func (s *TopicRule) SetAwsIotSqlVersion(v string) *TopicRule {
54326	s.AwsIotSqlVersion = &v
54327	return s
54328}
54329
54330// SetCreatedAt sets the CreatedAt field's value.
54331func (s *TopicRule) SetCreatedAt(v time.Time) *TopicRule {
54332	s.CreatedAt = &v
54333	return s
54334}
54335
54336// SetDescription sets the Description field's value.
54337func (s *TopicRule) SetDescription(v string) *TopicRule {
54338	s.Description = &v
54339	return s
54340}
54341
54342// SetErrorAction sets the ErrorAction field's value.
54343func (s *TopicRule) SetErrorAction(v *Action) *TopicRule {
54344	s.ErrorAction = v
54345	return s
54346}
54347
54348// SetRuleDisabled sets the RuleDisabled field's value.
54349func (s *TopicRule) SetRuleDisabled(v bool) *TopicRule {
54350	s.RuleDisabled = &v
54351	return s
54352}
54353
54354// SetRuleName sets the RuleName field's value.
54355func (s *TopicRule) SetRuleName(v string) *TopicRule {
54356	s.RuleName = &v
54357	return s
54358}
54359
54360// SetSql sets the Sql field's value.
54361func (s *TopicRule) SetSql(v string) *TopicRule {
54362	s.Sql = &v
54363	return s
54364}
54365
54366// A topic rule destination.
54367type TopicRuleDestination struct {
54368	_ struct{} `type:"structure"`
54369
54370	// The topic rule destination URL.
54371	Arn *string `locationName:"arn" type:"string"`
54372
54373	// The date and time when the topic rule destination was created.
54374	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
54375
54376	// Properties of the HTTP URL.
54377	HttpUrlProperties *HttpUrlDestinationProperties `locationName:"httpUrlProperties" type:"structure"`
54378
54379	// The date and time when the topic rule destination was last updated.
54380	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
54381
54382	// The status of the topic rule destination. Valid values are:
54383	//
54384	// IN_PROGRESS
54385	//
54386	// A topic rule destination was created but has not been confirmed. You can
54387	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
54388	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
54389	// to your confirmation endpoint.
54390	//
54391	// ENABLED
54392	//
54393	// Confirmation was completed, and traffic to this destination is allowed. You
54394	// can set status to DISABLED by calling UpdateTopicRuleDestination.
54395	//
54396	// DISABLED
54397	//
54398	// Confirmation was completed, and traffic to this destination is not allowed.
54399	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
54400	//
54401	// ERROR
54402	//
54403	// Confirmation could not be completed, for example if the confirmation timed
54404	// out. You can call GetTopicRuleDestination for details about the error. You
54405	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
54406	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
54407	// to your confirmation endpoint.
54408	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
54409
54410	// Additional details or reason why the topic rule destination is in the current
54411	// status.
54412	StatusReason *string `locationName:"statusReason" type:"string"`
54413
54414	// Properties of the virtual private cloud (VPC) connection.
54415	VpcProperties *VpcDestinationProperties `locationName:"vpcProperties" type:"structure"`
54416}
54417
54418// String returns the string representation
54419func (s TopicRuleDestination) String() string {
54420	return awsutil.Prettify(s)
54421}
54422
54423// GoString returns the string representation
54424func (s TopicRuleDestination) GoString() string {
54425	return s.String()
54426}
54427
54428// SetArn sets the Arn field's value.
54429func (s *TopicRuleDestination) SetArn(v string) *TopicRuleDestination {
54430	s.Arn = &v
54431	return s
54432}
54433
54434// SetCreatedAt sets the CreatedAt field's value.
54435func (s *TopicRuleDestination) SetCreatedAt(v time.Time) *TopicRuleDestination {
54436	s.CreatedAt = &v
54437	return s
54438}
54439
54440// SetHttpUrlProperties sets the HttpUrlProperties field's value.
54441func (s *TopicRuleDestination) SetHttpUrlProperties(v *HttpUrlDestinationProperties) *TopicRuleDestination {
54442	s.HttpUrlProperties = v
54443	return s
54444}
54445
54446// SetLastUpdatedAt sets the LastUpdatedAt field's value.
54447func (s *TopicRuleDestination) SetLastUpdatedAt(v time.Time) *TopicRuleDestination {
54448	s.LastUpdatedAt = &v
54449	return s
54450}
54451
54452// SetStatus sets the Status field's value.
54453func (s *TopicRuleDestination) SetStatus(v string) *TopicRuleDestination {
54454	s.Status = &v
54455	return s
54456}
54457
54458// SetStatusReason sets the StatusReason field's value.
54459func (s *TopicRuleDestination) SetStatusReason(v string) *TopicRuleDestination {
54460	s.StatusReason = &v
54461	return s
54462}
54463
54464// SetVpcProperties sets the VpcProperties field's value.
54465func (s *TopicRuleDestination) SetVpcProperties(v *VpcDestinationProperties) *TopicRuleDestination {
54466	s.VpcProperties = v
54467	return s
54468}
54469
54470// Configuration of the topic rule destination.
54471type TopicRuleDestinationConfiguration struct {
54472	_ struct{} `type:"structure"`
54473
54474	// Configuration of the HTTP URL.
54475	HttpUrlConfiguration *HttpUrlDestinationConfiguration `locationName:"httpUrlConfiguration" type:"structure"`
54476
54477	// Configuration of the virtual private cloud (VPC) connection.
54478	VpcConfiguration *VpcDestinationConfiguration `locationName:"vpcConfiguration" type:"structure"`
54479}
54480
54481// String returns the string representation
54482func (s TopicRuleDestinationConfiguration) String() string {
54483	return awsutil.Prettify(s)
54484}
54485
54486// GoString returns the string representation
54487func (s TopicRuleDestinationConfiguration) GoString() string {
54488	return s.String()
54489}
54490
54491// Validate inspects the fields of the type to determine if they are valid.
54492func (s *TopicRuleDestinationConfiguration) Validate() error {
54493	invalidParams := request.ErrInvalidParams{Context: "TopicRuleDestinationConfiguration"}
54494	if s.HttpUrlConfiguration != nil {
54495		if err := s.HttpUrlConfiguration.Validate(); err != nil {
54496			invalidParams.AddNested("HttpUrlConfiguration", err.(request.ErrInvalidParams))
54497		}
54498	}
54499	if s.VpcConfiguration != nil {
54500		if err := s.VpcConfiguration.Validate(); err != nil {
54501			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
54502		}
54503	}
54504
54505	if invalidParams.Len() > 0 {
54506		return invalidParams
54507	}
54508	return nil
54509}
54510
54511// SetHttpUrlConfiguration sets the HttpUrlConfiguration field's value.
54512func (s *TopicRuleDestinationConfiguration) SetHttpUrlConfiguration(v *HttpUrlDestinationConfiguration) *TopicRuleDestinationConfiguration {
54513	s.HttpUrlConfiguration = v
54514	return s
54515}
54516
54517// SetVpcConfiguration sets the VpcConfiguration field's value.
54518func (s *TopicRuleDestinationConfiguration) SetVpcConfiguration(v *VpcDestinationConfiguration) *TopicRuleDestinationConfiguration {
54519	s.VpcConfiguration = v
54520	return s
54521}
54522
54523// Information about the topic rule destination.
54524type TopicRuleDestinationSummary struct {
54525	_ struct{} `type:"structure"`
54526
54527	// The topic rule destination ARN.
54528	Arn *string `locationName:"arn" type:"string"`
54529
54530	// The date and time when the topic rule destination was created.
54531	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
54532
54533	// Information about the HTTP URL.
54534	HttpUrlSummary *HttpUrlDestinationSummary `locationName:"httpUrlSummary" type:"structure"`
54535
54536	// The date and time when the topic rule destination was last updated.
54537	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
54538
54539	// The status of the topic rule destination. Valid values are:
54540	//
54541	// IN_PROGRESS
54542	//
54543	// A topic rule destination was created but has not been confirmed. You can
54544	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
54545	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
54546	// to your confirmation endpoint.
54547	//
54548	// ENABLED
54549	//
54550	// Confirmation was completed, and traffic to this destination is allowed. You
54551	// can set status to DISABLED by calling UpdateTopicRuleDestination.
54552	//
54553	// DISABLED
54554	//
54555	// Confirmation was completed, and traffic to this destination is not allowed.
54556	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
54557	//
54558	// ERROR
54559	//
54560	// Confirmation could not be completed, for example if the confirmation timed
54561	// out. You can call GetTopicRuleDestination for details about the error. You
54562	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
54563	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
54564	// to your confirmation endpoint.
54565	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
54566
54567	// The reason the topic rule destination is in the current status.
54568	StatusReason *string `locationName:"statusReason" type:"string"`
54569
54570	// Information about the virtual private cloud (VPC) connection.
54571	VpcDestinationSummary *VpcDestinationSummary `locationName:"vpcDestinationSummary" type:"structure"`
54572}
54573
54574// String returns the string representation
54575func (s TopicRuleDestinationSummary) String() string {
54576	return awsutil.Prettify(s)
54577}
54578
54579// GoString returns the string representation
54580func (s TopicRuleDestinationSummary) GoString() string {
54581	return s.String()
54582}
54583
54584// SetArn sets the Arn field's value.
54585func (s *TopicRuleDestinationSummary) SetArn(v string) *TopicRuleDestinationSummary {
54586	s.Arn = &v
54587	return s
54588}
54589
54590// SetCreatedAt sets the CreatedAt field's value.
54591func (s *TopicRuleDestinationSummary) SetCreatedAt(v time.Time) *TopicRuleDestinationSummary {
54592	s.CreatedAt = &v
54593	return s
54594}
54595
54596// SetHttpUrlSummary sets the HttpUrlSummary field's value.
54597func (s *TopicRuleDestinationSummary) SetHttpUrlSummary(v *HttpUrlDestinationSummary) *TopicRuleDestinationSummary {
54598	s.HttpUrlSummary = v
54599	return s
54600}
54601
54602// SetLastUpdatedAt sets the LastUpdatedAt field's value.
54603func (s *TopicRuleDestinationSummary) SetLastUpdatedAt(v time.Time) *TopicRuleDestinationSummary {
54604	s.LastUpdatedAt = &v
54605	return s
54606}
54607
54608// SetStatus sets the Status field's value.
54609func (s *TopicRuleDestinationSummary) SetStatus(v string) *TopicRuleDestinationSummary {
54610	s.Status = &v
54611	return s
54612}
54613
54614// SetStatusReason sets the StatusReason field's value.
54615func (s *TopicRuleDestinationSummary) SetStatusReason(v string) *TopicRuleDestinationSummary {
54616	s.StatusReason = &v
54617	return s
54618}
54619
54620// SetVpcDestinationSummary sets the VpcDestinationSummary field's value.
54621func (s *TopicRuleDestinationSummary) SetVpcDestinationSummary(v *VpcDestinationSummary) *TopicRuleDestinationSummary {
54622	s.VpcDestinationSummary = v
54623	return s
54624}
54625
54626// Describes a rule.
54627type TopicRuleListItem struct {
54628	_ struct{} `type:"structure"`
54629
54630	// The date and time the rule was created.
54631	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
54632
54633	// The rule ARN.
54634	RuleArn *string `locationName:"ruleArn" type:"string"`
54635
54636	// Specifies whether the rule is disabled.
54637	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
54638
54639	// The name of the rule.
54640	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
54641
54642	// The pattern for the topic names that apply.
54643	TopicPattern *string `locationName:"topicPattern" type:"string"`
54644}
54645
54646// String returns the string representation
54647func (s TopicRuleListItem) String() string {
54648	return awsutil.Prettify(s)
54649}
54650
54651// GoString returns the string representation
54652func (s TopicRuleListItem) GoString() string {
54653	return s.String()
54654}
54655
54656// SetCreatedAt sets the CreatedAt field's value.
54657func (s *TopicRuleListItem) SetCreatedAt(v time.Time) *TopicRuleListItem {
54658	s.CreatedAt = &v
54659	return s
54660}
54661
54662// SetRuleArn sets the RuleArn field's value.
54663func (s *TopicRuleListItem) SetRuleArn(v string) *TopicRuleListItem {
54664	s.RuleArn = &v
54665	return s
54666}
54667
54668// SetRuleDisabled sets the RuleDisabled field's value.
54669func (s *TopicRuleListItem) SetRuleDisabled(v bool) *TopicRuleListItem {
54670	s.RuleDisabled = &v
54671	return s
54672}
54673
54674// SetRuleName sets the RuleName field's value.
54675func (s *TopicRuleListItem) SetRuleName(v string) *TopicRuleListItem {
54676	s.RuleName = &v
54677	return s
54678}
54679
54680// SetTopicPattern sets the TopicPattern field's value.
54681func (s *TopicRuleListItem) SetTopicPattern(v string) *TopicRuleListItem {
54682	s.TopicPattern = &v
54683	return s
54684}
54685
54686// Describes a rule.
54687type TopicRulePayload struct {
54688	_ struct{} `type:"structure"`
54689
54690	// The actions associated with the rule.
54691	//
54692	// Actions is a required field
54693	Actions []*Action `locationName:"actions" type:"list" required:"true"`
54694
54695	// The version of the SQL rules engine to use when evaluating the rule.
54696	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
54697
54698	// The description of the rule.
54699	Description *string `locationName:"description" type:"string"`
54700
54701	// The action to take when an error occurs.
54702	ErrorAction *Action `locationName:"errorAction" type:"structure"`
54703
54704	// Specifies whether the rule is disabled.
54705	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
54706
54707	// The SQL statement used to query the topic. For more information, see AWS
54708	// IoT SQL Reference (https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html)
54709	// in the AWS IoT Developer Guide.
54710	//
54711	// Sql is a required field
54712	Sql *string `locationName:"sql" type:"string" required:"true"`
54713}
54714
54715// String returns the string representation
54716func (s TopicRulePayload) String() string {
54717	return awsutil.Prettify(s)
54718}
54719
54720// GoString returns the string representation
54721func (s TopicRulePayload) GoString() string {
54722	return s.String()
54723}
54724
54725// Validate inspects the fields of the type to determine if they are valid.
54726func (s *TopicRulePayload) Validate() error {
54727	invalidParams := request.ErrInvalidParams{Context: "TopicRulePayload"}
54728	if s.Actions == nil {
54729		invalidParams.Add(request.NewErrParamRequired("Actions"))
54730	}
54731	if s.Sql == nil {
54732		invalidParams.Add(request.NewErrParamRequired("Sql"))
54733	}
54734	if s.Actions != nil {
54735		for i, v := range s.Actions {
54736			if v == nil {
54737				continue
54738			}
54739			if err := v.Validate(); err != nil {
54740				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
54741			}
54742		}
54743	}
54744	if s.ErrorAction != nil {
54745		if err := s.ErrorAction.Validate(); err != nil {
54746			invalidParams.AddNested("ErrorAction", err.(request.ErrInvalidParams))
54747		}
54748	}
54749
54750	if invalidParams.Len() > 0 {
54751		return invalidParams
54752	}
54753	return nil
54754}
54755
54756// SetActions sets the Actions field's value.
54757func (s *TopicRulePayload) SetActions(v []*Action) *TopicRulePayload {
54758	s.Actions = v
54759	return s
54760}
54761
54762// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
54763func (s *TopicRulePayload) SetAwsIotSqlVersion(v string) *TopicRulePayload {
54764	s.AwsIotSqlVersion = &v
54765	return s
54766}
54767
54768// SetDescription sets the Description field's value.
54769func (s *TopicRulePayload) SetDescription(v string) *TopicRulePayload {
54770	s.Description = &v
54771	return s
54772}
54773
54774// SetErrorAction sets the ErrorAction field's value.
54775func (s *TopicRulePayload) SetErrorAction(v *Action) *TopicRulePayload {
54776	s.ErrorAction = v
54777	return s
54778}
54779
54780// SetRuleDisabled sets the RuleDisabled field's value.
54781func (s *TopicRulePayload) SetRuleDisabled(v bool) *TopicRulePayload {
54782	s.RuleDisabled = &v
54783	return s
54784}
54785
54786// SetSql sets the Sql field's value.
54787func (s *TopicRulePayload) SetSql(v string) *TopicRulePayload {
54788	s.Sql = &v
54789	return s
54790}
54791
54792// You can't revert the certificate transfer because the transfer is already
54793// complete.
54794type TransferAlreadyCompletedException struct {
54795	_            struct{}                  `type:"structure"`
54796	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
54797
54798	// The message for the exception.
54799	Message_ *string `locationName:"message" type:"string"`
54800}
54801
54802// String returns the string representation
54803func (s TransferAlreadyCompletedException) String() string {
54804	return awsutil.Prettify(s)
54805}
54806
54807// GoString returns the string representation
54808func (s TransferAlreadyCompletedException) GoString() string {
54809	return s.String()
54810}
54811
54812func newErrorTransferAlreadyCompletedException(v protocol.ResponseMetadata) error {
54813	return &TransferAlreadyCompletedException{
54814		RespMetadata: v,
54815	}
54816}
54817
54818// Code returns the exception type name.
54819func (s *TransferAlreadyCompletedException) Code() string {
54820	return "TransferAlreadyCompletedException"
54821}
54822
54823// Message returns the exception's message.
54824func (s *TransferAlreadyCompletedException) Message() string {
54825	if s.Message_ != nil {
54826		return *s.Message_
54827	}
54828	return ""
54829}
54830
54831// OrigErr always returns nil, satisfies awserr.Error interface.
54832func (s *TransferAlreadyCompletedException) OrigErr() error {
54833	return nil
54834}
54835
54836func (s *TransferAlreadyCompletedException) Error() string {
54837	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
54838}
54839
54840// Status code returns the HTTP status code for the request's response error.
54841func (s *TransferAlreadyCompletedException) StatusCode() int {
54842	return s.RespMetadata.StatusCode
54843}
54844
54845// RequestID returns the service's response RequestID for request.
54846func (s *TransferAlreadyCompletedException) RequestID() string {
54847	return s.RespMetadata.RequestID
54848}
54849
54850// The input for the TransferCertificate operation.
54851type TransferCertificateInput struct {
54852	_ struct{} `type:"structure"`
54853
54854	// The ID of the certificate. (The last part of the certificate ARN contains
54855	// the certificate ID.)
54856	//
54857	// CertificateId is a required field
54858	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
54859
54860	// The AWS account.
54861	//
54862	// TargetAwsAccount is a required field
54863	TargetAwsAccount *string `location:"querystring" locationName:"targetAwsAccount" min:"12" type:"string" required:"true"`
54864
54865	// The transfer message.
54866	TransferMessage *string `locationName:"transferMessage" type:"string"`
54867}
54868
54869// String returns the string representation
54870func (s TransferCertificateInput) String() string {
54871	return awsutil.Prettify(s)
54872}
54873
54874// GoString returns the string representation
54875func (s TransferCertificateInput) GoString() string {
54876	return s.String()
54877}
54878
54879// Validate inspects the fields of the type to determine if they are valid.
54880func (s *TransferCertificateInput) Validate() error {
54881	invalidParams := request.ErrInvalidParams{Context: "TransferCertificateInput"}
54882	if s.CertificateId == nil {
54883		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
54884	}
54885	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
54886		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
54887	}
54888	if s.TargetAwsAccount == nil {
54889		invalidParams.Add(request.NewErrParamRequired("TargetAwsAccount"))
54890	}
54891	if s.TargetAwsAccount != nil && len(*s.TargetAwsAccount) < 12 {
54892		invalidParams.Add(request.NewErrParamMinLen("TargetAwsAccount", 12))
54893	}
54894
54895	if invalidParams.Len() > 0 {
54896		return invalidParams
54897	}
54898	return nil
54899}
54900
54901// SetCertificateId sets the CertificateId field's value.
54902func (s *TransferCertificateInput) SetCertificateId(v string) *TransferCertificateInput {
54903	s.CertificateId = &v
54904	return s
54905}
54906
54907// SetTargetAwsAccount sets the TargetAwsAccount field's value.
54908func (s *TransferCertificateInput) SetTargetAwsAccount(v string) *TransferCertificateInput {
54909	s.TargetAwsAccount = &v
54910	return s
54911}
54912
54913// SetTransferMessage sets the TransferMessage field's value.
54914func (s *TransferCertificateInput) SetTransferMessage(v string) *TransferCertificateInput {
54915	s.TransferMessage = &v
54916	return s
54917}
54918
54919// The output from the TransferCertificate operation.
54920type TransferCertificateOutput struct {
54921	_ struct{} `type:"structure"`
54922
54923	// The ARN of the certificate.
54924	TransferredCertificateArn *string `locationName:"transferredCertificateArn" type:"string"`
54925}
54926
54927// String returns the string representation
54928func (s TransferCertificateOutput) String() string {
54929	return awsutil.Prettify(s)
54930}
54931
54932// GoString returns the string representation
54933func (s TransferCertificateOutput) GoString() string {
54934	return s.String()
54935}
54936
54937// SetTransferredCertificateArn sets the TransferredCertificateArn field's value.
54938func (s *TransferCertificateOutput) SetTransferredCertificateArn(v string) *TransferCertificateOutput {
54939	s.TransferredCertificateArn = &v
54940	return s
54941}
54942
54943// You can't transfer the certificate because authorization policies are still
54944// attached.
54945type TransferConflictException struct {
54946	_            struct{}                  `type:"structure"`
54947	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
54948
54949	// The message for the exception.
54950	Message_ *string `locationName:"message" type:"string"`
54951}
54952
54953// String returns the string representation
54954func (s TransferConflictException) String() string {
54955	return awsutil.Prettify(s)
54956}
54957
54958// GoString returns the string representation
54959func (s TransferConflictException) GoString() string {
54960	return s.String()
54961}
54962
54963func newErrorTransferConflictException(v protocol.ResponseMetadata) error {
54964	return &TransferConflictException{
54965		RespMetadata: v,
54966	}
54967}
54968
54969// Code returns the exception type name.
54970func (s *TransferConflictException) Code() string {
54971	return "TransferConflictException"
54972}
54973
54974// Message returns the exception's message.
54975func (s *TransferConflictException) Message() string {
54976	if s.Message_ != nil {
54977		return *s.Message_
54978	}
54979	return ""
54980}
54981
54982// OrigErr always returns nil, satisfies awserr.Error interface.
54983func (s *TransferConflictException) OrigErr() error {
54984	return nil
54985}
54986
54987func (s *TransferConflictException) Error() string {
54988	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
54989}
54990
54991// Status code returns the HTTP status code for the request's response error.
54992func (s *TransferConflictException) StatusCode() int {
54993	return s.RespMetadata.StatusCode
54994}
54995
54996// RequestID returns the service's response RequestID for request.
54997func (s *TransferConflictException) RequestID() string {
54998	return s.RespMetadata.RequestID
54999}
55000
55001// Data used to transfer a certificate to an AWS account.
55002type TransferData struct {
55003	_ struct{} `type:"structure"`
55004
55005	// The date the transfer was accepted.
55006	AcceptDate *time.Time `locationName:"acceptDate" type:"timestamp"`
55007
55008	// The date the transfer was rejected.
55009	RejectDate *time.Time `locationName:"rejectDate" type:"timestamp"`
55010
55011	// The reason why the transfer was rejected.
55012	RejectReason *string `locationName:"rejectReason" type:"string"`
55013
55014	// The date the transfer took place.
55015	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
55016
55017	// The transfer message.
55018	TransferMessage *string `locationName:"transferMessage" type:"string"`
55019}
55020
55021// String returns the string representation
55022func (s TransferData) String() string {
55023	return awsutil.Prettify(s)
55024}
55025
55026// GoString returns the string representation
55027func (s TransferData) GoString() string {
55028	return s.String()
55029}
55030
55031// SetAcceptDate sets the AcceptDate field's value.
55032func (s *TransferData) SetAcceptDate(v time.Time) *TransferData {
55033	s.AcceptDate = &v
55034	return s
55035}
55036
55037// SetRejectDate sets the RejectDate field's value.
55038func (s *TransferData) SetRejectDate(v time.Time) *TransferData {
55039	s.RejectDate = &v
55040	return s
55041}
55042
55043// SetRejectReason sets the RejectReason field's value.
55044func (s *TransferData) SetRejectReason(v string) *TransferData {
55045	s.RejectReason = &v
55046	return s
55047}
55048
55049// SetTransferDate sets the TransferDate field's value.
55050func (s *TransferData) SetTransferDate(v time.Time) *TransferData {
55051	s.TransferDate = &v
55052	return s
55053}
55054
55055// SetTransferMessage sets the TransferMessage field's value.
55056func (s *TransferData) SetTransferMessage(v string) *TransferData {
55057	s.TransferMessage = &v
55058	return s
55059}
55060
55061// You are not authorized to perform this operation.
55062type UnauthorizedException struct {
55063	_            struct{}                  `type:"structure"`
55064	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
55065
55066	// The message for the exception.
55067	Message_ *string `locationName:"message" type:"string"`
55068}
55069
55070// String returns the string representation
55071func (s UnauthorizedException) String() string {
55072	return awsutil.Prettify(s)
55073}
55074
55075// GoString returns the string representation
55076func (s UnauthorizedException) GoString() string {
55077	return s.String()
55078}
55079
55080func newErrorUnauthorizedException(v protocol.ResponseMetadata) error {
55081	return &UnauthorizedException{
55082		RespMetadata: v,
55083	}
55084}
55085
55086// Code returns the exception type name.
55087func (s *UnauthorizedException) Code() string {
55088	return "UnauthorizedException"
55089}
55090
55091// Message returns the exception's message.
55092func (s *UnauthorizedException) Message() string {
55093	if s.Message_ != nil {
55094		return *s.Message_
55095	}
55096	return ""
55097}
55098
55099// OrigErr always returns nil, satisfies awserr.Error interface.
55100func (s *UnauthorizedException) OrigErr() error {
55101	return nil
55102}
55103
55104func (s *UnauthorizedException) Error() string {
55105	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
55106}
55107
55108// Status code returns the HTTP status code for the request's response error.
55109func (s *UnauthorizedException) StatusCode() int {
55110	return s.RespMetadata.StatusCode
55111}
55112
55113// RequestID returns the service's response RequestID for request.
55114func (s *UnauthorizedException) RequestID() string {
55115	return s.RespMetadata.RequestID
55116}
55117
55118type UntagResourceInput struct {
55119	_ struct{} `type:"structure"`
55120
55121	// The ARN of the resource.
55122	//
55123	// ResourceArn is a required field
55124	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
55125
55126	// A list of the keys of the tags to be removed from the resource.
55127	//
55128	// TagKeys is a required field
55129	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
55130}
55131
55132// String returns the string representation
55133func (s UntagResourceInput) String() string {
55134	return awsutil.Prettify(s)
55135}
55136
55137// GoString returns the string representation
55138func (s UntagResourceInput) GoString() string {
55139	return s.String()
55140}
55141
55142// Validate inspects the fields of the type to determine if they are valid.
55143func (s *UntagResourceInput) Validate() error {
55144	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
55145	if s.ResourceArn == nil {
55146		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
55147	}
55148	if s.TagKeys == nil {
55149		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
55150	}
55151
55152	if invalidParams.Len() > 0 {
55153		return invalidParams
55154	}
55155	return nil
55156}
55157
55158// SetResourceArn sets the ResourceArn field's value.
55159func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
55160	s.ResourceArn = &v
55161	return s
55162}
55163
55164// SetTagKeys sets the TagKeys field's value.
55165func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
55166	s.TagKeys = v
55167	return s
55168}
55169
55170type UntagResourceOutput struct {
55171	_ struct{} `type:"structure"`
55172}
55173
55174// String returns the string representation
55175func (s UntagResourceOutput) String() string {
55176	return awsutil.Prettify(s)
55177}
55178
55179// GoString returns the string representation
55180func (s UntagResourceOutput) GoString() string {
55181	return s.String()
55182}
55183
55184type UpdateAccountAuditConfigurationInput struct {
55185	_ struct{} `type:"structure"`
55186
55187	// Specifies which audit checks are enabled and disabled for this account. Use
55188	// DescribeAccountAuditConfiguration to see the list of all checks, including
55189	// those that are currently enabled.
55190	//
55191	// Some data collection might start immediately when certain checks are enabled.
55192	// When a check is disabled, any data collected so far in relation to the check
55193	// is deleted.
55194	//
55195	// You cannot disable a check if it's used by any scheduled audit. You must
55196	// first delete the check from the scheduled audit or delete the scheduled audit
55197	// itself.
55198	//
55199	// On the first call to UpdateAccountAuditConfiguration, this parameter is required
55200	// and must specify at least one enabled check.
55201	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
55202
55203	// Information about the targets to which audit notifications are sent.
55204	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
55205
55206	// The Amazon Resource Name (ARN) of the role that grants permission to AWS
55207	// IoT to access information about your devices, policies, certificates, and
55208	// other items as required when performing an audit.
55209	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
55210}
55211
55212// String returns the string representation
55213func (s UpdateAccountAuditConfigurationInput) String() string {
55214	return awsutil.Prettify(s)
55215}
55216
55217// GoString returns the string representation
55218func (s UpdateAccountAuditConfigurationInput) GoString() string {
55219	return s.String()
55220}
55221
55222// Validate inspects the fields of the type to determine if they are valid.
55223func (s *UpdateAccountAuditConfigurationInput) Validate() error {
55224	invalidParams := request.ErrInvalidParams{Context: "UpdateAccountAuditConfigurationInput"}
55225	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
55226		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
55227	}
55228	if s.AuditNotificationTargetConfigurations != nil {
55229		for i, v := range s.AuditNotificationTargetConfigurations {
55230			if v == nil {
55231				continue
55232			}
55233			if err := v.Validate(); err != nil {
55234				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuditNotificationTargetConfigurations", i), err.(request.ErrInvalidParams))
55235			}
55236		}
55237	}
55238
55239	if invalidParams.Len() > 0 {
55240		return invalidParams
55241	}
55242	return nil
55243}
55244
55245// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
55246func (s *UpdateAccountAuditConfigurationInput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *UpdateAccountAuditConfigurationInput {
55247	s.AuditCheckConfigurations = v
55248	return s
55249}
55250
55251// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
55252func (s *UpdateAccountAuditConfigurationInput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *UpdateAccountAuditConfigurationInput {
55253	s.AuditNotificationTargetConfigurations = v
55254	return s
55255}
55256
55257// SetRoleArn sets the RoleArn field's value.
55258func (s *UpdateAccountAuditConfigurationInput) SetRoleArn(v string) *UpdateAccountAuditConfigurationInput {
55259	s.RoleArn = &v
55260	return s
55261}
55262
55263type UpdateAccountAuditConfigurationOutput struct {
55264	_ struct{} `type:"structure"`
55265}
55266
55267// String returns the string representation
55268func (s UpdateAccountAuditConfigurationOutput) String() string {
55269	return awsutil.Prettify(s)
55270}
55271
55272// GoString returns the string representation
55273func (s UpdateAccountAuditConfigurationOutput) GoString() string {
55274	return s.String()
55275}
55276
55277type UpdateAuditSuppressionInput struct {
55278	_ struct{} `type:"structure"`
55279
55280	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
55281	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
55282	// to select which checks are enabled.)
55283	//
55284	// CheckName is a required field
55285	CheckName *string `locationName:"checkName" type:"string" required:"true"`
55286
55287	// The description of the audit suppression.
55288	Description *string `locationName:"description" type:"string"`
55289
55290	// The expiration date (epoch timestamp in seconds) that you want the suppression
55291	// to adhere to.
55292	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
55293
55294	// Information that identifies the noncompliant resource.
55295	//
55296	// ResourceIdentifier is a required field
55297	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
55298
55299	// Indicates whether a suppression should exist indefinitely or not.
55300	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
55301}
55302
55303// String returns the string representation
55304func (s UpdateAuditSuppressionInput) String() string {
55305	return awsutil.Prettify(s)
55306}
55307
55308// GoString returns the string representation
55309func (s UpdateAuditSuppressionInput) GoString() string {
55310	return s.String()
55311}
55312
55313// Validate inspects the fields of the type to determine if they are valid.
55314func (s *UpdateAuditSuppressionInput) Validate() error {
55315	invalidParams := request.ErrInvalidParams{Context: "UpdateAuditSuppressionInput"}
55316	if s.CheckName == nil {
55317		invalidParams.Add(request.NewErrParamRequired("CheckName"))
55318	}
55319	if s.ResourceIdentifier == nil {
55320		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
55321	}
55322	if s.ResourceIdentifier != nil {
55323		if err := s.ResourceIdentifier.Validate(); err != nil {
55324			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
55325		}
55326	}
55327
55328	if invalidParams.Len() > 0 {
55329		return invalidParams
55330	}
55331	return nil
55332}
55333
55334// SetCheckName sets the CheckName field's value.
55335func (s *UpdateAuditSuppressionInput) SetCheckName(v string) *UpdateAuditSuppressionInput {
55336	s.CheckName = &v
55337	return s
55338}
55339
55340// SetDescription sets the Description field's value.
55341func (s *UpdateAuditSuppressionInput) SetDescription(v string) *UpdateAuditSuppressionInput {
55342	s.Description = &v
55343	return s
55344}
55345
55346// SetExpirationDate sets the ExpirationDate field's value.
55347func (s *UpdateAuditSuppressionInput) SetExpirationDate(v time.Time) *UpdateAuditSuppressionInput {
55348	s.ExpirationDate = &v
55349	return s
55350}
55351
55352// SetResourceIdentifier sets the ResourceIdentifier field's value.
55353func (s *UpdateAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *UpdateAuditSuppressionInput {
55354	s.ResourceIdentifier = v
55355	return s
55356}
55357
55358// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
55359func (s *UpdateAuditSuppressionInput) SetSuppressIndefinitely(v bool) *UpdateAuditSuppressionInput {
55360	s.SuppressIndefinitely = &v
55361	return s
55362}
55363
55364type UpdateAuditSuppressionOutput struct {
55365	_ struct{} `type:"structure"`
55366}
55367
55368// String returns the string representation
55369func (s UpdateAuditSuppressionOutput) String() string {
55370	return awsutil.Prettify(s)
55371}
55372
55373// GoString returns the string representation
55374func (s UpdateAuditSuppressionOutput) GoString() string {
55375	return s.String()
55376}
55377
55378type UpdateAuthorizerInput struct {
55379	_ struct{} `type:"structure"`
55380
55381	// The ARN of the authorizer's Lambda function.
55382	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
55383
55384	// The authorizer name.
55385	//
55386	// AuthorizerName is a required field
55387	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
55388
55389	// The status of the update authorizer request.
55390	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
55391
55392	// The key used to extract the token from the HTTP headers.
55393	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
55394
55395	// The public keys used to verify the token signature.
55396	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
55397}
55398
55399// String returns the string representation
55400func (s UpdateAuthorizerInput) String() string {
55401	return awsutil.Prettify(s)
55402}
55403
55404// GoString returns the string representation
55405func (s UpdateAuthorizerInput) GoString() string {
55406	return s.String()
55407}
55408
55409// Validate inspects the fields of the type to determine if they are valid.
55410func (s *UpdateAuthorizerInput) Validate() error {
55411	invalidParams := request.ErrInvalidParams{Context: "UpdateAuthorizerInput"}
55412	if s.AuthorizerName == nil {
55413		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
55414	}
55415	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
55416		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
55417	}
55418	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
55419		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
55420	}
55421
55422	if invalidParams.Len() > 0 {
55423		return invalidParams
55424	}
55425	return nil
55426}
55427
55428// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
55429func (s *UpdateAuthorizerInput) SetAuthorizerFunctionArn(v string) *UpdateAuthorizerInput {
55430	s.AuthorizerFunctionArn = &v
55431	return s
55432}
55433
55434// SetAuthorizerName sets the AuthorizerName field's value.
55435func (s *UpdateAuthorizerInput) SetAuthorizerName(v string) *UpdateAuthorizerInput {
55436	s.AuthorizerName = &v
55437	return s
55438}
55439
55440// SetStatus sets the Status field's value.
55441func (s *UpdateAuthorizerInput) SetStatus(v string) *UpdateAuthorizerInput {
55442	s.Status = &v
55443	return s
55444}
55445
55446// SetTokenKeyName sets the TokenKeyName field's value.
55447func (s *UpdateAuthorizerInput) SetTokenKeyName(v string) *UpdateAuthorizerInput {
55448	s.TokenKeyName = &v
55449	return s
55450}
55451
55452// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
55453func (s *UpdateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *UpdateAuthorizerInput {
55454	s.TokenSigningPublicKeys = v
55455	return s
55456}
55457
55458type UpdateAuthorizerOutput struct {
55459	_ struct{} `type:"structure"`
55460
55461	// The authorizer ARN.
55462	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
55463
55464	// The authorizer name.
55465	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
55466}
55467
55468// String returns the string representation
55469func (s UpdateAuthorizerOutput) String() string {
55470	return awsutil.Prettify(s)
55471}
55472
55473// GoString returns the string representation
55474func (s UpdateAuthorizerOutput) GoString() string {
55475	return s.String()
55476}
55477
55478// SetAuthorizerArn sets the AuthorizerArn field's value.
55479func (s *UpdateAuthorizerOutput) SetAuthorizerArn(v string) *UpdateAuthorizerOutput {
55480	s.AuthorizerArn = &v
55481	return s
55482}
55483
55484// SetAuthorizerName sets the AuthorizerName field's value.
55485func (s *UpdateAuthorizerOutput) SetAuthorizerName(v string) *UpdateAuthorizerOutput {
55486	s.AuthorizerName = &v
55487	return s
55488}
55489
55490type UpdateBillingGroupInput struct {
55491	_ struct{} `type:"structure"`
55492
55493	// The name of the billing group.
55494	//
55495	// BillingGroupName is a required field
55496	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
55497
55498	// The properties of the billing group.
55499	//
55500	// BillingGroupProperties is a required field
55501	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure" required:"true"`
55502
55503	// The expected version of the billing group. If the version of the billing
55504	// group does not match the expected version specified in the request, the UpdateBillingGroup
55505	// request is rejected with a VersionConflictException.
55506	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
55507}
55508
55509// String returns the string representation
55510func (s UpdateBillingGroupInput) String() string {
55511	return awsutil.Prettify(s)
55512}
55513
55514// GoString returns the string representation
55515func (s UpdateBillingGroupInput) GoString() string {
55516	return s.String()
55517}
55518
55519// Validate inspects the fields of the type to determine if they are valid.
55520func (s *UpdateBillingGroupInput) Validate() error {
55521	invalidParams := request.ErrInvalidParams{Context: "UpdateBillingGroupInput"}
55522	if s.BillingGroupName == nil {
55523		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
55524	}
55525	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
55526		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
55527	}
55528	if s.BillingGroupProperties == nil {
55529		invalidParams.Add(request.NewErrParamRequired("BillingGroupProperties"))
55530	}
55531
55532	if invalidParams.Len() > 0 {
55533		return invalidParams
55534	}
55535	return nil
55536}
55537
55538// SetBillingGroupName sets the BillingGroupName field's value.
55539func (s *UpdateBillingGroupInput) SetBillingGroupName(v string) *UpdateBillingGroupInput {
55540	s.BillingGroupName = &v
55541	return s
55542}
55543
55544// SetBillingGroupProperties sets the BillingGroupProperties field's value.
55545func (s *UpdateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *UpdateBillingGroupInput {
55546	s.BillingGroupProperties = v
55547	return s
55548}
55549
55550// SetExpectedVersion sets the ExpectedVersion field's value.
55551func (s *UpdateBillingGroupInput) SetExpectedVersion(v int64) *UpdateBillingGroupInput {
55552	s.ExpectedVersion = &v
55553	return s
55554}
55555
55556type UpdateBillingGroupOutput struct {
55557	_ struct{} `type:"structure"`
55558
55559	// The latest version of the billing group.
55560	Version *int64 `locationName:"version" type:"long"`
55561}
55562
55563// String returns the string representation
55564func (s UpdateBillingGroupOutput) String() string {
55565	return awsutil.Prettify(s)
55566}
55567
55568// GoString returns the string representation
55569func (s UpdateBillingGroupOutput) GoString() string {
55570	return s.String()
55571}
55572
55573// SetVersion sets the Version field's value.
55574func (s *UpdateBillingGroupOutput) SetVersion(v int64) *UpdateBillingGroupOutput {
55575	s.Version = &v
55576	return s
55577}
55578
55579// The input to the UpdateCACertificate operation.
55580type UpdateCACertificateInput struct {
55581	_ struct{} `type:"structure"`
55582
55583	// The CA certificate identifier.
55584	//
55585	// CertificateId is a required field
55586	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
55587
55588	// The new value for the auto registration status. Valid values are: "ENABLE"
55589	// or "DISABLE".
55590	NewAutoRegistrationStatus *string `location:"querystring" locationName:"newAutoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
55591
55592	// The updated status of the CA certificate.
55593	//
55594	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
55595	// used.
55596	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" enum:"CACertificateStatus"`
55597
55598	// Information about the registration configuration.
55599	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
55600
55601	// If true, removes auto registration.
55602	RemoveAutoRegistration *bool `locationName:"removeAutoRegistration" type:"boolean"`
55603}
55604
55605// String returns the string representation
55606func (s UpdateCACertificateInput) String() string {
55607	return awsutil.Prettify(s)
55608}
55609
55610// GoString returns the string representation
55611func (s UpdateCACertificateInput) GoString() string {
55612	return s.String()
55613}
55614
55615// Validate inspects the fields of the type to determine if they are valid.
55616func (s *UpdateCACertificateInput) Validate() error {
55617	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateInput"}
55618	if s.CertificateId == nil {
55619		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
55620	}
55621	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
55622		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
55623	}
55624	if s.RegistrationConfig != nil {
55625		if err := s.RegistrationConfig.Validate(); err != nil {
55626			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
55627		}
55628	}
55629
55630	if invalidParams.Len() > 0 {
55631		return invalidParams
55632	}
55633	return nil
55634}
55635
55636// SetCertificateId sets the CertificateId field's value.
55637func (s *UpdateCACertificateInput) SetCertificateId(v string) *UpdateCACertificateInput {
55638	s.CertificateId = &v
55639	return s
55640}
55641
55642// SetNewAutoRegistrationStatus sets the NewAutoRegistrationStatus field's value.
55643func (s *UpdateCACertificateInput) SetNewAutoRegistrationStatus(v string) *UpdateCACertificateInput {
55644	s.NewAutoRegistrationStatus = &v
55645	return s
55646}
55647
55648// SetNewStatus sets the NewStatus field's value.
55649func (s *UpdateCACertificateInput) SetNewStatus(v string) *UpdateCACertificateInput {
55650	s.NewStatus = &v
55651	return s
55652}
55653
55654// SetRegistrationConfig sets the RegistrationConfig field's value.
55655func (s *UpdateCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *UpdateCACertificateInput {
55656	s.RegistrationConfig = v
55657	return s
55658}
55659
55660// SetRemoveAutoRegistration sets the RemoveAutoRegistration field's value.
55661func (s *UpdateCACertificateInput) SetRemoveAutoRegistration(v bool) *UpdateCACertificateInput {
55662	s.RemoveAutoRegistration = &v
55663	return s
55664}
55665
55666type UpdateCACertificateOutput struct {
55667	_ struct{} `type:"structure"`
55668}
55669
55670// String returns the string representation
55671func (s UpdateCACertificateOutput) String() string {
55672	return awsutil.Prettify(s)
55673}
55674
55675// GoString returns the string representation
55676func (s UpdateCACertificateOutput) GoString() string {
55677	return s.String()
55678}
55679
55680// Parameters to define a mitigation action that changes the state of the CA
55681// certificate to inactive.
55682type UpdateCACertificateParams struct {
55683	_ struct{} `type:"structure"`
55684
55685	// The action that you want to apply to the CA certificate. The only supported
55686	// value is DEACTIVATE.
55687	//
55688	// Action is a required field
55689	Action *string `locationName:"action" type:"string" required:"true" enum:"CACertificateUpdateAction"`
55690}
55691
55692// String returns the string representation
55693func (s UpdateCACertificateParams) String() string {
55694	return awsutil.Prettify(s)
55695}
55696
55697// GoString returns the string representation
55698func (s UpdateCACertificateParams) GoString() string {
55699	return s.String()
55700}
55701
55702// Validate inspects the fields of the type to determine if they are valid.
55703func (s *UpdateCACertificateParams) Validate() error {
55704	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateParams"}
55705	if s.Action == nil {
55706		invalidParams.Add(request.NewErrParamRequired("Action"))
55707	}
55708
55709	if invalidParams.Len() > 0 {
55710		return invalidParams
55711	}
55712	return nil
55713}
55714
55715// SetAction sets the Action field's value.
55716func (s *UpdateCACertificateParams) SetAction(v string) *UpdateCACertificateParams {
55717	s.Action = &v
55718	return s
55719}
55720
55721// The input for the UpdateCertificate operation.
55722type UpdateCertificateInput struct {
55723	_ struct{} `type:"structure"`
55724
55725	// The ID of the certificate. (The last part of the certificate ARN contains
55726	// the certificate ID.)
55727	//
55728	// CertificateId is a required field
55729	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
55730
55731	// The new status.
55732	//
55733	// Note: Setting the status to PENDING_TRANSFER or PENDING_ACTIVATION will result
55734	// in an exception being thrown. PENDING_TRANSFER and PENDING_ACTIVATION are
55735	// statuses used internally by AWS IoT. They are not intended for developer
55736	// use.
55737	//
55738	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
55739	// used.
55740	//
55741	// NewStatus is a required field
55742	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" required:"true" enum:"CertificateStatus"`
55743}
55744
55745// String returns the string representation
55746func (s UpdateCertificateInput) String() string {
55747	return awsutil.Prettify(s)
55748}
55749
55750// GoString returns the string representation
55751func (s UpdateCertificateInput) GoString() string {
55752	return s.String()
55753}
55754
55755// Validate inspects the fields of the type to determine if they are valid.
55756func (s *UpdateCertificateInput) Validate() error {
55757	invalidParams := request.ErrInvalidParams{Context: "UpdateCertificateInput"}
55758	if s.CertificateId == nil {
55759		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
55760	}
55761	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
55762		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
55763	}
55764	if s.NewStatus == nil {
55765		invalidParams.Add(request.NewErrParamRequired("NewStatus"))
55766	}
55767
55768	if invalidParams.Len() > 0 {
55769		return invalidParams
55770	}
55771	return nil
55772}
55773
55774// SetCertificateId sets the CertificateId field's value.
55775func (s *UpdateCertificateInput) SetCertificateId(v string) *UpdateCertificateInput {
55776	s.CertificateId = &v
55777	return s
55778}
55779
55780// SetNewStatus sets the NewStatus field's value.
55781func (s *UpdateCertificateInput) SetNewStatus(v string) *UpdateCertificateInput {
55782	s.NewStatus = &v
55783	return s
55784}
55785
55786type UpdateCertificateOutput struct {
55787	_ struct{} `type:"structure"`
55788}
55789
55790// String returns the string representation
55791func (s UpdateCertificateOutput) String() string {
55792	return awsutil.Prettify(s)
55793}
55794
55795// GoString returns the string representation
55796func (s UpdateCertificateOutput) GoString() string {
55797	return s.String()
55798}
55799
55800type UpdateCustomMetricInput struct {
55801	_ struct{} `type:"structure"`
55802
55803	// Field represents a friendly name in the console for the custom metric, it
55804	// doesn't have to be unique. Don't use this name as the metric identifier in
55805	// the device metric report. Can be updated.
55806	//
55807	// DisplayName is a required field
55808	DisplayName *string `locationName:"displayName" type:"string" required:"true"`
55809
55810	// The name of the custom metric. Cannot be updated.
55811	//
55812	// MetricName is a required field
55813	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
55814}
55815
55816// String returns the string representation
55817func (s UpdateCustomMetricInput) String() string {
55818	return awsutil.Prettify(s)
55819}
55820
55821// GoString returns the string representation
55822func (s UpdateCustomMetricInput) GoString() string {
55823	return s.String()
55824}
55825
55826// Validate inspects the fields of the type to determine if they are valid.
55827func (s *UpdateCustomMetricInput) Validate() error {
55828	invalidParams := request.ErrInvalidParams{Context: "UpdateCustomMetricInput"}
55829	if s.DisplayName == nil {
55830		invalidParams.Add(request.NewErrParamRequired("DisplayName"))
55831	}
55832	if s.MetricName == nil {
55833		invalidParams.Add(request.NewErrParamRequired("MetricName"))
55834	}
55835	if s.MetricName != nil && len(*s.MetricName) < 1 {
55836		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
55837	}
55838
55839	if invalidParams.Len() > 0 {
55840		return invalidParams
55841	}
55842	return nil
55843}
55844
55845// SetDisplayName sets the DisplayName field's value.
55846func (s *UpdateCustomMetricInput) SetDisplayName(v string) *UpdateCustomMetricInput {
55847	s.DisplayName = &v
55848	return s
55849}
55850
55851// SetMetricName sets the MetricName field's value.
55852func (s *UpdateCustomMetricInput) SetMetricName(v string) *UpdateCustomMetricInput {
55853	s.MetricName = &v
55854	return s
55855}
55856
55857type UpdateCustomMetricOutput struct {
55858	_ struct{} `type:"structure"`
55859
55860	// The creation date of the custom metric in milliseconds since epoch.
55861	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
55862
55863	// A friendly name in the console for the custom metric
55864	DisplayName *string `locationName:"displayName" type:"string"`
55865
55866	// The time the custom metric was last modified in milliseconds since epoch.
55867	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
55868
55869	// The Amazon Resource Number (ARN) of the custom metric.
55870	MetricArn *string `locationName:"metricArn" type:"string"`
55871
55872	// The name of the custom metric.
55873	MetricName *string `locationName:"metricName" min:"1" type:"string"`
55874
55875	// The type of the custom metric. Types include string-list, ip-address-list,
55876	// number-list, and number.
55877	MetricType *string `locationName:"metricType" type:"string" enum:"CustomMetricType"`
55878}
55879
55880// String returns the string representation
55881func (s UpdateCustomMetricOutput) String() string {
55882	return awsutil.Prettify(s)
55883}
55884
55885// GoString returns the string representation
55886func (s UpdateCustomMetricOutput) GoString() string {
55887	return s.String()
55888}
55889
55890// SetCreationDate sets the CreationDate field's value.
55891func (s *UpdateCustomMetricOutput) SetCreationDate(v time.Time) *UpdateCustomMetricOutput {
55892	s.CreationDate = &v
55893	return s
55894}
55895
55896// SetDisplayName sets the DisplayName field's value.
55897func (s *UpdateCustomMetricOutput) SetDisplayName(v string) *UpdateCustomMetricOutput {
55898	s.DisplayName = &v
55899	return s
55900}
55901
55902// SetLastModifiedDate sets the LastModifiedDate field's value.
55903func (s *UpdateCustomMetricOutput) SetLastModifiedDate(v time.Time) *UpdateCustomMetricOutput {
55904	s.LastModifiedDate = &v
55905	return s
55906}
55907
55908// SetMetricArn sets the MetricArn field's value.
55909func (s *UpdateCustomMetricOutput) SetMetricArn(v string) *UpdateCustomMetricOutput {
55910	s.MetricArn = &v
55911	return s
55912}
55913
55914// SetMetricName sets the MetricName field's value.
55915func (s *UpdateCustomMetricOutput) SetMetricName(v string) *UpdateCustomMetricOutput {
55916	s.MetricName = &v
55917	return s
55918}
55919
55920// SetMetricType sets the MetricType field's value.
55921func (s *UpdateCustomMetricOutput) SetMetricType(v string) *UpdateCustomMetricOutput {
55922	s.MetricType = &v
55923	return s
55924}
55925
55926// Parameters to define a mitigation action that changes the state of the device
55927// certificate to inactive.
55928type UpdateDeviceCertificateParams struct {
55929	_ struct{} `type:"structure"`
55930
55931	// The action that you want to apply to the device certificate. The only supported
55932	// value is DEACTIVATE.
55933	//
55934	// Action is a required field
55935	Action *string `locationName:"action" type:"string" required:"true" enum:"DeviceCertificateUpdateAction"`
55936}
55937
55938// String returns the string representation
55939func (s UpdateDeviceCertificateParams) String() string {
55940	return awsutil.Prettify(s)
55941}
55942
55943// GoString returns the string representation
55944func (s UpdateDeviceCertificateParams) GoString() string {
55945	return s.String()
55946}
55947
55948// Validate inspects the fields of the type to determine if they are valid.
55949func (s *UpdateDeviceCertificateParams) Validate() error {
55950	invalidParams := request.ErrInvalidParams{Context: "UpdateDeviceCertificateParams"}
55951	if s.Action == nil {
55952		invalidParams.Add(request.NewErrParamRequired("Action"))
55953	}
55954
55955	if invalidParams.Len() > 0 {
55956		return invalidParams
55957	}
55958	return nil
55959}
55960
55961// SetAction sets the Action field's value.
55962func (s *UpdateDeviceCertificateParams) SetAction(v string) *UpdateDeviceCertificateParams {
55963	s.Action = &v
55964	return s
55965}
55966
55967type UpdateDimensionInput struct {
55968	_ struct{} `type:"structure"`
55969
55970	// A unique identifier for the dimension. Choose something that describes the
55971	// type and value to make it easy to remember what it does.
55972	//
55973	// Name is a required field
55974	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
55975
55976	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
55977	// dimensions, this is a pattern used to match the MQTT topic (for example,
55978	// "admin/#").
55979	//
55980	// StringValues is a required field
55981	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
55982}
55983
55984// String returns the string representation
55985func (s UpdateDimensionInput) String() string {
55986	return awsutil.Prettify(s)
55987}
55988
55989// GoString returns the string representation
55990func (s UpdateDimensionInput) GoString() string {
55991	return s.String()
55992}
55993
55994// Validate inspects the fields of the type to determine if they are valid.
55995func (s *UpdateDimensionInput) Validate() error {
55996	invalidParams := request.ErrInvalidParams{Context: "UpdateDimensionInput"}
55997	if s.Name == nil {
55998		invalidParams.Add(request.NewErrParamRequired("Name"))
55999	}
56000	if s.Name != nil && len(*s.Name) < 1 {
56001		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
56002	}
56003	if s.StringValues == nil {
56004		invalidParams.Add(request.NewErrParamRequired("StringValues"))
56005	}
56006	if s.StringValues != nil && len(s.StringValues) < 1 {
56007		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
56008	}
56009
56010	if invalidParams.Len() > 0 {
56011		return invalidParams
56012	}
56013	return nil
56014}
56015
56016// SetName sets the Name field's value.
56017func (s *UpdateDimensionInput) SetName(v string) *UpdateDimensionInput {
56018	s.Name = &v
56019	return s
56020}
56021
56022// SetStringValues sets the StringValues field's value.
56023func (s *UpdateDimensionInput) SetStringValues(v []*string) *UpdateDimensionInput {
56024	s.StringValues = v
56025	return s
56026}
56027
56028type UpdateDimensionOutput struct {
56029	_ struct{} `type:"structure"`
56030
56031	// The Amazon Resource Name (ARN)of the created dimension.
56032	Arn *string `locationName:"arn" type:"string"`
56033
56034	// The date and time, in milliseconds since epoch, when the dimension was initially
56035	// created.
56036	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
56037
56038	// The date and time, in milliseconds since epoch, when the dimension was most
56039	// recently updated.
56040	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
56041
56042	// A unique identifier for the dimension.
56043	Name *string `locationName:"name" min:"1" type:"string"`
56044
56045	// The value or list of values used to scope the dimension. For example, for
56046	// topic filters, this is the pattern used to match the MQTT topic name.
56047	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
56048
56049	// The type of the dimension.
56050	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
56051}
56052
56053// String returns the string representation
56054func (s UpdateDimensionOutput) String() string {
56055	return awsutil.Prettify(s)
56056}
56057
56058// GoString returns the string representation
56059func (s UpdateDimensionOutput) GoString() string {
56060	return s.String()
56061}
56062
56063// SetArn sets the Arn field's value.
56064func (s *UpdateDimensionOutput) SetArn(v string) *UpdateDimensionOutput {
56065	s.Arn = &v
56066	return s
56067}
56068
56069// SetCreationDate sets the CreationDate field's value.
56070func (s *UpdateDimensionOutput) SetCreationDate(v time.Time) *UpdateDimensionOutput {
56071	s.CreationDate = &v
56072	return s
56073}
56074
56075// SetLastModifiedDate sets the LastModifiedDate field's value.
56076func (s *UpdateDimensionOutput) SetLastModifiedDate(v time.Time) *UpdateDimensionOutput {
56077	s.LastModifiedDate = &v
56078	return s
56079}
56080
56081// SetName sets the Name field's value.
56082func (s *UpdateDimensionOutput) SetName(v string) *UpdateDimensionOutput {
56083	s.Name = &v
56084	return s
56085}
56086
56087// SetStringValues sets the StringValues field's value.
56088func (s *UpdateDimensionOutput) SetStringValues(v []*string) *UpdateDimensionOutput {
56089	s.StringValues = v
56090	return s
56091}
56092
56093// SetType sets the Type field's value.
56094func (s *UpdateDimensionOutput) SetType(v string) *UpdateDimensionOutput {
56095	s.Type = &v
56096	return s
56097}
56098
56099type UpdateDomainConfigurationInput struct {
56100	_ struct{} `type:"structure"`
56101
56102	// An object that specifies the authorization service for a domain.
56103	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
56104
56105	// The name of the domain configuration to be updated.
56106	//
56107	// DomainConfigurationName is a required field
56108	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
56109
56110	// The status to which the domain configuration should be updated.
56111	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
56112
56113	// Removes the authorization configuration from a domain.
56114	RemoveAuthorizerConfig *bool `locationName:"removeAuthorizerConfig" type:"boolean"`
56115}
56116
56117// String returns the string representation
56118func (s UpdateDomainConfigurationInput) String() string {
56119	return awsutil.Prettify(s)
56120}
56121
56122// GoString returns the string representation
56123func (s UpdateDomainConfigurationInput) GoString() string {
56124	return s.String()
56125}
56126
56127// Validate inspects the fields of the type to determine if they are valid.
56128func (s *UpdateDomainConfigurationInput) Validate() error {
56129	invalidParams := request.ErrInvalidParams{Context: "UpdateDomainConfigurationInput"}
56130	if s.DomainConfigurationName == nil {
56131		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
56132	}
56133	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
56134		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
56135	}
56136	if s.AuthorizerConfig != nil {
56137		if err := s.AuthorizerConfig.Validate(); err != nil {
56138			invalidParams.AddNested("AuthorizerConfig", err.(request.ErrInvalidParams))
56139		}
56140	}
56141
56142	if invalidParams.Len() > 0 {
56143		return invalidParams
56144	}
56145	return nil
56146}
56147
56148// SetAuthorizerConfig sets the AuthorizerConfig field's value.
56149func (s *UpdateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *UpdateDomainConfigurationInput {
56150	s.AuthorizerConfig = v
56151	return s
56152}
56153
56154// SetDomainConfigurationName sets the DomainConfigurationName field's value.
56155func (s *UpdateDomainConfigurationInput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationInput {
56156	s.DomainConfigurationName = &v
56157	return s
56158}
56159
56160// SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
56161func (s *UpdateDomainConfigurationInput) SetDomainConfigurationStatus(v string) *UpdateDomainConfigurationInput {
56162	s.DomainConfigurationStatus = &v
56163	return s
56164}
56165
56166// SetRemoveAuthorizerConfig sets the RemoveAuthorizerConfig field's value.
56167func (s *UpdateDomainConfigurationInput) SetRemoveAuthorizerConfig(v bool) *UpdateDomainConfigurationInput {
56168	s.RemoveAuthorizerConfig = &v
56169	return s
56170}
56171
56172type UpdateDomainConfigurationOutput struct {
56173	_ struct{} `type:"structure"`
56174
56175	// The ARN of the domain configuration that was updated.
56176	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
56177
56178	// The name of the domain configuration that was updated.
56179	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
56180}
56181
56182// String returns the string representation
56183func (s UpdateDomainConfigurationOutput) String() string {
56184	return awsutil.Prettify(s)
56185}
56186
56187// GoString returns the string representation
56188func (s UpdateDomainConfigurationOutput) GoString() string {
56189	return s.String()
56190}
56191
56192// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
56193func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *UpdateDomainConfigurationOutput {
56194	s.DomainConfigurationArn = &v
56195	return s
56196}
56197
56198// SetDomainConfigurationName sets the DomainConfigurationName field's value.
56199func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationOutput {
56200	s.DomainConfigurationName = &v
56201	return s
56202}
56203
56204type UpdateDynamicThingGroupInput struct {
56205	_ struct{} `type:"structure"`
56206
56207	// The expected version of the dynamic thing group to update.
56208	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
56209
56210	// The dynamic thing group index to update.
56211	//
56212	// Currently one index is supported: 'AWS_Things'.
56213	IndexName *string `locationName:"indexName" min:"1" type:"string"`
56214
56215	// The dynamic thing group search query string to update.
56216	QueryString *string `locationName:"queryString" min:"1" type:"string"`
56217
56218	// The dynamic thing group query version to update.
56219	//
56220	// Currently one query version is supported: "2017-09-30". If not specified,
56221	// the query version defaults to this value.
56222	QueryVersion *string `locationName:"queryVersion" type:"string"`
56223
56224	// The name of the dynamic thing group to update.
56225	//
56226	// ThingGroupName is a required field
56227	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
56228
56229	// The dynamic thing group properties to update.
56230	//
56231	// ThingGroupProperties is a required field
56232	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
56233}
56234
56235// String returns the string representation
56236func (s UpdateDynamicThingGroupInput) String() string {
56237	return awsutil.Prettify(s)
56238}
56239
56240// GoString returns the string representation
56241func (s UpdateDynamicThingGroupInput) GoString() string {
56242	return s.String()
56243}
56244
56245// Validate inspects the fields of the type to determine if they are valid.
56246func (s *UpdateDynamicThingGroupInput) Validate() error {
56247	invalidParams := request.ErrInvalidParams{Context: "UpdateDynamicThingGroupInput"}
56248	if s.IndexName != nil && len(*s.IndexName) < 1 {
56249		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
56250	}
56251	if s.QueryString != nil && len(*s.QueryString) < 1 {
56252		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
56253	}
56254	if s.ThingGroupName == nil {
56255		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
56256	}
56257	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
56258		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
56259	}
56260	if s.ThingGroupProperties == nil {
56261		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
56262	}
56263
56264	if invalidParams.Len() > 0 {
56265		return invalidParams
56266	}
56267	return nil
56268}
56269
56270// SetExpectedVersion sets the ExpectedVersion field's value.
56271func (s *UpdateDynamicThingGroupInput) SetExpectedVersion(v int64) *UpdateDynamicThingGroupInput {
56272	s.ExpectedVersion = &v
56273	return s
56274}
56275
56276// SetIndexName sets the IndexName field's value.
56277func (s *UpdateDynamicThingGroupInput) SetIndexName(v string) *UpdateDynamicThingGroupInput {
56278	s.IndexName = &v
56279	return s
56280}
56281
56282// SetQueryString sets the QueryString field's value.
56283func (s *UpdateDynamicThingGroupInput) SetQueryString(v string) *UpdateDynamicThingGroupInput {
56284	s.QueryString = &v
56285	return s
56286}
56287
56288// SetQueryVersion sets the QueryVersion field's value.
56289func (s *UpdateDynamicThingGroupInput) SetQueryVersion(v string) *UpdateDynamicThingGroupInput {
56290	s.QueryVersion = &v
56291	return s
56292}
56293
56294// SetThingGroupName sets the ThingGroupName field's value.
56295func (s *UpdateDynamicThingGroupInput) SetThingGroupName(v string) *UpdateDynamicThingGroupInput {
56296	s.ThingGroupName = &v
56297	return s
56298}
56299
56300// SetThingGroupProperties sets the ThingGroupProperties field's value.
56301func (s *UpdateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateDynamicThingGroupInput {
56302	s.ThingGroupProperties = v
56303	return s
56304}
56305
56306type UpdateDynamicThingGroupOutput struct {
56307	_ struct{} `type:"structure"`
56308
56309	// The dynamic thing group version.
56310	Version *int64 `locationName:"version" type:"long"`
56311}
56312
56313// String returns the string representation
56314func (s UpdateDynamicThingGroupOutput) String() string {
56315	return awsutil.Prettify(s)
56316}
56317
56318// GoString returns the string representation
56319func (s UpdateDynamicThingGroupOutput) GoString() string {
56320	return s.String()
56321}
56322
56323// SetVersion sets the Version field's value.
56324func (s *UpdateDynamicThingGroupOutput) SetVersion(v int64) *UpdateDynamicThingGroupOutput {
56325	s.Version = &v
56326	return s
56327}
56328
56329type UpdateEventConfigurationsInput struct {
56330	_ struct{} `type:"structure"`
56331
56332	// The new event configuration values.
56333	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
56334}
56335
56336// String returns the string representation
56337func (s UpdateEventConfigurationsInput) String() string {
56338	return awsutil.Prettify(s)
56339}
56340
56341// GoString returns the string representation
56342func (s UpdateEventConfigurationsInput) GoString() string {
56343	return s.String()
56344}
56345
56346// SetEventConfigurations sets the EventConfigurations field's value.
56347func (s *UpdateEventConfigurationsInput) SetEventConfigurations(v map[string]*Configuration) *UpdateEventConfigurationsInput {
56348	s.EventConfigurations = v
56349	return s
56350}
56351
56352type UpdateEventConfigurationsOutput struct {
56353	_ struct{} `type:"structure"`
56354}
56355
56356// String returns the string representation
56357func (s UpdateEventConfigurationsOutput) String() string {
56358	return awsutil.Prettify(s)
56359}
56360
56361// GoString returns the string representation
56362func (s UpdateEventConfigurationsOutput) GoString() string {
56363	return s.String()
56364}
56365
56366type UpdateIndexingConfigurationInput struct {
56367	_ struct{} `type:"structure"`
56368
56369	// Thing group indexing configuration.
56370	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
56371
56372	// Thing indexing configuration.
56373	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
56374}
56375
56376// String returns the string representation
56377func (s UpdateIndexingConfigurationInput) String() string {
56378	return awsutil.Prettify(s)
56379}
56380
56381// GoString returns the string representation
56382func (s UpdateIndexingConfigurationInput) GoString() string {
56383	return s.String()
56384}
56385
56386// Validate inspects the fields of the type to determine if they are valid.
56387func (s *UpdateIndexingConfigurationInput) Validate() error {
56388	invalidParams := request.ErrInvalidParams{Context: "UpdateIndexingConfigurationInput"}
56389	if s.ThingGroupIndexingConfiguration != nil {
56390		if err := s.ThingGroupIndexingConfiguration.Validate(); err != nil {
56391			invalidParams.AddNested("ThingGroupIndexingConfiguration", err.(request.ErrInvalidParams))
56392		}
56393	}
56394	if s.ThingIndexingConfiguration != nil {
56395		if err := s.ThingIndexingConfiguration.Validate(); err != nil {
56396			invalidParams.AddNested("ThingIndexingConfiguration", err.(request.ErrInvalidParams))
56397		}
56398	}
56399
56400	if invalidParams.Len() > 0 {
56401		return invalidParams
56402	}
56403	return nil
56404}
56405
56406// SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
56407func (s *UpdateIndexingConfigurationInput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *UpdateIndexingConfigurationInput {
56408	s.ThingGroupIndexingConfiguration = v
56409	return s
56410}
56411
56412// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
56413func (s *UpdateIndexingConfigurationInput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *UpdateIndexingConfigurationInput {
56414	s.ThingIndexingConfiguration = v
56415	return s
56416}
56417
56418type UpdateIndexingConfigurationOutput struct {
56419	_ struct{} `type:"structure"`
56420}
56421
56422// String returns the string representation
56423func (s UpdateIndexingConfigurationOutput) String() string {
56424	return awsutil.Prettify(s)
56425}
56426
56427// GoString returns the string representation
56428func (s UpdateIndexingConfigurationOutput) GoString() string {
56429	return s.String()
56430}
56431
56432type UpdateJobInput struct {
56433	_ struct{} `type:"structure"`
56434
56435	// Allows you to create criteria to abort a job.
56436	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
56437
56438	// A short text description of the job.
56439	Description *string `locationName:"description" type:"string"`
56440
56441	// Allows you to create a staged rollout of the job.
56442	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
56443
56444	// The ID of the job to be updated.
56445	//
56446	// JobId is a required field
56447	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
56448
56449	// The namespace used to indicate that a job is a customer-managed job.
56450	//
56451	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
56452	// to MQTT topics that contain the value in the following format.
56453	//
56454	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
56455	//
56456	// The namespaceId feature is in public preview.
56457	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
56458
56459	// Configuration information for pre-signed S3 URLs.
56460	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
56461
56462	// Specifies the amount of time each device has to finish its execution of the
56463	// job. The timer is started when the job execution status is set to IN_PROGRESS.
56464	// If the job execution status is not set to another terminal state before the
56465	// time expires, it will be automatically set to TIMED_OUT.
56466	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
56467}
56468
56469// String returns the string representation
56470func (s UpdateJobInput) String() string {
56471	return awsutil.Prettify(s)
56472}
56473
56474// GoString returns the string representation
56475func (s UpdateJobInput) GoString() string {
56476	return s.String()
56477}
56478
56479// Validate inspects the fields of the type to determine if they are valid.
56480func (s *UpdateJobInput) Validate() error {
56481	invalidParams := request.ErrInvalidParams{Context: "UpdateJobInput"}
56482	if s.JobId == nil {
56483		invalidParams.Add(request.NewErrParamRequired("JobId"))
56484	}
56485	if s.JobId != nil && len(*s.JobId) < 1 {
56486		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
56487	}
56488	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
56489		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
56490	}
56491	if s.AbortConfig != nil {
56492		if err := s.AbortConfig.Validate(); err != nil {
56493			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
56494		}
56495	}
56496	if s.JobExecutionsRolloutConfig != nil {
56497		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
56498			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
56499		}
56500	}
56501	if s.PresignedUrlConfig != nil {
56502		if err := s.PresignedUrlConfig.Validate(); err != nil {
56503			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
56504		}
56505	}
56506
56507	if invalidParams.Len() > 0 {
56508		return invalidParams
56509	}
56510	return nil
56511}
56512
56513// SetAbortConfig sets the AbortConfig field's value.
56514func (s *UpdateJobInput) SetAbortConfig(v *AbortConfig) *UpdateJobInput {
56515	s.AbortConfig = v
56516	return s
56517}
56518
56519// SetDescription sets the Description field's value.
56520func (s *UpdateJobInput) SetDescription(v string) *UpdateJobInput {
56521	s.Description = &v
56522	return s
56523}
56524
56525// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
56526func (s *UpdateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *UpdateJobInput {
56527	s.JobExecutionsRolloutConfig = v
56528	return s
56529}
56530
56531// SetJobId sets the JobId field's value.
56532func (s *UpdateJobInput) SetJobId(v string) *UpdateJobInput {
56533	s.JobId = &v
56534	return s
56535}
56536
56537// SetNamespaceId sets the NamespaceId field's value.
56538func (s *UpdateJobInput) SetNamespaceId(v string) *UpdateJobInput {
56539	s.NamespaceId = &v
56540	return s
56541}
56542
56543// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
56544func (s *UpdateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *UpdateJobInput {
56545	s.PresignedUrlConfig = v
56546	return s
56547}
56548
56549// SetTimeoutConfig sets the TimeoutConfig field's value.
56550func (s *UpdateJobInput) SetTimeoutConfig(v *TimeoutConfig) *UpdateJobInput {
56551	s.TimeoutConfig = v
56552	return s
56553}
56554
56555type UpdateJobOutput struct {
56556	_ struct{} `type:"structure"`
56557}
56558
56559// String returns the string representation
56560func (s UpdateJobOutput) String() string {
56561	return awsutil.Prettify(s)
56562}
56563
56564// GoString returns the string representation
56565func (s UpdateJobOutput) GoString() string {
56566	return s.String()
56567}
56568
56569type UpdateMitigationActionInput struct {
56570	_ struct{} `type:"structure"`
56571
56572	// The friendly name for the mitigation action. You cannot change the name by
56573	// using UpdateMitigationAction. Instead, you must delete and recreate the mitigation
56574	// action with the new name.
56575	//
56576	// ActionName is a required field
56577	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
56578
56579	// Defines the type of action and the parameters for that action.
56580	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
56581
56582	// The ARN of the IAM role that is used to apply the mitigation action.
56583	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
56584}
56585
56586// String returns the string representation
56587func (s UpdateMitigationActionInput) String() string {
56588	return awsutil.Prettify(s)
56589}
56590
56591// GoString returns the string representation
56592func (s UpdateMitigationActionInput) GoString() string {
56593	return s.String()
56594}
56595
56596// Validate inspects the fields of the type to determine if they are valid.
56597func (s *UpdateMitigationActionInput) Validate() error {
56598	invalidParams := request.ErrInvalidParams{Context: "UpdateMitigationActionInput"}
56599	if s.ActionName == nil {
56600		invalidParams.Add(request.NewErrParamRequired("ActionName"))
56601	}
56602	if s.ActionName != nil && len(*s.ActionName) < 1 {
56603		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
56604	}
56605	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
56606		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
56607	}
56608	if s.ActionParams != nil {
56609		if err := s.ActionParams.Validate(); err != nil {
56610			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
56611		}
56612	}
56613
56614	if invalidParams.Len() > 0 {
56615		return invalidParams
56616	}
56617	return nil
56618}
56619
56620// SetActionName sets the ActionName field's value.
56621func (s *UpdateMitigationActionInput) SetActionName(v string) *UpdateMitigationActionInput {
56622	s.ActionName = &v
56623	return s
56624}
56625
56626// SetActionParams sets the ActionParams field's value.
56627func (s *UpdateMitigationActionInput) SetActionParams(v *MitigationActionParams) *UpdateMitigationActionInput {
56628	s.ActionParams = v
56629	return s
56630}
56631
56632// SetRoleArn sets the RoleArn field's value.
56633func (s *UpdateMitigationActionInput) SetRoleArn(v string) *UpdateMitigationActionInput {
56634	s.RoleArn = &v
56635	return s
56636}
56637
56638type UpdateMitigationActionOutput struct {
56639	_ struct{} `type:"structure"`
56640
56641	// The ARN for the new mitigation action.
56642	ActionArn *string `locationName:"actionArn" type:"string"`
56643
56644	// A unique identifier for the mitigation action.
56645	ActionId *string `locationName:"actionId" type:"string"`
56646}
56647
56648// String returns the string representation
56649func (s UpdateMitigationActionOutput) String() string {
56650	return awsutil.Prettify(s)
56651}
56652
56653// GoString returns the string representation
56654func (s UpdateMitigationActionOutput) GoString() string {
56655	return s.String()
56656}
56657
56658// SetActionArn sets the ActionArn field's value.
56659func (s *UpdateMitigationActionOutput) SetActionArn(v string) *UpdateMitigationActionOutput {
56660	s.ActionArn = &v
56661	return s
56662}
56663
56664// SetActionId sets the ActionId field's value.
56665func (s *UpdateMitigationActionOutput) SetActionId(v string) *UpdateMitigationActionOutput {
56666	s.ActionId = &v
56667	return s
56668}
56669
56670type UpdateProvisioningTemplateInput struct {
56671	_ struct{} `type:"structure"`
56672
56673	// The ID of the default provisioning template version.
56674	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
56675
56676	// The description of the fleet provisioning template.
56677	Description *string `locationName:"description" type:"string"`
56678
56679	// True to enable the fleet provisioning template, otherwise false.
56680	Enabled *bool `locationName:"enabled" type:"boolean"`
56681
56682	// Updates the pre-provisioning hook template.
56683	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
56684
56685	// The ARN of the role associated with the provisioning template. This IoT role
56686	// grants permission to provision a device.
56687	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
56688
56689	// Removes pre-provisioning hook template.
56690	RemovePreProvisioningHook *bool `locationName:"removePreProvisioningHook" type:"boolean"`
56691
56692	// The name of the fleet provisioning template.
56693	//
56694	// TemplateName is a required field
56695	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
56696}
56697
56698// String returns the string representation
56699func (s UpdateProvisioningTemplateInput) String() string {
56700	return awsutil.Prettify(s)
56701}
56702
56703// GoString returns the string representation
56704func (s UpdateProvisioningTemplateInput) GoString() string {
56705	return s.String()
56706}
56707
56708// Validate inspects the fields of the type to determine if they are valid.
56709func (s *UpdateProvisioningTemplateInput) Validate() error {
56710	invalidParams := request.ErrInvalidParams{Context: "UpdateProvisioningTemplateInput"}
56711	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
56712		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
56713	}
56714	if s.TemplateName == nil {
56715		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
56716	}
56717	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
56718		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
56719	}
56720	if s.PreProvisioningHook != nil {
56721		if err := s.PreProvisioningHook.Validate(); err != nil {
56722			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
56723		}
56724	}
56725
56726	if invalidParams.Len() > 0 {
56727		return invalidParams
56728	}
56729	return nil
56730}
56731
56732// SetDefaultVersionId sets the DefaultVersionId field's value.
56733func (s *UpdateProvisioningTemplateInput) SetDefaultVersionId(v int64) *UpdateProvisioningTemplateInput {
56734	s.DefaultVersionId = &v
56735	return s
56736}
56737
56738// SetDescription sets the Description field's value.
56739func (s *UpdateProvisioningTemplateInput) SetDescription(v string) *UpdateProvisioningTemplateInput {
56740	s.Description = &v
56741	return s
56742}
56743
56744// SetEnabled sets the Enabled field's value.
56745func (s *UpdateProvisioningTemplateInput) SetEnabled(v bool) *UpdateProvisioningTemplateInput {
56746	s.Enabled = &v
56747	return s
56748}
56749
56750// SetPreProvisioningHook sets the PreProvisioningHook field's value.
56751func (s *UpdateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *UpdateProvisioningTemplateInput {
56752	s.PreProvisioningHook = v
56753	return s
56754}
56755
56756// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
56757func (s *UpdateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *UpdateProvisioningTemplateInput {
56758	s.ProvisioningRoleArn = &v
56759	return s
56760}
56761
56762// SetRemovePreProvisioningHook sets the RemovePreProvisioningHook field's value.
56763func (s *UpdateProvisioningTemplateInput) SetRemovePreProvisioningHook(v bool) *UpdateProvisioningTemplateInput {
56764	s.RemovePreProvisioningHook = &v
56765	return s
56766}
56767
56768// SetTemplateName sets the TemplateName field's value.
56769func (s *UpdateProvisioningTemplateInput) SetTemplateName(v string) *UpdateProvisioningTemplateInput {
56770	s.TemplateName = &v
56771	return s
56772}
56773
56774type UpdateProvisioningTemplateOutput struct {
56775	_ struct{} `type:"structure"`
56776}
56777
56778// String returns the string representation
56779func (s UpdateProvisioningTemplateOutput) String() string {
56780	return awsutil.Prettify(s)
56781}
56782
56783// GoString returns the string representation
56784func (s UpdateProvisioningTemplateOutput) GoString() string {
56785	return s.String()
56786}
56787
56788type UpdateRoleAliasInput struct {
56789	_ struct{} `type:"structure"`
56790
56791	// The number of seconds the credential will be valid.
56792	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
56793
56794	// The role alias to update.
56795	//
56796	// RoleAlias is a required field
56797	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
56798
56799	// The role ARN.
56800	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
56801}
56802
56803// String returns the string representation
56804func (s UpdateRoleAliasInput) String() string {
56805	return awsutil.Prettify(s)
56806}
56807
56808// GoString returns the string representation
56809func (s UpdateRoleAliasInput) GoString() string {
56810	return s.String()
56811}
56812
56813// Validate inspects the fields of the type to determine if they are valid.
56814func (s *UpdateRoleAliasInput) Validate() error {
56815	invalidParams := request.ErrInvalidParams{Context: "UpdateRoleAliasInput"}
56816	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
56817		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
56818	}
56819	if s.RoleAlias == nil {
56820		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
56821	}
56822	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
56823		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
56824	}
56825	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
56826		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
56827	}
56828
56829	if invalidParams.Len() > 0 {
56830		return invalidParams
56831	}
56832	return nil
56833}
56834
56835// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
56836func (s *UpdateRoleAliasInput) SetCredentialDurationSeconds(v int64) *UpdateRoleAliasInput {
56837	s.CredentialDurationSeconds = &v
56838	return s
56839}
56840
56841// SetRoleAlias sets the RoleAlias field's value.
56842func (s *UpdateRoleAliasInput) SetRoleAlias(v string) *UpdateRoleAliasInput {
56843	s.RoleAlias = &v
56844	return s
56845}
56846
56847// SetRoleArn sets the RoleArn field's value.
56848func (s *UpdateRoleAliasInput) SetRoleArn(v string) *UpdateRoleAliasInput {
56849	s.RoleArn = &v
56850	return s
56851}
56852
56853type UpdateRoleAliasOutput struct {
56854	_ struct{} `type:"structure"`
56855
56856	// The role alias.
56857	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
56858
56859	// The role alias ARN.
56860	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
56861}
56862
56863// String returns the string representation
56864func (s UpdateRoleAliasOutput) String() string {
56865	return awsutil.Prettify(s)
56866}
56867
56868// GoString returns the string representation
56869func (s UpdateRoleAliasOutput) GoString() string {
56870	return s.String()
56871}
56872
56873// SetRoleAlias sets the RoleAlias field's value.
56874func (s *UpdateRoleAliasOutput) SetRoleAlias(v string) *UpdateRoleAliasOutput {
56875	s.RoleAlias = &v
56876	return s
56877}
56878
56879// SetRoleAliasArn sets the RoleAliasArn field's value.
56880func (s *UpdateRoleAliasOutput) SetRoleAliasArn(v string) *UpdateRoleAliasOutput {
56881	s.RoleAliasArn = &v
56882	return s
56883}
56884
56885type UpdateScheduledAuditInput struct {
56886	_ struct{} `type:"structure"`
56887
56888	// The day of the month on which the scheduled audit takes place. This can be
56889	// 1 through 31 or LAST. This field is required if the frequency parameter is
56890	// set to MONTHLY. If days 29-31 are specified, and the month does not have
56891	// that many days, the audit takes place on the "LAST" day of the month.
56892	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
56893
56894	// The day of the week on which the scheduled audit takes place. This can be
56895	// one of SUN, MON, TUE, WED, THU, FRI, or SAT. This field is required if the
56896	// "frequency" parameter is set to WEEKLY or BIWEEKLY.
56897	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
56898
56899	// How often the scheduled audit takes place, either DAILY, WEEKLY, BIWEEKLY,
56900	// or MONTHLY. The start time of each audit is determined by the system.
56901	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
56902
56903	// The name of the scheduled audit. (Max. 128 chars)
56904	//
56905	// ScheduledAuditName is a required field
56906	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
56907
56908	// Which checks are performed during the scheduled audit. Checks must be enabled
56909	// for your account. (Use DescribeAccountAuditConfiguration to see the list
56910	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
56911	// to select which checks are enabled.)
56912	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
56913}
56914
56915// String returns the string representation
56916func (s UpdateScheduledAuditInput) String() string {
56917	return awsutil.Prettify(s)
56918}
56919
56920// GoString returns the string representation
56921func (s UpdateScheduledAuditInput) GoString() string {
56922	return s.String()
56923}
56924
56925// Validate inspects the fields of the type to determine if they are valid.
56926func (s *UpdateScheduledAuditInput) Validate() error {
56927	invalidParams := request.ErrInvalidParams{Context: "UpdateScheduledAuditInput"}
56928	if s.ScheduledAuditName == nil {
56929		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
56930	}
56931	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
56932		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
56933	}
56934
56935	if invalidParams.Len() > 0 {
56936		return invalidParams
56937	}
56938	return nil
56939}
56940
56941// SetDayOfMonth sets the DayOfMonth field's value.
56942func (s *UpdateScheduledAuditInput) SetDayOfMonth(v string) *UpdateScheduledAuditInput {
56943	s.DayOfMonth = &v
56944	return s
56945}
56946
56947// SetDayOfWeek sets the DayOfWeek field's value.
56948func (s *UpdateScheduledAuditInput) SetDayOfWeek(v string) *UpdateScheduledAuditInput {
56949	s.DayOfWeek = &v
56950	return s
56951}
56952
56953// SetFrequency sets the Frequency field's value.
56954func (s *UpdateScheduledAuditInput) SetFrequency(v string) *UpdateScheduledAuditInput {
56955	s.Frequency = &v
56956	return s
56957}
56958
56959// SetScheduledAuditName sets the ScheduledAuditName field's value.
56960func (s *UpdateScheduledAuditInput) SetScheduledAuditName(v string) *UpdateScheduledAuditInput {
56961	s.ScheduledAuditName = &v
56962	return s
56963}
56964
56965// SetTargetCheckNames sets the TargetCheckNames field's value.
56966func (s *UpdateScheduledAuditInput) SetTargetCheckNames(v []*string) *UpdateScheduledAuditInput {
56967	s.TargetCheckNames = v
56968	return s
56969}
56970
56971type UpdateScheduledAuditOutput struct {
56972	_ struct{} `type:"structure"`
56973
56974	// The ARN of the scheduled audit.
56975	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
56976}
56977
56978// String returns the string representation
56979func (s UpdateScheduledAuditOutput) String() string {
56980	return awsutil.Prettify(s)
56981}
56982
56983// GoString returns the string representation
56984func (s UpdateScheduledAuditOutput) GoString() string {
56985	return s.String()
56986}
56987
56988// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
56989func (s *UpdateScheduledAuditOutput) SetScheduledAuditArn(v string) *UpdateScheduledAuditOutput {
56990	s.ScheduledAuditArn = &v
56991	return s
56992}
56993
56994type UpdateSecurityProfileInput struct {
56995	_ struct{} `type:"structure"`
56996
56997	// Please use UpdateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
56998	//
56999	// A list of metrics whose data is retained (stored). By default, data is retained
57000	// for any metric used in the profile's behaviors, but it is also retained for
57001	// any metric specified here. Can be used with custom metrics; cannot be used
57002	// with dimensions.
57003	//
57004	// Deprecated: Use additionalMetricsToRetainV2.
57005	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
57006
57007	// A list of metrics whose data is retained (stored). By default, data is retained
57008	// for any metric used in the profile's behaviors, but it is also retained for
57009	// any metric specified here. Can be used with custom metrics; cannot be used
57010	// with dimensions.
57011	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
57012
57013	// Where the alerts are sent. (Alerts are always sent to the console.)
57014	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
57015
57016	// Specifies the behaviors that, when violated by a device (thing), cause an
57017	// alert.
57018	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
57019
57020	// If true, delete all additionalMetricsToRetain defined for this security profile.
57021	// If any additionalMetricsToRetain are defined in the current invocation, an
57022	// exception occurs.
57023	DeleteAdditionalMetricsToRetain *bool `locationName:"deleteAdditionalMetricsToRetain" type:"boolean"`
57024
57025	// If true, delete all alertTargets defined for this security profile. If any
57026	// alertTargets are defined in the current invocation, an exception occurs.
57027	DeleteAlertTargets *bool `locationName:"deleteAlertTargets" type:"boolean"`
57028
57029	// If true, delete all behaviors defined for this security profile. If any behaviors
57030	// are defined in the current invocation, an exception occurs.
57031	DeleteBehaviors *bool `locationName:"deleteBehaviors" type:"boolean"`
57032
57033	// The expected version of the security profile. A new version is generated
57034	// whenever the security profile is updated. If you specify a value that is
57035	// different from the actual version, a VersionConflictException is thrown.
57036	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
57037
57038	// A description of the security profile.
57039	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
57040
57041	// The name of the security profile you want to update.
57042	//
57043	// SecurityProfileName is a required field
57044	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
57045}
57046
57047// String returns the string representation
57048func (s UpdateSecurityProfileInput) String() string {
57049	return awsutil.Prettify(s)
57050}
57051
57052// GoString returns the string representation
57053func (s UpdateSecurityProfileInput) GoString() string {
57054	return s.String()
57055}
57056
57057// Validate inspects the fields of the type to determine if they are valid.
57058func (s *UpdateSecurityProfileInput) Validate() error {
57059	invalidParams := request.ErrInvalidParams{Context: "UpdateSecurityProfileInput"}
57060	if s.SecurityProfileName == nil {
57061		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
57062	}
57063	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
57064		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
57065	}
57066	if s.AdditionalMetricsToRetainV2 != nil {
57067		for i, v := range s.AdditionalMetricsToRetainV2 {
57068			if v == nil {
57069				continue
57070			}
57071			if err := v.Validate(); err != nil {
57072				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
57073			}
57074		}
57075	}
57076	if s.AlertTargets != nil {
57077		for i, v := range s.AlertTargets {
57078			if v == nil {
57079				continue
57080			}
57081			if err := v.Validate(); err != nil {
57082				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
57083			}
57084		}
57085	}
57086	if s.Behaviors != nil {
57087		for i, v := range s.Behaviors {
57088			if v == nil {
57089				continue
57090			}
57091			if err := v.Validate(); err != nil {
57092				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
57093			}
57094		}
57095	}
57096
57097	if invalidParams.Len() > 0 {
57098		return invalidParams
57099	}
57100	return nil
57101}
57102
57103// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
57104func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileInput {
57105	s.AdditionalMetricsToRetain = v
57106	return s
57107}
57108
57109// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
57110func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileInput {
57111	s.AdditionalMetricsToRetainV2 = v
57112	return s
57113}
57114
57115// SetAlertTargets sets the AlertTargets field's value.
57116func (s *UpdateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileInput {
57117	s.AlertTargets = v
57118	return s
57119}
57120
57121// SetBehaviors sets the Behaviors field's value.
57122func (s *UpdateSecurityProfileInput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileInput {
57123	s.Behaviors = v
57124	return s
57125}
57126
57127// SetDeleteAdditionalMetricsToRetain sets the DeleteAdditionalMetricsToRetain field's value.
57128func (s *UpdateSecurityProfileInput) SetDeleteAdditionalMetricsToRetain(v bool) *UpdateSecurityProfileInput {
57129	s.DeleteAdditionalMetricsToRetain = &v
57130	return s
57131}
57132
57133// SetDeleteAlertTargets sets the DeleteAlertTargets field's value.
57134func (s *UpdateSecurityProfileInput) SetDeleteAlertTargets(v bool) *UpdateSecurityProfileInput {
57135	s.DeleteAlertTargets = &v
57136	return s
57137}
57138
57139// SetDeleteBehaviors sets the DeleteBehaviors field's value.
57140func (s *UpdateSecurityProfileInput) SetDeleteBehaviors(v bool) *UpdateSecurityProfileInput {
57141	s.DeleteBehaviors = &v
57142	return s
57143}
57144
57145// SetExpectedVersion sets the ExpectedVersion field's value.
57146func (s *UpdateSecurityProfileInput) SetExpectedVersion(v int64) *UpdateSecurityProfileInput {
57147	s.ExpectedVersion = &v
57148	return s
57149}
57150
57151// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
57152func (s *UpdateSecurityProfileInput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileInput {
57153	s.SecurityProfileDescription = &v
57154	return s
57155}
57156
57157// SetSecurityProfileName sets the SecurityProfileName field's value.
57158func (s *UpdateSecurityProfileInput) SetSecurityProfileName(v string) *UpdateSecurityProfileInput {
57159	s.SecurityProfileName = &v
57160	return s
57161}
57162
57163type UpdateSecurityProfileOutput struct {
57164	_ struct{} `type:"structure"`
57165
57166	// Please use UpdateSecurityProfileResponse$additionalMetricsToRetainV2 instead.
57167	//
57168	// A list of metrics whose data is retained (stored). By default, data is retained
57169	// for any metric used in the security profile's behaviors, but it is also retained
57170	// for any metric specified here.
57171	//
57172	// Deprecated: Use additionalMetricsToRetainV2.
57173	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
57174
57175	// A list of metrics whose data is retained (stored). By default, data is retained
57176	// for any metric used in the profile's behaviors, but it is also retained for
57177	// any metric specified here. Can be used with custom metrics; cannot be used
57178	// with dimensions.
57179	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
57180
57181	// Where the alerts are sent. (Alerts are always sent to the console.)
57182	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
57183
57184	// Specifies the behaviors that, when violated by a device (thing), cause an
57185	// alert.
57186	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
57187
57188	// The time the security profile was created.
57189	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
57190
57191	// The time the security profile was last modified.
57192	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
57193
57194	// The ARN of the security profile that was updated.
57195	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
57196
57197	// The description of the security profile.
57198	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
57199
57200	// The name of the security profile that was updated.
57201	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
57202
57203	// The updated version of the security profile.
57204	Version *int64 `locationName:"version" type:"long"`
57205}
57206
57207// String returns the string representation
57208func (s UpdateSecurityProfileOutput) String() string {
57209	return awsutil.Prettify(s)
57210}
57211
57212// GoString returns the string representation
57213func (s UpdateSecurityProfileOutput) GoString() string {
57214	return s.String()
57215}
57216
57217// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
57218func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileOutput {
57219	s.AdditionalMetricsToRetain = v
57220	return s
57221}
57222
57223// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
57224func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileOutput {
57225	s.AdditionalMetricsToRetainV2 = v
57226	return s
57227}
57228
57229// SetAlertTargets sets the AlertTargets field's value.
57230func (s *UpdateSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileOutput {
57231	s.AlertTargets = v
57232	return s
57233}
57234
57235// SetBehaviors sets the Behaviors field's value.
57236func (s *UpdateSecurityProfileOutput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileOutput {
57237	s.Behaviors = v
57238	return s
57239}
57240
57241// SetCreationDate sets the CreationDate field's value.
57242func (s *UpdateSecurityProfileOutput) SetCreationDate(v time.Time) *UpdateSecurityProfileOutput {
57243	s.CreationDate = &v
57244	return s
57245}
57246
57247// SetLastModifiedDate sets the LastModifiedDate field's value.
57248func (s *UpdateSecurityProfileOutput) SetLastModifiedDate(v time.Time) *UpdateSecurityProfileOutput {
57249	s.LastModifiedDate = &v
57250	return s
57251}
57252
57253// SetSecurityProfileArn sets the SecurityProfileArn field's value.
57254func (s *UpdateSecurityProfileOutput) SetSecurityProfileArn(v string) *UpdateSecurityProfileOutput {
57255	s.SecurityProfileArn = &v
57256	return s
57257}
57258
57259// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
57260func (s *UpdateSecurityProfileOutput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileOutput {
57261	s.SecurityProfileDescription = &v
57262	return s
57263}
57264
57265// SetSecurityProfileName sets the SecurityProfileName field's value.
57266func (s *UpdateSecurityProfileOutput) SetSecurityProfileName(v string) *UpdateSecurityProfileOutput {
57267	s.SecurityProfileName = &v
57268	return s
57269}
57270
57271// SetVersion sets the Version field's value.
57272func (s *UpdateSecurityProfileOutput) SetVersion(v int64) *UpdateSecurityProfileOutput {
57273	s.Version = &v
57274	return s
57275}
57276
57277type UpdateStreamInput struct {
57278	_ struct{} `type:"structure"`
57279
57280	// The description of the stream.
57281	Description *string `locationName:"description" type:"string"`
57282
57283	// The files associated with the stream.
57284	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
57285
57286	// An IAM role that allows the IoT service principal assumes to access your
57287	// S3 files.
57288	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
57289
57290	// The stream ID.
57291	//
57292	// StreamId is a required field
57293	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
57294}
57295
57296// String returns the string representation
57297func (s UpdateStreamInput) String() string {
57298	return awsutil.Prettify(s)
57299}
57300
57301// GoString returns the string representation
57302func (s UpdateStreamInput) GoString() string {
57303	return s.String()
57304}
57305
57306// Validate inspects the fields of the type to determine if they are valid.
57307func (s *UpdateStreamInput) Validate() error {
57308	invalidParams := request.ErrInvalidParams{Context: "UpdateStreamInput"}
57309	if s.Files != nil && len(s.Files) < 1 {
57310		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
57311	}
57312	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
57313		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
57314	}
57315	if s.StreamId == nil {
57316		invalidParams.Add(request.NewErrParamRequired("StreamId"))
57317	}
57318	if s.StreamId != nil && len(*s.StreamId) < 1 {
57319		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
57320	}
57321	if s.Files != nil {
57322		for i, v := range s.Files {
57323			if v == nil {
57324				continue
57325			}
57326			if err := v.Validate(); err != nil {
57327				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
57328			}
57329		}
57330	}
57331
57332	if invalidParams.Len() > 0 {
57333		return invalidParams
57334	}
57335	return nil
57336}
57337
57338// SetDescription sets the Description field's value.
57339func (s *UpdateStreamInput) SetDescription(v string) *UpdateStreamInput {
57340	s.Description = &v
57341	return s
57342}
57343
57344// SetFiles sets the Files field's value.
57345func (s *UpdateStreamInput) SetFiles(v []*StreamFile) *UpdateStreamInput {
57346	s.Files = v
57347	return s
57348}
57349
57350// SetRoleArn sets the RoleArn field's value.
57351func (s *UpdateStreamInput) SetRoleArn(v string) *UpdateStreamInput {
57352	s.RoleArn = &v
57353	return s
57354}
57355
57356// SetStreamId sets the StreamId field's value.
57357func (s *UpdateStreamInput) SetStreamId(v string) *UpdateStreamInput {
57358	s.StreamId = &v
57359	return s
57360}
57361
57362type UpdateStreamOutput struct {
57363	_ struct{} `type:"structure"`
57364
57365	// A description of the stream.
57366	Description *string `locationName:"description" type:"string"`
57367
57368	// The stream ARN.
57369	StreamArn *string `locationName:"streamArn" type:"string"`
57370
57371	// The stream ID.
57372	StreamId *string `locationName:"streamId" min:"1" type:"string"`
57373
57374	// The stream version.
57375	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
57376}
57377
57378// String returns the string representation
57379func (s UpdateStreamOutput) String() string {
57380	return awsutil.Prettify(s)
57381}
57382
57383// GoString returns the string representation
57384func (s UpdateStreamOutput) GoString() string {
57385	return s.String()
57386}
57387
57388// SetDescription sets the Description field's value.
57389func (s *UpdateStreamOutput) SetDescription(v string) *UpdateStreamOutput {
57390	s.Description = &v
57391	return s
57392}
57393
57394// SetStreamArn sets the StreamArn field's value.
57395func (s *UpdateStreamOutput) SetStreamArn(v string) *UpdateStreamOutput {
57396	s.StreamArn = &v
57397	return s
57398}
57399
57400// SetStreamId sets the StreamId field's value.
57401func (s *UpdateStreamOutput) SetStreamId(v string) *UpdateStreamOutput {
57402	s.StreamId = &v
57403	return s
57404}
57405
57406// SetStreamVersion sets the StreamVersion field's value.
57407func (s *UpdateStreamOutput) SetStreamVersion(v int64) *UpdateStreamOutput {
57408	s.StreamVersion = &v
57409	return s
57410}
57411
57412type UpdateThingGroupInput struct {
57413	_ struct{} `type:"structure"`
57414
57415	// The expected version of the thing group. If this does not match the version
57416	// of the thing group being updated, the update will fail.
57417	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
57418
57419	// The thing group to update.
57420	//
57421	// ThingGroupName is a required field
57422	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
57423
57424	// The thing group properties.
57425	//
57426	// ThingGroupProperties is a required field
57427	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
57428}
57429
57430// String returns the string representation
57431func (s UpdateThingGroupInput) String() string {
57432	return awsutil.Prettify(s)
57433}
57434
57435// GoString returns the string representation
57436func (s UpdateThingGroupInput) GoString() string {
57437	return s.String()
57438}
57439
57440// Validate inspects the fields of the type to determine if they are valid.
57441func (s *UpdateThingGroupInput) Validate() error {
57442	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupInput"}
57443	if s.ThingGroupName == nil {
57444		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
57445	}
57446	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
57447		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
57448	}
57449	if s.ThingGroupProperties == nil {
57450		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
57451	}
57452
57453	if invalidParams.Len() > 0 {
57454		return invalidParams
57455	}
57456	return nil
57457}
57458
57459// SetExpectedVersion sets the ExpectedVersion field's value.
57460func (s *UpdateThingGroupInput) SetExpectedVersion(v int64) *UpdateThingGroupInput {
57461	s.ExpectedVersion = &v
57462	return s
57463}
57464
57465// SetThingGroupName sets the ThingGroupName field's value.
57466func (s *UpdateThingGroupInput) SetThingGroupName(v string) *UpdateThingGroupInput {
57467	s.ThingGroupName = &v
57468	return s
57469}
57470
57471// SetThingGroupProperties sets the ThingGroupProperties field's value.
57472func (s *UpdateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateThingGroupInput {
57473	s.ThingGroupProperties = v
57474	return s
57475}
57476
57477type UpdateThingGroupOutput struct {
57478	_ struct{} `type:"structure"`
57479
57480	// The version of the updated thing group.
57481	Version *int64 `locationName:"version" type:"long"`
57482}
57483
57484// String returns the string representation
57485func (s UpdateThingGroupOutput) String() string {
57486	return awsutil.Prettify(s)
57487}
57488
57489// GoString returns the string representation
57490func (s UpdateThingGroupOutput) GoString() string {
57491	return s.String()
57492}
57493
57494// SetVersion sets the Version field's value.
57495func (s *UpdateThingGroupOutput) SetVersion(v int64) *UpdateThingGroupOutput {
57496	s.Version = &v
57497	return s
57498}
57499
57500type UpdateThingGroupsForThingInput struct {
57501	_ struct{} `type:"structure"`
57502
57503	// Override dynamic thing groups with static thing groups when 10-group limit
57504	// is reached. If a thing belongs to 10 thing groups, and one or more of those
57505	// groups are dynamic thing groups, adding a thing to a static group removes
57506	// the thing from the last dynamic group.
57507	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
57508
57509	// The groups to which the thing will be added.
57510	ThingGroupsToAdd []*string `locationName:"thingGroupsToAdd" type:"list"`
57511
57512	// The groups from which the thing will be removed.
57513	ThingGroupsToRemove []*string `locationName:"thingGroupsToRemove" type:"list"`
57514
57515	// The thing whose group memberships will be updated.
57516	ThingName *string `locationName:"thingName" min:"1" type:"string"`
57517}
57518
57519// String returns the string representation
57520func (s UpdateThingGroupsForThingInput) String() string {
57521	return awsutil.Prettify(s)
57522}
57523
57524// GoString returns the string representation
57525func (s UpdateThingGroupsForThingInput) GoString() string {
57526	return s.String()
57527}
57528
57529// Validate inspects the fields of the type to determine if they are valid.
57530func (s *UpdateThingGroupsForThingInput) Validate() error {
57531	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupsForThingInput"}
57532	if s.ThingName != nil && len(*s.ThingName) < 1 {
57533		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
57534	}
57535
57536	if invalidParams.Len() > 0 {
57537		return invalidParams
57538	}
57539	return nil
57540}
57541
57542// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
57543func (s *UpdateThingGroupsForThingInput) SetOverrideDynamicGroups(v bool) *UpdateThingGroupsForThingInput {
57544	s.OverrideDynamicGroups = &v
57545	return s
57546}
57547
57548// SetThingGroupsToAdd sets the ThingGroupsToAdd field's value.
57549func (s *UpdateThingGroupsForThingInput) SetThingGroupsToAdd(v []*string) *UpdateThingGroupsForThingInput {
57550	s.ThingGroupsToAdd = v
57551	return s
57552}
57553
57554// SetThingGroupsToRemove sets the ThingGroupsToRemove field's value.
57555func (s *UpdateThingGroupsForThingInput) SetThingGroupsToRemove(v []*string) *UpdateThingGroupsForThingInput {
57556	s.ThingGroupsToRemove = v
57557	return s
57558}
57559
57560// SetThingName sets the ThingName field's value.
57561func (s *UpdateThingGroupsForThingInput) SetThingName(v string) *UpdateThingGroupsForThingInput {
57562	s.ThingName = &v
57563	return s
57564}
57565
57566type UpdateThingGroupsForThingOutput struct {
57567	_ struct{} `type:"structure"`
57568}
57569
57570// String returns the string representation
57571func (s UpdateThingGroupsForThingOutput) String() string {
57572	return awsutil.Prettify(s)
57573}
57574
57575// GoString returns the string representation
57576func (s UpdateThingGroupsForThingOutput) GoString() string {
57577	return s.String()
57578}
57579
57580// The input for the UpdateThing operation.
57581type UpdateThingInput struct {
57582	_ struct{} `type:"structure"`
57583
57584	// A list of thing attributes, a JSON string containing name-value pairs. For
57585	// example:
57586	//
57587	// {\"attributes\":{\"name1\":\"value2\"}}
57588	//
57589	// This data is used to add new attributes or update existing attributes.
57590	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
57591
57592	// The expected version of the thing record in the registry. If the version
57593	// of the record in the registry does not match the expected version specified
57594	// in the request, the UpdateThing request is rejected with a VersionConflictException.
57595	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
57596
57597	// Remove a thing type association. If true, the association is removed.
57598	RemoveThingType *bool `locationName:"removeThingType" type:"boolean"`
57599
57600	// The name of the thing to update.
57601	//
57602	// You can't change a thing's name. To change a thing's name, you must create
57603	// a new thing, give it the new name, and then delete the old thing.
57604	//
57605	// ThingName is a required field
57606	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
57607
57608	// The name of the thing type.
57609	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
57610}
57611
57612// String returns the string representation
57613func (s UpdateThingInput) String() string {
57614	return awsutil.Prettify(s)
57615}
57616
57617// GoString returns the string representation
57618func (s UpdateThingInput) GoString() string {
57619	return s.String()
57620}
57621
57622// Validate inspects the fields of the type to determine if they are valid.
57623func (s *UpdateThingInput) Validate() error {
57624	invalidParams := request.ErrInvalidParams{Context: "UpdateThingInput"}
57625	if s.ThingName == nil {
57626		invalidParams.Add(request.NewErrParamRequired("ThingName"))
57627	}
57628	if s.ThingName != nil && len(*s.ThingName) < 1 {
57629		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
57630	}
57631	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
57632		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
57633	}
57634
57635	if invalidParams.Len() > 0 {
57636		return invalidParams
57637	}
57638	return nil
57639}
57640
57641// SetAttributePayload sets the AttributePayload field's value.
57642func (s *UpdateThingInput) SetAttributePayload(v *AttributePayload) *UpdateThingInput {
57643	s.AttributePayload = v
57644	return s
57645}
57646
57647// SetExpectedVersion sets the ExpectedVersion field's value.
57648func (s *UpdateThingInput) SetExpectedVersion(v int64) *UpdateThingInput {
57649	s.ExpectedVersion = &v
57650	return s
57651}
57652
57653// SetRemoveThingType sets the RemoveThingType field's value.
57654func (s *UpdateThingInput) SetRemoveThingType(v bool) *UpdateThingInput {
57655	s.RemoveThingType = &v
57656	return s
57657}
57658
57659// SetThingName sets the ThingName field's value.
57660func (s *UpdateThingInput) SetThingName(v string) *UpdateThingInput {
57661	s.ThingName = &v
57662	return s
57663}
57664
57665// SetThingTypeName sets the ThingTypeName field's value.
57666func (s *UpdateThingInput) SetThingTypeName(v string) *UpdateThingInput {
57667	s.ThingTypeName = &v
57668	return s
57669}
57670
57671// The output from the UpdateThing operation.
57672type UpdateThingOutput struct {
57673	_ struct{} `type:"structure"`
57674}
57675
57676// String returns the string representation
57677func (s UpdateThingOutput) String() string {
57678	return awsutil.Prettify(s)
57679}
57680
57681// GoString returns the string representation
57682func (s UpdateThingOutput) GoString() string {
57683	return s.String()
57684}
57685
57686type UpdateTopicRuleDestinationInput struct {
57687	_ struct{} `type:"structure"`
57688
57689	// The ARN of the topic rule destination.
57690	//
57691	// Arn is a required field
57692	Arn *string `locationName:"arn" type:"string" required:"true"`
57693
57694	// The status of the topic rule destination. Valid values are:
57695	//
57696	// IN_PROGRESS
57697	//
57698	// A topic rule destination was created but has not been confirmed. You can
57699	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
57700	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
57701	// to your confirmation endpoint.
57702	//
57703	// ENABLED
57704	//
57705	// Confirmation was completed, and traffic to this destination is allowed. You
57706	// can set status to DISABLED by calling UpdateTopicRuleDestination.
57707	//
57708	// DISABLED
57709	//
57710	// Confirmation was completed, and traffic to this destination is not allowed.
57711	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
57712	//
57713	// ERROR
57714	//
57715	// Confirmation could not be completed, for example if the confirmation timed
57716	// out. You can call GetTopicRuleDestination for details about the error. You
57717	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
57718	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
57719	// to your confirmation endpoint.
57720	//
57721	// Status is a required field
57722	Status *string `locationName:"status" type:"string" required:"true" enum:"TopicRuleDestinationStatus"`
57723}
57724
57725// String returns the string representation
57726func (s UpdateTopicRuleDestinationInput) String() string {
57727	return awsutil.Prettify(s)
57728}
57729
57730// GoString returns the string representation
57731func (s UpdateTopicRuleDestinationInput) GoString() string {
57732	return s.String()
57733}
57734
57735// Validate inspects the fields of the type to determine if they are valid.
57736func (s *UpdateTopicRuleDestinationInput) Validate() error {
57737	invalidParams := request.ErrInvalidParams{Context: "UpdateTopicRuleDestinationInput"}
57738	if s.Arn == nil {
57739		invalidParams.Add(request.NewErrParamRequired("Arn"))
57740	}
57741	if s.Status == nil {
57742		invalidParams.Add(request.NewErrParamRequired("Status"))
57743	}
57744
57745	if invalidParams.Len() > 0 {
57746		return invalidParams
57747	}
57748	return nil
57749}
57750
57751// SetArn sets the Arn field's value.
57752func (s *UpdateTopicRuleDestinationInput) SetArn(v string) *UpdateTopicRuleDestinationInput {
57753	s.Arn = &v
57754	return s
57755}
57756
57757// SetStatus sets the Status field's value.
57758func (s *UpdateTopicRuleDestinationInput) SetStatus(v string) *UpdateTopicRuleDestinationInput {
57759	s.Status = &v
57760	return s
57761}
57762
57763type UpdateTopicRuleDestinationOutput struct {
57764	_ struct{} `type:"structure"`
57765}
57766
57767// String returns the string representation
57768func (s UpdateTopicRuleDestinationOutput) String() string {
57769	return awsutil.Prettify(s)
57770}
57771
57772// GoString returns the string representation
57773func (s UpdateTopicRuleDestinationOutput) GoString() string {
57774	return s.String()
57775}
57776
57777type ValidateSecurityProfileBehaviorsInput struct {
57778	_ struct{} `type:"structure"`
57779
57780	// Specifies the behaviors that, when violated by a device (thing), cause an
57781	// alert.
57782	//
57783	// Behaviors is a required field
57784	Behaviors []*Behavior `locationName:"behaviors" type:"list" required:"true"`
57785}
57786
57787// String returns the string representation
57788func (s ValidateSecurityProfileBehaviorsInput) String() string {
57789	return awsutil.Prettify(s)
57790}
57791
57792// GoString returns the string representation
57793func (s ValidateSecurityProfileBehaviorsInput) GoString() string {
57794	return s.String()
57795}
57796
57797// Validate inspects the fields of the type to determine if they are valid.
57798func (s *ValidateSecurityProfileBehaviorsInput) Validate() error {
57799	invalidParams := request.ErrInvalidParams{Context: "ValidateSecurityProfileBehaviorsInput"}
57800	if s.Behaviors == nil {
57801		invalidParams.Add(request.NewErrParamRequired("Behaviors"))
57802	}
57803	if s.Behaviors != nil {
57804		for i, v := range s.Behaviors {
57805			if v == nil {
57806				continue
57807			}
57808			if err := v.Validate(); err != nil {
57809				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
57810			}
57811		}
57812	}
57813
57814	if invalidParams.Len() > 0 {
57815		return invalidParams
57816	}
57817	return nil
57818}
57819
57820// SetBehaviors sets the Behaviors field's value.
57821func (s *ValidateSecurityProfileBehaviorsInput) SetBehaviors(v []*Behavior) *ValidateSecurityProfileBehaviorsInput {
57822	s.Behaviors = v
57823	return s
57824}
57825
57826type ValidateSecurityProfileBehaviorsOutput struct {
57827	_ struct{} `type:"structure"`
57828
57829	// True if the behaviors were valid.
57830	Valid *bool `locationName:"valid" type:"boolean"`
57831
57832	// The list of any errors found in the behaviors.
57833	ValidationErrors []*ValidationError `locationName:"validationErrors" type:"list"`
57834}
57835
57836// String returns the string representation
57837func (s ValidateSecurityProfileBehaviorsOutput) String() string {
57838	return awsutil.Prettify(s)
57839}
57840
57841// GoString returns the string representation
57842func (s ValidateSecurityProfileBehaviorsOutput) GoString() string {
57843	return s.String()
57844}
57845
57846// SetValid sets the Valid field's value.
57847func (s *ValidateSecurityProfileBehaviorsOutput) SetValid(v bool) *ValidateSecurityProfileBehaviorsOutput {
57848	s.Valid = &v
57849	return s
57850}
57851
57852// SetValidationErrors sets the ValidationErrors field's value.
57853func (s *ValidateSecurityProfileBehaviorsOutput) SetValidationErrors(v []*ValidationError) *ValidateSecurityProfileBehaviorsOutput {
57854	s.ValidationErrors = v
57855	return s
57856}
57857
57858// Information about an error found in a behavior specification.
57859type ValidationError struct {
57860	_ struct{} `type:"structure"`
57861
57862	// The description of an error found in the behaviors.
57863	ErrorMessage *string `locationName:"errorMessage" type:"string"`
57864}
57865
57866// String returns the string representation
57867func (s ValidationError) String() string {
57868	return awsutil.Prettify(s)
57869}
57870
57871// GoString returns the string representation
57872func (s ValidationError) GoString() string {
57873	return s.String()
57874}
57875
57876// SetErrorMessage sets the ErrorMessage field's value.
57877func (s *ValidationError) SetErrorMessage(v string) *ValidationError {
57878	s.ErrorMessage = &v
57879	return s
57880}
57881
57882// An exception thrown when the version of an entity specified with the expectedVersion
57883// parameter does not match the latest version in the system.
57884type VersionConflictException struct {
57885	_            struct{}                  `type:"structure"`
57886	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
57887
57888	// The message for the exception.
57889	Message_ *string `locationName:"message" type:"string"`
57890}
57891
57892// String returns the string representation
57893func (s VersionConflictException) String() string {
57894	return awsutil.Prettify(s)
57895}
57896
57897// GoString returns the string representation
57898func (s VersionConflictException) GoString() string {
57899	return s.String()
57900}
57901
57902func newErrorVersionConflictException(v protocol.ResponseMetadata) error {
57903	return &VersionConflictException{
57904		RespMetadata: v,
57905	}
57906}
57907
57908// Code returns the exception type name.
57909func (s *VersionConflictException) Code() string {
57910	return "VersionConflictException"
57911}
57912
57913// Message returns the exception's message.
57914func (s *VersionConflictException) Message() string {
57915	if s.Message_ != nil {
57916		return *s.Message_
57917	}
57918	return ""
57919}
57920
57921// OrigErr always returns nil, satisfies awserr.Error interface.
57922func (s *VersionConflictException) OrigErr() error {
57923	return nil
57924}
57925
57926func (s *VersionConflictException) Error() string {
57927	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
57928}
57929
57930// Status code returns the HTTP status code for the request's response error.
57931func (s *VersionConflictException) StatusCode() int {
57932	return s.RespMetadata.StatusCode
57933}
57934
57935// RequestID returns the service's response RequestID for request.
57936func (s *VersionConflictException) RequestID() string {
57937	return s.RespMetadata.RequestID
57938}
57939
57940// The number of policy versions exceeds the limit.
57941type VersionsLimitExceededException struct {
57942	_            struct{}                  `type:"structure"`
57943	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
57944
57945	// The message for the exception.
57946	Message_ *string `locationName:"message" type:"string"`
57947}
57948
57949// String returns the string representation
57950func (s VersionsLimitExceededException) String() string {
57951	return awsutil.Prettify(s)
57952}
57953
57954// GoString returns the string representation
57955func (s VersionsLimitExceededException) GoString() string {
57956	return s.String()
57957}
57958
57959func newErrorVersionsLimitExceededException(v protocol.ResponseMetadata) error {
57960	return &VersionsLimitExceededException{
57961		RespMetadata: v,
57962	}
57963}
57964
57965// Code returns the exception type name.
57966func (s *VersionsLimitExceededException) Code() string {
57967	return "VersionsLimitExceededException"
57968}
57969
57970// Message returns the exception's message.
57971func (s *VersionsLimitExceededException) Message() string {
57972	if s.Message_ != nil {
57973		return *s.Message_
57974	}
57975	return ""
57976}
57977
57978// OrigErr always returns nil, satisfies awserr.Error interface.
57979func (s *VersionsLimitExceededException) OrigErr() error {
57980	return nil
57981}
57982
57983func (s *VersionsLimitExceededException) Error() string {
57984	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
57985}
57986
57987// Status code returns the HTTP status code for the request's response error.
57988func (s *VersionsLimitExceededException) StatusCode() int {
57989	return s.RespMetadata.StatusCode
57990}
57991
57992// RequestID returns the service's response RequestID for request.
57993func (s *VersionsLimitExceededException) RequestID() string {
57994	return s.RespMetadata.RequestID
57995}
57996
57997// Information about a Device Defender security profile behavior violation.
57998type ViolationEvent struct {
57999	_ struct{} `type:"structure"`
58000
58001	// The behavior that was violated.
58002	Behavior *Behavior `locationName:"behavior" type:"structure"`
58003
58004	// The value of the metric (the measurement).
58005	MetricValue *MetricValue `locationName:"metricValue" type:"structure"`
58006
58007	// The name of the security profile whose behavior was violated.
58008	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
58009
58010	// The name of the thing responsible for the violation event.
58011	ThingName *string `locationName:"thingName" min:"1" type:"string"`
58012
58013	// The details of a violation event.
58014	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo `locationName:"violationEventAdditionalInfo" type:"structure"`
58015
58016	// The time the violation event occurred.
58017	ViolationEventTime *time.Time `locationName:"violationEventTime" type:"timestamp"`
58018
58019	// The type of violation event.
58020	ViolationEventType *string `locationName:"violationEventType" type:"string" enum:"ViolationEventType"`
58021
58022	// The ID of the violation event.
58023	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
58024}
58025
58026// String returns the string representation
58027func (s ViolationEvent) String() string {
58028	return awsutil.Prettify(s)
58029}
58030
58031// GoString returns the string representation
58032func (s ViolationEvent) GoString() string {
58033	return s.String()
58034}
58035
58036// SetBehavior sets the Behavior field's value.
58037func (s *ViolationEvent) SetBehavior(v *Behavior) *ViolationEvent {
58038	s.Behavior = v
58039	return s
58040}
58041
58042// SetMetricValue sets the MetricValue field's value.
58043func (s *ViolationEvent) SetMetricValue(v *MetricValue) *ViolationEvent {
58044	s.MetricValue = v
58045	return s
58046}
58047
58048// SetSecurityProfileName sets the SecurityProfileName field's value.
58049func (s *ViolationEvent) SetSecurityProfileName(v string) *ViolationEvent {
58050	s.SecurityProfileName = &v
58051	return s
58052}
58053
58054// SetThingName sets the ThingName field's value.
58055func (s *ViolationEvent) SetThingName(v string) *ViolationEvent {
58056	s.ThingName = &v
58057	return s
58058}
58059
58060// SetViolationEventAdditionalInfo sets the ViolationEventAdditionalInfo field's value.
58061func (s *ViolationEvent) SetViolationEventAdditionalInfo(v *ViolationEventAdditionalInfo) *ViolationEvent {
58062	s.ViolationEventAdditionalInfo = v
58063	return s
58064}
58065
58066// SetViolationEventTime sets the ViolationEventTime field's value.
58067func (s *ViolationEvent) SetViolationEventTime(v time.Time) *ViolationEvent {
58068	s.ViolationEventTime = &v
58069	return s
58070}
58071
58072// SetViolationEventType sets the ViolationEventType field's value.
58073func (s *ViolationEvent) SetViolationEventType(v string) *ViolationEvent {
58074	s.ViolationEventType = &v
58075	return s
58076}
58077
58078// SetViolationId sets the ViolationId field's value.
58079func (s *ViolationEvent) SetViolationId(v string) *ViolationEvent {
58080	s.ViolationId = &v
58081	return s
58082}
58083
58084// The details of a violation event.
58085type ViolationEventAdditionalInfo struct {
58086	_ struct{} `type:"structure"`
58087
58088	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or
58089	// High.
58090	ConfidenceLevel *string `locationName:"confidenceLevel" type:"string" enum:"ConfidenceLevel"`
58091}
58092
58093// String returns the string representation
58094func (s ViolationEventAdditionalInfo) String() string {
58095	return awsutil.Prettify(s)
58096}
58097
58098// GoString returns the string representation
58099func (s ViolationEventAdditionalInfo) GoString() string {
58100	return s.String()
58101}
58102
58103// SetConfidenceLevel sets the ConfidenceLevel field's value.
58104func (s *ViolationEventAdditionalInfo) SetConfidenceLevel(v string) *ViolationEventAdditionalInfo {
58105	s.ConfidenceLevel = &v
58106	return s
58107}
58108
58109// Specifies the time period of which violation events occurred between.
58110type ViolationEventOccurrenceRange struct {
58111	_ struct{} `type:"structure"`
58112
58113	// The end date and time of a time period in which violation events occurred.
58114	//
58115	// EndTime is a required field
58116	EndTime *time.Time `locationName:"endTime" type:"timestamp" required:"true"`
58117
58118	// The start date and time of a time period in which violation events occurred.
58119	//
58120	// StartTime is a required field
58121	StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
58122}
58123
58124// String returns the string representation
58125func (s ViolationEventOccurrenceRange) String() string {
58126	return awsutil.Prettify(s)
58127}
58128
58129// GoString returns the string representation
58130func (s ViolationEventOccurrenceRange) GoString() string {
58131	return s.String()
58132}
58133
58134// Validate inspects the fields of the type to determine if they are valid.
58135func (s *ViolationEventOccurrenceRange) Validate() error {
58136	invalidParams := request.ErrInvalidParams{Context: "ViolationEventOccurrenceRange"}
58137	if s.EndTime == nil {
58138		invalidParams.Add(request.NewErrParamRequired("EndTime"))
58139	}
58140	if s.StartTime == nil {
58141		invalidParams.Add(request.NewErrParamRequired("StartTime"))
58142	}
58143
58144	if invalidParams.Len() > 0 {
58145		return invalidParams
58146	}
58147	return nil
58148}
58149
58150// SetEndTime sets the EndTime field's value.
58151func (s *ViolationEventOccurrenceRange) SetEndTime(v time.Time) *ViolationEventOccurrenceRange {
58152	s.EndTime = &v
58153	return s
58154}
58155
58156// SetStartTime sets the StartTime field's value.
58157func (s *ViolationEventOccurrenceRange) SetStartTime(v time.Time) *ViolationEventOccurrenceRange {
58158	s.StartTime = &v
58159	return s
58160}
58161
58162// The configuration information for a virtual private cloud (VPC) destination.
58163type VpcDestinationConfiguration struct {
58164	_ struct{} `type:"structure"`
58165
58166	// The ARN of a role that has permission to create and attach to elastic network
58167	// interfaces (ENIs).
58168	//
58169	// RoleArn is a required field
58170	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
58171
58172	// The security groups of the VPC destination.
58173	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
58174
58175	// The subnet IDs of the VPC destination.
58176	//
58177	// SubnetIds is a required field
58178	SubnetIds []*string `locationName:"subnetIds" type:"list" required:"true"`
58179
58180	// The ID of the VPC.
58181	//
58182	// VpcId is a required field
58183	VpcId *string `locationName:"vpcId" type:"string" required:"true"`
58184}
58185
58186// String returns the string representation
58187func (s VpcDestinationConfiguration) String() string {
58188	return awsutil.Prettify(s)
58189}
58190
58191// GoString returns the string representation
58192func (s VpcDestinationConfiguration) GoString() string {
58193	return s.String()
58194}
58195
58196// Validate inspects the fields of the type to determine if they are valid.
58197func (s *VpcDestinationConfiguration) Validate() error {
58198	invalidParams := request.ErrInvalidParams{Context: "VpcDestinationConfiguration"}
58199	if s.RoleArn == nil {
58200		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
58201	}
58202	if s.SubnetIds == nil {
58203		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
58204	}
58205	if s.VpcId == nil {
58206		invalidParams.Add(request.NewErrParamRequired("VpcId"))
58207	}
58208
58209	if invalidParams.Len() > 0 {
58210		return invalidParams
58211	}
58212	return nil
58213}
58214
58215// SetRoleArn sets the RoleArn field's value.
58216func (s *VpcDestinationConfiguration) SetRoleArn(v string) *VpcDestinationConfiguration {
58217	s.RoleArn = &v
58218	return s
58219}
58220
58221// SetSecurityGroups sets the SecurityGroups field's value.
58222func (s *VpcDestinationConfiguration) SetSecurityGroups(v []*string) *VpcDestinationConfiguration {
58223	s.SecurityGroups = v
58224	return s
58225}
58226
58227// SetSubnetIds sets the SubnetIds field's value.
58228func (s *VpcDestinationConfiguration) SetSubnetIds(v []*string) *VpcDestinationConfiguration {
58229	s.SubnetIds = v
58230	return s
58231}
58232
58233// SetVpcId sets the VpcId field's value.
58234func (s *VpcDestinationConfiguration) SetVpcId(v string) *VpcDestinationConfiguration {
58235	s.VpcId = &v
58236	return s
58237}
58238
58239// The properties of a virtual private cloud (VPC) destination.
58240type VpcDestinationProperties struct {
58241	_ struct{} `type:"structure"`
58242
58243	// The ARN of a role that has permission to create and attach to elastic network
58244	// interfaces (ENIs).
58245	RoleArn *string `locationName:"roleArn" type:"string"`
58246
58247	// The security groups of the VPC destination.
58248	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
58249
58250	// The subnet IDs of the VPC destination.
58251	SubnetIds []*string `locationName:"subnetIds" type:"list"`
58252
58253	// The ID of the VPC.
58254	VpcId *string `locationName:"vpcId" type:"string"`
58255}
58256
58257// String returns the string representation
58258func (s VpcDestinationProperties) String() string {
58259	return awsutil.Prettify(s)
58260}
58261
58262// GoString returns the string representation
58263func (s VpcDestinationProperties) GoString() string {
58264	return s.String()
58265}
58266
58267// SetRoleArn sets the RoleArn field's value.
58268func (s *VpcDestinationProperties) SetRoleArn(v string) *VpcDestinationProperties {
58269	s.RoleArn = &v
58270	return s
58271}
58272
58273// SetSecurityGroups sets the SecurityGroups field's value.
58274func (s *VpcDestinationProperties) SetSecurityGroups(v []*string) *VpcDestinationProperties {
58275	s.SecurityGroups = v
58276	return s
58277}
58278
58279// SetSubnetIds sets the SubnetIds field's value.
58280func (s *VpcDestinationProperties) SetSubnetIds(v []*string) *VpcDestinationProperties {
58281	s.SubnetIds = v
58282	return s
58283}
58284
58285// SetVpcId sets the VpcId field's value.
58286func (s *VpcDestinationProperties) SetVpcId(v string) *VpcDestinationProperties {
58287	s.VpcId = &v
58288	return s
58289}
58290
58291// The summary of a virtual private cloud (VPC) destination.
58292type VpcDestinationSummary struct {
58293	_ struct{} `type:"structure"`
58294
58295	// The ARN of a role that has permission to create and attach to elastic network
58296	// interfaces (ENIs).
58297	RoleArn *string `locationName:"roleArn" type:"string"`
58298
58299	// The security groups of the VPC destination.
58300	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
58301
58302	// The subnet IDs of the VPC destination.
58303	SubnetIds []*string `locationName:"subnetIds" type:"list"`
58304
58305	// The ID of the VPC.
58306	VpcId *string `locationName:"vpcId" type:"string"`
58307}
58308
58309// String returns the string representation
58310func (s VpcDestinationSummary) String() string {
58311	return awsutil.Prettify(s)
58312}
58313
58314// GoString returns the string representation
58315func (s VpcDestinationSummary) GoString() string {
58316	return s.String()
58317}
58318
58319// SetRoleArn sets the RoleArn field's value.
58320func (s *VpcDestinationSummary) SetRoleArn(v string) *VpcDestinationSummary {
58321	s.RoleArn = &v
58322	return s
58323}
58324
58325// SetSecurityGroups sets the SecurityGroups field's value.
58326func (s *VpcDestinationSummary) SetSecurityGroups(v []*string) *VpcDestinationSummary {
58327	s.SecurityGroups = v
58328	return s
58329}
58330
58331// SetSubnetIds sets the SubnetIds field's value.
58332func (s *VpcDestinationSummary) SetSubnetIds(v []*string) *VpcDestinationSummary {
58333	s.SubnetIds = v
58334	return s
58335}
58336
58337// SetVpcId sets the VpcId field's value.
58338func (s *VpcDestinationSummary) SetVpcId(v string) *VpcDestinationSummary {
58339	s.VpcId = &v
58340	return s
58341}
58342
58343const (
58344	// AbortActionCancel is a AbortAction enum value
58345	AbortActionCancel = "CANCEL"
58346)
58347
58348// AbortAction_Values returns all elements of the AbortAction enum
58349func AbortAction_Values() []string {
58350	return []string{
58351		AbortActionCancel,
58352	}
58353}
58354
58355const (
58356	// ActionTypePublish is a ActionType enum value
58357	ActionTypePublish = "PUBLISH"
58358
58359	// ActionTypeSubscribe is a ActionType enum value
58360	ActionTypeSubscribe = "SUBSCRIBE"
58361
58362	// ActionTypeReceive is a ActionType enum value
58363	ActionTypeReceive = "RECEIVE"
58364
58365	// ActionTypeConnect is a ActionType enum value
58366	ActionTypeConnect = "CONNECT"
58367)
58368
58369// ActionType_Values returns all elements of the ActionType enum
58370func ActionType_Values() []string {
58371	return []string{
58372		ActionTypePublish,
58373		ActionTypeSubscribe,
58374		ActionTypeReceive,
58375		ActionTypeConnect,
58376	}
58377}
58378
58379// The type of alert target: one of "SNS".
58380const (
58381	// AlertTargetTypeSns is a AlertTargetType enum value
58382	AlertTargetTypeSns = "SNS"
58383)
58384
58385// AlertTargetType_Values returns all elements of the AlertTargetType enum
58386func AlertTargetType_Values() []string {
58387	return []string{
58388		AlertTargetTypeSns,
58389	}
58390}
58391
58392const (
58393	// AuditCheckRunStatusInProgress is a AuditCheckRunStatus enum value
58394	AuditCheckRunStatusInProgress = "IN_PROGRESS"
58395
58396	// AuditCheckRunStatusWaitingForDataCollection is a AuditCheckRunStatus enum value
58397	AuditCheckRunStatusWaitingForDataCollection = "WAITING_FOR_DATA_COLLECTION"
58398
58399	// AuditCheckRunStatusCanceled is a AuditCheckRunStatus enum value
58400	AuditCheckRunStatusCanceled = "CANCELED"
58401
58402	// AuditCheckRunStatusCompletedCompliant is a AuditCheckRunStatus enum value
58403	AuditCheckRunStatusCompletedCompliant = "COMPLETED_COMPLIANT"
58404
58405	// AuditCheckRunStatusCompletedNonCompliant is a AuditCheckRunStatus enum value
58406	AuditCheckRunStatusCompletedNonCompliant = "COMPLETED_NON_COMPLIANT"
58407
58408	// AuditCheckRunStatusFailed is a AuditCheckRunStatus enum value
58409	AuditCheckRunStatusFailed = "FAILED"
58410)
58411
58412// AuditCheckRunStatus_Values returns all elements of the AuditCheckRunStatus enum
58413func AuditCheckRunStatus_Values() []string {
58414	return []string{
58415		AuditCheckRunStatusInProgress,
58416		AuditCheckRunStatusWaitingForDataCollection,
58417		AuditCheckRunStatusCanceled,
58418		AuditCheckRunStatusCompletedCompliant,
58419		AuditCheckRunStatusCompletedNonCompliant,
58420		AuditCheckRunStatusFailed,
58421	}
58422}
58423
58424const (
58425	// AuditFindingSeverityCritical is a AuditFindingSeverity enum value
58426	AuditFindingSeverityCritical = "CRITICAL"
58427
58428	// AuditFindingSeverityHigh is a AuditFindingSeverity enum value
58429	AuditFindingSeverityHigh = "HIGH"
58430
58431	// AuditFindingSeverityMedium is a AuditFindingSeverity enum value
58432	AuditFindingSeverityMedium = "MEDIUM"
58433
58434	// AuditFindingSeverityLow is a AuditFindingSeverity enum value
58435	AuditFindingSeverityLow = "LOW"
58436)
58437
58438// AuditFindingSeverity_Values returns all elements of the AuditFindingSeverity enum
58439func AuditFindingSeverity_Values() []string {
58440	return []string{
58441		AuditFindingSeverityCritical,
58442		AuditFindingSeverityHigh,
58443		AuditFindingSeverityMedium,
58444		AuditFindingSeverityLow,
58445	}
58446}
58447
58448const (
58449	// AuditFrequencyDaily is a AuditFrequency enum value
58450	AuditFrequencyDaily = "DAILY"
58451
58452	// AuditFrequencyWeekly is a AuditFrequency enum value
58453	AuditFrequencyWeekly = "WEEKLY"
58454
58455	// AuditFrequencyBiweekly is a AuditFrequency enum value
58456	AuditFrequencyBiweekly = "BIWEEKLY"
58457
58458	// AuditFrequencyMonthly is a AuditFrequency enum value
58459	AuditFrequencyMonthly = "MONTHLY"
58460)
58461
58462// AuditFrequency_Values returns all elements of the AuditFrequency enum
58463func AuditFrequency_Values() []string {
58464	return []string{
58465		AuditFrequencyDaily,
58466		AuditFrequencyWeekly,
58467		AuditFrequencyBiweekly,
58468		AuditFrequencyMonthly,
58469	}
58470}
58471
58472const (
58473	// AuditMitigationActionsExecutionStatusInProgress is a AuditMitigationActionsExecutionStatus enum value
58474	AuditMitigationActionsExecutionStatusInProgress = "IN_PROGRESS"
58475
58476	// AuditMitigationActionsExecutionStatusCompleted is a AuditMitigationActionsExecutionStatus enum value
58477	AuditMitigationActionsExecutionStatusCompleted = "COMPLETED"
58478
58479	// AuditMitigationActionsExecutionStatusFailed is a AuditMitigationActionsExecutionStatus enum value
58480	AuditMitigationActionsExecutionStatusFailed = "FAILED"
58481
58482	// AuditMitigationActionsExecutionStatusCanceled is a AuditMitigationActionsExecutionStatus enum value
58483	AuditMitigationActionsExecutionStatusCanceled = "CANCELED"
58484
58485	// AuditMitigationActionsExecutionStatusSkipped is a AuditMitigationActionsExecutionStatus enum value
58486	AuditMitigationActionsExecutionStatusSkipped = "SKIPPED"
58487
58488	// AuditMitigationActionsExecutionStatusPending is a AuditMitigationActionsExecutionStatus enum value
58489	AuditMitigationActionsExecutionStatusPending = "PENDING"
58490)
58491
58492// AuditMitigationActionsExecutionStatus_Values returns all elements of the AuditMitigationActionsExecutionStatus enum
58493func AuditMitigationActionsExecutionStatus_Values() []string {
58494	return []string{
58495		AuditMitigationActionsExecutionStatusInProgress,
58496		AuditMitigationActionsExecutionStatusCompleted,
58497		AuditMitigationActionsExecutionStatusFailed,
58498		AuditMitigationActionsExecutionStatusCanceled,
58499		AuditMitigationActionsExecutionStatusSkipped,
58500		AuditMitigationActionsExecutionStatusPending,
58501	}
58502}
58503
58504const (
58505	// AuditMitigationActionsTaskStatusInProgress is a AuditMitigationActionsTaskStatus enum value
58506	AuditMitigationActionsTaskStatusInProgress = "IN_PROGRESS"
58507
58508	// AuditMitigationActionsTaskStatusCompleted is a AuditMitigationActionsTaskStatus enum value
58509	AuditMitigationActionsTaskStatusCompleted = "COMPLETED"
58510
58511	// AuditMitigationActionsTaskStatusFailed is a AuditMitigationActionsTaskStatus enum value
58512	AuditMitigationActionsTaskStatusFailed = "FAILED"
58513
58514	// AuditMitigationActionsTaskStatusCanceled is a AuditMitigationActionsTaskStatus enum value
58515	AuditMitigationActionsTaskStatusCanceled = "CANCELED"
58516)
58517
58518// AuditMitigationActionsTaskStatus_Values returns all elements of the AuditMitigationActionsTaskStatus enum
58519func AuditMitigationActionsTaskStatus_Values() []string {
58520	return []string{
58521		AuditMitigationActionsTaskStatusInProgress,
58522		AuditMitigationActionsTaskStatusCompleted,
58523		AuditMitigationActionsTaskStatusFailed,
58524		AuditMitigationActionsTaskStatusCanceled,
58525	}
58526}
58527
58528const (
58529	// AuditNotificationTypeSns is a AuditNotificationType enum value
58530	AuditNotificationTypeSns = "SNS"
58531)
58532
58533// AuditNotificationType_Values returns all elements of the AuditNotificationType enum
58534func AuditNotificationType_Values() []string {
58535	return []string{
58536		AuditNotificationTypeSns,
58537	}
58538}
58539
58540const (
58541	// AuditTaskStatusInProgress is a AuditTaskStatus enum value
58542	AuditTaskStatusInProgress = "IN_PROGRESS"
58543
58544	// AuditTaskStatusCompleted is a AuditTaskStatus enum value
58545	AuditTaskStatusCompleted = "COMPLETED"
58546
58547	// AuditTaskStatusFailed is a AuditTaskStatus enum value
58548	AuditTaskStatusFailed = "FAILED"
58549
58550	// AuditTaskStatusCanceled is a AuditTaskStatus enum value
58551	AuditTaskStatusCanceled = "CANCELED"
58552)
58553
58554// AuditTaskStatus_Values returns all elements of the AuditTaskStatus enum
58555func AuditTaskStatus_Values() []string {
58556	return []string{
58557		AuditTaskStatusInProgress,
58558		AuditTaskStatusCompleted,
58559		AuditTaskStatusFailed,
58560		AuditTaskStatusCanceled,
58561	}
58562}
58563
58564const (
58565	// AuditTaskTypeOnDemandAuditTask is a AuditTaskType enum value
58566	AuditTaskTypeOnDemandAuditTask = "ON_DEMAND_AUDIT_TASK"
58567
58568	// AuditTaskTypeScheduledAuditTask is a AuditTaskType enum value
58569	AuditTaskTypeScheduledAuditTask = "SCHEDULED_AUDIT_TASK"
58570)
58571
58572// AuditTaskType_Values returns all elements of the AuditTaskType enum
58573func AuditTaskType_Values() []string {
58574	return []string{
58575		AuditTaskTypeOnDemandAuditTask,
58576		AuditTaskTypeScheduledAuditTask,
58577	}
58578}
58579
58580const (
58581	// AuthDecisionAllowed is a AuthDecision enum value
58582	AuthDecisionAllowed = "ALLOWED"
58583
58584	// AuthDecisionExplicitDeny is a AuthDecision enum value
58585	AuthDecisionExplicitDeny = "EXPLICIT_DENY"
58586
58587	// AuthDecisionImplicitDeny is a AuthDecision enum value
58588	AuthDecisionImplicitDeny = "IMPLICIT_DENY"
58589)
58590
58591// AuthDecision_Values returns all elements of the AuthDecision enum
58592func AuthDecision_Values() []string {
58593	return []string{
58594		AuthDecisionAllowed,
58595		AuthDecisionExplicitDeny,
58596		AuthDecisionImplicitDeny,
58597	}
58598}
58599
58600const (
58601	// AuthorizerStatusActive is a AuthorizerStatus enum value
58602	AuthorizerStatusActive = "ACTIVE"
58603
58604	// AuthorizerStatusInactive is a AuthorizerStatus enum value
58605	AuthorizerStatusInactive = "INACTIVE"
58606)
58607
58608// AuthorizerStatus_Values returns all elements of the AuthorizerStatus enum
58609func AuthorizerStatus_Values() []string {
58610	return []string{
58611		AuthorizerStatusActive,
58612		AuthorizerStatusInactive,
58613	}
58614}
58615
58616const (
58617	// AutoRegistrationStatusEnable is a AutoRegistrationStatus enum value
58618	AutoRegistrationStatusEnable = "ENABLE"
58619
58620	// AutoRegistrationStatusDisable is a AutoRegistrationStatus enum value
58621	AutoRegistrationStatusDisable = "DISABLE"
58622)
58623
58624// AutoRegistrationStatus_Values returns all elements of the AutoRegistrationStatus enum
58625func AutoRegistrationStatus_Values() []string {
58626	return []string{
58627		AutoRegistrationStatusEnable,
58628		AutoRegistrationStatusDisable,
58629	}
58630}
58631
58632const (
58633	// AwsJobAbortCriteriaAbortActionCancel is a AwsJobAbortCriteriaAbortAction enum value
58634	AwsJobAbortCriteriaAbortActionCancel = "CANCEL"
58635)
58636
58637// AwsJobAbortCriteriaAbortAction_Values returns all elements of the AwsJobAbortCriteriaAbortAction enum
58638func AwsJobAbortCriteriaAbortAction_Values() []string {
58639	return []string{
58640		AwsJobAbortCriteriaAbortActionCancel,
58641	}
58642}
58643
58644const (
58645	// AwsJobAbortCriteriaFailureTypeFailed is a AwsJobAbortCriteriaFailureType enum value
58646	AwsJobAbortCriteriaFailureTypeFailed = "FAILED"
58647
58648	// AwsJobAbortCriteriaFailureTypeRejected is a AwsJobAbortCriteriaFailureType enum value
58649	AwsJobAbortCriteriaFailureTypeRejected = "REJECTED"
58650
58651	// AwsJobAbortCriteriaFailureTypeTimedOut is a AwsJobAbortCriteriaFailureType enum value
58652	AwsJobAbortCriteriaFailureTypeTimedOut = "TIMED_OUT"
58653
58654	// AwsJobAbortCriteriaFailureTypeAll is a AwsJobAbortCriteriaFailureType enum value
58655	AwsJobAbortCriteriaFailureTypeAll = "ALL"
58656)
58657
58658// AwsJobAbortCriteriaFailureType_Values returns all elements of the AwsJobAbortCriteriaFailureType enum
58659func AwsJobAbortCriteriaFailureType_Values() []string {
58660	return []string{
58661		AwsJobAbortCriteriaFailureTypeFailed,
58662		AwsJobAbortCriteriaFailureTypeRejected,
58663		AwsJobAbortCriteriaFailureTypeTimedOut,
58664		AwsJobAbortCriteriaFailureTypeAll,
58665	}
58666}
58667
58668const (
58669	// BehaviorCriteriaTypeStatic is a BehaviorCriteriaType enum value
58670	BehaviorCriteriaTypeStatic = "STATIC"
58671
58672	// BehaviorCriteriaTypeStatistical is a BehaviorCriteriaType enum value
58673	BehaviorCriteriaTypeStatistical = "STATISTICAL"
58674
58675	// BehaviorCriteriaTypeMachineLearning is a BehaviorCriteriaType enum value
58676	BehaviorCriteriaTypeMachineLearning = "MACHINE_LEARNING"
58677)
58678
58679// BehaviorCriteriaType_Values returns all elements of the BehaviorCriteriaType enum
58680func BehaviorCriteriaType_Values() []string {
58681	return []string{
58682		BehaviorCriteriaTypeStatic,
58683		BehaviorCriteriaTypeStatistical,
58684		BehaviorCriteriaTypeMachineLearning,
58685	}
58686}
58687
58688const (
58689	// CACertificateStatusActive is a CACertificateStatus enum value
58690	CACertificateStatusActive = "ACTIVE"
58691
58692	// CACertificateStatusInactive is a CACertificateStatus enum value
58693	CACertificateStatusInactive = "INACTIVE"
58694)
58695
58696// CACertificateStatus_Values returns all elements of the CACertificateStatus enum
58697func CACertificateStatus_Values() []string {
58698	return []string{
58699		CACertificateStatusActive,
58700		CACertificateStatusInactive,
58701	}
58702}
58703
58704const (
58705	// CACertificateUpdateActionDeactivate is a CACertificateUpdateAction enum value
58706	CACertificateUpdateActionDeactivate = "DEACTIVATE"
58707)
58708
58709// CACertificateUpdateAction_Values returns all elements of the CACertificateUpdateAction enum
58710func CACertificateUpdateAction_Values() []string {
58711	return []string{
58712		CACertificateUpdateActionDeactivate,
58713	}
58714}
58715
58716const (
58717	// CannedAccessControlListPrivate is a CannedAccessControlList enum value
58718	CannedAccessControlListPrivate = "private"
58719
58720	// CannedAccessControlListPublicRead is a CannedAccessControlList enum value
58721	CannedAccessControlListPublicRead = "public-read"
58722
58723	// CannedAccessControlListPublicReadWrite is a CannedAccessControlList enum value
58724	CannedAccessControlListPublicReadWrite = "public-read-write"
58725
58726	// CannedAccessControlListAwsExecRead is a CannedAccessControlList enum value
58727	CannedAccessControlListAwsExecRead = "aws-exec-read"
58728
58729	// CannedAccessControlListAuthenticatedRead is a CannedAccessControlList enum value
58730	CannedAccessControlListAuthenticatedRead = "authenticated-read"
58731
58732	// CannedAccessControlListBucketOwnerRead is a CannedAccessControlList enum value
58733	CannedAccessControlListBucketOwnerRead = "bucket-owner-read"
58734
58735	// CannedAccessControlListBucketOwnerFullControl is a CannedAccessControlList enum value
58736	CannedAccessControlListBucketOwnerFullControl = "bucket-owner-full-control"
58737
58738	// CannedAccessControlListLogDeliveryWrite is a CannedAccessControlList enum value
58739	CannedAccessControlListLogDeliveryWrite = "log-delivery-write"
58740)
58741
58742// CannedAccessControlList_Values returns all elements of the CannedAccessControlList enum
58743func CannedAccessControlList_Values() []string {
58744	return []string{
58745		CannedAccessControlListPrivate,
58746		CannedAccessControlListPublicRead,
58747		CannedAccessControlListPublicReadWrite,
58748		CannedAccessControlListAwsExecRead,
58749		CannedAccessControlListAuthenticatedRead,
58750		CannedAccessControlListBucketOwnerRead,
58751		CannedAccessControlListBucketOwnerFullControl,
58752		CannedAccessControlListLogDeliveryWrite,
58753	}
58754}
58755
58756const (
58757	// CertificateModeDefault is a CertificateMode enum value
58758	CertificateModeDefault = "DEFAULT"
58759
58760	// CertificateModeSniOnly is a CertificateMode enum value
58761	CertificateModeSniOnly = "SNI_ONLY"
58762)
58763
58764// CertificateMode_Values returns all elements of the CertificateMode enum
58765func CertificateMode_Values() []string {
58766	return []string{
58767		CertificateModeDefault,
58768		CertificateModeSniOnly,
58769	}
58770}
58771
58772const (
58773	// CertificateStatusActive is a CertificateStatus enum value
58774	CertificateStatusActive = "ACTIVE"
58775
58776	// CertificateStatusInactive is a CertificateStatus enum value
58777	CertificateStatusInactive = "INACTIVE"
58778
58779	// CertificateStatusRevoked is a CertificateStatus enum value
58780	CertificateStatusRevoked = "REVOKED"
58781
58782	// CertificateStatusPendingTransfer is a CertificateStatus enum value
58783	CertificateStatusPendingTransfer = "PENDING_TRANSFER"
58784
58785	// CertificateStatusRegisterInactive is a CertificateStatus enum value
58786	CertificateStatusRegisterInactive = "REGISTER_INACTIVE"
58787
58788	// CertificateStatusPendingActivation is a CertificateStatus enum value
58789	CertificateStatusPendingActivation = "PENDING_ACTIVATION"
58790)
58791
58792// CertificateStatus_Values returns all elements of the CertificateStatus enum
58793func CertificateStatus_Values() []string {
58794	return []string{
58795		CertificateStatusActive,
58796		CertificateStatusInactive,
58797		CertificateStatusRevoked,
58798		CertificateStatusPendingTransfer,
58799		CertificateStatusRegisterInactive,
58800		CertificateStatusPendingActivation,
58801	}
58802}
58803
58804const (
58805	// ComparisonOperatorLessThan is a ComparisonOperator enum value
58806	ComparisonOperatorLessThan = "less-than"
58807
58808	// ComparisonOperatorLessThanEquals is a ComparisonOperator enum value
58809	ComparisonOperatorLessThanEquals = "less-than-equals"
58810
58811	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
58812	ComparisonOperatorGreaterThan = "greater-than"
58813
58814	// ComparisonOperatorGreaterThanEquals is a ComparisonOperator enum value
58815	ComparisonOperatorGreaterThanEquals = "greater-than-equals"
58816
58817	// ComparisonOperatorInCidrSet is a ComparisonOperator enum value
58818	ComparisonOperatorInCidrSet = "in-cidr-set"
58819
58820	// ComparisonOperatorNotInCidrSet is a ComparisonOperator enum value
58821	ComparisonOperatorNotInCidrSet = "not-in-cidr-set"
58822
58823	// ComparisonOperatorInPortSet is a ComparisonOperator enum value
58824	ComparisonOperatorInPortSet = "in-port-set"
58825
58826	// ComparisonOperatorNotInPortSet is a ComparisonOperator enum value
58827	ComparisonOperatorNotInPortSet = "not-in-port-set"
58828
58829	// ComparisonOperatorInSet is a ComparisonOperator enum value
58830	ComparisonOperatorInSet = "in-set"
58831
58832	// ComparisonOperatorNotInSet is a ComparisonOperator enum value
58833	ComparisonOperatorNotInSet = "not-in-set"
58834)
58835
58836// ComparisonOperator_Values returns all elements of the ComparisonOperator enum
58837func ComparisonOperator_Values() []string {
58838	return []string{
58839		ComparisonOperatorLessThan,
58840		ComparisonOperatorLessThanEquals,
58841		ComparisonOperatorGreaterThan,
58842		ComparisonOperatorGreaterThanEquals,
58843		ComparisonOperatorInCidrSet,
58844		ComparisonOperatorNotInCidrSet,
58845		ComparisonOperatorInPortSet,
58846		ComparisonOperatorNotInPortSet,
58847		ComparisonOperatorInSet,
58848		ComparisonOperatorNotInSet,
58849	}
58850}
58851
58852const (
58853	// ConfidenceLevelLow is a ConfidenceLevel enum value
58854	ConfidenceLevelLow = "LOW"
58855
58856	// ConfidenceLevelMedium is a ConfidenceLevel enum value
58857	ConfidenceLevelMedium = "MEDIUM"
58858
58859	// ConfidenceLevelHigh is a ConfidenceLevel enum value
58860	ConfidenceLevelHigh = "HIGH"
58861)
58862
58863// ConfidenceLevel_Values returns all elements of the ConfidenceLevel enum
58864func ConfidenceLevel_Values() []string {
58865	return []string{
58866		ConfidenceLevelLow,
58867		ConfidenceLevelMedium,
58868		ConfidenceLevelHigh,
58869	}
58870}
58871
58872const (
58873	// CustomMetricTypeStringList is a CustomMetricType enum value
58874	CustomMetricTypeStringList = "string-list"
58875
58876	// CustomMetricTypeIpAddressList is a CustomMetricType enum value
58877	CustomMetricTypeIpAddressList = "ip-address-list"
58878
58879	// CustomMetricTypeNumberList is a CustomMetricType enum value
58880	CustomMetricTypeNumberList = "number-list"
58881
58882	// CustomMetricTypeNumber is a CustomMetricType enum value
58883	CustomMetricTypeNumber = "number"
58884)
58885
58886// CustomMetricType_Values returns all elements of the CustomMetricType enum
58887func CustomMetricType_Values() []string {
58888	return []string{
58889		CustomMetricTypeStringList,
58890		CustomMetricTypeIpAddressList,
58891		CustomMetricTypeNumberList,
58892		CustomMetricTypeNumber,
58893	}
58894}
58895
58896const (
58897	// DayOfWeekSun is a DayOfWeek enum value
58898	DayOfWeekSun = "SUN"
58899
58900	// DayOfWeekMon is a DayOfWeek enum value
58901	DayOfWeekMon = "MON"
58902
58903	// DayOfWeekTue is a DayOfWeek enum value
58904	DayOfWeekTue = "TUE"
58905
58906	// DayOfWeekWed is a DayOfWeek enum value
58907	DayOfWeekWed = "WED"
58908
58909	// DayOfWeekThu is a DayOfWeek enum value
58910	DayOfWeekThu = "THU"
58911
58912	// DayOfWeekFri is a DayOfWeek enum value
58913	DayOfWeekFri = "FRI"
58914
58915	// DayOfWeekSat is a DayOfWeek enum value
58916	DayOfWeekSat = "SAT"
58917)
58918
58919// DayOfWeek_Values returns all elements of the DayOfWeek enum
58920func DayOfWeek_Values() []string {
58921	return []string{
58922		DayOfWeekSun,
58923		DayOfWeekMon,
58924		DayOfWeekTue,
58925		DayOfWeekWed,
58926		DayOfWeekThu,
58927		DayOfWeekFri,
58928		DayOfWeekSat,
58929	}
58930}
58931
58932const (
58933	// DetectMitigationActionExecutionStatusInProgress is a DetectMitigationActionExecutionStatus enum value
58934	DetectMitigationActionExecutionStatusInProgress = "IN_PROGRESS"
58935
58936	// DetectMitigationActionExecutionStatusSuccessful is a DetectMitigationActionExecutionStatus enum value
58937	DetectMitigationActionExecutionStatusSuccessful = "SUCCESSFUL"
58938
58939	// DetectMitigationActionExecutionStatusFailed is a DetectMitigationActionExecutionStatus enum value
58940	DetectMitigationActionExecutionStatusFailed = "FAILED"
58941
58942	// DetectMitigationActionExecutionStatusSkipped is a DetectMitigationActionExecutionStatus enum value
58943	DetectMitigationActionExecutionStatusSkipped = "SKIPPED"
58944)
58945
58946// DetectMitigationActionExecutionStatus_Values returns all elements of the DetectMitigationActionExecutionStatus enum
58947func DetectMitigationActionExecutionStatus_Values() []string {
58948	return []string{
58949		DetectMitigationActionExecutionStatusInProgress,
58950		DetectMitigationActionExecutionStatusSuccessful,
58951		DetectMitigationActionExecutionStatusFailed,
58952		DetectMitigationActionExecutionStatusSkipped,
58953	}
58954}
58955
58956const (
58957	// DetectMitigationActionsTaskStatusInProgress is a DetectMitigationActionsTaskStatus enum value
58958	DetectMitigationActionsTaskStatusInProgress = "IN_PROGRESS"
58959
58960	// DetectMitigationActionsTaskStatusSuccessful is a DetectMitigationActionsTaskStatus enum value
58961	DetectMitigationActionsTaskStatusSuccessful = "SUCCESSFUL"
58962
58963	// DetectMitigationActionsTaskStatusFailed is a DetectMitigationActionsTaskStatus enum value
58964	DetectMitigationActionsTaskStatusFailed = "FAILED"
58965
58966	// DetectMitigationActionsTaskStatusCanceled is a DetectMitigationActionsTaskStatus enum value
58967	DetectMitigationActionsTaskStatusCanceled = "CANCELED"
58968)
58969
58970// DetectMitigationActionsTaskStatus_Values returns all elements of the DetectMitigationActionsTaskStatus enum
58971func DetectMitigationActionsTaskStatus_Values() []string {
58972	return []string{
58973		DetectMitigationActionsTaskStatusInProgress,
58974		DetectMitigationActionsTaskStatusSuccessful,
58975		DetectMitigationActionsTaskStatusFailed,
58976		DetectMitigationActionsTaskStatusCanceled,
58977	}
58978}
58979
58980const (
58981	// DeviceCertificateUpdateActionDeactivate is a DeviceCertificateUpdateAction enum value
58982	DeviceCertificateUpdateActionDeactivate = "DEACTIVATE"
58983)
58984
58985// DeviceCertificateUpdateAction_Values returns all elements of the DeviceCertificateUpdateAction enum
58986func DeviceCertificateUpdateAction_Values() []string {
58987	return []string{
58988		DeviceCertificateUpdateActionDeactivate,
58989	}
58990}
58991
58992const (
58993	// DimensionTypeTopicFilter is a DimensionType enum value
58994	DimensionTypeTopicFilter = "TOPIC_FILTER"
58995)
58996
58997// DimensionType_Values returns all elements of the DimensionType enum
58998func DimensionType_Values() []string {
58999	return []string{
59000		DimensionTypeTopicFilter,
59001	}
59002}
59003
59004const (
59005	// DimensionValueOperatorIn is a DimensionValueOperator enum value
59006	DimensionValueOperatorIn = "IN"
59007
59008	// DimensionValueOperatorNotIn is a DimensionValueOperator enum value
59009	DimensionValueOperatorNotIn = "NOT_IN"
59010)
59011
59012// DimensionValueOperator_Values returns all elements of the DimensionValueOperator enum
59013func DimensionValueOperator_Values() []string {
59014	return []string{
59015		DimensionValueOperatorIn,
59016		DimensionValueOperatorNotIn,
59017	}
59018}
59019
59020const (
59021	// DomainConfigurationStatusEnabled is a DomainConfigurationStatus enum value
59022	DomainConfigurationStatusEnabled = "ENABLED"
59023
59024	// DomainConfigurationStatusDisabled is a DomainConfigurationStatus enum value
59025	DomainConfigurationStatusDisabled = "DISABLED"
59026)
59027
59028// DomainConfigurationStatus_Values returns all elements of the DomainConfigurationStatus enum
59029func DomainConfigurationStatus_Values() []string {
59030	return []string{
59031		DomainConfigurationStatusEnabled,
59032		DomainConfigurationStatusDisabled,
59033	}
59034}
59035
59036const (
59037	// DomainTypeEndpoint is a DomainType enum value
59038	DomainTypeEndpoint = "ENDPOINT"
59039
59040	// DomainTypeAwsManaged is a DomainType enum value
59041	DomainTypeAwsManaged = "AWS_MANAGED"
59042
59043	// DomainTypeCustomerManaged is a DomainType enum value
59044	DomainTypeCustomerManaged = "CUSTOMER_MANAGED"
59045)
59046
59047// DomainType_Values returns all elements of the DomainType enum
59048func DomainType_Values() []string {
59049	return []string{
59050		DomainTypeEndpoint,
59051		DomainTypeAwsManaged,
59052		DomainTypeCustomerManaged,
59053	}
59054}
59055
59056const (
59057	// DynamicGroupStatusActive is a DynamicGroupStatus enum value
59058	DynamicGroupStatusActive = "ACTIVE"
59059
59060	// DynamicGroupStatusBuilding is a DynamicGroupStatus enum value
59061	DynamicGroupStatusBuilding = "BUILDING"
59062
59063	// DynamicGroupStatusRebuilding is a DynamicGroupStatus enum value
59064	DynamicGroupStatusRebuilding = "REBUILDING"
59065)
59066
59067// DynamicGroupStatus_Values returns all elements of the DynamicGroupStatus enum
59068func DynamicGroupStatus_Values() []string {
59069	return []string{
59070		DynamicGroupStatusActive,
59071		DynamicGroupStatusBuilding,
59072		DynamicGroupStatusRebuilding,
59073	}
59074}
59075
59076const (
59077	// DynamoKeyTypeString is a DynamoKeyType enum value
59078	DynamoKeyTypeString = "STRING"
59079
59080	// DynamoKeyTypeNumber is a DynamoKeyType enum value
59081	DynamoKeyTypeNumber = "NUMBER"
59082)
59083
59084// DynamoKeyType_Values returns all elements of the DynamoKeyType enum
59085func DynamoKeyType_Values() []string {
59086	return []string{
59087		DynamoKeyTypeString,
59088		DynamoKeyTypeNumber,
59089	}
59090}
59091
59092const (
59093	// EventTypeThing is a EventType enum value
59094	EventTypeThing = "THING"
59095
59096	// EventTypeThingGroup is a EventType enum value
59097	EventTypeThingGroup = "THING_GROUP"
59098
59099	// EventTypeThingType is a EventType enum value
59100	EventTypeThingType = "THING_TYPE"
59101
59102	// EventTypeThingGroupMembership is a EventType enum value
59103	EventTypeThingGroupMembership = "THING_GROUP_MEMBERSHIP"
59104
59105	// EventTypeThingGroupHierarchy is a EventType enum value
59106	EventTypeThingGroupHierarchy = "THING_GROUP_HIERARCHY"
59107
59108	// EventTypeThingTypeAssociation is a EventType enum value
59109	EventTypeThingTypeAssociation = "THING_TYPE_ASSOCIATION"
59110
59111	// EventTypeJob is a EventType enum value
59112	EventTypeJob = "JOB"
59113
59114	// EventTypeJobExecution is a EventType enum value
59115	EventTypeJobExecution = "JOB_EXECUTION"
59116
59117	// EventTypePolicy is a EventType enum value
59118	EventTypePolicy = "POLICY"
59119
59120	// EventTypeCertificate is a EventType enum value
59121	EventTypeCertificate = "CERTIFICATE"
59122
59123	// EventTypeCaCertificate is a EventType enum value
59124	EventTypeCaCertificate = "CA_CERTIFICATE"
59125)
59126
59127// EventType_Values returns all elements of the EventType enum
59128func EventType_Values() []string {
59129	return []string{
59130		EventTypeThing,
59131		EventTypeThingGroup,
59132		EventTypeThingType,
59133		EventTypeThingGroupMembership,
59134		EventTypeThingGroupHierarchy,
59135		EventTypeThingTypeAssociation,
59136		EventTypeJob,
59137		EventTypeJobExecution,
59138		EventTypePolicy,
59139		EventTypeCertificate,
59140		EventTypeCaCertificate,
59141	}
59142}
59143
59144const (
59145	// FieldTypeNumber is a FieldType enum value
59146	FieldTypeNumber = "Number"
59147
59148	// FieldTypeString is a FieldType enum value
59149	FieldTypeString = "String"
59150
59151	// FieldTypeBoolean is a FieldType enum value
59152	FieldTypeBoolean = "Boolean"
59153)
59154
59155// FieldType_Values returns all elements of the FieldType enum
59156func FieldType_Values() []string {
59157	return []string{
59158		FieldTypeNumber,
59159		FieldTypeString,
59160		FieldTypeBoolean,
59161	}
59162}
59163
59164const (
59165	// IndexStatusActive is a IndexStatus enum value
59166	IndexStatusActive = "ACTIVE"
59167
59168	// IndexStatusBuilding is a IndexStatus enum value
59169	IndexStatusBuilding = "BUILDING"
59170
59171	// IndexStatusRebuilding is a IndexStatus enum value
59172	IndexStatusRebuilding = "REBUILDING"
59173)
59174
59175// IndexStatus_Values returns all elements of the IndexStatus enum
59176func IndexStatus_Values() []string {
59177	return []string{
59178		IndexStatusActive,
59179		IndexStatusBuilding,
59180		IndexStatusRebuilding,
59181	}
59182}
59183
59184const (
59185	// JobExecutionFailureTypeFailed is a JobExecutionFailureType enum value
59186	JobExecutionFailureTypeFailed = "FAILED"
59187
59188	// JobExecutionFailureTypeRejected is a JobExecutionFailureType enum value
59189	JobExecutionFailureTypeRejected = "REJECTED"
59190
59191	// JobExecutionFailureTypeTimedOut is a JobExecutionFailureType enum value
59192	JobExecutionFailureTypeTimedOut = "TIMED_OUT"
59193
59194	// JobExecutionFailureTypeAll is a JobExecutionFailureType enum value
59195	JobExecutionFailureTypeAll = "ALL"
59196)
59197
59198// JobExecutionFailureType_Values returns all elements of the JobExecutionFailureType enum
59199func JobExecutionFailureType_Values() []string {
59200	return []string{
59201		JobExecutionFailureTypeFailed,
59202		JobExecutionFailureTypeRejected,
59203		JobExecutionFailureTypeTimedOut,
59204		JobExecutionFailureTypeAll,
59205	}
59206}
59207
59208const (
59209	// JobExecutionStatusQueued is a JobExecutionStatus enum value
59210	JobExecutionStatusQueued = "QUEUED"
59211
59212	// JobExecutionStatusInProgress is a JobExecutionStatus enum value
59213	JobExecutionStatusInProgress = "IN_PROGRESS"
59214
59215	// JobExecutionStatusSucceeded is a JobExecutionStatus enum value
59216	JobExecutionStatusSucceeded = "SUCCEEDED"
59217
59218	// JobExecutionStatusFailed is a JobExecutionStatus enum value
59219	JobExecutionStatusFailed = "FAILED"
59220
59221	// JobExecutionStatusTimedOut is a JobExecutionStatus enum value
59222	JobExecutionStatusTimedOut = "TIMED_OUT"
59223
59224	// JobExecutionStatusRejected is a JobExecutionStatus enum value
59225	JobExecutionStatusRejected = "REJECTED"
59226
59227	// JobExecutionStatusRemoved is a JobExecutionStatus enum value
59228	JobExecutionStatusRemoved = "REMOVED"
59229
59230	// JobExecutionStatusCanceled is a JobExecutionStatus enum value
59231	JobExecutionStatusCanceled = "CANCELED"
59232)
59233
59234// JobExecutionStatus_Values returns all elements of the JobExecutionStatus enum
59235func JobExecutionStatus_Values() []string {
59236	return []string{
59237		JobExecutionStatusQueued,
59238		JobExecutionStatusInProgress,
59239		JobExecutionStatusSucceeded,
59240		JobExecutionStatusFailed,
59241		JobExecutionStatusTimedOut,
59242		JobExecutionStatusRejected,
59243		JobExecutionStatusRemoved,
59244		JobExecutionStatusCanceled,
59245	}
59246}
59247
59248const (
59249	// JobStatusInProgress is a JobStatus enum value
59250	JobStatusInProgress = "IN_PROGRESS"
59251
59252	// JobStatusCanceled is a JobStatus enum value
59253	JobStatusCanceled = "CANCELED"
59254
59255	// JobStatusCompleted is a JobStatus enum value
59256	JobStatusCompleted = "COMPLETED"
59257
59258	// JobStatusDeletionInProgress is a JobStatus enum value
59259	JobStatusDeletionInProgress = "DELETION_IN_PROGRESS"
59260)
59261
59262// JobStatus_Values returns all elements of the JobStatus enum
59263func JobStatus_Values() []string {
59264	return []string{
59265		JobStatusInProgress,
59266		JobStatusCanceled,
59267		JobStatusCompleted,
59268		JobStatusDeletionInProgress,
59269	}
59270}
59271
59272const (
59273	// LogLevelDebug is a LogLevel enum value
59274	LogLevelDebug = "DEBUG"
59275
59276	// LogLevelInfo is a LogLevel enum value
59277	LogLevelInfo = "INFO"
59278
59279	// LogLevelError is a LogLevel enum value
59280	LogLevelError = "ERROR"
59281
59282	// LogLevelWarn is a LogLevel enum value
59283	LogLevelWarn = "WARN"
59284
59285	// LogLevelDisabled is a LogLevel enum value
59286	LogLevelDisabled = "DISABLED"
59287)
59288
59289// LogLevel_Values returns all elements of the LogLevel enum
59290func LogLevel_Values() []string {
59291	return []string{
59292		LogLevelDebug,
59293		LogLevelInfo,
59294		LogLevelError,
59295		LogLevelWarn,
59296		LogLevelDisabled,
59297	}
59298}
59299
59300const (
59301	// LogTargetTypeDefault is a LogTargetType enum value
59302	LogTargetTypeDefault = "DEFAULT"
59303
59304	// LogTargetTypeThingGroup is a LogTargetType enum value
59305	LogTargetTypeThingGroup = "THING_GROUP"
59306)
59307
59308// LogTargetType_Values returns all elements of the LogTargetType enum
59309func LogTargetType_Values() []string {
59310	return []string{
59311		LogTargetTypeDefault,
59312		LogTargetTypeThingGroup,
59313	}
59314}
59315
59316const (
59317	// MessageFormatRaw is a MessageFormat enum value
59318	MessageFormatRaw = "RAW"
59319
59320	// MessageFormatJson is a MessageFormat enum value
59321	MessageFormatJson = "JSON"
59322)
59323
59324// MessageFormat_Values returns all elements of the MessageFormat enum
59325func MessageFormat_Values() []string {
59326	return []string{
59327		MessageFormatRaw,
59328		MessageFormatJson,
59329	}
59330}
59331
59332const (
59333	// MitigationActionTypeUpdateDeviceCertificate is a MitigationActionType enum value
59334	MitigationActionTypeUpdateDeviceCertificate = "UPDATE_DEVICE_CERTIFICATE"
59335
59336	// MitigationActionTypeUpdateCaCertificate is a MitigationActionType enum value
59337	MitigationActionTypeUpdateCaCertificate = "UPDATE_CA_CERTIFICATE"
59338
59339	// MitigationActionTypeAddThingsToThingGroup is a MitigationActionType enum value
59340	MitigationActionTypeAddThingsToThingGroup = "ADD_THINGS_TO_THING_GROUP"
59341
59342	// MitigationActionTypeReplaceDefaultPolicyVersion is a MitigationActionType enum value
59343	MitigationActionTypeReplaceDefaultPolicyVersion = "REPLACE_DEFAULT_POLICY_VERSION"
59344
59345	// MitigationActionTypeEnableIotLogging is a MitigationActionType enum value
59346	MitigationActionTypeEnableIotLogging = "ENABLE_IOT_LOGGING"
59347
59348	// MitigationActionTypePublishFindingToSns is a MitigationActionType enum value
59349	MitigationActionTypePublishFindingToSns = "PUBLISH_FINDING_TO_SNS"
59350)
59351
59352// MitigationActionType_Values returns all elements of the MitigationActionType enum
59353func MitigationActionType_Values() []string {
59354	return []string{
59355		MitigationActionTypeUpdateDeviceCertificate,
59356		MitigationActionTypeUpdateCaCertificate,
59357		MitigationActionTypeAddThingsToThingGroup,
59358		MitigationActionTypeReplaceDefaultPolicyVersion,
59359		MitigationActionTypeEnableIotLogging,
59360		MitigationActionTypePublishFindingToSns,
59361	}
59362}
59363
59364const (
59365	// ModelStatusPendingBuild is a ModelStatus enum value
59366	ModelStatusPendingBuild = "PENDING_BUILD"
59367
59368	// ModelStatusActive is a ModelStatus enum value
59369	ModelStatusActive = "ACTIVE"
59370
59371	// ModelStatusExpired is a ModelStatus enum value
59372	ModelStatusExpired = "EXPIRED"
59373)
59374
59375// ModelStatus_Values returns all elements of the ModelStatus enum
59376func ModelStatus_Values() []string {
59377	return []string{
59378		ModelStatusPendingBuild,
59379		ModelStatusActive,
59380		ModelStatusExpired,
59381	}
59382}
59383
59384const (
59385	// OTAUpdateStatusCreatePending is a OTAUpdateStatus enum value
59386	OTAUpdateStatusCreatePending = "CREATE_PENDING"
59387
59388	// OTAUpdateStatusCreateInProgress is a OTAUpdateStatus enum value
59389	OTAUpdateStatusCreateInProgress = "CREATE_IN_PROGRESS"
59390
59391	// OTAUpdateStatusCreateComplete is a OTAUpdateStatus enum value
59392	OTAUpdateStatusCreateComplete = "CREATE_COMPLETE"
59393
59394	// OTAUpdateStatusCreateFailed is a OTAUpdateStatus enum value
59395	OTAUpdateStatusCreateFailed = "CREATE_FAILED"
59396)
59397
59398// OTAUpdateStatus_Values returns all elements of the OTAUpdateStatus enum
59399func OTAUpdateStatus_Values() []string {
59400	return []string{
59401		OTAUpdateStatusCreatePending,
59402		OTAUpdateStatusCreateInProgress,
59403		OTAUpdateStatusCreateComplete,
59404		OTAUpdateStatusCreateFailed,
59405	}
59406}
59407
59408const (
59409	// PolicyTemplateNameBlankPolicy is a PolicyTemplateName enum value
59410	PolicyTemplateNameBlankPolicy = "BLANK_POLICY"
59411)
59412
59413// PolicyTemplateName_Values returns all elements of the PolicyTemplateName enum
59414func PolicyTemplateName_Values() []string {
59415	return []string{
59416		PolicyTemplateNameBlankPolicy,
59417	}
59418}
59419
59420const (
59421	// ProtocolMqtt is a Protocol enum value
59422	ProtocolMqtt = "MQTT"
59423
59424	// ProtocolHttp is a Protocol enum value
59425	ProtocolHttp = "HTTP"
59426)
59427
59428// Protocol_Values returns all elements of the Protocol enum
59429func Protocol_Values() []string {
59430	return []string{
59431		ProtocolMqtt,
59432		ProtocolHttp,
59433	}
59434}
59435
59436const (
59437	// ReportTypeErrors is a ReportType enum value
59438	ReportTypeErrors = "ERRORS"
59439
59440	// ReportTypeResults is a ReportType enum value
59441	ReportTypeResults = "RESULTS"
59442)
59443
59444// ReportType_Values returns all elements of the ReportType enum
59445func ReportType_Values() []string {
59446	return []string{
59447		ReportTypeErrors,
59448		ReportTypeResults,
59449	}
59450}
59451
59452const (
59453	// ResourceTypeDeviceCertificate is a ResourceType enum value
59454	ResourceTypeDeviceCertificate = "DEVICE_CERTIFICATE"
59455
59456	// ResourceTypeCaCertificate is a ResourceType enum value
59457	ResourceTypeCaCertificate = "CA_CERTIFICATE"
59458
59459	// ResourceTypeIotPolicy is a ResourceType enum value
59460	ResourceTypeIotPolicy = "IOT_POLICY"
59461
59462	// ResourceTypeCognitoIdentityPool is a ResourceType enum value
59463	ResourceTypeCognitoIdentityPool = "COGNITO_IDENTITY_POOL"
59464
59465	// ResourceTypeClientId is a ResourceType enum value
59466	ResourceTypeClientId = "CLIENT_ID"
59467
59468	// ResourceTypeAccountSettings is a ResourceType enum value
59469	ResourceTypeAccountSettings = "ACCOUNT_SETTINGS"
59470
59471	// ResourceTypeRoleAlias is a ResourceType enum value
59472	ResourceTypeRoleAlias = "ROLE_ALIAS"
59473
59474	// ResourceTypeIamRole is a ResourceType enum value
59475	ResourceTypeIamRole = "IAM_ROLE"
59476)
59477
59478// ResourceType_Values returns all elements of the ResourceType enum
59479func ResourceType_Values() []string {
59480	return []string{
59481		ResourceTypeDeviceCertificate,
59482		ResourceTypeCaCertificate,
59483		ResourceTypeIotPolicy,
59484		ResourceTypeCognitoIdentityPool,
59485		ResourceTypeClientId,
59486		ResourceTypeAccountSettings,
59487		ResourceTypeRoleAlias,
59488		ResourceTypeIamRole,
59489	}
59490}
59491
59492const (
59493	// ServerCertificateStatusInvalid is a ServerCertificateStatus enum value
59494	ServerCertificateStatusInvalid = "INVALID"
59495
59496	// ServerCertificateStatusValid is a ServerCertificateStatus enum value
59497	ServerCertificateStatusValid = "VALID"
59498)
59499
59500// ServerCertificateStatus_Values returns all elements of the ServerCertificateStatus enum
59501func ServerCertificateStatus_Values() []string {
59502	return []string{
59503		ServerCertificateStatusInvalid,
59504		ServerCertificateStatusValid,
59505	}
59506}
59507
59508const (
59509	// ServiceTypeData is a ServiceType enum value
59510	ServiceTypeData = "DATA"
59511
59512	// ServiceTypeCredentialProvider is a ServiceType enum value
59513	ServiceTypeCredentialProvider = "CREDENTIAL_PROVIDER"
59514
59515	// ServiceTypeJobs is a ServiceType enum value
59516	ServiceTypeJobs = "JOBS"
59517)
59518
59519// ServiceType_Values returns all elements of the ServiceType enum
59520func ServiceType_Values() []string {
59521	return []string{
59522		ServiceTypeData,
59523		ServiceTypeCredentialProvider,
59524		ServiceTypeJobs,
59525	}
59526}
59527
59528const (
59529	// StatusInProgress is a Status enum value
59530	StatusInProgress = "InProgress"
59531
59532	// StatusCompleted is a Status enum value
59533	StatusCompleted = "Completed"
59534
59535	// StatusFailed is a Status enum value
59536	StatusFailed = "Failed"
59537
59538	// StatusCancelled is a Status enum value
59539	StatusCancelled = "Cancelled"
59540
59541	// StatusCancelling is a Status enum value
59542	StatusCancelling = "Cancelling"
59543)
59544
59545// Status_Values returns all elements of the Status enum
59546func Status_Values() []string {
59547	return []string{
59548		StatusInProgress,
59549		StatusCompleted,
59550		StatusFailed,
59551		StatusCancelled,
59552		StatusCancelling,
59553	}
59554}
59555
59556const (
59557	// TargetSelectionContinuous is a TargetSelection enum value
59558	TargetSelectionContinuous = "CONTINUOUS"
59559
59560	// TargetSelectionSnapshot is a TargetSelection enum value
59561	TargetSelectionSnapshot = "SNAPSHOT"
59562)
59563
59564// TargetSelection_Values returns all elements of the TargetSelection enum
59565func TargetSelection_Values() []string {
59566	return []string{
59567		TargetSelectionContinuous,
59568		TargetSelectionSnapshot,
59569	}
59570}
59571
59572const (
59573	// ThingConnectivityIndexingModeOff is a ThingConnectivityIndexingMode enum value
59574	ThingConnectivityIndexingModeOff = "OFF"
59575
59576	// ThingConnectivityIndexingModeStatus is a ThingConnectivityIndexingMode enum value
59577	ThingConnectivityIndexingModeStatus = "STATUS"
59578)
59579
59580// ThingConnectivityIndexingMode_Values returns all elements of the ThingConnectivityIndexingMode enum
59581func ThingConnectivityIndexingMode_Values() []string {
59582	return []string{
59583		ThingConnectivityIndexingModeOff,
59584		ThingConnectivityIndexingModeStatus,
59585	}
59586}
59587
59588const (
59589	// ThingGroupIndexingModeOff is a ThingGroupIndexingMode enum value
59590	ThingGroupIndexingModeOff = "OFF"
59591
59592	// ThingGroupIndexingModeOn is a ThingGroupIndexingMode enum value
59593	ThingGroupIndexingModeOn = "ON"
59594)
59595
59596// ThingGroupIndexingMode_Values returns all elements of the ThingGroupIndexingMode enum
59597func ThingGroupIndexingMode_Values() []string {
59598	return []string{
59599		ThingGroupIndexingModeOff,
59600		ThingGroupIndexingModeOn,
59601	}
59602}
59603
59604const (
59605	// ThingIndexingModeOff is a ThingIndexingMode enum value
59606	ThingIndexingModeOff = "OFF"
59607
59608	// ThingIndexingModeRegistry is a ThingIndexingMode enum value
59609	ThingIndexingModeRegistry = "REGISTRY"
59610
59611	// ThingIndexingModeRegistryAndShadow is a ThingIndexingMode enum value
59612	ThingIndexingModeRegistryAndShadow = "REGISTRY_AND_SHADOW"
59613)
59614
59615// ThingIndexingMode_Values returns all elements of the ThingIndexingMode enum
59616func ThingIndexingMode_Values() []string {
59617	return []string{
59618		ThingIndexingModeOff,
59619		ThingIndexingModeRegistry,
59620		ThingIndexingModeRegistryAndShadow,
59621	}
59622}
59623
59624const (
59625	// TopicRuleDestinationStatusEnabled is a TopicRuleDestinationStatus enum value
59626	TopicRuleDestinationStatusEnabled = "ENABLED"
59627
59628	// TopicRuleDestinationStatusInProgress is a TopicRuleDestinationStatus enum value
59629	TopicRuleDestinationStatusInProgress = "IN_PROGRESS"
59630
59631	// TopicRuleDestinationStatusDisabled is a TopicRuleDestinationStatus enum value
59632	TopicRuleDestinationStatusDisabled = "DISABLED"
59633
59634	// TopicRuleDestinationStatusError is a TopicRuleDestinationStatus enum value
59635	TopicRuleDestinationStatusError = "ERROR"
59636
59637	// TopicRuleDestinationStatusDeleting is a TopicRuleDestinationStatus enum value
59638	TopicRuleDestinationStatusDeleting = "DELETING"
59639)
59640
59641// TopicRuleDestinationStatus_Values returns all elements of the TopicRuleDestinationStatus enum
59642func TopicRuleDestinationStatus_Values() []string {
59643	return []string{
59644		TopicRuleDestinationStatusEnabled,
59645		TopicRuleDestinationStatusInProgress,
59646		TopicRuleDestinationStatusDisabled,
59647		TopicRuleDestinationStatusError,
59648		TopicRuleDestinationStatusDeleting,
59649	}
59650}
59651
59652const (
59653	// ViolationEventTypeInAlarm is a ViolationEventType enum value
59654	ViolationEventTypeInAlarm = "in-alarm"
59655
59656	// ViolationEventTypeAlarmCleared is a ViolationEventType enum value
59657	ViolationEventTypeAlarmCleared = "alarm-cleared"
59658
59659	// ViolationEventTypeAlarmInvalidated is a ViolationEventType enum value
59660	ViolationEventTypeAlarmInvalidated = "alarm-invalidated"
59661)
59662
59663// ViolationEventType_Values returns all elements of the ViolationEventType enum
59664func ViolationEventType_Values() []string {
59665	return []string{
59666		ViolationEventTypeInAlarm,
59667		ViolationEventTypeAlarmCleared,
59668		ViolationEventTypeAlarmInvalidated,
59669	}
59670}
59671