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 the specified policy to the specified principal (certificate or
428// other credential).
429//
430// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
431// with awserr.Error's Code and Message methods to get detailed information about
432// the error.
433//
434// See the AWS API reference guide for AWS IoT's
435// API operation AttachPolicy for usage and error information.
436//
437// Returned Error Types:
438//   * ResourceNotFoundException
439//   The specified resource does not exist.
440//
441//   * InvalidRequestException
442//   The request is not valid.
443//
444//   * ThrottlingException
445//   The rate exceeds the limit.
446//
447//   * UnauthorizedException
448//   You are not authorized to perform this operation.
449//
450//   * ServiceUnavailableException
451//   The service is temporarily unavailable.
452//
453//   * InternalFailureException
454//   An unexpected error has occurred.
455//
456//   * LimitExceededException
457//   A limit has been exceeded.
458//
459func (c *IoT) AttachPolicy(input *AttachPolicyInput) (*AttachPolicyOutput, error) {
460	req, out := c.AttachPolicyRequest(input)
461	return out, req.Send()
462}
463
464// AttachPolicyWithContext is the same as AttachPolicy with the addition of
465// the ability to pass a context and additional request options.
466//
467// See AttachPolicy for details on how to use this API operation.
468//
469// The context must be non-nil and will be used for request cancellation. If
470// the context is nil a panic will occur. In the future the SDK may create
471// sub-contexts for http.Requests. See https://golang.org/pkg/context/
472// for more information on using Contexts.
473func (c *IoT) AttachPolicyWithContext(ctx aws.Context, input *AttachPolicyInput, opts ...request.Option) (*AttachPolicyOutput, error) {
474	req, out := c.AttachPolicyRequest(input)
475	req.SetContext(ctx)
476	req.ApplyOptions(opts...)
477	return out, req.Send()
478}
479
480const opAttachPrincipalPolicy = "AttachPrincipalPolicy"
481
482// AttachPrincipalPolicyRequest generates a "aws/request.Request" representing the
483// client's request for the AttachPrincipalPolicy operation. The "output" return
484// value will be populated with the request's response once the request completes
485// successfully.
486//
487// Use "Send" method on the returned Request to send the API call to the service.
488// the "output" return value is not valid until after Send returns without error.
489//
490// See AttachPrincipalPolicy for more information on using the AttachPrincipalPolicy
491// API call, and error handling.
492//
493// This method is useful when you want to inject custom logic or configuration
494// into the SDK's request lifecycle. Such as custom headers, or retry logic.
495//
496//
497//    // Example sending a request using the AttachPrincipalPolicyRequest method.
498//    req, resp := client.AttachPrincipalPolicyRequest(params)
499//
500//    err := req.Send()
501//    if err == nil { // resp is now filled
502//        fmt.Println(resp)
503//    }
504//
505// Deprecated: AttachPrincipalPolicy has been deprecated
506func (c *IoT) AttachPrincipalPolicyRequest(input *AttachPrincipalPolicyInput) (req *request.Request, output *AttachPrincipalPolicyOutput) {
507	if c.Client.Config.Logger != nil {
508		c.Client.Config.Logger.Log("This operation, AttachPrincipalPolicy, has been deprecated")
509	}
510	op := &request.Operation{
511		Name:       opAttachPrincipalPolicy,
512		HTTPMethod: "PUT",
513		HTTPPath:   "/principal-policies/{policyName}",
514	}
515
516	if input == nil {
517		input = &AttachPrincipalPolicyInput{}
518	}
519
520	output = &AttachPrincipalPolicyOutput{}
521	req = c.newRequest(op, input, output)
522	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
523	return
524}
525
526// AttachPrincipalPolicy API operation for AWS IoT.
527//
528// Attaches the specified policy to the specified principal (certificate or
529// other credential).
530//
531// Note: This API is deprecated. Please use AttachPolicy instead.
532//
533// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
534// with awserr.Error's Code and Message methods to get detailed information about
535// the error.
536//
537// See the AWS API reference guide for AWS IoT's
538// API operation AttachPrincipalPolicy for usage and error information.
539//
540// Returned Error Types:
541//   * ResourceNotFoundException
542//   The specified resource does not exist.
543//
544//   * InvalidRequestException
545//   The request is not valid.
546//
547//   * ThrottlingException
548//   The rate exceeds the limit.
549//
550//   * UnauthorizedException
551//   You are not authorized to perform this operation.
552//
553//   * ServiceUnavailableException
554//   The service is temporarily unavailable.
555//
556//   * InternalFailureException
557//   An unexpected error has occurred.
558//
559//   * LimitExceededException
560//   A limit has been exceeded.
561//
562//
563// Deprecated: AttachPrincipalPolicy has been deprecated
564func (c *IoT) AttachPrincipalPolicy(input *AttachPrincipalPolicyInput) (*AttachPrincipalPolicyOutput, error) {
565	req, out := c.AttachPrincipalPolicyRequest(input)
566	return out, req.Send()
567}
568
569// AttachPrincipalPolicyWithContext is the same as AttachPrincipalPolicy with the addition of
570// the ability to pass a context and additional request options.
571//
572// See AttachPrincipalPolicy for details on how to use this API operation.
573//
574// The context must be non-nil and will be used for request cancellation. If
575// the context is nil a panic will occur. In the future the SDK may create
576// sub-contexts for http.Requests. See https://golang.org/pkg/context/
577// for more information on using Contexts.
578//
579// Deprecated: AttachPrincipalPolicyWithContext has been deprecated
580func (c *IoT) AttachPrincipalPolicyWithContext(ctx aws.Context, input *AttachPrincipalPolicyInput, opts ...request.Option) (*AttachPrincipalPolicyOutput, error) {
581	req, out := c.AttachPrincipalPolicyRequest(input)
582	req.SetContext(ctx)
583	req.ApplyOptions(opts...)
584	return out, req.Send()
585}
586
587const opAttachSecurityProfile = "AttachSecurityProfile"
588
589// AttachSecurityProfileRequest generates a "aws/request.Request" representing the
590// client's request for the AttachSecurityProfile operation. The "output" return
591// value will be populated with the request's response once the request completes
592// successfully.
593//
594// Use "Send" method on the returned Request to send the API call to the service.
595// the "output" return value is not valid until after Send returns without error.
596//
597// See AttachSecurityProfile for more information on using the AttachSecurityProfile
598// API call, and error handling.
599//
600// This method is useful when you want to inject custom logic or configuration
601// into the SDK's request lifecycle. Such as custom headers, or retry logic.
602//
603//
604//    // Example sending a request using the AttachSecurityProfileRequest method.
605//    req, resp := client.AttachSecurityProfileRequest(params)
606//
607//    err := req.Send()
608//    if err == nil { // resp is now filled
609//        fmt.Println(resp)
610//    }
611func (c *IoT) AttachSecurityProfileRequest(input *AttachSecurityProfileInput) (req *request.Request, output *AttachSecurityProfileOutput) {
612	op := &request.Operation{
613		Name:       opAttachSecurityProfile,
614		HTTPMethod: "PUT",
615		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
616	}
617
618	if input == nil {
619		input = &AttachSecurityProfileInput{}
620	}
621
622	output = &AttachSecurityProfileOutput{}
623	req = c.newRequest(op, input, output)
624	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
625	return
626}
627
628// AttachSecurityProfile API operation for AWS IoT.
629//
630// Associates a Device Defender security profile with a thing group or this
631// account. Each thing group or account can have up to five security profiles
632// associated with it.
633//
634// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
635// with awserr.Error's Code and Message methods to get detailed information about
636// the error.
637//
638// See the AWS API reference guide for AWS IoT's
639// API operation AttachSecurityProfile for usage and error information.
640//
641// Returned Error Types:
642//   * InvalidRequestException
643//   The request is not valid.
644//
645//   * ResourceNotFoundException
646//   The specified resource does not exist.
647//
648//   * LimitExceededException
649//   A limit has been exceeded.
650//
651//   * VersionConflictException
652//   An exception thrown when the version of an entity specified with the expectedVersion
653//   parameter does not match the latest version in the system.
654//
655//   * ThrottlingException
656//   The rate exceeds the limit.
657//
658//   * InternalFailureException
659//   An unexpected error has occurred.
660//
661func (c *IoT) AttachSecurityProfile(input *AttachSecurityProfileInput) (*AttachSecurityProfileOutput, error) {
662	req, out := c.AttachSecurityProfileRequest(input)
663	return out, req.Send()
664}
665
666// AttachSecurityProfileWithContext is the same as AttachSecurityProfile with the addition of
667// the ability to pass a context and additional request options.
668//
669// See AttachSecurityProfile for details on how to use this API operation.
670//
671// The context must be non-nil and will be used for request cancellation. If
672// the context is nil a panic will occur. In the future the SDK may create
673// sub-contexts for http.Requests. See https://golang.org/pkg/context/
674// for more information on using Contexts.
675func (c *IoT) AttachSecurityProfileWithContext(ctx aws.Context, input *AttachSecurityProfileInput, opts ...request.Option) (*AttachSecurityProfileOutput, error) {
676	req, out := c.AttachSecurityProfileRequest(input)
677	req.SetContext(ctx)
678	req.ApplyOptions(opts...)
679	return out, req.Send()
680}
681
682const opAttachThingPrincipal = "AttachThingPrincipal"
683
684// AttachThingPrincipalRequest generates a "aws/request.Request" representing the
685// client's request for the AttachThingPrincipal operation. The "output" return
686// value will be populated with the request's response once the request completes
687// successfully.
688//
689// Use "Send" method on the returned Request to send the API call to the service.
690// the "output" return value is not valid until after Send returns without error.
691//
692// See AttachThingPrincipal for more information on using the AttachThingPrincipal
693// API call, and error handling.
694//
695// This method is useful when you want to inject custom logic or configuration
696// into the SDK's request lifecycle. Such as custom headers, or retry logic.
697//
698//
699//    // Example sending a request using the AttachThingPrincipalRequest method.
700//    req, resp := client.AttachThingPrincipalRequest(params)
701//
702//    err := req.Send()
703//    if err == nil { // resp is now filled
704//        fmt.Println(resp)
705//    }
706func (c *IoT) AttachThingPrincipalRequest(input *AttachThingPrincipalInput) (req *request.Request, output *AttachThingPrincipalOutput) {
707	op := &request.Operation{
708		Name:       opAttachThingPrincipal,
709		HTTPMethod: "PUT",
710		HTTPPath:   "/things/{thingName}/principals",
711	}
712
713	if input == nil {
714		input = &AttachThingPrincipalInput{}
715	}
716
717	output = &AttachThingPrincipalOutput{}
718	req = c.newRequest(op, input, output)
719	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
720	return
721}
722
723// AttachThingPrincipal API operation for AWS IoT.
724//
725// Attaches the specified principal to the specified thing. A principal can
726// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
727// or federated identities.
728//
729// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
730// with awserr.Error's Code and Message methods to get detailed information about
731// the error.
732//
733// See the AWS API reference guide for AWS IoT's
734// API operation AttachThingPrincipal for usage and error information.
735//
736// Returned Error Types:
737//   * ResourceNotFoundException
738//   The specified resource does not exist.
739//
740//   * InvalidRequestException
741//   The request is not valid.
742//
743//   * ThrottlingException
744//   The rate exceeds the limit.
745//
746//   * UnauthorizedException
747//   You are not authorized to perform this operation.
748//
749//   * ServiceUnavailableException
750//   The service is temporarily unavailable.
751//
752//   * InternalFailureException
753//   An unexpected error has occurred.
754//
755func (c *IoT) AttachThingPrincipal(input *AttachThingPrincipalInput) (*AttachThingPrincipalOutput, error) {
756	req, out := c.AttachThingPrincipalRequest(input)
757	return out, req.Send()
758}
759
760// AttachThingPrincipalWithContext is the same as AttachThingPrincipal with the addition of
761// the ability to pass a context and additional request options.
762//
763// See AttachThingPrincipal for details on how to use this API operation.
764//
765// The context must be non-nil and will be used for request cancellation. If
766// the context is nil a panic will occur. In the future the SDK may create
767// sub-contexts for http.Requests. See https://golang.org/pkg/context/
768// for more information on using Contexts.
769func (c *IoT) AttachThingPrincipalWithContext(ctx aws.Context, input *AttachThingPrincipalInput, opts ...request.Option) (*AttachThingPrincipalOutput, error) {
770	req, out := c.AttachThingPrincipalRequest(input)
771	req.SetContext(ctx)
772	req.ApplyOptions(opts...)
773	return out, req.Send()
774}
775
776const opCancelAuditMitigationActionsTask = "CancelAuditMitigationActionsTask"
777
778// CancelAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
779// client's request for the CancelAuditMitigationActionsTask operation. The "output" return
780// value will be populated with the request's response once the request completes
781// successfully.
782//
783// Use "Send" method on the returned Request to send the API call to the service.
784// the "output" return value is not valid until after Send returns without error.
785//
786// See CancelAuditMitigationActionsTask for more information on using the CancelAuditMitigationActionsTask
787// API call, and error handling.
788//
789// This method is useful when you want to inject custom logic or configuration
790// into the SDK's request lifecycle. Such as custom headers, or retry logic.
791//
792//
793//    // Example sending a request using the CancelAuditMitigationActionsTaskRequest method.
794//    req, resp := client.CancelAuditMitigationActionsTaskRequest(params)
795//
796//    err := req.Send()
797//    if err == nil { // resp is now filled
798//        fmt.Println(resp)
799//    }
800func (c *IoT) CancelAuditMitigationActionsTaskRequest(input *CancelAuditMitigationActionsTaskInput) (req *request.Request, output *CancelAuditMitigationActionsTaskOutput) {
801	op := &request.Operation{
802		Name:       opCancelAuditMitigationActionsTask,
803		HTTPMethod: "PUT",
804		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}/cancel",
805	}
806
807	if input == nil {
808		input = &CancelAuditMitigationActionsTaskInput{}
809	}
810
811	output = &CancelAuditMitigationActionsTaskOutput{}
812	req = c.newRequest(op, input, output)
813	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
814	return
815}
816
817// CancelAuditMitigationActionsTask API operation for AWS IoT.
818//
819// Cancels a mitigation action task that is in progress. If the task is not
820// in progress, an InvalidRequestException occurs.
821//
822// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
823// with awserr.Error's Code and Message methods to get detailed information about
824// the error.
825//
826// See the AWS API reference guide for AWS IoT's
827// API operation CancelAuditMitigationActionsTask for usage and error information.
828//
829// Returned Error Types:
830//   * ResourceNotFoundException
831//   The specified resource does not exist.
832//
833//   * InvalidRequestException
834//   The request is not valid.
835//
836//   * ThrottlingException
837//   The rate exceeds the limit.
838//
839//   * InternalFailureException
840//   An unexpected error has occurred.
841//
842func (c *IoT) CancelAuditMitigationActionsTask(input *CancelAuditMitigationActionsTaskInput) (*CancelAuditMitigationActionsTaskOutput, error) {
843	req, out := c.CancelAuditMitigationActionsTaskRequest(input)
844	return out, req.Send()
845}
846
847// CancelAuditMitigationActionsTaskWithContext is the same as CancelAuditMitigationActionsTask with the addition of
848// the ability to pass a context and additional request options.
849//
850// See CancelAuditMitigationActionsTask for details on how to use this API operation.
851//
852// The context must be non-nil and will be used for request cancellation. If
853// the context is nil a panic will occur. In the future the SDK may create
854// sub-contexts for http.Requests. See https://golang.org/pkg/context/
855// for more information on using Contexts.
856func (c *IoT) CancelAuditMitigationActionsTaskWithContext(ctx aws.Context, input *CancelAuditMitigationActionsTaskInput, opts ...request.Option) (*CancelAuditMitigationActionsTaskOutput, error) {
857	req, out := c.CancelAuditMitigationActionsTaskRequest(input)
858	req.SetContext(ctx)
859	req.ApplyOptions(opts...)
860	return out, req.Send()
861}
862
863const opCancelAuditTask = "CancelAuditTask"
864
865// CancelAuditTaskRequest generates a "aws/request.Request" representing the
866// client's request for the CancelAuditTask operation. The "output" return
867// value will be populated with the request's response once the request completes
868// successfully.
869//
870// Use "Send" method on the returned Request to send the API call to the service.
871// the "output" return value is not valid until after Send returns without error.
872//
873// See CancelAuditTask for more information on using the CancelAuditTask
874// API call, and error handling.
875//
876// This method is useful when you want to inject custom logic or configuration
877// into the SDK's request lifecycle. Such as custom headers, or retry logic.
878//
879//
880//    // Example sending a request using the CancelAuditTaskRequest method.
881//    req, resp := client.CancelAuditTaskRequest(params)
882//
883//    err := req.Send()
884//    if err == nil { // resp is now filled
885//        fmt.Println(resp)
886//    }
887func (c *IoT) CancelAuditTaskRequest(input *CancelAuditTaskInput) (req *request.Request, output *CancelAuditTaskOutput) {
888	op := &request.Operation{
889		Name:       opCancelAuditTask,
890		HTTPMethod: "PUT",
891		HTTPPath:   "/audit/tasks/{taskId}/cancel",
892	}
893
894	if input == nil {
895		input = &CancelAuditTaskInput{}
896	}
897
898	output = &CancelAuditTaskOutput{}
899	req = c.newRequest(op, input, output)
900	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
901	return
902}
903
904// CancelAuditTask API operation for AWS IoT.
905//
906// Cancels an audit that is in progress. The audit can be either scheduled or
907// on demand. If the audit isn't in progress, an "InvalidRequestException" occurs.
908//
909// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
910// with awserr.Error's Code and Message methods to get detailed information about
911// the error.
912//
913// See the AWS API reference guide for AWS IoT's
914// API operation CancelAuditTask for usage and error information.
915//
916// Returned Error Types:
917//   * ResourceNotFoundException
918//   The specified resource does not exist.
919//
920//   * InvalidRequestException
921//   The request is not valid.
922//
923//   * ThrottlingException
924//   The rate exceeds the limit.
925//
926//   * InternalFailureException
927//   An unexpected error has occurred.
928//
929func (c *IoT) CancelAuditTask(input *CancelAuditTaskInput) (*CancelAuditTaskOutput, error) {
930	req, out := c.CancelAuditTaskRequest(input)
931	return out, req.Send()
932}
933
934// CancelAuditTaskWithContext is the same as CancelAuditTask with the addition of
935// the ability to pass a context and additional request options.
936//
937// See CancelAuditTask for details on how to use this API operation.
938//
939// The context must be non-nil and will be used for request cancellation. If
940// the context is nil a panic will occur. In the future the SDK may create
941// sub-contexts for http.Requests. See https://golang.org/pkg/context/
942// for more information on using Contexts.
943func (c *IoT) CancelAuditTaskWithContext(ctx aws.Context, input *CancelAuditTaskInput, opts ...request.Option) (*CancelAuditTaskOutput, error) {
944	req, out := c.CancelAuditTaskRequest(input)
945	req.SetContext(ctx)
946	req.ApplyOptions(opts...)
947	return out, req.Send()
948}
949
950const opCancelCertificateTransfer = "CancelCertificateTransfer"
951
952// CancelCertificateTransferRequest generates a "aws/request.Request" representing the
953// client's request for the CancelCertificateTransfer operation. The "output" return
954// value will be populated with the request's response once the request completes
955// successfully.
956//
957// Use "Send" method on the returned Request to send the API call to the service.
958// the "output" return value is not valid until after Send returns without error.
959//
960// See CancelCertificateTransfer for more information on using the CancelCertificateTransfer
961// API call, and error handling.
962//
963// This method is useful when you want to inject custom logic or configuration
964// into the SDK's request lifecycle. Such as custom headers, or retry logic.
965//
966//
967//    // Example sending a request using the CancelCertificateTransferRequest method.
968//    req, resp := client.CancelCertificateTransferRequest(params)
969//
970//    err := req.Send()
971//    if err == nil { // resp is now filled
972//        fmt.Println(resp)
973//    }
974func (c *IoT) CancelCertificateTransferRequest(input *CancelCertificateTransferInput) (req *request.Request, output *CancelCertificateTransferOutput) {
975	op := &request.Operation{
976		Name:       opCancelCertificateTransfer,
977		HTTPMethod: "PATCH",
978		HTTPPath:   "/cancel-certificate-transfer/{certificateId}",
979	}
980
981	if input == nil {
982		input = &CancelCertificateTransferInput{}
983	}
984
985	output = &CancelCertificateTransferOutput{}
986	req = c.newRequest(op, input, output)
987	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
988	return
989}
990
991// CancelCertificateTransfer API operation for AWS IoT.
992//
993// Cancels a pending transfer for the specified certificate.
994//
995// Note Only the transfer source account can use this operation to cancel a
996// transfer. (Transfer destinations can use RejectCertificateTransfer instead.)
997// After transfer, AWS IoT returns the certificate to the source account in
998// the INACTIVE state. After the destination account has accepted the transfer,
999// the transfer cannot be cancelled.
1000//
1001// After a certificate transfer is cancelled, the status of the certificate
1002// changes from PENDING_TRANSFER to INACTIVE.
1003//
1004// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1005// with awserr.Error's Code and Message methods to get detailed information about
1006// the error.
1007//
1008// See the AWS API reference guide for AWS IoT's
1009// API operation CancelCertificateTransfer for usage and error information.
1010//
1011// Returned Error Types:
1012//   * ResourceNotFoundException
1013//   The specified resource does not exist.
1014//
1015//   * TransferAlreadyCompletedException
1016//   You can't revert the certificate transfer because the transfer is already
1017//   complete.
1018//
1019//   * InvalidRequestException
1020//   The request is not valid.
1021//
1022//   * ThrottlingException
1023//   The rate exceeds the limit.
1024//
1025//   * UnauthorizedException
1026//   You are not authorized to perform this operation.
1027//
1028//   * ServiceUnavailableException
1029//   The service is temporarily unavailable.
1030//
1031//   * InternalFailureException
1032//   An unexpected error has occurred.
1033//
1034func (c *IoT) CancelCertificateTransfer(input *CancelCertificateTransferInput) (*CancelCertificateTransferOutput, error) {
1035	req, out := c.CancelCertificateTransferRequest(input)
1036	return out, req.Send()
1037}
1038
1039// CancelCertificateTransferWithContext is the same as CancelCertificateTransfer with the addition of
1040// the ability to pass a context and additional request options.
1041//
1042// See CancelCertificateTransfer for details on how to use this API operation.
1043//
1044// The context must be non-nil and will be used for request cancellation. If
1045// the context is nil a panic will occur. In the future the SDK may create
1046// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1047// for more information on using Contexts.
1048func (c *IoT) CancelCertificateTransferWithContext(ctx aws.Context, input *CancelCertificateTransferInput, opts ...request.Option) (*CancelCertificateTransferOutput, error) {
1049	req, out := c.CancelCertificateTransferRequest(input)
1050	req.SetContext(ctx)
1051	req.ApplyOptions(opts...)
1052	return out, req.Send()
1053}
1054
1055const opCancelDetectMitigationActionsTask = "CancelDetectMitigationActionsTask"
1056
1057// CancelDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
1058// client's request for the CancelDetectMitigationActionsTask operation. The "output" return
1059// value will be populated with the request's response once the request completes
1060// successfully.
1061//
1062// Use "Send" method on the returned Request to send the API call to the service.
1063// the "output" return value is not valid until after Send returns without error.
1064//
1065// See CancelDetectMitigationActionsTask for more information on using the CancelDetectMitigationActionsTask
1066// API call, and error handling.
1067//
1068// This method is useful when you want to inject custom logic or configuration
1069// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1070//
1071//
1072//    // Example sending a request using the CancelDetectMitigationActionsTaskRequest method.
1073//    req, resp := client.CancelDetectMitigationActionsTaskRequest(params)
1074//
1075//    err := req.Send()
1076//    if err == nil { // resp is now filled
1077//        fmt.Println(resp)
1078//    }
1079func (c *IoT) CancelDetectMitigationActionsTaskRequest(input *CancelDetectMitigationActionsTaskInput) (req *request.Request, output *CancelDetectMitigationActionsTaskOutput) {
1080	op := &request.Operation{
1081		Name:       opCancelDetectMitigationActionsTask,
1082		HTTPMethod: "PUT",
1083		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}/cancel",
1084	}
1085
1086	if input == nil {
1087		input = &CancelDetectMitigationActionsTaskInput{}
1088	}
1089
1090	output = &CancelDetectMitigationActionsTaskOutput{}
1091	req = c.newRequest(op, input, output)
1092	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1093	return
1094}
1095
1096// CancelDetectMitigationActionsTask API operation for AWS IoT.
1097//
1098// Cancels a Device Defender ML Detect mitigation action.
1099//
1100// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1101// with awserr.Error's Code and Message methods to get detailed information about
1102// the error.
1103//
1104// See the AWS API reference guide for AWS IoT's
1105// API operation CancelDetectMitigationActionsTask for usage and error information.
1106//
1107// Returned Error Types:
1108//   * ResourceNotFoundException
1109//   The specified resource does not exist.
1110//
1111//   * InvalidRequestException
1112//   The request is not valid.
1113//
1114//   * ThrottlingException
1115//   The rate exceeds the limit.
1116//
1117//   * InternalFailureException
1118//   An unexpected error has occurred.
1119//
1120func (c *IoT) CancelDetectMitigationActionsTask(input *CancelDetectMitigationActionsTaskInput) (*CancelDetectMitigationActionsTaskOutput, error) {
1121	req, out := c.CancelDetectMitigationActionsTaskRequest(input)
1122	return out, req.Send()
1123}
1124
1125// CancelDetectMitigationActionsTaskWithContext is the same as CancelDetectMitigationActionsTask with the addition of
1126// the ability to pass a context and additional request options.
1127//
1128// See CancelDetectMitigationActionsTask for details on how to use this API operation.
1129//
1130// The context must be non-nil and will be used for request cancellation. If
1131// the context is nil a panic will occur. In the future the SDK may create
1132// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1133// for more information on using Contexts.
1134func (c *IoT) CancelDetectMitigationActionsTaskWithContext(ctx aws.Context, input *CancelDetectMitigationActionsTaskInput, opts ...request.Option) (*CancelDetectMitigationActionsTaskOutput, error) {
1135	req, out := c.CancelDetectMitigationActionsTaskRequest(input)
1136	req.SetContext(ctx)
1137	req.ApplyOptions(opts...)
1138	return out, req.Send()
1139}
1140
1141const opCancelJob = "CancelJob"
1142
1143// CancelJobRequest generates a "aws/request.Request" representing the
1144// client's request for the CancelJob operation. The "output" return
1145// value will be populated with the request's response once the request completes
1146// successfully.
1147//
1148// Use "Send" method on the returned Request to send the API call to the service.
1149// the "output" return value is not valid until after Send returns without error.
1150//
1151// See CancelJob for more information on using the CancelJob
1152// API call, and error handling.
1153//
1154// This method is useful when you want to inject custom logic or configuration
1155// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1156//
1157//
1158//    // Example sending a request using the CancelJobRequest method.
1159//    req, resp := client.CancelJobRequest(params)
1160//
1161//    err := req.Send()
1162//    if err == nil { // resp is now filled
1163//        fmt.Println(resp)
1164//    }
1165func (c *IoT) CancelJobRequest(input *CancelJobInput) (req *request.Request, output *CancelJobOutput) {
1166	op := &request.Operation{
1167		Name:       opCancelJob,
1168		HTTPMethod: "PUT",
1169		HTTPPath:   "/jobs/{jobId}/cancel",
1170	}
1171
1172	if input == nil {
1173		input = &CancelJobInput{}
1174	}
1175
1176	output = &CancelJobOutput{}
1177	req = c.newRequest(op, input, output)
1178	return
1179}
1180
1181// CancelJob API operation for AWS IoT.
1182//
1183// Cancels a job.
1184//
1185// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1186// with awserr.Error's Code and Message methods to get detailed information about
1187// the error.
1188//
1189// See the AWS API reference guide for AWS IoT's
1190// API operation CancelJob for usage and error information.
1191//
1192// Returned Error Types:
1193//   * InvalidRequestException
1194//   The request is not valid.
1195//
1196//   * ResourceNotFoundException
1197//   The specified resource does not exist.
1198//
1199//   * ThrottlingException
1200//   The rate exceeds the limit.
1201//
1202//   * ServiceUnavailableException
1203//   The service is temporarily unavailable.
1204//
1205func (c *IoT) CancelJob(input *CancelJobInput) (*CancelJobOutput, error) {
1206	req, out := c.CancelJobRequest(input)
1207	return out, req.Send()
1208}
1209
1210// CancelJobWithContext is the same as CancelJob with the addition of
1211// the ability to pass a context and additional request options.
1212//
1213// See CancelJob for details on how to use this API operation.
1214//
1215// The context must be non-nil and will be used for request cancellation. If
1216// the context is nil a panic will occur. In the future the SDK may create
1217// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1218// for more information on using Contexts.
1219func (c *IoT) CancelJobWithContext(ctx aws.Context, input *CancelJobInput, opts ...request.Option) (*CancelJobOutput, error) {
1220	req, out := c.CancelJobRequest(input)
1221	req.SetContext(ctx)
1222	req.ApplyOptions(opts...)
1223	return out, req.Send()
1224}
1225
1226const opCancelJobExecution = "CancelJobExecution"
1227
1228// CancelJobExecutionRequest generates a "aws/request.Request" representing the
1229// client's request for the CancelJobExecution operation. The "output" return
1230// value will be populated with the request's response once the request completes
1231// successfully.
1232//
1233// Use "Send" method on the returned Request to send the API call to the service.
1234// the "output" return value is not valid until after Send returns without error.
1235//
1236// See CancelJobExecution for more information on using the CancelJobExecution
1237// API call, and error handling.
1238//
1239// This method is useful when you want to inject custom logic or configuration
1240// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1241//
1242//
1243//    // Example sending a request using the CancelJobExecutionRequest method.
1244//    req, resp := client.CancelJobExecutionRequest(params)
1245//
1246//    err := req.Send()
1247//    if err == nil { // resp is now filled
1248//        fmt.Println(resp)
1249//    }
1250func (c *IoT) CancelJobExecutionRequest(input *CancelJobExecutionInput) (req *request.Request, output *CancelJobExecutionOutput) {
1251	op := &request.Operation{
1252		Name:       opCancelJobExecution,
1253		HTTPMethod: "PUT",
1254		HTTPPath:   "/things/{thingName}/jobs/{jobId}/cancel",
1255	}
1256
1257	if input == nil {
1258		input = &CancelJobExecutionInput{}
1259	}
1260
1261	output = &CancelJobExecutionOutput{}
1262	req = c.newRequest(op, input, output)
1263	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1264	return
1265}
1266
1267// CancelJobExecution API operation for AWS IoT.
1268//
1269// Cancels the execution of a job for a given thing.
1270//
1271// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1272// with awserr.Error's Code and Message methods to get detailed information about
1273// the error.
1274//
1275// See the AWS API reference guide for AWS IoT's
1276// API operation CancelJobExecution for usage and error information.
1277//
1278// Returned Error Types:
1279//   * InvalidRequestException
1280//   The request is not valid.
1281//
1282//   * InvalidStateTransitionException
1283//   An attempt was made to change to an invalid state, for example by deleting
1284//   a job or a job execution which is "IN_PROGRESS" without setting the force
1285//   parameter.
1286//
1287//   * ResourceNotFoundException
1288//   The specified resource does not exist.
1289//
1290//   * ThrottlingException
1291//   The rate exceeds the limit.
1292//
1293//   * ServiceUnavailableException
1294//   The service is temporarily unavailable.
1295//
1296//   * VersionConflictException
1297//   An exception thrown when the version of an entity specified with the expectedVersion
1298//   parameter does not match the latest version in the system.
1299//
1300func (c *IoT) CancelJobExecution(input *CancelJobExecutionInput) (*CancelJobExecutionOutput, error) {
1301	req, out := c.CancelJobExecutionRequest(input)
1302	return out, req.Send()
1303}
1304
1305// CancelJobExecutionWithContext is the same as CancelJobExecution with the addition of
1306// the ability to pass a context and additional request options.
1307//
1308// See CancelJobExecution for details on how to use this API operation.
1309//
1310// The context must be non-nil and will be used for request cancellation. If
1311// the context is nil a panic will occur. In the future the SDK may create
1312// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1313// for more information on using Contexts.
1314func (c *IoT) CancelJobExecutionWithContext(ctx aws.Context, input *CancelJobExecutionInput, opts ...request.Option) (*CancelJobExecutionOutput, error) {
1315	req, out := c.CancelJobExecutionRequest(input)
1316	req.SetContext(ctx)
1317	req.ApplyOptions(opts...)
1318	return out, req.Send()
1319}
1320
1321const opClearDefaultAuthorizer = "ClearDefaultAuthorizer"
1322
1323// ClearDefaultAuthorizerRequest generates a "aws/request.Request" representing the
1324// client's request for the ClearDefaultAuthorizer operation. The "output" return
1325// value will be populated with the request's response once the request completes
1326// successfully.
1327//
1328// Use "Send" method on the returned Request to send the API call to the service.
1329// the "output" return value is not valid until after Send returns without error.
1330//
1331// See ClearDefaultAuthorizer for more information on using the ClearDefaultAuthorizer
1332// API call, and error handling.
1333//
1334// This method is useful when you want to inject custom logic or configuration
1335// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1336//
1337//
1338//    // Example sending a request using the ClearDefaultAuthorizerRequest method.
1339//    req, resp := client.ClearDefaultAuthorizerRequest(params)
1340//
1341//    err := req.Send()
1342//    if err == nil { // resp is now filled
1343//        fmt.Println(resp)
1344//    }
1345func (c *IoT) ClearDefaultAuthorizerRequest(input *ClearDefaultAuthorizerInput) (req *request.Request, output *ClearDefaultAuthorizerOutput) {
1346	op := &request.Operation{
1347		Name:       opClearDefaultAuthorizer,
1348		HTTPMethod: "DELETE",
1349		HTTPPath:   "/default-authorizer",
1350	}
1351
1352	if input == nil {
1353		input = &ClearDefaultAuthorizerInput{}
1354	}
1355
1356	output = &ClearDefaultAuthorizerOutput{}
1357	req = c.newRequest(op, input, output)
1358	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1359	return
1360}
1361
1362// ClearDefaultAuthorizer API operation for AWS IoT.
1363//
1364// Clears the default authorizer.
1365//
1366// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1367// with awserr.Error's Code and Message methods to get detailed information about
1368// the error.
1369//
1370// See the AWS API reference guide for AWS IoT's
1371// API operation ClearDefaultAuthorizer for usage and error information.
1372//
1373// Returned Error Types:
1374//   * ResourceNotFoundException
1375//   The specified resource does not exist.
1376//
1377//   * InvalidRequestException
1378//   The request is not valid.
1379//
1380//   * ThrottlingException
1381//   The rate exceeds the limit.
1382//
1383//   * UnauthorizedException
1384//   You are not authorized to perform this operation.
1385//
1386//   * ServiceUnavailableException
1387//   The service is temporarily unavailable.
1388//
1389//   * InternalFailureException
1390//   An unexpected error has occurred.
1391//
1392func (c *IoT) ClearDefaultAuthorizer(input *ClearDefaultAuthorizerInput) (*ClearDefaultAuthorizerOutput, error) {
1393	req, out := c.ClearDefaultAuthorizerRequest(input)
1394	return out, req.Send()
1395}
1396
1397// ClearDefaultAuthorizerWithContext is the same as ClearDefaultAuthorizer with the addition of
1398// the ability to pass a context and additional request options.
1399//
1400// See ClearDefaultAuthorizer for details on how to use this API operation.
1401//
1402// The context must be non-nil and will be used for request cancellation. If
1403// the context is nil a panic will occur. In the future the SDK may create
1404// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1405// for more information on using Contexts.
1406func (c *IoT) ClearDefaultAuthorizerWithContext(ctx aws.Context, input *ClearDefaultAuthorizerInput, opts ...request.Option) (*ClearDefaultAuthorizerOutput, error) {
1407	req, out := c.ClearDefaultAuthorizerRequest(input)
1408	req.SetContext(ctx)
1409	req.ApplyOptions(opts...)
1410	return out, req.Send()
1411}
1412
1413const opConfirmTopicRuleDestination = "ConfirmTopicRuleDestination"
1414
1415// ConfirmTopicRuleDestinationRequest generates a "aws/request.Request" representing the
1416// client's request for the ConfirmTopicRuleDestination operation. The "output" return
1417// value will be populated with the request's response once the request completes
1418// successfully.
1419//
1420// Use "Send" method on the returned Request to send the API call to the service.
1421// the "output" return value is not valid until after Send returns without error.
1422//
1423// See ConfirmTopicRuleDestination for more information on using the ConfirmTopicRuleDestination
1424// API call, and error handling.
1425//
1426// This method is useful when you want to inject custom logic or configuration
1427// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1428//
1429//
1430//    // Example sending a request using the ConfirmTopicRuleDestinationRequest method.
1431//    req, resp := client.ConfirmTopicRuleDestinationRequest(params)
1432//
1433//    err := req.Send()
1434//    if err == nil { // resp is now filled
1435//        fmt.Println(resp)
1436//    }
1437func (c *IoT) ConfirmTopicRuleDestinationRequest(input *ConfirmTopicRuleDestinationInput) (req *request.Request, output *ConfirmTopicRuleDestinationOutput) {
1438	op := &request.Operation{
1439		Name:       opConfirmTopicRuleDestination,
1440		HTTPMethod: "GET",
1441		HTTPPath:   "/confirmdestination/{confirmationToken+}",
1442	}
1443
1444	if input == nil {
1445		input = &ConfirmTopicRuleDestinationInput{}
1446	}
1447
1448	output = &ConfirmTopicRuleDestinationOutput{}
1449	req = c.newRequest(op, input, output)
1450	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1451	return
1452}
1453
1454// ConfirmTopicRuleDestination API operation for AWS IoT.
1455//
1456// Confirms a topic rule destination. When you create a rule requiring a destination,
1457// AWS IoT sends a confirmation message to the endpoint or base address you
1458// specify. The message includes a token which you pass back when calling ConfirmTopicRuleDestination
1459// to confirm that you own or have access to the endpoint.
1460//
1461// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1462// with awserr.Error's Code and Message methods to get detailed information about
1463// the error.
1464//
1465// See the AWS API reference guide for AWS IoT's
1466// API operation ConfirmTopicRuleDestination for usage and error information.
1467//
1468// Returned Error Types:
1469//   * InternalException
1470//   An unexpected error has occurred.
1471//
1472//   * InvalidRequestException
1473//   The request is not valid.
1474//
1475//   * ServiceUnavailableException
1476//   The service is temporarily unavailable.
1477//
1478//   * UnauthorizedException
1479//   You are not authorized to perform this operation.
1480//
1481//   * ConflictingResourceUpdateException
1482//   A conflicting resource update exception. This exception is thrown when two
1483//   pending updates cause a conflict.
1484//
1485func (c *IoT) ConfirmTopicRuleDestination(input *ConfirmTopicRuleDestinationInput) (*ConfirmTopicRuleDestinationOutput, error) {
1486	req, out := c.ConfirmTopicRuleDestinationRequest(input)
1487	return out, req.Send()
1488}
1489
1490// ConfirmTopicRuleDestinationWithContext is the same as ConfirmTopicRuleDestination with the addition of
1491// the ability to pass a context and additional request options.
1492//
1493// See ConfirmTopicRuleDestination for details on how to use this API operation.
1494//
1495// The context must be non-nil and will be used for request cancellation. If
1496// the context is nil a panic will occur. In the future the SDK may create
1497// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1498// for more information on using Contexts.
1499func (c *IoT) ConfirmTopicRuleDestinationWithContext(ctx aws.Context, input *ConfirmTopicRuleDestinationInput, opts ...request.Option) (*ConfirmTopicRuleDestinationOutput, error) {
1500	req, out := c.ConfirmTopicRuleDestinationRequest(input)
1501	req.SetContext(ctx)
1502	req.ApplyOptions(opts...)
1503	return out, req.Send()
1504}
1505
1506const opCreateAuditSuppression = "CreateAuditSuppression"
1507
1508// CreateAuditSuppressionRequest generates a "aws/request.Request" representing the
1509// client's request for the CreateAuditSuppression operation. The "output" return
1510// value will be populated with the request's response once the request completes
1511// successfully.
1512//
1513// Use "Send" method on the returned Request to send the API call to the service.
1514// the "output" return value is not valid until after Send returns without error.
1515//
1516// See CreateAuditSuppression for more information on using the CreateAuditSuppression
1517// API call, and error handling.
1518//
1519// This method is useful when you want to inject custom logic or configuration
1520// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1521//
1522//
1523//    // Example sending a request using the CreateAuditSuppressionRequest method.
1524//    req, resp := client.CreateAuditSuppressionRequest(params)
1525//
1526//    err := req.Send()
1527//    if err == nil { // resp is now filled
1528//        fmt.Println(resp)
1529//    }
1530func (c *IoT) CreateAuditSuppressionRequest(input *CreateAuditSuppressionInput) (req *request.Request, output *CreateAuditSuppressionOutput) {
1531	op := &request.Operation{
1532		Name:       opCreateAuditSuppression,
1533		HTTPMethod: "POST",
1534		HTTPPath:   "/audit/suppressions/create",
1535	}
1536
1537	if input == nil {
1538		input = &CreateAuditSuppressionInput{}
1539	}
1540
1541	output = &CreateAuditSuppressionOutput{}
1542	req = c.newRequest(op, input, output)
1543	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1544	return
1545}
1546
1547// CreateAuditSuppression API operation for AWS IoT.
1548//
1549// Creates a Device Defender audit suppression.
1550//
1551// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1552// with awserr.Error's Code and Message methods to get detailed information about
1553// the error.
1554//
1555// See the AWS API reference guide for AWS IoT's
1556// API operation CreateAuditSuppression for usage and error information.
1557//
1558// Returned Error Types:
1559//   * InvalidRequestException
1560//   The request is not valid.
1561//
1562//   * ResourceAlreadyExistsException
1563//   The resource already exists.
1564//
1565//   * ThrottlingException
1566//   The rate exceeds the limit.
1567//
1568//   * InternalFailureException
1569//   An unexpected error has occurred.
1570//
1571//   * LimitExceededException
1572//   A limit has been exceeded.
1573//
1574func (c *IoT) CreateAuditSuppression(input *CreateAuditSuppressionInput) (*CreateAuditSuppressionOutput, error) {
1575	req, out := c.CreateAuditSuppressionRequest(input)
1576	return out, req.Send()
1577}
1578
1579// CreateAuditSuppressionWithContext is the same as CreateAuditSuppression with the addition of
1580// the ability to pass a context and additional request options.
1581//
1582// See CreateAuditSuppression for details on how to use this API operation.
1583//
1584// The context must be non-nil and will be used for request cancellation. If
1585// the context is nil a panic will occur. In the future the SDK may create
1586// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1587// for more information on using Contexts.
1588func (c *IoT) CreateAuditSuppressionWithContext(ctx aws.Context, input *CreateAuditSuppressionInput, opts ...request.Option) (*CreateAuditSuppressionOutput, error) {
1589	req, out := c.CreateAuditSuppressionRequest(input)
1590	req.SetContext(ctx)
1591	req.ApplyOptions(opts...)
1592	return out, req.Send()
1593}
1594
1595const opCreateAuthorizer = "CreateAuthorizer"
1596
1597// CreateAuthorizerRequest generates a "aws/request.Request" representing the
1598// client's request for the CreateAuthorizer operation. The "output" return
1599// value will be populated with the request's response once the request completes
1600// successfully.
1601//
1602// Use "Send" method on the returned Request to send the API call to the service.
1603// the "output" return value is not valid until after Send returns without error.
1604//
1605// See CreateAuthorizer for more information on using the CreateAuthorizer
1606// API call, and error handling.
1607//
1608// This method is useful when you want to inject custom logic or configuration
1609// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1610//
1611//
1612//    // Example sending a request using the CreateAuthorizerRequest method.
1613//    req, resp := client.CreateAuthorizerRequest(params)
1614//
1615//    err := req.Send()
1616//    if err == nil { // resp is now filled
1617//        fmt.Println(resp)
1618//    }
1619func (c *IoT) CreateAuthorizerRequest(input *CreateAuthorizerInput) (req *request.Request, output *CreateAuthorizerOutput) {
1620	op := &request.Operation{
1621		Name:       opCreateAuthorizer,
1622		HTTPMethod: "POST",
1623		HTTPPath:   "/authorizer/{authorizerName}",
1624	}
1625
1626	if input == nil {
1627		input = &CreateAuthorizerInput{}
1628	}
1629
1630	output = &CreateAuthorizerOutput{}
1631	req = c.newRequest(op, input, output)
1632	return
1633}
1634
1635// CreateAuthorizer API operation for AWS IoT.
1636//
1637// Creates an authorizer.
1638//
1639// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1640// with awserr.Error's Code and Message methods to get detailed information about
1641// the error.
1642//
1643// See the AWS API reference guide for AWS IoT's
1644// API operation CreateAuthorizer for usage and error information.
1645//
1646// Returned Error Types:
1647//   * ResourceAlreadyExistsException
1648//   The resource already exists.
1649//
1650//   * InvalidRequestException
1651//   The request is not valid.
1652//
1653//   * LimitExceededException
1654//   A limit has been exceeded.
1655//
1656//   * ThrottlingException
1657//   The rate exceeds the limit.
1658//
1659//   * UnauthorizedException
1660//   You are not authorized to perform this operation.
1661//
1662//   * ServiceUnavailableException
1663//   The service is temporarily unavailable.
1664//
1665//   * InternalFailureException
1666//   An unexpected error has occurred.
1667//
1668func (c *IoT) CreateAuthorizer(input *CreateAuthorizerInput) (*CreateAuthorizerOutput, error) {
1669	req, out := c.CreateAuthorizerRequest(input)
1670	return out, req.Send()
1671}
1672
1673// CreateAuthorizerWithContext is the same as CreateAuthorizer with the addition of
1674// the ability to pass a context and additional request options.
1675//
1676// See CreateAuthorizer for details on how to use this API operation.
1677//
1678// The context must be non-nil and will be used for request cancellation. If
1679// the context is nil a panic will occur. In the future the SDK may create
1680// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1681// for more information on using Contexts.
1682func (c *IoT) CreateAuthorizerWithContext(ctx aws.Context, input *CreateAuthorizerInput, opts ...request.Option) (*CreateAuthorizerOutput, error) {
1683	req, out := c.CreateAuthorizerRequest(input)
1684	req.SetContext(ctx)
1685	req.ApplyOptions(opts...)
1686	return out, req.Send()
1687}
1688
1689const opCreateBillingGroup = "CreateBillingGroup"
1690
1691// CreateBillingGroupRequest generates a "aws/request.Request" representing the
1692// client's request for the CreateBillingGroup operation. The "output" return
1693// value will be populated with the request's response once the request completes
1694// successfully.
1695//
1696// Use "Send" method on the returned Request to send the API call to the service.
1697// the "output" return value is not valid until after Send returns without error.
1698//
1699// See CreateBillingGroup for more information on using the CreateBillingGroup
1700// API call, and error handling.
1701//
1702// This method is useful when you want to inject custom logic or configuration
1703// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1704//
1705//
1706//    // Example sending a request using the CreateBillingGroupRequest method.
1707//    req, resp := client.CreateBillingGroupRequest(params)
1708//
1709//    err := req.Send()
1710//    if err == nil { // resp is now filled
1711//        fmt.Println(resp)
1712//    }
1713func (c *IoT) CreateBillingGroupRequest(input *CreateBillingGroupInput) (req *request.Request, output *CreateBillingGroupOutput) {
1714	op := &request.Operation{
1715		Name:       opCreateBillingGroup,
1716		HTTPMethod: "POST",
1717		HTTPPath:   "/billing-groups/{billingGroupName}",
1718	}
1719
1720	if input == nil {
1721		input = &CreateBillingGroupInput{}
1722	}
1723
1724	output = &CreateBillingGroupOutput{}
1725	req = c.newRequest(op, input, output)
1726	return
1727}
1728
1729// CreateBillingGroup API operation for AWS IoT.
1730//
1731// Creates a billing group.
1732//
1733// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1734// with awserr.Error's Code and Message methods to get detailed information about
1735// the error.
1736//
1737// See the AWS API reference guide for AWS IoT's
1738// API operation CreateBillingGroup for usage and error information.
1739//
1740// Returned Error Types:
1741//   * InvalidRequestException
1742//   The request is not valid.
1743//
1744//   * ResourceAlreadyExistsException
1745//   The resource already exists.
1746//
1747//   * ThrottlingException
1748//   The rate exceeds the limit.
1749//
1750//   * InternalFailureException
1751//   An unexpected error has occurred.
1752//
1753func (c *IoT) CreateBillingGroup(input *CreateBillingGroupInput) (*CreateBillingGroupOutput, error) {
1754	req, out := c.CreateBillingGroupRequest(input)
1755	return out, req.Send()
1756}
1757
1758// CreateBillingGroupWithContext is the same as CreateBillingGroup with the addition of
1759// the ability to pass a context and additional request options.
1760//
1761// See CreateBillingGroup for details on how to use this API operation.
1762//
1763// The context must be non-nil and will be used for request cancellation. If
1764// the context is nil a panic will occur. In the future the SDK may create
1765// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1766// for more information on using Contexts.
1767func (c *IoT) CreateBillingGroupWithContext(ctx aws.Context, input *CreateBillingGroupInput, opts ...request.Option) (*CreateBillingGroupOutput, error) {
1768	req, out := c.CreateBillingGroupRequest(input)
1769	req.SetContext(ctx)
1770	req.ApplyOptions(opts...)
1771	return out, req.Send()
1772}
1773
1774const opCreateCertificateFromCsr = "CreateCertificateFromCsr"
1775
1776// CreateCertificateFromCsrRequest generates a "aws/request.Request" representing the
1777// client's request for the CreateCertificateFromCsr operation. The "output" return
1778// value will be populated with the request's response once the request completes
1779// successfully.
1780//
1781// Use "Send" method on the returned Request to send the API call to the service.
1782// the "output" return value is not valid until after Send returns without error.
1783//
1784// See CreateCertificateFromCsr for more information on using the CreateCertificateFromCsr
1785// API call, and error handling.
1786//
1787// This method is useful when you want to inject custom logic or configuration
1788// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1789//
1790//
1791//    // Example sending a request using the CreateCertificateFromCsrRequest method.
1792//    req, resp := client.CreateCertificateFromCsrRequest(params)
1793//
1794//    err := req.Send()
1795//    if err == nil { // resp is now filled
1796//        fmt.Println(resp)
1797//    }
1798func (c *IoT) CreateCertificateFromCsrRequest(input *CreateCertificateFromCsrInput) (req *request.Request, output *CreateCertificateFromCsrOutput) {
1799	op := &request.Operation{
1800		Name:       opCreateCertificateFromCsr,
1801		HTTPMethod: "POST",
1802		HTTPPath:   "/certificates",
1803	}
1804
1805	if input == nil {
1806		input = &CreateCertificateFromCsrInput{}
1807	}
1808
1809	output = &CreateCertificateFromCsrOutput{}
1810	req = c.newRequest(op, input, output)
1811	return
1812}
1813
1814// CreateCertificateFromCsr API operation for AWS IoT.
1815//
1816// Creates an X.509 certificate using the specified certificate signing request.
1817//
1818// Note: The CSR must include a public key that is either an RSA key with a
1819// length of at least 2048 bits or an ECC key from NIST P-256 or NIST P-384
1820// curves.
1821//
1822// Note: Reusing the same certificate signing request (CSR) results in a distinct
1823// certificate.
1824//
1825// You can create multiple certificates in a batch by creating a directory,
1826// copying multiple .csr files into that directory, and then specifying that
1827// directory on the command line. The following commands show how to create
1828// a batch of certificates given a batch of CSRs.
1829//
1830// Assuming a set of CSRs are located inside of the directory my-csr-directory:
1831//
1832// On Linux and OS X, the command is:
1833//
1834// $ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr
1835// --certificate-signing-request file://my-csr-directory/{}
1836//
1837// This command lists all of the CSRs in my-csr-directory and pipes each CSR
1838// file name to the aws iot create-certificate-from-csr AWS CLI command to create
1839// a certificate for the corresponding CSR.
1840//
1841// The aws iot create-certificate-from-csr part of the command can also be run
1842// in parallel to speed up the certificate creation process:
1843//
1844// $ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr
1845// --certificate-signing-request file://my-csr-directory/{}
1846//
1847// On Windows PowerShell, the command to create certificates for all CSRs in
1848// my-csr-directory is:
1849//
1850// > ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request
1851// file://my-csr-directory/$_}
1852//
1853// On a Windows command prompt, the command to create certificates for all CSRs
1854// in my-csr-directory is:
1855//
1856// > forfiles /p my-csr-directory /c "cmd /c aws iot create-certificate-from-csr
1857// --certificate-signing-request file://@path"
1858//
1859// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1860// with awserr.Error's Code and Message methods to get detailed information about
1861// the error.
1862//
1863// See the AWS API reference guide for AWS IoT's
1864// API operation CreateCertificateFromCsr for usage and error information.
1865//
1866// Returned Error Types:
1867//   * InvalidRequestException
1868//   The request is not valid.
1869//
1870//   * ThrottlingException
1871//   The rate exceeds the limit.
1872//
1873//   * UnauthorizedException
1874//   You are not authorized to perform this operation.
1875//
1876//   * ServiceUnavailableException
1877//   The service is temporarily unavailable.
1878//
1879//   * InternalFailureException
1880//   An unexpected error has occurred.
1881//
1882func (c *IoT) CreateCertificateFromCsr(input *CreateCertificateFromCsrInput) (*CreateCertificateFromCsrOutput, error) {
1883	req, out := c.CreateCertificateFromCsrRequest(input)
1884	return out, req.Send()
1885}
1886
1887// CreateCertificateFromCsrWithContext is the same as CreateCertificateFromCsr with the addition of
1888// the ability to pass a context and additional request options.
1889//
1890// See CreateCertificateFromCsr for details on how to use this API operation.
1891//
1892// The context must be non-nil and will be used for request cancellation. If
1893// the context is nil a panic will occur. In the future the SDK may create
1894// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1895// for more information on using Contexts.
1896func (c *IoT) CreateCertificateFromCsrWithContext(ctx aws.Context, input *CreateCertificateFromCsrInput, opts ...request.Option) (*CreateCertificateFromCsrOutput, error) {
1897	req, out := c.CreateCertificateFromCsrRequest(input)
1898	req.SetContext(ctx)
1899	req.ApplyOptions(opts...)
1900	return out, req.Send()
1901}
1902
1903const opCreateCustomMetric = "CreateCustomMetric"
1904
1905// CreateCustomMetricRequest generates a "aws/request.Request" representing the
1906// client's request for the CreateCustomMetric operation. The "output" return
1907// value will be populated with the request's response once the request completes
1908// successfully.
1909//
1910// Use "Send" method on the returned Request to send the API call to the service.
1911// the "output" return value is not valid until after Send returns without error.
1912//
1913// See CreateCustomMetric for more information on using the CreateCustomMetric
1914// API call, and error handling.
1915//
1916// This method is useful when you want to inject custom logic or configuration
1917// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1918//
1919//
1920//    // Example sending a request using the CreateCustomMetricRequest method.
1921//    req, resp := client.CreateCustomMetricRequest(params)
1922//
1923//    err := req.Send()
1924//    if err == nil { // resp is now filled
1925//        fmt.Println(resp)
1926//    }
1927func (c *IoT) CreateCustomMetricRequest(input *CreateCustomMetricInput) (req *request.Request, output *CreateCustomMetricOutput) {
1928	op := &request.Operation{
1929		Name:       opCreateCustomMetric,
1930		HTTPMethod: "POST",
1931		HTTPPath:   "/custom-metric/{metricName}",
1932	}
1933
1934	if input == nil {
1935		input = &CreateCustomMetricInput{}
1936	}
1937
1938	output = &CreateCustomMetricOutput{}
1939	req = c.newRequest(op, input, output)
1940	return
1941}
1942
1943// CreateCustomMetric API operation for AWS IoT.
1944//
1945// Use this API to define a Custom Metric published by your devices to Device
1946// Defender.
1947//
1948// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1949// with awserr.Error's Code and Message methods to get detailed information about
1950// the error.
1951//
1952// See the AWS API reference guide for AWS IoT's
1953// API operation CreateCustomMetric for usage and error information.
1954//
1955// Returned Error Types:
1956//   * InvalidRequestException
1957//   The request is not valid.
1958//
1959//   * LimitExceededException
1960//   A limit has been exceeded.
1961//
1962//   * ResourceAlreadyExistsException
1963//   The resource already exists.
1964//
1965//   * ThrottlingException
1966//   The rate exceeds the limit.
1967//
1968//   * InternalFailureException
1969//   An unexpected error has occurred.
1970//
1971func (c *IoT) CreateCustomMetric(input *CreateCustomMetricInput) (*CreateCustomMetricOutput, error) {
1972	req, out := c.CreateCustomMetricRequest(input)
1973	return out, req.Send()
1974}
1975
1976// CreateCustomMetricWithContext is the same as CreateCustomMetric with the addition of
1977// the ability to pass a context and additional request options.
1978//
1979// See CreateCustomMetric for details on how to use this API operation.
1980//
1981// The context must be non-nil and will be used for request cancellation. If
1982// the context is nil a panic will occur. In the future the SDK may create
1983// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1984// for more information on using Contexts.
1985func (c *IoT) CreateCustomMetricWithContext(ctx aws.Context, input *CreateCustomMetricInput, opts ...request.Option) (*CreateCustomMetricOutput, error) {
1986	req, out := c.CreateCustomMetricRequest(input)
1987	req.SetContext(ctx)
1988	req.ApplyOptions(opts...)
1989	return out, req.Send()
1990}
1991
1992const opCreateDimension = "CreateDimension"
1993
1994// CreateDimensionRequest generates a "aws/request.Request" representing the
1995// client's request for the CreateDimension operation. The "output" return
1996// value will be populated with the request's response once the request completes
1997// successfully.
1998//
1999// Use "Send" method on the returned Request to send the API call to the service.
2000// the "output" return value is not valid until after Send returns without error.
2001//
2002// See CreateDimension for more information on using the CreateDimension
2003// API call, and error handling.
2004//
2005// This method is useful when you want to inject custom logic or configuration
2006// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2007//
2008//
2009//    // Example sending a request using the CreateDimensionRequest method.
2010//    req, resp := client.CreateDimensionRequest(params)
2011//
2012//    err := req.Send()
2013//    if err == nil { // resp is now filled
2014//        fmt.Println(resp)
2015//    }
2016func (c *IoT) CreateDimensionRequest(input *CreateDimensionInput) (req *request.Request, output *CreateDimensionOutput) {
2017	op := &request.Operation{
2018		Name:       opCreateDimension,
2019		HTTPMethod: "POST",
2020		HTTPPath:   "/dimensions/{name}",
2021	}
2022
2023	if input == nil {
2024		input = &CreateDimensionInput{}
2025	}
2026
2027	output = &CreateDimensionOutput{}
2028	req = c.newRequest(op, input, output)
2029	return
2030}
2031
2032// CreateDimension API operation for AWS IoT.
2033//
2034// Create a dimension that you can use to limit the scope of a metric used in
2035// a security profile for AWS IoT Device Defender. For example, using a TOPIC_FILTER
2036// dimension, you can narrow down the scope of the metric only to MQTT topics
2037// whose name match the pattern specified in the dimension.
2038//
2039// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2040// with awserr.Error's Code and Message methods to get detailed information about
2041// the error.
2042//
2043// See the AWS API reference guide for AWS IoT's
2044// API operation CreateDimension for usage and error information.
2045//
2046// Returned Error Types:
2047//   * InternalFailureException
2048//   An unexpected error has occurred.
2049//
2050//   * InvalidRequestException
2051//   The request is not valid.
2052//
2053//   * LimitExceededException
2054//   A limit has been exceeded.
2055//
2056//   * ResourceAlreadyExistsException
2057//   The resource already exists.
2058//
2059//   * ThrottlingException
2060//   The rate exceeds the limit.
2061//
2062func (c *IoT) CreateDimension(input *CreateDimensionInput) (*CreateDimensionOutput, error) {
2063	req, out := c.CreateDimensionRequest(input)
2064	return out, req.Send()
2065}
2066
2067// CreateDimensionWithContext is the same as CreateDimension with the addition of
2068// the ability to pass a context and additional request options.
2069//
2070// See CreateDimension for details on how to use this API operation.
2071//
2072// The context must be non-nil and will be used for request cancellation. If
2073// the context is nil a panic will occur. In the future the SDK may create
2074// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2075// for more information on using Contexts.
2076func (c *IoT) CreateDimensionWithContext(ctx aws.Context, input *CreateDimensionInput, opts ...request.Option) (*CreateDimensionOutput, error) {
2077	req, out := c.CreateDimensionRequest(input)
2078	req.SetContext(ctx)
2079	req.ApplyOptions(opts...)
2080	return out, req.Send()
2081}
2082
2083const opCreateDomainConfiguration = "CreateDomainConfiguration"
2084
2085// CreateDomainConfigurationRequest generates a "aws/request.Request" representing the
2086// client's request for the CreateDomainConfiguration operation. The "output" return
2087// value will be populated with the request's response once the request completes
2088// successfully.
2089//
2090// Use "Send" method on the returned Request to send the API call to the service.
2091// the "output" return value is not valid until after Send returns without error.
2092//
2093// See CreateDomainConfiguration for more information on using the CreateDomainConfiguration
2094// API call, and error handling.
2095//
2096// This method is useful when you want to inject custom logic or configuration
2097// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2098//
2099//
2100//    // Example sending a request using the CreateDomainConfigurationRequest method.
2101//    req, resp := client.CreateDomainConfigurationRequest(params)
2102//
2103//    err := req.Send()
2104//    if err == nil { // resp is now filled
2105//        fmt.Println(resp)
2106//    }
2107func (c *IoT) CreateDomainConfigurationRequest(input *CreateDomainConfigurationInput) (req *request.Request, output *CreateDomainConfigurationOutput) {
2108	op := &request.Operation{
2109		Name:       opCreateDomainConfiguration,
2110		HTTPMethod: "POST",
2111		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
2112	}
2113
2114	if input == nil {
2115		input = &CreateDomainConfigurationInput{}
2116	}
2117
2118	output = &CreateDomainConfigurationOutput{}
2119	req = c.newRequest(op, input, output)
2120	return
2121}
2122
2123// CreateDomainConfiguration API operation for AWS IoT.
2124//
2125// Creates a domain configuration.
2126//
2127// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2128// with awserr.Error's Code and Message methods to get detailed information about
2129// the error.
2130//
2131// See the AWS API reference guide for AWS IoT's
2132// API operation CreateDomainConfiguration for usage and error information.
2133//
2134// Returned Error Types:
2135//   * LimitExceededException
2136//   A limit has been exceeded.
2137//
2138//   * CertificateValidationException
2139//   The certificate is invalid.
2140//
2141//   * ResourceAlreadyExistsException
2142//   The resource already exists.
2143//
2144//   * ServiceUnavailableException
2145//   The service is temporarily unavailable.
2146//
2147//   * InternalFailureException
2148//   An unexpected error has occurred.
2149//
2150//   * InvalidRequestException
2151//   The request is not valid.
2152//
2153//   * UnauthorizedException
2154//   You are not authorized to perform this operation.
2155//
2156//   * ThrottlingException
2157//   The rate exceeds the limit.
2158//
2159func (c *IoT) CreateDomainConfiguration(input *CreateDomainConfigurationInput) (*CreateDomainConfigurationOutput, error) {
2160	req, out := c.CreateDomainConfigurationRequest(input)
2161	return out, req.Send()
2162}
2163
2164// CreateDomainConfigurationWithContext is the same as CreateDomainConfiguration with the addition of
2165// the ability to pass a context and additional request options.
2166//
2167// See CreateDomainConfiguration for details on how to use this API operation.
2168//
2169// The context must be non-nil and will be used for request cancellation. If
2170// the context is nil a panic will occur. In the future the SDK may create
2171// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2172// for more information on using Contexts.
2173func (c *IoT) CreateDomainConfigurationWithContext(ctx aws.Context, input *CreateDomainConfigurationInput, opts ...request.Option) (*CreateDomainConfigurationOutput, error) {
2174	req, out := c.CreateDomainConfigurationRequest(input)
2175	req.SetContext(ctx)
2176	req.ApplyOptions(opts...)
2177	return out, req.Send()
2178}
2179
2180const opCreateDynamicThingGroup = "CreateDynamicThingGroup"
2181
2182// CreateDynamicThingGroupRequest generates a "aws/request.Request" representing the
2183// client's request for the CreateDynamicThingGroup operation. The "output" return
2184// value will be populated with the request's response once the request completes
2185// successfully.
2186//
2187// Use "Send" method on the returned Request to send the API call to the service.
2188// the "output" return value is not valid until after Send returns without error.
2189//
2190// See CreateDynamicThingGroup for more information on using the CreateDynamicThingGroup
2191// API call, and error handling.
2192//
2193// This method is useful when you want to inject custom logic or configuration
2194// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2195//
2196//
2197//    // Example sending a request using the CreateDynamicThingGroupRequest method.
2198//    req, resp := client.CreateDynamicThingGroupRequest(params)
2199//
2200//    err := req.Send()
2201//    if err == nil { // resp is now filled
2202//        fmt.Println(resp)
2203//    }
2204func (c *IoT) CreateDynamicThingGroupRequest(input *CreateDynamicThingGroupInput) (req *request.Request, output *CreateDynamicThingGroupOutput) {
2205	op := &request.Operation{
2206		Name:       opCreateDynamicThingGroup,
2207		HTTPMethod: "POST",
2208		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
2209	}
2210
2211	if input == nil {
2212		input = &CreateDynamicThingGroupInput{}
2213	}
2214
2215	output = &CreateDynamicThingGroupOutput{}
2216	req = c.newRequest(op, input, output)
2217	return
2218}
2219
2220// CreateDynamicThingGroup API operation for AWS IoT.
2221//
2222// Creates a dynamic thing group.
2223//
2224// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2225// with awserr.Error's Code and Message methods to get detailed information about
2226// the error.
2227//
2228// See the AWS API reference guide for AWS IoT's
2229// API operation CreateDynamicThingGroup for usage and error information.
2230//
2231// Returned Error Types:
2232//   * InvalidRequestException
2233//   The request is not valid.
2234//
2235//   * ResourceAlreadyExistsException
2236//   The resource already exists.
2237//
2238//   * ResourceNotFoundException
2239//   The specified resource does not exist.
2240//
2241//   * ThrottlingException
2242//   The rate exceeds the limit.
2243//
2244//   * InternalFailureException
2245//   An unexpected error has occurred.
2246//
2247//   * InvalidQueryException
2248//   The query is invalid.
2249//
2250//   * LimitExceededException
2251//   A limit has been exceeded.
2252//
2253func (c *IoT) CreateDynamicThingGroup(input *CreateDynamicThingGroupInput) (*CreateDynamicThingGroupOutput, error) {
2254	req, out := c.CreateDynamicThingGroupRequest(input)
2255	return out, req.Send()
2256}
2257
2258// CreateDynamicThingGroupWithContext is the same as CreateDynamicThingGroup with the addition of
2259// the ability to pass a context and additional request options.
2260//
2261// See CreateDynamicThingGroup for details on how to use this API operation.
2262//
2263// The context must be non-nil and will be used for request cancellation. If
2264// the context is nil a panic will occur. In the future the SDK may create
2265// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2266// for more information on using Contexts.
2267func (c *IoT) CreateDynamicThingGroupWithContext(ctx aws.Context, input *CreateDynamicThingGroupInput, opts ...request.Option) (*CreateDynamicThingGroupOutput, error) {
2268	req, out := c.CreateDynamicThingGroupRequest(input)
2269	req.SetContext(ctx)
2270	req.ApplyOptions(opts...)
2271	return out, req.Send()
2272}
2273
2274const opCreateJob = "CreateJob"
2275
2276// CreateJobRequest generates a "aws/request.Request" representing the
2277// client's request for the CreateJob operation. The "output" return
2278// value will be populated with the request's response once the request completes
2279// successfully.
2280//
2281// Use "Send" method on the returned Request to send the API call to the service.
2282// the "output" return value is not valid until after Send returns without error.
2283//
2284// See CreateJob for more information on using the CreateJob
2285// API call, and error handling.
2286//
2287// This method is useful when you want to inject custom logic or configuration
2288// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2289//
2290//
2291//    // Example sending a request using the CreateJobRequest method.
2292//    req, resp := client.CreateJobRequest(params)
2293//
2294//    err := req.Send()
2295//    if err == nil { // resp is now filled
2296//        fmt.Println(resp)
2297//    }
2298func (c *IoT) CreateJobRequest(input *CreateJobInput) (req *request.Request, output *CreateJobOutput) {
2299	op := &request.Operation{
2300		Name:       opCreateJob,
2301		HTTPMethod: "PUT",
2302		HTTPPath:   "/jobs/{jobId}",
2303	}
2304
2305	if input == nil {
2306		input = &CreateJobInput{}
2307	}
2308
2309	output = &CreateJobOutput{}
2310	req = c.newRequest(op, input, output)
2311	return
2312}
2313
2314// CreateJob API operation for AWS IoT.
2315//
2316// Creates a job.
2317//
2318// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2319// with awserr.Error's Code and Message methods to get detailed information about
2320// the error.
2321//
2322// See the AWS API reference guide for AWS IoT's
2323// API operation CreateJob for usage and error information.
2324//
2325// Returned Error Types:
2326//   * InvalidRequestException
2327//   The request is not valid.
2328//
2329//   * ResourceNotFoundException
2330//   The specified resource does not exist.
2331//
2332//   * ResourceAlreadyExistsException
2333//   The resource already exists.
2334//
2335//   * LimitExceededException
2336//   A limit has been exceeded.
2337//
2338//   * ThrottlingException
2339//   The rate exceeds the limit.
2340//
2341//   * ServiceUnavailableException
2342//   The service is temporarily unavailable.
2343//
2344func (c *IoT) CreateJob(input *CreateJobInput) (*CreateJobOutput, error) {
2345	req, out := c.CreateJobRequest(input)
2346	return out, req.Send()
2347}
2348
2349// CreateJobWithContext is the same as CreateJob with the addition of
2350// the ability to pass a context and additional request options.
2351//
2352// See CreateJob for details on how to use this API operation.
2353//
2354// The context must be non-nil and will be used for request cancellation. If
2355// the context is nil a panic will occur. In the future the SDK may create
2356// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2357// for more information on using Contexts.
2358func (c *IoT) CreateJobWithContext(ctx aws.Context, input *CreateJobInput, opts ...request.Option) (*CreateJobOutput, error) {
2359	req, out := c.CreateJobRequest(input)
2360	req.SetContext(ctx)
2361	req.ApplyOptions(opts...)
2362	return out, req.Send()
2363}
2364
2365const opCreateJobTemplate = "CreateJobTemplate"
2366
2367// CreateJobTemplateRequest generates a "aws/request.Request" representing the
2368// client's request for the CreateJobTemplate operation. The "output" return
2369// value will be populated with the request's response once the request completes
2370// successfully.
2371//
2372// Use "Send" method on the returned Request to send the API call to the service.
2373// the "output" return value is not valid until after Send returns without error.
2374//
2375// See CreateJobTemplate for more information on using the CreateJobTemplate
2376// API call, and error handling.
2377//
2378// This method is useful when you want to inject custom logic or configuration
2379// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2380//
2381//
2382//    // Example sending a request using the CreateJobTemplateRequest method.
2383//    req, resp := client.CreateJobTemplateRequest(params)
2384//
2385//    err := req.Send()
2386//    if err == nil { // resp is now filled
2387//        fmt.Println(resp)
2388//    }
2389func (c *IoT) CreateJobTemplateRequest(input *CreateJobTemplateInput) (req *request.Request, output *CreateJobTemplateOutput) {
2390	op := &request.Operation{
2391		Name:       opCreateJobTemplate,
2392		HTTPMethod: "PUT",
2393		HTTPPath:   "/job-templates/{jobTemplateId}",
2394	}
2395
2396	if input == nil {
2397		input = &CreateJobTemplateInput{}
2398	}
2399
2400	output = &CreateJobTemplateOutput{}
2401	req = c.newRequest(op, input, output)
2402	return
2403}
2404
2405// CreateJobTemplate API operation for AWS IoT.
2406//
2407// Creates a job template.
2408//
2409// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2410// with awserr.Error's Code and Message methods to get detailed information about
2411// the error.
2412//
2413// See the AWS API reference guide for AWS IoT's
2414// API operation CreateJobTemplate for usage and error information.
2415//
2416// Returned Error Types:
2417//   * InvalidRequestException
2418//   The request is not valid.
2419//
2420//   * ResourceNotFoundException
2421//   The specified resource does not exist.
2422//
2423//   * ConflictException
2424//   A resource with the same name already exists.
2425//
2426//   * LimitExceededException
2427//   A limit has been exceeded.
2428//
2429//   * ThrottlingException
2430//   The rate exceeds the limit.
2431//
2432//   * InternalFailureException
2433//   An unexpected error has occurred.
2434//
2435func (c *IoT) CreateJobTemplate(input *CreateJobTemplateInput) (*CreateJobTemplateOutput, error) {
2436	req, out := c.CreateJobTemplateRequest(input)
2437	return out, req.Send()
2438}
2439
2440// CreateJobTemplateWithContext is the same as CreateJobTemplate with the addition of
2441// the ability to pass a context and additional request options.
2442//
2443// See CreateJobTemplate for details on how to use this API operation.
2444//
2445// The context must be non-nil and will be used for request cancellation. If
2446// the context is nil a panic will occur. In the future the SDK may create
2447// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2448// for more information on using Contexts.
2449func (c *IoT) CreateJobTemplateWithContext(ctx aws.Context, input *CreateJobTemplateInput, opts ...request.Option) (*CreateJobTemplateOutput, error) {
2450	req, out := c.CreateJobTemplateRequest(input)
2451	req.SetContext(ctx)
2452	req.ApplyOptions(opts...)
2453	return out, req.Send()
2454}
2455
2456const opCreateKeysAndCertificate = "CreateKeysAndCertificate"
2457
2458// CreateKeysAndCertificateRequest generates a "aws/request.Request" representing the
2459// client's request for the CreateKeysAndCertificate operation. The "output" return
2460// value will be populated with the request's response once the request completes
2461// successfully.
2462//
2463// Use "Send" method on the returned Request to send the API call to the service.
2464// the "output" return value is not valid until after Send returns without error.
2465//
2466// See CreateKeysAndCertificate for more information on using the CreateKeysAndCertificate
2467// API call, and error handling.
2468//
2469// This method is useful when you want to inject custom logic or configuration
2470// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2471//
2472//
2473//    // Example sending a request using the CreateKeysAndCertificateRequest method.
2474//    req, resp := client.CreateKeysAndCertificateRequest(params)
2475//
2476//    err := req.Send()
2477//    if err == nil { // resp is now filled
2478//        fmt.Println(resp)
2479//    }
2480func (c *IoT) CreateKeysAndCertificateRequest(input *CreateKeysAndCertificateInput) (req *request.Request, output *CreateKeysAndCertificateOutput) {
2481	op := &request.Operation{
2482		Name:       opCreateKeysAndCertificate,
2483		HTTPMethod: "POST",
2484		HTTPPath:   "/keys-and-certificate",
2485	}
2486
2487	if input == nil {
2488		input = &CreateKeysAndCertificateInput{}
2489	}
2490
2491	output = &CreateKeysAndCertificateOutput{}
2492	req = c.newRequest(op, input, output)
2493	return
2494}
2495
2496// CreateKeysAndCertificate API operation for AWS IoT.
2497//
2498// Creates a 2048-bit RSA key pair and issues an X.509 certificate using the
2499// issued public key. You can also call CreateKeysAndCertificate over MQTT from
2500// a device, for more information, see Provisioning MQTT API (https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#provision-mqtt-api).
2501//
2502// Note This is the only time AWS IoT issues the private key for this certificate,
2503// so it is important to keep it in a secure location.
2504//
2505// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2506// with awserr.Error's Code and Message methods to get detailed information about
2507// the error.
2508//
2509// See the AWS API reference guide for AWS IoT's
2510// API operation CreateKeysAndCertificate for usage and error information.
2511//
2512// Returned Error Types:
2513//   * InvalidRequestException
2514//   The request is not valid.
2515//
2516//   * ThrottlingException
2517//   The rate exceeds the limit.
2518//
2519//   * UnauthorizedException
2520//   You are not authorized to perform this operation.
2521//
2522//   * ServiceUnavailableException
2523//   The service is temporarily unavailable.
2524//
2525//   * InternalFailureException
2526//   An unexpected error has occurred.
2527//
2528func (c *IoT) CreateKeysAndCertificate(input *CreateKeysAndCertificateInput) (*CreateKeysAndCertificateOutput, error) {
2529	req, out := c.CreateKeysAndCertificateRequest(input)
2530	return out, req.Send()
2531}
2532
2533// CreateKeysAndCertificateWithContext is the same as CreateKeysAndCertificate with the addition of
2534// the ability to pass a context and additional request options.
2535//
2536// See CreateKeysAndCertificate for details on how to use this API operation.
2537//
2538// The context must be non-nil and will be used for request cancellation. If
2539// the context is nil a panic will occur. In the future the SDK may create
2540// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2541// for more information on using Contexts.
2542func (c *IoT) CreateKeysAndCertificateWithContext(ctx aws.Context, input *CreateKeysAndCertificateInput, opts ...request.Option) (*CreateKeysAndCertificateOutput, error) {
2543	req, out := c.CreateKeysAndCertificateRequest(input)
2544	req.SetContext(ctx)
2545	req.ApplyOptions(opts...)
2546	return out, req.Send()
2547}
2548
2549const opCreateMitigationAction = "CreateMitigationAction"
2550
2551// CreateMitigationActionRequest generates a "aws/request.Request" representing the
2552// client's request for the CreateMitigationAction operation. The "output" return
2553// value will be populated with the request's response once the request completes
2554// successfully.
2555//
2556// Use "Send" method on the returned Request to send the API call to the service.
2557// the "output" return value is not valid until after Send returns without error.
2558//
2559// See CreateMitigationAction for more information on using the CreateMitigationAction
2560// API call, and error handling.
2561//
2562// This method is useful when you want to inject custom logic or configuration
2563// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2564//
2565//
2566//    // Example sending a request using the CreateMitigationActionRequest method.
2567//    req, resp := client.CreateMitigationActionRequest(params)
2568//
2569//    err := req.Send()
2570//    if err == nil { // resp is now filled
2571//        fmt.Println(resp)
2572//    }
2573func (c *IoT) CreateMitigationActionRequest(input *CreateMitigationActionInput) (req *request.Request, output *CreateMitigationActionOutput) {
2574	op := &request.Operation{
2575		Name:       opCreateMitigationAction,
2576		HTTPMethod: "POST",
2577		HTTPPath:   "/mitigationactions/actions/{actionName}",
2578	}
2579
2580	if input == nil {
2581		input = &CreateMitigationActionInput{}
2582	}
2583
2584	output = &CreateMitigationActionOutput{}
2585	req = c.newRequest(op, input, output)
2586	return
2587}
2588
2589// CreateMitigationAction API operation for AWS IoT.
2590//
2591// Defines an action that can be applied to audit findings by using StartAuditMitigationActionsTask.
2592// Only certain types of mitigation actions can be applied to specific check
2593// names. For more information, see Mitigation actions (https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-mitigation-actions.html).
2594// Each mitigation action can apply only one type of change.
2595//
2596// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2597// with awserr.Error's Code and Message methods to get detailed information about
2598// the error.
2599//
2600// See the AWS API reference guide for AWS IoT's
2601// API operation CreateMitigationAction for usage and error information.
2602//
2603// Returned Error Types:
2604//   * InvalidRequestException
2605//   The request is not valid.
2606//
2607//   * ResourceAlreadyExistsException
2608//   The resource already exists.
2609//
2610//   * LimitExceededException
2611//   A limit has been exceeded.
2612//
2613//   * ThrottlingException
2614//   The rate exceeds the limit.
2615//
2616//   * InternalFailureException
2617//   An unexpected error has occurred.
2618//
2619func (c *IoT) CreateMitigationAction(input *CreateMitigationActionInput) (*CreateMitigationActionOutput, error) {
2620	req, out := c.CreateMitigationActionRequest(input)
2621	return out, req.Send()
2622}
2623
2624// CreateMitigationActionWithContext is the same as CreateMitigationAction with the addition of
2625// the ability to pass a context and additional request options.
2626//
2627// See CreateMitigationAction for details on how to use this API operation.
2628//
2629// The context must be non-nil and will be used for request cancellation. If
2630// the context is nil a panic will occur. In the future the SDK may create
2631// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2632// for more information on using Contexts.
2633func (c *IoT) CreateMitigationActionWithContext(ctx aws.Context, input *CreateMitigationActionInput, opts ...request.Option) (*CreateMitigationActionOutput, error) {
2634	req, out := c.CreateMitigationActionRequest(input)
2635	req.SetContext(ctx)
2636	req.ApplyOptions(opts...)
2637	return out, req.Send()
2638}
2639
2640const opCreateOTAUpdate = "CreateOTAUpdate"
2641
2642// CreateOTAUpdateRequest generates a "aws/request.Request" representing the
2643// client's request for the CreateOTAUpdate operation. The "output" return
2644// value will be populated with the request's response once the request completes
2645// successfully.
2646//
2647// Use "Send" method on the returned Request to send the API call to the service.
2648// the "output" return value is not valid until after Send returns without error.
2649//
2650// See CreateOTAUpdate for more information on using the CreateOTAUpdate
2651// API call, and error handling.
2652//
2653// This method is useful when you want to inject custom logic or configuration
2654// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2655//
2656//
2657//    // Example sending a request using the CreateOTAUpdateRequest method.
2658//    req, resp := client.CreateOTAUpdateRequest(params)
2659//
2660//    err := req.Send()
2661//    if err == nil { // resp is now filled
2662//        fmt.Println(resp)
2663//    }
2664func (c *IoT) CreateOTAUpdateRequest(input *CreateOTAUpdateInput) (req *request.Request, output *CreateOTAUpdateOutput) {
2665	op := &request.Operation{
2666		Name:       opCreateOTAUpdate,
2667		HTTPMethod: "POST",
2668		HTTPPath:   "/otaUpdates/{otaUpdateId}",
2669	}
2670
2671	if input == nil {
2672		input = &CreateOTAUpdateInput{}
2673	}
2674
2675	output = &CreateOTAUpdateOutput{}
2676	req = c.newRequest(op, input, output)
2677	return
2678}
2679
2680// CreateOTAUpdate API operation for AWS IoT.
2681//
2682// Creates an AWS IoT OTAUpdate on a target group of things or groups.
2683//
2684// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2685// with awserr.Error's Code and Message methods to get detailed information about
2686// the error.
2687//
2688// See the AWS API reference guide for AWS IoT's
2689// API operation CreateOTAUpdate for usage and error information.
2690//
2691// Returned Error Types:
2692//   * InvalidRequestException
2693//   The request is not valid.
2694//
2695//   * LimitExceededException
2696//   A limit has been exceeded.
2697//
2698//   * ResourceNotFoundException
2699//   The specified resource does not exist.
2700//
2701//   * ResourceAlreadyExistsException
2702//   The resource already exists.
2703//
2704//   * ThrottlingException
2705//   The rate exceeds the limit.
2706//
2707//   * UnauthorizedException
2708//   You are not authorized to perform this operation.
2709//
2710//   * InternalFailureException
2711//   An unexpected error has occurred.
2712//
2713//   * ServiceUnavailableException
2714//   The service is temporarily unavailable.
2715//
2716func (c *IoT) CreateOTAUpdate(input *CreateOTAUpdateInput) (*CreateOTAUpdateOutput, error) {
2717	req, out := c.CreateOTAUpdateRequest(input)
2718	return out, req.Send()
2719}
2720
2721// CreateOTAUpdateWithContext is the same as CreateOTAUpdate with the addition of
2722// the ability to pass a context and additional request options.
2723//
2724// See CreateOTAUpdate for details on how to use this API operation.
2725//
2726// The context must be non-nil and will be used for request cancellation. If
2727// the context is nil a panic will occur. In the future the SDK may create
2728// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2729// for more information on using Contexts.
2730func (c *IoT) CreateOTAUpdateWithContext(ctx aws.Context, input *CreateOTAUpdateInput, opts ...request.Option) (*CreateOTAUpdateOutput, error) {
2731	req, out := c.CreateOTAUpdateRequest(input)
2732	req.SetContext(ctx)
2733	req.ApplyOptions(opts...)
2734	return out, req.Send()
2735}
2736
2737const opCreatePolicy = "CreatePolicy"
2738
2739// CreatePolicyRequest generates a "aws/request.Request" representing the
2740// client's request for the CreatePolicy operation. The "output" return
2741// value will be populated with the request's response once the request completes
2742// successfully.
2743//
2744// Use "Send" method on the returned Request to send the API call to the service.
2745// the "output" return value is not valid until after Send returns without error.
2746//
2747// See CreatePolicy for more information on using the CreatePolicy
2748// API call, and error handling.
2749//
2750// This method is useful when you want to inject custom logic or configuration
2751// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2752//
2753//
2754//    // Example sending a request using the CreatePolicyRequest method.
2755//    req, resp := client.CreatePolicyRequest(params)
2756//
2757//    err := req.Send()
2758//    if err == nil { // resp is now filled
2759//        fmt.Println(resp)
2760//    }
2761func (c *IoT) CreatePolicyRequest(input *CreatePolicyInput) (req *request.Request, output *CreatePolicyOutput) {
2762	op := &request.Operation{
2763		Name:       opCreatePolicy,
2764		HTTPMethod: "POST",
2765		HTTPPath:   "/policies/{policyName}",
2766	}
2767
2768	if input == nil {
2769		input = &CreatePolicyInput{}
2770	}
2771
2772	output = &CreatePolicyOutput{}
2773	req = c.newRequest(op, input, output)
2774	return
2775}
2776
2777// CreatePolicy API operation for AWS IoT.
2778//
2779// Creates an AWS IoT policy.
2780//
2781// The created policy is the default version for the policy. This operation
2782// creates a policy version with a version identifier of 1 and sets 1 as the
2783// policy's default version.
2784//
2785// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2786// with awserr.Error's Code and Message methods to get detailed information about
2787// the error.
2788//
2789// See the AWS API reference guide for AWS IoT's
2790// API operation CreatePolicy for usage and error information.
2791//
2792// Returned Error Types:
2793//   * ResourceAlreadyExistsException
2794//   The resource already exists.
2795//
2796//   * MalformedPolicyException
2797//   The policy documentation is not valid.
2798//
2799//   * InvalidRequestException
2800//   The request is not valid.
2801//
2802//   * ThrottlingException
2803//   The rate exceeds the limit.
2804//
2805//   * UnauthorizedException
2806//   You are not authorized to perform this operation.
2807//
2808//   * ServiceUnavailableException
2809//   The service is temporarily unavailable.
2810//
2811//   * InternalFailureException
2812//   An unexpected error has occurred.
2813//
2814func (c *IoT) CreatePolicy(input *CreatePolicyInput) (*CreatePolicyOutput, error) {
2815	req, out := c.CreatePolicyRequest(input)
2816	return out, req.Send()
2817}
2818
2819// CreatePolicyWithContext is the same as CreatePolicy with the addition of
2820// the ability to pass a context and additional request options.
2821//
2822// See CreatePolicy for details on how to use this API operation.
2823//
2824// The context must be non-nil and will be used for request cancellation. If
2825// the context is nil a panic will occur. In the future the SDK may create
2826// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2827// for more information on using Contexts.
2828func (c *IoT) CreatePolicyWithContext(ctx aws.Context, input *CreatePolicyInput, opts ...request.Option) (*CreatePolicyOutput, error) {
2829	req, out := c.CreatePolicyRequest(input)
2830	req.SetContext(ctx)
2831	req.ApplyOptions(opts...)
2832	return out, req.Send()
2833}
2834
2835const opCreatePolicyVersion = "CreatePolicyVersion"
2836
2837// CreatePolicyVersionRequest generates a "aws/request.Request" representing the
2838// client's request for the CreatePolicyVersion operation. The "output" return
2839// value will be populated with the request's response once the request completes
2840// successfully.
2841//
2842// Use "Send" method on the returned Request to send the API call to the service.
2843// the "output" return value is not valid until after Send returns without error.
2844//
2845// See CreatePolicyVersion for more information on using the CreatePolicyVersion
2846// API call, and error handling.
2847//
2848// This method is useful when you want to inject custom logic or configuration
2849// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2850//
2851//
2852//    // Example sending a request using the CreatePolicyVersionRequest method.
2853//    req, resp := client.CreatePolicyVersionRequest(params)
2854//
2855//    err := req.Send()
2856//    if err == nil { // resp is now filled
2857//        fmt.Println(resp)
2858//    }
2859func (c *IoT) CreatePolicyVersionRequest(input *CreatePolicyVersionInput) (req *request.Request, output *CreatePolicyVersionOutput) {
2860	op := &request.Operation{
2861		Name:       opCreatePolicyVersion,
2862		HTTPMethod: "POST",
2863		HTTPPath:   "/policies/{policyName}/version",
2864	}
2865
2866	if input == nil {
2867		input = &CreatePolicyVersionInput{}
2868	}
2869
2870	output = &CreatePolicyVersionOutput{}
2871	req = c.newRequest(op, input, output)
2872	return
2873}
2874
2875// CreatePolicyVersion API operation for AWS IoT.
2876//
2877// Creates a new version of the specified AWS IoT policy. To update a policy,
2878// create a new policy version. A managed policy can have up to five versions.
2879// If the policy has five versions, you must use DeletePolicyVersion to delete
2880// an existing version before you create a new one.
2881//
2882// Optionally, you can set the new version as the policy's default version.
2883// The default version is the operative version (that is, the version that is
2884// in effect for the certificates to which the policy is attached).
2885//
2886// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2887// with awserr.Error's Code and Message methods to get detailed information about
2888// the error.
2889//
2890// See the AWS API reference guide for AWS IoT's
2891// API operation CreatePolicyVersion for usage and error information.
2892//
2893// Returned Error Types:
2894//   * ResourceNotFoundException
2895//   The specified resource does not exist.
2896//
2897//   * MalformedPolicyException
2898//   The policy documentation is not valid.
2899//
2900//   * VersionsLimitExceededException
2901//   The number of policy versions exceeds the limit.
2902//
2903//   * InvalidRequestException
2904//   The request is not valid.
2905//
2906//   * ThrottlingException
2907//   The rate exceeds the limit.
2908//
2909//   * UnauthorizedException
2910//   You are not authorized to perform this operation.
2911//
2912//   * ServiceUnavailableException
2913//   The service is temporarily unavailable.
2914//
2915//   * InternalFailureException
2916//   An unexpected error has occurred.
2917//
2918func (c *IoT) CreatePolicyVersion(input *CreatePolicyVersionInput) (*CreatePolicyVersionOutput, error) {
2919	req, out := c.CreatePolicyVersionRequest(input)
2920	return out, req.Send()
2921}
2922
2923// CreatePolicyVersionWithContext is the same as CreatePolicyVersion with the addition of
2924// the ability to pass a context and additional request options.
2925//
2926// See CreatePolicyVersion for details on how to use this API operation.
2927//
2928// The context must be non-nil and will be used for request cancellation. If
2929// the context is nil a panic will occur. In the future the SDK may create
2930// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2931// for more information on using Contexts.
2932func (c *IoT) CreatePolicyVersionWithContext(ctx aws.Context, input *CreatePolicyVersionInput, opts ...request.Option) (*CreatePolicyVersionOutput, error) {
2933	req, out := c.CreatePolicyVersionRequest(input)
2934	req.SetContext(ctx)
2935	req.ApplyOptions(opts...)
2936	return out, req.Send()
2937}
2938
2939const opCreateProvisioningClaim = "CreateProvisioningClaim"
2940
2941// CreateProvisioningClaimRequest generates a "aws/request.Request" representing the
2942// client's request for the CreateProvisioningClaim operation. The "output" return
2943// value will be populated with the request's response once the request completes
2944// successfully.
2945//
2946// Use "Send" method on the returned Request to send the API call to the service.
2947// the "output" return value is not valid until after Send returns without error.
2948//
2949// See CreateProvisioningClaim for more information on using the CreateProvisioningClaim
2950// API call, and error handling.
2951//
2952// This method is useful when you want to inject custom logic or configuration
2953// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2954//
2955//
2956//    // Example sending a request using the CreateProvisioningClaimRequest method.
2957//    req, resp := client.CreateProvisioningClaimRequest(params)
2958//
2959//    err := req.Send()
2960//    if err == nil { // resp is now filled
2961//        fmt.Println(resp)
2962//    }
2963func (c *IoT) CreateProvisioningClaimRequest(input *CreateProvisioningClaimInput) (req *request.Request, output *CreateProvisioningClaimOutput) {
2964	op := &request.Operation{
2965		Name:       opCreateProvisioningClaim,
2966		HTTPMethod: "POST",
2967		HTTPPath:   "/provisioning-templates/{templateName}/provisioning-claim",
2968	}
2969
2970	if input == nil {
2971		input = &CreateProvisioningClaimInput{}
2972	}
2973
2974	output = &CreateProvisioningClaimOutput{}
2975	req = c.newRequest(op, input, output)
2976	return
2977}
2978
2979// CreateProvisioningClaim API operation for AWS IoT.
2980//
2981// Creates a provisioning claim.
2982//
2983// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2984// with awserr.Error's Code and Message methods to get detailed information about
2985// the error.
2986//
2987// See the AWS API reference guide for AWS IoT's
2988// API operation CreateProvisioningClaim for usage and error information.
2989//
2990// Returned Error Types:
2991//   * InvalidRequestException
2992//   The request is not valid.
2993//
2994//   * ResourceNotFoundException
2995//   The specified resource does not exist.
2996//
2997//   * ThrottlingException
2998//   The rate exceeds the limit.
2999//
3000//   * UnauthorizedException
3001//   You are not authorized to perform this operation.
3002//
3003//   * ServiceUnavailableException
3004//   The service is temporarily unavailable.
3005//
3006//   * InternalFailureException
3007//   An unexpected error has occurred.
3008//
3009func (c *IoT) CreateProvisioningClaim(input *CreateProvisioningClaimInput) (*CreateProvisioningClaimOutput, error) {
3010	req, out := c.CreateProvisioningClaimRequest(input)
3011	return out, req.Send()
3012}
3013
3014// CreateProvisioningClaimWithContext is the same as CreateProvisioningClaim with the addition of
3015// the ability to pass a context and additional request options.
3016//
3017// See CreateProvisioningClaim for details on how to use this API operation.
3018//
3019// The context must be non-nil and will be used for request cancellation. If
3020// the context is nil a panic will occur. In the future the SDK may create
3021// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3022// for more information on using Contexts.
3023func (c *IoT) CreateProvisioningClaimWithContext(ctx aws.Context, input *CreateProvisioningClaimInput, opts ...request.Option) (*CreateProvisioningClaimOutput, error) {
3024	req, out := c.CreateProvisioningClaimRequest(input)
3025	req.SetContext(ctx)
3026	req.ApplyOptions(opts...)
3027	return out, req.Send()
3028}
3029
3030const opCreateProvisioningTemplate = "CreateProvisioningTemplate"
3031
3032// CreateProvisioningTemplateRequest generates a "aws/request.Request" representing the
3033// client's request for the CreateProvisioningTemplate operation. The "output" return
3034// value will be populated with the request's response once the request completes
3035// successfully.
3036//
3037// Use "Send" method on the returned Request to send the API call to the service.
3038// the "output" return value is not valid until after Send returns without error.
3039//
3040// See CreateProvisioningTemplate for more information on using the CreateProvisioningTemplate
3041// API call, and error handling.
3042//
3043// This method is useful when you want to inject custom logic or configuration
3044// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3045//
3046//
3047//    // Example sending a request using the CreateProvisioningTemplateRequest method.
3048//    req, resp := client.CreateProvisioningTemplateRequest(params)
3049//
3050//    err := req.Send()
3051//    if err == nil { // resp is now filled
3052//        fmt.Println(resp)
3053//    }
3054func (c *IoT) CreateProvisioningTemplateRequest(input *CreateProvisioningTemplateInput) (req *request.Request, output *CreateProvisioningTemplateOutput) {
3055	op := &request.Operation{
3056		Name:       opCreateProvisioningTemplate,
3057		HTTPMethod: "POST",
3058		HTTPPath:   "/provisioning-templates",
3059	}
3060
3061	if input == nil {
3062		input = &CreateProvisioningTemplateInput{}
3063	}
3064
3065	output = &CreateProvisioningTemplateOutput{}
3066	req = c.newRequest(op, input, output)
3067	return
3068}
3069
3070// CreateProvisioningTemplate API operation for AWS IoT.
3071//
3072// Creates a fleet provisioning template.
3073//
3074// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3075// with awserr.Error's Code and Message methods to get detailed information about
3076// the error.
3077//
3078// See the AWS API reference guide for AWS IoT's
3079// API operation CreateProvisioningTemplate for usage and error information.
3080//
3081// Returned Error Types:
3082//   * InternalFailureException
3083//   An unexpected error has occurred.
3084//
3085//   * InvalidRequestException
3086//   The request is not valid.
3087//
3088//   * LimitExceededException
3089//   A limit has been exceeded.
3090//
3091//   * ThrottlingException
3092//   The rate exceeds the limit.
3093//
3094//   * UnauthorizedException
3095//   You are not authorized to perform this operation.
3096//
3097//   * ResourceAlreadyExistsException
3098//   The resource already exists.
3099//
3100func (c *IoT) CreateProvisioningTemplate(input *CreateProvisioningTemplateInput) (*CreateProvisioningTemplateOutput, error) {
3101	req, out := c.CreateProvisioningTemplateRequest(input)
3102	return out, req.Send()
3103}
3104
3105// CreateProvisioningTemplateWithContext is the same as CreateProvisioningTemplate with the addition of
3106// the ability to pass a context and additional request options.
3107//
3108// See CreateProvisioningTemplate for details on how to use this API operation.
3109//
3110// The context must be non-nil and will be used for request cancellation. If
3111// the context is nil a panic will occur. In the future the SDK may create
3112// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3113// for more information on using Contexts.
3114func (c *IoT) CreateProvisioningTemplateWithContext(ctx aws.Context, input *CreateProvisioningTemplateInput, opts ...request.Option) (*CreateProvisioningTemplateOutput, error) {
3115	req, out := c.CreateProvisioningTemplateRequest(input)
3116	req.SetContext(ctx)
3117	req.ApplyOptions(opts...)
3118	return out, req.Send()
3119}
3120
3121const opCreateProvisioningTemplateVersion = "CreateProvisioningTemplateVersion"
3122
3123// CreateProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
3124// client's request for the CreateProvisioningTemplateVersion operation. The "output" return
3125// value will be populated with the request's response once the request completes
3126// successfully.
3127//
3128// Use "Send" method on the returned Request to send the API call to the service.
3129// the "output" return value is not valid until after Send returns without error.
3130//
3131// See CreateProvisioningTemplateVersion for more information on using the CreateProvisioningTemplateVersion
3132// API call, and error handling.
3133//
3134// This method is useful when you want to inject custom logic or configuration
3135// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3136//
3137//
3138//    // Example sending a request using the CreateProvisioningTemplateVersionRequest method.
3139//    req, resp := client.CreateProvisioningTemplateVersionRequest(params)
3140//
3141//    err := req.Send()
3142//    if err == nil { // resp is now filled
3143//        fmt.Println(resp)
3144//    }
3145func (c *IoT) CreateProvisioningTemplateVersionRequest(input *CreateProvisioningTemplateVersionInput) (req *request.Request, output *CreateProvisioningTemplateVersionOutput) {
3146	op := &request.Operation{
3147		Name:       opCreateProvisioningTemplateVersion,
3148		HTTPMethod: "POST",
3149		HTTPPath:   "/provisioning-templates/{templateName}/versions",
3150	}
3151
3152	if input == nil {
3153		input = &CreateProvisioningTemplateVersionInput{}
3154	}
3155
3156	output = &CreateProvisioningTemplateVersionOutput{}
3157	req = c.newRequest(op, input, output)
3158	return
3159}
3160
3161// CreateProvisioningTemplateVersion API operation for AWS IoT.
3162//
3163// Creates a new version of a fleet provisioning template.
3164//
3165// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3166// with awserr.Error's Code and Message methods to get detailed information about
3167// the error.
3168//
3169// See the AWS API reference guide for AWS IoT's
3170// API operation CreateProvisioningTemplateVersion for usage and error information.
3171//
3172// Returned Error Types:
3173//   * VersionsLimitExceededException
3174//   The number of policy versions exceeds the limit.
3175//
3176//   * InternalFailureException
3177//   An unexpected error has occurred.
3178//
3179//   * InvalidRequestException
3180//   The request is not valid.
3181//
3182//   * ThrottlingException
3183//   The rate exceeds the limit.
3184//
3185//   * ResourceNotFoundException
3186//   The specified resource does not exist.
3187//
3188//   * UnauthorizedException
3189//   You are not authorized to perform this operation.
3190//
3191//   * ConflictingResourceUpdateException
3192//   A conflicting resource update exception. This exception is thrown when two
3193//   pending updates cause a conflict.
3194//
3195func (c *IoT) CreateProvisioningTemplateVersion(input *CreateProvisioningTemplateVersionInput) (*CreateProvisioningTemplateVersionOutput, error) {
3196	req, out := c.CreateProvisioningTemplateVersionRequest(input)
3197	return out, req.Send()
3198}
3199
3200// CreateProvisioningTemplateVersionWithContext is the same as CreateProvisioningTemplateVersion with the addition of
3201// the ability to pass a context and additional request options.
3202//
3203// See CreateProvisioningTemplateVersion for details on how to use this API operation.
3204//
3205// The context must be non-nil and will be used for request cancellation. If
3206// the context is nil a panic will occur. In the future the SDK may create
3207// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3208// for more information on using Contexts.
3209func (c *IoT) CreateProvisioningTemplateVersionWithContext(ctx aws.Context, input *CreateProvisioningTemplateVersionInput, opts ...request.Option) (*CreateProvisioningTemplateVersionOutput, error) {
3210	req, out := c.CreateProvisioningTemplateVersionRequest(input)
3211	req.SetContext(ctx)
3212	req.ApplyOptions(opts...)
3213	return out, req.Send()
3214}
3215
3216const opCreateRoleAlias = "CreateRoleAlias"
3217
3218// CreateRoleAliasRequest generates a "aws/request.Request" representing the
3219// client's request for the CreateRoleAlias operation. The "output" return
3220// value will be populated with the request's response once the request completes
3221// successfully.
3222//
3223// Use "Send" method on the returned Request to send the API call to the service.
3224// the "output" return value is not valid until after Send returns without error.
3225//
3226// See CreateRoleAlias for more information on using the CreateRoleAlias
3227// API call, and error handling.
3228//
3229// This method is useful when you want to inject custom logic or configuration
3230// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3231//
3232//
3233//    // Example sending a request using the CreateRoleAliasRequest method.
3234//    req, resp := client.CreateRoleAliasRequest(params)
3235//
3236//    err := req.Send()
3237//    if err == nil { // resp is now filled
3238//        fmt.Println(resp)
3239//    }
3240func (c *IoT) CreateRoleAliasRequest(input *CreateRoleAliasInput) (req *request.Request, output *CreateRoleAliasOutput) {
3241	op := &request.Operation{
3242		Name:       opCreateRoleAlias,
3243		HTTPMethod: "POST",
3244		HTTPPath:   "/role-aliases/{roleAlias}",
3245	}
3246
3247	if input == nil {
3248		input = &CreateRoleAliasInput{}
3249	}
3250
3251	output = &CreateRoleAliasOutput{}
3252	req = c.newRequest(op, input, output)
3253	return
3254}
3255
3256// CreateRoleAlias API operation for AWS IoT.
3257//
3258// Creates a role alias.
3259//
3260// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3261// with awserr.Error's Code and Message methods to get detailed information about
3262// the error.
3263//
3264// See the AWS API reference guide for AWS IoT's
3265// API operation CreateRoleAlias for usage and error information.
3266//
3267// Returned Error Types:
3268//   * ResourceAlreadyExistsException
3269//   The resource already exists.
3270//
3271//   * InvalidRequestException
3272//   The request is not valid.
3273//
3274//   * LimitExceededException
3275//   A limit has been exceeded.
3276//
3277//   * ThrottlingException
3278//   The rate exceeds the limit.
3279//
3280//   * UnauthorizedException
3281//   You are not authorized to perform this operation.
3282//
3283//   * ServiceUnavailableException
3284//   The service is temporarily unavailable.
3285//
3286//   * InternalFailureException
3287//   An unexpected error has occurred.
3288//
3289func (c *IoT) CreateRoleAlias(input *CreateRoleAliasInput) (*CreateRoleAliasOutput, error) {
3290	req, out := c.CreateRoleAliasRequest(input)
3291	return out, req.Send()
3292}
3293
3294// CreateRoleAliasWithContext is the same as CreateRoleAlias with the addition of
3295// the ability to pass a context and additional request options.
3296//
3297// See CreateRoleAlias for details on how to use this API operation.
3298//
3299// The context must be non-nil and will be used for request cancellation. If
3300// the context is nil a panic will occur. In the future the SDK may create
3301// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3302// for more information on using Contexts.
3303func (c *IoT) CreateRoleAliasWithContext(ctx aws.Context, input *CreateRoleAliasInput, opts ...request.Option) (*CreateRoleAliasOutput, error) {
3304	req, out := c.CreateRoleAliasRequest(input)
3305	req.SetContext(ctx)
3306	req.ApplyOptions(opts...)
3307	return out, req.Send()
3308}
3309
3310const opCreateScheduledAudit = "CreateScheduledAudit"
3311
3312// CreateScheduledAuditRequest generates a "aws/request.Request" representing the
3313// client's request for the CreateScheduledAudit operation. The "output" return
3314// value will be populated with the request's response once the request completes
3315// successfully.
3316//
3317// Use "Send" method on the returned Request to send the API call to the service.
3318// the "output" return value is not valid until after Send returns without error.
3319//
3320// See CreateScheduledAudit for more information on using the CreateScheduledAudit
3321// API call, and error handling.
3322//
3323// This method is useful when you want to inject custom logic or configuration
3324// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3325//
3326//
3327//    // Example sending a request using the CreateScheduledAuditRequest method.
3328//    req, resp := client.CreateScheduledAuditRequest(params)
3329//
3330//    err := req.Send()
3331//    if err == nil { // resp is now filled
3332//        fmt.Println(resp)
3333//    }
3334func (c *IoT) CreateScheduledAuditRequest(input *CreateScheduledAuditInput) (req *request.Request, output *CreateScheduledAuditOutput) {
3335	op := &request.Operation{
3336		Name:       opCreateScheduledAudit,
3337		HTTPMethod: "POST",
3338		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
3339	}
3340
3341	if input == nil {
3342		input = &CreateScheduledAuditInput{}
3343	}
3344
3345	output = &CreateScheduledAuditOutput{}
3346	req = c.newRequest(op, input, output)
3347	return
3348}
3349
3350// CreateScheduledAudit API operation for AWS IoT.
3351//
3352// Creates a scheduled audit that is run at a specified time interval.
3353//
3354// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3355// with awserr.Error's Code and Message methods to get detailed information about
3356// the error.
3357//
3358// See the AWS API reference guide for AWS IoT's
3359// API operation CreateScheduledAudit for usage and error information.
3360//
3361// Returned Error Types:
3362//   * InvalidRequestException
3363//   The request is not valid.
3364//
3365//   * ResourceAlreadyExistsException
3366//   The resource already exists.
3367//
3368//   * ThrottlingException
3369//   The rate exceeds the limit.
3370//
3371//   * InternalFailureException
3372//   An unexpected error has occurred.
3373//
3374//   * LimitExceededException
3375//   A limit has been exceeded.
3376//
3377func (c *IoT) CreateScheduledAudit(input *CreateScheduledAuditInput) (*CreateScheduledAuditOutput, error) {
3378	req, out := c.CreateScheduledAuditRequest(input)
3379	return out, req.Send()
3380}
3381
3382// CreateScheduledAuditWithContext is the same as CreateScheduledAudit with the addition of
3383// the ability to pass a context and additional request options.
3384//
3385// See CreateScheduledAudit for details on how to use this API operation.
3386//
3387// The context must be non-nil and will be used for request cancellation. If
3388// the context is nil a panic will occur. In the future the SDK may create
3389// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3390// for more information on using Contexts.
3391func (c *IoT) CreateScheduledAuditWithContext(ctx aws.Context, input *CreateScheduledAuditInput, opts ...request.Option) (*CreateScheduledAuditOutput, error) {
3392	req, out := c.CreateScheduledAuditRequest(input)
3393	req.SetContext(ctx)
3394	req.ApplyOptions(opts...)
3395	return out, req.Send()
3396}
3397
3398const opCreateSecurityProfile = "CreateSecurityProfile"
3399
3400// CreateSecurityProfileRequest generates a "aws/request.Request" representing the
3401// client's request for the CreateSecurityProfile operation. The "output" return
3402// value will be populated with the request's response once the request completes
3403// successfully.
3404//
3405// Use "Send" method on the returned Request to send the API call to the service.
3406// the "output" return value is not valid until after Send returns without error.
3407//
3408// See CreateSecurityProfile for more information on using the CreateSecurityProfile
3409// API call, and error handling.
3410//
3411// This method is useful when you want to inject custom logic or configuration
3412// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3413//
3414//
3415//    // Example sending a request using the CreateSecurityProfileRequest method.
3416//    req, resp := client.CreateSecurityProfileRequest(params)
3417//
3418//    err := req.Send()
3419//    if err == nil { // resp is now filled
3420//        fmt.Println(resp)
3421//    }
3422func (c *IoT) CreateSecurityProfileRequest(input *CreateSecurityProfileInput) (req *request.Request, output *CreateSecurityProfileOutput) {
3423	op := &request.Operation{
3424		Name:       opCreateSecurityProfile,
3425		HTTPMethod: "POST",
3426		HTTPPath:   "/security-profiles/{securityProfileName}",
3427	}
3428
3429	if input == nil {
3430		input = &CreateSecurityProfileInput{}
3431	}
3432
3433	output = &CreateSecurityProfileOutput{}
3434	req = c.newRequest(op, input, output)
3435	return
3436}
3437
3438// CreateSecurityProfile API operation for AWS IoT.
3439//
3440// Creates a Device Defender security profile.
3441//
3442// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3443// with awserr.Error's Code and Message methods to get detailed information about
3444// the error.
3445//
3446// See the AWS API reference guide for AWS IoT's
3447// API operation CreateSecurityProfile for usage and error information.
3448//
3449// Returned Error Types:
3450//   * InvalidRequestException
3451//   The request is not valid.
3452//
3453//   * ResourceAlreadyExistsException
3454//   The resource already exists.
3455//
3456//   * ThrottlingException
3457//   The rate exceeds the limit.
3458//
3459//   * InternalFailureException
3460//   An unexpected error has occurred.
3461//
3462func (c *IoT) CreateSecurityProfile(input *CreateSecurityProfileInput) (*CreateSecurityProfileOutput, error) {
3463	req, out := c.CreateSecurityProfileRequest(input)
3464	return out, req.Send()
3465}
3466
3467// CreateSecurityProfileWithContext is the same as CreateSecurityProfile with the addition of
3468// the ability to pass a context and additional request options.
3469//
3470// See CreateSecurityProfile for details on how to use this API operation.
3471//
3472// The context must be non-nil and will be used for request cancellation. If
3473// the context is nil a panic will occur. In the future the SDK may create
3474// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3475// for more information on using Contexts.
3476func (c *IoT) CreateSecurityProfileWithContext(ctx aws.Context, input *CreateSecurityProfileInput, opts ...request.Option) (*CreateSecurityProfileOutput, error) {
3477	req, out := c.CreateSecurityProfileRequest(input)
3478	req.SetContext(ctx)
3479	req.ApplyOptions(opts...)
3480	return out, req.Send()
3481}
3482
3483const opCreateStream = "CreateStream"
3484
3485// CreateStreamRequest generates a "aws/request.Request" representing the
3486// client's request for the CreateStream operation. The "output" return
3487// value will be populated with the request's response once the request completes
3488// successfully.
3489//
3490// Use "Send" method on the returned Request to send the API call to the service.
3491// the "output" return value is not valid until after Send returns without error.
3492//
3493// See CreateStream for more information on using the CreateStream
3494// API call, and error handling.
3495//
3496// This method is useful when you want to inject custom logic or configuration
3497// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3498//
3499//
3500//    // Example sending a request using the CreateStreamRequest method.
3501//    req, resp := client.CreateStreamRequest(params)
3502//
3503//    err := req.Send()
3504//    if err == nil { // resp is now filled
3505//        fmt.Println(resp)
3506//    }
3507func (c *IoT) CreateStreamRequest(input *CreateStreamInput) (req *request.Request, output *CreateStreamOutput) {
3508	op := &request.Operation{
3509		Name:       opCreateStream,
3510		HTTPMethod: "POST",
3511		HTTPPath:   "/streams/{streamId}",
3512	}
3513
3514	if input == nil {
3515		input = &CreateStreamInput{}
3516	}
3517
3518	output = &CreateStreamOutput{}
3519	req = c.newRequest(op, input, output)
3520	return
3521}
3522
3523// CreateStream API operation for AWS IoT.
3524//
3525// Creates a stream for delivering one or more large files in chunks over MQTT.
3526// A stream transports data bytes in chunks or blocks packaged as MQTT messages
3527// from a source like S3. You can have one or more files associated with a stream.
3528//
3529// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3530// with awserr.Error's Code and Message methods to get detailed information about
3531// the error.
3532//
3533// See the AWS API reference guide for AWS IoT's
3534// API operation CreateStream for usage and error information.
3535//
3536// Returned Error Types:
3537//   * InvalidRequestException
3538//   The request is not valid.
3539//
3540//   * LimitExceededException
3541//   A limit has been exceeded.
3542//
3543//   * ResourceNotFoundException
3544//   The specified resource does not exist.
3545//
3546//   * ResourceAlreadyExistsException
3547//   The resource already exists.
3548//
3549//   * ThrottlingException
3550//   The rate exceeds the limit.
3551//
3552//   * UnauthorizedException
3553//   You are not authorized to perform this operation.
3554//
3555//   * ServiceUnavailableException
3556//   The service is temporarily unavailable.
3557//
3558//   * InternalFailureException
3559//   An unexpected error has occurred.
3560//
3561func (c *IoT) CreateStream(input *CreateStreamInput) (*CreateStreamOutput, error) {
3562	req, out := c.CreateStreamRequest(input)
3563	return out, req.Send()
3564}
3565
3566// CreateStreamWithContext is the same as CreateStream with the addition of
3567// the ability to pass a context and additional request options.
3568//
3569// See CreateStream for details on how to use this API operation.
3570//
3571// The context must be non-nil and will be used for request cancellation. If
3572// the context is nil a panic will occur. In the future the SDK may create
3573// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3574// for more information on using Contexts.
3575func (c *IoT) CreateStreamWithContext(ctx aws.Context, input *CreateStreamInput, opts ...request.Option) (*CreateStreamOutput, error) {
3576	req, out := c.CreateStreamRequest(input)
3577	req.SetContext(ctx)
3578	req.ApplyOptions(opts...)
3579	return out, req.Send()
3580}
3581
3582const opCreateThing = "CreateThing"
3583
3584// CreateThingRequest generates a "aws/request.Request" representing the
3585// client's request for the CreateThing operation. The "output" return
3586// value will be populated with the request's response once the request completes
3587// successfully.
3588//
3589// Use "Send" method on the returned Request to send the API call to the service.
3590// the "output" return value is not valid until after Send returns without error.
3591//
3592// See CreateThing for more information on using the CreateThing
3593// API call, and error handling.
3594//
3595// This method is useful when you want to inject custom logic or configuration
3596// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3597//
3598//
3599//    // Example sending a request using the CreateThingRequest method.
3600//    req, resp := client.CreateThingRequest(params)
3601//
3602//    err := req.Send()
3603//    if err == nil { // resp is now filled
3604//        fmt.Println(resp)
3605//    }
3606func (c *IoT) CreateThingRequest(input *CreateThingInput) (req *request.Request, output *CreateThingOutput) {
3607	op := &request.Operation{
3608		Name:       opCreateThing,
3609		HTTPMethod: "POST",
3610		HTTPPath:   "/things/{thingName}",
3611	}
3612
3613	if input == nil {
3614		input = &CreateThingInput{}
3615	}
3616
3617	output = &CreateThingOutput{}
3618	req = c.newRequest(op, input, output)
3619	return
3620}
3621
3622// CreateThing API operation for AWS IoT.
3623//
3624// Creates a thing record in the registry. If this call is made multiple times
3625// using the same thing name and configuration, the call will succeed. If this
3626// call is made with the same thing name but different configuration a ResourceAlreadyExistsException
3627// is thrown.
3628//
3629// This is a control plane operation. See Authorization (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html)
3630// for information about authorizing control plane actions.
3631//
3632// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3633// with awserr.Error's Code and Message methods to get detailed information about
3634// the error.
3635//
3636// See the AWS API reference guide for AWS IoT's
3637// API operation CreateThing for usage and error information.
3638//
3639// Returned Error Types:
3640//   * InvalidRequestException
3641//   The request is not valid.
3642//
3643//   * ThrottlingException
3644//   The rate exceeds the limit.
3645//
3646//   * UnauthorizedException
3647//   You are not authorized to perform this operation.
3648//
3649//   * ServiceUnavailableException
3650//   The service is temporarily unavailable.
3651//
3652//   * InternalFailureException
3653//   An unexpected error has occurred.
3654//
3655//   * ResourceAlreadyExistsException
3656//   The resource already exists.
3657//
3658//   * ResourceNotFoundException
3659//   The specified resource does not exist.
3660//
3661func (c *IoT) CreateThing(input *CreateThingInput) (*CreateThingOutput, error) {
3662	req, out := c.CreateThingRequest(input)
3663	return out, req.Send()
3664}
3665
3666// CreateThingWithContext is the same as CreateThing with the addition of
3667// the ability to pass a context and additional request options.
3668//
3669// See CreateThing for details on how to use this API operation.
3670//
3671// The context must be non-nil and will be used for request cancellation. If
3672// the context is nil a panic will occur. In the future the SDK may create
3673// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3674// for more information on using Contexts.
3675func (c *IoT) CreateThingWithContext(ctx aws.Context, input *CreateThingInput, opts ...request.Option) (*CreateThingOutput, error) {
3676	req, out := c.CreateThingRequest(input)
3677	req.SetContext(ctx)
3678	req.ApplyOptions(opts...)
3679	return out, req.Send()
3680}
3681
3682const opCreateThingGroup = "CreateThingGroup"
3683
3684// CreateThingGroupRequest generates a "aws/request.Request" representing the
3685// client's request for the CreateThingGroup operation. The "output" return
3686// value will be populated with the request's response once the request completes
3687// successfully.
3688//
3689// Use "Send" method on the returned Request to send the API call to the service.
3690// the "output" return value is not valid until after Send returns without error.
3691//
3692// See CreateThingGroup for more information on using the CreateThingGroup
3693// API call, and error handling.
3694//
3695// This method is useful when you want to inject custom logic or configuration
3696// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3697//
3698//
3699//    // Example sending a request using the CreateThingGroupRequest method.
3700//    req, resp := client.CreateThingGroupRequest(params)
3701//
3702//    err := req.Send()
3703//    if err == nil { // resp is now filled
3704//        fmt.Println(resp)
3705//    }
3706func (c *IoT) CreateThingGroupRequest(input *CreateThingGroupInput) (req *request.Request, output *CreateThingGroupOutput) {
3707	op := &request.Operation{
3708		Name:       opCreateThingGroup,
3709		HTTPMethod: "POST",
3710		HTTPPath:   "/thing-groups/{thingGroupName}",
3711	}
3712
3713	if input == nil {
3714		input = &CreateThingGroupInput{}
3715	}
3716
3717	output = &CreateThingGroupOutput{}
3718	req = c.newRequest(op, input, output)
3719	return
3720}
3721
3722// CreateThingGroup API operation for AWS IoT.
3723//
3724// Create a thing group.
3725//
3726// This is a control plane operation. See Authorization (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html)
3727// for information about authorizing control plane actions.
3728//
3729// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3730// with awserr.Error's Code and Message methods to get detailed information about
3731// the error.
3732//
3733// See the AWS API reference guide for AWS IoT's
3734// API operation CreateThingGroup for usage and error information.
3735//
3736// Returned Error Types:
3737//   * InvalidRequestException
3738//   The request is not valid.
3739//
3740//   * ResourceAlreadyExistsException
3741//   The resource already exists.
3742//
3743//   * ThrottlingException
3744//   The rate exceeds the limit.
3745//
3746//   * InternalFailureException
3747//   An unexpected error has occurred.
3748//
3749func (c *IoT) CreateThingGroup(input *CreateThingGroupInput) (*CreateThingGroupOutput, error) {
3750	req, out := c.CreateThingGroupRequest(input)
3751	return out, req.Send()
3752}
3753
3754// CreateThingGroupWithContext is the same as CreateThingGroup with the addition of
3755// the ability to pass a context and additional request options.
3756//
3757// See CreateThingGroup for details on how to use this API operation.
3758//
3759// The context must be non-nil and will be used for request cancellation. If
3760// the context is nil a panic will occur. In the future the SDK may create
3761// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3762// for more information on using Contexts.
3763func (c *IoT) CreateThingGroupWithContext(ctx aws.Context, input *CreateThingGroupInput, opts ...request.Option) (*CreateThingGroupOutput, error) {
3764	req, out := c.CreateThingGroupRequest(input)
3765	req.SetContext(ctx)
3766	req.ApplyOptions(opts...)
3767	return out, req.Send()
3768}
3769
3770const opCreateThingType = "CreateThingType"
3771
3772// CreateThingTypeRequest generates a "aws/request.Request" representing the
3773// client's request for the CreateThingType operation. The "output" return
3774// value will be populated with the request's response once the request completes
3775// successfully.
3776//
3777// Use "Send" method on the returned Request to send the API call to the service.
3778// the "output" return value is not valid until after Send returns without error.
3779//
3780// See CreateThingType for more information on using the CreateThingType
3781// API call, and error handling.
3782//
3783// This method is useful when you want to inject custom logic or configuration
3784// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3785//
3786//
3787//    // Example sending a request using the CreateThingTypeRequest method.
3788//    req, resp := client.CreateThingTypeRequest(params)
3789//
3790//    err := req.Send()
3791//    if err == nil { // resp is now filled
3792//        fmt.Println(resp)
3793//    }
3794func (c *IoT) CreateThingTypeRequest(input *CreateThingTypeInput) (req *request.Request, output *CreateThingTypeOutput) {
3795	op := &request.Operation{
3796		Name:       opCreateThingType,
3797		HTTPMethod: "POST",
3798		HTTPPath:   "/thing-types/{thingTypeName}",
3799	}
3800
3801	if input == nil {
3802		input = &CreateThingTypeInput{}
3803	}
3804
3805	output = &CreateThingTypeOutput{}
3806	req = c.newRequest(op, input, output)
3807	return
3808}
3809
3810// CreateThingType API operation for AWS IoT.
3811//
3812// Creates a new thing type.
3813//
3814// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3815// with awserr.Error's Code and Message methods to get detailed information about
3816// the error.
3817//
3818// See the AWS API reference guide for AWS IoT's
3819// API operation CreateThingType for usage and error information.
3820//
3821// Returned Error Types:
3822//   * InvalidRequestException
3823//   The request is not valid.
3824//
3825//   * ThrottlingException
3826//   The rate exceeds the limit.
3827//
3828//   * UnauthorizedException
3829//   You are not authorized to perform this operation.
3830//
3831//   * ServiceUnavailableException
3832//   The service is temporarily unavailable.
3833//
3834//   * InternalFailureException
3835//   An unexpected error has occurred.
3836//
3837//   * ResourceAlreadyExistsException
3838//   The resource already exists.
3839//
3840func (c *IoT) CreateThingType(input *CreateThingTypeInput) (*CreateThingTypeOutput, error) {
3841	req, out := c.CreateThingTypeRequest(input)
3842	return out, req.Send()
3843}
3844
3845// CreateThingTypeWithContext is the same as CreateThingType with the addition of
3846// the ability to pass a context and additional request options.
3847//
3848// See CreateThingType for details on how to use this API operation.
3849//
3850// The context must be non-nil and will be used for request cancellation. If
3851// the context is nil a panic will occur. In the future the SDK may create
3852// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3853// for more information on using Contexts.
3854func (c *IoT) CreateThingTypeWithContext(ctx aws.Context, input *CreateThingTypeInput, opts ...request.Option) (*CreateThingTypeOutput, error) {
3855	req, out := c.CreateThingTypeRequest(input)
3856	req.SetContext(ctx)
3857	req.ApplyOptions(opts...)
3858	return out, req.Send()
3859}
3860
3861const opCreateTopicRule = "CreateTopicRule"
3862
3863// CreateTopicRuleRequest generates a "aws/request.Request" representing the
3864// client's request for the CreateTopicRule operation. The "output" return
3865// value will be populated with the request's response once the request completes
3866// successfully.
3867//
3868// Use "Send" method on the returned Request to send the API call to the service.
3869// the "output" return value is not valid until after Send returns without error.
3870//
3871// See CreateTopicRule for more information on using the CreateTopicRule
3872// API call, and error handling.
3873//
3874// This method is useful when you want to inject custom logic or configuration
3875// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3876//
3877//
3878//    // Example sending a request using the CreateTopicRuleRequest method.
3879//    req, resp := client.CreateTopicRuleRequest(params)
3880//
3881//    err := req.Send()
3882//    if err == nil { // resp is now filled
3883//        fmt.Println(resp)
3884//    }
3885func (c *IoT) CreateTopicRuleRequest(input *CreateTopicRuleInput) (req *request.Request, output *CreateTopicRuleOutput) {
3886	op := &request.Operation{
3887		Name:       opCreateTopicRule,
3888		HTTPMethod: "POST",
3889		HTTPPath:   "/rules/{ruleName}",
3890	}
3891
3892	if input == nil {
3893		input = &CreateTopicRuleInput{}
3894	}
3895
3896	output = &CreateTopicRuleOutput{}
3897	req = c.newRequest(op, input, output)
3898	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3899	return
3900}
3901
3902// CreateTopicRule API operation for AWS IoT.
3903//
3904// Creates a rule. Creating rules is an administrator-level action. Any user
3905// who has permission to create rules will be able to access data processed
3906// by the rule.
3907//
3908// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3909// with awserr.Error's Code and Message methods to get detailed information about
3910// the error.
3911//
3912// See the AWS API reference guide for AWS IoT's
3913// API operation CreateTopicRule for usage and error information.
3914//
3915// Returned Error Types:
3916//   * SqlParseException
3917//   The Rule-SQL expression can't be parsed correctly.
3918//
3919//   * InternalException
3920//   An unexpected error has occurred.
3921//
3922//   * InvalidRequestException
3923//   The request is not valid.
3924//
3925//   * ResourceAlreadyExistsException
3926//   The resource already exists.
3927//
3928//   * ServiceUnavailableException
3929//   The service is temporarily unavailable.
3930//
3931//   * ConflictingResourceUpdateException
3932//   A conflicting resource update exception. This exception is thrown when two
3933//   pending updates cause a conflict.
3934//
3935func (c *IoT) CreateTopicRule(input *CreateTopicRuleInput) (*CreateTopicRuleOutput, error) {
3936	req, out := c.CreateTopicRuleRequest(input)
3937	return out, req.Send()
3938}
3939
3940// CreateTopicRuleWithContext is the same as CreateTopicRule with the addition of
3941// the ability to pass a context and additional request options.
3942//
3943// See CreateTopicRule for details on how to use this API operation.
3944//
3945// The context must be non-nil and will be used for request cancellation. If
3946// the context is nil a panic will occur. In the future the SDK may create
3947// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3948// for more information on using Contexts.
3949func (c *IoT) CreateTopicRuleWithContext(ctx aws.Context, input *CreateTopicRuleInput, opts ...request.Option) (*CreateTopicRuleOutput, error) {
3950	req, out := c.CreateTopicRuleRequest(input)
3951	req.SetContext(ctx)
3952	req.ApplyOptions(opts...)
3953	return out, req.Send()
3954}
3955
3956const opCreateTopicRuleDestination = "CreateTopicRuleDestination"
3957
3958// CreateTopicRuleDestinationRequest generates a "aws/request.Request" representing the
3959// client's request for the CreateTopicRuleDestination operation. The "output" return
3960// value will be populated with the request's response once the request completes
3961// successfully.
3962//
3963// Use "Send" method on the returned Request to send the API call to the service.
3964// the "output" return value is not valid until after Send returns without error.
3965//
3966// See CreateTopicRuleDestination for more information on using the CreateTopicRuleDestination
3967// API call, and error handling.
3968//
3969// This method is useful when you want to inject custom logic or configuration
3970// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3971//
3972//
3973//    // Example sending a request using the CreateTopicRuleDestinationRequest method.
3974//    req, resp := client.CreateTopicRuleDestinationRequest(params)
3975//
3976//    err := req.Send()
3977//    if err == nil { // resp is now filled
3978//        fmt.Println(resp)
3979//    }
3980func (c *IoT) CreateTopicRuleDestinationRequest(input *CreateTopicRuleDestinationInput) (req *request.Request, output *CreateTopicRuleDestinationOutput) {
3981	op := &request.Operation{
3982		Name:       opCreateTopicRuleDestination,
3983		HTTPMethod: "POST",
3984		HTTPPath:   "/destinations",
3985	}
3986
3987	if input == nil {
3988		input = &CreateTopicRuleDestinationInput{}
3989	}
3990
3991	output = &CreateTopicRuleDestinationOutput{}
3992	req = c.newRequest(op, input, output)
3993	return
3994}
3995
3996// CreateTopicRuleDestination API operation for AWS IoT.
3997//
3998// Creates a topic rule destination. The destination must be confirmed prior
3999// to use.
4000//
4001// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4002// with awserr.Error's Code and Message methods to get detailed information about
4003// the error.
4004//
4005// See the AWS API reference guide for AWS IoT's
4006// API operation CreateTopicRuleDestination for usage and error information.
4007//
4008// Returned Error Types:
4009//   * InternalException
4010//   An unexpected error has occurred.
4011//
4012//   * InvalidRequestException
4013//   The request is not valid.
4014//
4015//   * ResourceAlreadyExistsException
4016//   The resource already exists.
4017//
4018//   * ServiceUnavailableException
4019//   The service is temporarily unavailable.
4020//
4021//   * ConflictingResourceUpdateException
4022//   A conflicting resource update exception. This exception is thrown when two
4023//   pending updates cause a conflict.
4024//
4025func (c *IoT) CreateTopicRuleDestination(input *CreateTopicRuleDestinationInput) (*CreateTopicRuleDestinationOutput, error) {
4026	req, out := c.CreateTopicRuleDestinationRequest(input)
4027	return out, req.Send()
4028}
4029
4030// CreateTopicRuleDestinationWithContext is the same as CreateTopicRuleDestination with the addition of
4031// the ability to pass a context and additional request options.
4032//
4033// See CreateTopicRuleDestination for details on how to use this API operation.
4034//
4035// The context must be non-nil and will be used for request cancellation. If
4036// the context is nil a panic will occur. In the future the SDK may create
4037// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4038// for more information on using Contexts.
4039func (c *IoT) CreateTopicRuleDestinationWithContext(ctx aws.Context, input *CreateTopicRuleDestinationInput, opts ...request.Option) (*CreateTopicRuleDestinationOutput, error) {
4040	req, out := c.CreateTopicRuleDestinationRequest(input)
4041	req.SetContext(ctx)
4042	req.ApplyOptions(opts...)
4043	return out, req.Send()
4044}
4045
4046const opDeleteAccountAuditConfiguration = "DeleteAccountAuditConfiguration"
4047
4048// DeleteAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
4049// client's request for the DeleteAccountAuditConfiguration operation. The "output" return
4050// value will be populated with the request's response once the request completes
4051// successfully.
4052//
4053// Use "Send" method on the returned Request to send the API call to the service.
4054// the "output" return value is not valid until after Send returns without error.
4055//
4056// See DeleteAccountAuditConfiguration for more information on using the DeleteAccountAuditConfiguration
4057// API call, and error handling.
4058//
4059// This method is useful when you want to inject custom logic or configuration
4060// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4061//
4062//
4063//    // Example sending a request using the DeleteAccountAuditConfigurationRequest method.
4064//    req, resp := client.DeleteAccountAuditConfigurationRequest(params)
4065//
4066//    err := req.Send()
4067//    if err == nil { // resp is now filled
4068//        fmt.Println(resp)
4069//    }
4070func (c *IoT) DeleteAccountAuditConfigurationRequest(input *DeleteAccountAuditConfigurationInput) (req *request.Request, output *DeleteAccountAuditConfigurationOutput) {
4071	op := &request.Operation{
4072		Name:       opDeleteAccountAuditConfiguration,
4073		HTTPMethod: "DELETE",
4074		HTTPPath:   "/audit/configuration",
4075	}
4076
4077	if input == nil {
4078		input = &DeleteAccountAuditConfigurationInput{}
4079	}
4080
4081	output = &DeleteAccountAuditConfigurationOutput{}
4082	req = c.newRequest(op, input, output)
4083	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4084	return
4085}
4086
4087// DeleteAccountAuditConfiguration API operation for AWS IoT.
4088//
4089// Restores the default settings for Device Defender audits for this account.
4090// Any configuration data you entered is deleted and all audit checks are reset
4091// to disabled.
4092//
4093// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4094// with awserr.Error's Code and Message methods to get detailed information about
4095// the error.
4096//
4097// See the AWS API reference guide for AWS IoT's
4098// API operation DeleteAccountAuditConfiguration for usage and error information.
4099//
4100// Returned Error Types:
4101//   * InvalidRequestException
4102//   The request is not valid.
4103//
4104//   * ResourceNotFoundException
4105//   The specified resource does not exist.
4106//
4107//   * ThrottlingException
4108//   The rate exceeds the limit.
4109//
4110//   * InternalFailureException
4111//   An unexpected error has occurred.
4112//
4113func (c *IoT) DeleteAccountAuditConfiguration(input *DeleteAccountAuditConfigurationInput) (*DeleteAccountAuditConfigurationOutput, error) {
4114	req, out := c.DeleteAccountAuditConfigurationRequest(input)
4115	return out, req.Send()
4116}
4117
4118// DeleteAccountAuditConfigurationWithContext is the same as DeleteAccountAuditConfiguration with the addition of
4119// the ability to pass a context and additional request options.
4120//
4121// See DeleteAccountAuditConfiguration for details on how to use this API operation.
4122//
4123// The context must be non-nil and will be used for request cancellation. If
4124// the context is nil a panic will occur. In the future the SDK may create
4125// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4126// for more information on using Contexts.
4127func (c *IoT) DeleteAccountAuditConfigurationWithContext(ctx aws.Context, input *DeleteAccountAuditConfigurationInput, opts ...request.Option) (*DeleteAccountAuditConfigurationOutput, error) {
4128	req, out := c.DeleteAccountAuditConfigurationRequest(input)
4129	req.SetContext(ctx)
4130	req.ApplyOptions(opts...)
4131	return out, req.Send()
4132}
4133
4134const opDeleteAuditSuppression = "DeleteAuditSuppression"
4135
4136// DeleteAuditSuppressionRequest generates a "aws/request.Request" representing the
4137// client's request for the DeleteAuditSuppression operation. The "output" return
4138// value will be populated with the request's response once the request completes
4139// successfully.
4140//
4141// Use "Send" method on the returned Request to send the API call to the service.
4142// the "output" return value is not valid until after Send returns without error.
4143//
4144// See DeleteAuditSuppression for more information on using the DeleteAuditSuppression
4145// API call, and error handling.
4146//
4147// This method is useful when you want to inject custom logic or configuration
4148// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4149//
4150//
4151//    // Example sending a request using the DeleteAuditSuppressionRequest method.
4152//    req, resp := client.DeleteAuditSuppressionRequest(params)
4153//
4154//    err := req.Send()
4155//    if err == nil { // resp is now filled
4156//        fmt.Println(resp)
4157//    }
4158func (c *IoT) DeleteAuditSuppressionRequest(input *DeleteAuditSuppressionInput) (req *request.Request, output *DeleteAuditSuppressionOutput) {
4159	op := &request.Operation{
4160		Name:       opDeleteAuditSuppression,
4161		HTTPMethod: "POST",
4162		HTTPPath:   "/audit/suppressions/delete",
4163	}
4164
4165	if input == nil {
4166		input = &DeleteAuditSuppressionInput{}
4167	}
4168
4169	output = &DeleteAuditSuppressionOutput{}
4170	req = c.newRequest(op, input, output)
4171	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4172	return
4173}
4174
4175// DeleteAuditSuppression API operation for AWS IoT.
4176//
4177// Deletes a Device Defender audit suppression.
4178//
4179// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4180// with awserr.Error's Code and Message methods to get detailed information about
4181// the error.
4182//
4183// See the AWS API reference guide for AWS IoT's
4184// API operation DeleteAuditSuppression for usage and error information.
4185//
4186// Returned Error Types:
4187//   * InvalidRequestException
4188//   The request is not valid.
4189//
4190//   * ThrottlingException
4191//   The rate exceeds the limit.
4192//
4193//   * InternalFailureException
4194//   An unexpected error has occurred.
4195//
4196func (c *IoT) DeleteAuditSuppression(input *DeleteAuditSuppressionInput) (*DeleteAuditSuppressionOutput, error) {
4197	req, out := c.DeleteAuditSuppressionRequest(input)
4198	return out, req.Send()
4199}
4200
4201// DeleteAuditSuppressionWithContext is the same as DeleteAuditSuppression with the addition of
4202// the ability to pass a context and additional request options.
4203//
4204// See DeleteAuditSuppression for details on how to use this API operation.
4205//
4206// The context must be non-nil and will be used for request cancellation. If
4207// the context is nil a panic will occur. In the future the SDK may create
4208// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4209// for more information on using Contexts.
4210func (c *IoT) DeleteAuditSuppressionWithContext(ctx aws.Context, input *DeleteAuditSuppressionInput, opts ...request.Option) (*DeleteAuditSuppressionOutput, error) {
4211	req, out := c.DeleteAuditSuppressionRequest(input)
4212	req.SetContext(ctx)
4213	req.ApplyOptions(opts...)
4214	return out, req.Send()
4215}
4216
4217const opDeleteAuthorizer = "DeleteAuthorizer"
4218
4219// DeleteAuthorizerRequest generates a "aws/request.Request" representing the
4220// client's request for the DeleteAuthorizer operation. The "output" return
4221// value will be populated with the request's response once the request completes
4222// successfully.
4223//
4224// Use "Send" method on the returned Request to send the API call to the service.
4225// the "output" return value is not valid until after Send returns without error.
4226//
4227// See DeleteAuthorizer for more information on using the DeleteAuthorizer
4228// API call, and error handling.
4229//
4230// This method is useful when you want to inject custom logic or configuration
4231// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4232//
4233//
4234//    // Example sending a request using the DeleteAuthorizerRequest method.
4235//    req, resp := client.DeleteAuthorizerRequest(params)
4236//
4237//    err := req.Send()
4238//    if err == nil { // resp is now filled
4239//        fmt.Println(resp)
4240//    }
4241func (c *IoT) DeleteAuthorizerRequest(input *DeleteAuthorizerInput) (req *request.Request, output *DeleteAuthorizerOutput) {
4242	op := &request.Operation{
4243		Name:       opDeleteAuthorizer,
4244		HTTPMethod: "DELETE",
4245		HTTPPath:   "/authorizer/{authorizerName}",
4246	}
4247
4248	if input == nil {
4249		input = &DeleteAuthorizerInput{}
4250	}
4251
4252	output = &DeleteAuthorizerOutput{}
4253	req = c.newRequest(op, input, output)
4254	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4255	return
4256}
4257
4258// DeleteAuthorizer API operation for AWS IoT.
4259//
4260// Deletes an authorizer.
4261//
4262// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4263// with awserr.Error's Code and Message methods to get detailed information about
4264// the error.
4265//
4266// See the AWS API reference guide for AWS IoT's
4267// API operation DeleteAuthorizer for usage and error information.
4268//
4269// Returned Error Types:
4270//   * DeleteConflictException
4271//   You can't delete the resource because it is attached to one or more resources.
4272//
4273//   * ResourceNotFoundException
4274//   The specified resource does not exist.
4275//
4276//   * InvalidRequestException
4277//   The request is not valid.
4278//
4279//   * ThrottlingException
4280//   The rate exceeds the limit.
4281//
4282//   * UnauthorizedException
4283//   You are not authorized to perform this operation.
4284//
4285//   * ServiceUnavailableException
4286//   The service is temporarily unavailable.
4287//
4288//   * InternalFailureException
4289//   An unexpected error has occurred.
4290//
4291func (c *IoT) DeleteAuthorizer(input *DeleteAuthorizerInput) (*DeleteAuthorizerOutput, error) {
4292	req, out := c.DeleteAuthorizerRequest(input)
4293	return out, req.Send()
4294}
4295
4296// DeleteAuthorizerWithContext is the same as DeleteAuthorizer with the addition of
4297// the ability to pass a context and additional request options.
4298//
4299// See DeleteAuthorizer for details on how to use this API operation.
4300//
4301// The context must be non-nil and will be used for request cancellation. If
4302// the context is nil a panic will occur. In the future the SDK may create
4303// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4304// for more information on using Contexts.
4305func (c *IoT) DeleteAuthorizerWithContext(ctx aws.Context, input *DeleteAuthorizerInput, opts ...request.Option) (*DeleteAuthorizerOutput, error) {
4306	req, out := c.DeleteAuthorizerRequest(input)
4307	req.SetContext(ctx)
4308	req.ApplyOptions(opts...)
4309	return out, req.Send()
4310}
4311
4312const opDeleteBillingGroup = "DeleteBillingGroup"
4313
4314// DeleteBillingGroupRequest generates a "aws/request.Request" representing the
4315// client's request for the DeleteBillingGroup operation. The "output" return
4316// value will be populated with the request's response once the request completes
4317// successfully.
4318//
4319// Use "Send" method on the returned Request to send the API call to the service.
4320// the "output" return value is not valid until after Send returns without error.
4321//
4322// See DeleteBillingGroup for more information on using the DeleteBillingGroup
4323// API call, and error handling.
4324//
4325// This method is useful when you want to inject custom logic or configuration
4326// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4327//
4328//
4329//    // Example sending a request using the DeleteBillingGroupRequest method.
4330//    req, resp := client.DeleteBillingGroupRequest(params)
4331//
4332//    err := req.Send()
4333//    if err == nil { // resp is now filled
4334//        fmt.Println(resp)
4335//    }
4336func (c *IoT) DeleteBillingGroupRequest(input *DeleteBillingGroupInput) (req *request.Request, output *DeleteBillingGroupOutput) {
4337	op := &request.Operation{
4338		Name:       opDeleteBillingGroup,
4339		HTTPMethod: "DELETE",
4340		HTTPPath:   "/billing-groups/{billingGroupName}",
4341	}
4342
4343	if input == nil {
4344		input = &DeleteBillingGroupInput{}
4345	}
4346
4347	output = &DeleteBillingGroupOutput{}
4348	req = c.newRequest(op, input, output)
4349	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4350	return
4351}
4352
4353// DeleteBillingGroup API operation for AWS IoT.
4354//
4355// Deletes the billing group.
4356//
4357// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4358// with awserr.Error's Code and Message methods to get detailed information about
4359// the error.
4360//
4361// See the AWS API reference guide for AWS IoT's
4362// API operation DeleteBillingGroup for usage and error information.
4363//
4364// Returned Error Types:
4365//   * InvalidRequestException
4366//   The request is not valid.
4367//
4368//   * VersionConflictException
4369//   An exception thrown when the version of an entity specified with the expectedVersion
4370//   parameter does not match the latest version in the system.
4371//
4372//   * ThrottlingException
4373//   The rate exceeds the limit.
4374//
4375//   * InternalFailureException
4376//   An unexpected error has occurred.
4377//
4378func (c *IoT) DeleteBillingGroup(input *DeleteBillingGroupInput) (*DeleteBillingGroupOutput, error) {
4379	req, out := c.DeleteBillingGroupRequest(input)
4380	return out, req.Send()
4381}
4382
4383// DeleteBillingGroupWithContext is the same as DeleteBillingGroup with the addition of
4384// the ability to pass a context and additional request options.
4385//
4386// See DeleteBillingGroup for details on how to use this API operation.
4387//
4388// The context must be non-nil and will be used for request cancellation. If
4389// the context is nil a panic will occur. In the future the SDK may create
4390// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4391// for more information on using Contexts.
4392func (c *IoT) DeleteBillingGroupWithContext(ctx aws.Context, input *DeleteBillingGroupInput, opts ...request.Option) (*DeleteBillingGroupOutput, error) {
4393	req, out := c.DeleteBillingGroupRequest(input)
4394	req.SetContext(ctx)
4395	req.ApplyOptions(opts...)
4396	return out, req.Send()
4397}
4398
4399const opDeleteCACertificate = "DeleteCACertificate"
4400
4401// DeleteCACertificateRequest generates a "aws/request.Request" representing the
4402// client's request for the DeleteCACertificate operation. The "output" return
4403// value will be populated with the request's response once the request completes
4404// successfully.
4405//
4406// Use "Send" method on the returned Request to send the API call to the service.
4407// the "output" return value is not valid until after Send returns without error.
4408//
4409// See DeleteCACertificate for more information on using the DeleteCACertificate
4410// API call, and error handling.
4411//
4412// This method is useful when you want to inject custom logic or configuration
4413// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4414//
4415//
4416//    // Example sending a request using the DeleteCACertificateRequest method.
4417//    req, resp := client.DeleteCACertificateRequest(params)
4418//
4419//    err := req.Send()
4420//    if err == nil { // resp is now filled
4421//        fmt.Println(resp)
4422//    }
4423func (c *IoT) DeleteCACertificateRequest(input *DeleteCACertificateInput) (req *request.Request, output *DeleteCACertificateOutput) {
4424	op := &request.Operation{
4425		Name:       opDeleteCACertificate,
4426		HTTPMethod: "DELETE",
4427		HTTPPath:   "/cacertificate/{caCertificateId}",
4428	}
4429
4430	if input == nil {
4431		input = &DeleteCACertificateInput{}
4432	}
4433
4434	output = &DeleteCACertificateOutput{}
4435	req = c.newRequest(op, input, output)
4436	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4437	return
4438}
4439
4440// DeleteCACertificate API operation for AWS IoT.
4441//
4442// Deletes a registered CA certificate.
4443//
4444// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4445// with awserr.Error's Code and Message methods to get detailed information about
4446// the error.
4447//
4448// See the AWS API reference guide for AWS IoT's
4449// API operation DeleteCACertificate for usage and error information.
4450//
4451// Returned Error Types:
4452//   * InvalidRequestException
4453//   The request is not valid.
4454//
4455//   * CertificateStateException
4456//   The certificate operation is not allowed.
4457//
4458//   * ThrottlingException
4459//   The rate exceeds the limit.
4460//
4461//   * UnauthorizedException
4462//   You are not authorized to perform this operation.
4463//
4464//   * ServiceUnavailableException
4465//   The service is temporarily unavailable.
4466//
4467//   * InternalFailureException
4468//   An unexpected error has occurred.
4469//
4470//   * ResourceNotFoundException
4471//   The specified resource does not exist.
4472//
4473func (c *IoT) DeleteCACertificate(input *DeleteCACertificateInput) (*DeleteCACertificateOutput, error) {
4474	req, out := c.DeleteCACertificateRequest(input)
4475	return out, req.Send()
4476}
4477
4478// DeleteCACertificateWithContext is the same as DeleteCACertificate with the addition of
4479// the ability to pass a context and additional request options.
4480//
4481// See DeleteCACertificate for details on how to use this API operation.
4482//
4483// The context must be non-nil and will be used for request cancellation. If
4484// the context is nil a panic will occur. In the future the SDK may create
4485// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4486// for more information on using Contexts.
4487func (c *IoT) DeleteCACertificateWithContext(ctx aws.Context, input *DeleteCACertificateInput, opts ...request.Option) (*DeleteCACertificateOutput, error) {
4488	req, out := c.DeleteCACertificateRequest(input)
4489	req.SetContext(ctx)
4490	req.ApplyOptions(opts...)
4491	return out, req.Send()
4492}
4493
4494const opDeleteCertificate = "DeleteCertificate"
4495
4496// DeleteCertificateRequest generates a "aws/request.Request" representing the
4497// client's request for the DeleteCertificate operation. The "output" return
4498// value will be populated with the request's response once the request completes
4499// successfully.
4500//
4501// Use "Send" method on the returned Request to send the API call to the service.
4502// the "output" return value is not valid until after Send returns without error.
4503//
4504// See DeleteCertificate for more information on using the DeleteCertificate
4505// API call, and error handling.
4506//
4507// This method is useful when you want to inject custom logic or configuration
4508// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4509//
4510//
4511//    // Example sending a request using the DeleteCertificateRequest method.
4512//    req, resp := client.DeleteCertificateRequest(params)
4513//
4514//    err := req.Send()
4515//    if err == nil { // resp is now filled
4516//        fmt.Println(resp)
4517//    }
4518func (c *IoT) DeleteCertificateRequest(input *DeleteCertificateInput) (req *request.Request, output *DeleteCertificateOutput) {
4519	op := &request.Operation{
4520		Name:       opDeleteCertificate,
4521		HTTPMethod: "DELETE",
4522		HTTPPath:   "/certificates/{certificateId}",
4523	}
4524
4525	if input == nil {
4526		input = &DeleteCertificateInput{}
4527	}
4528
4529	output = &DeleteCertificateOutput{}
4530	req = c.newRequest(op, input, output)
4531	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4532	return
4533}
4534
4535// DeleteCertificate API operation for AWS IoT.
4536//
4537// Deletes the specified certificate.
4538//
4539// A certificate cannot be deleted if it has a policy or IoT thing attached
4540// to it or if its status is set to ACTIVE. To delete a certificate, first use
4541// the DetachPrincipalPolicy API to detach all policies. Next, use the UpdateCertificate
4542// API to set the certificate to the INACTIVE status.
4543//
4544// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4545// with awserr.Error's Code and Message methods to get detailed information about
4546// the error.
4547//
4548// See the AWS API reference guide for AWS IoT's
4549// API operation DeleteCertificate for usage and error information.
4550//
4551// Returned Error Types:
4552//   * CertificateStateException
4553//   The certificate operation is not allowed.
4554//
4555//   * DeleteConflictException
4556//   You can't delete the resource because it is attached to one or more resources.
4557//
4558//   * InvalidRequestException
4559//   The request is not valid.
4560//
4561//   * ThrottlingException
4562//   The rate exceeds the limit.
4563//
4564//   * UnauthorizedException
4565//   You are not authorized to perform this operation.
4566//
4567//   * ServiceUnavailableException
4568//   The service is temporarily unavailable.
4569//
4570//   * InternalFailureException
4571//   An unexpected error has occurred.
4572//
4573//   * ResourceNotFoundException
4574//   The specified resource does not exist.
4575//
4576func (c *IoT) DeleteCertificate(input *DeleteCertificateInput) (*DeleteCertificateOutput, error) {
4577	req, out := c.DeleteCertificateRequest(input)
4578	return out, req.Send()
4579}
4580
4581// DeleteCertificateWithContext is the same as DeleteCertificate with the addition of
4582// the ability to pass a context and additional request options.
4583//
4584// See DeleteCertificate for details on how to use this API operation.
4585//
4586// The context must be non-nil and will be used for request cancellation. If
4587// the context is nil a panic will occur. In the future the SDK may create
4588// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4589// for more information on using Contexts.
4590func (c *IoT) DeleteCertificateWithContext(ctx aws.Context, input *DeleteCertificateInput, opts ...request.Option) (*DeleteCertificateOutput, error) {
4591	req, out := c.DeleteCertificateRequest(input)
4592	req.SetContext(ctx)
4593	req.ApplyOptions(opts...)
4594	return out, req.Send()
4595}
4596
4597const opDeleteCustomMetric = "DeleteCustomMetric"
4598
4599// DeleteCustomMetricRequest generates a "aws/request.Request" representing the
4600// client's request for the DeleteCustomMetric operation. The "output" return
4601// value will be populated with the request's response once the request completes
4602// successfully.
4603//
4604// Use "Send" method on the returned Request to send the API call to the service.
4605// the "output" return value is not valid until after Send returns without error.
4606//
4607// See DeleteCustomMetric for more information on using the DeleteCustomMetric
4608// API call, and error handling.
4609//
4610// This method is useful when you want to inject custom logic or configuration
4611// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4612//
4613//
4614//    // Example sending a request using the DeleteCustomMetricRequest method.
4615//    req, resp := client.DeleteCustomMetricRequest(params)
4616//
4617//    err := req.Send()
4618//    if err == nil { // resp is now filled
4619//        fmt.Println(resp)
4620//    }
4621func (c *IoT) DeleteCustomMetricRequest(input *DeleteCustomMetricInput) (req *request.Request, output *DeleteCustomMetricOutput) {
4622	op := &request.Operation{
4623		Name:       opDeleteCustomMetric,
4624		HTTPMethod: "DELETE",
4625		HTTPPath:   "/custom-metric/{metricName}",
4626	}
4627
4628	if input == nil {
4629		input = &DeleteCustomMetricInput{}
4630	}
4631
4632	output = &DeleteCustomMetricOutput{}
4633	req = c.newRequest(op, input, output)
4634	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4635	return
4636}
4637
4638// DeleteCustomMetric API operation for AWS IoT.
4639//
4640//
4641// Before you can delete a custom metric, you must first remove the custom metric
4642// from all security profiles it's a part of. The security profile associated
4643// with the custom metric can be found using the ListSecurityProfiles (https://docs.aws.amazon.com/iot/latest/apireference/API_ListSecurityProfiles.html)
4644// API with metricName set to your custom metric name.
4645//
4646// Deletes a Device Defender detect custom metric.
4647//
4648// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4649// with awserr.Error's Code and Message methods to get detailed information about
4650// the error.
4651//
4652// See the AWS API reference guide for AWS IoT's
4653// API operation DeleteCustomMetric for usage and error information.
4654//
4655// Returned Error Types:
4656//   * InvalidRequestException
4657//   The request is not valid.
4658//
4659//   * ThrottlingException
4660//   The rate exceeds the limit.
4661//
4662//   * InternalFailureException
4663//   An unexpected error has occurred.
4664//
4665func (c *IoT) DeleteCustomMetric(input *DeleteCustomMetricInput) (*DeleteCustomMetricOutput, error) {
4666	req, out := c.DeleteCustomMetricRequest(input)
4667	return out, req.Send()
4668}
4669
4670// DeleteCustomMetricWithContext is the same as DeleteCustomMetric with the addition of
4671// the ability to pass a context and additional request options.
4672//
4673// See DeleteCustomMetric for details on how to use this API operation.
4674//
4675// The context must be non-nil and will be used for request cancellation. If
4676// the context is nil a panic will occur. In the future the SDK may create
4677// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4678// for more information on using Contexts.
4679func (c *IoT) DeleteCustomMetricWithContext(ctx aws.Context, input *DeleteCustomMetricInput, opts ...request.Option) (*DeleteCustomMetricOutput, error) {
4680	req, out := c.DeleteCustomMetricRequest(input)
4681	req.SetContext(ctx)
4682	req.ApplyOptions(opts...)
4683	return out, req.Send()
4684}
4685
4686const opDeleteDimension = "DeleteDimension"
4687
4688// DeleteDimensionRequest generates a "aws/request.Request" representing the
4689// client's request for the DeleteDimension operation. The "output" return
4690// value will be populated with the request's response once the request completes
4691// successfully.
4692//
4693// Use "Send" method on the returned Request to send the API call to the service.
4694// the "output" return value is not valid until after Send returns without error.
4695//
4696// See DeleteDimension for more information on using the DeleteDimension
4697// API call, and error handling.
4698//
4699// This method is useful when you want to inject custom logic or configuration
4700// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4701//
4702//
4703//    // Example sending a request using the DeleteDimensionRequest method.
4704//    req, resp := client.DeleteDimensionRequest(params)
4705//
4706//    err := req.Send()
4707//    if err == nil { // resp is now filled
4708//        fmt.Println(resp)
4709//    }
4710func (c *IoT) DeleteDimensionRequest(input *DeleteDimensionInput) (req *request.Request, output *DeleteDimensionOutput) {
4711	op := &request.Operation{
4712		Name:       opDeleteDimension,
4713		HTTPMethod: "DELETE",
4714		HTTPPath:   "/dimensions/{name}",
4715	}
4716
4717	if input == nil {
4718		input = &DeleteDimensionInput{}
4719	}
4720
4721	output = &DeleteDimensionOutput{}
4722	req = c.newRequest(op, input, output)
4723	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4724	return
4725}
4726
4727// DeleteDimension API operation for AWS IoT.
4728//
4729// Removes the specified dimension from your AWS account.
4730//
4731// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4732// with awserr.Error's Code and Message methods to get detailed information about
4733// the error.
4734//
4735// See the AWS API reference guide for AWS IoT's
4736// API operation DeleteDimension for usage and error information.
4737//
4738// Returned Error Types:
4739//   * InternalFailureException
4740//   An unexpected error has occurred.
4741//
4742//   * InvalidRequestException
4743//   The request is not valid.
4744//
4745//   * ThrottlingException
4746//   The rate exceeds the limit.
4747//
4748func (c *IoT) DeleteDimension(input *DeleteDimensionInput) (*DeleteDimensionOutput, error) {
4749	req, out := c.DeleteDimensionRequest(input)
4750	return out, req.Send()
4751}
4752
4753// DeleteDimensionWithContext is the same as DeleteDimension with the addition of
4754// the ability to pass a context and additional request options.
4755//
4756// See DeleteDimension for details on how to use this API operation.
4757//
4758// The context must be non-nil and will be used for request cancellation. If
4759// the context is nil a panic will occur. In the future the SDK may create
4760// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4761// for more information on using Contexts.
4762func (c *IoT) DeleteDimensionWithContext(ctx aws.Context, input *DeleteDimensionInput, opts ...request.Option) (*DeleteDimensionOutput, error) {
4763	req, out := c.DeleteDimensionRequest(input)
4764	req.SetContext(ctx)
4765	req.ApplyOptions(opts...)
4766	return out, req.Send()
4767}
4768
4769const opDeleteDomainConfiguration = "DeleteDomainConfiguration"
4770
4771// DeleteDomainConfigurationRequest generates a "aws/request.Request" representing the
4772// client's request for the DeleteDomainConfiguration operation. The "output" return
4773// value will be populated with the request's response once the request completes
4774// successfully.
4775//
4776// Use "Send" method on the returned Request to send the API call to the service.
4777// the "output" return value is not valid until after Send returns without error.
4778//
4779// See DeleteDomainConfiguration for more information on using the DeleteDomainConfiguration
4780// API call, and error handling.
4781//
4782// This method is useful when you want to inject custom logic or configuration
4783// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4784//
4785//
4786//    // Example sending a request using the DeleteDomainConfigurationRequest method.
4787//    req, resp := client.DeleteDomainConfigurationRequest(params)
4788//
4789//    err := req.Send()
4790//    if err == nil { // resp is now filled
4791//        fmt.Println(resp)
4792//    }
4793func (c *IoT) DeleteDomainConfigurationRequest(input *DeleteDomainConfigurationInput) (req *request.Request, output *DeleteDomainConfigurationOutput) {
4794	op := &request.Operation{
4795		Name:       opDeleteDomainConfiguration,
4796		HTTPMethod: "DELETE",
4797		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
4798	}
4799
4800	if input == nil {
4801		input = &DeleteDomainConfigurationInput{}
4802	}
4803
4804	output = &DeleteDomainConfigurationOutput{}
4805	req = c.newRequest(op, input, output)
4806	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4807	return
4808}
4809
4810// DeleteDomainConfiguration API operation for AWS IoT.
4811//
4812// Deletes the specified domain configuration.
4813//
4814// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4815// with awserr.Error's Code and Message methods to get detailed information about
4816// the error.
4817//
4818// See the AWS API reference guide for AWS IoT's
4819// API operation DeleteDomainConfiguration for usage and error information.
4820//
4821// Returned Error Types:
4822//   * ResourceNotFoundException
4823//   The specified resource does not exist.
4824//
4825//   * ThrottlingException
4826//   The rate exceeds the limit.
4827//
4828//   * UnauthorizedException
4829//   You are not authorized to perform this operation.
4830//
4831//   * ServiceUnavailableException
4832//   The service is temporarily unavailable.
4833//
4834//   * InternalFailureException
4835//   An unexpected error has occurred.
4836//
4837//   * InvalidRequestException
4838//   The request is not valid.
4839//
4840func (c *IoT) DeleteDomainConfiguration(input *DeleteDomainConfigurationInput) (*DeleteDomainConfigurationOutput, error) {
4841	req, out := c.DeleteDomainConfigurationRequest(input)
4842	return out, req.Send()
4843}
4844
4845// DeleteDomainConfigurationWithContext is the same as DeleteDomainConfiguration with the addition of
4846// the ability to pass a context and additional request options.
4847//
4848// See DeleteDomainConfiguration for details on how to use this API operation.
4849//
4850// The context must be non-nil and will be used for request cancellation. If
4851// the context is nil a panic will occur. In the future the SDK may create
4852// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4853// for more information on using Contexts.
4854func (c *IoT) DeleteDomainConfigurationWithContext(ctx aws.Context, input *DeleteDomainConfigurationInput, opts ...request.Option) (*DeleteDomainConfigurationOutput, error) {
4855	req, out := c.DeleteDomainConfigurationRequest(input)
4856	req.SetContext(ctx)
4857	req.ApplyOptions(opts...)
4858	return out, req.Send()
4859}
4860
4861const opDeleteDynamicThingGroup = "DeleteDynamicThingGroup"
4862
4863// DeleteDynamicThingGroupRequest generates a "aws/request.Request" representing the
4864// client's request for the DeleteDynamicThingGroup operation. The "output" return
4865// value will be populated with the request's response once the request completes
4866// successfully.
4867//
4868// Use "Send" method on the returned Request to send the API call to the service.
4869// the "output" return value is not valid until after Send returns without error.
4870//
4871// See DeleteDynamicThingGroup for more information on using the DeleteDynamicThingGroup
4872// API call, and error handling.
4873//
4874// This method is useful when you want to inject custom logic or configuration
4875// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4876//
4877//
4878//    // Example sending a request using the DeleteDynamicThingGroupRequest method.
4879//    req, resp := client.DeleteDynamicThingGroupRequest(params)
4880//
4881//    err := req.Send()
4882//    if err == nil { // resp is now filled
4883//        fmt.Println(resp)
4884//    }
4885func (c *IoT) DeleteDynamicThingGroupRequest(input *DeleteDynamicThingGroupInput) (req *request.Request, output *DeleteDynamicThingGroupOutput) {
4886	op := &request.Operation{
4887		Name:       opDeleteDynamicThingGroup,
4888		HTTPMethod: "DELETE",
4889		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
4890	}
4891
4892	if input == nil {
4893		input = &DeleteDynamicThingGroupInput{}
4894	}
4895
4896	output = &DeleteDynamicThingGroupOutput{}
4897	req = c.newRequest(op, input, output)
4898	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4899	return
4900}
4901
4902// DeleteDynamicThingGroup API operation for AWS IoT.
4903//
4904// Deletes a dynamic thing group.
4905//
4906// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4907// with awserr.Error's Code and Message methods to get detailed information about
4908// the error.
4909//
4910// See the AWS API reference guide for AWS IoT's
4911// API operation DeleteDynamicThingGroup for usage and error information.
4912//
4913// Returned Error Types:
4914//   * InvalidRequestException
4915//   The request is not valid.
4916//
4917//   * VersionConflictException
4918//   An exception thrown when the version of an entity specified with the expectedVersion
4919//   parameter does not match the latest version in the system.
4920//
4921//   * ThrottlingException
4922//   The rate exceeds the limit.
4923//
4924//   * InternalFailureException
4925//   An unexpected error has occurred.
4926//
4927func (c *IoT) DeleteDynamicThingGroup(input *DeleteDynamicThingGroupInput) (*DeleteDynamicThingGroupOutput, error) {
4928	req, out := c.DeleteDynamicThingGroupRequest(input)
4929	return out, req.Send()
4930}
4931
4932// DeleteDynamicThingGroupWithContext is the same as DeleteDynamicThingGroup with the addition of
4933// the ability to pass a context and additional request options.
4934//
4935// See DeleteDynamicThingGroup for details on how to use this API operation.
4936//
4937// The context must be non-nil and will be used for request cancellation. If
4938// the context is nil a panic will occur. In the future the SDK may create
4939// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4940// for more information on using Contexts.
4941func (c *IoT) DeleteDynamicThingGroupWithContext(ctx aws.Context, input *DeleteDynamicThingGroupInput, opts ...request.Option) (*DeleteDynamicThingGroupOutput, error) {
4942	req, out := c.DeleteDynamicThingGroupRequest(input)
4943	req.SetContext(ctx)
4944	req.ApplyOptions(opts...)
4945	return out, req.Send()
4946}
4947
4948const opDeleteJob = "DeleteJob"
4949
4950// DeleteJobRequest generates a "aws/request.Request" representing the
4951// client's request for the DeleteJob operation. The "output" return
4952// value will be populated with the request's response once the request completes
4953// successfully.
4954//
4955// Use "Send" method on the returned Request to send the API call to the service.
4956// the "output" return value is not valid until after Send returns without error.
4957//
4958// See DeleteJob for more information on using the DeleteJob
4959// API call, and error handling.
4960//
4961// This method is useful when you want to inject custom logic or configuration
4962// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4963//
4964//
4965//    // Example sending a request using the DeleteJobRequest method.
4966//    req, resp := client.DeleteJobRequest(params)
4967//
4968//    err := req.Send()
4969//    if err == nil { // resp is now filled
4970//        fmt.Println(resp)
4971//    }
4972func (c *IoT) DeleteJobRequest(input *DeleteJobInput) (req *request.Request, output *DeleteJobOutput) {
4973	op := &request.Operation{
4974		Name:       opDeleteJob,
4975		HTTPMethod: "DELETE",
4976		HTTPPath:   "/jobs/{jobId}",
4977	}
4978
4979	if input == nil {
4980		input = &DeleteJobInput{}
4981	}
4982
4983	output = &DeleteJobOutput{}
4984	req = c.newRequest(op, input, output)
4985	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4986	return
4987}
4988
4989// DeleteJob API operation for AWS IoT.
4990//
4991// Deletes a job and its related job executions.
4992//
4993// Deleting a job may take time, depending on the number of job executions created
4994// for the job and various other factors. While the job is being deleted, the
4995// status of the job will be shown as "DELETION_IN_PROGRESS". Attempting to
4996// delete or cancel a job whose status is already "DELETION_IN_PROGRESS" will
4997// result in an error.
4998//
4999// Only 10 jobs may have status "DELETION_IN_PROGRESS" at the same time, or
5000// a LimitExceededException will occur.
5001//
5002// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5003// with awserr.Error's Code and Message methods to get detailed information about
5004// the error.
5005//
5006// See the AWS API reference guide for AWS IoT's
5007// API operation DeleteJob for usage and error information.
5008//
5009// Returned Error Types:
5010//   * InvalidRequestException
5011//   The request is not valid.
5012//
5013//   * InvalidStateTransitionException
5014//   An attempt was made to change to an invalid state, for example by deleting
5015//   a job or a job execution which is "IN_PROGRESS" without setting the force
5016//   parameter.
5017//
5018//   * ResourceNotFoundException
5019//   The specified resource does not exist.
5020//
5021//   * LimitExceededException
5022//   A limit has been exceeded.
5023//
5024//   * ThrottlingException
5025//   The rate exceeds the limit.
5026//
5027//   * ServiceUnavailableException
5028//   The service is temporarily unavailable.
5029//
5030func (c *IoT) DeleteJob(input *DeleteJobInput) (*DeleteJobOutput, error) {
5031	req, out := c.DeleteJobRequest(input)
5032	return out, req.Send()
5033}
5034
5035// DeleteJobWithContext is the same as DeleteJob with the addition of
5036// the ability to pass a context and additional request options.
5037//
5038// See DeleteJob for details on how to use this API operation.
5039//
5040// The context must be non-nil and will be used for request cancellation. If
5041// the context is nil a panic will occur. In the future the SDK may create
5042// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5043// for more information on using Contexts.
5044func (c *IoT) DeleteJobWithContext(ctx aws.Context, input *DeleteJobInput, opts ...request.Option) (*DeleteJobOutput, error) {
5045	req, out := c.DeleteJobRequest(input)
5046	req.SetContext(ctx)
5047	req.ApplyOptions(opts...)
5048	return out, req.Send()
5049}
5050
5051const opDeleteJobExecution = "DeleteJobExecution"
5052
5053// DeleteJobExecutionRequest generates a "aws/request.Request" representing the
5054// client's request for the DeleteJobExecution operation. The "output" return
5055// value will be populated with the request's response once the request completes
5056// successfully.
5057//
5058// Use "Send" method on the returned Request to send the API call to the service.
5059// the "output" return value is not valid until after Send returns without error.
5060//
5061// See DeleteJobExecution for more information on using the DeleteJobExecution
5062// API call, and error handling.
5063//
5064// This method is useful when you want to inject custom logic or configuration
5065// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5066//
5067//
5068//    // Example sending a request using the DeleteJobExecutionRequest method.
5069//    req, resp := client.DeleteJobExecutionRequest(params)
5070//
5071//    err := req.Send()
5072//    if err == nil { // resp is now filled
5073//        fmt.Println(resp)
5074//    }
5075func (c *IoT) DeleteJobExecutionRequest(input *DeleteJobExecutionInput) (req *request.Request, output *DeleteJobExecutionOutput) {
5076	op := &request.Operation{
5077		Name:       opDeleteJobExecution,
5078		HTTPMethod: "DELETE",
5079		HTTPPath:   "/things/{thingName}/jobs/{jobId}/executionNumber/{executionNumber}",
5080	}
5081
5082	if input == nil {
5083		input = &DeleteJobExecutionInput{}
5084	}
5085
5086	output = &DeleteJobExecutionOutput{}
5087	req = c.newRequest(op, input, output)
5088	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5089	return
5090}
5091
5092// DeleteJobExecution API operation for AWS IoT.
5093//
5094// Deletes a job execution.
5095//
5096// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5097// with awserr.Error's Code and Message methods to get detailed information about
5098// the error.
5099//
5100// See the AWS API reference guide for AWS IoT's
5101// API operation DeleteJobExecution for usage and error information.
5102//
5103// Returned Error Types:
5104//   * InvalidRequestException
5105//   The request is not valid.
5106//
5107//   * InvalidStateTransitionException
5108//   An attempt was made to change to an invalid state, for example by deleting
5109//   a job or a job execution which is "IN_PROGRESS" without setting the force
5110//   parameter.
5111//
5112//   * ResourceNotFoundException
5113//   The specified resource does not exist.
5114//
5115//   * ThrottlingException
5116//   The rate exceeds the limit.
5117//
5118//   * ServiceUnavailableException
5119//   The service is temporarily unavailable.
5120//
5121func (c *IoT) DeleteJobExecution(input *DeleteJobExecutionInput) (*DeleteJobExecutionOutput, error) {
5122	req, out := c.DeleteJobExecutionRequest(input)
5123	return out, req.Send()
5124}
5125
5126// DeleteJobExecutionWithContext is the same as DeleteJobExecution with the addition of
5127// the ability to pass a context and additional request options.
5128//
5129// See DeleteJobExecution for details on how to use this API operation.
5130//
5131// The context must be non-nil and will be used for request cancellation. If
5132// the context is nil a panic will occur. In the future the SDK may create
5133// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5134// for more information on using Contexts.
5135func (c *IoT) DeleteJobExecutionWithContext(ctx aws.Context, input *DeleteJobExecutionInput, opts ...request.Option) (*DeleteJobExecutionOutput, error) {
5136	req, out := c.DeleteJobExecutionRequest(input)
5137	req.SetContext(ctx)
5138	req.ApplyOptions(opts...)
5139	return out, req.Send()
5140}
5141
5142const opDeleteJobTemplate = "DeleteJobTemplate"
5143
5144// DeleteJobTemplateRequest generates a "aws/request.Request" representing the
5145// client's request for the DeleteJobTemplate operation. The "output" return
5146// value will be populated with the request's response once the request completes
5147// successfully.
5148//
5149// Use "Send" method on the returned Request to send the API call to the service.
5150// the "output" return value is not valid until after Send returns without error.
5151//
5152// See DeleteJobTemplate for more information on using the DeleteJobTemplate
5153// API call, and error handling.
5154//
5155// This method is useful when you want to inject custom logic or configuration
5156// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5157//
5158//
5159//    // Example sending a request using the DeleteJobTemplateRequest method.
5160//    req, resp := client.DeleteJobTemplateRequest(params)
5161//
5162//    err := req.Send()
5163//    if err == nil { // resp is now filled
5164//        fmt.Println(resp)
5165//    }
5166func (c *IoT) DeleteJobTemplateRequest(input *DeleteJobTemplateInput) (req *request.Request, output *DeleteJobTemplateOutput) {
5167	op := &request.Operation{
5168		Name:       opDeleteJobTemplate,
5169		HTTPMethod: "DELETE",
5170		HTTPPath:   "/job-templates/{jobTemplateId}",
5171	}
5172
5173	if input == nil {
5174		input = &DeleteJobTemplateInput{}
5175	}
5176
5177	output = &DeleteJobTemplateOutput{}
5178	req = c.newRequest(op, input, output)
5179	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5180	return
5181}
5182
5183// DeleteJobTemplate API operation for AWS IoT.
5184//
5185// Deletes the specified job template.
5186//
5187// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5188// with awserr.Error's Code and Message methods to get detailed information about
5189// the error.
5190//
5191// See the AWS API reference guide for AWS IoT's
5192// API operation DeleteJobTemplate for usage and error information.
5193//
5194// Returned Error Types:
5195//   * InvalidRequestException
5196//   The request is not valid.
5197//
5198//   * ResourceNotFoundException
5199//   The specified resource does not exist.
5200//
5201//   * ThrottlingException
5202//   The rate exceeds the limit.
5203//
5204//   * InternalFailureException
5205//   An unexpected error has occurred.
5206//
5207func (c *IoT) DeleteJobTemplate(input *DeleteJobTemplateInput) (*DeleteJobTemplateOutput, error) {
5208	req, out := c.DeleteJobTemplateRequest(input)
5209	return out, req.Send()
5210}
5211
5212// DeleteJobTemplateWithContext is the same as DeleteJobTemplate with the addition of
5213// the ability to pass a context and additional request options.
5214//
5215// See DeleteJobTemplate for details on how to use this API operation.
5216//
5217// The context must be non-nil and will be used for request cancellation. If
5218// the context is nil a panic will occur. In the future the SDK may create
5219// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5220// for more information on using Contexts.
5221func (c *IoT) DeleteJobTemplateWithContext(ctx aws.Context, input *DeleteJobTemplateInput, opts ...request.Option) (*DeleteJobTemplateOutput, error) {
5222	req, out := c.DeleteJobTemplateRequest(input)
5223	req.SetContext(ctx)
5224	req.ApplyOptions(opts...)
5225	return out, req.Send()
5226}
5227
5228const opDeleteMitigationAction = "DeleteMitigationAction"
5229
5230// DeleteMitigationActionRequest generates a "aws/request.Request" representing the
5231// client's request for the DeleteMitigationAction operation. The "output" return
5232// value will be populated with the request's response once the request completes
5233// successfully.
5234//
5235// Use "Send" method on the returned Request to send the API call to the service.
5236// the "output" return value is not valid until after Send returns without error.
5237//
5238// See DeleteMitigationAction for more information on using the DeleteMitigationAction
5239// API call, and error handling.
5240//
5241// This method is useful when you want to inject custom logic or configuration
5242// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5243//
5244//
5245//    // Example sending a request using the DeleteMitigationActionRequest method.
5246//    req, resp := client.DeleteMitigationActionRequest(params)
5247//
5248//    err := req.Send()
5249//    if err == nil { // resp is now filled
5250//        fmt.Println(resp)
5251//    }
5252func (c *IoT) DeleteMitigationActionRequest(input *DeleteMitigationActionInput) (req *request.Request, output *DeleteMitigationActionOutput) {
5253	op := &request.Operation{
5254		Name:       opDeleteMitigationAction,
5255		HTTPMethod: "DELETE",
5256		HTTPPath:   "/mitigationactions/actions/{actionName}",
5257	}
5258
5259	if input == nil {
5260		input = &DeleteMitigationActionInput{}
5261	}
5262
5263	output = &DeleteMitigationActionOutput{}
5264	req = c.newRequest(op, input, output)
5265	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5266	return
5267}
5268
5269// DeleteMitigationAction API operation for AWS IoT.
5270//
5271// Deletes a defined mitigation action from your AWS account.
5272//
5273// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5274// with awserr.Error's Code and Message methods to get detailed information about
5275// the error.
5276//
5277// See the AWS API reference guide for AWS IoT's
5278// API operation DeleteMitigationAction for usage and error information.
5279//
5280// Returned Error Types:
5281//   * InvalidRequestException
5282//   The request is not valid.
5283//
5284//   * ThrottlingException
5285//   The rate exceeds the limit.
5286//
5287//   * InternalFailureException
5288//   An unexpected error has occurred.
5289//
5290func (c *IoT) DeleteMitigationAction(input *DeleteMitigationActionInput) (*DeleteMitigationActionOutput, error) {
5291	req, out := c.DeleteMitigationActionRequest(input)
5292	return out, req.Send()
5293}
5294
5295// DeleteMitigationActionWithContext is the same as DeleteMitigationAction with the addition of
5296// the ability to pass a context and additional request options.
5297//
5298// See DeleteMitigationAction for details on how to use this API operation.
5299//
5300// The context must be non-nil and will be used for request cancellation. If
5301// the context is nil a panic will occur. In the future the SDK may create
5302// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5303// for more information on using Contexts.
5304func (c *IoT) DeleteMitigationActionWithContext(ctx aws.Context, input *DeleteMitigationActionInput, opts ...request.Option) (*DeleteMitigationActionOutput, error) {
5305	req, out := c.DeleteMitigationActionRequest(input)
5306	req.SetContext(ctx)
5307	req.ApplyOptions(opts...)
5308	return out, req.Send()
5309}
5310
5311const opDeleteOTAUpdate = "DeleteOTAUpdate"
5312
5313// DeleteOTAUpdateRequest generates a "aws/request.Request" representing the
5314// client's request for the DeleteOTAUpdate operation. The "output" return
5315// value will be populated with the request's response once the request completes
5316// successfully.
5317//
5318// Use "Send" method on the returned Request to send the API call to the service.
5319// the "output" return value is not valid until after Send returns without error.
5320//
5321// See DeleteOTAUpdate for more information on using the DeleteOTAUpdate
5322// API call, and error handling.
5323//
5324// This method is useful when you want to inject custom logic or configuration
5325// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5326//
5327//
5328//    // Example sending a request using the DeleteOTAUpdateRequest method.
5329//    req, resp := client.DeleteOTAUpdateRequest(params)
5330//
5331//    err := req.Send()
5332//    if err == nil { // resp is now filled
5333//        fmt.Println(resp)
5334//    }
5335func (c *IoT) DeleteOTAUpdateRequest(input *DeleteOTAUpdateInput) (req *request.Request, output *DeleteOTAUpdateOutput) {
5336	op := &request.Operation{
5337		Name:       opDeleteOTAUpdate,
5338		HTTPMethod: "DELETE",
5339		HTTPPath:   "/otaUpdates/{otaUpdateId}",
5340	}
5341
5342	if input == nil {
5343		input = &DeleteOTAUpdateInput{}
5344	}
5345
5346	output = &DeleteOTAUpdateOutput{}
5347	req = c.newRequest(op, input, output)
5348	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5349	return
5350}
5351
5352// DeleteOTAUpdate API operation for AWS IoT.
5353//
5354// Delete an OTA update.
5355//
5356// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5357// with awserr.Error's Code and Message methods to get detailed information about
5358// the error.
5359//
5360// See the AWS API reference guide for AWS IoT's
5361// API operation DeleteOTAUpdate for usage and error information.
5362//
5363// Returned Error Types:
5364//   * InvalidRequestException
5365//   The request is not valid.
5366//
5367//   * ResourceNotFoundException
5368//   The specified resource does not exist.
5369//
5370//   * ThrottlingException
5371//   The rate exceeds the limit.
5372//
5373//   * UnauthorizedException
5374//   You are not authorized to perform this operation.
5375//
5376//   * InternalFailureException
5377//   An unexpected error has occurred.
5378//
5379//   * ServiceUnavailableException
5380//   The service is temporarily unavailable.
5381//
5382//   * VersionConflictException
5383//   An exception thrown when the version of an entity specified with the expectedVersion
5384//   parameter does not match the latest version in the system.
5385//
5386func (c *IoT) DeleteOTAUpdate(input *DeleteOTAUpdateInput) (*DeleteOTAUpdateOutput, error) {
5387	req, out := c.DeleteOTAUpdateRequest(input)
5388	return out, req.Send()
5389}
5390
5391// DeleteOTAUpdateWithContext is the same as DeleteOTAUpdate with the addition of
5392// the ability to pass a context and additional request options.
5393//
5394// See DeleteOTAUpdate for details on how to use this API operation.
5395//
5396// The context must be non-nil and will be used for request cancellation. If
5397// the context is nil a panic will occur. In the future the SDK may create
5398// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5399// for more information on using Contexts.
5400func (c *IoT) DeleteOTAUpdateWithContext(ctx aws.Context, input *DeleteOTAUpdateInput, opts ...request.Option) (*DeleteOTAUpdateOutput, error) {
5401	req, out := c.DeleteOTAUpdateRequest(input)
5402	req.SetContext(ctx)
5403	req.ApplyOptions(opts...)
5404	return out, req.Send()
5405}
5406
5407const opDeletePolicy = "DeletePolicy"
5408
5409// DeletePolicyRequest generates a "aws/request.Request" representing the
5410// client's request for the DeletePolicy operation. The "output" return
5411// value will be populated with the request's response once the request completes
5412// successfully.
5413//
5414// Use "Send" method on the returned Request to send the API call to the service.
5415// the "output" return value is not valid until after Send returns without error.
5416//
5417// See DeletePolicy for more information on using the DeletePolicy
5418// API call, and error handling.
5419//
5420// This method is useful when you want to inject custom logic or configuration
5421// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5422//
5423//
5424//    // Example sending a request using the DeletePolicyRequest method.
5425//    req, resp := client.DeletePolicyRequest(params)
5426//
5427//    err := req.Send()
5428//    if err == nil { // resp is now filled
5429//        fmt.Println(resp)
5430//    }
5431func (c *IoT) DeletePolicyRequest(input *DeletePolicyInput) (req *request.Request, output *DeletePolicyOutput) {
5432	op := &request.Operation{
5433		Name:       opDeletePolicy,
5434		HTTPMethod: "DELETE",
5435		HTTPPath:   "/policies/{policyName}",
5436	}
5437
5438	if input == nil {
5439		input = &DeletePolicyInput{}
5440	}
5441
5442	output = &DeletePolicyOutput{}
5443	req = c.newRequest(op, input, output)
5444	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5445	return
5446}
5447
5448// DeletePolicy API operation for AWS IoT.
5449//
5450// Deletes the specified policy.
5451//
5452// A policy cannot be deleted if it has non-default versions or it is attached
5453// to any certificate.
5454//
5455// To delete a policy, use the DeletePolicyVersion API to delete all non-default
5456// versions of the policy; use the DetachPrincipalPolicy API to detach the policy
5457// from any certificate; and then use the DeletePolicy API to delete the policy.
5458//
5459// When a policy is deleted using DeletePolicy, its default version is deleted
5460// with it.
5461//
5462// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5463// with awserr.Error's Code and Message methods to get detailed information about
5464// the error.
5465//
5466// See the AWS API reference guide for AWS IoT's
5467// API operation DeletePolicy for usage and error information.
5468//
5469// Returned Error Types:
5470//   * DeleteConflictException
5471//   You can't delete the resource because it is attached to one or more resources.
5472//
5473//   * ResourceNotFoundException
5474//   The specified resource does not exist.
5475//
5476//   * InvalidRequestException
5477//   The request is not valid.
5478//
5479//   * ThrottlingException
5480//   The rate exceeds the limit.
5481//
5482//   * UnauthorizedException
5483//   You are not authorized to perform this operation.
5484//
5485//   * ServiceUnavailableException
5486//   The service is temporarily unavailable.
5487//
5488//   * InternalFailureException
5489//   An unexpected error has occurred.
5490//
5491func (c *IoT) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
5492	req, out := c.DeletePolicyRequest(input)
5493	return out, req.Send()
5494}
5495
5496// DeletePolicyWithContext is the same as DeletePolicy with the addition of
5497// the ability to pass a context and additional request options.
5498//
5499// See DeletePolicy for details on how to use this API operation.
5500//
5501// The context must be non-nil and will be used for request cancellation. If
5502// the context is nil a panic will occur. In the future the SDK may create
5503// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5504// for more information on using Contexts.
5505func (c *IoT) DeletePolicyWithContext(ctx aws.Context, input *DeletePolicyInput, opts ...request.Option) (*DeletePolicyOutput, error) {
5506	req, out := c.DeletePolicyRequest(input)
5507	req.SetContext(ctx)
5508	req.ApplyOptions(opts...)
5509	return out, req.Send()
5510}
5511
5512const opDeletePolicyVersion = "DeletePolicyVersion"
5513
5514// DeletePolicyVersionRequest generates a "aws/request.Request" representing the
5515// client's request for the DeletePolicyVersion operation. The "output" return
5516// value will be populated with the request's response once the request completes
5517// successfully.
5518//
5519// Use "Send" method on the returned Request to send the API call to the service.
5520// the "output" return value is not valid until after Send returns without error.
5521//
5522// See DeletePolicyVersion for more information on using the DeletePolicyVersion
5523// API call, and error handling.
5524//
5525// This method is useful when you want to inject custom logic or configuration
5526// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5527//
5528//
5529//    // Example sending a request using the DeletePolicyVersionRequest method.
5530//    req, resp := client.DeletePolicyVersionRequest(params)
5531//
5532//    err := req.Send()
5533//    if err == nil { // resp is now filled
5534//        fmt.Println(resp)
5535//    }
5536func (c *IoT) DeletePolicyVersionRequest(input *DeletePolicyVersionInput) (req *request.Request, output *DeletePolicyVersionOutput) {
5537	op := &request.Operation{
5538		Name:       opDeletePolicyVersion,
5539		HTTPMethod: "DELETE",
5540		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
5541	}
5542
5543	if input == nil {
5544		input = &DeletePolicyVersionInput{}
5545	}
5546
5547	output = &DeletePolicyVersionOutput{}
5548	req = c.newRequest(op, input, output)
5549	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5550	return
5551}
5552
5553// DeletePolicyVersion API operation for AWS IoT.
5554//
5555// Deletes the specified version of the specified policy. You cannot delete
5556// the default version of a policy using this API. To delete the default version
5557// of a policy, use DeletePolicy. To find out which version of a policy is marked
5558// as the default version, use ListPolicyVersions.
5559//
5560// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5561// with awserr.Error's Code and Message methods to get detailed information about
5562// the error.
5563//
5564// See the AWS API reference guide for AWS IoT's
5565// API operation DeletePolicyVersion for usage and error information.
5566//
5567// Returned Error Types:
5568//   * DeleteConflictException
5569//   You can't delete the resource because it is attached to one or more resources.
5570//
5571//   * ResourceNotFoundException
5572//   The specified resource does not exist.
5573//
5574//   * InvalidRequestException
5575//   The request is not valid.
5576//
5577//   * ThrottlingException
5578//   The rate exceeds the limit.
5579//
5580//   * UnauthorizedException
5581//   You are not authorized to perform this operation.
5582//
5583//   * ServiceUnavailableException
5584//   The service is temporarily unavailable.
5585//
5586//   * InternalFailureException
5587//   An unexpected error has occurred.
5588//
5589func (c *IoT) DeletePolicyVersion(input *DeletePolicyVersionInput) (*DeletePolicyVersionOutput, error) {
5590	req, out := c.DeletePolicyVersionRequest(input)
5591	return out, req.Send()
5592}
5593
5594// DeletePolicyVersionWithContext is the same as DeletePolicyVersion with the addition of
5595// the ability to pass a context and additional request options.
5596//
5597// See DeletePolicyVersion for details on how to use this API operation.
5598//
5599// The context must be non-nil and will be used for request cancellation. If
5600// the context is nil a panic will occur. In the future the SDK may create
5601// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5602// for more information on using Contexts.
5603func (c *IoT) DeletePolicyVersionWithContext(ctx aws.Context, input *DeletePolicyVersionInput, opts ...request.Option) (*DeletePolicyVersionOutput, error) {
5604	req, out := c.DeletePolicyVersionRequest(input)
5605	req.SetContext(ctx)
5606	req.ApplyOptions(opts...)
5607	return out, req.Send()
5608}
5609
5610const opDeleteProvisioningTemplate = "DeleteProvisioningTemplate"
5611
5612// DeleteProvisioningTemplateRequest generates a "aws/request.Request" representing the
5613// client's request for the DeleteProvisioningTemplate operation. The "output" return
5614// value will be populated with the request's response once the request completes
5615// successfully.
5616//
5617// Use "Send" method on the returned Request to send the API call to the service.
5618// the "output" return value is not valid until after Send returns without error.
5619//
5620// See DeleteProvisioningTemplate for more information on using the DeleteProvisioningTemplate
5621// API call, and error handling.
5622//
5623// This method is useful when you want to inject custom logic or configuration
5624// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5625//
5626//
5627//    // Example sending a request using the DeleteProvisioningTemplateRequest method.
5628//    req, resp := client.DeleteProvisioningTemplateRequest(params)
5629//
5630//    err := req.Send()
5631//    if err == nil { // resp is now filled
5632//        fmt.Println(resp)
5633//    }
5634func (c *IoT) DeleteProvisioningTemplateRequest(input *DeleteProvisioningTemplateInput) (req *request.Request, output *DeleteProvisioningTemplateOutput) {
5635	op := &request.Operation{
5636		Name:       opDeleteProvisioningTemplate,
5637		HTTPMethod: "DELETE",
5638		HTTPPath:   "/provisioning-templates/{templateName}",
5639	}
5640
5641	if input == nil {
5642		input = &DeleteProvisioningTemplateInput{}
5643	}
5644
5645	output = &DeleteProvisioningTemplateOutput{}
5646	req = c.newRequest(op, input, output)
5647	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5648	return
5649}
5650
5651// DeleteProvisioningTemplate API operation for AWS IoT.
5652//
5653// Deletes a fleet provisioning template.
5654//
5655// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5656// with awserr.Error's Code and Message methods to get detailed information about
5657// the error.
5658//
5659// See the AWS API reference guide for AWS IoT's
5660// API operation DeleteProvisioningTemplate for usage and error information.
5661//
5662// Returned Error Types:
5663//   * InternalFailureException
5664//   An unexpected error has occurred.
5665//
5666//   * InvalidRequestException
5667//   The request is not valid.
5668//
5669//   * ResourceNotFoundException
5670//   The specified resource does not exist.
5671//
5672//   * DeleteConflictException
5673//   You can't delete the resource because it is attached to one or more resources.
5674//
5675//   * ThrottlingException
5676//   The rate exceeds the limit.
5677//
5678//   * ConflictingResourceUpdateException
5679//   A conflicting resource update exception. This exception is thrown when two
5680//   pending updates cause a conflict.
5681//
5682//   * UnauthorizedException
5683//   You are not authorized to perform this operation.
5684//
5685func (c *IoT) DeleteProvisioningTemplate(input *DeleteProvisioningTemplateInput) (*DeleteProvisioningTemplateOutput, error) {
5686	req, out := c.DeleteProvisioningTemplateRequest(input)
5687	return out, req.Send()
5688}
5689
5690// DeleteProvisioningTemplateWithContext is the same as DeleteProvisioningTemplate with the addition of
5691// the ability to pass a context and additional request options.
5692//
5693// See DeleteProvisioningTemplate for details on how to use this API operation.
5694//
5695// The context must be non-nil and will be used for request cancellation. If
5696// the context is nil a panic will occur. In the future the SDK may create
5697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5698// for more information on using Contexts.
5699func (c *IoT) DeleteProvisioningTemplateWithContext(ctx aws.Context, input *DeleteProvisioningTemplateInput, opts ...request.Option) (*DeleteProvisioningTemplateOutput, error) {
5700	req, out := c.DeleteProvisioningTemplateRequest(input)
5701	req.SetContext(ctx)
5702	req.ApplyOptions(opts...)
5703	return out, req.Send()
5704}
5705
5706const opDeleteProvisioningTemplateVersion = "DeleteProvisioningTemplateVersion"
5707
5708// DeleteProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
5709// client's request for the DeleteProvisioningTemplateVersion operation. The "output" return
5710// value will be populated with the request's response once the request completes
5711// successfully.
5712//
5713// Use "Send" method on the returned Request to send the API call to the service.
5714// the "output" return value is not valid until after Send returns without error.
5715//
5716// See DeleteProvisioningTemplateVersion for more information on using the DeleteProvisioningTemplateVersion
5717// API call, and error handling.
5718//
5719// This method is useful when you want to inject custom logic or configuration
5720// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5721//
5722//
5723//    // Example sending a request using the DeleteProvisioningTemplateVersionRequest method.
5724//    req, resp := client.DeleteProvisioningTemplateVersionRequest(params)
5725//
5726//    err := req.Send()
5727//    if err == nil { // resp is now filled
5728//        fmt.Println(resp)
5729//    }
5730func (c *IoT) DeleteProvisioningTemplateVersionRequest(input *DeleteProvisioningTemplateVersionInput) (req *request.Request, output *DeleteProvisioningTemplateVersionOutput) {
5731	op := &request.Operation{
5732		Name:       opDeleteProvisioningTemplateVersion,
5733		HTTPMethod: "DELETE",
5734		HTTPPath:   "/provisioning-templates/{templateName}/versions/{versionId}",
5735	}
5736
5737	if input == nil {
5738		input = &DeleteProvisioningTemplateVersionInput{}
5739	}
5740
5741	output = &DeleteProvisioningTemplateVersionOutput{}
5742	req = c.newRequest(op, input, output)
5743	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5744	return
5745}
5746
5747// DeleteProvisioningTemplateVersion API operation for AWS IoT.
5748//
5749// Deletes a fleet provisioning template version.
5750//
5751// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5752// with awserr.Error's Code and Message methods to get detailed information about
5753// the error.
5754//
5755// See the AWS API reference guide for AWS IoT's
5756// API operation DeleteProvisioningTemplateVersion for usage and error information.
5757//
5758// Returned Error Types:
5759//   * InternalFailureException
5760//   An unexpected error has occurred.
5761//
5762//   * InvalidRequestException
5763//   The request is not valid.
5764//
5765//   * ThrottlingException
5766//   The rate exceeds the limit.
5767//
5768//   * ResourceNotFoundException
5769//   The specified resource does not exist.
5770//
5771//   * UnauthorizedException
5772//   You are not authorized to perform this operation.
5773//
5774//   * ConflictingResourceUpdateException
5775//   A conflicting resource update exception. This exception is thrown when two
5776//   pending updates cause a conflict.
5777//
5778//   * DeleteConflictException
5779//   You can't delete the resource because it is attached to one or more resources.
5780//
5781func (c *IoT) DeleteProvisioningTemplateVersion(input *DeleteProvisioningTemplateVersionInput) (*DeleteProvisioningTemplateVersionOutput, error) {
5782	req, out := c.DeleteProvisioningTemplateVersionRequest(input)
5783	return out, req.Send()
5784}
5785
5786// DeleteProvisioningTemplateVersionWithContext is the same as DeleteProvisioningTemplateVersion with the addition of
5787// the ability to pass a context and additional request options.
5788//
5789// See DeleteProvisioningTemplateVersion for details on how to use this API operation.
5790//
5791// The context must be non-nil and will be used for request cancellation. If
5792// the context is nil a panic will occur. In the future the SDK may create
5793// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5794// for more information on using Contexts.
5795func (c *IoT) DeleteProvisioningTemplateVersionWithContext(ctx aws.Context, input *DeleteProvisioningTemplateVersionInput, opts ...request.Option) (*DeleteProvisioningTemplateVersionOutput, error) {
5796	req, out := c.DeleteProvisioningTemplateVersionRequest(input)
5797	req.SetContext(ctx)
5798	req.ApplyOptions(opts...)
5799	return out, req.Send()
5800}
5801
5802const opDeleteRegistrationCode = "DeleteRegistrationCode"
5803
5804// DeleteRegistrationCodeRequest generates a "aws/request.Request" representing the
5805// client's request for the DeleteRegistrationCode operation. The "output" return
5806// value will be populated with the request's response once the request completes
5807// successfully.
5808//
5809// Use "Send" method on the returned Request to send the API call to the service.
5810// the "output" return value is not valid until after Send returns without error.
5811//
5812// See DeleteRegistrationCode for more information on using the DeleteRegistrationCode
5813// API call, and error handling.
5814//
5815// This method is useful when you want to inject custom logic or configuration
5816// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5817//
5818//
5819//    // Example sending a request using the DeleteRegistrationCodeRequest method.
5820//    req, resp := client.DeleteRegistrationCodeRequest(params)
5821//
5822//    err := req.Send()
5823//    if err == nil { // resp is now filled
5824//        fmt.Println(resp)
5825//    }
5826func (c *IoT) DeleteRegistrationCodeRequest(input *DeleteRegistrationCodeInput) (req *request.Request, output *DeleteRegistrationCodeOutput) {
5827	op := &request.Operation{
5828		Name:       opDeleteRegistrationCode,
5829		HTTPMethod: "DELETE",
5830		HTTPPath:   "/registrationcode",
5831	}
5832
5833	if input == nil {
5834		input = &DeleteRegistrationCodeInput{}
5835	}
5836
5837	output = &DeleteRegistrationCodeOutput{}
5838	req = c.newRequest(op, input, output)
5839	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5840	return
5841}
5842
5843// DeleteRegistrationCode API operation for AWS IoT.
5844//
5845// Deletes a CA certificate registration code.
5846//
5847// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5848// with awserr.Error's Code and Message methods to get detailed information about
5849// the error.
5850//
5851// See the AWS API reference guide for AWS IoT's
5852// API operation DeleteRegistrationCode for usage and error information.
5853//
5854// Returned Error Types:
5855//   * ThrottlingException
5856//   The rate exceeds the limit.
5857//
5858//   * ResourceNotFoundException
5859//   The specified resource does not exist.
5860//
5861//   * UnauthorizedException
5862//   You are not authorized to perform this operation.
5863//
5864//   * ServiceUnavailableException
5865//   The service is temporarily unavailable.
5866//
5867//   * InternalFailureException
5868//   An unexpected error has occurred.
5869//
5870func (c *IoT) DeleteRegistrationCode(input *DeleteRegistrationCodeInput) (*DeleteRegistrationCodeOutput, error) {
5871	req, out := c.DeleteRegistrationCodeRequest(input)
5872	return out, req.Send()
5873}
5874
5875// DeleteRegistrationCodeWithContext is the same as DeleteRegistrationCode with the addition of
5876// the ability to pass a context and additional request options.
5877//
5878// See DeleteRegistrationCode for details on how to use this API operation.
5879//
5880// The context must be non-nil and will be used for request cancellation. If
5881// the context is nil a panic will occur. In the future the SDK may create
5882// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5883// for more information on using Contexts.
5884func (c *IoT) DeleteRegistrationCodeWithContext(ctx aws.Context, input *DeleteRegistrationCodeInput, opts ...request.Option) (*DeleteRegistrationCodeOutput, error) {
5885	req, out := c.DeleteRegistrationCodeRequest(input)
5886	req.SetContext(ctx)
5887	req.ApplyOptions(opts...)
5888	return out, req.Send()
5889}
5890
5891const opDeleteRoleAlias = "DeleteRoleAlias"
5892
5893// DeleteRoleAliasRequest generates a "aws/request.Request" representing the
5894// client's request for the DeleteRoleAlias operation. The "output" return
5895// value will be populated with the request's response once the request completes
5896// successfully.
5897//
5898// Use "Send" method on the returned Request to send the API call to the service.
5899// the "output" return value is not valid until after Send returns without error.
5900//
5901// See DeleteRoleAlias for more information on using the DeleteRoleAlias
5902// API call, and error handling.
5903//
5904// This method is useful when you want to inject custom logic or configuration
5905// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5906//
5907//
5908//    // Example sending a request using the DeleteRoleAliasRequest method.
5909//    req, resp := client.DeleteRoleAliasRequest(params)
5910//
5911//    err := req.Send()
5912//    if err == nil { // resp is now filled
5913//        fmt.Println(resp)
5914//    }
5915func (c *IoT) DeleteRoleAliasRequest(input *DeleteRoleAliasInput) (req *request.Request, output *DeleteRoleAliasOutput) {
5916	op := &request.Operation{
5917		Name:       opDeleteRoleAlias,
5918		HTTPMethod: "DELETE",
5919		HTTPPath:   "/role-aliases/{roleAlias}",
5920	}
5921
5922	if input == nil {
5923		input = &DeleteRoleAliasInput{}
5924	}
5925
5926	output = &DeleteRoleAliasOutput{}
5927	req = c.newRequest(op, input, output)
5928	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5929	return
5930}
5931
5932// DeleteRoleAlias API operation for AWS IoT.
5933//
5934// Deletes a role alias
5935//
5936// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5937// with awserr.Error's Code and Message methods to get detailed information about
5938// the error.
5939//
5940// See the AWS API reference guide for AWS IoT's
5941// API operation DeleteRoleAlias for usage and error information.
5942//
5943// Returned Error Types:
5944//   * DeleteConflictException
5945//   You can't delete the resource because it is attached to one or more resources.
5946//
5947//   * InvalidRequestException
5948//   The request is not valid.
5949//
5950//   * ThrottlingException
5951//   The rate exceeds the limit.
5952//
5953//   * UnauthorizedException
5954//   You are not authorized to perform this operation.
5955//
5956//   * ServiceUnavailableException
5957//   The service is temporarily unavailable.
5958//
5959//   * InternalFailureException
5960//   An unexpected error has occurred.
5961//
5962//   * ResourceNotFoundException
5963//   The specified resource does not exist.
5964//
5965func (c *IoT) DeleteRoleAlias(input *DeleteRoleAliasInput) (*DeleteRoleAliasOutput, error) {
5966	req, out := c.DeleteRoleAliasRequest(input)
5967	return out, req.Send()
5968}
5969
5970// DeleteRoleAliasWithContext is the same as DeleteRoleAlias with the addition of
5971// the ability to pass a context and additional request options.
5972//
5973// See DeleteRoleAlias for details on how to use this API operation.
5974//
5975// The context must be non-nil and will be used for request cancellation. If
5976// the context is nil a panic will occur. In the future the SDK may create
5977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5978// for more information on using Contexts.
5979func (c *IoT) DeleteRoleAliasWithContext(ctx aws.Context, input *DeleteRoleAliasInput, opts ...request.Option) (*DeleteRoleAliasOutput, error) {
5980	req, out := c.DeleteRoleAliasRequest(input)
5981	req.SetContext(ctx)
5982	req.ApplyOptions(opts...)
5983	return out, req.Send()
5984}
5985
5986const opDeleteScheduledAudit = "DeleteScheduledAudit"
5987
5988// DeleteScheduledAuditRequest generates a "aws/request.Request" representing the
5989// client's request for the DeleteScheduledAudit operation. The "output" return
5990// value will be populated with the request's response once the request completes
5991// successfully.
5992//
5993// Use "Send" method on the returned Request to send the API call to the service.
5994// the "output" return value is not valid until after Send returns without error.
5995//
5996// See DeleteScheduledAudit for more information on using the DeleteScheduledAudit
5997// API call, and error handling.
5998//
5999// This method is useful when you want to inject custom logic or configuration
6000// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6001//
6002//
6003//    // Example sending a request using the DeleteScheduledAuditRequest method.
6004//    req, resp := client.DeleteScheduledAuditRequest(params)
6005//
6006//    err := req.Send()
6007//    if err == nil { // resp is now filled
6008//        fmt.Println(resp)
6009//    }
6010func (c *IoT) DeleteScheduledAuditRequest(input *DeleteScheduledAuditInput) (req *request.Request, output *DeleteScheduledAuditOutput) {
6011	op := &request.Operation{
6012		Name:       opDeleteScheduledAudit,
6013		HTTPMethod: "DELETE",
6014		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
6015	}
6016
6017	if input == nil {
6018		input = &DeleteScheduledAuditInput{}
6019	}
6020
6021	output = &DeleteScheduledAuditOutput{}
6022	req = c.newRequest(op, input, output)
6023	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6024	return
6025}
6026
6027// DeleteScheduledAudit API operation for AWS IoT.
6028//
6029// Deletes a scheduled audit.
6030//
6031// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6032// with awserr.Error's Code and Message methods to get detailed information about
6033// the error.
6034//
6035// See the AWS API reference guide for AWS IoT's
6036// API operation DeleteScheduledAudit for usage and error information.
6037//
6038// Returned Error Types:
6039//   * InvalidRequestException
6040//   The request is not valid.
6041//
6042//   * ResourceNotFoundException
6043//   The specified resource does not exist.
6044//
6045//   * ThrottlingException
6046//   The rate exceeds the limit.
6047//
6048//   * InternalFailureException
6049//   An unexpected error has occurred.
6050//
6051func (c *IoT) DeleteScheduledAudit(input *DeleteScheduledAuditInput) (*DeleteScheduledAuditOutput, error) {
6052	req, out := c.DeleteScheduledAuditRequest(input)
6053	return out, req.Send()
6054}
6055
6056// DeleteScheduledAuditWithContext is the same as DeleteScheduledAudit with the addition of
6057// the ability to pass a context and additional request options.
6058//
6059// See DeleteScheduledAudit for details on how to use this API operation.
6060//
6061// The context must be non-nil and will be used for request cancellation. If
6062// the context is nil a panic will occur. In the future the SDK may create
6063// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6064// for more information on using Contexts.
6065func (c *IoT) DeleteScheduledAuditWithContext(ctx aws.Context, input *DeleteScheduledAuditInput, opts ...request.Option) (*DeleteScheduledAuditOutput, error) {
6066	req, out := c.DeleteScheduledAuditRequest(input)
6067	req.SetContext(ctx)
6068	req.ApplyOptions(opts...)
6069	return out, req.Send()
6070}
6071
6072const opDeleteSecurityProfile = "DeleteSecurityProfile"
6073
6074// DeleteSecurityProfileRequest generates a "aws/request.Request" representing the
6075// client's request for the DeleteSecurityProfile operation. The "output" return
6076// value will be populated with the request's response once the request completes
6077// successfully.
6078//
6079// Use "Send" method on the returned Request to send the API call to the service.
6080// the "output" return value is not valid until after Send returns without error.
6081//
6082// See DeleteSecurityProfile for more information on using the DeleteSecurityProfile
6083// API call, and error handling.
6084//
6085// This method is useful when you want to inject custom logic or configuration
6086// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6087//
6088//
6089//    // Example sending a request using the DeleteSecurityProfileRequest method.
6090//    req, resp := client.DeleteSecurityProfileRequest(params)
6091//
6092//    err := req.Send()
6093//    if err == nil { // resp is now filled
6094//        fmt.Println(resp)
6095//    }
6096func (c *IoT) DeleteSecurityProfileRequest(input *DeleteSecurityProfileInput) (req *request.Request, output *DeleteSecurityProfileOutput) {
6097	op := &request.Operation{
6098		Name:       opDeleteSecurityProfile,
6099		HTTPMethod: "DELETE",
6100		HTTPPath:   "/security-profiles/{securityProfileName}",
6101	}
6102
6103	if input == nil {
6104		input = &DeleteSecurityProfileInput{}
6105	}
6106
6107	output = &DeleteSecurityProfileOutput{}
6108	req = c.newRequest(op, input, output)
6109	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6110	return
6111}
6112
6113// DeleteSecurityProfile API operation for AWS IoT.
6114//
6115// Deletes a Device Defender security profile.
6116//
6117// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6118// with awserr.Error's Code and Message methods to get detailed information about
6119// the error.
6120//
6121// See the AWS API reference guide for AWS IoT's
6122// API operation DeleteSecurityProfile for usage and error information.
6123//
6124// Returned Error Types:
6125//   * InvalidRequestException
6126//   The request is not valid.
6127//
6128//   * ThrottlingException
6129//   The rate exceeds the limit.
6130//
6131//   * InternalFailureException
6132//   An unexpected error has occurred.
6133//
6134//   * VersionConflictException
6135//   An exception thrown when the version of an entity specified with the expectedVersion
6136//   parameter does not match the latest version in the system.
6137//
6138func (c *IoT) DeleteSecurityProfile(input *DeleteSecurityProfileInput) (*DeleteSecurityProfileOutput, error) {
6139	req, out := c.DeleteSecurityProfileRequest(input)
6140	return out, req.Send()
6141}
6142
6143// DeleteSecurityProfileWithContext is the same as DeleteSecurityProfile with the addition of
6144// the ability to pass a context and additional request options.
6145//
6146// See DeleteSecurityProfile for details on how to use this API operation.
6147//
6148// The context must be non-nil and will be used for request cancellation. If
6149// the context is nil a panic will occur. In the future the SDK may create
6150// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6151// for more information on using Contexts.
6152func (c *IoT) DeleteSecurityProfileWithContext(ctx aws.Context, input *DeleteSecurityProfileInput, opts ...request.Option) (*DeleteSecurityProfileOutput, error) {
6153	req, out := c.DeleteSecurityProfileRequest(input)
6154	req.SetContext(ctx)
6155	req.ApplyOptions(opts...)
6156	return out, req.Send()
6157}
6158
6159const opDeleteStream = "DeleteStream"
6160
6161// DeleteStreamRequest generates a "aws/request.Request" representing the
6162// client's request for the DeleteStream operation. The "output" return
6163// value will be populated with the request's response once the request completes
6164// successfully.
6165//
6166// Use "Send" method on the returned Request to send the API call to the service.
6167// the "output" return value is not valid until after Send returns without error.
6168//
6169// See DeleteStream for more information on using the DeleteStream
6170// API call, and error handling.
6171//
6172// This method is useful when you want to inject custom logic or configuration
6173// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6174//
6175//
6176//    // Example sending a request using the DeleteStreamRequest method.
6177//    req, resp := client.DeleteStreamRequest(params)
6178//
6179//    err := req.Send()
6180//    if err == nil { // resp is now filled
6181//        fmt.Println(resp)
6182//    }
6183func (c *IoT) DeleteStreamRequest(input *DeleteStreamInput) (req *request.Request, output *DeleteStreamOutput) {
6184	op := &request.Operation{
6185		Name:       opDeleteStream,
6186		HTTPMethod: "DELETE",
6187		HTTPPath:   "/streams/{streamId}",
6188	}
6189
6190	if input == nil {
6191		input = &DeleteStreamInput{}
6192	}
6193
6194	output = &DeleteStreamOutput{}
6195	req = c.newRequest(op, input, output)
6196	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6197	return
6198}
6199
6200// DeleteStream API operation for AWS IoT.
6201//
6202// Deletes a stream.
6203//
6204// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6205// with awserr.Error's Code and Message methods to get detailed information about
6206// the error.
6207//
6208// See the AWS API reference guide for AWS IoT's
6209// API operation DeleteStream for usage and error information.
6210//
6211// Returned Error Types:
6212//   * ResourceNotFoundException
6213//   The specified resource does not exist.
6214//
6215//   * DeleteConflictException
6216//   You can't delete the resource because it is attached to one or more resources.
6217//
6218//   * InvalidRequestException
6219//   The request is not valid.
6220//
6221//   * ThrottlingException
6222//   The rate exceeds the limit.
6223//
6224//   * UnauthorizedException
6225//   You are not authorized to perform this operation.
6226//
6227//   * ServiceUnavailableException
6228//   The service is temporarily unavailable.
6229//
6230//   * InternalFailureException
6231//   An unexpected error has occurred.
6232//
6233func (c *IoT) DeleteStream(input *DeleteStreamInput) (*DeleteStreamOutput, error) {
6234	req, out := c.DeleteStreamRequest(input)
6235	return out, req.Send()
6236}
6237
6238// DeleteStreamWithContext is the same as DeleteStream with the addition of
6239// the ability to pass a context and additional request options.
6240//
6241// See DeleteStream for details on how to use this API operation.
6242//
6243// The context must be non-nil and will be used for request cancellation. If
6244// the context is nil a panic will occur. In the future the SDK may create
6245// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6246// for more information on using Contexts.
6247func (c *IoT) DeleteStreamWithContext(ctx aws.Context, input *DeleteStreamInput, opts ...request.Option) (*DeleteStreamOutput, error) {
6248	req, out := c.DeleteStreamRequest(input)
6249	req.SetContext(ctx)
6250	req.ApplyOptions(opts...)
6251	return out, req.Send()
6252}
6253
6254const opDeleteThing = "DeleteThing"
6255
6256// DeleteThingRequest generates a "aws/request.Request" representing the
6257// client's request for the DeleteThing operation. The "output" return
6258// value will be populated with the request's response once the request completes
6259// successfully.
6260//
6261// Use "Send" method on the returned Request to send the API call to the service.
6262// the "output" return value is not valid until after Send returns without error.
6263//
6264// See DeleteThing for more information on using the DeleteThing
6265// API call, and error handling.
6266//
6267// This method is useful when you want to inject custom logic or configuration
6268// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6269//
6270//
6271//    // Example sending a request using the DeleteThingRequest method.
6272//    req, resp := client.DeleteThingRequest(params)
6273//
6274//    err := req.Send()
6275//    if err == nil { // resp is now filled
6276//        fmt.Println(resp)
6277//    }
6278func (c *IoT) DeleteThingRequest(input *DeleteThingInput) (req *request.Request, output *DeleteThingOutput) {
6279	op := &request.Operation{
6280		Name:       opDeleteThing,
6281		HTTPMethod: "DELETE",
6282		HTTPPath:   "/things/{thingName}",
6283	}
6284
6285	if input == nil {
6286		input = &DeleteThingInput{}
6287	}
6288
6289	output = &DeleteThingOutput{}
6290	req = c.newRequest(op, input, output)
6291	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6292	return
6293}
6294
6295// DeleteThing API operation for AWS IoT.
6296//
6297// Deletes the specified thing. Returns successfully with no error if the deletion
6298// is successful or you specify a thing that doesn't exist.
6299//
6300// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6301// with awserr.Error's Code and Message methods to get detailed information about
6302// the error.
6303//
6304// See the AWS API reference guide for AWS IoT's
6305// API operation DeleteThing for usage and error information.
6306//
6307// Returned Error Types:
6308//   * ResourceNotFoundException
6309//   The specified resource does not exist.
6310//
6311//   * VersionConflictException
6312//   An exception thrown when the version of an entity specified with the expectedVersion
6313//   parameter does not match the latest version in the system.
6314//
6315//   * InvalidRequestException
6316//   The request is not valid.
6317//
6318//   * ThrottlingException
6319//   The rate exceeds the limit.
6320//
6321//   * UnauthorizedException
6322//   You are not authorized to perform this operation.
6323//
6324//   * ServiceUnavailableException
6325//   The service is temporarily unavailable.
6326//
6327//   * InternalFailureException
6328//   An unexpected error has occurred.
6329//
6330func (c *IoT) DeleteThing(input *DeleteThingInput) (*DeleteThingOutput, error) {
6331	req, out := c.DeleteThingRequest(input)
6332	return out, req.Send()
6333}
6334
6335// DeleteThingWithContext is the same as DeleteThing with the addition of
6336// the ability to pass a context and additional request options.
6337//
6338// See DeleteThing for details on how to use this API operation.
6339//
6340// The context must be non-nil and will be used for request cancellation. If
6341// the context is nil a panic will occur. In the future the SDK may create
6342// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6343// for more information on using Contexts.
6344func (c *IoT) DeleteThingWithContext(ctx aws.Context, input *DeleteThingInput, opts ...request.Option) (*DeleteThingOutput, error) {
6345	req, out := c.DeleteThingRequest(input)
6346	req.SetContext(ctx)
6347	req.ApplyOptions(opts...)
6348	return out, req.Send()
6349}
6350
6351const opDeleteThingGroup = "DeleteThingGroup"
6352
6353// DeleteThingGroupRequest generates a "aws/request.Request" representing the
6354// client's request for the DeleteThingGroup operation. The "output" return
6355// value will be populated with the request's response once the request completes
6356// successfully.
6357//
6358// Use "Send" method on the returned Request to send the API call to the service.
6359// the "output" return value is not valid until after Send returns without error.
6360//
6361// See DeleteThingGroup for more information on using the DeleteThingGroup
6362// API call, and error handling.
6363//
6364// This method is useful when you want to inject custom logic or configuration
6365// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6366//
6367//
6368//    // Example sending a request using the DeleteThingGroupRequest method.
6369//    req, resp := client.DeleteThingGroupRequest(params)
6370//
6371//    err := req.Send()
6372//    if err == nil { // resp is now filled
6373//        fmt.Println(resp)
6374//    }
6375func (c *IoT) DeleteThingGroupRequest(input *DeleteThingGroupInput) (req *request.Request, output *DeleteThingGroupOutput) {
6376	op := &request.Operation{
6377		Name:       opDeleteThingGroup,
6378		HTTPMethod: "DELETE",
6379		HTTPPath:   "/thing-groups/{thingGroupName}",
6380	}
6381
6382	if input == nil {
6383		input = &DeleteThingGroupInput{}
6384	}
6385
6386	output = &DeleteThingGroupOutput{}
6387	req = c.newRequest(op, input, output)
6388	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6389	return
6390}
6391
6392// DeleteThingGroup API operation for AWS IoT.
6393//
6394// Deletes a thing group.
6395//
6396// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6397// with awserr.Error's Code and Message methods to get detailed information about
6398// the error.
6399//
6400// See the AWS API reference guide for AWS IoT's
6401// API operation DeleteThingGroup for usage and error information.
6402//
6403// Returned Error Types:
6404//   * InvalidRequestException
6405//   The request is not valid.
6406//
6407//   * VersionConflictException
6408//   An exception thrown when the version of an entity specified with the expectedVersion
6409//   parameter does not match the latest version in the system.
6410//
6411//   * ThrottlingException
6412//   The rate exceeds the limit.
6413//
6414//   * InternalFailureException
6415//   An unexpected error has occurred.
6416//
6417func (c *IoT) DeleteThingGroup(input *DeleteThingGroupInput) (*DeleteThingGroupOutput, error) {
6418	req, out := c.DeleteThingGroupRequest(input)
6419	return out, req.Send()
6420}
6421
6422// DeleteThingGroupWithContext is the same as DeleteThingGroup with the addition of
6423// the ability to pass a context and additional request options.
6424//
6425// See DeleteThingGroup for details on how to use this API operation.
6426//
6427// The context must be non-nil and will be used for request cancellation. If
6428// the context is nil a panic will occur. In the future the SDK may create
6429// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6430// for more information on using Contexts.
6431func (c *IoT) DeleteThingGroupWithContext(ctx aws.Context, input *DeleteThingGroupInput, opts ...request.Option) (*DeleteThingGroupOutput, error) {
6432	req, out := c.DeleteThingGroupRequest(input)
6433	req.SetContext(ctx)
6434	req.ApplyOptions(opts...)
6435	return out, req.Send()
6436}
6437
6438const opDeleteThingType = "DeleteThingType"
6439
6440// DeleteThingTypeRequest generates a "aws/request.Request" representing the
6441// client's request for the DeleteThingType operation. The "output" return
6442// value will be populated with the request's response once the request completes
6443// successfully.
6444//
6445// Use "Send" method on the returned Request to send the API call to the service.
6446// the "output" return value is not valid until after Send returns without error.
6447//
6448// See DeleteThingType for more information on using the DeleteThingType
6449// API call, and error handling.
6450//
6451// This method is useful when you want to inject custom logic or configuration
6452// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6453//
6454//
6455//    // Example sending a request using the DeleteThingTypeRequest method.
6456//    req, resp := client.DeleteThingTypeRequest(params)
6457//
6458//    err := req.Send()
6459//    if err == nil { // resp is now filled
6460//        fmt.Println(resp)
6461//    }
6462func (c *IoT) DeleteThingTypeRequest(input *DeleteThingTypeInput) (req *request.Request, output *DeleteThingTypeOutput) {
6463	op := &request.Operation{
6464		Name:       opDeleteThingType,
6465		HTTPMethod: "DELETE",
6466		HTTPPath:   "/thing-types/{thingTypeName}",
6467	}
6468
6469	if input == nil {
6470		input = &DeleteThingTypeInput{}
6471	}
6472
6473	output = &DeleteThingTypeOutput{}
6474	req = c.newRequest(op, input, output)
6475	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6476	return
6477}
6478
6479// DeleteThingType API operation for AWS IoT.
6480//
6481// Deletes the specified thing type. You cannot delete a thing type if it has
6482// things associated with it. To delete a thing type, first mark it as deprecated
6483// by calling DeprecateThingType, then remove any associated things by calling
6484// UpdateThing to change the thing type on any associated thing, and finally
6485// use DeleteThingType to delete the thing type.
6486//
6487// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6488// with awserr.Error's Code and Message methods to get detailed information about
6489// the error.
6490//
6491// See the AWS API reference guide for AWS IoT's
6492// API operation DeleteThingType for usage and error information.
6493//
6494// Returned Error Types:
6495//   * ResourceNotFoundException
6496//   The specified resource does not exist.
6497//
6498//   * InvalidRequestException
6499//   The request is not valid.
6500//
6501//   * ThrottlingException
6502//   The rate exceeds the limit.
6503//
6504//   * UnauthorizedException
6505//   You are not authorized to perform this operation.
6506//
6507//   * ServiceUnavailableException
6508//   The service is temporarily unavailable.
6509//
6510//   * InternalFailureException
6511//   An unexpected error has occurred.
6512//
6513func (c *IoT) DeleteThingType(input *DeleteThingTypeInput) (*DeleteThingTypeOutput, error) {
6514	req, out := c.DeleteThingTypeRequest(input)
6515	return out, req.Send()
6516}
6517
6518// DeleteThingTypeWithContext is the same as DeleteThingType with the addition of
6519// the ability to pass a context and additional request options.
6520//
6521// See DeleteThingType for details on how to use this API operation.
6522//
6523// The context must be non-nil and will be used for request cancellation. If
6524// the context is nil a panic will occur. In the future the SDK may create
6525// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6526// for more information on using Contexts.
6527func (c *IoT) DeleteThingTypeWithContext(ctx aws.Context, input *DeleteThingTypeInput, opts ...request.Option) (*DeleteThingTypeOutput, error) {
6528	req, out := c.DeleteThingTypeRequest(input)
6529	req.SetContext(ctx)
6530	req.ApplyOptions(opts...)
6531	return out, req.Send()
6532}
6533
6534const opDeleteTopicRule = "DeleteTopicRule"
6535
6536// DeleteTopicRuleRequest generates a "aws/request.Request" representing the
6537// client's request for the DeleteTopicRule operation. The "output" return
6538// value will be populated with the request's response once the request completes
6539// successfully.
6540//
6541// Use "Send" method on the returned Request to send the API call to the service.
6542// the "output" return value is not valid until after Send returns without error.
6543//
6544// See DeleteTopicRule for more information on using the DeleteTopicRule
6545// API call, and error handling.
6546//
6547// This method is useful when you want to inject custom logic or configuration
6548// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6549//
6550//
6551//    // Example sending a request using the DeleteTopicRuleRequest method.
6552//    req, resp := client.DeleteTopicRuleRequest(params)
6553//
6554//    err := req.Send()
6555//    if err == nil { // resp is now filled
6556//        fmt.Println(resp)
6557//    }
6558func (c *IoT) DeleteTopicRuleRequest(input *DeleteTopicRuleInput) (req *request.Request, output *DeleteTopicRuleOutput) {
6559	op := &request.Operation{
6560		Name:       opDeleteTopicRule,
6561		HTTPMethod: "DELETE",
6562		HTTPPath:   "/rules/{ruleName}",
6563	}
6564
6565	if input == nil {
6566		input = &DeleteTopicRuleInput{}
6567	}
6568
6569	output = &DeleteTopicRuleOutput{}
6570	req = c.newRequest(op, input, output)
6571	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6572	return
6573}
6574
6575// DeleteTopicRule API operation for AWS IoT.
6576//
6577// Deletes the rule.
6578//
6579// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6580// with awserr.Error's Code and Message methods to get detailed information about
6581// the error.
6582//
6583// See the AWS API reference guide for AWS IoT's
6584// API operation DeleteTopicRule for usage and error information.
6585//
6586// Returned Error Types:
6587//   * InternalException
6588//   An unexpected error has occurred.
6589//
6590//   * InvalidRequestException
6591//   The request is not valid.
6592//
6593//   * ServiceUnavailableException
6594//   The service is temporarily unavailable.
6595//
6596//   * UnauthorizedException
6597//   You are not authorized to perform this operation.
6598//
6599//   * ConflictingResourceUpdateException
6600//   A conflicting resource update exception. This exception is thrown when two
6601//   pending updates cause a conflict.
6602//
6603func (c *IoT) DeleteTopicRule(input *DeleteTopicRuleInput) (*DeleteTopicRuleOutput, error) {
6604	req, out := c.DeleteTopicRuleRequest(input)
6605	return out, req.Send()
6606}
6607
6608// DeleteTopicRuleWithContext is the same as DeleteTopicRule with the addition of
6609// the ability to pass a context and additional request options.
6610//
6611// See DeleteTopicRule for details on how to use this API operation.
6612//
6613// The context must be non-nil and will be used for request cancellation. If
6614// the context is nil a panic will occur. In the future the SDK may create
6615// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6616// for more information on using Contexts.
6617func (c *IoT) DeleteTopicRuleWithContext(ctx aws.Context, input *DeleteTopicRuleInput, opts ...request.Option) (*DeleteTopicRuleOutput, error) {
6618	req, out := c.DeleteTopicRuleRequest(input)
6619	req.SetContext(ctx)
6620	req.ApplyOptions(opts...)
6621	return out, req.Send()
6622}
6623
6624const opDeleteTopicRuleDestination = "DeleteTopicRuleDestination"
6625
6626// DeleteTopicRuleDestinationRequest generates a "aws/request.Request" representing the
6627// client's request for the DeleteTopicRuleDestination operation. The "output" return
6628// value will be populated with the request's response once the request completes
6629// successfully.
6630//
6631// Use "Send" method on the returned Request to send the API call to the service.
6632// the "output" return value is not valid until after Send returns without error.
6633//
6634// See DeleteTopicRuleDestination for more information on using the DeleteTopicRuleDestination
6635// API call, and error handling.
6636//
6637// This method is useful when you want to inject custom logic or configuration
6638// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6639//
6640//
6641//    // Example sending a request using the DeleteTopicRuleDestinationRequest method.
6642//    req, resp := client.DeleteTopicRuleDestinationRequest(params)
6643//
6644//    err := req.Send()
6645//    if err == nil { // resp is now filled
6646//        fmt.Println(resp)
6647//    }
6648func (c *IoT) DeleteTopicRuleDestinationRequest(input *DeleteTopicRuleDestinationInput) (req *request.Request, output *DeleteTopicRuleDestinationOutput) {
6649	op := &request.Operation{
6650		Name:       opDeleteTopicRuleDestination,
6651		HTTPMethod: "DELETE",
6652		HTTPPath:   "/destinations/{arn+}",
6653	}
6654
6655	if input == nil {
6656		input = &DeleteTopicRuleDestinationInput{}
6657	}
6658
6659	output = &DeleteTopicRuleDestinationOutput{}
6660	req = c.newRequest(op, input, output)
6661	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6662	return
6663}
6664
6665// DeleteTopicRuleDestination API operation for AWS IoT.
6666//
6667// Deletes a topic rule destination.
6668//
6669// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6670// with awserr.Error's Code and Message methods to get detailed information about
6671// the error.
6672//
6673// See the AWS API reference guide for AWS IoT's
6674// API operation DeleteTopicRuleDestination for usage and error information.
6675//
6676// Returned Error Types:
6677//   * InternalException
6678//   An unexpected error has occurred.
6679//
6680//   * InvalidRequestException
6681//   The request is not valid.
6682//
6683//   * ServiceUnavailableException
6684//   The service is temporarily unavailable.
6685//
6686//   * UnauthorizedException
6687//   You are not authorized to perform this operation.
6688//
6689//   * ConflictingResourceUpdateException
6690//   A conflicting resource update exception. This exception is thrown when two
6691//   pending updates cause a conflict.
6692//
6693func (c *IoT) DeleteTopicRuleDestination(input *DeleteTopicRuleDestinationInput) (*DeleteTopicRuleDestinationOutput, error) {
6694	req, out := c.DeleteTopicRuleDestinationRequest(input)
6695	return out, req.Send()
6696}
6697
6698// DeleteTopicRuleDestinationWithContext is the same as DeleteTopicRuleDestination with the addition of
6699// the ability to pass a context and additional request options.
6700//
6701// See DeleteTopicRuleDestination for details on how to use this API operation.
6702//
6703// The context must be non-nil and will be used for request cancellation. If
6704// the context is nil a panic will occur. In the future the SDK may create
6705// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6706// for more information on using Contexts.
6707func (c *IoT) DeleteTopicRuleDestinationWithContext(ctx aws.Context, input *DeleteTopicRuleDestinationInput, opts ...request.Option) (*DeleteTopicRuleDestinationOutput, error) {
6708	req, out := c.DeleteTopicRuleDestinationRequest(input)
6709	req.SetContext(ctx)
6710	req.ApplyOptions(opts...)
6711	return out, req.Send()
6712}
6713
6714const opDeleteV2LoggingLevel = "DeleteV2LoggingLevel"
6715
6716// DeleteV2LoggingLevelRequest generates a "aws/request.Request" representing the
6717// client's request for the DeleteV2LoggingLevel operation. The "output" return
6718// value will be populated with the request's response once the request completes
6719// successfully.
6720//
6721// Use "Send" method on the returned Request to send the API call to the service.
6722// the "output" return value is not valid until after Send returns without error.
6723//
6724// See DeleteV2LoggingLevel for more information on using the DeleteV2LoggingLevel
6725// API call, and error handling.
6726//
6727// This method is useful when you want to inject custom logic or configuration
6728// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6729//
6730//
6731//    // Example sending a request using the DeleteV2LoggingLevelRequest method.
6732//    req, resp := client.DeleteV2LoggingLevelRequest(params)
6733//
6734//    err := req.Send()
6735//    if err == nil { // resp is now filled
6736//        fmt.Println(resp)
6737//    }
6738func (c *IoT) DeleteV2LoggingLevelRequest(input *DeleteV2LoggingLevelInput) (req *request.Request, output *DeleteV2LoggingLevelOutput) {
6739	op := &request.Operation{
6740		Name:       opDeleteV2LoggingLevel,
6741		HTTPMethod: "DELETE",
6742		HTTPPath:   "/v2LoggingLevel",
6743	}
6744
6745	if input == nil {
6746		input = &DeleteV2LoggingLevelInput{}
6747	}
6748
6749	output = &DeleteV2LoggingLevelOutput{}
6750	req = c.newRequest(op, input, output)
6751	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6752	return
6753}
6754
6755// DeleteV2LoggingLevel API operation for AWS IoT.
6756//
6757// Deletes a logging level.
6758//
6759// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6760// with awserr.Error's Code and Message methods to get detailed information about
6761// the error.
6762//
6763// See the AWS API reference guide for AWS IoT's
6764// API operation DeleteV2LoggingLevel for usage and error information.
6765//
6766// Returned Error Types:
6767//   * InternalException
6768//   An unexpected error has occurred.
6769//
6770//   * InvalidRequestException
6771//   The request is not valid.
6772//
6773//   * ServiceUnavailableException
6774//   The service is temporarily unavailable.
6775//
6776func (c *IoT) DeleteV2LoggingLevel(input *DeleteV2LoggingLevelInput) (*DeleteV2LoggingLevelOutput, error) {
6777	req, out := c.DeleteV2LoggingLevelRequest(input)
6778	return out, req.Send()
6779}
6780
6781// DeleteV2LoggingLevelWithContext is the same as DeleteV2LoggingLevel with the addition of
6782// the ability to pass a context and additional request options.
6783//
6784// See DeleteV2LoggingLevel for details on how to use this API operation.
6785//
6786// The context must be non-nil and will be used for request cancellation. If
6787// the context is nil a panic will occur. In the future the SDK may create
6788// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6789// for more information on using Contexts.
6790func (c *IoT) DeleteV2LoggingLevelWithContext(ctx aws.Context, input *DeleteV2LoggingLevelInput, opts ...request.Option) (*DeleteV2LoggingLevelOutput, error) {
6791	req, out := c.DeleteV2LoggingLevelRequest(input)
6792	req.SetContext(ctx)
6793	req.ApplyOptions(opts...)
6794	return out, req.Send()
6795}
6796
6797const opDeprecateThingType = "DeprecateThingType"
6798
6799// DeprecateThingTypeRequest generates a "aws/request.Request" representing the
6800// client's request for the DeprecateThingType operation. The "output" return
6801// value will be populated with the request's response once the request completes
6802// successfully.
6803//
6804// Use "Send" method on the returned Request to send the API call to the service.
6805// the "output" return value is not valid until after Send returns without error.
6806//
6807// See DeprecateThingType for more information on using the DeprecateThingType
6808// API call, and error handling.
6809//
6810// This method is useful when you want to inject custom logic or configuration
6811// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6812//
6813//
6814//    // Example sending a request using the DeprecateThingTypeRequest method.
6815//    req, resp := client.DeprecateThingTypeRequest(params)
6816//
6817//    err := req.Send()
6818//    if err == nil { // resp is now filled
6819//        fmt.Println(resp)
6820//    }
6821func (c *IoT) DeprecateThingTypeRequest(input *DeprecateThingTypeInput) (req *request.Request, output *DeprecateThingTypeOutput) {
6822	op := &request.Operation{
6823		Name:       opDeprecateThingType,
6824		HTTPMethod: "POST",
6825		HTTPPath:   "/thing-types/{thingTypeName}/deprecate",
6826	}
6827
6828	if input == nil {
6829		input = &DeprecateThingTypeInput{}
6830	}
6831
6832	output = &DeprecateThingTypeOutput{}
6833	req = c.newRequest(op, input, output)
6834	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6835	return
6836}
6837
6838// DeprecateThingType API operation for AWS IoT.
6839//
6840// Deprecates a thing type. You can not associate new things with deprecated
6841// thing type.
6842//
6843// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6844// with awserr.Error's Code and Message methods to get detailed information about
6845// the error.
6846//
6847// See the AWS API reference guide for AWS IoT's
6848// API operation DeprecateThingType for usage and error information.
6849//
6850// Returned Error Types:
6851//   * ResourceNotFoundException
6852//   The specified resource does not exist.
6853//
6854//   * InvalidRequestException
6855//   The request is not valid.
6856//
6857//   * ThrottlingException
6858//   The rate exceeds the limit.
6859//
6860//   * UnauthorizedException
6861//   You are not authorized to perform this operation.
6862//
6863//   * ServiceUnavailableException
6864//   The service is temporarily unavailable.
6865//
6866//   * InternalFailureException
6867//   An unexpected error has occurred.
6868//
6869func (c *IoT) DeprecateThingType(input *DeprecateThingTypeInput) (*DeprecateThingTypeOutput, error) {
6870	req, out := c.DeprecateThingTypeRequest(input)
6871	return out, req.Send()
6872}
6873
6874// DeprecateThingTypeWithContext is the same as DeprecateThingType with the addition of
6875// the ability to pass a context and additional request options.
6876//
6877// See DeprecateThingType for details on how to use this API operation.
6878//
6879// The context must be non-nil and will be used for request cancellation. If
6880// the context is nil a panic will occur. In the future the SDK may create
6881// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6882// for more information on using Contexts.
6883func (c *IoT) DeprecateThingTypeWithContext(ctx aws.Context, input *DeprecateThingTypeInput, opts ...request.Option) (*DeprecateThingTypeOutput, error) {
6884	req, out := c.DeprecateThingTypeRequest(input)
6885	req.SetContext(ctx)
6886	req.ApplyOptions(opts...)
6887	return out, req.Send()
6888}
6889
6890const opDescribeAccountAuditConfiguration = "DescribeAccountAuditConfiguration"
6891
6892// DescribeAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
6893// client's request for the DescribeAccountAuditConfiguration operation. The "output" return
6894// value will be populated with the request's response once the request completes
6895// successfully.
6896//
6897// Use "Send" method on the returned Request to send the API call to the service.
6898// the "output" return value is not valid until after Send returns without error.
6899//
6900// See DescribeAccountAuditConfiguration for more information on using the DescribeAccountAuditConfiguration
6901// API call, and error handling.
6902//
6903// This method is useful when you want to inject custom logic or configuration
6904// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6905//
6906//
6907//    // Example sending a request using the DescribeAccountAuditConfigurationRequest method.
6908//    req, resp := client.DescribeAccountAuditConfigurationRequest(params)
6909//
6910//    err := req.Send()
6911//    if err == nil { // resp is now filled
6912//        fmt.Println(resp)
6913//    }
6914func (c *IoT) DescribeAccountAuditConfigurationRequest(input *DescribeAccountAuditConfigurationInput) (req *request.Request, output *DescribeAccountAuditConfigurationOutput) {
6915	op := &request.Operation{
6916		Name:       opDescribeAccountAuditConfiguration,
6917		HTTPMethod: "GET",
6918		HTTPPath:   "/audit/configuration",
6919	}
6920
6921	if input == nil {
6922		input = &DescribeAccountAuditConfigurationInput{}
6923	}
6924
6925	output = &DescribeAccountAuditConfigurationOutput{}
6926	req = c.newRequest(op, input, output)
6927	return
6928}
6929
6930// DescribeAccountAuditConfiguration API operation for AWS IoT.
6931//
6932// Gets information about the Device Defender audit settings for this account.
6933// Settings include how audit notifications are sent and which audit checks
6934// are enabled or disabled.
6935//
6936// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6937// with awserr.Error's Code and Message methods to get detailed information about
6938// the error.
6939//
6940// See the AWS API reference guide for AWS IoT's
6941// API operation DescribeAccountAuditConfiguration for usage and error information.
6942//
6943// Returned Error Types:
6944//   * ThrottlingException
6945//   The rate exceeds the limit.
6946//
6947//   * InternalFailureException
6948//   An unexpected error has occurred.
6949//
6950func (c *IoT) DescribeAccountAuditConfiguration(input *DescribeAccountAuditConfigurationInput) (*DescribeAccountAuditConfigurationOutput, error) {
6951	req, out := c.DescribeAccountAuditConfigurationRequest(input)
6952	return out, req.Send()
6953}
6954
6955// DescribeAccountAuditConfigurationWithContext is the same as DescribeAccountAuditConfiguration with the addition of
6956// the ability to pass a context and additional request options.
6957//
6958// See DescribeAccountAuditConfiguration for details on how to use this API operation.
6959//
6960// The context must be non-nil and will be used for request cancellation. If
6961// the context is nil a panic will occur. In the future the SDK may create
6962// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6963// for more information on using Contexts.
6964func (c *IoT) DescribeAccountAuditConfigurationWithContext(ctx aws.Context, input *DescribeAccountAuditConfigurationInput, opts ...request.Option) (*DescribeAccountAuditConfigurationOutput, error) {
6965	req, out := c.DescribeAccountAuditConfigurationRequest(input)
6966	req.SetContext(ctx)
6967	req.ApplyOptions(opts...)
6968	return out, req.Send()
6969}
6970
6971const opDescribeAuditFinding = "DescribeAuditFinding"
6972
6973// DescribeAuditFindingRequest generates a "aws/request.Request" representing the
6974// client's request for the DescribeAuditFinding operation. The "output" return
6975// value will be populated with the request's response once the request completes
6976// successfully.
6977//
6978// Use "Send" method on the returned Request to send the API call to the service.
6979// the "output" return value is not valid until after Send returns without error.
6980//
6981// See DescribeAuditFinding for more information on using the DescribeAuditFinding
6982// API call, and error handling.
6983//
6984// This method is useful when you want to inject custom logic or configuration
6985// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6986//
6987//
6988//    // Example sending a request using the DescribeAuditFindingRequest method.
6989//    req, resp := client.DescribeAuditFindingRequest(params)
6990//
6991//    err := req.Send()
6992//    if err == nil { // resp is now filled
6993//        fmt.Println(resp)
6994//    }
6995func (c *IoT) DescribeAuditFindingRequest(input *DescribeAuditFindingInput) (req *request.Request, output *DescribeAuditFindingOutput) {
6996	op := &request.Operation{
6997		Name:       opDescribeAuditFinding,
6998		HTTPMethod: "GET",
6999		HTTPPath:   "/audit/findings/{findingId}",
7000	}
7001
7002	if input == nil {
7003		input = &DescribeAuditFindingInput{}
7004	}
7005
7006	output = &DescribeAuditFindingOutput{}
7007	req = c.newRequest(op, input, output)
7008	return
7009}
7010
7011// DescribeAuditFinding API operation for AWS IoT.
7012//
7013// Gets information about a single audit finding. Properties include the reason
7014// for noncompliance, the severity of the issue, and the start time when the
7015// audit that returned the finding.
7016//
7017// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7018// with awserr.Error's Code and Message methods to get detailed information about
7019// the error.
7020//
7021// See the AWS API reference guide for AWS IoT's
7022// API operation DescribeAuditFinding for usage and error information.
7023//
7024// Returned Error Types:
7025//   * ResourceNotFoundException
7026//   The specified resource does not exist.
7027//
7028//   * InvalidRequestException
7029//   The request is not valid.
7030//
7031//   * ThrottlingException
7032//   The rate exceeds the limit.
7033//
7034//   * InternalFailureException
7035//   An unexpected error has occurred.
7036//
7037func (c *IoT) DescribeAuditFinding(input *DescribeAuditFindingInput) (*DescribeAuditFindingOutput, error) {
7038	req, out := c.DescribeAuditFindingRequest(input)
7039	return out, req.Send()
7040}
7041
7042// DescribeAuditFindingWithContext is the same as DescribeAuditFinding with the addition of
7043// the ability to pass a context and additional request options.
7044//
7045// See DescribeAuditFinding for details on how to use this API operation.
7046//
7047// The context must be non-nil and will be used for request cancellation. If
7048// the context is nil a panic will occur. In the future the SDK may create
7049// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7050// for more information on using Contexts.
7051func (c *IoT) DescribeAuditFindingWithContext(ctx aws.Context, input *DescribeAuditFindingInput, opts ...request.Option) (*DescribeAuditFindingOutput, error) {
7052	req, out := c.DescribeAuditFindingRequest(input)
7053	req.SetContext(ctx)
7054	req.ApplyOptions(opts...)
7055	return out, req.Send()
7056}
7057
7058const opDescribeAuditMitigationActionsTask = "DescribeAuditMitigationActionsTask"
7059
7060// DescribeAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
7061// client's request for the DescribeAuditMitigationActionsTask operation. The "output" return
7062// value will be populated with the request's response once the request completes
7063// successfully.
7064//
7065// Use "Send" method on the returned Request to send the API call to the service.
7066// the "output" return value is not valid until after Send returns without error.
7067//
7068// See DescribeAuditMitigationActionsTask for more information on using the DescribeAuditMitigationActionsTask
7069// API call, and error handling.
7070//
7071// This method is useful when you want to inject custom logic or configuration
7072// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7073//
7074//
7075//    // Example sending a request using the DescribeAuditMitigationActionsTaskRequest method.
7076//    req, resp := client.DescribeAuditMitigationActionsTaskRequest(params)
7077//
7078//    err := req.Send()
7079//    if err == nil { // resp is now filled
7080//        fmt.Println(resp)
7081//    }
7082func (c *IoT) DescribeAuditMitigationActionsTaskRequest(input *DescribeAuditMitigationActionsTaskInput) (req *request.Request, output *DescribeAuditMitigationActionsTaskOutput) {
7083	op := &request.Operation{
7084		Name:       opDescribeAuditMitigationActionsTask,
7085		HTTPMethod: "GET",
7086		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}",
7087	}
7088
7089	if input == nil {
7090		input = &DescribeAuditMitigationActionsTaskInput{}
7091	}
7092
7093	output = &DescribeAuditMitigationActionsTaskOutput{}
7094	req = c.newRequest(op, input, output)
7095	return
7096}
7097
7098// DescribeAuditMitigationActionsTask API operation for AWS IoT.
7099//
7100// Gets information about an audit mitigation task that is used to apply mitigation
7101// actions to a set of audit findings. Properties include the actions being
7102// applied, the audit checks to which they're being applied, the task status,
7103// and aggregated task statistics.
7104//
7105// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7106// with awserr.Error's Code and Message methods to get detailed information about
7107// the error.
7108//
7109// See the AWS API reference guide for AWS IoT's
7110// API operation DescribeAuditMitigationActionsTask for usage and error information.
7111//
7112// Returned Error Types:
7113//   * InvalidRequestException
7114//   The request is not valid.
7115//
7116//   * ResourceNotFoundException
7117//   The specified resource does not exist.
7118//
7119//   * ThrottlingException
7120//   The rate exceeds the limit.
7121//
7122//   * InternalFailureException
7123//   An unexpected error has occurred.
7124//
7125func (c *IoT) DescribeAuditMitigationActionsTask(input *DescribeAuditMitigationActionsTaskInput) (*DescribeAuditMitigationActionsTaskOutput, error) {
7126	req, out := c.DescribeAuditMitigationActionsTaskRequest(input)
7127	return out, req.Send()
7128}
7129
7130// DescribeAuditMitigationActionsTaskWithContext is the same as DescribeAuditMitigationActionsTask with the addition of
7131// the ability to pass a context and additional request options.
7132//
7133// See DescribeAuditMitigationActionsTask for details on how to use this API operation.
7134//
7135// The context must be non-nil and will be used for request cancellation. If
7136// the context is nil a panic will occur. In the future the SDK may create
7137// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7138// for more information on using Contexts.
7139func (c *IoT) DescribeAuditMitigationActionsTaskWithContext(ctx aws.Context, input *DescribeAuditMitigationActionsTaskInput, opts ...request.Option) (*DescribeAuditMitigationActionsTaskOutput, error) {
7140	req, out := c.DescribeAuditMitigationActionsTaskRequest(input)
7141	req.SetContext(ctx)
7142	req.ApplyOptions(opts...)
7143	return out, req.Send()
7144}
7145
7146const opDescribeAuditSuppression = "DescribeAuditSuppression"
7147
7148// DescribeAuditSuppressionRequest generates a "aws/request.Request" representing the
7149// client's request for the DescribeAuditSuppression operation. The "output" return
7150// value will be populated with the request's response once the request completes
7151// successfully.
7152//
7153// Use "Send" method on the returned Request to send the API call to the service.
7154// the "output" return value is not valid until after Send returns without error.
7155//
7156// See DescribeAuditSuppression for more information on using the DescribeAuditSuppression
7157// API call, and error handling.
7158//
7159// This method is useful when you want to inject custom logic or configuration
7160// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7161//
7162//
7163//    // Example sending a request using the DescribeAuditSuppressionRequest method.
7164//    req, resp := client.DescribeAuditSuppressionRequest(params)
7165//
7166//    err := req.Send()
7167//    if err == nil { // resp is now filled
7168//        fmt.Println(resp)
7169//    }
7170func (c *IoT) DescribeAuditSuppressionRequest(input *DescribeAuditSuppressionInput) (req *request.Request, output *DescribeAuditSuppressionOutput) {
7171	op := &request.Operation{
7172		Name:       opDescribeAuditSuppression,
7173		HTTPMethod: "POST",
7174		HTTPPath:   "/audit/suppressions/describe",
7175	}
7176
7177	if input == nil {
7178		input = &DescribeAuditSuppressionInput{}
7179	}
7180
7181	output = &DescribeAuditSuppressionOutput{}
7182	req = c.newRequest(op, input, output)
7183	return
7184}
7185
7186// DescribeAuditSuppression API operation for AWS IoT.
7187//
7188// Gets information about a Device Defender audit suppression.
7189//
7190// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7191// with awserr.Error's Code and Message methods to get detailed information about
7192// the error.
7193//
7194// See the AWS API reference guide for AWS IoT's
7195// API operation DescribeAuditSuppression for usage and error information.
7196//
7197// Returned Error Types:
7198//   * InvalidRequestException
7199//   The request is not valid.
7200//
7201//   * ResourceNotFoundException
7202//   The specified resource does not exist.
7203//
7204//   * ThrottlingException
7205//   The rate exceeds the limit.
7206//
7207//   * InternalFailureException
7208//   An unexpected error has occurred.
7209//
7210func (c *IoT) DescribeAuditSuppression(input *DescribeAuditSuppressionInput) (*DescribeAuditSuppressionOutput, error) {
7211	req, out := c.DescribeAuditSuppressionRequest(input)
7212	return out, req.Send()
7213}
7214
7215// DescribeAuditSuppressionWithContext is the same as DescribeAuditSuppression with the addition of
7216// the ability to pass a context and additional request options.
7217//
7218// See DescribeAuditSuppression for details on how to use this API operation.
7219//
7220// The context must be non-nil and will be used for request cancellation. If
7221// the context is nil a panic will occur. In the future the SDK may create
7222// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7223// for more information on using Contexts.
7224func (c *IoT) DescribeAuditSuppressionWithContext(ctx aws.Context, input *DescribeAuditSuppressionInput, opts ...request.Option) (*DescribeAuditSuppressionOutput, error) {
7225	req, out := c.DescribeAuditSuppressionRequest(input)
7226	req.SetContext(ctx)
7227	req.ApplyOptions(opts...)
7228	return out, req.Send()
7229}
7230
7231const opDescribeAuditTask = "DescribeAuditTask"
7232
7233// DescribeAuditTaskRequest generates a "aws/request.Request" representing the
7234// client's request for the DescribeAuditTask operation. The "output" return
7235// value will be populated with the request's response once the request completes
7236// successfully.
7237//
7238// Use "Send" method on the returned Request to send the API call to the service.
7239// the "output" return value is not valid until after Send returns without error.
7240//
7241// See DescribeAuditTask for more information on using the DescribeAuditTask
7242// API call, and error handling.
7243//
7244// This method is useful when you want to inject custom logic or configuration
7245// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7246//
7247//
7248//    // Example sending a request using the DescribeAuditTaskRequest method.
7249//    req, resp := client.DescribeAuditTaskRequest(params)
7250//
7251//    err := req.Send()
7252//    if err == nil { // resp is now filled
7253//        fmt.Println(resp)
7254//    }
7255func (c *IoT) DescribeAuditTaskRequest(input *DescribeAuditTaskInput) (req *request.Request, output *DescribeAuditTaskOutput) {
7256	op := &request.Operation{
7257		Name:       opDescribeAuditTask,
7258		HTTPMethod: "GET",
7259		HTTPPath:   "/audit/tasks/{taskId}",
7260	}
7261
7262	if input == nil {
7263		input = &DescribeAuditTaskInput{}
7264	}
7265
7266	output = &DescribeAuditTaskOutput{}
7267	req = c.newRequest(op, input, output)
7268	return
7269}
7270
7271// DescribeAuditTask API operation for AWS IoT.
7272//
7273// Gets information about a Device Defender audit.
7274//
7275// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7276// with awserr.Error's Code and Message methods to get detailed information about
7277// the error.
7278//
7279// See the AWS API reference guide for AWS IoT's
7280// API operation DescribeAuditTask for usage and error information.
7281//
7282// Returned Error Types:
7283//   * InvalidRequestException
7284//   The request is not valid.
7285//
7286//   * ResourceNotFoundException
7287//   The specified resource does not exist.
7288//
7289//   * ThrottlingException
7290//   The rate exceeds the limit.
7291//
7292//   * InternalFailureException
7293//   An unexpected error has occurred.
7294//
7295func (c *IoT) DescribeAuditTask(input *DescribeAuditTaskInput) (*DescribeAuditTaskOutput, error) {
7296	req, out := c.DescribeAuditTaskRequest(input)
7297	return out, req.Send()
7298}
7299
7300// DescribeAuditTaskWithContext is the same as DescribeAuditTask with the addition of
7301// the ability to pass a context and additional request options.
7302//
7303// See DescribeAuditTask for details on how to use this API operation.
7304//
7305// The context must be non-nil and will be used for request cancellation. If
7306// the context is nil a panic will occur. In the future the SDK may create
7307// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7308// for more information on using Contexts.
7309func (c *IoT) DescribeAuditTaskWithContext(ctx aws.Context, input *DescribeAuditTaskInput, opts ...request.Option) (*DescribeAuditTaskOutput, error) {
7310	req, out := c.DescribeAuditTaskRequest(input)
7311	req.SetContext(ctx)
7312	req.ApplyOptions(opts...)
7313	return out, req.Send()
7314}
7315
7316const opDescribeAuthorizer = "DescribeAuthorizer"
7317
7318// DescribeAuthorizerRequest generates a "aws/request.Request" representing the
7319// client's request for the DescribeAuthorizer operation. The "output" return
7320// value will be populated with the request's response once the request completes
7321// successfully.
7322//
7323// Use "Send" method on the returned Request to send the API call to the service.
7324// the "output" return value is not valid until after Send returns without error.
7325//
7326// See DescribeAuthorizer for more information on using the DescribeAuthorizer
7327// API call, and error handling.
7328//
7329// This method is useful when you want to inject custom logic or configuration
7330// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7331//
7332//
7333//    // Example sending a request using the DescribeAuthorizerRequest method.
7334//    req, resp := client.DescribeAuthorizerRequest(params)
7335//
7336//    err := req.Send()
7337//    if err == nil { // resp is now filled
7338//        fmt.Println(resp)
7339//    }
7340func (c *IoT) DescribeAuthorizerRequest(input *DescribeAuthorizerInput) (req *request.Request, output *DescribeAuthorizerOutput) {
7341	op := &request.Operation{
7342		Name:       opDescribeAuthorizer,
7343		HTTPMethod: "GET",
7344		HTTPPath:   "/authorizer/{authorizerName}",
7345	}
7346
7347	if input == nil {
7348		input = &DescribeAuthorizerInput{}
7349	}
7350
7351	output = &DescribeAuthorizerOutput{}
7352	req = c.newRequest(op, input, output)
7353	return
7354}
7355
7356// DescribeAuthorizer API operation for AWS IoT.
7357//
7358// Describes an authorizer.
7359//
7360// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7361// with awserr.Error's Code and Message methods to get detailed information about
7362// the error.
7363//
7364// See the AWS API reference guide for AWS IoT's
7365// API operation DescribeAuthorizer for usage and error information.
7366//
7367// Returned Error Types:
7368//   * ResourceNotFoundException
7369//   The specified resource does not exist.
7370//
7371//   * InvalidRequestException
7372//   The request is not valid.
7373//
7374//   * ThrottlingException
7375//   The rate exceeds the limit.
7376//
7377//   * UnauthorizedException
7378//   You are not authorized to perform this operation.
7379//
7380//   * ServiceUnavailableException
7381//   The service is temporarily unavailable.
7382//
7383//   * InternalFailureException
7384//   An unexpected error has occurred.
7385//
7386func (c *IoT) DescribeAuthorizer(input *DescribeAuthorizerInput) (*DescribeAuthorizerOutput, error) {
7387	req, out := c.DescribeAuthorizerRequest(input)
7388	return out, req.Send()
7389}
7390
7391// DescribeAuthorizerWithContext is the same as DescribeAuthorizer with the addition of
7392// the ability to pass a context and additional request options.
7393//
7394// See DescribeAuthorizer for details on how to use this API operation.
7395//
7396// The context must be non-nil and will be used for request cancellation. If
7397// the context is nil a panic will occur. In the future the SDK may create
7398// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7399// for more information on using Contexts.
7400func (c *IoT) DescribeAuthorizerWithContext(ctx aws.Context, input *DescribeAuthorizerInput, opts ...request.Option) (*DescribeAuthorizerOutput, error) {
7401	req, out := c.DescribeAuthorizerRequest(input)
7402	req.SetContext(ctx)
7403	req.ApplyOptions(opts...)
7404	return out, req.Send()
7405}
7406
7407const opDescribeBillingGroup = "DescribeBillingGroup"
7408
7409// DescribeBillingGroupRequest generates a "aws/request.Request" representing the
7410// client's request for the DescribeBillingGroup operation. The "output" return
7411// value will be populated with the request's response once the request completes
7412// successfully.
7413//
7414// Use "Send" method on the returned Request to send the API call to the service.
7415// the "output" return value is not valid until after Send returns without error.
7416//
7417// See DescribeBillingGroup for more information on using the DescribeBillingGroup
7418// API call, and error handling.
7419//
7420// This method is useful when you want to inject custom logic or configuration
7421// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7422//
7423//
7424//    // Example sending a request using the DescribeBillingGroupRequest method.
7425//    req, resp := client.DescribeBillingGroupRequest(params)
7426//
7427//    err := req.Send()
7428//    if err == nil { // resp is now filled
7429//        fmt.Println(resp)
7430//    }
7431func (c *IoT) DescribeBillingGroupRequest(input *DescribeBillingGroupInput) (req *request.Request, output *DescribeBillingGroupOutput) {
7432	op := &request.Operation{
7433		Name:       opDescribeBillingGroup,
7434		HTTPMethod: "GET",
7435		HTTPPath:   "/billing-groups/{billingGroupName}",
7436	}
7437
7438	if input == nil {
7439		input = &DescribeBillingGroupInput{}
7440	}
7441
7442	output = &DescribeBillingGroupOutput{}
7443	req = c.newRequest(op, input, output)
7444	return
7445}
7446
7447// DescribeBillingGroup API operation for AWS IoT.
7448//
7449// Returns information about a billing group.
7450//
7451// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7452// with awserr.Error's Code and Message methods to get detailed information about
7453// the error.
7454//
7455// See the AWS API reference guide for AWS IoT's
7456// API operation DescribeBillingGroup for usage and error information.
7457//
7458// Returned Error Types:
7459//   * InvalidRequestException
7460//   The request is not valid.
7461//
7462//   * ThrottlingException
7463//   The rate exceeds the limit.
7464//
7465//   * InternalFailureException
7466//   An unexpected error has occurred.
7467//
7468//   * ResourceNotFoundException
7469//   The specified resource does not exist.
7470//
7471func (c *IoT) DescribeBillingGroup(input *DescribeBillingGroupInput) (*DescribeBillingGroupOutput, error) {
7472	req, out := c.DescribeBillingGroupRequest(input)
7473	return out, req.Send()
7474}
7475
7476// DescribeBillingGroupWithContext is the same as DescribeBillingGroup with the addition of
7477// the ability to pass a context and additional request options.
7478//
7479// See DescribeBillingGroup for details on how to use this API operation.
7480//
7481// The context must be non-nil and will be used for request cancellation. If
7482// the context is nil a panic will occur. In the future the SDK may create
7483// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7484// for more information on using Contexts.
7485func (c *IoT) DescribeBillingGroupWithContext(ctx aws.Context, input *DescribeBillingGroupInput, opts ...request.Option) (*DescribeBillingGroupOutput, error) {
7486	req, out := c.DescribeBillingGroupRequest(input)
7487	req.SetContext(ctx)
7488	req.ApplyOptions(opts...)
7489	return out, req.Send()
7490}
7491
7492const opDescribeCACertificate = "DescribeCACertificate"
7493
7494// DescribeCACertificateRequest generates a "aws/request.Request" representing the
7495// client's request for the DescribeCACertificate operation. The "output" return
7496// value will be populated with the request's response once the request completes
7497// successfully.
7498//
7499// Use "Send" method on the returned Request to send the API call to the service.
7500// the "output" return value is not valid until after Send returns without error.
7501//
7502// See DescribeCACertificate for more information on using the DescribeCACertificate
7503// API call, and error handling.
7504//
7505// This method is useful when you want to inject custom logic or configuration
7506// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7507//
7508//
7509//    // Example sending a request using the DescribeCACertificateRequest method.
7510//    req, resp := client.DescribeCACertificateRequest(params)
7511//
7512//    err := req.Send()
7513//    if err == nil { // resp is now filled
7514//        fmt.Println(resp)
7515//    }
7516func (c *IoT) DescribeCACertificateRequest(input *DescribeCACertificateInput) (req *request.Request, output *DescribeCACertificateOutput) {
7517	op := &request.Operation{
7518		Name:       opDescribeCACertificate,
7519		HTTPMethod: "GET",
7520		HTTPPath:   "/cacertificate/{caCertificateId}",
7521	}
7522
7523	if input == nil {
7524		input = &DescribeCACertificateInput{}
7525	}
7526
7527	output = &DescribeCACertificateOutput{}
7528	req = c.newRequest(op, input, output)
7529	return
7530}
7531
7532// DescribeCACertificate API operation for AWS IoT.
7533//
7534// Describes a registered CA certificate.
7535//
7536// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7537// with awserr.Error's Code and Message methods to get detailed information about
7538// the error.
7539//
7540// See the AWS API reference guide for AWS IoT's
7541// API operation DescribeCACertificate for usage and error information.
7542//
7543// Returned Error Types:
7544//   * InvalidRequestException
7545//   The request is not valid.
7546//
7547//   * ThrottlingException
7548//   The rate exceeds the limit.
7549//
7550//   * UnauthorizedException
7551//   You are not authorized to perform this operation.
7552//
7553//   * ServiceUnavailableException
7554//   The service is temporarily unavailable.
7555//
7556//   * InternalFailureException
7557//   An unexpected error has occurred.
7558//
7559//   * ResourceNotFoundException
7560//   The specified resource does not exist.
7561//
7562func (c *IoT) DescribeCACertificate(input *DescribeCACertificateInput) (*DescribeCACertificateOutput, error) {
7563	req, out := c.DescribeCACertificateRequest(input)
7564	return out, req.Send()
7565}
7566
7567// DescribeCACertificateWithContext is the same as DescribeCACertificate with the addition of
7568// the ability to pass a context and additional request options.
7569//
7570// See DescribeCACertificate for details on how to use this API operation.
7571//
7572// The context must be non-nil and will be used for request cancellation. If
7573// the context is nil a panic will occur. In the future the SDK may create
7574// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7575// for more information on using Contexts.
7576func (c *IoT) DescribeCACertificateWithContext(ctx aws.Context, input *DescribeCACertificateInput, opts ...request.Option) (*DescribeCACertificateOutput, error) {
7577	req, out := c.DescribeCACertificateRequest(input)
7578	req.SetContext(ctx)
7579	req.ApplyOptions(opts...)
7580	return out, req.Send()
7581}
7582
7583const opDescribeCertificate = "DescribeCertificate"
7584
7585// DescribeCertificateRequest generates a "aws/request.Request" representing the
7586// client's request for the DescribeCertificate operation. The "output" return
7587// value will be populated with the request's response once the request completes
7588// successfully.
7589//
7590// Use "Send" method on the returned Request to send the API call to the service.
7591// the "output" return value is not valid until after Send returns without error.
7592//
7593// See DescribeCertificate for more information on using the DescribeCertificate
7594// API call, and error handling.
7595//
7596// This method is useful when you want to inject custom logic or configuration
7597// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7598//
7599//
7600//    // Example sending a request using the DescribeCertificateRequest method.
7601//    req, resp := client.DescribeCertificateRequest(params)
7602//
7603//    err := req.Send()
7604//    if err == nil { // resp is now filled
7605//        fmt.Println(resp)
7606//    }
7607func (c *IoT) DescribeCertificateRequest(input *DescribeCertificateInput) (req *request.Request, output *DescribeCertificateOutput) {
7608	op := &request.Operation{
7609		Name:       opDescribeCertificate,
7610		HTTPMethod: "GET",
7611		HTTPPath:   "/certificates/{certificateId}",
7612	}
7613
7614	if input == nil {
7615		input = &DescribeCertificateInput{}
7616	}
7617
7618	output = &DescribeCertificateOutput{}
7619	req = c.newRequest(op, input, output)
7620	return
7621}
7622
7623// DescribeCertificate API operation for AWS IoT.
7624//
7625// Gets information about the specified certificate.
7626//
7627// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7628// with awserr.Error's Code and Message methods to get detailed information about
7629// the error.
7630//
7631// See the AWS API reference guide for AWS IoT's
7632// API operation DescribeCertificate for usage and error information.
7633//
7634// Returned Error Types:
7635//   * InvalidRequestException
7636//   The request is not valid.
7637//
7638//   * ThrottlingException
7639//   The rate exceeds the limit.
7640//
7641//   * UnauthorizedException
7642//   You are not authorized to perform this operation.
7643//
7644//   * ServiceUnavailableException
7645//   The service is temporarily unavailable.
7646//
7647//   * InternalFailureException
7648//   An unexpected error has occurred.
7649//
7650//   * ResourceNotFoundException
7651//   The specified resource does not exist.
7652//
7653func (c *IoT) DescribeCertificate(input *DescribeCertificateInput) (*DescribeCertificateOutput, error) {
7654	req, out := c.DescribeCertificateRequest(input)
7655	return out, req.Send()
7656}
7657
7658// DescribeCertificateWithContext is the same as DescribeCertificate with the addition of
7659// the ability to pass a context and additional request options.
7660//
7661// See DescribeCertificate for details on how to use this API operation.
7662//
7663// The context must be non-nil and will be used for request cancellation. If
7664// the context is nil a panic will occur. In the future the SDK may create
7665// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7666// for more information on using Contexts.
7667func (c *IoT) DescribeCertificateWithContext(ctx aws.Context, input *DescribeCertificateInput, opts ...request.Option) (*DescribeCertificateOutput, error) {
7668	req, out := c.DescribeCertificateRequest(input)
7669	req.SetContext(ctx)
7670	req.ApplyOptions(opts...)
7671	return out, req.Send()
7672}
7673
7674const opDescribeCustomMetric = "DescribeCustomMetric"
7675
7676// DescribeCustomMetricRequest generates a "aws/request.Request" representing the
7677// client's request for the DescribeCustomMetric operation. The "output" return
7678// value will be populated with the request's response once the request completes
7679// successfully.
7680//
7681// Use "Send" method on the returned Request to send the API call to the service.
7682// the "output" return value is not valid until after Send returns without error.
7683//
7684// See DescribeCustomMetric for more information on using the DescribeCustomMetric
7685// API call, and error handling.
7686//
7687// This method is useful when you want to inject custom logic or configuration
7688// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7689//
7690//
7691//    // Example sending a request using the DescribeCustomMetricRequest method.
7692//    req, resp := client.DescribeCustomMetricRequest(params)
7693//
7694//    err := req.Send()
7695//    if err == nil { // resp is now filled
7696//        fmt.Println(resp)
7697//    }
7698func (c *IoT) DescribeCustomMetricRequest(input *DescribeCustomMetricInput) (req *request.Request, output *DescribeCustomMetricOutput) {
7699	op := &request.Operation{
7700		Name:       opDescribeCustomMetric,
7701		HTTPMethod: "GET",
7702		HTTPPath:   "/custom-metric/{metricName}",
7703	}
7704
7705	if input == nil {
7706		input = &DescribeCustomMetricInput{}
7707	}
7708
7709	output = &DescribeCustomMetricOutput{}
7710	req = c.newRequest(op, input, output)
7711	return
7712}
7713
7714// DescribeCustomMetric API operation for AWS IoT.
7715//
7716// Gets information about a Device Defender detect custom metric.
7717//
7718// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7719// with awserr.Error's Code and Message methods to get detailed information about
7720// the error.
7721//
7722// See the AWS API reference guide for AWS IoT's
7723// API operation DescribeCustomMetric for usage and error information.
7724//
7725// Returned Error Types:
7726//   * InvalidRequestException
7727//   The request is not valid.
7728//
7729//   * ResourceNotFoundException
7730//   The specified resource does not exist.
7731//
7732//   * ThrottlingException
7733//   The rate exceeds the limit.
7734//
7735//   * InternalFailureException
7736//   An unexpected error has occurred.
7737//
7738func (c *IoT) DescribeCustomMetric(input *DescribeCustomMetricInput) (*DescribeCustomMetricOutput, error) {
7739	req, out := c.DescribeCustomMetricRequest(input)
7740	return out, req.Send()
7741}
7742
7743// DescribeCustomMetricWithContext is the same as DescribeCustomMetric with the addition of
7744// the ability to pass a context and additional request options.
7745//
7746// See DescribeCustomMetric for details on how to use this API operation.
7747//
7748// The context must be non-nil and will be used for request cancellation. If
7749// the context is nil a panic will occur. In the future the SDK may create
7750// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7751// for more information on using Contexts.
7752func (c *IoT) DescribeCustomMetricWithContext(ctx aws.Context, input *DescribeCustomMetricInput, opts ...request.Option) (*DescribeCustomMetricOutput, error) {
7753	req, out := c.DescribeCustomMetricRequest(input)
7754	req.SetContext(ctx)
7755	req.ApplyOptions(opts...)
7756	return out, req.Send()
7757}
7758
7759const opDescribeDefaultAuthorizer = "DescribeDefaultAuthorizer"
7760
7761// DescribeDefaultAuthorizerRequest generates a "aws/request.Request" representing the
7762// client's request for the DescribeDefaultAuthorizer operation. The "output" return
7763// value will be populated with the request's response once the request completes
7764// successfully.
7765//
7766// Use "Send" method on the returned Request to send the API call to the service.
7767// the "output" return value is not valid until after Send returns without error.
7768//
7769// See DescribeDefaultAuthorizer for more information on using the DescribeDefaultAuthorizer
7770// API call, and error handling.
7771//
7772// This method is useful when you want to inject custom logic or configuration
7773// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7774//
7775//
7776//    // Example sending a request using the DescribeDefaultAuthorizerRequest method.
7777//    req, resp := client.DescribeDefaultAuthorizerRequest(params)
7778//
7779//    err := req.Send()
7780//    if err == nil { // resp is now filled
7781//        fmt.Println(resp)
7782//    }
7783func (c *IoT) DescribeDefaultAuthorizerRequest(input *DescribeDefaultAuthorizerInput) (req *request.Request, output *DescribeDefaultAuthorizerOutput) {
7784	op := &request.Operation{
7785		Name:       opDescribeDefaultAuthorizer,
7786		HTTPMethod: "GET",
7787		HTTPPath:   "/default-authorizer",
7788	}
7789
7790	if input == nil {
7791		input = &DescribeDefaultAuthorizerInput{}
7792	}
7793
7794	output = &DescribeDefaultAuthorizerOutput{}
7795	req = c.newRequest(op, input, output)
7796	return
7797}
7798
7799// DescribeDefaultAuthorizer API operation for AWS IoT.
7800//
7801// Describes the default authorizer.
7802//
7803// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7804// with awserr.Error's Code and Message methods to get detailed information about
7805// the error.
7806//
7807// See the AWS API reference guide for AWS IoT's
7808// API operation DescribeDefaultAuthorizer for usage and error information.
7809//
7810// Returned Error Types:
7811//   * ResourceNotFoundException
7812//   The specified resource does not exist.
7813//
7814//   * InvalidRequestException
7815//   The request is not valid.
7816//
7817//   * ThrottlingException
7818//   The rate exceeds the limit.
7819//
7820//   * UnauthorizedException
7821//   You are not authorized to perform this operation.
7822//
7823//   * ServiceUnavailableException
7824//   The service is temporarily unavailable.
7825//
7826//   * InternalFailureException
7827//   An unexpected error has occurred.
7828//
7829func (c *IoT) DescribeDefaultAuthorizer(input *DescribeDefaultAuthorizerInput) (*DescribeDefaultAuthorizerOutput, error) {
7830	req, out := c.DescribeDefaultAuthorizerRequest(input)
7831	return out, req.Send()
7832}
7833
7834// DescribeDefaultAuthorizerWithContext is the same as DescribeDefaultAuthorizer with the addition of
7835// the ability to pass a context and additional request options.
7836//
7837// See DescribeDefaultAuthorizer for details on how to use this API operation.
7838//
7839// The context must be non-nil and will be used for request cancellation. If
7840// the context is nil a panic will occur. In the future the SDK may create
7841// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7842// for more information on using Contexts.
7843func (c *IoT) DescribeDefaultAuthorizerWithContext(ctx aws.Context, input *DescribeDefaultAuthorizerInput, opts ...request.Option) (*DescribeDefaultAuthorizerOutput, error) {
7844	req, out := c.DescribeDefaultAuthorizerRequest(input)
7845	req.SetContext(ctx)
7846	req.ApplyOptions(opts...)
7847	return out, req.Send()
7848}
7849
7850const opDescribeDetectMitigationActionsTask = "DescribeDetectMitigationActionsTask"
7851
7852// DescribeDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
7853// client's request for the DescribeDetectMitigationActionsTask operation. The "output" return
7854// value will be populated with the request's response once the request completes
7855// successfully.
7856//
7857// Use "Send" method on the returned Request to send the API call to the service.
7858// the "output" return value is not valid until after Send returns without error.
7859//
7860// See DescribeDetectMitigationActionsTask for more information on using the DescribeDetectMitigationActionsTask
7861// API call, and error handling.
7862//
7863// This method is useful when you want to inject custom logic or configuration
7864// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7865//
7866//
7867//    // Example sending a request using the DescribeDetectMitigationActionsTaskRequest method.
7868//    req, resp := client.DescribeDetectMitigationActionsTaskRequest(params)
7869//
7870//    err := req.Send()
7871//    if err == nil { // resp is now filled
7872//        fmt.Println(resp)
7873//    }
7874func (c *IoT) DescribeDetectMitigationActionsTaskRequest(input *DescribeDetectMitigationActionsTaskInput) (req *request.Request, output *DescribeDetectMitigationActionsTaskOutput) {
7875	op := &request.Operation{
7876		Name:       opDescribeDetectMitigationActionsTask,
7877		HTTPMethod: "GET",
7878		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}",
7879	}
7880
7881	if input == nil {
7882		input = &DescribeDetectMitigationActionsTaskInput{}
7883	}
7884
7885	output = &DescribeDetectMitigationActionsTaskOutput{}
7886	req = c.newRequest(op, input, output)
7887	return
7888}
7889
7890// DescribeDetectMitigationActionsTask API operation for AWS IoT.
7891//
7892// Gets information about a Device Defender ML Detect mitigation action.
7893//
7894// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7895// with awserr.Error's Code and Message methods to get detailed information about
7896// the error.
7897//
7898// See the AWS API reference guide for AWS IoT's
7899// API operation DescribeDetectMitigationActionsTask for usage and error information.
7900//
7901// Returned Error Types:
7902//   * ResourceNotFoundException
7903//   The specified resource does not exist.
7904//
7905//   * InvalidRequestException
7906//   The request is not valid.
7907//
7908//   * ThrottlingException
7909//   The rate exceeds the limit.
7910//
7911//   * InternalFailureException
7912//   An unexpected error has occurred.
7913//
7914func (c *IoT) DescribeDetectMitigationActionsTask(input *DescribeDetectMitigationActionsTaskInput) (*DescribeDetectMitigationActionsTaskOutput, error) {
7915	req, out := c.DescribeDetectMitigationActionsTaskRequest(input)
7916	return out, req.Send()
7917}
7918
7919// DescribeDetectMitigationActionsTaskWithContext is the same as DescribeDetectMitigationActionsTask with the addition of
7920// the ability to pass a context and additional request options.
7921//
7922// See DescribeDetectMitigationActionsTask for details on how to use this API operation.
7923//
7924// The context must be non-nil and will be used for request cancellation. If
7925// the context is nil a panic will occur. In the future the SDK may create
7926// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7927// for more information on using Contexts.
7928func (c *IoT) DescribeDetectMitigationActionsTaskWithContext(ctx aws.Context, input *DescribeDetectMitigationActionsTaskInput, opts ...request.Option) (*DescribeDetectMitigationActionsTaskOutput, error) {
7929	req, out := c.DescribeDetectMitigationActionsTaskRequest(input)
7930	req.SetContext(ctx)
7931	req.ApplyOptions(opts...)
7932	return out, req.Send()
7933}
7934
7935const opDescribeDimension = "DescribeDimension"
7936
7937// DescribeDimensionRequest generates a "aws/request.Request" representing the
7938// client's request for the DescribeDimension operation. The "output" return
7939// value will be populated with the request's response once the request completes
7940// successfully.
7941//
7942// Use "Send" method on the returned Request to send the API call to the service.
7943// the "output" return value is not valid until after Send returns without error.
7944//
7945// See DescribeDimension for more information on using the DescribeDimension
7946// API call, and error handling.
7947//
7948// This method is useful when you want to inject custom logic or configuration
7949// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7950//
7951//
7952//    // Example sending a request using the DescribeDimensionRequest method.
7953//    req, resp := client.DescribeDimensionRequest(params)
7954//
7955//    err := req.Send()
7956//    if err == nil { // resp is now filled
7957//        fmt.Println(resp)
7958//    }
7959func (c *IoT) DescribeDimensionRequest(input *DescribeDimensionInput) (req *request.Request, output *DescribeDimensionOutput) {
7960	op := &request.Operation{
7961		Name:       opDescribeDimension,
7962		HTTPMethod: "GET",
7963		HTTPPath:   "/dimensions/{name}",
7964	}
7965
7966	if input == nil {
7967		input = &DescribeDimensionInput{}
7968	}
7969
7970	output = &DescribeDimensionOutput{}
7971	req = c.newRequest(op, input, output)
7972	return
7973}
7974
7975// DescribeDimension API operation for AWS IoT.
7976//
7977// Provides details about a dimension that is defined in your AWS account.
7978//
7979// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7980// with awserr.Error's Code and Message methods to get detailed information about
7981// the error.
7982//
7983// See the AWS API reference guide for AWS IoT's
7984// API operation DescribeDimension for usage and error information.
7985//
7986// Returned Error Types:
7987//   * InternalFailureException
7988//   An unexpected error has occurred.
7989//
7990//   * InvalidRequestException
7991//   The request is not valid.
7992//
7993//   * ResourceNotFoundException
7994//   The specified resource does not exist.
7995//
7996//   * ThrottlingException
7997//   The rate exceeds the limit.
7998//
7999func (c *IoT) DescribeDimension(input *DescribeDimensionInput) (*DescribeDimensionOutput, error) {
8000	req, out := c.DescribeDimensionRequest(input)
8001	return out, req.Send()
8002}
8003
8004// DescribeDimensionWithContext is the same as DescribeDimension with the addition of
8005// the ability to pass a context and additional request options.
8006//
8007// See DescribeDimension for details on how to use this API operation.
8008//
8009// The context must be non-nil and will be used for request cancellation. If
8010// the context is nil a panic will occur. In the future the SDK may create
8011// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8012// for more information on using Contexts.
8013func (c *IoT) DescribeDimensionWithContext(ctx aws.Context, input *DescribeDimensionInput, opts ...request.Option) (*DescribeDimensionOutput, error) {
8014	req, out := c.DescribeDimensionRequest(input)
8015	req.SetContext(ctx)
8016	req.ApplyOptions(opts...)
8017	return out, req.Send()
8018}
8019
8020const opDescribeDomainConfiguration = "DescribeDomainConfiguration"
8021
8022// DescribeDomainConfigurationRequest generates a "aws/request.Request" representing the
8023// client's request for the DescribeDomainConfiguration operation. The "output" return
8024// value will be populated with the request's response once the request completes
8025// successfully.
8026//
8027// Use "Send" method on the returned Request to send the API call to the service.
8028// the "output" return value is not valid until after Send returns without error.
8029//
8030// See DescribeDomainConfiguration for more information on using the DescribeDomainConfiguration
8031// API call, and error handling.
8032//
8033// This method is useful when you want to inject custom logic or configuration
8034// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8035//
8036//
8037//    // Example sending a request using the DescribeDomainConfigurationRequest method.
8038//    req, resp := client.DescribeDomainConfigurationRequest(params)
8039//
8040//    err := req.Send()
8041//    if err == nil { // resp is now filled
8042//        fmt.Println(resp)
8043//    }
8044func (c *IoT) DescribeDomainConfigurationRequest(input *DescribeDomainConfigurationInput) (req *request.Request, output *DescribeDomainConfigurationOutput) {
8045	op := &request.Operation{
8046		Name:       opDescribeDomainConfiguration,
8047		HTTPMethod: "GET",
8048		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
8049	}
8050
8051	if input == nil {
8052		input = &DescribeDomainConfigurationInput{}
8053	}
8054
8055	output = &DescribeDomainConfigurationOutput{}
8056	req = c.newRequest(op, input, output)
8057	return
8058}
8059
8060// DescribeDomainConfiguration API operation for AWS IoT.
8061//
8062// Gets summary information about a domain configuration.
8063//
8064// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8065// with awserr.Error's Code and Message methods to get detailed information about
8066// the error.
8067//
8068// See the AWS API reference guide for AWS IoT's
8069// API operation DescribeDomainConfiguration for usage and error information.
8070//
8071// Returned Error Types:
8072//   * ResourceNotFoundException
8073//   The specified resource does not exist.
8074//
8075//   * ThrottlingException
8076//   The rate exceeds the limit.
8077//
8078//   * InvalidRequestException
8079//   The request is not valid.
8080//
8081//   * UnauthorizedException
8082//   You are not authorized to perform this operation.
8083//
8084//   * ServiceUnavailableException
8085//   The service is temporarily unavailable.
8086//
8087//   * InternalFailureException
8088//   An unexpected error has occurred.
8089//
8090func (c *IoT) DescribeDomainConfiguration(input *DescribeDomainConfigurationInput) (*DescribeDomainConfigurationOutput, error) {
8091	req, out := c.DescribeDomainConfigurationRequest(input)
8092	return out, req.Send()
8093}
8094
8095// DescribeDomainConfigurationWithContext is the same as DescribeDomainConfiguration with the addition of
8096// the ability to pass a context and additional request options.
8097//
8098// See DescribeDomainConfiguration for details on how to use this API operation.
8099//
8100// The context must be non-nil and will be used for request cancellation. If
8101// the context is nil a panic will occur. In the future the SDK may create
8102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8103// for more information on using Contexts.
8104func (c *IoT) DescribeDomainConfigurationWithContext(ctx aws.Context, input *DescribeDomainConfigurationInput, opts ...request.Option) (*DescribeDomainConfigurationOutput, error) {
8105	req, out := c.DescribeDomainConfigurationRequest(input)
8106	req.SetContext(ctx)
8107	req.ApplyOptions(opts...)
8108	return out, req.Send()
8109}
8110
8111const opDescribeEndpoint = "DescribeEndpoint"
8112
8113// DescribeEndpointRequest generates a "aws/request.Request" representing the
8114// client's request for the DescribeEndpoint operation. The "output" return
8115// value will be populated with the request's response once the request completes
8116// successfully.
8117//
8118// Use "Send" method on the returned Request to send the API call to the service.
8119// the "output" return value is not valid until after Send returns without error.
8120//
8121// See DescribeEndpoint for more information on using the DescribeEndpoint
8122// API call, and error handling.
8123//
8124// This method is useful when you want to inject custom logic or configuration
8125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8126//
8127//
8128//    // Example sending a request using the DescribeEndpointRequest method.
8129//    req, resp := client.DescribeEndpointRequest(params)
8130//
8131//    err := req.Send()
8132//    if err == nil { // resp is now filled
8133//        fmt.Println(resp)
8134//    }
8135func (c *IoT) DescribeEndpointRequest(input *DescribeEndpointInput) (req *request.Request, output *DescribeEndpointOutput) {
8136	op := &request.Operation{
8137		Name:       opDescribeEndpoint,
8138		HTTPMethod: "GET",
8139		HTTPPath:   "/endpoint",
8140	}
8141
8142	if input == nil {
8143		input = &DescribeEndpointInput{}
8144	}
8145
8146	output = &DescribeEndpointOutput{}
8147	req = c.newRequest(op, input, output)
8148	return
8149}
8150
8151// DescribeEndpoint API operation for AWS IoT.
8152//
8153// Returns a unique endpoint specific to the AWS account making the call.
8154//
8155// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8156// with awserr.Error's Code and Message methods to get detailed information about
8157// the error.
8158//
8159// See the AWS API reference guide for AWS IoT's
8160// API operation DescribeEndpoint for usage and error information.
8161//
8162// Returned Error Types:
8163//   * InternalFailureException
8164//   An unexpected error has occurred.
8165//
8166//   * InvalidRequestException
8167//   The request is not valid.
8168//
8169//   * UnauthorizedException
8170//   You are not authorized to perform this operation.
8171//
8172//   * ThrottlingException
8173//   The rate exceeds the limit.
8174//
8175func (c *IoT) DescribeEndpoint(input *DescribeEndpointInput) (*DescribeEndpointOutput, error) {
8176	req, out := c.DescribeEndpointRequest(input)
8177	return out, req.Send()
8178}
8179
8180// DescribeEndpointWithContext is the same as DescribeEndpoint with the addition of
8181// the ability to pass a context and additional request options.
8182//
8183// See DescribeEndpoint for details on how to use this API operation.
8184//
8185// The context must be non-nil and will be used for request cancellation. If
8186// the context is nil a panic will occur. In the future the SDK may create
8187// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8188// for more information on using Contexts.
8189func (c *IoT) DescribeEndpointWithContext(ctx aws.Context, input *DescribeEndpointInput, opts ...request.Option) (*DescribeEndpointOutput, error) {
8190	req, out := c.DescribeEndpointRequest(input)
8191	req.SetContext(ctx)
8192	req.ApplyOptions(opts...)
8193	return out, req.Send()
8194}
8195
8196const opDescribeEventConfigurations = "DescribeEventConfigurations"
8197
8198// DescribeEventConfigurationsRequest generates a "aws/request.Request" representing the
8199// client's request for the DescribeEventConfigurations operation. The "output" return
8200// value will be populated with the request's response once the request completes
8201// successfully.
8202//
8203// Use "Send" method on the returned Request to send the API call to the service.
8204// the "output" return value is not valid until after Send returns without error.
8205//
8206// See DescribeEventConfigurations for more information on using the DescribeEventConfigurations
8207// API call, and error handling.
8208//
8209// This method is useful when you want to inject custom logic or configuration
8210// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8211//
8212//
8213//    // Example sending a request using the DescribeEventConfigurationsRequest method.
8214//    req, resp := client.DescribeEventConfigurationsRequest(params)
8215//
8216//    err := req.Send()
8217//    if err == nil { // resp is now filled
8218//        fmt.Println(resp)
8219//    }
8220func (c *IoT) DescribeEventConfigurationsRequest(input *DescribeEventConfigurationsInput) (req *request.Request, output *DescribeEventConfigurationsOutput) {
8221	op := &request.Operation{
8222		Name:       opDescribeEventConfigurations,
8223		HTTPMethod: "GET",
8224		HTTPPath:   "/event-configurations",
8225	}
8226
8227	if input == nil {
8228		input = &DescribeEventConfigurationsInput{}
8229	}
8230
8231	output = &DescribeEventConfigurationsOutput{}
8232	req = c.newRequest(op, input, output)
8233	return
8234}
8235
8236// DescribeEventConfigurations API operation for AWS IoT.
8237//
8238// Describes event configurations.
8239//
8240// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8241// with awserr.Error's Code and Message methods to get detailed information about
8242// the error.
8243//
8244// See the AWS API reference guide for AWS IoT's
8245// API operation DescribeEventConfigurations for usage and error information.
8246//
8247// Returned Error Types:
8248//   * InternalFailureException
8249//   An unexpected error has occurred.
8250//
8251//   * ThrottlingException
8252//   The rate exceeds the limit.
8253//
8254func (c *IoT) DescribeEventConfigurations(input *DescribeEventConfigurationsInput) (*DescribeEventConfigurationsOutput, error) {
8255	req, out := c.DescribeEventConfigurationsRequest(input)
8256	return out, req.Send()
8257}
8258
8259// DescribeEventConfigurationsWithContext is the same as DescribeEventConfigurations with the addition of
8260// the ability to pass a context and additional request options.
8261//
8262// See DescribeEventConfigurations for details on how to use this API operation.
8263//
8264// The context must be non-nil and will be used for request cancellation. If
8265// the context is nil a panic will occur. In the future the SDK may create
8266// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8267// for more information on using Contexts.
8268func (c *IoT) DescribeEventConfigurationsWithContext(ctx aws.Context, input *DescribeEventConfigurationsInput, opts ...request.Option) (*DescribeEventConfigurationsOutput, error) {
8269	req, out := c.DescribeEventConfigurationsRequest(input)
8270	req.SetContext(ctx)
8271	req.ApplyOptions(opts...)
8272	return out, req.Send()
8273}
8274
8275const opDescribeIndex = "DescribeIndex"
8276
8277// DescribeIndexRequest generates a "aws/request.Request" representing the
8278// client's request for the DescribeIndex operation. The "output" return
8279// value will be populated with the request's response once the request completes
8280// successfully.
8281//
8282// Use "Send" method on the returned Request to send the API call to the service.
8283// the "output" return value is not valid until after Send returns without error.
8284//
8285// See DescribeIndex for more information on using the DescribeIndex
8286// API call, and error handling.
8287//
8288// This method is useful when you want to inject custom logic or configuration
8289// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8290//
8291//
8292//    // Example sending a request using the DescribeIndexRequest method.
8293//    req, resp := client.DescribeIndexRequest(params)
8294//
8295//    err := req.Send()
8296//    if err == nil { // resp is now filled
8297//        fmt.Println(resp)
8298//    }
8299func (c *IoT) DescribeIndexRequest(input *DescribeIndexInput) (req *request.Request, output *DescribeIndexOutput) {
8300	op := &request.Operation{
8301		Name:       opDescribeIndex,
8302		HTTPMethod: "GET",
8303		HTTPPath:   "/indices/{indexName}",
8304	}
8305
8306	if input == nil {
8307		input = &DescribeIndexInput{}
8308	}
8309
8310	output = &DescribeIndexOutput{}
8311	req = c.newRequest(op, input, output)
8312	return
8313}
8314
8315// DescribeIndex API operation for AWS IoT.
8316//
8317// Describes a search index.
8318//
8319// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8320// with awserr.Error's Code and Message methods to get detailed information about
8321// the error.
8322//
8323// See the AWS API reference guide for AWS IoT's
8324// API operation DescribeIndex for usage and error information.
8325//
8326// Returned Error Types:
8327//   * InvalidRequestException
8328//   The request is not valid.
8329//
8330//   * ThrottlingException
8331//   The rate exceeds the limit.
8332//
8333//   * UnauthorizedException
8334//   You are not authorized to perform this operation.
8335//
8336//   * ServiceUnavailableException
8337//   The service is temporarily unavailable.
8338//
8339//   * InternalFailureException
8340//   An unexpected error has occurred.
8341//
8342//   * ResourceNotFoundException
8343//   The specified resource does not exist.
8344//
8345func (c *IoT) DescribeIndex(input *DescribeIndexInput) (*DescribeIndexOutput, error) {
8346	req, out := c.DescribeIndexRequest(input)
8347	return out, req.Send()
8348}
8349
8350// DescribeIndexWithContext is the same as DescribeIndex with the addition of
8351// the ability to pass a context and additional request options.
8352//
8353// See DescribeIndex for details on how to use this API operation.
8354//
8355// The context must be non-nil and will be used for request cancellation. If
8356// the context is nil a panic will occur. In the future the SDK may create
8357// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8358// for more information on using Contexts.
8359func (c *IoT) DescribeIndexWithContext(ctx aws.Context, input *DescribeIndexInput, opts ...request.Option) (*DescribeIndexOutput, error) {
8360	req, out := c.DescribeIndexRequest(input)
8361	req.SetContext(ctx)
8362	req.ApplyOptions(opts...)
8363	return out, req.Send()
8364}
8365
8366const opDescribeJob = "DescribeJob"
8367
8368// DescribeJobRequest generates a "aws/request.Request" representing the
8369// client's request for the DescribeJob operation. The "output" return
8370// value will be populated with the request's response once the request completes
8371// successfully.
8372//
8373// Use "Send" method on the returned Request to send the API call to the service.
8374// the "output" return value is not valid until after Send returns without error.
8375//
8376// See DescribeJob for more information on using the DescribeJob
8377// API call, and error handling.
8378//
8379// This method is useful when you want to inject custom logic or configuration
8380// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8381//
8382//
8383//    // Example sending a request using the DescribeJobRequest method.
8384//    req, resp := client.DescribeJobRequest(params)
8385//
8386//    err := req.Send()
8387//    if err == nil { // resp is now filled
8388//        fmt.Println(resp)
8389//    }
8390func (c *IoT) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
8391	op := &request.Operation{
8392		Name:       opDescribeJob,
8393		HTTPMethod: "GET",
8394		HTTPPath:   "/jobs/{jobId}",
8395	}
8396
8397	if input == nil {
8398		input = &DescribeJobInput{}
8399	}
8400
8401	output = &DescribeJobOutput{}
8402	req = c.newRequest(op, input, output)
8403	return
8404}
8405
8406// DescribeJob API operation for AWS IoT.
8407//
8408// Describes a job.
8409//
8410// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8411// with awserr.Error's Code and Message methods to get detailed information about
8412// the error.
8413//
8414// See the AWS API reference guide for AWS IoT's
8415// API operation DescribeJob for usage and error information.
8416//
8417// Returned Error Types:
8418//   * InvalidRequestException
8419//   The request is not valid.
8420//
8421//   * ResourceNotFoundException
8422//   The specified resource does not exist.
8423//
8424//   * ThrottlingException
8425//   The rate exceeds the limit.
8426//
8427//   * ServiceUnavailableException
8428//   The service is temporarily unavailable.
8429//
8430func (c *IoT) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
8431	req, out := c.DescribeJobRequest(input)
8432	return out, req.Send()
8433}
8434
8435// DescribeJobWithContext is the same as DescribeJob with the addition of
8436// the ability to pass a context and additional request options.
8437//
8438// See DescribeJob for details on how to use this API operation.
8439//
8440// The context must be non-nil and will be used for request cancellation. If
8441// the context is nil a panic will occur. In the future the SDK may create
8442// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8443// for more information on using Contexts.
8444func (c *IoT) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) {
8445	req, out := c.DescribeJobRequest(input)
8446	req.SetContext(ctx)
8447	req.ApplyOptions(opts...)
8448	return out, req.Send()
8449}
8450
8451const opDescribeJobExecution = "DescribeJobExecution"
8452
8453// DescribeJobExecutionRequest generates a "aws/request.Request" representing the
8454// client's request for the DescribeJobExecution operation. The "output" return
8455// value will be populated with the request's response once the request completes
8456// successfully.
8457//
8458// Use "Send" method on the returned Request to send the API call to the service.
8459// the "output" return value is not valid until after Send returns without error.
8460//
8461// See DescribeJobExecution for more information on using the DescribeJobExecution
8462// API call, and error handling.
8463//
8464// This method is useful when you want to inject custom logic or configuration
8465// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8466//
8467//
8468//    // Example sending a request using the DescribeJobExecutionRequest method.
8469//    req, resp := client.DescribeJobExecutionRequest(params)
8470//
8471//    err := req.Send()
8472//    if err == nil { // resp is now filled
8473//        fmt.Println(resp)
8474//    }
8475func (c *IoT) DescribeJobExecutionRequest(input *DescribeJobExecutionInput) (req *request.Request, output *DescribeJobExecutionOutput) {
8476	op := &request.Operation{
8477		Name:       opDescribeJobExecution,
8478		HTTPMethod: "GET",
8479		HTTPPath:   "/things/{thingName}/jobs/{jobId}",
8480	}
8481
8482	if input == nil {
8483		input = &DescribeJobExecutionInput{}
8484	}
8485
8486	output = &DescribeJobExecutionOutput{}
8487	req = c.newRequest(op, input, output)
8488	return
8489}
8490
8491// DescribeJobExecution API operation for AWS IoT.
8492//
8493// Describes a job execution.
8494//
8495// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8496// with awserr.Error's Code and Message methods to get detailed information about
8497// the error.
8498//
8499// See the AWS API reference guide for AWS IoT's
8500// API operation DescribeJobExecution for usage and error information.
8501//
8502// Returned Error Types:
8503//   * InvalidRequestException
8504//   The request is not valid.
8505//
8506//   * ResourceNotFoundException
8507//   The specified resource does not exist.
8508//
8509//   * ThrottlingException
8510//   The rate exceeds the limit.
8511//
8512//   * ServiceUnavailableException
8513//   The service is temporarily unavailable.
8514//
8515func (c *IoT) DescribeJobExecution(input *DescribeJobExecutionInput) (*DescribeJobExecutionOutput, error) {
8516	req, out := c.DescribeJobExecutionRequest(input)
8517	return out, req.Send()
8518}
8519
8520// DescribeJobExecutionWithContext is the same as DescribeJobExecution with the addition of
8521// the ability to pass a context and additional request options.
8522//
8523// See DescribeJobExecution for details on how to use this API operation.
8524//
8525// The context must be non-nil and will be used for request cancellation. If
8526// the context is nil a panic will occur. In the future the SDK may create
8527// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8528// for more information on using Contexts.
8529func (c *IoT) DescribeJobExecutionWithContext(ctx aws.Context, input *DescribeJobExecutionInput, opts ...request.Option) (*DescribeJobExecutionOutput, error) {
8530	req, out := c.DescribeJobExecutionRequest(input)
8531	req.SetContext(ctx)
8532	req.ApplyOptions(opts...)
8533	return out, req.Send()
8534}
8535
8536const opDescribeJobTemplate = "DescribeJobTemplate"
8537
8538// DescribeJobTemplateRequest generates a "aws/request.Request" representing the
8539// client's request for the DescribeJobTemplate operation. The "output" return
8540// value will be populated with the request's response once the request completes
8541// successfully.
8542//
8543// Use "Send" method on the returned Request to send the API call to the service.
8544// the "output" return value is not valid until after Send returns without error.
8545//
8546// See DescribeJobTemplate for more information on using the DescribeJobTemplate
8547// API call, and error handling.
8548//
8549// This method is useful when you want to inject custom logic or configuration
8550// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8551//
8552//
8553//    // Example sending a request using the DescribeJobTemplateRequest method.
8554//    req, resp := client.DescribeJobTemplateRequest(params)
8555//
8556//    err := req.Send()
8557//    if err == nil { // resp is now filled
8558//        fmt.Println(resp)
8559//    }
8560func (c *IoT) DescribeJobTemplateRequest(input *DescribeJobTemplateInput) (req *request.Request, output *DescribeJobTemplateOutput) {
8561	op := &request.Operation{
8562		Name:       opDescribeJobTemplate,
8563		HTTPMethod: "GET",
8564		HTTPPath:   "/job-templates/{jobTemplateId}",
8565	}
8566
8567	if input == nil {
8568		input = &DescribeJobTemplateInput{}
8569	}
8570
8571	output = &DescribeJobTemplateOutput{}
8572	req = c.newRequest(op, input, output)
8573	return
8574}
8575
8576// DescribeJobTemplate API operation for AWS IoT.
8577//
8578// Returns information about a job template.
8579//
8580// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8581// with awserr.Error's Code and Message methods to get detailed information about
8582// the error.
8583//
8584// See the AWS API reference guide for AWS IoT's
8585// API operation DescribeJobTemplate for usage and error information.
8586//
8587// Returned Error Types:
8588//   * InvalidRequestException
8589//   The request is not valid.
8590//
8591//   * ResourceNotFoundException
8592//   The specified resource does not exist.
8593//
8594//   * ThrottlingException
8595//   The rate exceeds the limit.
8596//
8597//   * InternalFailureException
8598//   An unexpected error has occurred.
8599//
8600func (c *IoT) DescribeJobTemplate(input *DescribeJobTemplateInput) (*DescribeJobTemplateOutput, error) {
8601	req, out := c.DescribeJobTemplateRequest(input)
8602	return out, req.Send()
8603}
8604
8605// DescribeJobTemplateWithContext is the same as DescribeJobTemplate with the addition of
8606// the ability to pass a context and additional request options.
8607//
8608// See DescribeJobTemplate for details on how to use this API operation.
8609//
8610// The context must be non-nil and will be used for request cancellation. If
8611// the context is nil a panic will occur. In the future the SDK may create
8612// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8613// for more information on using Contexts.
8614func (c *IoT) DescribeJobTemplateWithContext(ctx aws.Context, input *DescribeJobTemplateInput, opts ...request.Option) (*DescribeJobTemplateOutput, error) {
8615	req, out := c.DescribeJobTemplateRequest(input)
8616	req.SetContext(ctx)
8617	req.ApplyOptions(opts...)
8618	return out, req.Send()
8619}
8620
8621const opDescribeMitigationAction = "DescribeMitigationAction"
8622
8623// DescribeMitigationActionRequest generates a "aws/request.Request" representing the
8624// client's request for the DescribeMitigationAction operation. The "output" return
8625// value will be populated with the request's response once the request completes
8626// successfully.
8627//
8628// Use "Send" method on the returned Request to send the API call to the service.
8629// the "output" return value is not valid until after Send returns without error.
8630//
8631// See DescribeMitigationAction for more information on using the DescribeMitigationAction
8632// API call, and error handling.
8633//
8634// This method is useful when you want to inject custom logic or configuration
8635// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8636//
8637//
8638//    // Example sending a request using the DescribeMitigationActionRequest method.
8639//    req, resp := client.DescribeMitigationActionRequest(params)
8640//
8641//    err := req.Send()
8642//    if err == nil { // resp is now filled
8643//        fmt.Println(resp)
8644//    }
8645func (c *IoT) DescribeMitigationActionRequest(input *DescribeMitigationActionInput) (req *request.Request, output *DescribeMitigationActionOutput) {
8646	op := &request.Operation{
8647		Name:       opDescribeMitigationAction,
8648		HTTPMethod: "GET",
8649		HTTPPath:   "/mitigationactions/actions/{actionName}",
8650	}
8651
8652	if input == nil {
8653		input = &DescribeMitigationActionInput{}
8654	}
8655
8656	output = &DescribeMitigationActionOutput{}
8657	req = c.newRequest(op, input, output)
8658	return
8659}
8660
8661// DescribeMitigationAction API operation for AWS IoT.
8662//
8663// Gets information about a mitigation action.
8664//
8665// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8666// with awserr.Error's Code and Message methods to get detailed information about
8667// the error.
8668//
8669// See the AWS API reference guide for AWS IoT's
8670// API operation DescribeMitigationAction for usage and error information.
8671//
8672// Returned Error Types:
8673//   * InvalidRequestException
8674//   The request is not valid.
8675//
8676//   * ResourceNotFoundException
8677//   The specified resource does not exist.
8678//
8679//   * ThrottlingException
8680//   The rate exceeds the limit.
8681//
8682//   * InternalFailureException
8683//   An unexpected error has occurred.
8684//
8685func (c *IoT) DescribeMitigationAction(input *DescribeMitigationActionInput) (*DescribeMitigationActionOutput, error) {
8686	req, out := c.DescribeMitigationActionRequest(input)
8687	return out, req.Send()
8688}
8689
8690// DescribeMitigationActionWithContext is the same as DescribeMitigationAction with the addition of
8691// the ability to pass a context and additional request options.
8692//
8693// See DescribeMitigationAction for details on how to use this API operation.
8694//
8695// The context must be non-nil and will be used for request cancellation. If
8696// the context is nil a panic will occur. In the future the SDK may create
8697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8698// for more information on using Contexts.
8699func (c *IoT) DescribeMitigationActionWithContext(ctx aws.Context, input *DescribeMitigationActionInput, opts ...request.Option) (*DescribeMitigationActionOutput, error) {
8700	req, out := c.DescribeMitigationActionRequest(input)
8701	req.SetContext(ctx)
8702	req.ApplyOptions(opts...)
8703	return out, req.Send()
8704}
8705
8706const opDescribeProvisioningTemplate = "DescribeProvisioningTemplate"
8707
8708// DescribeProvisioningTemplateRequest generates a "aws/request.Request" representing the
8709// client's request for the DescribeProvisioningTemplate operation. The "output" return
8710// value will be populated with the request's response once the request completes
8711// successfully.
8712//
8713// Use "Send" method on the returned Request to send the API call to the service.
8714// the "output" return value is not valid until after Send returns without error.
8715//
8716// See DescribeProvisioningTemplate for more information on using the DescribeProvisioningTemplate
8717// API call, and error handling.
8718//
8719// This method is useful when you want to inject custom logic or configuration
8720// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8721//
8722//
8723//    // Example sending a request using the DescribeProvisioningTemplateRequest method.
8724//    req, resp := client.DescribeProvisioningTemplateRequest(params)
8725//
8726//    err := req.Send()
8727//    if err == nil { // resp is now filled
8728//        fmt.Println(resp)
8729//    }
8730func (c *IoT) DescribeProvisioningTemplateRequest(input *DescribeProvisioningTemplateInput) (req *request.Request, output *DescribeProvisioningTemplateOutput) {
8731	op := &request.Operation{
8732		Name:       opDescribeProvisioningTemplate,
8733		HTTPMethod: "GET",
8734		HTTPPath:   "/provisioning-templates/{templateName}",
8735	}
8736
8737	if input == nil {
8738		input = &DescribeProvisioningTemplateInput{}
8739	}
8740
8741	output = &DescribeProvisioningTemplateOutput{}
8742	req = c.newRequest(op, input, output)
8743	return
8744}
8745
8746// DescribeProvisioningTemplate API operation for AWS IoT.
8747//
8748// Returns information about a fleet provisioning template.
8749//
8750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8751// with awserr.Error's Code and Message methods to get detailed information about
8752// the error.
8753//
8754// See the AWS API reference guide for AWS IoT's
8755// API operation DescribeProvisioningTemplate for usage and error information.
8756//
8757// Returned Error Types:
8758//   * InternalFailureException
8759//   An unexpected error has occurred.
8760//
8761//   * InvalidRequestException
8762//   The request is not valid.
8763//
8764//   * ResourceNotFoundException
8765//   The specified resource does not exist.
8766//
8767//   * ThrottlingException
8768//   The rate exceeds the limit.
8769//
8770//   * UnauthorizedException
8771//   You are not authorized to perform this operation.
8772//
8773func (c *IoT) DescribeProvisioningTemplate(input *DescribeProvisioningTemplateInput) (*DescribeProvisioningTemplateOutput, error) {
8774	req, out := c.DescribeProvisioningTemplateRequest(input)
8775	return out, req.Send()
8776}
8777
8778// DescribeProvisioningTemplateWithContext is the same as DescribeProvisioningTemplate with the addition of
8779// the ability to pass a context and additional request options.
8780//
8781// See DescribeProvisioningTemplate for details on how to use this API operation.
8782//
8783// The context must be non-nil and will be used for request cancellation. If
8784// the context is nil a panic will occur. In the future the SDK may create
8785// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8786// for more information on using Contexts.
8787func (c *IoT) DescribeProvisioningTemplateWithContext(ctx aws.Context, input *DescribeProvisioningTemplateInput, opts ...request.Option) (*DescribeProvisioningTemplateOutput, error) {
8788	req, out := c.DescribeProvisioningTemplateRequest(input)
8789	req.SetContext(ctx)
8790	req.ApplyOptions(opts...)
8791	return out, req.Send()
8792}
8793
8794const opDescribeProvisioningTemplateVersion = "DescribeProvisioningTemplateVersion"
8795
8796// DescribeProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
8797// client's request for the DescribeProvisioningTemplateVersion operation. The "output" return
8798// value will be populated with the request's response once the request completes
8799// successfully.
8800//
8801// Use "Send" method on the returned Request to send the API call to the service.
8802// the "output" return value is not valid until after Send returns without error.
8803//
8804// See DescribeProvisioningTemplateVersion for more information on using the DescribeProvisioningTemplateVersion
8805// API call, and error handling.
8806//
8807// This method is useful when you want to inject custom logic or configuration
8808// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8809//
8810//
8811//    // Example sending a request using the DescribeProvisioningTemplateVersionRequest method.
8812//    req, resp := client.DescribeProvisioningTemplateVersionRequest(params)
8813//
8814//    err := req.Send()
8815//    if err == nil { // resp is now filled
8816//        fmt.Println(resp)
8817//    }
8818func (c *IoT) DescribeProvisioningTemplateVersionRequest(input *DescribeProvisioningTemplateVersionInput) (req *request.Request, output *DescribeProvisioningTemplateVersionOutput) {
8819	op := &request.Operation{
8820		Name:       opDescribeProvisioningTemplateVersion,
8821		HTTPMethod: "GET",
8822		HTTPPath:   "/provisioning-templates/{templateName}/versions/{versionId}",
8823	}
8824
8825	if input == nil {
8826		input = &DescribeProvisioningTemplateVersionInput{}
8827	}
8828
8829	output = &DescribeProvisioningTemplateVersionOutput{}
8830	req = c.newRequest(op, input, output)
8831	return
8832}
8833
8834// DescribeProvisioningTemplateVersion API operation for AWS IoT.
8835//
8836// Returns information about a fleet provisioning template version.
8837//
8838// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8839// with awserr.Error's Code and Message methods to get detailed information about
8840// the error.
8841//
8842// See the AWS API reference guide for AWS IoT's
8843// API operation DescribeProvisioningTemplateVersion for usage and error information.
8844//
8845// Returned Error Types:
8846//   * InternalFailureException
8847//   An unexpected error has occurred.
8848//
8849//   * InvalidRequestException
8850//   The request is not valid.
8851//
8852//   * ThrottlingException
8853//   The rate exceeds the limit.
8854//
8855//   * ResourceNotFoundException
8856//   The specified resource does not exist.
8857//
8858//   * UnauthorizedException
8859//   You are not authorized to perform this operation.
8860//
8861func (c *IoT) DescribeProvisioningTemplateVersion(input *DescribeProvisioningTemplateVersionInput) (*DescribeProvisioningTemplateVersionOutput, error) {
8862	req, out := c.DescribeProvisioningTemplateVersionRequest(input)
8863	return out, req.Send()
8864}
8865
8866// DescribeProvisioningTemplateVersionWithContext is the same as DescribeProvisioningTemplateVersion with the addition of
8867// the ability to pass a context and additional request options.
8868//
8869// See DescribeProvisioningTemplateVersion for details on how to use this API operation.
8870//
8871// The context must be non-nil and will be used for request cancellation. If
8872// the context is nil a panic will occur. In the future the SDK may create
8873// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8874// for more information on using Contexts.
8875func (c *IoT) DescribeProvisioningTemplateVersionWithContext(ctx aws.Context, input *DescribeProvisioningTemplateVersionInput, opts ...request.Option) (*DescribeProvisioningTemplateVersionOutput, error) {
8876	req, out := c.DescribeProvisioningTemplateVersionRequest(input)
8877	req.SetContext(ctx)
8878	req.ApplyOptions(opts...)
8879	return out, req.Send()
8880}
8881
8882const opDescribeRoleAlias = "DescribeRoleAlias"
8883
8884// DescribeRoleAliasRequest generates a "aws/request.Request" representing the
8885// client's request for the DescribeRoleAlias operation. The "output" return
8886// value will be populated with the request's response once the request completes
8887// successfully.
8888//
8889// Use "Send" method on the returned Request to send the API call to the service.
8890// the "output" return value is not valid until after Send returns without error.
8891//
8892// See DescribeRoleAlias for more information on using the DescribeRoleAlias
8893// API call, and error handling.
8894//
8895// This method is useful when you want to inject custom logic or configuration
8896// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8897//
8898//
8899//    // Example sending a request using the DescribeRoleAliasRequest method.
8900//    req, resp := client.DescribeRoleAliasRequest(params)
8901//
8902//    err := req.Send()
8903//    if err == nil { // resp is now filled
8904//        fmt.Println(resp)
8905//    }
8906func (c *IoT) DescribeRoleAliasRequest(input *DescribeRoleAliasInput) (req *request.Request, output *DescribeRoleAliasOutput) {
8907	op := &request.Operation{
8908		Name:       opDescribeRoleAlias,
8909		HTTPMethod: "GET",
8910		HTTPPath:   "/role-aliases/{roleAlias}",
8911	}
8912
8913	if input == nil {
8914		input = &DescribeRoleAliasInput{}
8915	}
8916
8917	output = &DescribeRoleAliasOutput{}
8918	req = c.newRequest(op, input, output)
8919	return
8920}
8921
8922// DescribeRoleAlias API operation for AWS IoT.
8923//
8924// Describes a role alias.
8925//
8926// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8927// with awserr.Error's Code and Message methods to get detailed information about
8928// the error.
8929//
8930// See the AWS API reference guide for AWS IoT's
8931// API operation DescribeRoleAlias for usage and error information.
8932//
8933// Returned Error Types:
8934//   * InvalidRequestException
8935//   The request is not valid.
8936//
8937//   * ThrottlingException
8938//   The rate exceeds the limit.
8939//
8940//   * UnauthorizedException
8941//   You are not authorized to perform this operation.
8942//
8943//   * ServiceUnavailableException
8944//   The service is temporarily unavailable.
8945//
8946//   * InternalFailureException
8947//   An unexpected error has occurred.
8948//
8949//   * ResourceNotFoundException
8950//   The specified resource does not exist.
8951//
8952func (c *IoT) DescribeRoleAlias(input *DescribeRoleAliasInput) (*DescribeRoleAliasOutput, error) {
8953	req, out := c.DescribeRoleAliasRequest(input)
8954	return out, req.Send()
8955}
8956
8957// DescribeRoleAliasWithContext is the same as DescribeRoleAlias with the addition of
8958// the ability to pass a context and additional request options.
8959//
8960// See DescribeRoleAlias for details on how to use this API operation.
8961//
8962// The context must be non-nil and will be used for request cancellation. If
8963// the context is nil a panic will occur. In the future the SDK may create
8964// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8965// for more information on using Contexts.
8966func (c *IoT) DescribeRoleAliasWithContext(ctx aws.Context, input *DescribeRoleAliasInput, opts ...request.Option) (*DescribeRoleAliasOutput, error) {
8967	req, out := c.DescribeRoleAliasRequest(input)
8968	req.SetContext(ctx)
8969	req.ApplyOptions(opts...)
8970	return out, req.Send()
8971}
8972
8973const opDescribeScheduledAudit = "DescribeScheduledAudit"
8974
8975// DescribeScheduledAuditRequest generates a "aws/request.Request" representing the
8976// client's request for the DescribeScheduledAudit operation. The "output" return
8977// value will be populated with the request's response once the request completes
8978// successfully.
8979//
8980// Use "Send" method on the returned Request to send the API call to the service.
8981// the "output" return value is not valid until after Send returns without error.
8982//
8983// See DescribeScheduledAudit for more information on using the DescribeScheduledAudit
8984// API call, and error handling.
8985//
8986// This method is useful when you want to inject custom logic or configuration
8987// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8988//
8989//
8990//    // Example sending a request using the DescribeScheduledAuditRequest method.
8991//    req, resp := client.DescribeScheduledAuditRequest(params)
8992//
8993//    err := req.Send()
8994//    if err == nil { // resp is now filled
8995//        fmt.Println(resp)
8996//    }
8997func (c *IoT) DescribeScheduledAuditRequest(input *DescribeScheduledAuditInput) (req *request.Request, output *DescribeScheduledAuditOutput) {
8998	op := &request.Operation{
8999		Name:       opDescribeScheduledAudit,
9000		HTTPMethod: "GET",
9001		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
9002	}
9003
9004	if input == nil {
9005		input = &DescribeScheduledAuditInput{}
9006	}
9007
9008	output = &DescribeScheduledAuditOutput{}
9009	req = c.newRequest(op, input, output)
9010	return
9011}
9012
9013// DescribeScheduledAudit API operation for AWS IoT.
9014//
9015// Gets information about a scheduled audit.
9016//
9017// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9018// with awserr.Error's Code and Message methods to get detailed information about
9019// the error.
9020//
9021// See the AWS API reference guide for AWS IoT's
9022// API operation DescribeScheduledAudit for usage and error information.
9023//
9024// Returned Error Types:
9025//   * InvalidRequestException
9026//   The request is not valid.
9027//
9028//   * ResourceNotFoundException
9029//   The specified resource does not exist.
9030//
9031//   * ThrottlingException
9032//   The rate exceeds the limit.
9033//
9034//   * InternalFailureException
9035//   An unexpected error has occurred.
9036//
9037func (c *IoT) DescribeScheduledAudit(input *DescribeScheduledAuditInput) (*DescribeScheduledAuditOutput, error) {
9038	req, out := c.DescribeScheduledAuditRequest(input)
9039	return out, req.Send()
9040}
9041
9042// DescribeScheduledAuditWithContext is the same as DescribeScheduledAudit with the addition of
9043// the ability to pass a context and additional request options.
9044//
9045// See DescribeScheduledAudit for details on how to use this API operation.
9046//
9047// The context must be non-nil and will be used for request cancellation. If
9048// the context is nil a panic will occur. In the future the SDK may create
9049// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9050// for more information on using Contexts.
9051func (c *IoT) DescribeScheduledAuditWithContext(ctx aws.Context, input *DescribeScheduledAuditInput, opts ...request.Option) (*DescribeScheduledAuditOutput, error) {
9052	req, out := c.DescribeScheduledAuditRequest(input)
9053	req.SetContext(ctx)
9054	req.ApplyOptions(opts...)
9055	return out, req.Send()
9056}
9057
9058const opDescribeSecurityProfile = "DescribeSecurityProfile"
9059
9060// DescribeSecurityProfileRequest generates a "aws/request.Request" representing the
9061// client's request for the DescribeSecurityProfile operation. The "output" return
9062// value will be populated with the request's response once the request completes
9063// successfully.
9064//
9065// Use "Send" method on the returned Request to send the API call to the service.
9066// the "output" return value is not valid until after Send returns without error.
9067//
9068// See DescribeSecurityProfile for more information on using the DescribeSecurityProfile
9069// API call, and error handling.
9070//
9071// This method is useful when you want to inject custom logic or configuration
9072// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9073//
9074//
9075//    // Example sending a request using the DescribeSecurityProfileRequest method.
9076//    req, resp := client.DescribeSecurityProfileRequest(params)
9077//
9078//    err := req.Send()
9079//    if err == nil { // resp is now filled
9080//        fmt.Println(resp)
9081//    }
9082func (c *IoT) DescribeSecurityProfileRequest(input *DescribeSecurityProfileInput) (req *request.Request, output *DescribeSecurityProfileOutput) {
9083	op := &request.Operation{
9084		Name:       opDescribeSecurityProfile,
9085		HTTPMethod: "GET",
9086		HTTPPath:   "/security-profiles/{securityProfileName}",
9087	}
9088
9089	if input == nil {
9090		input = &DescribeSecurityProfileInput{}
9091	}
9092
9093	output = &DescribeSecurityProfileOutput{}
9094	req = c.newRequest(op, input, output)
9095	return
9096}
9097
9098// DescribeSecurityProfile API operation for AWS IoT.
9099//
9100// Gets information about a Device Defender security profile.
9101//
9102// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9103// with awserr.Error's Code and Message methods to get detailed information about
9104// the error.
9105//
9106// See the AWS API reference guide for AWS IoT's
9107// API operation DescribeSecurityProfile for usage and error information.
9108//
9109// Returned Error Types:
9110//   * InvalidRequestException
9111//   The request is not valid.
9112//
9113//   * ResourceNotFoundException
9114//   The specified resource does not exist.
9115//
9116//   * ThrottlingException
9117//   The rate exceeds the limit.
9118//
9119//   * InternalFailureException
9120//   An unexpected error has occurred.
9121//
9122func (c *IoT) DescribeSecurityProfile(input *DescribeSecurityProfileInput) (*DescribeSecurityProfileOutput, error) {
9123	req, out := c.DescribeSecurityProfileRequest(input)
9124	return out, req.Send()
9125}
9126
9127// DescribeSecurityProfileWithContext is the same as DescribeSecurityProfile with the addition of
9128// the ability to pass a context and additional request options.
9129//
9130// See DescribeSecurityProfile for details on how to use this API operation.
9131//
9132// The context must be non-nil and will be used for request cancellation. If
9133// the context is nil a panic will occur. In the future the SDK may create
9134// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9135// for more information on using Contexts.
9136func (c *IoT) DescribeSecurityProfileWithContext(ctx aws.Context, input *DescribeSecurityProfileInput, opts ...request.Option) (*DescribeSecurityProfileOutput, error) {
9137	req, out := c.DescribeSecurityProfileRequest(input)
9138	req.SetContext(ctx)
9139	req.ApplyOptions(opts...)
9140	return out, req.Send()
9141}
9142
9143const opDescribeStream = "DescribeStream"
9144
9145// DescribeStreamRequest generates a "aws/request.Request" representing the
9146// client's request for the DescribeStream operation. The "output" return
9147// value will be populated with the request's response once the request completes
9148// successfully.
9149//
9150// Use "Send" method on the returned Request to send the API call to the service.
9151// the "output" return value is not valid until after Send returns without error.
9152//
9153// See DescribeStream for more information on using the DescribeStream
9154// API call, and error handling.
9155//
9156// This method is useful when you want to inject custom logic or configuration
9157// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9158//
9159//
9160//    // Example sending a request using the DescribeStreamRequest method.
9161//    req, resp := client.DescribeStreamRequest(params)
9162//
9163//    err := req.Send()
9164//    if err == nil { // resp is now filled
9165//        fmt.Println(resp)
9166//    }
9167func (c *IoT) DescribeStreamRequest(input *DescribeStreamInput) (req *request.Request, output *DescribeStreamOutput) {
9168	op := &request.Operation{
9169		Name:       opDescribeStream,
9170		HTTPMethod: "GET",
9171		HTTPPath:   "/streams/{streamId}",
9172	}
9173
9174	if input == nil {
9175		input = &DescribeStreamInput{}
9176	}
9177
9178	output = &DescribeStreamOutput{}
9179	req = c.newRequest(op, input, output)
9180	return
9181}
9182
9183// DescribeStream API operation for AWS IoT.
9184//
9185// Gets information about a stream.
9186//
9187// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9188// with awserr.Error's Code and Message methods to get detailed information about
9189// the error.
9190//
9191// See the AWS API reference guide for AWS IoT's
9192// API operation DescribeStream for usage and error information.
9193//
9194// Returned Error Types:
9195//   * InvalidRequestException
9196//   The request is not valid.
9197//
9198//   * ResourceNotFoundException
9199//   The specified resource does not exist.
9200//
9201//   * ThrottlingException
9202//   The rate exceeds the limit.
9203//
9204//   * UnauthorizedException
9205//   You are not authorized to perform this operation.
9206//
9207//   * ServiceUnavailableException
9208//   The service is temporarily unavailable.
9209//
9210//   * InternalFailureException
9211//   An unexpected error has occurred.
9212//
9213func (c *IoT) DescribeStream(input *DescribeStreamInput) (*DescribeStreamOutput, error) {
9214	req, out := c.DescribeStreamRequest(input)
9215	return out, req.Send()
9216}
9217
9218// DescribeStreamWithContext is the same as DescribeStream with the addition of
9219// the ability to pass a context and additional request options.
9220//
9221// See DescribeStream for details on how to use this API operation.
9222//
9223// The context must be non-nil and will be used for request cancellation. If
9224// the context is nil a panic will occur. In the future the SDK may create
9225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9226// for more information on using Contexts.
9227func (c *IoT) DescribeStreamWithContext(ctx aws.Context, input *DescribeStreamInput, opts ...request.Option) (*DescribeStreamOutput, error) {
9228	req, out := c.DescribeStreamRequest(input)
9229	req.SetContext(ctx)
9230	req.ApplyOptions(opts...)
9231	return out, req.Send()
9232}
9233
9234const opDescribeThing = "DescribeThing"
9235
9236// DescribeThingRequest generates a "aws/request.Request" representing the
9237// client's request for the DescribeThing operation. The "output" return
9238// value will be populated with the request's response once the request completes
9239// successfully.
9240//
9241// Use "Send" method on the returned Request to send the API call to the service.
9242// the "output" return value is not valid until after Send returns without error.
9243//
9244// See DescribeThing for more information on using the DescribeThing
9245// API call, and error handling.
9246//
9247// This method is useful when you want to inject custom logic or configuration
9248// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9249//
9250//
9251//    // Example sending a request using the DescribeThingRequest method.
9252//    req, resp := client.DescribeThingRequest(params)
9253//
9254//    err := req.Send()
9255//    if err == nil { // resp is now filled
9256//        fmt.Println(resp)
9257//    }
9258func (c *IoT) DescribeThingRequest(input *DescribeThingInput) (req *request.Request, output *DescribeThingOutput) {
9259	op := &request.Operation{
9260		Name:       opDescribeThing,
9261		HTTPMethod: "GET",
9262		HTTPPath:   "/things/{thingName}",
9263	}
9264
9265	if input == nil {
9266		input = &DescribeThingInput{}
9267	}
9268
9269	output = &DescribeThingOutput{}
9270	req = c.newRequest(op, input, output)
9271	return
9272}
9273
9274// DescribeThing API operation for AWS IoT.
9275//
9276// Gets information about the specified thing.
9277//
9278// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9279// with awserr.Error's Code and Message methods to get detailed information about
9280// the error.
9281//
9282// See the AWS API reference guide for AWS IoT's
9283// API operation DescribeThing for usage and error information.
9284//
9285// Returned Error Types:
9286//   * ResourceNotFoundException
9287//   The specified resource does not exist.
9288//
9289//   * InvalidRequestException
9290//   The request is not valid.
9291//
9292//   * ThrottlingException
9293//   The rate exceeds the limit.
9294//
9295//   * UnauthorizedException
9296//   You are not authorized to perform this operation.
9297//
9298//   * ServiceUnavailableException
9299//   The service is temporarily unavailable.
9300//
9301//   * InternalFailureException
9302//   An unexpected error has occurred.
9303//
9304func (c *IoT) DescribeThing(input *DescribeThingInput) (*DescribeThingOutput, error) {
9305	req, out := c.DescribeThingRequest(input)
9306	return out, req.Send()
9307}
9308
9309// DescribeThingWithContext is the same as DescribeThing with the addition of
9310// the ability to pass a context and additional request options.
9311//
9312// See DescribeThing for details on how to use this API operation.
9313//
9314// The context must be non-nil and will be used for request cancellation. If
9315// the context is nil a panic will occur. In the future the SDK may create
9316// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9317// for more information on using Contexts.
9318func (c *IoT) DescribeThingWithContext(ctx aws.Context, input *DescribeThingInput, opts ...request.Option) (*DescribeThingOutput, error) {
9319	req, out := c.DescribeThingRequest(input)
9320	req.SetContext(ctx)
9321	req.ApplyOptions(opts...)
9322	return out, req.Send()
9323}
9324
9325const opDescribeThingGroup = "DescribeThingGroup"
9326
9327// DescribeThingGroupRequest generates a "aws/request.Request" representing the
9328// client's request for the DescribeThingGroup operation. The "output" return
9329// value will be populated with the request's response once the request completes
9330// successfully.
9331//
9332// Use "Send" method on the returned Request to send the API call to the service.
9333// the "output" return value is not valid until after Send returns without error.
9334//
9335// See DescribeThingGroup for more information on using the DescribeThingGroup
9336// API call, and error handling.
9337//
9338// This method is useful when you want to inject custom logic or configuration
9339// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9340//
9341//
9342//    // Example sending a request using the DescribeThingGroupRequest method.
9343//    req, resp := client.DescribeThingGroupRequest(params)
9344//
9345//    err := req.Send()
9346//    if err == nil { // resp is now filled
9347//        fmt.Println(resp)
9348//    }
9349func (c *IoT) DescribeThingGroupRequest(input *DescribeThingGroupInput) (req *request.Request, output *DescribeThingGroupOutput) {
9350	op := &request.Operation{
9351		Name:       opDescribeThingGroup,
9352		HTTPMethod: "GET",
9353		HTTPPath:   "/thing-groups/{thingGroupName}",
9354	}
9355
9356	if input == nil {
9357		input = &DescribeThingGroupInput{}
9358	}
9359
9360	output = &DescribeThingGroupOutput{}
9361	req = c.newRequest(op, input, output)
9362	return
9363}
9364
9365// DescribeThingGroup API operation for AWS IoT.
9366//
9367// Describe a thing group.
9368//
9369// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9370// with awserr.Error's Code and Message methods to get detailed information about
9371// the error.
9372//
9373// See the AWS API reference guide for AWS IoT's
9374// API operation DescribeThingGroup for usage and error information.
9375//
9376// Returned Error Types:
9377//   * InvalidRequestException
9378//   The request is not valid.
9379//
9380//   * ThrottlingException
9381//   The rate exceeds the limit.
9382//
9383//   * InternalFailureException
9384//   An unexpected error has occurred.
9385//
9386//   * ResourceNotFoundException
9387//   The specified resource does not exist.
9388//
9389func (c *IoT) DescribeThingGroup(input *DescribeThingGroupInput) (*DescribeThingGroupOutput, error) {
9390	req, out := c.DescribeThingGroupRequest(input)
9391	return out, req.Send()
9392}
9393
9394// DescribeThingGroupWithContext is the same as DescribeThingGroup with the addition of
9395// the ability to pass a context and additional request options.
9396//
9397// See DescribeThingGroup for details on how to use this API operation.
9398//
9399// The context must be non-nil and will be used for request cancellation. If
9400// the context is nil a panic will occur. In the future the SDK may create
9401// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9402// for more information on using Contexts.
9403func (c *IoT) DescribeThingGroupWithContext(ctx aws.Context, input *DescribeThingGroupInput, opts ...request.Option) (*DescribeThingGroupOutput, error) {
9404	req, out := c.DescribeThingGroupRequest(input)
9405	req.SetContext(ctx)
9406	req.ApplyOptions(opts...)
9407	return out, req.Send()
9408}
9409
9410const opDescribeThingRegistrationTask = "DescribeThingRegistrationTask"
9411
9412// DescribeThingRegistrationTaskRequest generates a "aws/request.Request" representing the
9413// client's request for the DescribeThingRegistrationTask operation. The "output" return
9414// value will be populated with the request's response once the request completes
9415// successfully.
9416//
9417// Use "Send" method on the returned Request to send the API call to the service.
9418// the "output" return value is not valid until after Send returns without error.
9419//
9420// See DescribeThingRegistrationTask for more information on using the DescribeThingRegistrationTask
9421// API call, and error handling.
9422//
9423// This method is useful when you want to inject custom logic or configuration
9424// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9425//
9426//
9427//    // Example sending a request using the DescribeThingRegistrationTaskRequest method.
9428//    req, resp := client.DescribeThingRegistrationTaskRequest(params)
9429//
9430//    err := req.Send()
9431//    if err == nil { // resp is now filled
9432//        fmt.Println(resp)
9433//    }
9434func (c *IoT) DescribeThingRegistrationTaskRequest(input *DescribeThingRegistrationTaskInput) (req *request.Request, output *DescribeThingRegistrationTaskOutput) {
9435	op := &request.Operation{
9436		Name:       opDescribeThingRegistrationTask,
9437		HTTPMethod: "GET",
9438		HTTPPath:   "/thing-registration-tasks/{taskId}",
9439	}
9440
9441	if input == nil {
9442		input = &DescribeThingRegistrationTaskInput{}
9443	}
9444
9445	output = &DescribeThingRegistrationTaskOutput{}
9446	req = c.newRequest(op, input, output)
9447	return
9448}
9449
9450// DescribeThingRegistrationTask API operation for AWS IoT.
9451//
9452// Describes a bulk thing provisioning task.
9453//
9454// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9455// with awserr.Error's Code and Message methods to get detailed information about
9456// the error.
9457//
9458// See the AWS API reference guide for AWS IoT's
9459// API operation DescribeThingRegistrationTask for usage and error information.
9460//
9461// Returned Error Types:
9462//   * InvalidRequestException
9463//   The request is not valid.
9464//
9465//   * ThrottlingException
9466//   The rate exceeds the limit.
9467//
9468//   * UnauthorizedException
9469//   You are not authorized to perform this operation.
9470//
9471//   * InternalFailureException
9472//   An unexpected error has occurred.
9473//
9474//   * ResourceNotFoundException
9475//   The specified resource does not exist.
9476//
9477func (c *IoT) DescribeThingRegistrationTask(input *DescribeThingRegistrationTaskInput) (*DescribeThingRegistrationTaskOutput, error) {
9478	req, out := c.DescribeThingRegistrationTaskRequest(input)
9479	return out, req.Send()
9480}
9481
9482// DescribeThingRegistrationTaskWithContext is the same as DescribeThingRegistrationTask with the addition of
9483// the ability to pass a context and additional request options.
9484//
9485// See DescribeThingRegistrationTask for details on how to use this API operation.
9486//
9487// The context must be non-nil and will be used for request cancellation. If
9488// the context is nil a panic will occur. In the future the SDK may create
9489// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9490// for more information on using Contexts.
9491func (c *IoT) DescribeThingRegistrationTaskWithContext(ctx aws.Context, input *DescribeThingRegistrationTaskInput, opts ...request.Option) (*DescribeThingRegistrationTaskOutput, error) {
9492	req, out := c.DescribeThingRegistrationTaskRequest(input)
9493	req.SetContext(ctx)
9494	req.ApplyOptions(opts...)
9495	return out, req.Send()
9496}
9497
9498const opDescribeThingType = "DescribeThingType"
9499
9500// DescribeThingTypeRequest generates a "aws/request.Request" representing the
9501// client's request for the DescribeThingType operation. The "output" return
9502// value will be populated with the request's response once the request completes
9503// successfully.
9504//
9505// Use "Send" method on the returned Request to send the API call to the service.
9506// the "output" return value is not valid until after Send returns without error.
9507//
9508// See DescribeThingType for more information on using the DescribeThingType
9509// API call, and error handling.
9510//
9511// This method is useful when you want to inject custom logic or configuration
9512// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9513//
9514//
9515//    // Example sending a request using the DescribeThingTypeRequest method.
9516//    req, resp := client.DescribeThingTypeRequest(params)
9517//
9518//    err := req.Send()
9519//    if err == nil { // resp is now filled
9520//        fmt.Println(resp)
9521//    }
9522func (c *IoT) DescribeThingTypeRequest(input *DescribeThingTypeInput) (req *request.Request, output *DescribeThingTypeOutput) {
9523	op := &request.Operation{
9524		Name:       opDescribeThingType,
9525		HTTPMethod: "GET",
9526		HTTPPath:   "/thing-types/{thingTypeName}",
9527	}
9528
9529	if input == nil {
9530		input = &DescribeThingTypeInput{}
9531	}
9532
9533	output = &DescribeThingTypeOutput{}
9534	req = c.newRequest(op, input, output)
9535	return
9536}
9537
9538// DescribeThingType API operation for AWS IoT.
9539//
9540// Gets information about the specified thing type.
9541//
9542// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9543// with awserr.Error's Code and Message methods to get detailed information about
9544// the error.
9545//
9546// See the AWS API reference guide for AWS IoT's
9547// API operation DescribeThingType for usage and error information.
9548//
9549// Returned Error Types:
9550//   * ResourceNotFoundException
9551//   The specified resource does not exist.
9552//
9553//   * InvalidRequestException
9554//   The request is not valid.
9555//
9556//   * ThrottlingException
9557//   The rate exceeds the limit.
9558//
9559//   * UnauthorizedException
9560//   You are not authorized to perform this operation.
9561//
9562//   * ServiceUnavailableException
9563//   The service is temporarily unavailable.
9564//
9565//   * InternalFailureException
9566//   An unexpected error has occurred.
9567//
9568func (c *IoT) DescribeThingType(input *DescribeThingTypeInput) (*DescribeThingTypeOutput, error) {
9569	req, out := c.DescribeThingTypeRequest(input)
9570	return out, req.Send()
9571}
9572
9573// DescribeThingTypeWithContext is the same as DescribeThingType with the addition of
9574// the ability to pass a context and additional request options.
9575//
9576// See DescribeThingType for details on how to use this API operation.
9577//
9578// The context must be non-nil and will be used for request cancellation. If
9579// the context is nil a panic will occur. In the future the SDK may create
9580// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9581// for more information on using Contexts.
9582func (c *IoT) DescribeThingTypeWithContext(ctx aws.Context, input *DescribeThingTypeInput, opts ...request.Option) (*DescribeThingTypeOutput, error) {
9583	req, out := c.DescribeThingTypeRequest(input)
9584	req.SetContext(ctx)
9585	req.ApplyOptions(opts...)
9586	return out, req.Send()
9587}
9588
9589const opDetachPolicy = "DetachPolicy"
9590
9591// DetachPolicyRequest generates a "aws/request.Request" representing the
9592// client's request for the DetachPolicy operation. The "output" return
9593// value will be populated with the request's response once the request completes
9594// successfully.
9595//
9596// Use "Send" method on the returned Request to send the API call to the service.
9597// the "output" return value is not valid until after Send returns without error.
9598//
9599// See DetachPolicy for more information on using the DetachPolicy
9600// API call, and error handling.
9601//
9602// This method is useful when you want to inject custom logic or configuration
9603// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9604//
9605//
9606//    // Example sending a request using the DetachPolicyRequest method.
9607//    req, resp := client.DetachPolicyRequest(params)
9608//
9609//    err := req.Send()
9610//    if err == nil { // resp is now filled
9611//        fmt.Println(resp)
9612//    }
9613func (c *IoT) DetachPolicyRequest(input *DetachPolicyInput) (req *request.Request, output *DetachPolicyOutput) {
9614	op := &request.Operation{
9615		Name:       opDetachPolicy,
9616		HTTPMethod: "POST",
9617		HTTPPath:   "/target-policies/{policyName}",
9618	}
9619
9620	if input == nil {
9621		input = &DetachPolicyInput{}
9622	}
9623
9624	output = &DetachPolicyOutput{}
9625	req = c.newRequest(op, input, output)
9626	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9627	return
9628}
9629
9630// DetachPolicy API operation for AWS IoT.
9631//
9632// Detaches a policy from the specified target.
9633//
9634// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9635// with awserr.Error's Code and Message methods to get detailed information about
9636// the error.
9637//
9638// See the AWS API reference guide for AWS IoT's
9639// API operation DetachPolicy for usage and error information.
9640//
9641// Returned Error Types:
9642//   * InvalidRequestException
9643//   The request is not valid.
9644//
9645//   * ThrottlingException
9646//   The rate exceeds the limit.
9647//
9648//   * UnauthorizedException
9649//   You are not authorized to perform this operation.
9650//
9651//   * ServiceUnavailableException
9652//   The service is temporarily unavailable.
9653//
9654//   * InternalFailureException
9655//   An unexpected error has occurred.
9656//
9657//   * LimitExceededException
9658//   A limit has been exceeded.
9659//
9660func (c *IoT) DetachPolicy(input *DetachPolicyInput) (*DetachPolicyOutput, error) {
9661	req, out := c.DetachPolicyRequest(input)
9662	return out, req.Send()
9663}
9664
9665// DetachPolicyWithContext is the same as DetachPolicy with the addition of
9666// the ability to pass a context and additional request options.
9667//
9668// See DetachPolicy for details on how to use this API operation.
9669//
9670// The context must be non-nil and will be used for request cancellation. If
9671// the context is nil a panic will occur. In the future the SDK may create
9672// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9673// for more information on using Contexts.
9674func (c *IoT) DetachPolicyWithContext(ctx aws.Context, input *DetachPolicyInput, opts ...request.Option) (*DetachPolicyOutput, error) {
9675	req, out := c.DetachPolicyRequest(input)
9676	req.SetContext(ctx)
9677	req.ApplyOptions(opts...)
9678	return out, req.Send()
9679}
9680
9681const opDetachPrincipalPolicy = "DetachPrincipalPolicy"
9682
9683// DetachPrincipalPolicyRequest generates a "aws/request.Request" representing the
9684// client's request for the DetachPrincipalPolicy operation. The "output" return
9685// value will be populated with the request's response once the request completes
9686// successfully.
9687//
9688// Use "Send" method on the returned Request to send the API call to the service.
9689// the "output" return value is not valid until after Send returns without error.
9690//
9691// See DetachPrincipalPolicy for more information on using the DetachPrincipalPolicy
9692// API call, and error handling.
9693//
9694// This method is useful when you want to inject custom logic or configuration
9695// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9696//
9697//
9698//    // Example sending a request using the DetachPrincipalPolicyRequest method.
9699//    req, resp := client.DetachPrincipalPolicyRequest(params)
9700//
9701//    err := req.Send()
9702//    if err == nil { // resp is now filled
9703//        fmt.Println(resp)
9704//    }
9705//
9706// Deprecated: DetachPrincipalPolicy has been deprecated
9707func (c *IoT) DetachPrincipalPolicyRequest(input *DetachPrincipalPolicyInput) (req *request.Request, output *DetachPrincipalPolicyOutput) {
9708	if c.Client.Config.Logger != nil {
9709		c.Client.Config.Logger.Log("This operation, DetachPrincipalPolicy, has been deprecated")
9710	}
9711	op := &request.Operation{
9712		Name:       opDetachPrincipalPolicy,
9713		HTTPMethod: "DELETE",
9714		HTTPPath:   "/principal-policies/{policyName}",
9715	}
9716
9717	if input == nil {
9718		input = &DetachPrincipalPolicyInput{}
9719	}
9720
9721	output = &DetachPrincipalPolicyOutput{}
9722	req = c.newRequest(op, input, output)
9723	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9724	return
9725}
9726
9727// DetachPrincipalPolicy API operation for AWS IoT.
9728//
9729// Removes the specified policy from the specified certificate.
9730//
9731// Note: This API is deprecated. Please use DetachPolicy instead.
9732//
9733// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9734// with awserr.Error's Code and Message methods to get detailed information about
9735// the error.
9736//
9737// See the AWS API reference guide for AWS IoT's
9738// API operation DetachPrincipalPolicy for usage and error information.
9739//
9740// Returned Error Types:
9741//   * ResourceNotFoundException
9742//   The specified resource does not exist.
9743//
9744//   * InvalidRequestException
9745//   The request is not valid.
9746//
9747//   * ThrottlingException
9748//   The rate exceeds the limit.
9749//
9750//   * UnauthorizedException
9751//   You are not authorized to perform this operation.
9752//
9753//   * ServiceUnavailableException
9754//   The service is temporarily unavailable.
9755//
9756//   * InternalFailureException
9757//   An unexpected error has occurred.
9758//
9759//
9760// Deprecated: DetachPrincipalPolicy has been deprecated
9761func (c *IoT) DetachPrincipalPolicy(input *DetachPrincipalPolicyInput) (*DetachPrincipalPolicyOutput, error) {
9762	req, out := c.DetachPrincipalPolicyRequest(input)
9763	return out, req.Send()
9764}
9765
9766// DetachPrincipalPolicyWithContext is the same as DetachPrincipalPolicy with the addition of
9767// the ability to pass a context and additional request options.
9768//
9769// See DetachPrincipalPolicy for details on how to use this API operation.
9770//
9771// The context must be non-nil and will be used for request cancellation. If
9772// the context is nil a panic will occur. In the future the SDK may create
9773// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9774// for more information on using Contexts.
9775//
9776// Deprecated: DetachPrincipalPolicyWithContext has been deprecated
9777func (c *IoT) DetachPrincipalPolicyWithContext(ctx aws.Context, input *DetachPrincipalPolicyInput, opts ...request.Option) (*DetachPrincipalPolicyOutput, error) {
9778	req, out := c.DetachPrincipalPolicyRequest(input)
9779	req.SetContext(ctx)
9780	req.ApplyOptions(opts...)
9781	return out, req.Send()
9782}
9783
9784const opDetachSecurityProfile = "DetachSecurityProfile"
9785
9786// DetachSecurityProfileRequest generates a "aws/request.Request" representing the
9787// client's request for the DetachSecurityProfile operation. The "output" return
9788// value will be populated with the request's response once the request completes
9789// successfully.
9790//
9791// Use "Send" method on the returned Request to send the API call to the service.
9792// the "output" return value is not valid until after Send returns without error.
9793//
9794// See DetachSecurityProfile for more information on using the DetachSecurityProfile
9795// API call, and error handling.
9796//
9797// This method is useful when you want to inject custom logic or configuration
9798// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9799//
9800//
9801//    // Example sending a request using the DetachSecurityProfileRequest method.
9802//    req, resp := client.DetachSecurityProfileRequest(params)
9803//
9804//    err := req.Send()
9805//    if err == nil { // resp is now filled
9806//        fmt.Println(resp)
9807//    }
9808func (c *IoT) DetachSecurityProfileRequest(input *DetachSecurityProfileInput) (req *request.Request, output *DetachSecurityProfileOutput) {
9809	op := &request.Operation{
9810		Name:       opDetachSecurityProfile,
9811		HTTPMethod: "DELETE",
9812		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
9813	}
9814
9815	if input == nil {
9816		input = &DetachSecurityProfileInput{}
9817	}
9818
9819	output = &DetachSecurityProfileOutput{}
9820	req = c.newRequest(op, input, output)
9821	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9822	return
9823}
9824
9825// DetachSecurityProfile API operation for AWS IoT.
9826//
9827// Disassociates a Device Defender security profile from a thing group or from
9828// this account.
9829//
9830// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9831// with awserr.Error's Code and Message methods to get detailed information about
9832// the error.
9833//
9834// See the AWS API reference guide for AWS IoT's
9835// API operation DetachSecurityProfile for usage and error information.
9836//
9837// Returned Error Types:
9838//   * InvalidRequestException
9839//   The request is not valid.
9840//
9841//   * ResourceNotFoundException
9842//   The specified resource does not exist.
9843//
9844//   * ThrottlingException
9845//   The rate exceeds the limit.
9846//
9847//   * InternalFailureException
9848//   An unexpected error has occurred.
9849//
9850func (c *IoT) DetachSecurityProfile(input *DetachSecurityProfileInput) (*DetachSecurityProfileOutput, error) {
9851	req, out := c.DetachSecurityProfileRequest(input)
9852	return out, req.Send()
9853}
9854
9855// DetachSecurityProfileWithContext is the same as DetachSecurityProfile with the addition of
9856// the ability to pass a context and additional request options.
9857//
9858// See DetachSecurityProfile for details on how to use this API operation.
9859//
9860// The context must be non-nil and will be used for request cancellation. If
9861// the context is nil a panic will occur. In the future the SDK may create
9862// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9863// for more information on using Contexts.
9864func (c *IoT) DetachSecurityProfileWithContext(ctx aws.Context, input *DetachSecurityProfileInput, opts ...request.Option) (*DetachSecurityProfileOutput, error) {
9865	req, out := c.DetachSecurityProfileRequest(input)
9866	req.SetContext(ctx)
9867	req.ApplyOptions(opts...)
9868	return out, req.Send()
9869}
9870
9871const opDetachThingPrincipal = "DetachThingPrincipal"
9872
9873// DetachThingPrincipalRequest generates a "aws/request.Request" representing the
9874// client's request for the DetachThingPrincipal operation. The "output" return
9875// value will be populated with the request's response once the request completes
9876// successfully.
9877//
9878// Use "Send" method on the returned Request to send the API call to the service.
9879// the "output" return value is not valid until after Send returns without error.
9880//
9881// See DetachThingPrincipal for more information on using the DetachThingPrincipal
9882// API call, and error handling.
9883//
9884// This method is useful when you want to inject custom logic or configuration
9885// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9886//
9887//
9888//    // Example sending a request using the DetachThingPrincipalRequest method.
9889//    req, resp := client.DetachThingPrincipalRequest(params)
9890//
9891//    err := req.Send()
9892//    if err == nil { // resp is now filled
9893//        fmt.Println(resp)
9894//    }
9895func (c *IoT) DetachThingPrincipalRequest(input *DetachThingPrincipalInput) (req *request.Request, output *DetachThingPrincipalOutput) {
9896	op := &request.Operation{
9897		Name:       opDetachThingPrincipal,
9898		HTTPMethod: "DELETE",
9899		HTTPPath:   "/things/{thingName}/principals",
9900	}
9901
9902	if input == nil {
9903		input = &DetachThingPrincipalInput{}
9904	}
9905
9906	output = &DetachThingPrincipalOutput{}
9907	req = c.newRequest(op, input, output)
9908	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
9909	return
9910}
9911
9912// DetachThingPrincipal API operation for AWS IoT.
9913//
9914// Detaches the specified principal from the specified thing. A principal can
9915// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
9916// or federated identities.
9917//
9918// This call is asynchronous. It might take several seconds for the detachment
9919// to propagate.
9920//
9921// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9922// with awserr.Error's Code and Message methods to get detailed information about
9923// the error.
9924//
9925// See the AWS API reference guide for AWS IoT's
9926// API operation DetachThingPrincipal for usage and error information.
9927//
9928// Returned Error Types:
9929//   * ResourceNotFoundException
9930//   The specified resource does not exist.
9931//
9932//   * InvalidRequestException
9933//   The request is not valid.
9934//
9935//   * ThrottlingException
9936//   The rate exceeds the limit.
9937//
9938//   * UnauthorizedException
9939//   You are not authorized to perform this operation.
9940//
9941//   * ServiceUnavailableException
9942//   The service is temporarily unavailable.
9943//
9944//   * InternalFailureException
9945//   An unexpected error has occurred.
9946//
9947func (c *IoT) DetachThingPrincipal(input *DetachThingPrincipalInput) (*DetachThingPrincipalOutput, error) {
9948	req, out := c.DetachThingPrincipalRequest(input)
9949	return out, req.Send()
9950}
9951
9952// DetachThingPrincipalWithContext is the same as DetachThingPrincipal with the addition of
9953// the ability to pass a context and additional request options.
9954//
9955// See DetachThingPrincipal for details on how to use this API operation.
9956//
9957// The context must be non-nil and will be used for request cancellation. If
9958// the context is nil a panic will occur. In the future the SDK may create
9959// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9960// for more information on using Contexts.
9961func (c *IoT) DetachThingPrincipalWithContext(ctx aws.Context, input *DetachThingPrincipalInput, opts ...request.Option) (*DetachThingPrincipalOutput, error) {
9962	req, out := c.DetachThingPrincipalRequest(input)
9963	req.SetContext(ctx)
9964	req.ApplyOptions(opts...)
9965	return out, req.Send()
9966}
9967
9968const opDisableTopicRule = "DisableTopicRule"
9969
9970// DisableTopicRuleRequest generates a "aws/request.Request" representing the
9971// client's request for the DisableTopicRule operation. The "output" return
9972// value will be populated with the request's response once the request completes
9973// successfully.
9974//
9975// Use "Send" method on the returned Request to send the API call to the service.
9976// the "output" return value is not valid until after Send returns without error.
9977//
9978// See DisableTopicRule for more information on using the DisableTopicRule
9979// API call, and error handling.
9980//
9981// This method is useful when you want to inject custom logic or configuration
9982// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9983//
9984//
9985//    // Example sending a request using the DisableTopicRuleRequest method.
9986//    req, resp := client.DisableTopicRuleRequest(params)
9987//
9988//    err := req.Send()
9989//    if err == nil { // resp is now filled
9990//        fmt.Println(resp)
9991//    }
9992func (c *IoT) DisableTopicRuleRequest(input *DisableTopicRuleInput) (req *request.Request, output *DisableTopicRuleOutput) {
9993	op := &request.Operation{
9994		Name:       opDisableTopicRule,
9995		HTTPMethod: "POST",
9996		HTTPPath:   "/rules/{ruleName}/disable",
9997	}
9998
9999	if input == nil {
10000		input = &DisableTopicRuleInput{}
10001	}
10002
10003	output = &DisableTopicRuleOutput{}
10004	req = c.newRequest(op, input, output)
10005	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
10006	return
10007}
10008
10009// DisableTopicRule API operation for AWS IoT.
10010//
10011// Disables the rule.
10012//
10013// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10014// with awserr.Error's Code and Message methods to get detailed information about
10015// the error.
10016//
10017// See the AWS API reference guide for AWS IoT's
10018// API operation DisableTopicRule for usage and error information.
10019//
10020// Returned Error Types:
10021//   * InternalException
10022//   An unexpected error has occurred.
10023//
10024//   * InvalidRequestException
10025//   The request is not valid.
10026//
10027//   * ServiceUnavailableException
10028//   The service is temporarily unavailable.
10029//
10030//   * UnauthorizedException
10031//   You are not authorized to perform this operation.
10032//
10033//   * ConflictingResourceUpdateException
10034//   A conflicting resource update exception. This exception is thrown when two
10035//   pending updates cause a conflict.
10036//
10037func (c *IoT) DisableTopicRule(input *DisableTopicRuleInput) (*DisableTopicRuleOutput, error) {
10038	req, out := c.DisableTopicRuleRequest(input)
10039	return out, req.Send()
10040}
10041
10042// DisableTopicRuleWithContext is the same as DisableTopicRule with the addition of
10043// the ability to pass a context and additional request options.
10044//
10045// See DisableTopicRule for details on how to use this API operation.
10046//
10047// The context must be non-nil and will be used for request cancellation. If
10048// the context is nil a panic will occur. In the future the SDK may create
10049// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10050// for more information on using Contexts.
10051func (c *IoT) DisableTopicRuleWithContext(ctx aws.Context, input *DisableTopicRuleInput, opts ...request.Option) (*DisableTopicRuleOutput, error) {
10052	req, out := c.DisableTopicRuleRequest(input)
10053	req.SetContext(ctx)
10054	req.ApplyOptions(opts...)
10055	return out, req.Send()
10056}
10057
10058const opEnableTopicRule = "EnableTopicRule"
10059
10060// EnableTopicRuleRequest generates a "aws/request.Request" representing the
10061// client's request for the EnableTopicRule operation. The "output" return
10062// value will be populated with the request's response once the request completes
10063// successfully.
10064//
10065// Use "Send" method on the returned Request to send the API call to the service.
10066// the "output" return value is not valid until after Send returns without error.
10067//
10068// See EnableTopicRule for more information on using the EnableTopicRule
10069// API call, and error handling.
10070//
10071// This method is useful when you want to inject custom logic or configuration
10072// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10073//
10074//
10075//    // Example sending a request using the EnableTopicRuleRequest method.
10076//    req, resp := client.EnableTopicRuleRequest(params)
10077//
10078//    err := req.Send()
10079//    if err == nil { // resp is now filled
10080//        fmt.Println(resp)
10081//    }
10082func (c *IoT) EnableTopicRuleRequest(input *EnableTopicRuleInput) (req *request.Request, output *EnableTopicRuleOutput) {
10083	op := &request.Operation{
10084		Name:       opEnableTopicRule,
10085		HTTPMethod: "POST",
10086		HTTPPath:   "/rules/{ruleName}/enable",
10087	}
10088
10089	if input == nil {
10090		input = &EnableTopicRuleInput{}
10091	}
10092
10093	output = &EnableTopicRuleOutput{}
10094	req = c.newRequest(op, input, output)
10095	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
10096	return
10097}
10098
10099// EnableTopicRule API operation for AWS IoT.
10100//
10101// Enables the rule.
10102//
10103// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10104// with awserr.Error's Code and Message methods to get detailed information about
10105// the error.
10106//
10107// See the AWS API reference guide for AWS IoT's
10108// API operation EnableTopicRule for usage and error information.
10109//
10110// Returned Error Types:
10111//   * InternalException
10112//   An unexpected error has occurred.
10113//
10114//   * InvalidRequestException
10115//   The request is not valid.
10116//
10117//   * ServiceUnavailableException
10118//   The service is temporarily unavailable.
10119//
10120//   * UnauthorizedException
10121//   You are not authorized to perform this operation.
10122//
10123//   * ConflictingResourceUpdateException
10124//   A conflicting resource update exception. This exception is thrown when two
10125//   pending updates cause a conflict.
10126//
10127func (c *IoT) EnableTopicRule(input *EnableTopicRuleInput) (*EnableTopicRuleOutput, error) {
10128	req, out := c.EnableTopicRuleRequest(input)
10129	return out, req.Send()
10130}
10131
10132// EnableTopicRuleWithContext is the same as EnableTopicRule with the addition of
10133// the ability to pass a context and additional request options.
10134//
10135// See EnableTopicRule for details on how to use this API operation.
10136//
10137// The context must be non-nil and will be used for request cancellation. If
10138// the context is nil a panic will occur. In the future the SDK may create
10139// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10140// for more information on using Contexts.
10141func (c *IoT) EnableTopicRuleWithContext(ctx aws.Context, input *EnableTopicRuleInput, opts ...request.Option) (*EnableTopicRuleOutput, error) {
10142	req, out := c.EnableTopicRuleRequest(input)
10143	req.SetContext(ctx)
10144	req.ApplyOptions(opts...)
10145	return out, req.Send()
10146}
10147
10148const opGetBehaviorModelTrainingSummaries = "GetBehaviorModelTrainingSummaries"
10149
10150// GetBehaviorModelTrainingSummariesRequest generates a "aws/request.Request" representing the
10151// client's request for the GetBehaviorModelTrainingSummaries operation. The "output" return
10152// value will be populated with the request's response once the request completes
10153// successfully.
10154//
10155// Use "Send" method on the returned Request to send the API call to the service.
10156// the "output" return value is not valid until after Send returns without error.
10157//
10158// See GetBehaviorModelTrainingSummaries for more information on using the GetBehaviorModelTrainingSummaries
10159// API call, and error handling.
10160//
10161// This method is useful when you want to inject custom logic or configuration
10162// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10163//
10164//
10165//    // Example sending a request using the GetBehaviorModelTrainingSummariesRequest method.
10166//    req, resp := client.GetBehaviorModelTrainingSummariesRequest(params)
10167//
10168//    err := req.Send()
10169//    if err == nil { // resp is now filled
10170//        fmt.Println(resp)
10171//    }
10172func (c *IoT) GetBehaviorModelTrainingSummariesRequest(input *GetBehaviorModelTrainingSummariesInput) (req *request.Request, output *GetBehaviorModelTrainingSummariesOutput) {
10173	op := &request.Operation{
10174		Name:       opGetBehaviorModelTrainingSummaries,
10175		HTTPMethod: "GET",
10176		HTTPPath:   "/behavior-model-training/summaries",
10177		Paginator: &request.Paginator{
10178			InputTokens:     []string{"nextToken"},
10179			OutputTokens:    []string{"nextToken"},
10180			LimitToken:      "maxResults",
10181			TruncationToken: "",
10182		},
10183	}
10184
10185	if input == nil {
10186		input = &GetBehaviorModelTrainingSummariesInput{}
10187	}
10188
10189	output = &GetBehaviorModelTrainingSummariesOutput{}
10190	req = c.newRequest(op, input, output)
10191	return
10192}
10193
10194// GetBehaviorModelTrainingSummaries API operation for AWS IoT.
10195//
10196// Returns a Device Defender's ML Detect Security Profile training model's status.
10197//
10198// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10199// with awserr.Error's Code and Message methods to get detailed information about
10200// the error.
10201//
10202// See the AWS API reference guide for AWS IoT's
10203// API operation GetBehaviorModelTrainingSummaries for usage and error information.
10204//
10205// Returned Error Types:
10206//   * InvalidRequestException
10207//   The request is not valid.
10208//
10209//   * ThrottlingException
10210//   The rate exceeds the limit.
10211//
10212//   * InternalFailureException
10213//   An unexpected error has occurred.
10214//
10215//   * ResourceNotFoundException
10216//   The specified resource does not exist.
10217//
10218func (c *IoT) GetBehaviorModelTrainingSummaries(input *GetBehaviorModelTrainingSummariesInput) (*GetBehaviorModelTrainingSummariesOutput, error) {
10219	req, out := c.GetBehaviorModelTrainingSummariesRequest(input)
10220	return out, req.Send()
10221}
10222
10223// GetBehaviorModelTrainingSummariesWithContext is the same as GetBehaviorModelTrainingSummaries with the addition of
10224// the ability to pass a context and additional request options.
10225//
10226// See GetBehaviorModelTrainingSummaries for details on how to use this API operation.
10227//
10228// The context must be non-nil and will be used for request cancellation. If
10229// the context is nil a panic will occur. In the future the SDK may create
10230// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10231// for more information on using Contexts.
10232func (c *IoT) GetBehaviorModelTrainingSummariesWithContext(ctx aws.Context, input *GetBehaviorModelTrainingSummariesInput, opts ...request.Option) (*GetBehaviorModelTrainingSummariesOutput, error) {
10233	req, out := c.GetBehaviorModelTrainingSummariesRequest(input)
10234	req.SetContext(ctx)
10235	req.ApplyOptions(opts...)
10236	return out, req.Send()
10237}
10238
10239// GetBehaviorModelTrainingSummariesPages iterates over the pages of a GetBehaviorModelTrainingSummaries operation,
10240// calling the "fn" function with the response data for each page. To stop
10241// iterating, return false from the fn function.
10242//
10243// See GetBehaviorModelTrainingSummaries method for more information on how to use this operation.
10244//
10245// Note: This operation can generate multiple requests to a service.
10246//
10247//    // Example iterating over at most 3 pages of a GetBehaviorModelTrainingSummaries operation.
10248//    pageNum := 0
10249//    err := client.GetBehaviorModelTrainingSummariesPages(params,
10250//        func(page *iot.GetBehaviorModelTrainingSummariesOutput, lastPage bool) bool {
10251//            pageNum++
10252//            fmt.Println(page)
10253//            return pageNum <= 3
10254//        })
10255//
10256func (c *IoT) GetBehaviorModelTrainingSummariesPages(input *GetBehaviorModelTrainingSummariesInput, fn func(*GetBehaviorModelTrainingSummariesOutput, bool) bool) error {
10257	return c.GetBehaviorModelTrainingSummariesPagesWithContext(aws.BackgroundContext(), input, fn)
10258}
10259
10260// GetBehaviorModelTrainingSummariesPagesWithContext same as GetBehaviorModelTrainingSummariesPages except
10261// it takes a Context and allows setting request options on the pages.
10262//
10263// The context must be non-nil and will be used for request cancellation. If
10264// the context is nil a panic will occur. In the future the SDK may create
10265// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10266// for more information on using Contexts.
10267func (c *IoT) GetBehaviorModelTrainingSummariesPagesWithContext(ctx aws.Context, input *GetBehaviorModelTrainingSummariesInput, fn func(*GetBehaviorModelTrainingSummariesOutput, bool) bool, opts ...request.Option) error {
10268	p := request.Pagination{
10269		NewRequest: func() (*request.Request, error) {
10270			var inCpy *GetBehaviorModelTrainingSummariesInput
10271			if input != nil {
10272				tmp := *input
10273				inCpy = &tmp
10274			}
10275			req, _ := c.GetBehaviorModelTrainingSummariesRequest(inCpy)
10276			req.SetContext(ctx)
10277			req.ApplyOptions(opts...)
10278			return req, nil
10279		},
10280	}
10281
10282	for p.Next() {
10283		if !fn(p.Page().(*GetBehaviorModelTrainingSummariesOutput), !p.HasNextPage()) {
10284			break
10285		}
10286	}
10287
10288	return p.Err()
10289}
10290
10291const opGetCardinality = "GetCardinality"
10292
10293// GetCardinalityRequest generates a "aws/request.Request" representing the
10294// client's request for the GetCardinality operation. The "output" return
10295// value will be populated with the request's response once the request completes
10296// successfully.
10297//
10298// Use "Send" method on the returned Request to send the API call to the service.
10299// the "output" return value is not valid until after Send returns without error.
10300//
10301// See GetCardinality for more information on using the GetCardinality
10302// API call, and error handling.
10303//
10304// This method is useful when you want to inject custom logic or configuration
10305// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10306//
10307//
10308//    // Example sending a request using the GetCardinalityRequest method.
10309//    req, resp := client.GetCardinalityRequest(params)
10310//
10311//    err := req.Send()
10312//    if err == nil { // resp is now filled
10313//        fmt.Println(resp)
10314//    }
10315func (c *IoT) GetCardinalityRequest(input *GetCardinalityInput) (req *request.Request, output *GetCardinalityOutput) {
10316	op := &request.Operation{
10317		Name:       opGetCardinality,
10318		HTTPMethod: "POST",
10319		HTTPPath:   "/indices/cardinality",
10320	}
10321
10322	if input == nil {
10323		input = &GetCardinalityInput{}
10324	}
10325
10326	output = &GetCardinalityOutput{}
10327	req = c.newRequest(op, input, output)
10328	return
10329}
10330
10331// GetCardinality API operation for AWS IoT.
10332//
10333// Returns the approximate count of unique values that match the query.
10334//
10335// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10336// with awserr.Error's Code and Message methods to get detailed information about
10337// the error.
10338//
10339// See the AWS API reference guide for AWS IoT's
10340// API operation GetCardinality for usage and error information.
10341//
10342// Returned Error Types:
10343//   * InvalidRequestException
10344//   The request is not valid.
10345//
10346//   * ThrottlingException
10347//   The rate exceeds the limit.
10348//
10349//   * UnauthorizedException
10350//   You are not authorized to perform this operation.
10351//
10352//   * ServiceUnavailableException
10353//   The service is temporarily unavailable.
10354//
10355//   * InternalFailureException
10356//   An unexpected error has occurred.
10357//
10358//   * ResourceNotFoundException
10359//   The specified resource does not exist.
10360//
10361//   * InvalidQueryException
10362//   The query is invalid.
10363//
10364//   * InvalidAggregationException
10365//   The aggregation is invalid.
10366//
10367//   * IndexNotReadyException
10368//   The index is not ready.
10369//
10370func (c *IoT) GetCardinality(input *GetCardinalityInput) (*GetCardinalityOutput, error) {
10371	req, out := c.GetCardinalityRequest(input)
10372	return out, req.Send()
10373}
10374
10375// GetCardinalityWithContext is the same as GetCardinality with the addition of
10376// the ability to pass a context and additional request options.
10377//
10378// See GetCardinality for details on how to use this API operation.
10379//
10380// The context must be non-nil and will be used for request cancellation. If
10381// the context is nil a panic will occur. In the future the SDK may create
10382// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10383// for more information on using Contexts.
10384func (c *IoT) GetCardinalityWithContext(ctx aws.Context, input *GetCardinalityInput, opts ...request.Option) (*GetCardinalityOutput, error) {
10385	req, out := c.GetCardinalityRequest(input)
10386	req.SetContext(ctx)
10387	req.ApplyOptions(opts...)
10388	return out, req.Send()
10389}
10390
10391const opGetEffectivePolicies = "GetEffectivePolicies"
10392
10393// GetEffectivePoliciesRequest generates a "aws/request.Request" representing the
10394// client's request for the GetEffectivePolicies operation. The "output" return
10395// value will be populated with the request's response once the request completes
10396// successfully.
10397//
10398// Use "Send" method on the returned Request to send the API call to the service.
10399// the "output" return value is not valid until after Send returns without error.
10400//
10401// See GetEffectivePolicies for more information on using the GetEffectivePolicies
10402// API call, and error handling.
10403//
10404// This method is useful when you want to inject custom logic or configuration
10405// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10406//
10407//
10408//    // Example sending a request using the GetEffectivePoliciesRequest method.
10409//    req, resp := client.GetEffectivePoliciesRequest(params)
10410//
10411//    err := req.Send()
10412//    if err == nil { // resp is now filled
10413//        fmt.Println(resp)
10414//    }
10415func (c *IoT) GetEffectivePoliciesRequest(input *GetEffectivePoliciesInput) (req *request.Request, output *GetEffectivePoliciesOutput) {
10416	op := &request.Operation{
10417		Name:       opGetEffectivePolicies,
10418		HTTPMethod: "POST",
10419		HTTPPath:   "/effective-policies",
10420	}
10421
10422	if input == nil {
10423		input = &GetEffectivePoliciesInput{}
10424	}
10425
10426	output = &GetEffectivePoliciesOutput{}
10427	req = c.newRequest(op, input, output)
10428	return
10429}
10430
10431// GetEffectivePolicies API operation for AWS IoT.
10432//
10433// Gets a list of the policies that have an effect on the authorization behavior
10434// of the specified device when it connects to the AWS IoT device gateway.
10435//
10436// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10437// with awserr.Error's Code and Message methods to get detailed information about
10438// the error.
10439//
10440// See the AWS API reference guide for AWS IoT's
10441// API operation GetEffectivePolicies for usage and error information.
10442//
10443// Returned Error Types:
10444//   * ResourceNotFoundException
10445//   The specified resource does not exist.
10446//
10447//   * InvalidRequestException
10448//   The request is not valid.
10449//
10450//   * ThrottlingException
10451//   The rate exceeds the limit.
10452//
10453//   * UnauthorizedException
10454//   You are not authorized to perform this operation.
10455//
10456//   * ServiceUnavailableException
10457//   The service is temporarily unavailable.
10458//
10459//   * InternalFailureException
10460//   An unexpected error has occurred.
10461//
10462//   * LimitExceededException
10463//   A limit has been exceeded.
10464//
10465func (c *IoT) GetEffectivePolicies(input *GetEffectivePoliciesInput) (*GetEffectivePoliciesOutput, error) {
10466	req, out := c.GetEffectivePoliciesRequest(input)
10467	return out, req.Send()
10468}
10469
10470// GetEffectivePoliciesWithContext is the same as GetEffectivePolicies with the addition of
10471// the ability to pass a context and additional request options.
10472//
10473// See GetEffectivePolicies for details on how to use this API operation.
10474//
10475// The context must be non-nil and will be used for request cancellation. If
10476// the context is nil a panic will occur. In the future the SDK may create
10477// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10478// for more information on using Contexts.
10479func (c *IoT) GetEffectivePoliciesWithContext(ctx aws.Context, input *GetEffectivePoliciesInput, opts ...request.Option) (*GetEffectivePoliciesOutput, error) {
10480	req, out := c.GetEffectivePoliciesRequest(input)
10481	req.SetContext(ctx)
10482	req.ApplyOptions(opts...)
10483	return out, req.Send()
10484}
10485
10486const opGetIndexingConfiguration = "GetIndexingConfiguration"
10487
10488// GetIndexingConfigurationRequest generates a "aws/request.Request" representing the
10489// client's request for the GetIndexingConfiguration operation. The "output" return
10490// value will be populated with the request's response once the request completes
10491// successfully.
10492//
10493// Use "Send" method on the returned Request to send the API call to the service.
10494// the "output" return value is not valid until after Send returns without error.
10495//
10496// See GetIndexingConfiguration for more information on using the GetIndexingConfiguration
10497// API call, and error handling.
10498//
10499// This method is useful when you want to inject custom logic or configuration
10500// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10501//
10502//
10503//    // Example sending a request using the GetIndexingConfigurationRequest method.
10504//    req, resp := client.GetIndexingConfigurationRequest(params)
10505//
10506//    err := req.Send()
10507//    if err == nil { // resp is now filled
10508//        fmt.Println(resp)
10509//    }
10510func (c *IoT) GetIndexingConfigurationRequest(input *GetIndexingConfigurationInput) (req *request.Request, output *GetIndexingConfigurationOutput) {
10511	op := &request.Operation{
10512		Name:       opGetIndexingConfiguration,
10513		HTTPMethod: "GET",
10514		HTTPPath:   "/indexing/config",
10515	}
10516
10517	if input == nil {
10518		input = &GetIndexingConfigurationInput{}
10519	}
10520
10521	output = &GetIndexingConfigurationOutput{}
10522	req = c.newRequest(op, input, output)
10523	return
10524}
10525
10526// GetIndexingConfiguration API operation for AWS IoT.
10527//
10528// Gets the indexing configuration.
10529//
10530// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10531// with awserr.Error's Code and Message methods to get detailed information about
10532// the error.
10533//
10534// See the AWS API reference guide for AWS IoT's
10535// API operation GetIndexingConfiguration for usage and error information.
10536//
10537// Returned Error Types:
10538//   * InvalidRequestException
10539//   The request is not valid.
10540//
10541//   * ThrottlingException
10542//   The rate exceeds the limit.
10543//
10544//   * UnauthorizedException
10545//   You are not authorized to perform this operation.
10546//
10547//   * ServiceUnavailableException
10548//   The service is temporarily unavailable.
10549//
10550//   * InternalFailureException
10551//   An unexpected error has occurred.
10552//
10553func (c *IoT) GetIndexingConfiguration(input *GetIndexingConfigurationInput) (*GetIndexingConfigurationOutput, error) {
10554	req, out := c.GetIndexingConfigurationRequest(input)
10555	return out, req.Send()
10556}
10557
10558// GetIndexingConfigurationWithContext is the same as GetIndexingConfiguration with the addition of
10559// the ability to pass a context and additional request options.
10560//
10561// See GetIndexingConfiguration for details on how to use this API operation.
10562//
10563// The context must be non-nil and will be used for request cancellation. If
10564// the context is nil a panic will occur. In the future the SDK may create
10565// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10566// for more information on using Contexts.
10567func (c *IoT) GetIndexingConfigurationWithContext(ctx aws.Context, input *GetIndexingConfigurationInput, opts ...request.Option) (*GetIndexingConfigurationOutput, error) {
10568	req, out := c.GetIndexingConfigurationRequest(input)
10569	req.SetContext(ctx)
10570	req.ApplyOptions(opts...)
10571	return out, req.Send()
10572}
10573
10574const opGetJobDocument = "GetJobDocument"
10575
10576// GetJobDocumentRequest generates a "aws/request.Request" representing the
10577// client's request for the GetJobDocument operation. The "output" return
10578// value will be populated with the request's response once the request completes
10579// successfully.
10580//
10581// Use "Send" method on the returned Request to send the API call to the service.
10582// the "output" return value is not valid until after Send returns without error.
10583//
10584// See GetJobDocument for more information on using the GetJobDocument
10585// API call, and error handling.
10586//
10587// This method is useful when you want to inject custom logic or configuration
10588// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10589//
10590//
10591//    // Example sending a request using the GetJobDocumentRequest method.
10592//    req, resp := client.GetJobDocumentRequest(params)
10593//
10594//    err := req.Send()
10595//    if err == nil { // resp is now filled
10596//        fmt.Println(resp)
10597//    }
10598func (c *IoT) GetJobDocumentRequest(input *GetJobDocumentInput) (req *request.Request, output *GetJobDocumentOutput) {
10599	op := &request.Operation{
10600		Name:       opGetJobDocument,
10601		HTTPMethod: "GET",
10602		HTTPPath:   "/jobs/{jobId}/job-document",
10603	}
10604
10605	if input == nil {
10606		input = &GetJobDocumentInput{}
10607	}
10608
10609	output = &GetJobDocumentOutput{}
10610	req = c.newRequest(op, input, output)
10611	return
10612}
10613
10614// GetJobDocument API operation for AWS IoT.
10615//
10616// Gets a job document.
10617//
10618// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10619// with awserr.Error's Code and Message methods to get detailed information about
10620// the error.
10621//
10622// See the AWS API reference guide for AWS IoT's
10623// API operation GetJobDocument for usage and error information.
10624//
10625// Returned Error Types:
10626//   * InvalidRequestException
10627//   The request is not valid.
10628//
10629//   * ResourceNotFoundException
10630//   The specified resource does not exist.
10631//
10632//   * ThrottlingException
10633//   The rate exceeds the limit.
10634//
10635//   * ServiceUnavailableException
10636//   The service is temporarily unavailable.
10637//
10638func (c *IoT) GetJobDocument(input *GetJobDocumentInput) (*GetJobDocumentOutput, error) {
10639	req, out := c.GetJobDocumentRequest(input)
10640	return out, req.Send()
10641}
10642
10643// GetJobDocumentWithContext is the same as GetJobDocument with the addition of
10644// the ability to pass a context and additional request options.
10645//
10646// See GetJobDocument for details on how to use this API operation.
10647//
10648// The context must be non-nil and will be used for request cancellation. If
10649// the context is nil a panic will occur. In the future the SDK may create
10650// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10651// for more information on using Contexts.
10652func (c *IoT) GetJobDocumentWithContext(ctx aws.Context, input *GetJobDocumentInput, opts ...request.Option) (*GetJobDocumentOutput, error) {
10653	req, out := c.GetJobDocumentRequest(input)
10654	req.SetContext(ctx)
10655	req.ApplyOptions(opts...)
10656	return out, req.Send()
10657}
10658
10659const opGetLoggingOptions = "GetLoggingOptions"
10660
10661// GetLoggingOptionsRequest generates a "aws/request.Request" representing the
10662// client's request for the GetLoggingOptions operation. The "output" return
10663// value will be populated with the request's response once the request completes
10664// successfully.
10665//
10666// Use "Send" method on the returned Request to send the API call to the service.
10667// the "output" return value is not valid until after Send returns without error.
10668//
10669// See GetLoggingOptions for more information on using the GetLoggingOptions
10670// API call, and error handling.
10671//
10672// This method is useful when you want to inject custom logic or configuration
10673// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10674//
10675//
10676//    // Example sending a request using the GetLoggingOptionsRequest method.
10677//    req, resp := client.GetLoggingOptionsRequest(params)
10678//
10679//    err := req.Send()
10680//    if err == nil { // resp is now filled
10681//        fmt.Println(resp)
10682//    }
10683func (c *IoT) GetLoggingOptionsRequest(input *GetLoggingOptionsInput) (req *request.Request, output *GetLoggingOptionsOutput) {
10684	op := &request.Operation{
10685		Name:       opGetLoggingOptions,
10686		HTTPMethod: "GET",
10687		HTTPPath:   "/loggingOptions",
10688	}
10689
10690	if input == nil {
10691		input = &GetLoggingOptionsInput{}
10692	}
10693
10694	output = &GetLoggingOptionsOutput{}
10695	req = c.newRequest(op, input, output)
10696	return
10697}
10698
10699// GetLoggingOptions API operation for AWS IoT.
10700//
10701// Gets the logging options.
10702//
10703// NOTE: use of this command is not recommended. Use GetV2LoggingOptions instead.
10704//
10705// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10706// with awserr.Error's Code and Message methods to get detailed information about
10707// the error.
10708//
10709// See the AWS API reference guide for AWS IoT's
10710// API operation GetLoggingOptions for usage and error information.
10711//
10712// Returned Error Types:
10713//   * InternalException
10714//   An unexpected error has occurred.
10715//
10716//   * InvalidRequestException
10717//   The request is not valid.
10718//
10719//   * ServiceUnavailableException
10720//   The service is temporarily unavailable.
10721//
10722func (c *IoT) GetLoggingOptions(input *GetLoggingOptionsInput) (*GetLoggingOptionsOutput, error) {
10723	req, out := c.GetLoggingOptionsRequest(input)
10724	return out, req.Send()
10725}
10726
10727// GetLoggingOptionsWithContext is the same as GetLoggingOptions with the addition of
10728// the ability to pass a context and additional request options.
10729//
10730// See GetLoggingOptions for details on how to use this API operation.
10731//
10732// The context must be non-nil and will be used for request cancellation. If
10733// the context is nil a panic will occur. In the future the SDK may create
10734// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10735// for more information on using Contexts.
10736func (c *IoT) GetLoggingOptionsWithContext(ctx aws.Context, input *GetLoggingOptionsInput, opts ...request.Option) (*GetLoggingOptionsOutput, error) {
10737	req, out := c.GetLoggingOptionsRequest(input)
10738	req.SetContext(ctx)
10739	req.ApplyOptions(opts...)
10740	return out, req.Send()
10741}
10742
10743const opGetOTAUpdate = "GetOTAUpdate"
10744
10745// GetOTAUpdateRequest generates a "aws/request.Request" representing the
10746// client's request for the GetOTAUpdate operation. The "output" return
10747// value will be populated with the request's response once the request completes
10748// successfully.
10749//
10750// Use "Send" method on the returned Request to send the API call to the service.
10751// the "output" return value is not valid until after Send returns without error.
10752//
10753// See GetOTAUpdate for more information on using the GetOTAUpdate
10754// API call, and error handling.
10755//
10756// This method is useful when you want to inject custom logic or configuration
10757// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10758//
10759//
10760//    // Example sending a request using the GetOTAUpdateRequest method.
10761//    req, resp := client.GetOTAUpdateRequest(params)
10762//
10763//    err := req.Send()
10764//    if err == nil { // resp is now filled
10765//        fmt.Println(resp)
10766//    }
10767func (c *IoT) GetOTAUpdateRequest(input *GetOTAUpdateInput) (req *request.Request, output *GetOTAUpdateOutput) {
10768	op := &request.Operation{
10769		Name:       opGetOTAUpdate,
10770		HTTPMethod: "GET",
10771		HTTPPath:   "/otaUpdates/{otaUpdateId}",
10772	}
10773
10774	if input == nil {
10775		input = &GetOTAUpdateInput{}
10776	}
10777
10778	output = &GetOTAUpdateOutput{}
10779	req = c.newRequest(op, input, output)
10780	return
10781}
10782
10783// GetOTAUpdate API operation for AWS IoT.
10784//
10785// Gets an OTA update.
10786//
10787// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10788// with awserr.Error's Code and Message methods to get detailed information about
10789// the error.
10790//
10791// See the AWS API reference guide for AWS IoT's
10792// API operation GetOTAUpdate for usage and error information.
10793//
10794// Returned Error Types:
10795//   * InvalidRequestException
10796//   The request is not valid.
10797//
10798//   * ThrottlingException
10799//   The rate exceeds the limit.
10800//
10801//   * UnauthorizedException
10802//   You are not authorized to perform this operation.
10803//
10804//   * InternalFailureException
10805//   An unexpected error has occurred.
10806//
10807//   * ServiceUnavailableException
10808//   The service is temporarily unavailable.
10809//
10810//   * ResourceNotFoundException
10811//   The specified resource does not exist.
10812//
10813func (c *IoT) GetOTAUpdate(input *GetOTAUpdateInput) (*GetOTAUpdateOutput, error) {
10814	req, out := c.GetOTAUpdateRequest(input)
10815	return out, req.Send()
10816}
10817
10818// GetOTAUpdateWithContext is the same as GetOTAUpdate with the addition of
10819// the ability to pass a context and additional request options.
10820//
10821// See GetOTAUpdate for details on how to use this API operation.
10822//
10823// The context must be non-nil and will be used for request cancellation. If
10824// the context is nil a panic will occur. In the future the SDK may create
10825// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10826// for more information on using Contexts.
10827func (c *IoT) GetOTAUpdateWithContext(ctx aws.Context, input *GetOTAUpdateInput, opts ...request.Option) (*GetOTAUpdateOutput, error) {
10828	req, out := c.GetOTAUpdateRequest(input)
10829	req.SetContext(ctx)
10830	req.ApplyOptions(opts...)
10831	return out, req.Send()
10832}
10833
10834const opGetPercentiles = "GetPercentiles"
10835
10836// GetPercentilesRequest generates a "aws/request.Request" representing the
10837// client's request for the GetPercentiles operation. The "output" return
10838// value will be populated with the request's response once the request completes
10839// successfully.
10840//
10841// Use "Send" method on the returned Request to send the API call to the service.
10842// the "output" return value is not valid until after Send returns without error.
10843//
10844// See GetPercentiles for more information on using the GetPercentiles
10845// API call, and error handling.
10846//
10847// This method is useful when you want to inject custom logic or configuration
10848// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10849//
10850//
10851//    // Example sending a request using the GetPercentilesRequest method.
10852//    req, resp := client.GetPercentilesRequest(params)
10853//
10854//    err := req.Send()
10855//    if err == nil { // resp is now filled
10856//        fmt.Println(resp)
10857//    }
10858func (c *IoT) GetPercentilesRequest(input *GetPercentilesInput) (req *request.Request, output *GetPercentilesOutput) {
10859	op := &request.Operation{
10860		Name:       opGetPercentiles,
10861		HTTPMethod: "POST",
10862		HTTPPath:   "/indices/percentiles",
10863	}
10864
10865	if input == nil {
10866		input = &GetPercentilesInput{}
10867	}
10868
10869	output = &GetPercentilesOutput{}
10870	req = c.newRequest(op, input, output)
10871	return
10872}
10873
10874// GetPercentiles API operation for AWS IoT.
10875//
10876// Groups the aggregated values that match the query into percentile groupings.
10877// The default percentile groupings are: 1,5,25,50,75,95,99, although you can
10878// specify your own when you call GetPercentiles. This function returns a value
10879// for each percentile group specified (or the default percentile groupings).
10880// The percentile group "1" contains the aggregated field value that occurs
10881// in approximately one percent of the values that match the query. The percentile
10882// group "5" contains the aggregated field value that occurs in approximately
10883// five percent of the values that match the query, and so on. The result is
10884// an approximation, the more values that match the query, the more accurate
10885// the percentile values.
10886//
10887// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10888// with awserr.Error's Code and Message methods to get detailed information about
10889// the error.
10890//
10891// See the AWS API reference guide for AWS IoT's
10892// API operation GetPercentiles for usage and error information.
10893//
10894// Returned Error Types:
10895//   * InvalidRequestException
10896//   The request is not valid.
10897//
10898//   * ThrottlingException
10899//   The rate exceeds the limit.
10900//
10901//   * UnauthorizedException
10902//   You are not authorized to perform this operation.
10903//
10904//   * ServiceUnavailableException
10905//   The service is temporarily unavailable.
10906//
10907//   * InternalFailureException
10908//   An unexpected error has occurred.
10909//
10910//   * ResourceNotFoundException
10911//   The specified resource does not exist.
10912//
10913//   * InvalidQueryException
10914//   The query is invalid.
10915//
10916//   * InvalidAggregationException
10917//   The aggregation is invalid.
10918//
10919//   * IndexNotReadyException
10920//   The index is not ready.
10921//
10922func (c *IoT) GetPercentiles(input *GetPercentilesInput) (*GetPercentilesOutput, error) {
10923	req, out := c.GetPercentilesRequest(input)
10924	return out, req.Send()
10925}
10926
10927// GetPercentilesWithContext is the same as GetPercentiles with the addition of
10928// the ability to pass a context and additional request options.
10929//
10930// See GetPercentiles for details on how to use this API operation.
10931//
10932// The context must be non-nil and will be used for request cancellation. If
10933// the context is nil a panic will occur. In the future the SDK may create
10934// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10935// for more information on using Contexts.
10936func (c *IoT) GetPercentilesWithContext(ctx aws.Context, input *GetPercentilesInput, opts ...request.Option) (*GetPercentilesOutput, error) {
10937	req, out := c.GetPercentilesRequest(input)
10938	req.SetContext(ctx)
10939	req.ApplyOptions(opts...)
10940	return out, req.Send()
10941}
10942
10943const opGetPolicy = "GetPolicy"
10944
10945// GetPolicyRequest generates a "aws/request.Request" representing the
10946// client's request for the GetPolicy operation. The "output" return
10947// value will be populated with the request's response once the request completes
10948// successfully.
10949//
10950// Use "Send" method on the returned Request to send the API call to the service.
10951// the "output" return value is not valid until after Send returns without error.
10952//
10953// See GetPolicy for more information on using the GetPolicy
10954// API call, and error handling.
10955//
10956// This method is useful when you want to inject custom logic or configuration
10957// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10958//
10959//
10960//    // Example sending a request using the GetPolicyRequest method.
10961//    req, resp := client.GetPolicyRequest(params)
10962//
10963//    err := req.Send()
10964//    if err == nil { // resp is now filled
10965//        fmt.Println(resp)
10966//    }
10967func (c *IoT) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
10968	op := &request.Operation{
10969		Name:       opGetPolicy,
10970		HTTPMethod: "GET",
10971		HTTPPath:   "/policies/{policyName}",
10972	}
10973
10974	if input == nil {
10975		input = &GetPolicyInput{}
10976	}
10977
10978	output = &GetPolicyOutput{}
10979	req = c.newRequest(op, input, output)
10980	return
10981}
10982
10983// GetPolicy API operation for AWS IoT.
10984//
10985// Gets information about the specified policy with the policy document of the
10986// default version.
10987//
10988// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10989// with awserr.Error's Code and Message methods to get detailed information about
10990// the error.
10991//
10992// See the AWS API reference guide for AWS IoT's
10993// API operation GetPolicy for usage and error information.
10994//
10995// Returned Error Types:
10996//   * ResourceNotFoundException
10997//   The specified resource does not exist.
10998//
10999//   * InvalidRequestException
11000//   The request is not valid.
11001//
11002//   * ThrottlingException
11003//   The rate exceeds the limit.
11004//
11005//   * UnauthorizedException
11006//   You are not authorized to perform this operation.
11007//
11008//   * ServiceUnavailableException
11009//   The service is temporarily unavailable.
11010//
11011//   * InternalFailureException
11012//   An unexpected error has occurred.
11013//
11014func (c *IoT) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
11015	req, out := c.GetPolicyRequest(input)
11016	return out, req.Send()
11017}
11018
11019// GetPolicyWithContext is the same as GetPolicy with the addition of
11020// the ability to pass a context and additional request options.
11021//
11022// See GetPolicy for details on how to use this API operation.
11023//
11024// The context must be non-nil and will be used for request cancellation. If
11025// the context is nil a panic will occur. In the future the SDK may create
11026// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11027// for more information on using Contexts.
11028func (c *IoT) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) {
11029	req, out := c.GetPolicyRequest(input)
11030	req.SetContext(ctx)
11031	req.ApplyOptions(opts...)
11032	return out, req.Send()
11033}
11034
11035const opGetPolicyVersion = "GetPolicyVersion"
11036
11037// GetPolicyVersionRequest generates a "aws/request.Request" representing the
11038// client's request for the GetPolicyVersion operation. The "output" return
11039// value will be populated with the request's response once the request completes
11040// successfully.
11041//
11042// Use "Send" method on the returned Request to send the API call to the service.
11043// the "output" return value is not valid until after Send returns without error.
11044//
11045// See GetPolicyVersion for more information on using the GetPolicyVersion
11046// API call, and error handling.
11047//
11048// This method is useful when you want to inject custom logic or configuration
11049// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11050//
11051//
11052//    // Example sending a request using the GetPolicyVersionRequest method.
11053//    req, resp := client.GetPolicyVersionRequest(params)
11054//
11055//    err := req.Send()
11056//    if err == nil { // resp is now filled
11057//        fmt.Println(resp)
11058//    }
11059func (c *IoT) GetPolicyVersionRequest(input *GetPolicyVersionInput) (req *request.Request, output *GetPolicyVersionOutput) {
11060	op := &request.Operation{
11061		Name:       opGetPolicyVersion,
11062		HTTPMethod: "GET",
11063		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
11064	}
11065
11066	if input == nil {
11067		input = &GetPolicyVersionInput{}
11068	}
11069
11070	output = &GetPolicyVersionOutput{}
11071	req = c.newRequest(op, input, output)
11072	return
11073}
11074
11075// GetPolicyVersion API operation for AWS IoT.
11076//
11077// Gets information about the specified policy version.
11078//
11079// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11080// with awserr.Error's Code and Message methods to get detailed information about
11081// the error.
11082//
11083// See the AWS API reference guide for AWS IoT's
11084// API operation GetPolicyVersion for usage and error information.
11085//
11086// Returned Error Types:
11087//   * ResourceNotFoundException
11088//   The specified resource does not exist.
11089//
11090//   * InvalidRequestException
11091//   The request is not valid.
11092//
11093//   * ThrottlingException
11094//   The rate exceeds the limit.
11095//
11096//   * UnauthorizedException
11097//   You are not authorized to perform this operation.
11098//
11099//   * ServiceUnavailableException
11100//   The service is temporarily unavailable.
11101//
11102//   * InternalFailureException
11103//   An unexpected error has occurred.
11104//
11105func (c *IoT) GetPolicyVersion(input *GetPolicyVersionInput) (*GetPolicyVersionOutput, error) {
11106	req, out := c.GetPolicyVersionRequest(input)
11107	return out, req.Send()
11108}
11109
11110// GetPolicyVersionWithContext is the same as GetPolicyVersion with the addition of
11111// the ability to pass a context and additional request options.
11112//
11113// See GetPolicyVersion for details on how to use this API operation.
11114//
11115// The context must be non-nil and will be used for request cancellation. If
11116// the context is nil a panic will occur. In the future the SDK may create
11117// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11118// for more information on using Contexts.
11119func (c *IoT) GetPolicyVersionWithContext(ctx aws.Context, input *GetPolicyVersionInput, opts ...request.Option) (*GetPolicyVersionOutput, error) {
11120	req, out := c.GetPolicyVersionRequest(input)
11121	req.SetContext(ctx)
11122	req.ApplyOptions(opts...)
11123	return out, req.Send()
11124}
11125
11126const opGetRegistrationCode = "GetRegistrationCode"
11127
11128// GetRegistrationCodeRequest generates a "aws/request.Request" representing the
11129// client's request for the GetRegistrationCode operation. The "output" return
11130// value will be populated with the request's response once the request completes
11131// successfully.
11132//
11133// Use "Send" method on the returned Request to send the API call to the service.
11134// the "output" return value is not valid until after Send returns without error.
11135//
11136// See GetRegistrationCode for more information on using the GetRegistrationCode
11137// API call, and error handling.
11138//
11139// This method is useful when you want to inject custom logic or configuration
11140// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11141//
11142//
11143//    // Example sending a request using the GetRegistrationCodeRequest method.
11144//    req, resp := client.GetRegistrationCodeRequest(params)
11145//
11146//    err := req.Send()
11147//    if err == nil { // resp is now filled
11148//        fmt.Println(resp)
11149//    }
11150func (c *IoT) GetRegistrationCodeRequest(input *GetRegistrationCodeInput) (req *request.Request, output *GetRegistrationCodeOutput) {
11151	op := &request.Operation{
11152		Name:       opGetRegistrationCode,
11153		HTTPMethod: "GET",
11154		HTTPPath:   "/registrationcode",
11155	}
11156
11157	if input == nil {
11158		input = &GetRegistrationCodeInput{}
11159	}
11160
11161	output = &GetRegistrationCodeOutput{}
11162	req = c.newRequest(op, input, output)
11163	return
11164}
11165
11166// GetRegistrationCode API operation for AWS IoT.
11167//
11168// Gets a registration code used to register a CA certificate with AWS IoT.
11169//
11170// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11171// with awserr.Error's Code and Message methods to get detailed information about
11172// the error.
11173//
11174// See the AWS API reference guide for AWS IoT's
11175// API operation GetRegistrationCode for usage and error information.
11176//
11177// Returned Error Types:
11178//   * ThrottlingException
11179//   The rate exceeds the limit.
11180//
11181//   * UnauthorizedException
11182//   You are not authorized to perform this operation.
11183//
11184//   * ServiceUnavailableException
11185//   The service is temporarily unavailable.
11186//
11187//   * InternalFailureException
11188//   An unexpected error has occurred.
11189//
11190//   * InvalidRequestException
11191//   The request is not valid.
11192//
11193func (c *IoT) GetRegistrationCode(input *GetRegistrationCodeInput) (*GetRegistrationCodeOutput, error) {
11194	req, out := c.GetRegistrationCodeRequest(input)
11195	return out, req.Send()
11196}
11197
11198// GetRegistrationCodeWithContext is the same as GetRegistrationCode with the addition of
11199// the ability to pass a context and additional request options.
11200//
11201// See GetRegistrationCode for details on how to use this API operation.
11202//
11203// The context must be non-nil and will be used for request cancellation. If
11204// the context is nil a panic will occur. In the future the SDK may create
11205// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11206// for more information on using Contexts.
11207func (c *IoT) GetRegistrationCodeWithContext(ctx aws.Context, input *GetRegistrationCodeInput, opts ...request.Option) (*GetRegistrationCodeOutput, error) {
11208	req, out := c.GetRegistrationCodeRequest(input)
11209	req.SetContext(ctx)
11210	req.ApplyOptions(opts...)
11211	return out, req.Send()
11212}
11213
11214const opGetStatistics = "GetStatistics"
11215
11216// GetStatisticsRequest generates a "aws/request.Request" representing the
11217// client's request for the GetStatistics operation. The "output" return
11218// value will be populated with the request's response once the request completes
11219// successfully.
11220//
11221// Use "Send" method on the returned Request to send the API call to the service.
11222// the "output" return value is not valid until after Send returns without error.
11223//
11224// See GetStatistics for more information on using the GetStatistics
11225// API call, and error handling.
11226//
11227// This method is useful when you want to inject custom logic or configuration
11228// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11229//
11230//
11231//    // Example sending a request using the GetStatisticsRequest method.
11232//    req, resp := client.GetStatisticsRequest(params)
11233//
11234//    err := req.Send()
11235//    if err == nil { // resp is now filled
11236//        fmt.Println(resp)
11237//    }
11238func (c *IoT) GetStatisticsRequest(input *GetStatisticsInput) (req *request.Request, output *GetStatisticsOutput) {
11239	op := &request.Operation{
11240		Name:       opGetStatistics,
11241		HTTPMethod: "POST",
11242		HTTPPath:   "/indices/statistics",
11243	}
11244
11245	if input == nil {
11246		input = &GetStatisticsInput{}
11247	}
11248
11249	output = &GetStatisticsOutput{}
11250	req = c.newRequest(op, input, output)
11251	return
11252}
11253
11254// GetStatistics API operation for AWS IoT.
11255//
11256// Returns the count, average, sum, minimum, maximum, sum of squares, variance,
11257// and standard deviation for the specified aggregated field. If the aggregation
11258// field is of type String, only the count statistic is returned.
11259//
11260// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11261// with awserr.Error's Code and Message methods to get detailed information about
11262// the error.
11263//
11264// See the AWS API reference guide for AWS IoT's
11265// API operation GetStatistics for usage and error information.
11266//
11267// Returned Error Types:
11268//   * InvalidRequestException
11269//   The request is not valid.
11270//
11271//   * ThrottlingException
11272//   The rate exceeds the limit.
11273//
11274//   * UnauthorizedException
11275//   You are not authorized to perform this operation.
11276//
11277//   * ServiceUnavailableException
11278//   The service is temporarily unavailable.
11279//
11280//   * InternalFailureException
11281//   An unexpected error has occurred.
11282//
11283//   * ResourceNotFoundException
11284//   The specified resource does not exist.
11285//
11286//   * InvalidQueryException
11287//   The query is invalid.
11288//
11289//   * InvalidAggregationException
11290//   The aggregation is invalid.
11291//
11292//   * IndexNotReadyException
11293//   The index is not ready.
11294//
11295func (c *IoT) GetStatistics(input *GetStatisticsInput) (*GetStatisticsOutput, error) {
11296	req, out := c.GetStatisticsRequest(input)
11297	return out, req.Send()
11298}
11299
11300// GetStatisticsWithContext is the same as GetStatistics with the addition of
11301// the ability to pass a context and additional request options.
11302//
11303// See GetStatistics for details on how to use this API operation.
11304//
11305// The context must be non-nil and will be used for request cancellation. If
11306// the context is nil a panic will occur. In the future the SDK may create
11307// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11308// for more information on using Contexts.
11309func (c *IoT) GetStatisticsWithContext(ctx aws.Context, input *GetStatisticsInput, opts ...request.Option) (*GetStatisticsOutput, error) {
11310	req, out := c.GetStatisticsRequest(input)
11311	req.SetContext(ctx)
11312	req.ApplyOptions(opts...)
11313	return out, req.Send()
11314}
11315
11316const opGetTopicRule = "GetTopicRule"
11317
11318// GetTopicRuleRequest generates a "aws/request.Request" representing the
11319// client's request for the GetTopicRule operation. The "output" return
11320// value will be populated with the request's response once the request completes
11321// successfully.
11322//
11323// Use "Send" method on the returned Request to send the API call to the service.
11324// the "output" return value is not valid until after Send returns without error.
11325//
11326// See GetTopicRule for more information on using the GetTopicRule
11327// API call, and error handling.
11328//
11329// This method is useful when you want to inject custom logic or configuration
11330// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11331//
11332//
11333//    // Example sending a request using the GetTopicRuleRequest method.
11334//    req, resp := client.GetTopicRuleRequest(params)
11335//
11336//    err := req.Send()
11337//    if err == nil { // resp is now filled
11338//        fmt.Println(resp)
11339//    }
11340func (c *IoT) GetTopicRuleRequest(input *GetTopicRuleInput) (req *request.Request, output *GetTopicRuleOutput) {
11341	op := &request.Operation{
11342		Name:       opGetTopicRule,
11343		HTTPMethod: "GET",
11344		HTTPPath:   "/rules/{ruleName}",
11345	}
11346
11347	if input == nil {
11348		input = &GetTopicRuleInput{}
11349	}
11350
11351	output = &GetTopicRuleOutput{}
11352	req = c.newRequest(op, input, output)
11353	return
11354}
11355
11356// GetTopicRule API operation for AWS IoT.
11357//
11358// Gets information about the rule.
11359//
11360// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11361// with awserr.Error's Code and Message methods to get detailed information about
11362// the error.
11363//
11364// See the AWS API reference guide for AWS IoT's
11365// API operation GetTopicRule for usage and error information.
11366//
11367// Returned Error Types:
11368//   * InternalException
11369//   An unexpected error has occurred.
11370//
11371//   * InvalidRequestException
11372//   The request is not valid.
11373//
11374//   * ServiceUnavailableException
11375//   The service is temporarily unavailable.
11376//
11377//   * UnauthorizedException
11378//   You are not authorized to perform this operation.
11379//
11380func (c *IoT) GetTopicRule(input *GetTopicRuleInput) (*GetTopicRuleOutput, error) {
11381	req, out := c.GetTopicRuleRequest(input)
11382	return out, req.Send()
11383}
11384
11385// GetTopicRuleWithContext is the same as GetTopicRule with the addition of
11386// the ability to pass a context and additional request options.
11387//
11388// See GetTopicRule for details on how to use this API operation.
11389//
11390// The context must be non-nil and will be used for request cancellation. If
11391// the context is nil a panic will occur. In the future the SDK may create
11392// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11393// for more information on using Contexts.
11394func (c *IoT) GetTopicRuleWithContext(ctx aws.Context, input *GetTopicRuleInput, opts ...request.Option) (*GetTopicRuleOutput, error) {
11395	req, out := c.GetTopicRuleRequest(input)
11396	req.SetContext(ctx)
11397	req.ApplyOptions(opts...)
11398	return out, req.Send()
11399}
11400
11401const opGetTopicRuleDestination = "GetTopicRuleDestination"
11402
11403// GetTopicRuleDestinationRequest generates a "aws/request.Request" representing the
11404// client's request for the GetTopicRuleDestination operation. The "output" return
11405// value will be populated with the request's response once the request completes
11406// successfully.
11407//
11408// Use "Send" method on the returned Request to send the API call to the service.
11409// the "output" return value is not valid until after Send returns without error.
11410//
11411// See GetTopicRuleDestination for more information on using the GetTopicRuleDestination
11412// API call, and error handling.
11413//
11414// This method is useful when you want to inject custom logic or configuration
11415// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11416//
11417//
11418//    // Example sending a request using the GetTopicRuleDestinationRequest method.
11419//    req, resp := client.GetTopicRuleDestinationRequest(params)
11420//
11421//    err := req.Send()
11422//    if err == nil { // resp is now filled
11423//        fmt.Println(resp)
11424//    }
11425func (c *IoT) GetTopicRuleDestinationRequest(input *GetTopicRuleDestinationInput) (req *request.Request, output *GetTopicRuleDestinationOutput) {
11426	op := &request.Operation{
11427		Name:       opGetTopicRuleDestination,
11428		HTTPMethod: "GET",
11429		HTTPPath:   "/destinations/{arn+}",
11430	}
11431
11432	if input == nil {
11433		input = &GetTopicRuleDestinationInput{}
11434	}
11435
11436	output = &GetTopicRuleDestinationOutput{}
11437	req = c.newRequest(op, input, output)
11438	return
11439}
11440
11441// GetTopicRuleDestination API operation for AWS IoT.
11442//
11443// Gets information about a topic rule destination.
11444//
11445// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11446// with awserr.Error's Code and Message methods to get detailed information about
11447// the error.
11448//
11449// See the AWS API reference guide for AWS IoT's
11450// API operation GetTopicRuleDestination for usage and error information.
11451//
11452// Returned Error Types:
11453//   * InternalException
11454//   An unexpected error has occurred.
11455//
11456//   * InvalidRequestException
11457//   The request is not valid.
11458//
11459//   * ServiceUnavailableException
11460//   The service is temporarily unavailable.
11461//
11462//   * UnauthorizedException
11463//   You are not authorized to perform this operation.
11464//
11465func (c *IoT) GetTopicRuleDestination(input *GetTopicRuleDestinationInput) (*GetTopicRuleDestinationOutput, error) {
11466	req, out := c.GetTopicRuleDestinationRequest(input)
11467	return out, req.Send()
11468}
11469
11470// GetTopicRuleDestinationWithContext is the same as GetTopicRuleDestination with the addition of
11471// the ability to pass a context and additional request options.
11472//
11473// See GetTopicRuleDestination for details on how to use this API operation.
11474//
11475// The context must be non-nil and will be used for request cancellation. If
11476// the context is nil a panic will occur. In the future the SDK may create
11477// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11478// for more information on using Contexts.
11479func (c *IoT) GetTopicRuleDestinationWithContext(ctx aws.Context, input *GetTopicRuleDestinationInput, opts ...request.Option) (*GetTopicRuleDestinationOutput, error) {
11480	req, out := c.GetTopicRuleDestinationRequest(input)
11481	req.SetContext(ctx)
11482	req.ApplyOptions(opts...)
11483	return out, req.Send()
11484}
11485
11486const opGetV2LoggingOptions = "GetV2LoggingOptions"
11487
11488// GetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
11489// client's request for the GetV2LoggingOptions operation. The "output" return
11490// value will be populated with the request's response once the request completes
11491// successfully.
11492//
11493// Use "Send" method on the returned Request to send the API call to the service.
11494// the "output" return value is not valid until after Send returns without error.
11495//
11496// See GetV2LoggingOptions for more information on using the GetV2LoggingOptions
11497// API call, and error handling.
11498//
11499// This method is useful when you want to inject custom logic or configuration
11500// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11501//
11502//
11503//    // Example sending a request using the GetV2LoggingOptionsRequest method.
11504//    req, resp := client.GetV2LoggingOptionsRequest(params)
11505//
11506//    err := req.Send()
11507//    if err == nil { // resp is now filled
11508//        fmt.Println(resp)
11509//    }
11510func (c *IoT) GetV2LoggingOptionsRequest(input *GetV2LoggingOptionsInput) (req *request.Request, output *GetV2LoggingOptionsOutput) {
11511	op := &request.Operation{
11512		Name:       opGetV2LoggingOptions,
11513		HTTPMethod: "GET",
11514		HTTPPath:   "/v2LoggingOptions",
11515	}
11516
11517	if input == nil {
11518		input = &GetV2LoggingOptionsInput{}
11519	}
11520
11521	output = &GetV2LoggingOptionsOutput{}
11522	req = c.newRequest(op, input, output)
11523	return
11524}
11525
11526// GetV2LoggingOptions API operation for AWS IoT.
11527//
11528// Gets the fine grained logging options.
11529//
11530// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11531// with awserr.Error's Code and Message methods to get detailed information about
11532// the error.
11533//
11534// See the AWS API reference guide for AWS IoT's
11535// API operation GetV2LoggingOptions for usage and error information.
11536//
11537// Returned Error Types:
11538//   * InternalException
11539//   An unexpected error has occurred.
11540//
11541//   * NotConfiguredException
11542//   The resource is not configured.
11543//
11544//   * ServiceUnavailableException
11545//   The service is temporarily unavailable.
11546//
11547func (c *IoT) GetV2LoggingOptions(input *GetV2LoggingOptionsInput) (*GetV2LoggingOptionsOutput, error) {
11548	req, out := c.GetV2LoggingOptionsRequest(input)
11549	return out, req.Send()
11550}
11551
11552// GetV2LoggingOptionsWithContext is the same as GetV2LoggingOptions with the addition of
11553// the ability to pass a context and additional request options.
11554//
11555// See GetV2LoggingOptions for details on how to use this API operation.
11556//
11557// The context must be non-nil and will be used for request cancellation. If
11558// the context is nil a panic will occur. In the future the SDK may create
11559// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11560// for more information on using Contexts.
11561func (c *IoT) GetV2LoggingOptionsWithContext(ctx aws.Context, input *GetV2LoggingOptionsInput, opts ...request.Option) (*GetV2LoggingOptionsOutput, error) {
11562	req, out := c.GetV2LoggingOptionsRequest(input)
11563	req.SetContext(ctx)
11564	req.ApplyOptions(opts...)
11565	return out, req.Send()
11566}
11567
11568const opListActiveViolations = "ListActiveViolations"
11569
11570// ListActiveViolationsRequest generates a "aws/request.Request" representing the
11571// client's request for the ListActiveViolations operation. The "output" return
11572// value will be populated with the request's response once the request completes
11573// successfully.
11574//
11575// Use "Send" method on the returned Request to send the API call to the service.
11576// the "output" return value is not valid until after Send returns without error.
11577//
11578// See ListActiveViolations for more information on using the ListActiveViolations
11579// API call, and error handling.
11580//
11581// This method is useful when you want to inject custom logic or configuration
11582// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11583//
11584//
11585//    // Example sending a request using the ListActiveViolationsRequest method.
11586//    req, resp := client.ListActiveViolationsRequest(params)
11587//
11588//    err := req.Send()
11589//    if err == nil { // resp is now filled
11590//        fmt.Println(resp)
11591//    }
11592func (c *IoT) ListActiveViolationsRequest(input *ListActiveViolationsInput) (req *request.Request, output *ListActiveViolationsOutput) {
11593	op := &request.Operation{
11594		Name:       opListActiveViolations,
11595		HTTPMethod: "GET",
11596		HTTPPath:   "/active-violations",
11597		Paginator: &request.Paginator{
11598			InputTokens:     []string{"nextToken"},
11599			OutputTokens:    []string{"nextToken"},
11600			LimitToken:      "maxResults",
11601			TruncationToken: "",
11602		},
11603	}
11604
11605	if input == nil {
11606		input = &ListActiveViolationsInput{}
11607	}
11608
11609	output = &ListActiveViolationsOutput{}
11610	req = c.newRequest(op, input, output)
11611	return
11612}
11613
11614// ListActiveViolations API operation for AWS IoT.
11615//
11616// Lists the active violations for a given Device Defender security profile.
11617//
11618// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11619// with awserr.Error's Code and Message methods to get detailed information about
11620// the error.
11621//
11622// See the AWS API reference guide for AWS IoT's
11623// API operation ListActiveViolations for usage and error information.
11624//
11625// Returned Error Types:
11626//   * InvalidRequestException
11627//   The request is not valid.
11628//
11629//   * ResourceNotFoundException
11630//   The specified resource does not exist.
11631//
11632//   * ThrottlingException
11633//   The rate exceeds the limit.
11634//
11635//   * InternalFailureException
11636//   An unexpected error has occurred.
11637//
11638func (c *IoT) ListActiveViolations(input *ListActiveViolationsInput) (*ListActiveViolationsOutput, error) {
11639	req, out := c.ListActiveViolationsRequest(input)
11640	return out, req.Send()
11641}
11642
11643// ListActiveViolationsWithContext is the same as ListActiveViolations with the addition of
11644// the ability to pass a context and additional request options.
11645//
11646// See ListActiveViolations for details on how to use this API operation.
11647//
11648// The context must be non-nil and will be used for request cancellation. If
11649// the context is nil a panic will occur. In the future the SDK may create
11650// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11651// for more information on using Contexts.
11652func (c *IoT) ListActiveViolationsWithContext(ctx aws.Context, input *ListActiveViolationsInput, opts ...request.Option) (*ListActiveViolationsOutput, error) {
11653	req, out := c.ListActiveViolationsRequest(input)
11654	req.SetContext(ctx)
11655	req.ApplyOptions(opts...)
11656	return out, req.Send()
11657}
11658
11659// ListActiveViolationsPages iterates over the pages of a ListActiveViolations operation,
11660// calling the "fn" function with the response data for each page. To stop
11661// iterating, return false from the fn function.
11662//
11663// See ListActiveViolations method for more information on how to use this operation.
11664//
11665// Note: This operation can generate multiple requests to a service.
11666//
11667//    // Example iterating over at most 3 pages of a ListActiveViolations operation.
11668//    pageNum := 0
11669//    err := client.ListActiveViolationsPages(params,
11670//        func(page *iot.ListActiveViolationsOutput, lastPage bool) bool {
11671//            pageNum++
11672//            fmt.Println(page)
11673//            return pageNum <= 3
11674//        })
11675//
11676func (c *IoT) ListActiveViolationsPages(input *ListActiveViolationsInput, fn func(*ListActiveViolationsOutput, bool) bool) error {
11677	return c.ListActiveViolationsPagesWithContext(aws.BackgroundContext(), input, fn)
11678}
11679
11680// ListActiveViolationsPagesWithContext same as ListActiveViolationsPages except
11681// it takes a Context and allows setting request options on the pages.
11682//
11683// The context must be non-nil and will be used for request cancellation. If
11684// the context is nil a panic will occur. In the future the SDK may create
11685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11686// for more information on using Contexts.
11687func (c *IoT) ListActiveViolationsPagesWithContext(ctx aws.Context, input *ListActiveViolationsInput, fn func(*ListActiveViolationsOutput, bool) bool, opts ...request.Option) error {
11688	p := request.Pagination{
11689		NewRequest: func() (*request.Request, error) {
11690			var inCpy *ListActiveViolationsInput
11691			if input != nil {
11692				tmp := *input
11693				inCpy = &tmp
11694			}
11695			req, _ := c.ListActiveViolationsRequest(inCpy)
11696			req.SetContext(ctx)
11697			req.ApplyOptions(opts...)
11698			return req, nil
11699		},
11700	}
11701
11702	for p.Next() {
11703		if !fn(p.Page().(*ListActiveViolationsOutput), !p.HasNextPage()) {
11704			break
11705		}
11706	}
11707
11708	return p.Err()
11709}
11710
11711const opListAttachedPolicies = "ListAttachedPolicies"
11712
11713// ListAttachedPoliciesRequest generates a "aws/request.Request" representing the
11714// client's request for the ListAttachedPolicies operation. The "output" return
11715// value will be populated with the request's response once the request completes
11716// successfully.
11717//
11718// Use "Send" method on the returned Request to send the API call to the service.
11719// the "output" return value is not valid until after Send returns without error.
11720//
11721// See ListAttachedPolicies for more information on using the ListAttachedPolicies
11722// API call, and error handling.
11723//
11724// This method is useful when you want to inject custom logic or configuration
11725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11726//
11727//
11728//    // Example sending a request using the ListAttachedPoliciesRequest method.
11729//    req, resp := client.ListAttachedPoliciesRequest(params)
11730//
11731//    err := req.Send()
11732//    if err == nil { // resp is now filled
11733//        fmt.Println(resp)
11734//    }
11735func (c *IoT) ListAttachedPoliciesRequest(input *ListAttachedPoliciesInput) (req *request.Request, output *ListAttachedPoliciesOutput) {
11736	op := &request.Operation{
11737		Name:       opListAttachedPolicies,
11738		HTTPMethod: "POST",
11739		HTTPPath:   "/attached-policies/{target}",
11740		Paginator: &request.Paginator{
11741			InputTokens:     []string{"marker"},
11742			OutputTokens:    []string{"nextMarker"},
11743			LimitToken:      "pageSize",
11744			TruncationToken: "",
11745		},
11746	}
11747
11748	if input == nil {
11749		input = &ListAttachedPoliciesInput{}
11750	}
11751
11752	output = &ListAttachedPoliciesOutput{}
11753	req = c.newRequest(op, input, output)
11754	return
11755}
11756
11757// ListAttachedPolicies API operation for AWS IoT.
11758//
11759// Lists the policies attached to the specified thing group.
11760//
11761// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11762// with awserr.Error's Code and Message methods to get detailed information about
11763// the error.
11764//
11765// See the AWS API reference guide for AWS IoT's
11766// API operation ListAttachedPolicies for usage and error information.
11767//
11768// Returned Error Types:
11769//   * ResourceNotFoundException
11770//   The specified resource does not exist.
11771//
11772//   * InvalidRequestException
11773//   The request is not valid.
11774//
11775//   * ThrottlingException
11776//   The rate exceeds the limit.
11777//
11778//   * UnauthorizedException
11779//   You are not authorized to perform this operation.
11780//
11781//   * ServiceUnavailableException
11782//   The service is temporarily unavailable.
11783//
11784//   * InternalFailureException
11785//   An unexpected error has occurred.
11786//
11787//   * LimitExceededException
11788//   A limit has been exceeded.
11789//
11790func (c *IoT) ListAttachedPolicies(input *ListAttachedPoliciesInput) (*ListAttachedPoliciesOutput, error) {
11791	req, out := c.ListAttachedPoliciesRequest(input)
11792	return out, req.Send()
11793}
11794
11795// ListAttachedPoliciesWithContext is the same as ListAttachedPolicies with the addition of
11796// the ability to pass a context and additional request options.
11797//
11798// See ListAttachedPolicies for details on how to use this API operation.
11799//
11800// The context must be non-nil and will be used for request cancellation. If
11801// the context is nil a panic will occur. In the future the SDK may create
11802// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11803// for more information on using Contexts.
11804func (c *IoT) ListAttachedPoliciesWithContext(ctx aws.Context, input *ListAttachedPoliciesInput, opts ...request.Option) (*ListAttachedPoliciesOutput, error) {
11805	req, out := c.ListAttachedPoliciesRequest(input)
11806	req.SetContext(ctx)
11807	req.ApplyOptions(opts...)
11808	return out, req.Send()
11809}
11810
11811// ListAttachedPoliciesPages iterates over the pages of a ListAttachedPolicies operation,
11812// calling the "fn" function with the response data for each page. To stop
11813// iterating, return false from the fn function.
11814//
11815// See ListAttachedPolicies method for more information on how to use this operation.
11816//
11817// Note: This operation can generate multiple requests to a service.
11818//
11819//    // Example iterating over at most 3 pages of a ListAttachedPolicies operation.
11820//    pageNum := 0
11821//    err := client.ListAttachedPoliciesPages(params,
11822//        func(page *iot.ListAttachedPoliciesOutput, lastPage bool) bool {
11823//            pageNum++
11824//            fmt.Println(page)
11825//            return pageNum <= 3
11826//        })
11827//
11828func (c *IoT) ListAttachedPoliciesPages(input *ListAttachedPoliciesInput, fn func(*ListAttachedPoliciesOutput, bool) bool) error {
11829	return c.ListAttachedPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
11830}
11831
11832// ListAttachedPoliciesPagesWithContext same as ListAttachedPoliciesPages except
11833// it takes a Context and allows setting request options on the pages.
11834//
11835// The context must be non-nil and will be used for request cancellation. If
11836// the context is nil a panic will occur. In the future the SDK may create
11837// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11838// for more information on using Contexts.
11839func (c *IoT) ListAttachedPoliciesPagesWithContext(ctx aws.Context, input *ListAttachedPoliciesInput, fn func(*ListAttachedPoliciesOutput, bool) bool, opts ...request.Option) error {
11840	p := request.Pagination{
11841		NewRequest: func() (*request.Request, error) {
11842			var inCpy *ListAttachedPoliciesInput
11843			if input != nil {
11844				tmp := *input
11845				inCpy = &tmp
11846			}
11847			req, _ := c.ListAttachedPoliciesRequest(inCpy)
11848			req.SetContext(ctx)
11849			req.ApplyOptions(opts...)
11850			return req, nil
11851		},
11852	}
11853
11854	for p.Next() {
11855		if !fn(p.Page().(*ListAttachedPoliciesOutput), !p.HasNextPage()) {
11856			break
11857		}
11858	}
11859
11860	return p.Err()
11861}
11862
11863const opListAuditFindings = "ListAuditFindings"
11864
11865// ListAuditFindingsRequest generates a "aws/request.Request" representing the
11866// client's request for the ListAuditFindings operation. The "output" return
11867// value will be populated with the request's response once the request completes
11868// successfully.
11869//
11870// Use "Send" method on the returned Request to send the API call to the service.
11871// the "output" return value is not valid until after Send returns without error.
11872//
11873// See ListAuditFindings for more information on using the ListAuditFindings
11874// API call, and error handling.
11875//
11876// This method is useful when you want to inject custom logic or configuration
11877// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11878//
11879//
11880//    // Example sending a request using the ListAuditFindingsRequest method.
11881//    req, resp := client.ListAuditFindingsRequest(params)
11882//
11883//    err := req.Send()
11884//    if err == nil { // resp is now filled
11885//        fmt.Println(resp)
11886//    }
11887func (c *IoT) ListAuditFindingsRequest(input *ListAuditFindingsInput) (req *request.Request, output *ListAuditFindingsOutput) {
11888	op := &request.Operation{
11889		Name:       opListAuditFindings,
11890		HTTPMethod: "POST",
11891		HTTPPath:   "/audit/findings",
11892		Paginator: &request.Paginator{
11893			InputTokens:     []string{"nextToken"},
11894			OutputTokens:    []string{"nextToken"},
11895			LimitToken:      "maxResults",
11896			TruncationToken: "",
11897		},
11898	}
11899
11900	if input == nil {
11901		input = &ListAuditFindingsInput{}
11902	}
11903
11904	output = &ListAuditFindingsOutput{}
11905	req = c.newRequest(op, input, output)
11906	return
11907}
11908
11909// ListAuditFindings API operation for AWS IoT.
11910//
11911// Lists the findings (results) of a Device Defender audit or of the audits
11912// performed during a specified time period. (Findings are retained for 90 days.)
11913//
11914// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11915// with awserr.Error's Code and Message methods to get detailed information about
11916// the error.
11917//
11918// See the AWS API reference guide for AWS IoT's
11919// API operation ListAuditFindings for usage and error information.
11920//
11921// Returned Error Types:
11922//   * InvalidRequestException
11923//   The request is not valid.
11924//
11925//   * ThrottlingException
11926//   The rate exceeds the limit.
11927//
11928//   * InternalFailureException
11929//   An unexpected error has occurred.
11930//
11931func (c *IoT) ListAuditFindings(input *ListAuditFindingsInput) (*ListAuditFindingsOutput, error) {
11932	req, out := c.ListAuditFindingsRequest(input)
11933	return out, req.Send()
11934}
11935
11936// ListAuditFindingsWithContext is the same as ListAuditFindings with the addition of
11937// the ability to pass a context and additional request options.
11938//
11939// See ListAuditFindings for details on how to use this API operation.
11940//
11941// The context must be non-nil and will be used for request cancellation. If
11942// the context is nil a panic will occur. In the future the SDK may create
11943// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11944// for more information on using Contexts.
11945func (c *IoT) ListAuditFindingsWithContext(ctx aws.Context, input *ListAuditFindingsInput, opts ...request.Option) (*ListAuditFindingsOutput, error) {
11946	req, out := c.ListAuditFindingsRequest(input)
11947	req.SetContext(ctx)
11948	req.ApplyOptions(opts...)
11949	return out, req.Send()
11950}
11951
11952// ListAuditFindingsPages iterates over the pages of a ListAuditFindings operation,
11953// calling the "fn" function with the response data for each page. To stop
11954// iterating, return false from the fn function.
11955//
11956// See ListAuditFindings method for more information on how to use this operation.
11957//
11958// Note: This operation can generate multiple requests to a service.
11959//
11960//    // Example iterating over at most 3 pages of a ListAuditFindings operation.
11961//    pageNum := 0
11962//    err := client.ListAuditFindingsPages(params,
11963//        func(page *iot.ListAuditFindingsOutput, lastPage bool) bool {
11964//            pageNum++
11965//            fmt.Println(page)
11966//            return pageNum <= 3
11967//        })
11968//
11969func (c *IoT) ListAuditFindingsPages(input *ListAuditFindingsInput, fn func(*ListAuditFindingsOutput, bool) bool) error {
11970	return c.ListAuditFindingsPagesWithContext(aws.BackgroundContext(), input, fn)
11971}
11972
11973// ListAuditFindingsPagesWithContext same as ListAuditFindingsPages except
11974// it takes a Context and allows setting request options on the pages.
11975//
11976// The context must be non-nil and will be used for request cancellation. If
11977// the context is nil a panic will occur. In the future the SDK may create
11978// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11979// for more information on using Contexts.
11980func (c *IoT) ListAuditFindingsPagesWithContext(ctx aws.Context, input *ListAuditFindingsInput, fn func(*ListAuditFindingsOutput, bool) bool, opts ...request.Option) error {
11981	p := request.Pagination{
11982		NewRequest: func() (*request.Request, error) {
11983			var inCpy *ListAuditFindingsInput
11984			if input != nil {
11985				tmp := *input
11986				inCpy = &tmp
11987			}
11988			req, _ := c.ListAuditFindingsRequest(inCpy)
11989			req.SetContext(ctx)
11990			req.ApplyOptions(opts...)
11991			return req, nil
11992		},
11993	}
11994
11995	for p.Next() {
11996		if !fn(p.Page().(*ListAuditFindingsOutput), !p.HasNextPage()) {
11997			break
11998		}
11999	}
12000
12001	return p.Err()
12002}
12003
12004const opListAuditMitigationActionsExecutions = "ListAuditMitigationActionsExecutions"
12005
12006// ListAuditMitigationActionsExecutionsRequest generates a "aws/request.Request" representing the
12007// client's request for the ListAuditMitigationActionsExecutions operation. The "output" return
12008// value will be populated with the request's response once the request completes
12009// successfully.
12010//
12011// Use "Send" method on the returned Request to send the API call to the service.
12012// the "output" return value is not valid until after Send returns without error.
12013//
12014// See ListAuditMitigationActionsExecutions for more information on using the ListAuditMitigationActionsExecutions
12015// API call, and error handling.
12016//
12017// This method is useful when you want to inject custom logic or configuration
12018// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12019//
12020//
12021//    // Example sending a request using the ListAuditMitigationActionsExecutionsRequest method.
12022//    req, resp := client.ListAuditMitigationActionsExecutionsRequest(params)
12023//
12024//    err := req.Send()
12025//    if err == nil { // resp is now filled
12026//        fmt.Println(resp)
12027//    }
12028func (c *IoT) ListAuditMitigationActionsExecutionsRequest(input *ListAuditMitigationActionsExecutionsInput) (req *request.Request, output *ListAuditMitigationActionsExecutionsOutput) {
12029	op := &request.Operation{
12030		Name:       opListAuditMitigationActionsExecutions,
12031		HTTPMethod: "GET",
12032		HTTPPath:   "/audit/mitigationactions/executions",
12033		Paginator: &request.Paginator{
12034			InputTokens:     []string{"nextToken"},
12035			OutputTokens:    []string{"nextToken"},
12036			LimitToken:      "maxResults",
12037			TruncationToken: "",
12038		},
12039	}
12040
12041	if input == nil {
12042		input = &ListAuditMitigationActionsExecutionsInput{}
12043	}
12044
12045	output = &ListAuditMitigationActionsExecutionsOutput{}
12046	req = c.newRequest(op, input, output)
12047	return
12048}
12049
12050// ListAuditMitigationActionsExecutions API operation for AWS IoT.
12051//
12052// Gets the status of audit mitigation action tasks that were executed.
12053//
12054// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12055// with awserr.Error's Code and Message methods to get detailed information about
12056// the error.
12057//
12058// See the AWS API reference guide for AWS IoT's
12059// API operation ListAuditMitigationActionsExecutions for usage and error information.
12060//
12061// Returned Error Types:
12062//   * InvalidRequestException
12063//   The request is not valid.
12064//
12065//   * ThrottlingException
12066//   The rate exceeds the limit.
12067//
12068//   * InternalFailureException
12069//   An unexpected error has occurred.
12070//
12071func (c *IoT) ListAuditMitigationActionsExecutions(input *ListAuditMitigationActionsExecutionsInput) (*ListAuditMitigationActionsExecutionsOutput, error) {
12072	req, out := c.ListAuditMitigationActionsExecutionsRequest(input)
12073	return out, req.Send()
12074}
12075
12076// ListAuditMitigationActionsExecutionsWithContext is the same as ListAuditMitigationActionsExecutions with the addition of
12077// the ability to pass a context and additional request options.
12078//
12079// See ListAuditMitigationActionsExecutions for details on how to use this API operation.
12080//
12081// The context must be non-nil and will be used for request cancellation. If
12082// the context is nil a panic will occur. In the future the SDK may create
12083// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12084// for more information on using Contexts.
12085func (c *IoT) ListAuditMitigationActionsExecutionsWithContext(ctx aws.Context, input *ListAuditMitigationActionsExecutionsInput, opts ...request.Option) (*ListAuditMitigationActionsExecutionsOutput, error) {
12086	req, out := c.ListAuditMitigationActionsExecutionsRequest(input)
12087	req.SetContext(ctx)
12088	req.ApplyOptions(opts...)
12089	return out, req.Send()
12090}
12091
12092// ListAuditMitigationActionsExecutionsPages iterates over the pages of a ListAuditMitigationActionsExecutions operation,
12093// calling the "fn" function with the response data for each page. To stop
12094// iterating, return false from the fn function.
12095//
12096// See ListAuditMitigationActionsExecutions method for more information on how to use this operation.
12097//
12098// Note: This operation can generate multiple requests to a service.
12099//
12100//    // Example iterating over at most 3 pages of a ListAuditMitigationActionsExecutions operation.
12101//    pageNum := 0
12102//    err := client.ListAuditMitigationActionsExecutionsPages(params,
12103//        func(page *iot.ListAuditMitigationActionsExecutionsOutput, lastPage bool) bool {
12104//            pageNum++
12105//            fmt.Println(page)
12106//            return pageNum <= 3
12107//        })
12108//
12109func (c *IoT) ListAuditMitigationActionsExecutionsPages(input *ListAuditMitigationActionsExecutionsInput, fn func(*ListAuditMitigationActionsExecutionsOutput, bool) bool) error {
12110	return c.ListAuditMitigationActionsExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
12111}
12112
12113// ListAuditMitigationActionsExecutionsPagesWithContext same as ListAuditMitigationActionsExecutionsPages except
12114// it takes a Context and allows setting request options on the pages.
12115//
12116// The context must be non-nil and will be used for request cancellation. If
12117// the context is nil a panic will occur. In the future the SDK may create
12118// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12119// for more information on using Contexts.
12120func (c *IoT) ListAuditMitigationActionsExecutionsPagesWithContext(ctx aws.Context, input *ListAuditMitigationActionsExecutionsInput, fn func(*ListAuditMitigationActionsExecutionsOutput, bool) bool, opts ...request.Option) error {
12121	p := request.Pagination{
12122		NewRequest: func() (*request.Request, error) {
12123			var inCpy *ListAuditMitigationActionsExecutionsInput
12124			if input != nil {
12125				tmp := *input
12126				inCpy = &tmp
12127			}
12128			req, _ := c.ListAuditMitigationActionsExecutionsRequest(inCpy)
12129			req.SetContext(ctx)
12130			req.ApplyOptions(opts...)
12131			return req, nil
12132		},
12133	}
12134
12135	for p.Next() {
12136		if !fn(p.Page().(*ListAuditMitigationActionsExecutionsOutput), !p.HasNextPage()) {
12137			break
12138		}
12139	}
12140
12141	return p.Err()
12142}
12143
12144const opListAuditMitigationActionsTasks = "ListAuditMitigationActionsTasks"
12145
12146// ListAuditMitigationActionsTasksRequest generates a "aws/request.Request" representing the
12147// client's request for the ListAuditMitigationActionsTasks operation. The "output" return
12148// value will be populated with the request's response once the request completes
12149// successfully.
12150//
12151// Use "Send" method on the returned Request to send the API call to the service.
12152// the "output" return value is not valid until after Send returns without error.
12153//
12154// See ListAuditMitigationActionsTasks for more information on using the ListAuditMitigationActionsTasks
12155// API call, and error handling.
12156//
12157// This method is useful when you want to inject custom logic or configuration
12158// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12159//
12160//
12161//    // Example sending a request using the ListAuditMitigationActionsTasksRequest method.
12162//    req, resp := client.ListAuditMitigationActionsTasksRequest(params)
12163//
12164//    err := req.Send()
12165//    if err == nil { // resp is now filled
12166//        fmt.Println(resp)
12167//    }
12168func (c *IoT) ListAuditMitigationActionsTasksRequest(input *ListAuditMitigationActionsTasksInput) (req *request.Request, output *ListAuditMitigationActionsTasksOutput) {
12169	op := &request.Operation{
12170		Name:       opListAuditMitigationActionsTasks,
12171		HTTPMethod: "GET",
12172		HTTPPath:   "/audit/mitigationactions/tasks",
12173		Paginator: &request.Paginator{
12174			InputTokens:     []string{"nextToken"},
12175			OutputTokens:    []string{"nextToken"},
12176			LimitToken:      "maxResults",
12177			TruncationToken: "",
12178		},
12179	}
12180
12181	if input == nil {
12182		input = &ListAuditMitigationActionsTasksInput{}
12183	}
12184
12185	output = &ListAuditMitigationActionsTasksOutput{}
12186	req = c.newRequest(op, input, output)
12187	return
12188}
12189
12190// ListAuditMitigationActionsTasks API operation for AWS IoT.
12191//
12192// Gets a list of audit mitigation action tasks that match the specified filters.
12193//
12194// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12195// with awserr.Error's Code and Message methods to get detailed information about
12196// the error.
12197//
12198// See the AWS API reference guide for AWS IoT's
12199// API operation ListAuditMitigationActionsTasks for usage and error information.
12200//
12201// Returned Error Types:
12202//   * InvalidRequestException
12203//   The request is not valid.
12204//
12205//   * ThrottlingException
12206//   The rate exceeds the limit.
12207//
12208//   * InternalFailureException
12209//   An unexpected error has occurred.
12210//
12211func (c *IoT) ListAuditMitigationActionsTasks(input *ListAuditMitigationActionsTasksInput) (*ListAuditMitigationActionsTasksOutput, error) {
12212	req, out := c.ListAuditMitigationActionsTasksRequest(input)
12213	return out, req.Send()
12214}
12215
12216// ListAuditMitigationActionsTasksWithContext is the same as ListAuditMitigationActionsTasks with the addition of
12217// the ability to pass a context and additional request options.
12218//
12219// See ListAuditMitigationActionsTasks for details on how to use this API operation.
12220//
12221// The context must be non-nil and will be used for request cancellation. If
12222// the context is nil a panic will occur. In the future the SDK may create
12223// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12224// for more information on using Contexts.
12225func (c *IoT) ListAuditMitigationActionsTasksWithContext(ctx aws.Context, input *ListAuditMitigationActionsTasksInput, opts ...request.Option) (*ListAuditMitigationActionsTasksOutput, error) {
12226	req, out := c.ListAuditMitigationActionsTasksRequest(input)
12227	req.SetContext(ctx)
12228	req.ApplyOptions(opts...)
12229	return out, req.Send()
12230}
12231
12232// ListAuditMitigationActionsTasksPages iterates over the pages of a ListAuditMitigationActionsTasks operation,
12233// calling the "fn" function with the response data for each page. To stop
12234// iterating, return false from the fn function.
12235//
12236// See ListAuditMitigationActionsTasks method for more information on how to use this operation.
12237//
12238// Note: This operation can generate multiple requests to a service.
12239//
12240//    // Example iterating over at most 3 pages of a ListAuditMitigationActionsTasks operation.
12241//    pageNum := 0
12242//    err := client.ListAuditMitigationActionsTasksPages(params,
12243//        func(page *iot.ListAuditMitigationActionsTasksOutput, lastPage bool) bool {
12244//            pageNum++
12245//            fmt.Println(page)
12246//            return pageNum <= 3
12247//        })
12248//
12249func (c *IoT) ListAuditMitigationActionsTasksPages(input *ListAuditMitigationActionsTasksInput, fn func(*ListAuditMitigationActionsTasksOutput, bool) bool) error {
12250	return c.ListAuditMitigationActionsTasksPagesWithContext(aws.BackgroundContext(), input, fn)
12251}
12252
12253// ListAuditMitigationActionsTasksPagesWithContext same as ListAuditMitigationActionsTasksPages except
12254// it takes a Context and allows setting request options on the pages.
12255//
12256// The context must be non-nil and will be used for request cancellation. If
12257// the context is nil a panic will occur. In the future the SDK may create
12258// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12259// for more information on using Contexts.
12260func (c *IoT) ListAuditMitigationActionsTasksPagesWithContext(ctx aws.Context, input *ListAuditMitigationActionsTasksInput, fn func(*ListAuditMitigationActionsTasksOutput, bool) bool, opts ...request.Option) error {
12261	p := request.Pagination{
12262		NewRequest: func() (*request.Request, error) {
12263			var inCpy *ListAuditMitigationActionsTasksInput
12264			if input != nil {
12265				tmp := *input
12266				inCpy = &tmp
12267			}
12268			req, _ := c.ListAuditMitigationActionsTasksRequest(inCpy)
12269			req.SetContext(ctx)
12270			req.ApplyOptions(opts...)
12271			return req, nil
12272		},
12273	}
12274
12275	for p.Next() {
12276		if !fn(p.Page().(*ListAuditMitigationActionsTasksOutput), !p.HasNextPage()) {
12277			break
12278		}
12279	}
12280
12281	return p.Err()
12282}
12283
12284const opListAuditSuppressions = "ListAuditSuppressions"
12285
12286// ListAuditSuppressionsRequest generates a "aws/request.Request" representing the
12287// client's request for the ListAuditSuppressions operation. The "output" return
12288// value will be populated with the request's response once the request completes
12289// successfully.
12290//
12291// Use "Send" method on the returned Request to send the API call to the service.
12292// the "output" return value is not valid until after Send returns without error.
12293//
12294// See ListAuditSuppressions for more information on using the ListAuditSuppressions
12295// API call, and error handling.
12296//
12297// This method is useful when you want to inject custom logic or configuration
12298// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12299//
12300//
12301//    // Example sending a request using the ListAuditSuppressionsRequest method.
12302//    req, resp := client.ListAuditSuppressionsRequest(params)
12303//
12304//    err := req.Send()
12305//    if err == nil { // resp is now filled
12306//        fmt.Println(resp)
12307//    }
12308func (c *IoT) ListAuditSuppressionsRequest(input *ListAuditSuppressionsInput) (req *request.Request, output *ListAuditSuppressionsOutput) {
12309	op := &request.Operation{
12310		Name:       opListAuditSuppressions,
12311		HTTPMethod: "POST",
12312		HTTPPath:   "/audit/suppressions/list",
12313		Paginator: &request.Paginator{
12314			InputTokens:     []string{"nextToken"},
12315			OutputTokens:    []string{"nextToken"},
12316			LimitToken:      "maxResults",
12317			TruncationToken: "",
12318		},
12319	}
12320
12321	if input == nil {
12322		input = &ListAuditSuppressionsInput{}
12323	}
12324
12325	output = &ListAuditSuppressionsOutput{}
12326	req = c.newRequest(op, input, output)
12327	return
12328}
12329
12330// ListAuditSuppressions API operation for AWS IoT.
12331//
12332// Lists your Device Defender audit listings.
12333//
12334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12335// with awserr.Error's Code and Message methods to get detailed information about
12336// the error.
12337//
12338// See the AWS API reference guide for AWS IoT's
12339// API operation ListAuditSuppressions for usage and error information.
12340//
12341// Returned Error Types:
12342//   * InvalidRequestException
12343//   The request is not valid.
12344//
12345//   * ThrottlingException
12346//   The rate exceeds the limit.
12347//
12348//   * InternalFailureException
12349//   An unexpected error has occurred.
12350//
12351func (c *IoT) ListAuditSuppressions(input *ListAuditSuppressionsInput) (*ListAuditSuppressionsOutput, error) {
12352	req, out := c.ListAuditSuppressionsRequest(input)
12353	return out, req.Send()
12354}
12355
12356// ListAuditSuppressionsWithContext is the same as ListAuditSuppressions with the addition of
12357// the ability to pass a context and additional request options.
12358//
12359// See ListAuditSuppressions for details on how to use this API operation.
12360//
12361// The context must be non-nil and will be used for request cancellation. If
12362// the context is nil a panic will occur. In the future the SDK may create
12363// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12364// for more information on using Contexts.
12365func (c *IoT) ListAuditSuppressionsWithContext(ctx aws.Context, input *ListAuditSuppressionsInput, opts ...request.Option) (*ListAuditSuppressionsOutput, error) {
12366	req, out := c.ListAuditSuppressionsRequest(input)
12367	req.SetContext(ctx)
12368	req.ApplyOptions(opts...)
12369	return out, req.Send()
12370}
12371
12372// ListAuditSuppressionsPages iterates over the pages of a ListAuditSuppressions operation,
12373// calling the "fn" function with the response data for each page. To stop
12374// iterating, return false from the fn function.
12375//
12376// See ListAuditSuppressions method for more information on how to use this operation.
12377//
12378// Note: This operation can generate multiple requests to a service.
12379//
12380//    // Example iterating over at most 3 pages of a ListAuditSuppressions operation.
12381//    pageNum := 0
12382//    err := client.ListAuditSuppressionsPages(params,
12383//        func(page *iot.ListAuditSuppressionsOutput, lastPage bool) bool {
12384//            pageNum++
12385//            fmt.Println(page)
12386//            return pageNum <= 3
12387//        })
12388//
12389func (c *IoT) ListAuditSuppressionsPages(input *ListAuditSuppressionsInput, fn func(*ListAuditSuppressionsOutput, bool) bool) error {
12390	return c.ListAuditSuppressionsPagesWithContext(aws.BackgroundContext(), input, fn)
12391}
12392
12393// ListAuditSuppressionsPagesWithContext same as ListAuditSuppressionsPages except
12394// it takes a Context and allows setting request options on the pages.
12395//
12396// The context must be non-nil and will be used for request cancellation. If
12397// the context is nil a panic will occur. In the future the SDK may create
12398// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12399// for more information on using Contexts.
12400func (c *IoT) ListAuditSuppressionsPagesWithContext(ctx aws.Context, input *ListAuditSuppressionsInput, fn func(*ListAuditSuppressionsOutput, bool) bool, opts ...request.Option) error {
12401	p := request.Pagination{
12402		NewRequest: func() (*request.Request, error) {
12403			var inCpy *ListAuditSuppressionsInput
12404			if input != nil {
12405				tmp := *input
12406				inCpy = &tmp
12407			}
12408			req, _ := c.ListAuditSuppressionsRequest(inCpy)
12409			req.SetContext(ctx)
12410			req.ApplyOptions(opts...)
12411			return req, nil
12412		},
12413	}
12414
12415	for p.Next() {
12416		if !fn(p.Page().(*ListAuditSuppressionsOutput), !p.HasNextPage()) {
12417			break
12418		}
12419	}
12420
12421	return p.Err()
12422}
12423
12424const opListAuditTasks = "ListAuditTasks"
12425
12426// ListAuditTasksRequest generates a "aws/request.Request" representing the
12427// client's request for the ListAuditTasks operation. The "output" return
12428// value will be populated with the request's response once the request completes
12429// successfully.
12430//
12431// Use "Send" method on the returned Request to send the API call to the service.
12432// the "output" return value is not valid until after Send returns without error.
12433//
12434// See ListAuditTasks for more information on using the ListAuditTasks
12435// API call, and error handling.
12436//
12437// This method is useful when you want to inject custom logic or configuration
12438// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12439//
12440//
12441//    // Example sending a request using the ListAuditTasksRequest method.
12442//    req, resp := client.ListAuditTasksRequest(params)
12443//
12444//    err := req.Send()
12445//    if err == nil { // resp is now filled
12446//        fmt.Println(resp)
12447//    }
12448func (c *IoT) ListAuditTasksRequest(input *ListAuditTasksInput) (req *request.Request, output *ListAuditTasksOutput) {
12449	op := &request.Operation{
12450		Name:       opListAuditTasks,
12451		HTTPMethod: "GET",
12452		HTTPPath:   "/audit/tasks",
12453		Paginator: &request.Paginator{
12454			InputTokens:     []string{"nextToken"},
12455			OutputTokens:    []string{"nextToken"},
12456			LimitToken:      "maxResults",
12457			TruncationToken: "",
12458		},
12459	}
12460
12461	if input == nil {
12462		input = &ListAuditTasksInput{}
12463	}
12464
12465	output = &ListAuditTasksOutput{}
12466	req = c.newRequest(op, input, output)
12467	return
12468}
12469
12470// ListAuditTasks API operation for AWS IoT.
12471//
12472// Lists the Device Defender audits that have been performed during a given
12473// time period.
12474//
12475// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12476// with awserr.Error's Code and Message methods to get detailed information about
12477// the error.
12478//
12479// See the AWS API reference guide for AWS IoT's
12480// API operation ListAuditTasks for usage and error information.
12481//
12482// Returned Error Types:
12483//   * InvalidRequestException
12484//   The request is not valid.
12485//
12486//   * ThrottlingException
12487//   The rate exceeds the limit.
12488//
12489//   * InternalFailureException
12490//   An unexpected error has occurred.
12491//
12492func (c *IoT) ListAuditTasks(input *ListAuditTasksInput) (*ListAuditTasksOutput, error) {
12493	req, out := c.ListAuditTasksRequest(input)
12494	return out, req.Send()
12495}
12496
12497// ListAuditTasksWithContext is the same as ListAuditTasks with the addition of
12498// the ability to pass a context and additional request options.
12499//
12500// See ListAuditTasks for details on how to use this API operation.
12501//
12502// The context must be non-nil and will be used for request cancellation. If
12503// the context is nil a panic will occur. In the future the SDK may create
12504// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12505// for more information on using Contexts.
12506func (c *IoT) ListAuditTasksWithContext(ctx aws.Context, input *ListAuditTasksInput, opts ...request.Option) (*ListAuditTasksOutput, error) {
12507	req, out := c.ListAuditTasksRequest(input)
12508	req.SetContext(ctx)
12509	req.ApplyOptions(opts...)
12510	return out, req.Send()
12511}
12512
12513// ListAuditTasksPages iterates over the pages of a ListAuditTasks operation,
12514// calling the "fn" function with the response data for each page. To stop
12515// iterating, return false from the fn function.
12516//
12517// See ListAuditTasks method for more information on how to use this operation.
12518//
12519// Note: This operation can generate multiple requests to a service.
12520//
12521//    // Example iterating over at most 3 pages of a ListAuditTasks operation.
12522//    pageNum := 0
12523//    err := client.ListAuditTasksPages(params,
12524//        func(page *iot.ListAuditTasksOutput, lastPage bool) bool {
12525//            pageNum++
12526//            fmt.Println(page)
12527//            return pageNum <= 3
12528//        })
12529//
12530func (c *IoT) ListAuditTasksPages(input *ListAuditTasksInput, fn func(*ListAuditTasksOutput, bool) bool) error {
12531	return c.ListAuditTasksPagesWithContext(aws.BackgroundContext(), input, fn)
12532}
12533
12534// ListAuditTasksPagesWithContext same as ListAuditTasksPages except
12535// it takes a Context and allows setting request options on the pages.
12536//
12537// The context must be non-nil and will be used for request cancellation. If
12538// the context is nil a panic will occur. In the future the SDK may create
12539// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12540// for more information on using Contexts.
12541func (c *IoT) ListAuditTasksPagesWithContext(ctx aws.Context, input *ListAuditTasksInput, fn func(*ListAuditTasksOutput, bool) bool, opts ...request.Option) error {
12542	p := request.Pagination{
12543		NewRequest: func() (*request.Request, error) {
12544			var inCpy *ListAuditTasksInput
12545			if input != nil {
12546				tmp := *input
12547				inCpy = &tmp
12548			}
12549			req, _ := c.ListAuditTasksRequest(inCpy)
12550			req.SetContext(ctx)
12551			req.ApplyOptions(opts...)
12552			return req, nil
12553		},
12554	}
12555
12556	for p.Next() {
12557		if !fn(p.Page().(*ListAuditTasksOutput), !p.HasNextPage()) {
12558			break
12559		}
12560	}
12561
12562	return p.Err()
12563}
12564
12565const opListAuthorizers = "ListAuthorizers"
12566
12567// ListAuthorizersRequest generates a "aws/request.Request" representing the
12568// client's request for the ListAuthorizers operation. The "output" return
12569// value will be populated with the request's response once the request completes
12570// successfully.
12571//
12572// Use "Send" method on the returned Request to send the API call to the service.
12573// the "output" return value is not valid until after Send returns without error.
12574//
12575// See ListAuthorizers for more information on using the ListAuthorizers
12576// API call, and error handling.
12577//
12578// This method is useful when you want to inject custom logic or configuration
12579// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12580//
12581//
12582//    // Example sending a request using the ListAuthorizersRequest method.
12583//    req, resp := client.ListAuthorizersRequest(params)
12584//
12585//    err := req.Send()
12586//    if err == nil { // resp is now filled
12587//        fmt.Println(resp)
12588//    }
12589func (c *IoT) ListAuthorizersRequest(input *ListAuthorizersInput) (req *request.Request, output *ListAuthorizersOutput) {
12590	op := &request.Operation{
12591		Name:       opListAuthorizers,
12592		HTTPMethod: "GET",
12593		HTTPPath:   "/authorizers/",
12594		Paginator: &request.Paginator{
12595			InputTokens:     []string{"marker"},
12596			OutputTokens:    []string{"nextMarker"},
12597			LimitToken:      "pageSize",
12598			TruncationToken: "",
12599		},
12600	}
12601
12602	if input == nil {
12603		input = &ListAuthorizersInput{}
12604	}
12605
12606	output = &ListAuthorizersOutput{}
12607	req = c.newRequest(op, input, output)
12608	return
12609}
12610
12611// ListAuthorizers API operation for AWS IoT.
12612//
12613// Lists the authorizers registered in your account.
12614//
12615// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12616// with awserr.Error's Code and Message methods to get detailed information about
12617// the error.
12618//
12619// See the AWS API reference guide for AWS IoT's
12620// API operation ListAuthorizers for usage and error information.
12621//
12622// Returned Error Types:
12623//   * InvalidRequestException
12624//   The request is not valid.
12625//
12626//   * ThrottlingException
12627//   The rate exceeds the limit.
12628//
12629//   * UnauthorizedException
12630//   You are not authorized to perform this operation.
12631//
12632//   * ServiceUnavailableException
12633//   The service is temporarily unavailable.
12634//
12635//   * InternalFailureException
12636//   An unexpected error has occurred.
12637//
12638func (c *IoT) ListAuthorizers(input *ListAuthorizersInput) (*ListAuthorizersOutput, error) {
12639	req, out := c.ListAuthorizersRequest(input)
12640	return out, req.Send()
12641}
12642
12643// ListAuthorizersWithContext is the same as ListAuthorizers with the addition of
12644// the ability to pass a context and additional request options.
12645//
12646// See ListAuthorizers for details on how to use this API operation.
12647//
12648// The context must be non-nil and will be used for request cancellation. If
12649// the context is nil a panic will occur. In the future the SDK may create
12650// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12651// for more information on using Contexts.
12652func (c *IoT) ListAuthorizersWithContext(ctx aws.Context, input *ListAuthorizersInput, opts ...request.Option) (*ListAuthorizersOutput, error) {
12653	req, out := c.ListAuthorizersRequest(input)
12654	req.SetContext(ctx)
12655	req.ApplyOptions(opts...)
12656	return out, req.Send()
12657}
12658
12659// ListAuthorizersPages iterates over the pages of a ListAuthorizers operation,
12660// calling the "fn" function with the response data for each page. To stop
12661// iterating, return false from the fn function.
12662//
12663// See ListAuthorizers method for more information on how to use this operation.
12664//
12665// Note: This operation can generate multiple requests to a service.
12666//
12667//    // Example iterating over at most 3 pages of a ListAuthorizers operation.
12668//    pageNum := 0
12669//    err := client.ListAuthorizersPages(params,
12670//        func(page *iot.ListAuthorizersOutput, lastPage bool) bool {
12671//            pageNum++
12672//            fmt.Println(page)
12673//            return pageNum <= 3
12674//        })
12675//
12676func (c *IoT) ListAuthorizersPages(input *ListAuthorizersInput, fn func(*ListAuthorizersOutput, bool) bool) error {
12677	return c.ListAuthorizersPagesWithContext(aws.BackgroundContext(), input, fn)
12678}
12679
12680// ListAuthorizersPagesWithContext same as ListAuthorizersPages except
12681// it takes a Context and allows setting request options on the pages.
12682//
12683// The context must be non-nil and will be used for request cancellation. If
12684// the context is nil a panic will occur. In the future the SDK may create
12685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12686// for more information on using Contexts.
12687func (c *IoT) ListAuthorizersPagesWithContext(ctx aws.Context, input *ListAuthorizersInput, fn func(*ListAuthorizersOutput, bool) bool, opts ...request.Option) error {
12688	p := request.Pagination{
12689		NewRequest: func() (*request.Request, error) {
12690			var inCpy *ListAuthorizersInput
12691			if input != nil {
12692				tmp := *input
12693				inCpy = &tmp
12694			}
12695			req, _ := c.ListAuthorizersRequest(inCpy)
12696			req.SetContext(ctx)
12697			req.ApplyOptions(opts...)
12698			return req, nil
12699		},
12700	}
12701
12702	for p.Next() {
12703		if !fn(p.Page().(*ListAuthorizersOutput), !p.HasNextPage()) {
12704			break
12705		}
12706	}
12707
12708	return p.Err()
12709}
12710
12711const opListBillingGroups = "ListBillingGroups"
12712
12713// ListBillingGroupsRequest generates a "aws/request.Request" representing the
12714// client's request for the ListBillingGroups operation. The "output" return
12715// value will be populated with the request's response once the request completes
12716// successfully.
12717//
12718// Use "Send" method on the returned Request to send the API call to the service.
12719// the "output" return value is not valid until after Send returns without error.
12720//
12721// See ListBillingGroups for more information on using the ListBillingGroups
12722// API call, and error handling.
12723//
12724// This method is useful when you want to inject custom logic or configuration
12725// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12726//
12727//
12728//    // Example sending a request using the ListBillingGroupsRequest method.
12729//    req, resp := client.ListBillingGroupsRequest(params)
12730//
12731//    err := req.Send()
12732//    if err == nil { // resp is now filled
12733//        fmt.Println(resp)
12734//    }
12735func (c *IoT) ListBillingGroupsRequest(input *ListBillingGroupsInput) (req *request.Request, output *ListBillingGroupsOutput) {
12736	op := &request.Operation{
12737		Name:       opListBillingGroups,
12738		HTTPMethod: "GET",
12739		HTTPPath:   "/billing-groups",
12740		Paginator: &request.Paginator{
12741			InputTokens:     []string{"nextToken"},
12742			OutputTokens:    []string{"nextToken"},
12743			LimitToken:      "maxResults",
12744			TruncationToken: "",
12745		},
12746	}
12747
12748	if input == nil {
12749		input = &ListBillingGroupsInput{}
12750	}
12751
12752	output = &ListBillingGroupsOutput{}
12753	req = c.newRequest(op, input, output)
12754	return
12755}
12756
12757// ListBillingGroups API operation for AWS IoT.
12758//
12759// Lists the billing groups you have created.
12760//
12761// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12762// with awserr.Error's Code and Message methods to get detailed information about
12763// the error.
12764//
12765// See the AWS API reference guide for AWS IoT's
12766// API operation ListBillingGroups for usage and error information.
12767//
12768// Returned Error Types:
12769//   * InvalidRequestException
12770//   The request is not valid.
12771//
12772//   * InternalFailureException
12773//   An unexpected error has occurred.
12774//
12775//   * ResourceNotFoundException
12776//   The specified resource does not exist.
12777//
12778//   * ThrottlingException
12779//   The rate exceeds the limit.
12780//
12781func (c *IoT) ListBillingGroups(input *ListBillingGroupsInput) (*ListBillingGroupsOutput, error) {
12782	req, out := c.ListBillingGroupsRequest(input)
12783	return out, req.Send()
12784}
12785
12786// ListBillingGroupsWithContext is the same as ListBillingGroups with the addition of
12787// the ability to pass a context and additional request options.
12788//
12789// See ListBillingGroups for details on how to use this API operation.
12790//
12791// The context must be non-nil and will be used for request cancellation. If
12792// the context is nil a panic will occur. In the future the SDK may create
12793// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12794// for more information on using Contexts.
12795func (c *IoT) ListBillingGroupsWithContext(ctx aws.Context, input *ListBillingGroupsInput, opts ...request.Option) (*ListBillingGroupsOutput, error) {
12796	req, out := c.ListBillingGroupsRequest(input)
12797	req.SetContext(ctx)
12798	req.ApplyOptions(opts...)
12799	return out, req.Send()
12800}
12801
12802// ListBillingGroupsPages iterates over the pages of a ListBillingGroups operation,
12803// calling the "fn" function with the response data for each page. To stop
12804// iterating, return false from the fn function.
12805//
12806// See ListBillingGroups method for more information on how to use this operation.
12807//
12808// Note: This operation can generate multiple requests to a service.
12809//
12810//    // Example iterating over at most 3 pages of a ListBillingGroups operation.
12811//    pageNum := 0
12812//    err := client.ListBillingGroupsPages(params,
12813//        func(page *iot.ListBillingGroupsOutput, lastPage bool) bool {
12814//            pageNum++
12815//            fmt.Println(page)
12816//            return pageNum <= 3
12817//        })
12818//
12819func (c *IoT) ListBillingGroupsPages(input *ListBillingGroupsInput, fn func(*ListBillingGroupsOutput, bool) bool) error {
12820	return c.ListBillingGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
12821}
12822
12823// ListBillingGroupsPagesWithContext same as ListBillingGroupsPages except
12824// it takes a Context and allows setting request options on the pages.
12825//
12826// The context must be non-nil and will be used for request cancellation. If
12827// the context is nil a panic will occur. In the future the SDK may create
12828// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12829// for more information on using Contexts.
12830func (c *IoT) ListBillingGroupsPagesWithContext(ctx aws.Context, input *ListBillingGroupsInput, fn func(*ListBillingGroupsOutput, bool) bool, opts ...request.Option) error {
12831	p := request.Pagination{
12832		NewRequest: func() (*request.Request, error) {
12833			var inCpy *ListBillingGroupsInput
12834			if input != nil {
12835				tmp := *input
12836				inCpy = &tmp
12837			}
12838			req, _ := c.ListBillingGroupsRequest(inCpy)
12839			req.SetContext(ctx)
12840			req.ApplyOptions(opts...)
12841			return req, nil
12842		},
12843	}
12844
12845	for p.Next() {
12846		if !fn(p.Page().(*ListBillingGroupsOutput), !p.HasNextPage()) {
12847			break
12848		}
12849	}
12850
12851	return p.Err()
12852}
12853
12854const opListCACertificates = "ListCACertificates"
12855
12856// ListCACertificatesRequest generates a "aws/request.Request" representing the
12857// client's request for the ListCACertificates operation. The "output" return
12858// value will be populated with the request's response once the request completes
12859// successfully.
12860//
12861// Use "Send" method on the returned Request to send the API call to the service.
12862// the "output" return value is not valid until after Send returns without error.
12863//
12864// See ListCACertificates for more information on using the ListCACertificates
12865// API call, and error handling.
12866//
12867// This method is useful when you want to inject custom logic or configuration
12868// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12869//
12870//
12871//    // Example sending a request using the ListCACertificatesRequest method.
12872//    req, resp := client.ListCACertificatesRequest(params)
12873//
12874//    err := req.Send()
12875//    if err == nil { // resp is now filled
12876//        fmt.Println(resp)
12877//    }
12878func (c *IoT) ListCACertificatesRequest(input *ListCACertificatesInput) (req *request.Request, output *ListCACertificatesOutput) {
12879	op := &request.Operation{
12880		Name:       opListCACertificates,
12881		HTTPMethod: "GET",
12882		HTTPPath:   "/cacertificates",
12883		Paginator: &request.Paginator{
12884			InputTokens:     []string{"marker"},
12885			OutputTokens:    []string{"nextMarker"},
12886			LimitToken:      "pageSize",
12887			TruncationToken: "",
12888		},
12889	}
12890
12891	if input == nil {
12892		input = &ListCACertificatesInput{}
12893	}
12894
12895	output = &ListCACertificatesOutput{}
12896	req = c.newRequest(op, input, output)
12897	return
12898}
12899
12900// ListCACertificates API operation for AWS IoT.
12901//
12902// Lists the CA certificates registered for your AWS account.
12903//
12904// The results are paginated with a default page size of 25. You can use the
12905// returned marker to retrieve additional results.
12906//
12907// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12908// with awserr.Error's Code and Message methods to get detailed information about
12909// the error.
12910//
12911// See the AWS API reference guide for AWS IoT's
12912// API operation ListCACertificates for usage and error information.
12913//
12914// Returned Error Types:
12915//   * InvalidRequestException
12916//   The request is not valid.
12917//
12918//   * ThrottlingException
12919//   The rate exceeds the limit.
12920//
12921//   * UnauthorizedException
12922//   You are not authorized to perform this operation.
12923//
12924//   * ServiceUnavailableException
12925//   The service is temporarily unavailable.
12926//
12927//   * InternalFailureException
12928//   An unexpected error has occurred.
12929//
12930func (c *IoT) ListCACertificates(input *ListCACertificatesInput) (*ListCACertificatesOutput, error) {
12931	req, out := c.ListCACertificatesRequest(input)
12932	return out, req.Send()
12933}
12934
12935// ListCACertificatesWithContext is the same as ListCACertificates with the addition of
12936// the ability to pass a context and additional request options.
12937//
12938// See ListCACertificates for details on how to use this API operation.
12939//
12940// The context must be non-nil and will be used for request cancellation. If
12941// the context is nil a panic will occur. In the future the SDK may create
12942// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12943// for more information on using Contexts.
12944func (c *IoT) ListCACertificatesWithContext(ctx aws.Context, input *ListCACertificatesInput, opts ...request.Option) (*ListCACertificatesOutput, error) {
12945	req, out := c.ListCACertificatesRequest(input)
12946	req.SetContext(ctx)
12947	req.ApplyOptions(opts...)
12948	return out, req.Send()
12949}
12950
12951// ListCACertificatesPages iterates over the pages of a ListCACertificates operation,
12952// calling the "fn" function with the response data for each page. To stop
12953// iterating, return false from the fn function.
12954//
12955// See ListCACertificates method for more information on how to use this operation.
12956//
12957// Note: This operation can generate multiple requests to a service.
12958//
12959//    // Example iterating over at most 3 pages of a ListCACertificates operation.
12960//    pageNum := 0
12961//    err := client.ListCACertificatesPages(params,
12962//        func(page *iot.ListCACertificatesOutput, lastPage bool) bool {
12963//            pageNum++
12964//            fmt.Println(page)
12965//            return pageNum <= 3
12966//        })
12967//
12968func (c *IoT) ListCACertificatesPages(input *ListCACertificatesInput, fn func(*ListCACertificatesOutput, bool) bool) error {
12969	return c.ListCACertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
12970}
12971
12972// ListCACertificatesPagesWithContext same as ListCACertificatesPages except
12973// it takes a Context and allows setting request options on the pages.
12974//
12975// The context must be non-nil and will be used for request cancellation. If
12976// the context is nil a panic will occur. In the future the SDK may create
12977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12978// for more information on using Contexts.
12979func (c *IoT) ListCACertificatesPagesWithContext(ctx aws.Context, input *ListCACertificatesInput, fn func(*ListCACertificatesOutput, bool) bool, opts ...request.Option) error {
12980	p := request.Pagination{
12981		NewRequest: func() (*request.Request, error) {
12982			var inCpy *ListCACertificatesInput
12983			if input != nil {
12984				tmp := *input
12985				inCpy = &tmp
12986			}
12987			req, _ := c.ListCACertificatesRequest(inCpy)
12988			req.SetContext(ctx)
12989			req.ApplyOptions(opts...)
12990			return req, nil
12991		},
12992	}
12993
12994	for p.Next() {
12995		if !fn(p.Page().(*ListCACertificatesOutput), !p.HasNextPage()) {
12996			break
12997		}
12998	}
12999
13000	return p.Err()
13001}
13002
13003const opListCertificates = "ListCertificates"
13004
13005// ListCertificatesRequest generates a "aws/request.Request" representing the
13006// client's request for the ListCertificates operation. The "output" return
13007// value will be populated with the request's response once the request completes
13008// successfully.
13009//
13010// Use "Send" method on the returned Request to send the API call to the service.
13011// the "output" return value is not valid until after Send returns without error.
13012//
13013// See ListCertificates for more information on using the ListCertificates
13014// API call, and error handling.
13015//
13016// This method is useful when you want to inject custom logic or configuration
13017// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13018//
13019//
13020//    // Example sending a request using the ListCertificatesRequest method.
13021//    req, resp := client.ListCertificatesRequest(params)
13022//
13023//    err := req.Send()
13024//    if err == nil { // resp is now filled
13025//        fmt.Println(resp)
13026//    }
13027func (c *IoT) ListCertificatesRequest(input *ListCertificatesInput) (req *request.Request, output *ListCertificatesOutput) {
13028	op := &request.Operation{
13029		Name:       opListCertificates,
13030		HTTPMethod: "GET",
13031		HTTPPath:   "/certificates",
13032		Paginator: &request.Paginator{
13033			InputTokens:     []string{"marker"},
13034			OutputTokens:    []string{"nextMarker"},
13035			LimitToken:      "pageSize",
13036			TruncationToken: "",
13037		},
13038	}
13039
13040	if input == nil {
13041		input = &ListCertificatesInput{}
13042	}
13043
13044	output = &ListCertificatesOutput{}
13045	req = c.newRequest(op, input, output)
13046	return
13047}
13048
13049// ListCertificates API operation for AWS IoT.
13050//
13051// Lists the certificates registered in your AWS account.
13052//
13053// The results are paginated with a default page size of 25. You can use the
13054// returned marker to retrieve additional results.
13055//
13056// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13057// with awserr.Error's Code and Message methods to get detailed information about
13058// the error.
13059//
13060// See the AWS API reference guide for AWS IoT's
13061// API operation ListCertificates for usage and error information.
13062//
13063// Returned Error Types:
13064//   * InvalidRequestException
13065//   The request is not valid.
13066//
13067//   * ThrottlingException
13068//   The rate exceeds the limit.
13069//
13070//   * UnauthorizedException
13071//   You are not authorized to perform this operation.
13072//
13073//   * ServiceUnavailableException
13074//   The service is temporarily unavailable.
13075//
13076//   * InternalFailureException
13077//   An unexpected error has occurred.
13078//
13079func (c *IoT) ListCertificates(input *ListCertificatesInput) (*ListCertificatesOutput, error) {
13080	req, out := c.ListCertificatesRequest(input)
13081	return out, req.Send()
13082}
13083
13084// ListCertificatesWithContext is the same as ListCertificates with the addition of
13085// the ability to pass a context and additional request options.
13086//
13087// See ListCertificates for details on how to use this API operation.
13088//
13089// The context must be non-nil and will be used for request cancellation. If
13090// the context is nil a panic will occur. In the future the SDK may create
13091// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13092// for more information on using Contexts.
13093func (c *IoT) ListCertificatesWithContext(ctx aws.Context, input *ListCertificatesInput, opts ...request.Option) (*ListCertificatesOutput, error) {
13094	req, out := c.ListCertificatesRequest(input)
13095	req.SetContext(ctx)
13096	req.ApplyOptions(opts...)
13097	return out, req.Send()
13098}
13099
13100// ListCertificatesPages iterates over the pages of a ListCertificates operation,
13101// calling the "fn" function with the response data for each page. To stop
13102// iterating, return false from the fn function.
13103//
13104// See ListCertificates method for more information on how to use this operation.
13105//
13106// Note: This operation can generate multiple requests to a service.
13107//
13108//    // Example iterating over at most 3 pages of a ListCertificates operation.
13109//    pageNum := 0
13110//    err := client.ListCertificatesPages(params,
13111//        func(page *iot.ListCertificatesOutput, lastPage bool) bool {
13112//            pageNum++
13113//            fmt.Println(page)
13114//            return pageNum <= 3
13115//        })
13116//
13117func (c *IoT) ListCertificatesPages(input *ListCertificatesInput, fn func(*ListCertificatesOutput, bool) bool) error {
13118	return c.ListCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
13119}
13120
13121// ListCertificatesPagesWithContext same as ListCertificatesPages except
13122// it takes a Context and allows setting request options on the pages.
13123//
13124// The context must be non-nil and will be used for request cancellation. If
13125// the context is nil a panic will occur. In the future the SDK may create
13126// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13127// for more information on using Contexts.
13128func (c *IoT) ListCertificatesPagesWithContext(ctx aws.Context, input *ListCertificatesInput, fn func(*ListCertificatesOutput, bool) bool, opts ...request.Option) error {
13129	p := request.Pagination{
13130		NewRequest: func() (*request.Request, error) {
13131			var inCpy *ListCertificatesInput
13132			if input != nil {
13133				tmp := *input
13134				inCpy = &tmp
13135			}
13136			req, _ := c.ListCertificatesRequest(inCpy)
13137			req.SetContext(ctx)
13138			req.ApplyOptions(opts...)
13139			return req, nil
13140		},
13141	}
13142
13143	for p.Next() {
13144		if !fn(p.Page().(*ListCertificatesOutput), !p.HasNextPage()) {
13145			break
13146		}
13147	}
13148
13149	return p.Err()
13150}
13151
13152const opListCertificatesByCA = "ListCertificatesByCA"
13153
13154// ListCertificatesByCARequest generates a "aws/request.Request" representing the
13155// client's request for the ListCertificatesByCA operation. The "output" return
13156// value will be populated with the request's response once the request completes
13157// successfully.
13158//
13159// Use "Send" method on the returned Request to send the API call to the service.
13160// the "output" return value is not valid until after Send returns without error.
13161//
13162// See ListCertificatesByCA for more information on using the ListCertificatesByCA
13163// API call, and error handling.
13164//
13165// This method is useful when you want to inject custom logic or configuration
13166// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13167//
13168//
13169//    // Example sending a request using the ListCertificatesByCARequest method.
13170//    req, resp := client.ListCertificatesByCARequest(params)
13171//
13172//    err := req.Send()
13173//    if err == nil { // resp is now filled
13174//        fmt.Println(resp)
13175//    }
13176func (c *IoT) ListCertificatesByCARequest(input *ListCertificatesByCAInput) (req *request.Request, output *ListCertificatesByCAOutput) {
13177	op := &request.Operation{
13178		Name:       opListCertificatesByCA,
13179		HTTPMethod: "GET",
13180		HTTPPath:   "/certificates-by-ca/{caCertificateId}",
13181		Paginator: &request.Paginator{
13182			InputTokens:     []string{"marker"},
13183			OutputTokens:    []string{"nextMarker"},
13184			LimitToken:      "pageSize",
13185			TruncationToken: "",
13186		},
13187	}
13188
13189	if input == nil {
13190		input = &ListCertificatesByCAInput{}
13191	}
13192
13193	output = &ListCertificatesByCAOutput{}
13194	req = c.newRequest(op, input, output)
13195	return
13196}
13197
13198// ListCertificatesByCA API operation for AWS IoT.
13199//
13200// List the device certificates signed by the specified CA certificate.
13201//
13202// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13203// with awserr.Error's Code and Message methods to get detailed information about
13204// the error.
13205//
13206// See the AWS API reference guide for AWS IoT's
13207// API operation ListCertificatesByCA for usage and error information.
13208//
13209// Returned Error Types:
13210//   * InvalidRequestException
13211//   The request is not valid.
13212//
13213//   * ThrottlingException
13214//   The rate exceeds the limit.
13215//
13216//   * UnauthorizedException
13217//   You are not authorized to perform this operation.
13218//
13219//   * ServiceUnavailableException
13220//   The service is temporarily unavailable.
13221//
13222//   * InternalFailureException
13223//   An unexpected error has occurred.
13224//
13225func (c *IoT) ListCertificatesByCA(input *ListCertificatesByCAInput) (*ListCertificatesByCAOutput, error) {
13226	req, out := c.ListCertificatesByCARequest(input)
13227	return out, req.Send()
13228}
13229
13230// ListCertificatesByCAWithContext is the same as ListCertificatesByCA with the addition of
13231// the ability to pass a context and additional request options.
13232//
13233// See ListCertificatesByCA for details on how to use this API operation.
13234//
13235// The context must be non-nil and will be used for request cancellation. If
13236// the context is nil a panic will occur. In the future the SDK may create
13237// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13238// for more information on using Contexts.
13239func (c *IoT) ListCertificatesByCAWithContext(ctx aws.Context, input *ListCertificatesByCAInput, opts ...request.Option) (*ListCertificatesByCAOutput, error) {
13240	req, out := c.ListCertificatesByCARequest(input)
13241	req.SetContext(ctx)
13242	req.ApplyOptions(opts...)
13243	return out, req.Send()
13244}
13245
13246// ListCertificatesByCAPages iterates over the pages of a ListCertificatesByCA operation,
13247// calling the "fn" function with the response data for each page. To stop
13248// iterating, return false from the fn function.
13249//
13250// See ListCertificatesByCA method for more information on how to use this operation.
13251//
13252// Note: This operation can generate multiple requests to a service.
13253//
13254//    // Example iterating over at most 3 pages of a ListCertificatesByCA operation.
13255//    pageNum := 0
13256//    err := client.ListCertificatesByCAPages(params,
13257//        func(page *iot.ListCertificatesByCAOutput, lastPage bool) bool {
13258//            pageNum++
13259//            fmt.Println(page)
13260//            return pageNum <= 3
13261//        })
13262//
13263func (c *IoT) ListCertificatesByCAPages(input *ListCertificatesByCAInput, fn func(*ListCertificatesByCAOutput, bool) bool) error {
13264	return c.ListCertificatesByCAPagesWithContext(aws.BackgroundContext(), input, fn)
13265}
13266
13267// ListCertificatesByCAPagesWithContext same as ListCertificatesByCAPages except
13268// it takes a Context and allows setting request options on the pages.
13269//
13270// The context must be non-nil and will be used for request cancellation. If
13271// the context is nil a panic will occur. In the future the SDK may create
13272// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13273// for more information on using Contexts.
13274func (c *IoT) ListCertificatesByCAPagesWithContext(ctx aws.Context, input *ListCertificatesByCAInput, fn func(*ListCertificatesByCAOutput, bool) bool, opts ...request.Option) error {
13275	p := request.Pagination{
13276		NewRequest: func() (*request.Request, error) {
13277			var inCpy *ListCertificatesByCAInput
13278			if input != nil {
13279				tmp := *input
13280				inCpy = &tmp
13281			}
13282			req, _ := c.ListCertificatesByCARequest(inCpy)
13283			req.SetContext(ctx)
13284			req.ApplyOptions(opts...)
13285			return req, nil
13286		},
13287	}
13288
13289	for p.Next() {
13290		if !fn(p.Page().(*ListCertificatesByCAOutput), !p.HasNextPage()) {
13291			break
13292		}
13293	}
13294
13295	return p.Err()
13296}
13297
13298const opListCustomMetrics = "ListCustomMetrics"
13299
13300// ListCustomMetricsRequest generates a "aws/request.Request" representing the
13301// client's request for the ListCustomMetrics operation. The "output" return
13302// value will be populated with the request's response once the request completes
13303// successfully.
13304//
13305// Use "Send" method on the returned Request to send the API call to the service.
13306// the "output" return value is not valid until after Send returns without error.
13307//
13308// See ListCustomMetrics for more information on using the ListCustomMetrics
13309// API call, and error handling.
13310//
13311// This method is useful when you want to inject custom logic or configuration
13312// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13313//
13314//
13315//    // Example sending a request using the ListCustomMetricsRequest method.
13316//    req, resp := client.ListCustomMetricsRequest(params)
13317//
13318//    err := req.Send()
13319//    if err == nil { // resp is now filled
13320//        fmt.Println(resp)
13321//    }
13322func (c *IoT) ListCustomMetricsRequest(input *ListCustomMetricsInput) (req *request.Request, output *ListCustomMetricsOutput) {
13323	op := &request.Operation{
13324		Name:       opListCustomMetrics,
13325		HTTPMethod: "GET",
13326		HTTPPath:   "/custom-metrics",
13327		Paginator: &request.Paginator{
13328			InputTokens:     []string{"nextToken"},
13329			OutputTokens:    []string{"nextToken"},
13330			LimitToken:      "maxResults",
13331			TruncationToken: "",
13332		},
13333	}
13334
13335	if input == nil {
13336		input = &ListCustomMetricsInput{}
13337	}
13338
13339	output = &ListCustomMetricsOutput{}
13340	req = c.newRequest(op, input, output)
13341	return
13342}
13343
13344// ListCustomMetrics API operation for AWS IoT.
13345//
13346// Lists your Device Defender detect custom metrics.
13347//
13348// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13349// with awserr.Error's Code and Message methods to get detailed information about
13350// the error.
13351//
13352// See the AWS API reference guide for AWS IoT's
13353// API operation ListCustomMetrics for usage and error information.
13354//
13355// Returned Error Types:
13356//   * InvalidRequestException
13357//   The request is not valid.
13358//
13359//   * ThrottlingException
13360//   The rate exceeds the limit.
13361//
13362//   * InternalFailureException
13363//   An unexpected error has occurred.
13364//
13365func (c *IoT) ListCustomMetrics(input *ListCustomMetricsInput) (*ListCustomMetricsOutput, error) {
13366	req, out := c.ListCustomMetricsRequest(input)
13367	return out, req.Send()
13368}
13369
13370// ListCustomMetricsWithContext is the same as ListCustomMetrics with the addition of
13371// the ability to pass a context and additional request options.
13372//
13373// See ListCustomMetrics for details on how to use this API operation.
13374//
13375// The context must be non-nil and will be used for request cancellation. If
13376// the context is nil a panic will occur. In the future the SDK may create
13377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13378// for more information on using Contexts.
13379func (c *IoT) ListCustomMetricsWithContext(ctx aws.Context, input *ListCustomMetricsInput, opts ...request.Option) (*ListCustomMetricsOutput, error) {
13380	req, out := c.ListCustomMetricsRequest(input)
13381	req.SetContext(ctx)
13382	req.ApplyOptions(opts...)
13383	return out, req.Send()
13384}
13385
13386// ListCustomMetricsPages iterates over the pages of a ListCustomMetrics operation,
13387// calling the "fn" function with the response data for each page. To stop
13388// iterating, return false from the fn function.
13389//
13390// See ListCustomMetrics method for more information on how to use this operation.
13391//
13392// Note: This operation can generate multiple requests to a service.
13393//
13394//    // Example iterating over at most 3 pages of a ListCustomMetrics operation.
13395//    pageNum := 0
13396//    err := client.ListCustomMetricsPages(params,
13397//        func(page *iot.ListCustomMetricsOutput, lastPage bool) bool {
13398//            pageNum++
13399//            fmt.Println(page)
13400//            return pageNum <= 3
13401//        })
13402//
13403func (c *IoT) ListCustomMetricsPages(input *ListCustomMetricsInput, fn func(*ListCustomMetricsOutput, bool) bool) error {
13404	return c.ListCustomMetricsPagesWithContext(aws.BackgroundContext(), input, fn)
13405}
13406
13407// ListCustomMetricsPagesWithContext same as ListCustomMetricsPages except
13408// it takes a Context and allows setting request options on the pages.
13409//
13410// The context must be non-nil and will be used for request cancellation. If
13411// the context is nil a panic will occur. In the future the SDK may create
13412// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13413// for more information on using Contexts.
13414func (c *IoT) ListCustomMetricsPagesWithContext(ctx aws.Context, input *ListCustomMetricsInput, fn func(*ListCustomMetricsOutput, bool) bool, opts ...request.Option) error {
13415	p := request.Pagination{
13416		NewRequest: func() (*request.Request, error) {
13417			var inCpy *ListCustomMetricsInput
13418			if input != nil {
13419				tmp := *input
13420				inCpy = &tmp
13421			}
13422			req, _ := c.ListCustomMetricsRequest(inCpy)
13423			req.SetContext(ctx)
13424			req.ApplyOptions(opts...)
13425			return req, nil
13426		},
13427	}
13428
13429	for p.Next() {
13430		if !fn(p.Page().(*ListCustomMetricsOutput), !p.HasNextPage()) {
13431			break
13432		}
13433	}
13434
13435	return p.Err()
13436}
13437
13438const opListDetectMitigationActionsExecutions = "ListDetectMitigationActionsExecutions"
13439
13440// ListDetectMitigationActionsExecutionsRequest generates a "aws/request.Request" representing the
13441// client's request for the ListDetectMitigationActionsExecutions operation. The "output" return
13442// value will be populated with the request's response once the request completes
13443// successfully.
13444//
13445// Use "Send" method on the returned Request to send the API call to the service.
13446// the "output" return value is not valid until after Send returns without error.
13447//
13448// See ListDetectMitigationActionsExecutions for more information on using the ListDetectMitigationActionsExecutions
13449// API call, and error handling.
13450//
13451// This method is useful when you want to inject custom logic or configuration
13452// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13453//
13454//
13455//    // Example sending a request using the ListDetectMitigationActionsExecutionsRequest method.
13456//    req, resp := client.ListDetectMitigationActionsExecutionsRequest(params)
13457//
13458//    err := req.Send()
13459//    if err == nil { // resp is now filled
13460//        fmt.Println(resp)
13461//    }
13462func (c *IoT) ListDetectMitigationActionsExecutionsRequest(input *ListDetectMitigationActionsExecutionsInput) (req *request.Request, output *ListDetectMitigationActionsExecutionsOutput) {
13463	op := &request.Operation{
13464		Name:       opListDetectMitigationActionsExecutions,
13465		HTTPMethod: "GET",
13466		HTTPPath:   "/detect/mitigationactions/executions",
13467		Paginator: &request.Paginator{
13468			InputTokens:     []string{"nextToken"},
13469			OutputTokens:    []string{"nextToken"},
13470			LimitToken:      "maxResults",
13471			TruncationToken: "",
13472		},
13473	}
13474
13475	if input == nil {
13476		input = &ListDetectMitigationActionsExecutionsInput{}
13477	}
13478
13479	output = &ListDetectMitigationActionsExecutionsOutput{}
13480	req = c.newRequest(op, input, output)
13481	return
13482}
13483
13484// ListDetectMitigationActionsExecutions API operation for AWS IoT.
13485//
13486// Lists mitigation actions executions for a Device Defender ML Detect Security
13487// Profile.
13488//
13489// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13490// with awserr.Error's Code and Message methods to get detailed information about
13491// the error.
13492//
13493// See the AWS API reference guide for AWS IoT's
13494// API operation ListDetectMitigationActionsExecutions for usage and error information.
13495//
13496// Returned Error Types:
13497//   * InvalidRequestException
13498//   The request is not valid.
13499//
13500//   * ThrottlingException
13501//   The rate exceeds the limit.
13502//
13503//   * InternalFailureException
13504//   An unexpected error has occurred.
13505//
13506func (c *IoT) ListDetectMitigationActionsExecutions(input *ListDetectMitigationActionsExecutionsInput) (*ListDetectMitigationActionsExecutionsOutput, error) {
13507	req, out := c.ListDetectMitigationActionsExecutionsRequest(input)
13508	return out, req.Send()
13509}
13510
13511// ListDetectMitigationActionsExecutionsWithContext is the same as ListDetectMitigationActionsExecutions with the addition of
13512// the ability to pass a context and additional request options.
13513//
13514// See ListDetectMitigationActionsExecutions for details on how to use this API operation.
13515//
13516// The context must be non-nil and will be used for request cancellation. If
13517// the context is nil a panic will occur. In the future the SDK may create
13518// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13519// for more information on using Contexts.
13520func (c *IoT) ListDetectMitigationActionsExecutionsWithContext(ctx aws.Context, input *ListDetectMitigationActionsExecutionsInput, opts ...request.Option) (*ListDetectMitigationActionsExecutionsOutput, error) {
13521	req, out := c.ListDetectMitigationActionsExecutionsRequest(input)
13522	req.SetContext(ctx)
13523	req.ApplyOptions(opts...)
13524	return out, req.Send()
13525}
13526
13527// ListDetectMitigationActionsExecutionsPages iterates over the pages of a ListDetectMitigationActionsExecutions operation,
13528// calling the "fn" function with the response data for each page. To stop
13529// iterating, return false from the fn function.
13530//
13531// See ListDetectMitigationActionsExecutions method for more information on how to use this operation.
13532//
13533// Note: This operation can generate multiple requests to a service.
13534//
13535//    // Example iterating over at most 3 pages of a ListDetectMitigationActionsExecutions operation.
13536//    pageNum := 0
13537//    err := client.ListDetectMitigationActionsExecutionsPages(params,
13538//        func(page *iot.ListDetectMitigationActionsExecutionsOutput, lastPage bool) bool {
13539//            pageNum++
13540//            fmt.Println(page)
13541//            return pageNum <= 3
13542//        })
13543//
13544func (c *IoT) ListDetectMitigationActionsExecutionsPages(input *ListDetectMitigationActionsExecutionsInput, fn func(*ListDetectMitigationActionsExecutionsOutput, bool) bool) error {
13545	return c.ListDetectMitigationActionsExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
13546}
13547
13548// ListDetectMitigationActionsExecutionsPagesWithContext same as ListDetectMitigationActionsExecutionsPages except
13549// it takes a Context and allows setting request options on the pages.
13550//
13551// The context must be non-nil and will be used for request cancellation. If
13552// the context is nil a panic will occur. In the future the SDK may create
13553// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13554// for more information on using Contexts.
13555func (c *IoT) ListDetectMitigationActionsExecutionsPagesWithContext(ctx aws.Context, input *ListDetectMitigationActionsExecutionsInput, fn func(*ListDetectMitigationActionsExecutionsOutput, bool) bool, opts ...request.Option) error {
13556	p := request.Pagination{
13557		NewRequest: func() (*request.Request, error) {
13558			var inCpy *ListDetectMitigationActionsExecutionsInput
13559			if input != nil {
13560				tmp := *input
13561				inCpy = &tmp
13562			}
13563			req, _ := c.ListDetectMitigationActionsExecutionsRequest(inCpy)
13564			req.SetContext(ctx)
13565			req.ApplyOptions(opts...)
13566			return req, nil
13567		},
13568	}
13569
13570	for p.Next() {
13571		if !fn(p.Page().(*ListDetectMitigationActionsExecutionsOutput), !p.HasNextPage()) {
13572			break
13573		}
13574	}
13575
13576	return p.Err()
13577}
13578
13579const opListDetectMitigationActionsTasks = "ListDetectMitigationActionsTasks"
13580
13581// ListDetectMitigationActionsTasksRequest generates a "aws/request.Request" representing the
13582// client's request for the ListDetectMitigationActionsTasks operation. The "output" return
13583// value will be populated with the request's response once the request completes
13584// successfully.
13585//
13586// Use "Send" method on the returned Request to send the API call to the service.
13587// the "output" return value is not valid until after Send returns without error.
13588//
13589// See ListDetectMitigationActionsTasks for more information on using the ListDetectMitigationActionsTasks
13590// API call, and error handling.
13591//
13592// This method is useful when you want to inject custom logic or configuration
13593// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13594//
13595//
13596//    // Example sending a request using the ListDetectMitigationActionsTasksRequest method.
13597//    req, resp := client.ListDetectMitigationActionsTasksRequest(params)
13598//
13599//    err := req.Send()
13600//    if err == nil { // resp is now filled
13601//        fmt.Println(resp)
13602//    }
13603func (c *IoT) ListDetectMitigationActionsTasksRequest(input *ListDetectMitigationActionsTasksInput) (req *request.Request, output *ListDetectMitigationActionsTasksOutput) {
13604	op := &request.Operation{
13605		Name:       opListDetectMitigationActionsTasks,
13606		HTTPMethod: "GET",
13607		HTTPPath:   "/detect/mitigationactions/tasks",
13608		Paginator: &request.Paginator{
13609			InputTokens:     []string{"nextToken"},
13610			OutputTokens:    []string{"nextToken"},
13611			LimitToken:      "maxResults",
13612			TruncationToken: "",
13613		},
13614	}
13615
13616	if input == nil {
13617		input = &ListDetectMitigationActionsTasksInput{}
13618	}
13619
13620	output = &ListDetectMitigationActionsTasksOutput{}
13621	req = c.newRequest(op, input, output)
13622	return
13623}
13624
13625// ListDetectMitigationActionsTasks API operation for AWS IoT.
13626//
13627// List of Device Defender ML Detect mitigation actions tasks.
13628//
13629// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13630// with awserr.Error's Code and Message methods to get detailed information about
13631// the error.
13632//
13633// See the AWS API reference guide for AWS IoT's
13634// API operation ListDetectMitigationActionsTasks for usage and error information.
13635//
13636// Returned Error Types:
13637//   * InvalidRequestException
13638//   The request is not valid.
13639//
13640//   * ThrottlingException
13641//   The rate exceeds the limit.
13642//
13643//   * InternalFailureException
13644//   An unexpected error has occurred.
13645//
13646func (c *IoT) ListDetectMitigationActionsTasks(input *ListDetectMitigationActionsTasksInput) (*ListDetectMitigationActionsTasksOutput, error) {
13647	req, out := c.ListDetectMitigationActionsTasksRequest(input)
13648	return out, req.Send()
13649}
13650
13651// ListDetectMitigationActionsTasksWithContext is the same as ListDetectMitigationActionsTasks with the addition of
13652// the ability to pass a context and additional request options.
13653//
13654// See ListDetectMitigationActionsTasks for details on how to use this API operation.
13655//
13656// The context must be non-nil and will be used for request cancellation. If
13657// the context is nil a panic will occur. In the future the SDK may create
13658// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13659// for more information on using Contexts.
13660func (c *IoT) ListDetectMitigationActionsTasksWithContext(ctx aws.Context, input *ListDetectMitigationActionsTasksInput, opts ...request.Option) (*ListDetectMitigationActionsTasksOutput, error) {
13661	req, out := c.ListDetectMitigationActionsTasksRequest(input)
13662	req.SetContext(ctx)
13663	req.ApplyOptions(opts...)
13664	return out, req.Send()
13665}
13666
13667// ListDetectMitigationActionsTasksPages iterates over the pages of a ListDetectMitigationActionsTasks operation,
13668// calling the "fn" function with the response data for each page. To stop
13669// iterating, return false from the fn function.
13670//
13671// See ListDetectMitigationActionsTasks method for more information on how to use this operation.
13672//
13673// Note: This operation can generate multiple requests to a service.
13674//
13675//    // Example iterating over at most 3 pages of a ListDetectMitigationActionsTasks operation.
13676//    pageNum := 0
13677//    err := client.ListDetectMitigationActionsTasksPages(params,
13678//        func(page *iot.ListDetectMitigationActionsTasksOutput, lastPage bool) bool {
13679//            pageNum++
13680//            fmt.Println(page)
13681//            return pageNum <= 3
13682//        })
13683//
13684func (c *IoT) ListDetectMitigationActionsTasksPages(input *ListDetectMitigationActionsTasksInput, fn func(*ListDetectMitigationActionsTasksOutput, bool) bool) error {
13685	return c.ListDetectMitigationActionsTasksPagesWithContext(aws.BackgroundContext(), input, fn)
13686}
13687
13688// ListDetectMitigationActionsTasksPagesWithContext same as ListDetectMitigationActionsTasksPages except
13689// it takes a Context and allows setting request options on the pages.
13690//
13691// The context must be non-nil and will be used for request cancellation. If
13692// the context is nil a panic will occur. In the future the SDK may create
13693// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13694// for more information on using Contexts.
13695func (c *IoT) ListDetectMitigationActionsTasksPagesWithContext(ctx aws.Context, input *ListDetectMitigationActionsTasksInput, fn func(*ListDetectMitigationActionsTasksOutput, bool) bool, opts ...request.Option) error {
13696	p := request.Pagination{
13697		NewRequest: func() (*request.Request, error) {
13698			var inCpy *ListDetectMitigationActionsTasksInput
13699			if input != nil {
13700				tmp := *input
13701				inCpy = &tmp
13702			}
13703			req, _ := c.ListDetectMitigationActionsTasksRequest(inCpy)
13704			req.SetContext(ctx)
13705			req.ApplyOptions(opts...)
13706			return req, nil
13707		},
13708	}
13709
13710	for p.Next() {
13711		if !fn(p.Page().(*ListDetectMitigationActionsTasksOutput), !p.HasNextPage()) {
13712			break
13713		}
13714	}
13715
13716	return p.Err()
13717}
13718
13719const opListDimensions = "ListDimensions"
13720
13721// ListDimensionsRequest generates a "aws/request.Request" representing the
13722// client's request for the ListDimensions operation. The "output" return
13723// value will be populated with the request's response once the request completes
13724// successfully.
13725//
13726// Use "Send" method on the returned Request to send the API call to the service.
13727// the "output" return value is not valid until after Send returns without error.
13728//
13729// See ListDimensions for more information on using the ListDimensions
13730// API call, and error handling.
13731//
13732// This method is useful when you want to inject custom logic or configuration
13733// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13734//
13735//
13736//    // Example sending a request using the ListDimensionsRequest method.
13737//    req, resp := client.ListDimensionsRequest(params)
13738//
13739//    err := req.Send()
13740//    if err == nil { // resp is now filled
13741//        fmt.Println(resp)
13742//    }
13743func (c *IoT) ListDimensionsRequest(input *ListDimensionsInput) (req *request.Request, output *ListDimensionsOutput) {
13744	op := &request.Operation{
13745		Name:       opListDimensions,
13746		HTTPMethod: "GET",
13747		HTTPPath:   "/dimensions",
13748		Paginator: &request.Paginator{
13749			InputTokens:     []string{"nextToken"},
13750			OutputTokens:    []string{"nextToken"},
13751			LimitToken:      "maxResults",
13752			TruncationToken: "",
13753		},
13754	}
13755
13756	if input == nil {
13757		input = &ListDimensionsInput{}
13758	}
13759
13760	output = &ListDimensionsOutput{}
13761	req = c.newRequest(op, input, output)
13762	return
13763}
13764
13765// ListDimensions API operation for AWS IoT.
13766//
13767// List the set of dimensions that are defined for your AWS account.
13768//
13769// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13770// with awserr.Error's Code and Message methods to get detailed information about
13771// the error.
13772//
13773// See the AWS API reference guide for AWS IoT's
13774// API operation ListDimensions for usage and error information.
13775//
13776// Returned Error Types:
13777//   * InternalFailureException
13778//   An unexpected error has occurred.
13779//
13780//   * InvalidRequestException
13781//   The request is not valid.
13782//
13783//   * ThrottlingException
13784//   The rate exceeds the limit.
13785//
13786func (c *IoT) ListDimensions(input *ListDimensionsInput) (*ListDimensionsOutput, error) {
13787	req, out := c.ListDimensionsRequest(input)
13788	return out, req.Send()
13789}
13790
13791// ListDimensionsWithContext is the same as ListDimensions with the addition of
13792// the ability to pass a context and additional request options.
13793//
13794// See ListDimensions for details on how to use this API operation.
13795//
13796// The context must be non-nil and will be used for request cancellation. If
13797// the context is nil a panic will occur. In the future the SDK may create
13798// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13799// for more information on using Contexts.
13800func (c *IoT) ListDimensionsWithContext(ctx aws.Context, input *ListDimensionsInput, opts ...request.Option) (*ListDimensionsOutput, error) {
13801	req, out := c.ListDimensionsRequest(input)
13802	req.SetContext(ctx)
13803	req.ApplyOptions(opts...)
13804	return out, req.Send()
13805}
13806
13807// ListDimensionsPages iterates over the pages of a ListDimensions operation,
13808// calling the "fn" function with the response data for each page. To stop
13809// iterating, return false from the fn function.
13810//
13811// See ListDimensions method for more information on how to use this operation.
13812//
13813// Note: This operation can generate multiple requests to a service.
13814//
13815//    // Example iterating over at most 3 pages of a ListDimensions operation.
13816//    pageNum := 0
13817//    err := client.ListDimensionsPages(params,
13818//        func(page *iot.ListDimensionsOutput, lastPage bool) bool {
13819//            pageNum++
13820//            fmt.Println(page)
13821//            return pageNum <= 3
13822//        })
13823//
13824func (c *IoT) ListDimensionsPages(input *ListDimensionsInput, fn func(*ListDimensionsOutput, bool) bool) error {
13825	return c.ListDimensionsPagesWithContext(aws.BackgroundContext(), input, fn)
13826}
13827
13828// ListDimensionsPagesWithContext same as ListDimensionsPages except
13829// it takes a Context and allows setting request options on the pages.
13830//
13831// The context must be non-nil and will be used for request cancellation. If
13832// the context is nil a panic will occur. In the future the SDK may create
13833// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13834// for more information on using Contexts.
13835func (c *IoT) ListDimensionsPagesWithContext(ctx aws.Context, input *ListDimensionsInput, fn func(*ListDimensionsOutput, bool) bool, opts ...request.Option) error {
13836	p := request.Pagination{
13837		NewRequest: func() (*request.Request, error) {
13838			var inCpy *ListDimensionsInput
13839			if input != nil {
13840				tmp := *input
13841				inCpy = &tmp
13842			}
13843			req, _ := c.ListDimensionsRequest(inCpy)
13844			req.SetContext(ctx)
13845			req.ApplyOptions(opts...)
13846			return req, nil
13847		},
13848	}
13849
13850	for p.Next() {
13851		if !fn(p.Page().(*ListDimensionsOutput), !p.HasNextPage()) {
13852			break
13853		}
13854	}
13855
13856	return p.Err()
13857}
13858
13859const opListDomainConfigurations = "ListDomainConfigurations"
13860
13861// ListDomainConfigurationsRequest generates a "aws/request.Request" representing the
13862// client's request for the ListDomainConfigurations operation. The "output" return
13863// value will be populated with the request's response once the request completes
13864// successfully.
13865//
13866// Use "Send" method on the returned Request to send the API call to the service.
13867// the "output" return value is not valid until after Send returns without error.
13868//
13869// See ListDomainConfigurations for more information on using the ListDomainConfigurations
13870// API call, and error handling.
13871//
13872// This method is useful when you want to inject custom logic or configuration
13873// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13874//
13875//
13876//    // Example sending a request using the ListDomainConfigurationsRequest method.
13877//    req, resp := client.ListDomainConfigurationsRequest(params)
13878//
13879//    err := req.Send()
13880//    if err == nil { // resp is now filled
13881//        fmt.Println(resp)
13882//    }
13883func (c *IoT) ListDomainConfigurationsRequest(input *ListDomainConfigurationsInput) (req *request.Request, output *ListDomainConfigurationsOutput) {
13884	op := &request.Operation{
13885		Name:       opListDomainConfigurations,
13886		HTTPMethod: "GET",
13887		HTTPPath:   "/domainConfigurations",
13888		Paginator: &request.Paginator{
13889			InputTokens:     []string{"marker"},
13890			OutputTokens:    []string{"nextMarker"},
13891			LimitToken:      "pageSize",
13892			TruncationToken: "",
13893		},
13894	}
13895
13896	if input == nil {
13897		input = &ListDomainConfigurationsInput{}
13898	}
13899
13900	output = &ListDomainConfigurationsOutput{}
13901	req = c.newRequest(op, input, output)
13902	return
13903}
13904
13905// ListDomainConfigurations API operation for AWS IoT.
13906//
13907// Gets a list of domain configurations for the user. This list is sorted alphabetically
13908// by domain configuration name.
13909//
13910// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13911// with awserr.Error's Code and Message methods to get detailed information about
13912// the error.
13913//
13914// See the AWS API reference guide for AWS IoT's
13915// API operation ListDomainConfigurations for usage and error information.
13916//
13917// Returned Error Types:
13918//   * InvalidRequestException
13919//   The request is not valid.
13920//
13921//   * ThrottlingException
13922//   The rate exceeds the limit.
13923//
13924//   * UnauthorizedException
13925//   You are not authorized to perform this operation.
13926//
13927//   * ServiceUnavailableException
13928//   The service is temporarily unavailable.
13929//
13930//   * InternalFailureException
13931//   An unexpected error has occurred.
13932//
13933func (c *IoT) ListDomainConfigurations(input *ListDomainConfigurationsInput) (*ListDomainConfigurationsOutput, error) {
13934	req, out := c.ListDomainConfigurationsRequest(input)
13935	return out, req.Send()
13936}
13937
13938// ListDomainConfigurationsWithContext is the same as ListDomainConfigurations with the addition of
13939// the ability to pass a context and additional request options.
13940//
13941// See ListDomainConfigurations for details on how to use this API operation.
13942//
13943// The context must be non-nil and will be used for request cancellation. If
13944// the context is nil a panic will occur. In the future the SDK may create
13945// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13946// for more information on using Contexts.
13947func (c *IoT) ListDomainConfigurationsWithContext(ctx aws.Context, input *ListDomainConfigurationsInput, opts ...request.Option) (*ListDomainConfigurationsOutput, error) {
13948	req, out := c.ListDomainConfigurationsRequest(input)
13949	req.SetContext(ctx)
13950	req.ApplyOptions(opts...)
13951	return out, req.Send()
13952}
13953
13954// ListDomainConfigurationsPages iterates over the pages of a ListDomainConfigurations operation,
13955// calling the "fn" function with the response data for each page. To stop
13956// iterating, return false from the fn function.
13957//
13958// See ListDomainConfigurations method for more information on how to use this operation.
13959//
13960// Note: This operation can generate multiple requests to a service.
13961//
13962//    // Example iterating over at most 3 pages of a ListDomainConfigurations operation.
13963//    pageNum := 0
13964//    err := client.ListDomainConfigurationsPages(params,
13965//        func(page *iot.ListDomainConfigurationsOutput, lastPage bool) bool {
13966//            pageNum++
13967//            fmt.Println(page)
13968//            return pageNum <= 3
13969//        })
13970//
13971func (c *IoT) ListDomainConfigurationsPages(input *ListDomainConfigurationsInput, fn func(*ListDomainConfigurationsOutput, bool) bool) error {
13972	return c.ListDomainConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
13973}
13974
13975// ListDomainConfigurationsPagesWithContext same as ListDomainConfigurationsPages except
13976// it takes a Context and allows setting request options on the pages.
13977//
13978// The context must be non-nil and will be used for request cancellation. If
13979// the context is nil a panic will occur. In the future the SDK may create
13980// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13981// for more information on using Contexts.
13982func (c *IoT) ListDomainConfigurationsPagesWithContext(ctx aws.Context, input *ListDomainConfigurationsInput, fn func(*ListDomainConfigurationsOutput, bool) bool, opts ...request.Option) error {
13983	p := request.Pagination{
13984		NewRequest: func() (*request.Request, error) {
13985			var inCpy *ListDomainConfigurationsInput
13986			if input != nil {
13987				tmp := *input
13988				inCpy = &tmp
13989			}
13990			req, _ := c.ListDomainConfigurationsRequest(inCpy)
13991			req.SetContext(ctx)
13992			req.ApplyOptions(opts...)
13993			return req, nil
13994		},
13995	}
13996
13997	for p.Next() {
13998		if !fn(p.Page().(*ListDomainConfigurationsOutput), !p.HasNextPage()) {
13999			break
14000		}
14001	}
14002
14003	return p.Err()
14004}
14005
14006const opListIndices = "ListIndices"
14007
14008// ListIndicesRequest generates a "aws/request.Request" representing the
14009// client's request for the ListIndices operation. The "output" return
14010// value will be populated with the request's response once the request completes
14011// successfully.
14012//
14013// Use "Send" method on the returned Request to send the API call to the service.
14014// the "output" return value is not valid until after Send returns without error.
14015//
14016// See ListIndices for more information on using the ListIndices
14017// API call, and error handling.
14018//
14019// This method is useful when you want to inject custom logic or configuration
14020// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14021//
14022//
14023//    // Example sending a request using the ListIndicesRequest method.
14024//    req, resp := client.ListIndicesRequest(params)
14025//
14026//    err := req.Send()
14027//    if err == nil { // resp is now filled
14028//        fmt.Println(resp)
14029//    }
14030func (c *IoT) ListIndicesRequest(input *ListIndicesInput) (req *request.Request, output *ListIndicesOutput) {
14031	op := &request.Operation{
14032		Name:       opListIndices,
14033		HTTPMethod: "GET",
14034		HTTPPath:   "/indices",
14035		Paginator: &request.Paginator{
14036			InputTokens:     []string{"nextToken"},
14037			OutputTokens:    []string{"nextToken"},
14038			LimitToken:      "maxResults",
14039			TruncationToken: "",
14040		},
14041	}
14042
14043	if input == nil {
14044		input = &ListIndicesInput{}
14045	}
14046
14047	output = &ListIndicesOutput{}
14048	req = c.newRequest(op, input, output)
14049	return
14050}
14051
14052// ListIndices API operation for AWS IoT.
14053//
14054// Lists the search indices.
14055//
14056// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14057// with awserr.Error's Code and Message methods to get detailed information about
14058// the error.
14059//
14060// See the AWS API reference guide for AWS IoT's
14061// API operation ListIndices for usage and error information.
14062//
14063// Returned Error Types:
14064//   * InvalidRequestException
14065//   The request is not valid.
14066//
14067//   * ThrottlingException
14068//   The rate exceeds the limit.
14069//
14070//   * UnauthorizedException
14071//   You are not authorized to perform this operation.
14072//
14073//   * ServiceUnavailableException
14074//   The service is temporarily unavailable.
14075//
14076//   * InternalFailureException
14077//   An unexpected error has occurred.
14078//
14079func (c *IoT) ListIndices(input *ListIndicesInput) (*ListIndicesOutput, error) {
14080	req, out := c.ListIndicesRequest(input)
14081	return out, req.Send()
14082}
14083
14084// ListIndicesWithContext is the same as ListIndices with the addition of
14085// the ability to pass a context and additional request options.
14086//
14087// See ListIndices for details on how to use this API operation.
14088//
14089// The context must be non-nil and will be used for request cancellation. If
14090// the context is nil a panic will occur. In the future the SDK may create
14091// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14092// for more information on using Contexts.
14093func (c *IoT) ListIndicesWithContext(ctx aws.Context, input *ListIndicesInput, opts ...request.Option) (*ListIndicesOutput, error) {
14094	req, out := c.ListIndicesRequest(input)
14095	req.SetContext(ctx)
14096	req.ApplyOptions(opts...)
14097	return out, req.Send()
14098}
14099
14100// ListIndicesPages iterates over the pages of a ListIndices operation,
14101// calling the "fn" function with the response data for each page. To stop
14102// iterating, return false from the fn function.
14103//
14104// See ListIndices method for more information on how to use this operation.
14105//
14106// Note: This operation can generate multiple requests to a service.
14107//
14108//    // Example iterating over at most 3 pages of a ListIndices operation.
14109//    pageNum := 0
14110//    err := client.ListIndicesPages(params,
14111//        func(page *iot.ListIndicesOutput, lastPage bool) bool {
14112//            pageNum++
14113//            fmt.Println(page)
14114//            return pageNum <= 3
14115//        })
14116//
14117func (c *IoT) ListIndicesPages(input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool) error {
14118	return c.ListIndicesPagesWithContext(aws.BackgroundContext(), input, fn)
14119}
14120
14121// ListIndicesPagesWithContext same as ListIndicesPages except
14122// it takes a Context and allows setting request options on the pages.
14123//
14124// The context must be non-nil and will be used for request cancellation. If
14125// the context is nil a panic will occur. In the future the SDK may create
14126// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14127// for more information on using Contexts.
14128func (c *IoT) ListIndicesPagesWithContext(ctx aws.Context, input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool, opts ...request.Option) error {
14129	p := request.Pagination{
14130		NewRequest: func() (*request.Request, error) {
14131			var inCpy *ListIndicesInput
14132			if input != nil {
14133				tmp := *input
14134				inCpy = &tmp
14135			}
14136			req, _ := c.ListIndicesRequest(inCpy)
14137			req.SetContext(ctx)
14138			req.ApplyOptions(opts...)
14139			return req, nil
14140		},
14141	}
14142
14143	for p.Next() {
14144		if !fn(p.Page().(*ListIndicesOutput), !p.HasNextPage()) {
14145			break
14146		}
14147	}
14148
14149	return p.Err()
14150}
14151
14152const opListJobExecutionsForJob = "ListJobExecutionsForJob"
14153
14154// ListJobExecutionsForJobRequest generates a "aws/request.Request" representing the
14155// client's request for the ListJobExecutionsForJob operation. The "output" return
14156// value will be populated with the request's response once the request completes
14157// successfully.
14158//
14159// Use "Send" method on the returned Request to send the API call to the service.
14160// the "output" return value is not valid until after Send returns without error.
14161//
14162// See ListJobExecutionsForJob for more information on using the ListJobExecutionsForJob
14163// API call, and error handling.
14164//
14165// This method is useful when you want to inject custom logic or configuration
14166// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14167//
14168//
14169//    // Example sending a request using the ListJobExecutionsForJobRequest method.
14170//    req, resp := client.ListJobExecutionsForJobRequest(params)
14171//
14172//    err := req.Send()
14173//    if err == nil { // resp is now filled
14174//        fmt.Println(resp)
14175//    }
14176func (c *IoT) ListJobExecutionsForJobRequest(input *ListJobExecutionsForJobInput) (req *request.Request, output *ListJobExecutionsForJobOutput) {
14177	op := &request.Operation{
14178		Name:       opListJobExecutionsForJob,
14179		HTTPMethod: "GET",
14180		HTTPPath:   "/jobs/{jobId}/things",
14181		Paginator: &request.Paginator{
14182			InputTokens:     []string{"nextToken"},
14183			OutputTokens:    []string{"nextToken"},
14184			LimitToken:      "maxResults",
14185			TruncationToken: "",
14186		},
14187	}
14188
14189	if input == nil {
14190		input = &ListJobExecutionsForJobInput{}
14191	}
14192
14193	output = &ListJobExecutionsForJobOutput{}
14194	req = c.newRequest(op, input, output)
14195	return
14196}
14197
14198// ListJobExecutionsForJob API operation for AWS IoT.
14199//
14200// Lists the job executions for a job.
14201//
14202// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14203// with awserr.Error's Code and Message methods to get detailed information about
14204// the error.
14205//
14206// See the AWS API reference guide for AWS IoT's
14207// API operation ListJobExecutionsForJob for usage and error information.
14208//
14209// Returned Error Types:
14210//   * InvalidRequestException
14211//   The request is not valid.
14212//
14213//   * ResourceNotFoundException
14214//   The specified resource does not exist.
14215//
14216//   * ThrottlingException
14217//   The rate exceeds the limit.
14218//
14219//   * ServiceUnavailableException
14220//   The service is temporarily unavailable.
14221//
14222func (c *IoT) ListJobExecutionsForJob(input *ListJobExecutionsForJobInput) (*ListJobExecutionsForJobOutput, error) {
14223	req, out := c.ListJobExecutionsForJobRequest(input)
14224	return out, req.Send()
14225}
14226
14227// ListJobExecutionsForJobWithContext is the same as ListJobExecutionsForJob with the addition of
14228// the ability to pass a context and additional request options.
14229//
14230// See ListJobExecutionsForJob for details on how to use this API operation.
14231//
14232// The context must be non-nil and will be used for request cancellation. If
14233// the context is nil a panic will occur. In the future the SDK may create
14234// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14235// for more information on using Contexts.
14236func (c *IoT) ListJobExecutionsForJobWithContext(ctx aws.Context, input *ListJobExecutionsForJobInput, opts ...request.Option) (*ListJobExecutionsForJobOutput, error) {
14237	req, out := c.ListJobExecutionsForJobRequest(input)
14238	req.SetContext(ctx)
14239	req.ApplyOptions(opts...)
14240	return out, req.Send()
14241}
14242
14243// ListJobExecutionsForJobPages iterates over the pages of a ListJobExecutionsForJob operation,
14244// calling the "fn" function with the response data for each page. To stop
14245// iterating, return false from the fn function.
14246//
14247// See ListJobExecutionsForJob method for more information on how to use this operation.
14248//
14249// Note: This operation can generate multiple requests to a service.
14250//
14251//    // Example iterating over at most 3 pages of a ListJobExecutionsForJob operation.
14252//    pageNum := 0
14253//    err := client.ListJobExecutionsForJobPages(params,
14254//        func(page *iot.ListJobExecutionsForJobOutput, lastPage bool) bool {
14255//            pageNum++
14256//            fmt.Println(page)
14257//            return pageNum <= 3
14258//        })
14259//
14260func (c *IoT) ListJobExecutionsForJobPages(input *ListJobExecutionsForJobInput, fn func(*ListJobExecutionsForJobOutput, bool) bool) error {
14261	return c.ListJobExecutionsForJobPagesWithContext(aws.BackgroundContext(), input, fn)
14262}
14263
14264// ListJobExecutionsForJobPagesWithContext same as ListJobExecutionsForJobPages except
14265// it takes a Context and allows setting request options on the pages.
14266//
14267// The context must be non-nil and will be used for request cancellation. If
14268// the context is nil a panic will occur. In the future the SDK may create
14269// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14270// for more information on using Contexts.
14271func (c *IoT) ListJobExecutionsForJobPagesWithContext(ctx aws.Context, input *ListJobExecutionsForJobInput, fn func(*ListJobExecutionsForJobOutput, bool) bool, opts ...request.Option) error {
14272	p := request.Pagination{
14273		NewRequest: func() (*request.Request, error) {
14274			var inCpy *ListJobExecutionsForJobInput
14275			if input != nil {
14276				tmp := *input
14277				inCpy = &tmp
14278			}
14279			req, _ := c.ListJobExecutionsForJobRequest(inCpy)
14280			req.SetContext(ctx)
14281			req.ApplyOptions(opts...)
14282			return req, nil
14283		},
14284	}
14285
14286	for p.Next() {
14287		if !fn(p.Page().(*ListJobExecutionsForJobOutput), !p.HasNextPage()) {
14288			break
14289		}
14290	}
14291
14292	return p.Err()
14293}
14294
14295const opListJobExecutionsForThing = "ListJobExecutionsForThing"
14296
14297// ListJobExecutionsForThingRequest generates a "aws/request.Request" representing the
14298// client's request for the ListJobExecutionsForThing operation. The "output" return
14299// value will be populated with the request's response once the request completes
14300// successfully.
14301//
14302// Use "Send" method on the returned Request to send the API call to the service.
14303// the "output" return value is not valid until after Send returns without error.
14304//
14305// See ListJobExecutionsForThing for more information on using the ListJobExecutionsForThing
14306// API call, and error handling.
14307//
14308// This method is useful when you want to inject custom logic or configuration
14309// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14310//
14311//
14312//    // Example sending a request using the ListJobExecutionsForThingRequest method.
14313//    req, resp := client.ListJobExecutionsForThingRequest(params)
14314//
14315//    err := req.Send()
14316//    if err == nil { // resp is now filled
14317//        fmt.Println(resp)
14318//    }
14319func (c *IoT) ListJobExecutionsForThingRequest(input *ListJobExecutionsForThingInput) (req *request.Request, output *ListJobExecutionsForThingOutput) {
14320	op := &request.Operation{
14321		Name:       opListJobExecutionsForThing,
14322		HTTPMethod: "GET",
14323		HTTPPath:   "/things/{thingName}/jobs",
14324		Paginator: &request.Paginator{
14325			InputTokens:     []string{"nextToken"},
14326			OutputTokens:    []string{"nextToken"},
14327			LimitToken:      "maxResults",
14328			TruncationToken: "",
14329		},
14330	}
14331
14332	if input == nil {
14333		input = &ListJobExecutionsForThingInput{}
14334	}
14335
14336	output = &ListJobExecutionsForThingOutput{}
14337	req = c.newRequest(op, input, output)
14338	return
14339}
14340
14341// ListJobExecutionsForThing API operation for AWS IoT.
14342//
14343// Lists the job executions for the specified thing.
14344//
14345// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14346// with awserr.Error's Code and Message methods to get detailed information about
14347// the error.
14348//
14349// See the AWS API reference guide for AWS IoT's
14350// API operation ListJobExecutionsForThing for usage and error information.
14351//
14352// Returned Error Types:
14353//   * InvalidRequestException
14354//   The request is not valid.
14355//
14356//   * ResourceNotFoundException
14357//   The specified resource does not exist.
14358//
14359//   * ThrottlingException
14360//   The rate exceeds the limit.
14361//
14362//   * ServiceUnavailableException
14363//   The service is temporarily unavailable.
14364//
14365func (c *IoT) ListJobExecutionsForThing(input *ListJobExecutionsForThingInput) (*ListJobExecutionsForThingOutput, error) {
14366	req, out := c.ListJobExecutionsForThingRequest(input)
14367	return out, req.Send()
14368}
14369
14370// ListJobExecutionsForThingWithContext is the same as ListJobExecutionsForThing with the addition of
14371// the ability to pass a context and additional request options.
14372//
14373// See ListJobExecutionsForThing for details on how to use this API operation.
14374//
14375// The context must be non-nil and will be used for request cancellation. If
14376// the context is nil a panic will occur. In the future the SDK may create
14377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14378// for more information on using Contexts.
14379func (c *IoT) ListJobExecutionsForThingWithContext(ctx aws.Context, input *ListJobExecutionsForThingInput, opts ...request.Option) (*ListJobExecutionsForThingOutput, error) {
14380	req, out := c.ListJobExecutionsForThingRequest(input)
14381	req.SetContext(ctx)
14382	req.ApplyOptions(opts...)
14383	return out, req.Send()
14384}
14385
14386// ListJobExecutionsForThingPages iterates over the pages of a ListJobExecutionsForThing operation,
14387// calling the "fn" function with the response data for each page. To stop
14388// iterating, return false from the fn function.
14389//
14390// See ListJobExecutionsForThing method for more information on how to use this operation.
14391//
14392// Note: This operation can generate multiple requests to a service.
14393//
14394//    // Example iterating over at most 3 pages of a ListJobExecutionsForThing operation.
14395//    pageNum := 0
14396//    err := client.ListJobExecutionsForThingPages(params,
14397//        func(page *iot.ListJobExecutionsForThingOutput, lastPage bool) bool {
14398//            pageNum++
14399//            fmt.Println(page)
14400//            return pageNum <= 3
14401//        })
14402//
14403func (c *IoT) ListJobExecutionsForThingPages(input *ListJobExecutionsForThingInput, fn func(*ListJobExecutionsForThingOutput, bool) bool) error {
14404	return c.ListJobExecutionsForThingPagesWithContext(aws.BackgroundContext(), input, fn)
14405}
14406
14407// ListJobExecutionsForThingPagesWithContext same as ListJobExecutionsForThingPages except
14408// it takes a Context and allows setting request options on the pages.
14409//
14410// The context must be non-nil and will be used for request cancellation. If
14411// the context is nil a panic will occur. In the future the SDK may create
14412// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14413// for more information on using Contexts.
14414func (c *IoT) ListJobExecutionsForThingPagesWithContext(ctx aws.Context, input *ListJobExecutionsForThingInput, fn func(*ListJobExecutionsForThingOutput, bool) bool, opts ...request.Option) error {
14415	p := request.Pagination{
14416		NewRequest: func() (*request.Request, error) {
14417			var inCpy *ListJobExecutionsForThingInput
14418			if input != nil {
14419				tmp := *input
14420				inCpy = &tmp
14421			}
14422			req, _ := c.ListJobExecutionsForThingRequest(inCpy)
14423			req.SetContext(ctx)
14424			req.ApplyOptions(opts...)
14425			return req, nil
14426		},
14427	}
14428
14429	for p.Next() {
14430		if !fn(p.Page().(*ListJobExecutionsForThingOutput), !p.HasNextPage()) {
14431			break
14432		}
14433	}
14434
14435	return p.Err()
14436}
14437
14438const opListJobTemplates = "ListJobTemplates"
14439
14440// ListJobTemplatesRequest generates a "aws/request.Request" representing the
14441// client's request for the ListJobTemplates operation. The "output" return
14442// value will be populated with the request's response once the request completes
14443// successfully.
14444//
14445// Use "Send" method on the returned Request to send the API call to the service.
14446// the "output" return value is not valid until after Send returns without error.
14447//
14448// See ListJobTemplates for more information on using the ListJobTemplates
14449// API call, and error handling.
14450//
14451// This method is useful when you want to inject custom logic or configuration
14452// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14453//
14454//
14455//    // Example sending a request using the ListJobTemplatesRequest method.
14456//    req, resp := client.ListJobTemplatesRequest(params)
14457//
14458//    err := req.Send()
14459//    if err == nil { // resp is now filled
14460//        fmt.Println(resp)
14461//    }
14462func (c *IoT) ListJobTemplatesRequest(input *ListJobTemplatesInput) (req *request.Request, output *ListJobTemplatesOutput) {
14463	op := &request.Operation{
14464		Name:       opListJobTemplates,
14465		HTTPMethod: "GET",
14466		HTTPPath:   "/job-templates",
14467	}
14468
14469	if input == nil {
14470		input = &ListJobTemplatesInput{}
14471	}
14472
14473	output = &ListJobTemplatesOutput{}
14474	req = c.newRequest(op, input, output)
14475	return
14476}
14477
14478// ListJobTemplates API operation for AWS IoT.
14479//
14480// Returns a list of job templates.
14481//
14482// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14483// with awserr.Error's Code and Message methods to get detailed information about
14484// the error.
14485//
14486// See the AWS API reference guide for AWS IoT's
14487// API operation ListJobTemplates for usage and error information.
14488//
14489// Returned Error Types:
14490//   * InvalidRequestException
14491//   The request is not valid.
14492//
14493//   * ThrottlingException
14494//   The rate exceeds the limit.
14495//
14496//   * InternalFailureException
14497//   An unexpected error has occurred.
14498//
14499func (c *IoT) ListJobTemplates(input *ListJobTemplatesInput) (*ListJobTemplatesOutput, error) {
14500	req, out := c.ListJobTemplatesRequest(input)
14501	return out, req.Send()
14502}
14503
14504// ListJobTemplatesWithContext is the same as ListJobTemplates with the addition of
14505// the ability to pass a context and additional request options.
14506//
14507// See ListJobTemplates for details on how to use this API operation.
14508//
14509// The context must be non-nil and will be used for request cancellation. If
14510// the context is nil a panic will occur. In the future the SDK may create
14511// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14512// for more information on using Contexts.
14513func (c *IoT) ListJobTemplatesWithContext(ctx aws.Context, input *ListJobTemplatesInput, opts ...request.Option) (*ListJobTemplatesOutput, error) {
14514	req, out := c.ListJobTemplatesRequest(input)
14515	req.SetContext(ctx)
14516	req.ApplyOptions(opts...)
14517	return out, req.Send()
14518}
14519
14520const opListJobs = "ListJobs"
14521
14522// ListJobsRequest generates a "aws/request.Request" representing the
14523// client's request for the ListJobs operation. The "output" return
14524// value will be populated with the request's response once the request completes
14525// successfully.
14526//
14527// Use "Send" method on the returned Request to send the API call to the service.
14528// the "output" return value is not valid until after Send returns without error.
14529//
14530// See ListJobs for more information on using the ListJobs
14531// API call, and error handling.
14532//
14533// This method is useful when you want to inject custom logic or configuration
14534// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14535//
14536//
14537//    // Example sending a request using the ListJobsRequest method.
14538//    req, resp := client.ListJobsRequest(params)
14539//
14540//    err := req.Send()
14541//    if err == nil { // resp is now filled
14542//        fmt.Println(resp)
14543//    }
14544func (c *IoT) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
14545	op := &request.Operation{
14546		Name:       opListJobs,
14547		HTTPMethod: "GET",
14548		HTTPPath:   "/jobs",
14549		Paginator: &request.Paginator{
14550			InputTokens:     []string{"nextToken"},
14551			OutputTokens:    []string{"nextToken"},
14552			LimitToken:      "maxResults",
14553			TruncationToken: "",
14554		},
14555	}
14556
14557	if input == nil {
14558		input = &ListJobsInput{}
14559	}
14560
14561	output = &ListJobsOutput{}
14562	req = c.newRequest(op, input, output)
14563	return
14564}
14565
14566// ListJobs API operation for AWS IoT.
14567//
14568// Lists jobs.
14569//
14570// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14571// with awserr.Error's Code and Message methods to get detailed information about
14572// the error.
14573//
14574// See the AWS API reference guide for AWS IoT's
14575// API operation ListJobs for usage and error information.
14576//
14577// Returned Error Types:
14578//   * InvalidRequestException
14579//   The request is not valid.
14580//
14581//   * ResourceNotFoundException
14582//   The specified resource does not exist.
14583//
14584//   * ThrottlingException
14585//   The rate exceeds the limit.
14586//
14587//   * ServiceUnavailableException
14588//   The service is temporarily unavailable.
14589//
14590func (c *IoT) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
14591	req, out := c.ListJobsRequest(input)
14592	return out, req.Send()
14593}
14594
14595// ListJobsWithContext is the same as ListJobs with the addition of
14596// the ability to pass a context and additional request options.
14597//
14598// See ListJobs for details on how to use this API operation.
14599//
14600// The context must be non-nil and will be used for request cancellation. If
14601// the context is nil a panic will occur. In the future the SDK may create
14602// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14603// for more information on using Contexts.
14604func (c *IoT) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
14605	req, out := c.ListJobsRequest(input)
14606	req.SetContext(ctx)
14607	req.ApplyOptions(opts...)
14608	return out, req.Send()
14609}
14610
14611// ListJobsPages iterates over the pages of a ListJobs operation,
14612// calling the "fn" function with the response data for each page. To stop
14613// iterating, return false from the fn function.
14614//
14615// See ListJobs method for more information on how to use this operation.
14616//
14617// Note: This operation can generate multiple requests to a service.
14618//
14619//    // Example iterating over at most 3 pages of a ListJobs operation.
14620//    pageNum := 0
14621//    err := client.ListJobsPages(params,
14622//        func(page *iot.ListJobsOutput, lastPage bool) bool {
14623//            pageNum++
14624//            fmt.Println(page)
14625//            return pageNum <= 3
14626//        })
14627//
14628func (c *IoT) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
14629	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
14630}
14631
14632// ListJobsPagesWithContext same as ListJobsPages except
14633// it takes a Context and allows setting request options on the pages.
14634//
14635// The context must be non-nil and will be used for request cancellation. If
14636// the context is nil a panic will occur. In the future the SDK may create
14637// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14638// for more information on using Contexts.
14639func (c *IoT) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
14640	p := request.Pagination{
14641		NewRequest: func() (*request.Request, error) {
14642			var inCpy *ListJobsInput
14643			if input != nil {
14644				tmp := *input
14645				inCpy = &tmp
14646			}
14647			req, _ := c.ListJobsRequest(inCpy)
14648			req.SetContext(ctx)
14649			req.ApplyOptions(opts...)
14650			return req, nil
14651		},
14652	}
14653
14654	for p.Next() {
14655		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
14656			break
14657		}
14658	}
14659
14660	return p.Err()
14661}
14662
14663const opListMitigationActions = "ListMitigationActions"
14664
14665// ListMitigationActionsRequest generates a "aws/request.Request" representing the
14666// client's request for the ListMitigationActions operation. The "output" return
14667// value will be populated with the request's response once the request completes
14668// successfully.
14669//
14670// Use "Send" method on the returned Request to send the API call to the service.
14671// the "output" return value is not valid until after Send returns without error.
14672//
14673// See ListMitigationActions for more information on using the ListMitigationActions
14674// API call, and error handling.
14675//
14676// This method is useful when you want to inject custom logic or configuration
14677// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14678//
14679//
14680//    // Example sending a request using the ListMitigationActionsRequest method.
14681//    req, resp := client.ListMitigationActionsRequest(params)
14682//
14683//    err := req.Send()
14684//    if err == nil { // resp is now filled
14685//        fmt.Println(resp)
14686//    }
14687func (c *IoT) ListMitigationActionsRequest(input *ListMitigationActionsInput) (req *request.Request, output *ListMitigationActionsOutput) {
14688	op := &request.Operation{
14689		Name:       opListMitigationActions,
14690		HTTPMethod: "GET",
14691		HTTPPath:   "/mitigationactions/actions",
14692		Paginator: &request.Paginator{
14693			InputTokens:     []string{"nextToken"},
14694			OutputTokens:    []string{"nextToken"},
14695			LimitToken:      "maxResults",
14696			TruncationToken: "",
14697		},
14698	}
14699
14700	if input == nil {
14701		input = &ListMitigationActionsInput{}
14702	}
14703
14704	output = &ListMitigationActionsOutput{}
14705	req = c.newRequest(op, input, output)
14706	return
14707}
14708
14709// ListMitigationActions API operation for AWS IoT.
14710//
14711// Gets a list of all mitigation actions that match the specified filter criteria.
14712//
14713// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14714// with awserr.Error's Code and Message methods to get detailed information about
14715// the error.
14716//
14717// See the AWS API reference guide for AWS IoT's
14718// API operation ListMitigationActions for usage and error information.
14719//
14720// Returned Error Types:
14721//   * InvalidRequestException
14722//   The request is not valid.
14723//
14724//   * ThrottlingException
14725//   The rate exceeds the limit.
14726//
14727//   * InternalFailureException
14728//   An unexpected error has occurred.
14729//
14730func (c *IoT) ListMitigationActions(input *ListMitigationActionsInput) (*ListMitigationActionsOutput, error) {
14731	req, out := c.ListMitigationActionsRequest(input)
14732	return out, req.Send()
14733}
14734
14735// ListMitigationActionsWithContext is the same as ListMitigationActions with the addition of
14736// the ability to pass a context and additional request options.
14737//
14738// See ListMitigationActions for details on how to use this API operation.
14739//
14740// The context must be non-nil and will be used for request cancellation. If
14741// the context is nil a panic will occur. In the future the SDK may create
14742// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14743// for more information on using Contexts.
14744func (c *IoT) ListMitigationActionsWithContext(ctx aws.Context, input *ListMitigationActionsInput, opts ...request.Option) (*ListMitigationActionsOutput, error) {
14745	req, out := c.ListMitigationActionsRequest(input)
14746	req.SetContext(ctx)
14747	req.ApplyOptions(opts...)
14748	return out, req.Send()
14749}
14750
14751// ListMitigationActionsPages iterates over the pages of a ListMitigationActions operation,
14752// calling the "fn" function with the response data for each page. To stop
14753// iterating, return false from the fn function.
14754//
14755// See ListMitigationActions method for more information on how to use this operation.
14756//
14757// Note: This operation can generate multiple requests to a service.
14758//
14759//    // Example iterating over at most 3 pages of a ListMitigationActions operation.
14760//    pageNum := 0
14761//    err := client.ListMitigationActionsPages(params,
14762//        func(page *iot.ListMitigationActionsOutput, lastPage bool) bool {
14763//            pageNum++
14764//            fmt.Println(page)
14765//            return pageNum <= 3
14766//        })
14767//
14768func (c *IoT) ListMitigationActionsPages(input *ListMitigationActionsInput, fn func(*ListMitigationActionsOutput, bool) bool) error {
14769	return c.ListMitigationActionsPagesWithContext(aws.BackgroundContext(), input, fn)
14770}
14771
14772// ListMitigationActionsPagesWithContext same as ListMitigationActionsPages except
14773// it takes a Context and allows setting request options on the pages.
14774//
14775// The context must be non-nil and will be used for request cancellation. If
14776// the context is nil a panic will occur. In the future the SDK may create
14777// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14778// for more information on using Contexts.
14779func (c *IoT) ListMitigationActionsPagesWithContext(ctx aws.Context, input *ListMitigationActionsInput, fn func(*ListMitigationActionsOutput, bool) bool, opts ...request.Option) error {
14780	p := request.Pagination{
14781		NewRequest: func() (*request.Request, error) {
14782			var inCpy *ListMitigationActionsInput
14783			if input != nil {
14784				tmp := *input
14785				inCpy = &tmp
14786			}
14787			req, _ := c.ListMitigationActionsRequest(inCpy)
14788			req.SetContext(ctx)
14789			req.ApplyOptions(opts...)
14790			return req, nil
14791		},
14792	}
14793
14794	for p.Next() {
14795		if !fn(p.Page().(*ListMitigationActionsOutput), !p.HasNextPage()) {
14796			break
14797		}
14798	}
14799
14800	return p.Err()
14801}
14802
14803const opListOTAUpdates = "ListOTAUpdates"
14804
14805// ListOTAUpdatesRequest generates a "aws/request.Request" representing the
14806// client's request for the ListOTAUpdates operation. The "output" return
14807// value will be populated with the request's response once the request completes
14808// successfully.
14809//
14810// Use "Send" method on the returned Request to send the API call to the service.
14811// the "output" return value is not valid until after Send returns without error.
14812//
14813// See ListOTAUpdates for more information on using the ListOTAUpdates
14814// API call, and error handling.
14815//
14816// This method is useful when you want to inject custom logic or configuration
14817// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14818//
14819//
14820//    // Example sending a request using the ListOTAUpdatesRequest method.
14821//    req, resp := client.ListOTAUpdatesRequest(params)
14822//
14823//    err := req.Send()
14824//    if err == nil { // resp is now filled
14825//        fmt.Println(resp)
14826//    }
14827func (c *IoT) ListOTAUpdatesRequest(input *ListOTAUpdatesInput) (req *request.Request, output *ListOTAUpdatesOutput) {
14828	op := &request.Operation{
14829		Name:       opListOTAUpdates,
14830		HTTPMethod: "GET",
14831		HTTPPath:   "/otaUpdates",
14832		Paginator: &request.Paginator{
14833			InputTokens:     []string{"nextToken"},
14834			OutputTokens:    []string{"nextToken"},
14835			LimitToken:      "maxResults",
14836			TruncationToken: "",
14837		},
14838	}
14839
14840	if input == nil {
14841		input = &ListOTAUpdatesInput{}
14842	}
14843
14844	output = &ListOTAUpdatesOutput{}
14845	req = c.newRequest(op, input, output)
14846	return
14847}
14848
14849// ListOTAUpdates API operation for AWS IoT.
14850//
14851// Lists OTA updates.
14852//
14853// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14854// with awserr.Error's Code and Message methods to get detailed information about
14855// the error.
14856//
14857// See the AWS API reference guide for AWS IoT's
14858// API operation ListOTAUpdates for usage and error information.
14859//
14860// Returned Error Types:
14861//   * InvalidRequestException
14862//   The request is not valid.
14863//
14864//   * ThrottlingException
14865//   The rate exceeds the limit.
14866//
14867//   * UnauthorizedException
14868//   You are not authorized to perform this operation.
14869//
14870//   * InternalFailureException
14871//   An unexpected error has occurred.
14872//
14873//   * ServiceUnavailableException
14874//   The service is temporarily unavailable.
14875//
14876func (c *IoT) ListOTAUpdates(input *ListOTAUpdatesInput) (*ListOTAUpdatesOutput, error) {
14877	req, out := c.ListOTAUpdatesRequest(input)
14878	return out, req.Send()
14879}
14880
14881// ListOTAUpdatesWithContext is the same as ListOTAUpdates with the addition of
14882// the ability to pass a context and additional request options.
14883//
14884// See ListOTAUpdates for details on how to use this API operation.
14885//
14886// The context must be non-nil and will be used for request cancellation. If
14887// the context is nil a panic will occur. In the future the SDK may create
14888// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14889// for more information on using Contexts.
14890func (c *IoT) ListOTAUpdatesWithContext(ctx aws.Context, input *ListOTAUpdatesInput, opts ...request.Option) (*ListOTAUpdatesOutput, error) {
14891	req, out := c.ListOTAUpdatesRequest(input)
14892	req.SetContext(ctx)
14893	req.ApplyOptions(opts...)
14894	return out, req.Send()
14895}
14896
14897// ListOTAUpdatesPages iterates over the pages of a ListOTAUpdates operation,
14898// calling the "fn" function with the response data for each page. To stop
14899// iterating, return false from the fn function.
14900//
14901// See ListOTAUpdates method for more information on how to use this operation.
14902//
14903// Note: This operation can generate multiple requests to a service.
14904//
14905//    // Example iterating over at most 3 pages of a ListOTAUpdates operation.
14906//    pageNum := 0
14907//    err := client.ListOTAUpdatesPages(params,
14908//        func(page *iot.ListOTAUpdatesOutput, lastPage bool) bool {
14909//            pageNum++
14910//            fmt.Println(page)
14911//            return pageNum <= 3
14912//        })
14913//
14914func (c *IoT) ListOTAUpdatesPages(input *ListOTAUpdatesInput, fn func(*ListOTAUpdatesOutput, bool) bool) error {
14915	return c.ListOTAUpdatesPagesWithContext(aws.BackgroundContext(), input, fn)
14916}
14917
14918// ListOTAUpdatesPagesWithContext same as ListOTAUpdatesPages except
14919// it takes a Context and allows setting request options on the pages.
14920//
14921// The context must be non-nil and will be used for request cancellation. If
14922// the context is nil a panic will occur. In the future the SDK may create
14923// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14924// for more information on using Contexts.
14925func (c *IoT) ListOTAUpdatesPagesWithContext(ctx aws.Context, input *ListOTAUpdatesInput, fn func(*ListOTAUpdatesOutput, bool) bool, opts ...request.Option) error {
14926	p := request.Pagination{
14927		NewRequest: func() (*request.Request, error) {
14928			var inCpy *ListOTAUpdatesInput
14929			if input != nil {
14930				tmp := *input
14931				inCpy = &tmp
14932			}
14933			req, _ := c.ListOTAUpdatesRequest(inCpy)
14934			req.SetContext(ctx)
14935			req.ApplyOptions(opts...)
14936			return req, nil
14937		},
14938	}
14939
14940	for p.Next() {
14941		if !fn(p.Page().(*ListOTAUpdatesOutput), !p.HasNextPage()) {
14942			break
14943		}
14944	}
14945
14946	return p.Err()
14947}
14948
14949const opListOutgoingCertificates = "ListOutgoingCertificates"
14950
14951// ListOutgoingCertificatesRequest generates a "aws/request.Request" representing the
14952// client's request for the ListOutgoingCertificates operation. The "output" return
14953// value will be populated with the request's response once the request completes
14954// successfully.
14955//
14956// Use "Send" method on the returned Request to send the API call to the service.
14957// the "output" return value is not valid until after Send returns without error.
14958//
14959// See ListOutgoingCertificates for more information on using the ListOutgoingCertificates
14960// API call, and error handling.
14961//
14962// This method is useful when you want to inject custom logic or configuration
14963// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14964//
14965//
14966//    // Example sending a request using the ListOutgoingCertificatesRequest method.
14967//    req, resp := client.ListOutgoingCertificatesRequest(params)
14968//
14969//    err := req.Send()
14970//    if err == nil { // resp is now filled
14971//        fmt.Println(resp)
14972//    }
14973func (c *IoT) ListOutgoingCertificatesRequest(input *ListOutgoingCertificatesInput) (req *request.Request, output *ListOutgoingCertificatesOutput) {
14974	op := &request.Operation{
14975		Name:       opListOutgoingCertificates,
14976		HTTPMethod: "GET",
14977		HTTPPath:   "/certificates-out-going",
14978		Paginator: &request.Paginator{
14979			InputTokens:     []string{"marker"},
14980			OutputTokens:    []string{"nextMarker"},
14981			LimitToken:      "pageSize",
14982			TruncationToken: "",
14983		},
14984	}
14985
14986	if input == nil {
14987		input = &ListOutgoingCertificatesInput{}
14988	}
14989
14990	output = &ListOutgoingCertificatesOutput{}
14991	req = c.newRequest(op, input, output)
14992	return
14993}
14994
14995// ListOutgoingCertificates API operation for AWS IoT.
14996//
14997// Lists certificates that are being transferred but not yet accepted.
14998//
14999// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15000// with awserr.Error's Code and Message methods to get detailed information about
15001// the error.
15002//
15003// See the AWS API reference guide for AWS IoT's
15004// API operation ListOutgoingCertificates for usage and error information.
15005//
15006// Returned Error Types:
15007//   * InvalidRequestException
15008//   The request is not valid.
15009//
15010//   * ThrottlingException
15011//   The rate exceeds the limit.
15012//
15013//   * UnauthorizedException
15014//   You are not authorized to perform this operation.
15015//
15016//   * ServiceUnavailableException
15017//   The service is temporarily unavailable.
15018//
15019//   * InternalFailureException
15020//   An unexpected error has occurred.
15021//
15022func (c *IoT) ListOutgoingCertificates(input *ListOutgoingCertificatesInput) (*ListOutgoingCertificatesOutput, error) {
15023	req, out := c.ListOutgoingCertificatesRequest(input)
15024	return out, req.Send()
15025}
15026
15027// ListOutgoingCertificatesWithContext is the same as ListOutgoingCertificates with the addition of
15028// the ability to pass a context and additional request options.
15029//
15030// See ListOutgoingCertificates for details on how to use this API operation.
15031//
15032// The context must be non-nil and will be used for request cancellation. If
15033// the context is nil a panic will occur. In the future the SDK may create
15034// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15035// for more information on using Contexts.
15036func (c *IoT) ListOutgoingCertificatesWithContext(ctx aws.Context, input *ListOutgoingCertificatesInput, opts ...request.Option) (*ListOutgoingCertificatesOutput, error) {
15037	req, out := c.ListOutgoingCertificatesRequest(input)
15038	req.SetContext(ctx)
15039	req.ApplyOptions(opts...)
15040	return out, req.Send()
15041}
15042
15043// ListOutgoingCertificatesPages iterates over the pages of a ListOutgoingCertificates operation,
15044// calling the "fn" function with the response data for each page. To stop
15045// iterating, return false from the fn function.
15046//
15047// See ListOutgoingCertificates method for more information on how to use this operation.
15048//
15049// Note: This operation can generate multiple requests to a service.
15050//
15051//    // Example iterating over at most 3 pages of a ListOutgoingCertificates operation.
15052//    pageNum := 0
15053//    err := client.ListOutgoingCertificatesPages(params,
15054//        func(page *iot.ListOutgoingCertificatesOutput, lastPage bool) bool {
15055//            pageNum++
15056//            fmt.Println(page)
15057//            return pageNum <= 3
15058//        })
15059//
15060func (c *IoT) ListOutgoingCertificatesPages(input *ListOutgoingCertificatesInput, fn func(*ListOutgoingCertificatesOutput, bool) bool) error {
15061	return c.ListOutgoingCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
15062}
15063
15064// ListOutgoingCertificatesPagesWithContext same as ListOutgoingCertificatesPages except
15065// it takes a Context and allows setting request options on the pages.
15066//
15067// The context must be non-nil and will be used for request cancellation. If
15068// the context is nil a panic will occur. In the future the SDK may create
15069// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15070// for more information on using Contexts.
15071func (c *IoT) ListOutgoingCertificatesPagesWithContext(ctx aws.Context, input *ListOutgoingCertificatesInput, fn func(*ListOutgoingCertificatesOutput, bool) bool, opts ...request.Option) error {
15072	p := request.Pagination{
15073		NewRequest: func() (*request.Request, error) {
15074			var inCpy *ListOutgoingCertificatesInput
15075			if input != nil {
15076				tmp := *input
15077				inCpy = &tmp
15078			}
15079			req, _ := c.ListOutgoingCertificatesRequest(inCpy)
15080			req.SetContext(ctx)
15081			req.ApplyOptions(opts...)
15082			return req, nil
15083		},
15084	}
15085
15086	for p.Next() {
15087		if !fn(p.Page().(*ListOutgoingCertificatesOutput), !p.HasNextPage()) {
15088			break
15089		}
15090	}
15091
15092	return p.Err()
15093}
15094
15095const opListPolicies = "ListPolicies"
15096
15097// ListPoliciesRequest generates a "aws/request.Request" representing the
15098// client's request for the ListPolicies operation. The "output" return
15099// value will be populated with the request's response once the request completes
15100// successfully.
15101//
15102// Use "Send" method on the returned Request to send the API call to the service.
15103// the "output" return value is not valid until after Send returns without error.
15104//
15105// See ListPolicies for more information on using the ListPolicies
15106// API call, and error handling.
15107//
15108// This method is useful when you want to inject custom logic or configuration
15109// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15110//
15111//
15112//    // Example sending a request using the ListPoliciesRequest method.
15113//    req, resp := client.ListPoliciesRequest(params)
15114//
15115//    err := req.Send()
15116//    if err == nil { // resp is now filled
15117//        fmt.Println(resp)
15118//    }
15119func (c *IoT) ListPoliciesRequest(input *ListPoliciesInput) (req *request.Request, output *ListPoliciesOutput) {
15120	op := &request.Operation{
15121		Name:       opListPolicies,
15122		HTTPMethod: "GET",
15123		HTTPPath:   "/policies",
15124		Paginator: &request.Paginator{
15125			InputTokens:     []string{"marker"},
15126			OutputTokens:    []string{"nextMarker"},
15127			LimitToken:      "pageSize",
15128			TruncationToken: "",
15129		},
15130	}
15131
15132	if input == nil {
15133		input = &ListPoliciesInput{}
15134	}
15135
15136	output = &ListPoliciesOutput{}
15137	req = c.newRequest(op, input, output)
15138	return
15139}
15140
15141// ListPolicies API operation for AWS IoT.
15142//
15143// Lists your policies.
15144//
15145// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15146// with awserr.Error's Code and Message methods to get detailed information about
15147// the error.
15148//
15149// See the AWS API reference guide for AWS IoT's
15150// API operation ListPolicies for usage and error information.
15151//
15152// Returned Error Types:
15153//   * InvalidRequestException
15154//   The request is not valid.
15155//
15156//   * ThrottlingException
15157//   The rate exceeds the limit.
15158//
15159//   * UnauthorizedException
15160//   You are not authorized to perform this operation.
15161//
15162//   * ServiceUnavailableException
15163//   The service is temporarily unavailable.
15164//
15165//   * InternalFailureException
15166//   An unexpected error has occurred.
15167//
15168func (c *IoT) ListPolicies(input *ListPoliciesInput) (*ListPoliciesOutput, error) {
15169	req, out := c.ListPoliciesRequest(input)
15170	return out, req.Send()
15171}
15172
15173// ListPoliciesWithContext is the same as ListPolicies with the addition of
15174// the ability to pass a context and additional request options.
15175//
15176// See ListPolicies for details on how to use this API operation.
15177//
15178// The context must be non-nil and will be used for request cancellation. If
15179// the context is nil a panic will occur. In the future the SDK may create
15180// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15181// for more information on using Contexts.
15182func (c *IoT) ListPoliciesWithContext(ctx aws.Context, input *ListPoliciesInput, opts ...request.Option) (*ListPoliciesOutput, error) {
15183	req, out := c.ListPoliciesRequest(input)
15184	req.SetContext(ctx)
15185	req.ApplyOptions(opts...)
15186	return out, req.Send()
15187}
15188
15189// ListPoliciesPages iterates over the pages of a ListPolicies operation,
15190// calling the "fn" function with the response data for each page. To stop
15191// iterating, return false from the fn function.
15192//
15193// See ListPolicies method for more information on how to use this operation.
15194//
15195// Note: This operation can generate multiple requests to a service.
15196//
15197//    // Example iterating over at most 3 pages of a ListPolicies operation.
15198//    pageNum := 0
15199//    err := client.ListPoliciesPages(params,
15200//        func(page *iot.ListPoliciesOutput, lastPage bool) bool {
15201//            pageNum++
15202//            fmt.Println(page)
15203//            return pageNum <= 3
15204//        })
15205//
15206func (c *IoT) ListPoliciesPages(input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool) error {
15207	return c.ListPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
15208}
15209
15210// ListPoliciesPagesWithContext same as ListPoliciesPages except
15211// it takes a Context and allows setting request options on the pages.
15212//
15213// The context must be non-nil and will be used for request cancellation. If
15214// the context is nil a panic will occur. In the future the SDK may create
15215// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15216// for more information on using Contexts.
15217func (c *IoT) ListPoliciesPagesWithContext(ctx aws.Context, input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool, opts ...request.Option) error {
15218	p := request.Pagination{
15219		NewRequest: func() (*request.Request, error) {
15220			var inCpy *ListPoliciesInput
15221			if input != nil {
15222				tmp := *input
15223				inCpy = &tmp
15224			}
15225			req, _ := c.ListPoliciesRequest(inCpy)
15226			req.SetContext(ctx)
15227			req.ApplyOptions(opts...)
15228			return req, nil
15229		},
15230	}
15231
15232	for p.Next() {
15233		if !fn(p.Page().(*ListPoliciesOutput), !p.HasNextPage()) {
15234			break
15235		}
15236	}
15237
15238	return p.Err()
15239}
15240
15241const opListPolicyPrincipals = "ListPolicyPrincipals"
15242
15243// ListPolicyPrincipalsRequest generates a "aws/request.Request" representing the
15244// client's request for the ListPolicyPrincipals operation. The "output" return
15245// value will be populated with the request's response once the request completes
15246// successfully.
15247//
15248// Use "Send" method on the returned Request to send the API call to the service.
15249// the "output" return value is not valid until after Send returns without error.
15250//
15251// See ListPolicyPrincipals for more information on using the ListPolicyPrincipals
15252// API call, and error handling.
15253//
15254// This method is useful when you want to inject custom logic or configuration
15255// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15256//
15257//
15258//    // Example sending a request using the ListPolicyPrincipalsRequest method.
15259//    req, resp := client.ListPolicyPrincipalsRequest(params)
15260//
15261//    err := req.Send()
15262//    if err == nil { // resp is now filled
15263//        fmt.Println(resp)
15264//    }
15265//
15266// Deprecated: ListPolicyPrincipals has been deprecated
15267func (c *IoT) ListPolicyPrincipalsRequest(input *ListPolicyPrincipalsInput) (req *request.Request, output *ListPolicyPrincipalsOutput) {
15268	if c.Client.Config.Logger != nil {
15269		c.Client.Config.Logger.Log("This operation, ListPolicyPrincipals, has been deprecated")
15270	}
15271	op := &request.Operation{
15272		Name:       opListPolicyPrincipals,
15273		HTTPMethod: "GET",
15274		HTTPPath:   "/policy-principals",
15275		Paginator: &request.Paginator{
15276			InputTokens:     []string{"marker"},
15277			OutputTokens:    []string{"nextMarker"},
15278			LimitToken:      "pageSize",
15279			TruncationToken: "",
15280		},
15281	}
15282
15283	if input == nil {
15284		input = &ListPolicyPrincipalsInput{}
15285	}
15286
15287	output = &ListPolicyPrincipalsOutput{}
15288	req = c.newRequest(op, input, output)
15289	return
15290}
15291
15292// ListPolicyPrincipals API operation for AWS IoT.
15293//
15294// Lists the principals associated with the specified policy.
15295//
15296// Note: This API is deprecated. Please use ListTargetsForPolicy instead.
15297//
15298// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15299// with awserr.Error's Code and Message methods to get detailed information about
15300// the error.
15301//
15302// See the AWS API reference guide for AWS IoT's
15303// API operation ListPolicyPrincipals for usage and error information.
15304//
15305// Returned Error Types:
15306//   * ResourceNotFoundException
15307//   The specified resource does not exist.
15308//
15309//   * InvalidRequestException
15310//   The request is not valid.
15311//
15312//   * ThrottlingException
15313//   The rate exceeds the limit.
15314//
15315//   * UnauthorizedException
15316//   You are not authorized to perform this operation.
15317//
15318//   * ServiceUnavailableException
15319//   The service is temporarily unavailable.
15320//
15321//   * InternalFailureException
15322//   An unexpected error has occurred.
15323//
15324//
15325// Deprecated: ListPolicyPrincipals has been deprecated
15326func (c *IoT) ListPolicyPrincipals(input *ListPolicyPrincipalsInput) (*ListPolicyPrincipalsOutput, error) {
15327	req, out := c.ListPolicyPrincipalsRequest(input)
15328	return out, req.Send()
15329}
15330
15331// ListPolicyPrincipalsWithContext is the same as ListPolicyPrincipals with the addition of
15332// the ability to pass a context and additional request options.
15333//
15334// See ListPolicyPrincipals for details on how to use this API operation.
15335//
15336// The context must be non-nil and will be used for request cancellation. If
15337// the context is nil a panic will occur. In the future the SDK may create
15338// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15339// for more information on using Contexts.
15340//
15341// Deprecated: ListPolicyPrincipalsWithContext has been deprecated
15342func (c *IoT) ListPolicyPrincipalsWithContext(ctx aws.Context, input *ListPolicyPrincipalsInput, opts ...request.Option) (*ListPolicyPrincipalsOutput, error) {
15343	req, out := c.ListPolicyPrincipalsRequest(input)
15344	req.SetContext(ctx)
15345	req.ApplyOptions(opts...)
15346	return out, req.Send()
15347}
15348
15349// ListPolicyPrincipalsPages iterates over the pages of a ListPolicyPrincipals operation,
15350// calling the "fn" function with the response data for each page. To stop
15351// iterating, return false from the fn function.
15352//
15353// See ListPolicyPrincipals method for more information on how to use this operation.
15354//
15355// Note: This operation can generate multiple requests to a service.
15356//
15357//    // Example iterating over at most 3 pages of a ListPolicyPrincipals operation.
15358//    pageNum := 0
15359//    err := client.ListPolicyPrincipalsPages(params,
15360//        func(page *iot.ListPolicyPrincipalsOutput, lastPage bool) bool {
15361//            pageNum++
15362//            fmt.Println(page)
15363//            return pageNum <= 3
15364//        })
15365//
15366//
15367// Deprecated: ListPolicyPrincipalsPages has been deprecated
15368func (c *IoT) ListPolicyPrincipalsPages(input *ListPolicyPrincipalsInput, fn func(*ListPolicyPrincipalsOutput, bool) bool) error {
15369	return c.ListPolicyPrincipalsPagesWithContext(aws.BackgroundContext(), input, fn)
15370}
15371
15372// ListPolicyPrincipalsPagesWithContext same as ListPolicyPrincipalsPages except
15373// it takes a Context and allows setting request options on the pages.
15374//
15375// The context must be non-nil and will be used for request cancellation. If
15376// the context is nil a panic will occur. In the future the SDK may create
15377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15378// for more information on using Contexts.
15379//
15380// Deprecated: ListPolicyPrincipalsPagesWithContext has been deprecated
15381func (c *IoT) ListPolicyPrincipalsPagesWithContext(ctx aws.Context, input *ListPolicyPrincipalsInput, fn func(*ListPolicyPrincipalsOutput, bool) bool, opts ...request.Option) error {
15382	p := request.Pagination{
15383		NewRequest: func() (*request.Request, error) {
15384			var inCpy *ListPolicyPrincipalsInput
15385			if input != nil {
15386				tmp := *input
15387				inCpy = &tmp
15388			}
15389			req, _ := c.ListPolicyPrincipalsRequest(inCpy)
15390			req.SetContext(ctx)
15391			req.ApplyOptions(opts...)
15392			return req, nil
15393		},
15394	}
15395
15396	for p.Next() {
15397		if !fn(p.Page().(*ListPolicyPrincipalsOutput), !p.HasNextPage()) {
15398			break
15399		}
15400	}
15401
15402	return p.Err()
15403}
15404
15405const opListPolicyVersions = "ListPolicyVersions"
15406
15407// ListPolicyVersionsRequest generates a "aws/request.Request" representing the
15408// client's request for the ListPolicyVersions operation. The "output" return
15409// value will be populated with the request's response once the request completes
15410// successfully.
15411//
15412// Use "Send" method on the returned Request to send the API call to the service.
15413// the "output" return value is not valid until after Send returns without error.
15414//
15415// See ListPolicyVersions for more information on using the ListPolicyVersions
15416// API call, and error handling.
15417//
15418// This method is useful when you want to inject custom logic or configuration
15419// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15420//
15421//
15422//    // Example sending a request using the ListPolicyVersionsRequest method.
15423//    req, resp := client.ListPolicyVersionsRequest(params)
15424//
15425//    err := req.Send()
15426//    if err == nil { // resp is now filled
15427//        fmt.Println(resp)
15428//    }
15429func (c *IoT) ListPolicyVersionsRequest(input *ListPolicyVersionsInput) (req *request.Request, output *ListPolicyVersionsOutput) {
15430	op := &request.Operation{
15431		Name:       opListPolicyVersions,
15432		HTTPMethod: "GET",
15433		HTTPPath:   "/policies/{policyName}/version",
15434	}
15435
15436	if input == nil {
15437		input = &ListPolicyVersionsInput{}
15438	}
15439
15440	output = &ListPolicyVersionsOutput{}
15441	req = c.newRequest(op, input, output)
15442	return
15443}
15444
15445// ListPolicyVersions API operation for AWS IoT.
15446//
15447// Lists the versions of the specified policy and identifies the default version.
15448//
15449// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15450// with awserr.Error's Code and Message methods to get detailed information about
15451// the error.
15452//
15453// See the AWS API reference guide for AWS IoT's
15454// API operation ListPolicyVersions for usage and error information.
15455//
15456// Returned Error Types:
15457//   * ResourceNotFoundException
15458//   The specified resource does not exist.
15459//
15460//   * InvalidRequestException
15461//   The request is not valid.
15462//
15463//   * ThrottlingException
15464//   The rate exceeds the limit.
15465//
15466//   * UnauthorizedException
15467//   You are not authorized to perform this operation.
15468//
15469//   * ServiceUnavailableException
15470//   The service is temporarily unavailable.
15471//
15472//   * InternalFailureException
15473//   An unexpected error has occurred.
15474//
15475func (c *IoT) ListPolicyVersions(input *ListPolicyVersionsInput) (*ListPolicyVersionsOutput, error) {
15476	req, out := c.ListPolicyVersionsRequest(input)
15477	return out, req.Send()
15478}
15479
15480// ListPolicyVersionsWithContext is the same as ListPolicyVersions with the addition of
15481// the ability to pass a context and additional request options.
15482//
15483// See ListPolicyVersions for details on how to use this API operation.
15484//
15485// The context must be non-nil and will be used for request cancellation. If
15486// the context is nil a panic will occur. In the future the SDK may create
15487// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15488// for more information on using Contexts.
15489func (c *IoT) ListPolicyVersionsWithContext(ctx aws.Context, input *ListPolicyVersionsInput, opts ...request.Option) (*ListPolicyVersionsOutput, error) {
15490	req, out := c.ListPolicyVersionsRequest(input)
15491	req.SetContext(ctx)
15492	req.ApplyOptions(opts...)
15493	return out, req.Send()
15494}
15495
15496const opListPrincipalPolicies = "ListPrincipalPolicies"
15497
15498// ListPrincipalPoliciesRequest generates a "aws/request.Request" representing the
15499// client's request for the ListPrincipalPolicies operation. The "output" return
15500// value will be populated with the request's response once the request completes
15501// successfully.
15502//
15503// Use "Send" method on the returned Request to send the API call to the service.
15504// the "output" return value is not valid until after Send returns without error.
15505//
15506// See ListPrincipalPolicies for more information on using the ListPrincipalPolicies
15507// API call, and error handling.
15508//
15509// This method is useful when you want to inject custom logic or configuration
15510// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15511//
15512//
15513//    // Example sending a request using the ListPrincipalPoliciesRequest method.
15514//    req, resp := client.ListPrincipalPoliciesRequest(params)
15515//
15516//    err := req.Send()
15517//    if err == nil { // resp is now filled
15518//        fmt.Println(resp)
15519//    }
15520//
15521// Deprecated: ListPrincipalPolicies has been deprecated
15522func (c *IoT) ListPrincipalPoliciesRequest(input *ListPrincipalPoliciesInput) (req *request.Request, output *ListPrincipalPoliciesOutput) {
15523	if c.Client.Config.Logger != nil {
15524		c.Client.Config.Logger.Log("This operation, ListPrincipalPolicies, has been deprecated")
15525	}
15526	op := &request.Operation{
15527		Name:       opListPrincipalPolicies,
15528		HTTPMethod: "GET",
15529		HTTPPath:   "/principal-policies",
15530		Paginator: &request.Paginator{
15531			InputTokens:     []string{"marker"},
15532			OutputTokens:    []string{"nextMarker"},
15533			LimitToken:      "pageSize",
15534			TruncationToken: "",
15535		},
15536	}
15537
15538	if input == nil {
15539		input = &ListPrincipalPoliciesInput{}
15540	}
15541
15542	output = &ListPrincipalPoliciesOutput{}
15543	req = c.newRequest(op, input, output)
15544	return
15545}
15546
15547// ListPrincipalPolicies API operation for AWS IoT.
15548//
15549// Lists the policies attached to the specified principal. If you use an Cognito
15550// identity, the ID must be in AmazonCognito Identity format (https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html#API_GetCredentialsForIdentity_RequestSyntax).
15551//
15552// Note: This API is deprecated. Please use ListAttachedPolicies instead.
15553//
15554// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15555// with awserr.Error's Code and Message methods to get detailed information about
15556// the error.
15557//
15558// See the AWS API reference guide for AWS IoT's
15559// API operation ListPrincipalPolicies for usage and error information.
15560//
15561// Returned Error Types:
15562//   * ResourceNotFoundException
15563//   The specified resource does not exist.
15564//
15565//   * InvalidRequestException
15566//   The request is not valid.
15567//
15568//   * ThrottlingException
15569//   The rate exceeds the limit.
15570//
15571//   * UnauthorizedException
15572//   You are not authorized to perform this operation.
15573//
15574//   * ServiceUnavailableException
15575//   The service is temporarily unavailable.
15576//
15577//   * InternalFailureException
15578//   An unexpected error has occurred.
15579//
15580//
15581// Deprecated: ListPrincipalPolicies has been deprecated
15582func (c *IoT) ListPrincipalPolicies(input *ListPrincipalPoliciesInput) (*ListPrincipalPoliciesOutput, error) {
15583	req, out := c.ListPrincipalPoliciesRequest(input)
15584	return out, req.Send()
15585}
15586
15587// ListPrincipalPoliciesWithContext is the same as ListPrincipalPolicies with the addition of
15588// the ability to pass a context and additional request options.
15589//
15590// See ListPrincipalPolicies for details on how to use this API operation.
15591//
15592// The context must be non-nil and will be used for request cancellation. If
15593// the context is nil a panic will occur. In the future the SDK may create
15594// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15595// for more information on using Contexts.
15596//
15597// Deprecated: ListPrincipalPoliciesWithContext has been deprecated
15598func (c *IoT) ListPrincipalPoliciesWithContext(ctx aws.Context, input *ListPrincipalPoliciesInput, opts ...request.Option) (*ListPrincipalPoliciesOutput, error) {
15599	req, out := c.ListPrincipalPoliciesRequest(input)
15600	req.SetContext(ctx)
15601	req.ApplyOptions(opts...)
15602	return out, req.Send()
15603}
15604
15605// ListPrincipalPoliciesPages iterates over the pages of a ListPrincipalPolicies operation,
15606// calling the "fn" function with the response data for each page. To stop
15607// iterating, return false from the fn function.
15608//
15609// See ListPrincipalPolicies method for more information on how to use this operation.
15610//
15611// Note: This operation can generate multiple requests to a service.
15612//
15613//    // Example iterating over at most 3 pages of a ListPrincipalPolicies operation.
15614//    pageNum := 0
15615//    err := client.ListPrincipalPoliciesPages(params,
15616//        func(page *iot.ListPrincipalPoliciesOutput, lastPage bool) bool {
15617//            pageNum++
15618//            fmt.Println(page)
15619//            return pageNum <= 3
15620//        })
15621//
15622//
15623// Deprecated: ListPrincipalPoliciesPages has been deprecated
15624func (c *IoT) ListPrincipalPoliciesPages(input *ListPrincipalPoliciesInput, fn func(*ListPrincipalPoliciesOutput, bool) bool) error {
15625	return c.ListPrincipalPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
15626}
15627
15628// ListPrincipalPoliciesPagesWithContext same as ListPrincipalPoliciesPages except
15629// it takes a Context and allows setting request options on the pages.
15630//
15631// The context must be non-nil and will be used for request cancellation. If
15632// the context is nil a panic will occur. In the future the SDK may create
15633// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15634// for more information on using Contexts.
15635//
15636// Deprecated: ListPrincipalPoliciesPagesWithContext has been deprecated
15637func (c *IoT) ListPrincipalPoliciesPagesWithContext(ctx aws.Context, input *ListPrincipalPoliciesInput, fn func(*ListPrincipalPoliciesOutput, bool) bool, opts ...request.Option) error {
15638	p := request.Pagination{
15639		NewRequest: func() (*request.Request, error) {
15640			var inCpy *ListPrincipalPoliciesInput
15641			if input != nil {
15642				tmp := *input
15643				inCpy = &tmp
15644			}
15645			req, _ := c.ListPrincipalPoliciesRequest(inCpy)
15646			req.SetContext(ctx)
15647			req.ApplyOptions(opts...)
15648			return req, nil
15649		},
15650	}
15651
15652	for p.Next() {
15653		if !fn(p.Page().(*ListPrincipalPoliciesOutput), !p.HasNextPage()) {
15654			break
15655		}
15656	}
15657
15658	return p.Err()
15659}
15660
15661const opListPrincipalThings = "ListPrincipalThings"
15662
15663// ListPrincipalThingsRequest generates a "aws/request.Request" representing the
15664// client's request for the ListPrincipalThings operation. The "output" return
15665// value will be populated with the request's response once the request completes
15666// successfully.
15667//
15668// Use "Send" method on the returned Request to send the API call to the service.
15669// the "output" return value is not valid until after Send returns without error.
15670//
15671// See ListPrincipalThings for more information on using the ListPrincipalThings
15672// API call, and error handling.
15673//
15674// This method is useful when you want to inject custom logic or configuration
15675// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15676//
15677//
15678//    // Example sending a request using the ListPrincipalThingsRequest method.
15679//    req, resp := client.ListPrincipalThingsRequest(params)
15680//
15681//    err := req.Send()
15682//    if err == nil { // resp is now filled
15683//        fmt.Println(resp)
15684//    }
15685func (c *IoT) ListPrincipalThingsRequest(input *ListPrincipalThingsInput) (req *request.Request, output *ListPrincipalThingsOutput) {
15686	op := &request.Operation{
15687		Name:       opListPrincipalThings,
15688		HTTPMethod: "GET",
15689		HTTPPath:   "/principals/things",
15690		Paginator: &request.Paginator{
15691			InputTokens:     []string{"nextToken"},
15692			OutputTokens:    []string{"nextToken"},
15693			LimitToken:      "maxResults",
15694			TruncationToken: "",
15695		},
15696	}
15697
15698	if input == nil {
15699		input = &ListPrincipalThingsInput{}
15700	}
15701
15702	output = &ListPrincipalThingsOutput{}
15703	req = c.newRequest(op, input, output)
15704	return
15705}
15706
15707// ListPrincipalThings API operation for AWS IoT.
15708//
15709// Lists the things associated with the specified principal. A principal can
15710// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
15711// or federated identities.
15712//
15713// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15714// with awserr.Error's Code and Message methods to get detailed information about
15715// the error.
15716//
15717// See the AWS API reference guide for AWS IoT's
15718// API operation ListPrincipalThings for usage and error information.
15719//
15720// Returned Error Types:
15721//   * InvalidRequestException
15722//   The request is not valid.
15723//
15724//   * ThrottlingException
15725//   The rate exceeds the limit.
15726//
15727//   * UnauthorizedException
15728//   You are not authorized to perform this operation.
15729//
15730//   * ServiceUnavailableException
15731//   The service is temporarily unavailable.
15732//
15733//   * InternalFailureException
15734//   An unexpected error has occurred.
15735//
15736//   * ResourceNotFoundException
15737//   The specified resource does not exist.
15738//
15739func (c *IoT) ListPrincipalThings(input *ListPrincipalThingsInput) (*ListPrincipalThingsOutput, error) {
15740	req, out := c.ListPrincipalThingsRequest(input)
15741	return out, req.Send()
15742}
15743
15744// ListPrincipalThingsWithContext is the same as ListPrincipalThings with the addition of
15745// the ability to pass a context and additional request options.
15746//
15747// See ListPrincipalThings for details on how to use this API operation.
15748//
15749// The context must be non-nil and will be used for request cancellation. If
15750// the context is nil a panic will occur. In the future the SDK may create
15751// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15752// for more information on using Contexts.
15753func (c *IoT) ListPrincipalThingsWithContext(ctx aws.Context, input *ListPrincipalThingsInput, opts ...request.Option) (*ListPrincipalThingsOutput, error) {
15754	req, out := c.ListPrincipalThingsRequest(input)
15755	req.SetContext(ctx)
15756	req.ApplyOptions(opts...)
15757	return out, req.Send()
15758}
15759
15760// ListPrincipalThingsPages iterates over the pages of a ListPrincipalThings operation,
15761// calling the "fn" function with the response data for each page. To stop
15762// iterating, return false from the fn function.
15763//
15764// See ListPrincipalThings method for more information on how to use this operation.
15765//
15766// Note: This operation can generate multiple requests to a service.
15767//
15768//    // Example iterating over at most 3 pages of a ListPrincipalThings operation.
15769//    pageNum := 0
15770//    err := client.ListPrincipalThingsPages(params,
15771//        func(page *iot.ListPrincipalThingsOutput, lastPage bool) bool {
15772//            pageNum++
15773//            fmt.Println(page)
15774//            return pageNum <= 3
15775//        })
15776//
15777func (c *IoT) ListPrincipalThingsPages(input *ListPrincipalThingsInput, fn func(*ListPrincipalThingsOutput, bool) bool) error {
15778	return c.ListPrincipalThingsPagesWithContext(aws.BackgroundContext(), input, fn)
15779}
15780
15781// ListPrincipalThingsPagesWithContext same as ListPrincipalThingsPages except
15782// it takes a Context and allows setting request options on the pages.
15783//
15784// The context must be non-nil and will be used for request cancellation. If
15785// the context is nil a panic will occur. In the future the SDK may create
15786// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15787// for more information on using Contexts.
15788func (c *IoT) ListPrincipalThingsPagesWithContext(ctx aws.Context, input *ListPrincipalThingsInput, fn func(*ListPrincipalThingsOutput, bool) bool, opts ...request.Option) error {
15789	p := request.Pagination{
15790		NewRequest: func() (*request.Request, error) {
15791			var inCpy *ListPrincipalThingsInput
15792			if input != nil {
15793				tmp := *input
15794				inCpy = &tmp
15795			}
15796			req, _ := c.ListPrincipalThingsRequest(inCpy)
15797			req.SetContext(ctx)
15798			req.ApplyOptions(opts...)
15799			return req, nil
15800		},
15801	}
15802
15803	for p.Next() {
15804		if !fn(p.Page().(*ListPrincipalThingsOutput), !p.HasNextPage()) {
15805			break
15806		}
15807	}
15808
15809	return p.Err()
15810}
15811
15812const opListProvisioningTemplateVersions = "ListProvisioningTemplateVersions"
15813
15814// ListProvisioningTemplateVersionsRequest generates a "aws/request.Request" representing the
15815// client's request for the ListProvisioningTemplateVersions operation. The "output" return
15816// value will be populated with the request's response once the request completes
15817// successfully.
15818//
15819// Use "Send" method on the returned Request to send the API call to the service.
15820// the "output" return value is not valid until after Send returns without error.
15821//
15822// See ListProvisioningTemplateVersions for more information on using the ListProvisioningTemplateVersions
15823// API call, and error handling.
15824//
15825// This method is useful when you want to inject custom logic or configuration
15826// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15827//
15828//
15829//    // Example sending a request using the ListProvisioningTemplateVersionsRequest method.
15830//    req, resp := client.ListProvisioningTemplateVersionsRequest(params)
15831//
15832//    err := req.Send()
15833//    if err == nil { // resp is now filled
15834//        fmt.Println(resp)
15835//    }
15836func (c *IoT) ListProvisioningTemplateVersionsRequest(input *ListProvisioningTemplateVersionsInput) (req *request.Request, output *ListProvisioningTemplateVersionsOutput) {
15837	op := &request.Operation{
15838		Name:       opListProvisioningTemplateVersions,
15839		HTTPMethod: "GET",
15840		HTTPPath:   "/provisioning-templates/{templateName}/versions",
15841		Paginator: &request.Paginator{
15842			InputTokens:     []string{"nextToken"},
15843			OutputTokens:    []string{"nextToken"},
15844			LimitToken:      "maxResults",
15845			TruncationToken: "",
15846		},
15847	}
15848
15849	if input == nil {
15850		input = &ListProvisioningTemplateVersionsInput{}
15851	}
15852
15853	output = &ListProvisioningTemplateVersionsOutput{}
15854	req = c.newRequest(op, input, output)
15855	return
15856}
15857
15858// ListProvisioningTemplateVersions API operation for AWS IoT.
15859//
15860// A list of fleet provisioning template versions.
15861//
15862// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15863// with awserr.Error's Code and Message methods to get detailed information about
15864// the error.
15865//
15866// See the AWS API reference guide for AWS IoT's
15867// API operation ListProvisioningTemplateVersions for usage and error information.
15868//
15869// Returned Error Types:
15870//   * InternalFailureException
15871//   An unexpected error has occurred.
15872//
15873//   * InvalidRequestException
15874//   The request is not valid.
15875//
15876//   * ThrottlingException
15877//   The rate exceeds the limit.
15878//
15879//   * ResourceNotFoundException
15880//   The specified resource does not exist.
15881//
15882//   * UnauthorizedException
15883//   You are not authorized to perform this operation.
15884//
15885func (c *IoT) ListProvisioningTemplateVersions(input *ListProvisioningTemplateVersionsInput) (*ListProvisioningTemplateVersionsOutput, error) {
15886	req, out := c.ListProvisioningTemplateVersionsRequest(input)
15887	return out, req.Send()
15888}
15889
15890// ListProvisioningTemplateVersionsWithContext is the same as ListProvisioningTemplateVersions with the addition of
15891// the ability to pass a context and additional request options.
15892//
15893// See ListProvisioningTemplateVersions for details on how to use this API operation.
15894//
15895// The context must be non-nil and will be used for request cancellation. If
15896// the context is nil a panic will occur. In the future the SDK may create
15897// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15898// for more information on using Contexts.
15899func (c *IoT) ListProvisioningTemplateVersionsWithContext(ctx aws.Context, input *ListProvisioningTemplateVersionsInput, opts ...request.Option) (*ListProvisioningTemplateVersionsOutput, error) {
15900	req, out := c.ListProvisioningTemplateVersionsRequest(input)
15901	req.SetContext(ctx)
15902	req.ApplyOptions(opts...)
15903	return out, req.Send()
15904}
15905
15906// ListProvisioningTemplateVersionsPages iterates over the pages of a ListProvisioningTemplateVersions operation,
15907// calling the "fn" function with the response data for each page. To stop
15908// iterating, return false from the fn function.
15909//
15910// See ListProvisioningTemplateVersions method for more information on how to use this operation.
15911//
15912// Note: This operation can generate multiple requests to a service.
15913//
15914//    // Example iterating over at most 3 pages of a ListProvisioningTemplateVersions operation.
15915//    pageNum := 0
15916//    err := client.ListProvisioningTemplateVersionsPages(params,
15917//        func(page *iot.ListProvisioningTemplateVersionsOutput, lastPage bool) bool {
15918//            pageNum++
15919//            fmt.Println(page)
15920//            return pageNum <= 3
15921//        })
15922//
15923func (c *IoT) ListProvisioningTemplateVersionsPages(input *ListProvisioningTemplateVersionsInput, fn func(*ListProvisioningTemplateVersionsOutput, bool) bool) error {
15924	return c.ListProvisioningTemplateVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
15925}
15926
15927// ListProvisioningTemplateVersionsPagesWithContext same as ListProvisioningTemplateVersionsPages except
15928// it takes a Context and allows setting request options on the pages.
15929//
15930// The context must be non-nil and will be used for request cancellation. If
15931// the context is nil a panic will occur. In the future the SDK may create
15932// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15933// for more information on using Contexts.
15934func (c *IoT) ListProvisioningTemplateVersionsPagesWithContext(ctx aws.Context, input *ListProvisioningTemplateVersionsInput, fn func(*ListProvisioningTemplateVersionsOutput, bool) bool, opts ...request.Option) error {
15935	p := request.Pagination{
15936		NewRequest: func() (*request.Request, error) {
15937			var inCpy *ListProvisioningTemplateVersionsInput
15938			if input != nil {
15939				tmp := *input
15940				inCpy = &tmp
15941			}
15942			req, _ := c.ListProvisioningTemplateVersionsRequest(inCpy)
15943			req.SetContext(ctx)
15944			req.ApplyOptions(opts...)
15945			return req, nil
15946		},
15947	}
15948
15949	for p.Next() {
15950		if !fn(p.Page().(*ListProvisioningTemplateVersionsOutput), !p.HasNextPage()) {
15951			break
15952		}
15953	}
15954
15955	return p.Err()
15956}
15957
15958const opListProvisioningTemplates = "ListProvisioningTemplates"
15959
15960// ListProvisioningTemplatesRequest generates a "aws/request.Request" representing the
15961// client's request for the ListProvisioningTemplates operation. The "output" return
15962// value will be populated with the request's response once the request completes
15963// successfully.
15964//
15965// Use "Send" method on the returned Request to send the API call to the service.
15966// the "output" return value is not valid until after Send returns without error.
15967//
15968// See ListProvisioningTemplates for more information on using the ListProvisioningTemplates
15969// API call, and error handling.
15970//
15971// This method is useful when you want to inject custom logic or configuration
15972// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15973//
15974//
15975//    // Example sending a request using the ListProvisioningTemplatesRequest method.
15976//    req, resp := client.ListProvisioningTemplatesRequest(params)
15977//
15978//    err := req.Send()
15979//    if err == nil { // resp is now filled
15980//        fmt.Println(resp)
15981//    }
15982func (c *IoT) ListProvisioningTemplatesRequest(input *ListProvisioningTemplatesInput) (req *request.Request, output *ListProvisioningTemplatesOutput) {
15983	op := &request.Operation{
15984		Name:       opListProvisioningTemplates,
15985		HTTPMethod: "GET",
15986		HTTPPath:   "/provisioning-templates",
15987		Paginator: &request.Paginator{
15988			InputTokens:     []string{"nextToken"},
15989			OutputTokens:    []string{"nextToken"},
15990			LimitToken:      "maxResults",
15991			TruncationToken: "",
15992		},
15993	}
15994
15995	if input == nil {
15996		input = &ListProvisioningTemplatesInput{}
15997	}
15998
15999	output = &ListProvisioningTemplatesOutput{}
16000	req = c.newRequest(op, input, output)
16001	return
16002}
16003
16004// ListProvisioningTemplates API operation for AWS IoT.
16005//
16006// Lists the fleet provisioning templates in your AWS account.
16007//
16008// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16009// with awserr.Error's Code and Message methods to get detailed information about
16010// the error.
16011//
16012// See the AWS API reference guide for AWS IoT's
16013// API operation ListProvisioningTemplates for usage and error information.
16014//
16015// Returned Error Types:
16016//   * InternalFailureException
16017//   An unexpected error has occurred.
16018//
16019//   * InvalidRequestException
16020//   The request is not valid.
16021//
16022//   * ThrottlingException
16023//   The rate exceeds the limit.
16024//
16025//   * UnauthorizedException
16026//   You are not authorized to perform this operation.
16027//
16028func (c *IoT) ListProvisioningTemplates(input *ListProvisioningTemplatesInput) (*ListProvisioningTemplatesOutput, error) {
16029	req, out := c.ListProvisioningTemplatesRequest(input)
16030	return out, req.Send()
16031}
16032
16033// ListProvisioningTemplatesWithContext is the same as ListProvisioningTemplates with the addition of
16034// the ability to pass a context and additional request options.
16035//
16036// See ListProvisioningTemplates for details on how to use this API operation.
16037//
16038// The context must be non-nil and will be used for request cancellation. If
16039// the context is nil a panic will occur. In the future the SDK may create
16040// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16041// for more information on using Contexts.
16042func (c *IoT) ListProvisioningTemplatesWithContext(ctx aws.Context, input *ListProvisioningTemplatesInput, opts ...request.Option) (*ListProvisioningTemplatesOutput, error) {
16043	req, out := c.ListProvisioningTemplatesRequest(input)
16044	req.SetContext(ctx)
16045	req.ApplyOptions(opts...)
16046	return out, req.Send()
16047}
16048
16049// ListProvisioningTemplatesPages iterates over the pages of a ListProvisioningTemplates operation,
16050// calling the "fn" function with the response data for each page. To stop
16051// iterating, return false from the fn function.
16052//
16053// See ListProvisioningTemplates method for more information on how to use this operation.
16054//
16055// Note: This operation can generate multiple requests to a service.
16056//
16057//    // Example iterating over at most 3 pages of a ListProvisioningTemplates operation.
16058//    pageNum := 0
16059//    err := client.ListProvisioningTemplatesPages(params,
16060//        func(page *iot.ListProvisioningTemplatesOutput, lastPage bool) bool {
16061//            pageNum++
16062//            fmt.Println(page)
16063//            return pageNum <= 3
16064//        })
16065//
16066func (c *IoT) ListProvisioningTemplatesPages(input *ListProvisioningTemplatesInput, fn func(*ListProvisioningTemplatesOutput, bool) bool) error {
16067	return c.ListProvisioningTemplatesPagesWithContext(aws.BackgroundContext(), input, fn)
16068}
16069
16070// ListProvisioningTemplatesPagesWithContext same as ListProvisioningTemplatesPages except
16071// it takes a Context and allows setting request options on the pages.
16072//
16073// The context must be non-nil and will be used for request cancellation. If
16074// the context is nil a panic will occur. In the future the SDK may create
16075// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16076// for more information on using Contexts.
16077func (c *IoT) ListProvisioningTemplatesPagesWithContext(ctx aws.Context, input *ListProvisioningTemplatesInput, fn func(*ListProvisioningTemplatesOutput, bool) bool, opts ...request.Option) error {
16078	p := request.Pagination{
16079		NewRequest: func() (*request.Request, error) {
16080			var inCpy *ListProvisioningTemplatesInput
16081			if input != nil {
16082				tmp := *input
16083				inCpy = &tmp
16084			}
16085			req, _ := c.ListProvisioningTemplatesRequest(inCpy)
16086			req.SetContext(ctx)
16087			req.ApplyOptions(opts...)
16088			return req, nil
16089		},
16090	}
16091
16092	for p.Next() {
16093		if !fn(p.Page().(*ListProvisioningTemplatesOutput), !p.HasNextPage()) {
16094			break
16095		}
16096	}
16097
16098	return p.Err()
16099}
16100
16101const opListRoleAliases = "ListRoleAliases"
16102
16103// ListRoleAliasesRequest generates a "aws/request.Request" representing the
16104// client's request for the ListRoleAliases operation. The "output" return
16105// value will be populated with the request's response once the request completes
16106// successfully.
16107//
16108// Use "Send" method on the returned Request to send the API call to the service.
16109// the "output" return value is not valid until after Send returns without error.
16110//
16111// See ListRoleAliases for more information on using the ListRoleAliases
16112// API call, and error handling.
16113//
16114// This method is useful when you want to inject custom logic or configuration
16115// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16116//
16117//
16118//    // Example sending a request using the ListRoleAliasesRequest method.
16119//    req, resp := client.ListRoleAliasesRequest(params)
16120//
16121//    err := req.Send()
16122//    if err == nil { // resp is now filled
16123//        fmt.Println(resp)
16124//    }
16125func (c *IoT) ListRoleAliasesRequest(input *ListRoleAliasesInput) (req *request.Request, output *ListRoleAliasesOutput) {
16126	op := &request.Operation{
16127		Name:       opListRoleAliases,
16128		HTTPMethod: "GET",
16129		HTTPPath:   "/role-aliases",
16130		Paginator: &request.Paginator{
16131			InputTokens:     []string{"marker"},
16132			OutputTokens:    []string{"nextMarker"},
16133			LimitToken:      "pageSize",
16134			TruncationToken: "",
16135		},
16136	}
16137
16138	if input == nil {
16139		input = &ListRoleAliasesInput{}
16140	}
16141
16142	output = &ListRoleAliasesOutput{}
16143	req = c.newRequest(op, input, output)
16144	return
16145}
16146
16147// ListRoleAliases API operation for AWS IoT.
16148//
16149// Lists the role aliases registered in your account.
16150//
16151// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16152// with awserr.Error's Code and Message methods to get detailed information about
16153// the error.
16154//
16155// See the AWS API reference guide for AWS IoT's
16156// API operation ListRoleAliases for usage and error information.
16157//
16158// Returned Error Types:
16159//   * InvalidRequestException
16160//   The request is not valid.
16161//
16162//   * ThrottlingException
16163//   The rate exceeds the limit.
16164//
16165//   * UnauthorizedException
16166//   You are not authorized to perform this operation.
16167//
16168//   * ServiceUnavailableException
16169//   The service is temporarily unavailable.
16170//
16171//   * InternalFailureException
16172//   An unexpected error has occurred.
16173//
16174func (c *IoT) ListRoleAliases(input *ListRoleAliasesInput) (*ListRoleAliasesOutput, error) {
16175	req, out := c.ListRoleAliasesRequest(input)
16176	return out, req.Send()
16177}
16178
16179// ListRoleAliasesWithContext is the same as ListRoleAliases with the addition of
16180// the ability to pass a context and additional request options.
16181//
16182// See ListRoleAliases for details on how to use this API operation.
16183//
16184// The context must be non-nil and will be used for request cancellation. If
16185// the context is nil a panic will occur. In the future the SDK may create
16186// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16187// for more information on using Contexts.
16188func (c *IoT) ListRoleAliasesWithContext(ctx aws.Context, input *ListRoleAliasesInput, opts ...request.Option) (*ListRoleAliasesOutput, error) {
16189	req, out := c.ListRoleAliasesRequest(input)
16190	req.SetContext(ctx)
16191	req.ApplyOptions(opts...)
16192	return out, req.Send()
16193}
16194
16195// ListRoleAliasesPages iterates over the pages of a ListRoleAliases operation,
16196// calling the "fn" function with the response data for each page. To stop
16197// iterating, return false from the fn function.
16198//
16199// See ListRoleAliases method for more information on how to use this operation.
16200//
16201// Note: This operation can generate multiple requests to a service.
16202//
16203//    // Example iterating over at most 3 pages of a ListRoleAliases operation.
16204//    pageNum := 0
16205//    err := client.ListRoleAliasesPages(params,
16206//        func(page *iot.ListRoleAliasesOutput, lastPage bool) bool {
16207//            pageNum++
16208//            fmt.Println(page)
16209//            return pageNum <= 3
16210//        })
16211//
16212func (c *IoT) ListRoleAliasesPages(input *ListRoleAliasesInput, fn func(*ListRoleAliasesOutput, bool) bool) error {
16213	return c.ListRoleAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
16214}
16215
16216// ListRoleAliasesPagesWithContext same as ListRoleAliasesPages except
16217// it takes a Context and allows setting request options on the pages.
16218//
16219// The context must be non-nil and will be used for request cancellation. If
16220// the context is nil a panic will occur. In the future the SDK may create
16221// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16222// for more information on using Contexts.
16223func (c *IoT) ListRoleAliasesPagesWithContext(ctx aws.Context, input *ListRoleAliasesInput, fn func(*ListRoleAliasesOutput, bool) bool, opts ...request.Option) error {
16224	p := request.Pagination{
16225		NewRequest: func() (*request.Request, error) {
16226			var inCpy *ListRoleAliasesInput
16227			if input != nil {
16228				tmp := *input
16229				inCpy = &tmp
16230			}
16231			req, _ := c.ListRoleAliasesRequest(inCpy)
16232			req.SetContext(ctx)
16233			req.ApplyOptions(opts...)
16234			return req, nil
16235		},
16236	}
16237
16238	for p.Next() {
16239		if !fn(p.Page().(*ListRoleAliasesOutput), !p.HasNextPage()) {
16240			break
16241		}
16242	}
16243
16244	return p.Err()
16245}
16246
16247const opListScheduledAudits = "ListScheduledAudits"
16248
16249// ListScheduledAuditsRequest generates a "aws/request.Request" representing the
16250// client's request for the ListScheduledAudits operation. The "output" return
16251// value will be populated with the request's response once the request completes
16252// successfully.
16253//
16254// Use "Send" method on the returned Request to send the API call to the service.
16255// the "output" return value is not valid until after Send returns without error.
16256//
16257// See ListScheduledAudits for more information on using the ListScheduledAudits
16258// API call, and error handling.
16259//
16260// This method is useful when you want to inject custom logic or configuration
16261// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16262//
16263//
16264//    // Example sending a request using the ListScheduledAuditsRequest method.
16265//    req, resp := client.ListScheduledAuditsRequest(params)
16266//
16267//    err := req.Send()
16268//    if err == nil { // resp is now filled
16269//        fmt.Println(resp)
16270//    }
16271func (c *IoT) ListScheduledAuditsRequest(input *ListScheduledAuditsInput) (req *request.Request, output *ListScheduledAuditsOutput) {
16272	op := &request.Operation{
16273		Name:       opListScheduledAudits,
16274		HTTPMethod: "GET",
16275		HTTPPath:   "/audit/scheduledaudits",
16276		Paginator: &request.Paginator{
16277			InputTokens:     []string{"nextToken"},
16278			OutputTokens:    []string{"nextToken"},
16279			LimitToken:      "maxResults",
16280			TruncationToken: "",
16281		},
16282	}
16283
16284	if input == nil {
16285		input = &ListScheduledAuditsInput{}
16286	}
16287
16288	output = &ListScheduledAuditsOutput{}
16289	req = c.newRequest(op, input, output)
16290	return
16291}
16292
16293// ListScheduledAudits API operation for AWS IoT.
16294//
16295// Lists all of your scheduled audits.
16296//
16297// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16298// with awserr.Error's Code and Message methods to get detailed information about
16299// the error.
16300//
16301// See the AWS API reference guide for AWS IoT's
16302// API operation ListScheduledAudits for usage and error information.
16303//
16304// Returned Error Types:
16305//   * InvalidRequestException
16306//   The request is not valid.
16307//
16308//   * ThrottlingException
16309//   The rate exceeds the limit.
16310//
16311//   * InternalFailureException
16312//   An unexpected error has occurred.
16313//
16314func (c *IoT) ListScheduledAudits(input *ListScheduledAuditsInput) (*ListScheduledAuditsOutput, error) {
16315	req, out := c.ListScheduledAuditsRequest(input)
16316	return out, req.Send()
16317}
16318
16319// ListScheduledAuditsWithContext is the same as ListScheduledAudits with the addition of
16320// the ability to pass a context and additional request options.
16321//
16322// See ListScheduledAudits for details on how to use this API operation.
16323//
16324// The context must be non-nil and will be used for request cancellation. If
16325// the context is nil a panic will occur. In the future the SDK may create
16326// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16327// for more information on using Contexts.
16328func (c *IoT) ListScheduledAuditsWithContext(ctx aws.Context, input *ListScheduledAuditsInput, opts ...request.Option) (*ListScheduledAuditsOutput, error) {
16329	req, out := c.ListScheduledAuditsRequest(input)
16330	req.SetContext(ctx)
16331	req.ApplyOptions(opts...)
16332	return out, req.Send()
16333}
16334
16335// ListScheduledAuditsPages iterates over the pages of a ListScheduledAudits operation,
16336// calling the "fn" function with the response data for each page. To stop
16337// iterating, return false from the fn function.
16338//
16339// See ListScheduledAudits method for more information on how to use this operation.
16340//
16341// Note: This operation can generate multiple requests to a service.
16342//
16343//    // Example iterating over at most 3 pages of a ListScheduledAudits operation.
16344//    pageNum := 0
16345//    err := client.ListScheduledAuditsPages(params,
16346//        func(page *iot.ListScheduledAuditsOutput, lastPage bool) bool {
16347//            pageNum++
16348//            fmt.Println(page)
16349//            return pageNum <= 3
16350//        })
16351//
16352func (c *IoT) ListScheduledAuditsPages(input *ListScheduledAuditsInput, fn func(*ListScheduledAuditsOutput, bool) bool) error {
16353	return c.ListScheduledAuditsPagesWithContext(aws.BackgroundContext(), input, fn)
16354}
16355
16356// ListScheduledAuditsPagesWithContext same as ListScheduledAuditsPages except
16357// it takes a Context and allows setting request options on the pages.
16358//
16359// The context must be non-nil and will be used for request cancellation. If
16360// the context is nil a panic will occur. In the future the SDK may create
16361// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16362// for more information on using Contexts.
16363func (c *IoT) ListScheduledAuditsPagesWithContext(ctx aws.Context, input *ListScheduledAuditsInput, fn func(*ListScheduledAuditsOutput, bool) bool, opts ...request.Option) error {
16364	p := request.Pagination{
16365		NewRequest: func() (*request.Request, error) {
16366			var inCpy *ListScheduledAuditsInput
16367			if input != nil {
16368				tmp := *input
16369				inCpy = &tmp
16370			}
16371			req, _ := c.ListScheduledAuditsRequest(inCpy)
16372			req.SetContext(ctx)
16373			req.ApplyOptions(opts...)
16374			return req, nil
16375		},
16376	}
16377
16378	for p.Next() {
16379		if !fn(p.Page().(*ListScheduledAuditsOutput), !p.HasNextPage()) {
16380			break
16381		}
16382	}
16383
16384	return p.Err()
16385}
16386
16387const opListSecurityProfiles = "ListSecurityProfiles"
16388
16389// ListSecurityProfilesRequest generates a "aws/request.Request" representing the
16390// client's request for the ListSecurityProfiles operation. The "output" return
16391// value will be populated with the request's response once the request completes
16392// successfully.
16393//
16394// Use "Send" method on the returned Request to send the API call to the service.
16395// the "output" return value is not valid until after Send returns without error.
16396//
16397// See ListSecurityProfiles for more information on using the ListSecurityProfiles
16398// API call, and error handling.
16399//
16400// This method is useful when you want to inject custom logic or configuration
16401// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16402//
16403//
16404//    // Example sending a request using the ListSecurityProfilesRequest method.
16405//    req, resp := client.ListSecurityProfilesRequest(params)
16406//
16407//    err := req.Send()
16408//    if err == nil { // resp is now filled
16409//        fmt.Println(resp)
16410//    }
16411func (c *IoT) ListSecurityProfilesRequest(input *ListSecurityProfilesInput) (req *request.Request, output *ListSecurityProfilesOutput) {
16412	op := &request.Operation{
16413		Name:       opListSecurityProfiles,
16414		HTTPMethod: "GET",
16415		HTTPPath:   "/security-profiles",
16416		Paginator: &request.Paginator{
16417			InputTokens:     []string{"nextToken"},
16418			OutputTokens:    []string{"nextToken"},
16419			LimitToken:      "maxResults",
16420			TruncationToken: "",
16421		},
16422	}
16423
16424	if input == nil {
16425		input = &ListSecurityProfilesInput{}
16426	}
16427
16428	output = &ListSecurityProfilesOutput{}
16429	req = c.newRequest(op, input, output)
16430	return
16431}
16432
16433// ListSecurityProfiles API operation for AWS IoT.
16434//
16435// Lists the Device Defender security profiles you've created. You can filter
16436// security profiles by dimension or custom metric.
16437//
16438// dimensionName and metricName cannot be used in the same request.
16439//
16440// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16441// with awserr.Error's Code and Message methods to get detailed information about
16442// the error.
16443//
16444// See the AWS API reference guide for AWS IoT's
16445// API operation ListSecurityProfiles for usage and error information.
16446//
16447// Returned Error Types:
16448//   * InvalidRequestException
16449//   The request is not valid.
16450//
16451//   * ThrottlingException
16452//   The rate exceeds the limit.
16453//
16454//   * InternalFailureException
16455//   An unexpected error has occurred.
16456//
16457//   * ResourceNotFoundException
16458//   The specified resource does not exist.
16459//
16460func (c *IoT) ListSecurityProfiles(input *ListSecurityProfilesInput) (*ListSecurityProfilesOutput, error) {
16461	req, out := c.ListSecurityProfilesRequest(input)
16462	return out, req.Send()
16463}
16464
16465// ListSecurityProfilesWithContext is the same as ListSecurityProfiles with the addition of
16466// the ability to pass a context and additional request options.
16467//
16468// See ListSecurityProfiles for details on how to use this API operation.
16469//
16470// The context must be non-nil and will be used for request cancellation. If
16471// the context is nil a panic will occur. In the future the SDK may create
16472// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16473// for more information on using Contexts.
16474func (c *IoT) ListSecurityProfilesWithContext(ctx aws.Context, input *ListSecurityProfilesInput, opts ...request.Option) (*ListSecurityProfilesOutput, error) {
16475	req, out := c.ListSecurityProfilesRequest(input)
16476	req.SetContext(ctx)
16477	req.ApplyOptions(opts...)
16478	return out, req.Send()
16479}
16480
16481// ListSecurityProfilesPages iterates over the pages of a ListSecurityProfiles operation,
16482// calling the "fn" function with the response data for each page. To stop
16483// iterating, return false from the fn function.
16484//
16485// See ListSecurityProfiles method for more information on how to use this operation.
16486//
16487// Note: This operation can generate multiple requests to a service.
16488//
16489//    // Example iterating over at most 3 pages of a ListSecurityProfiles operation.
16490//    pageNum := 0
16491//    err := client.ListSecurityProfilesPages(params,
16492//        func(page *iot.ListSecurityProfilesOutput, lastPage bool) bool {
16493//            pageNum++
16494//            fmt.Println(page)
16495//            return pageNum <= 3
16496//        })
16497//
16498func (c *IoT) ListSecurityProfilesPages(input *ListSecurityProfilesInput, fn func(*ListSecurityProfilesOutput, bool) bool) error {
16499	return c.ListSecurityProfilesPagesWithContext(aws.BackgroundContext(), input, fn)
16500}
16501
16502// ListSecurityProfilesPagesWithContext same as ListSecurityProfilesPages except
16503// it takes a Context and allows setting request options on the pages.
16504//
16505// The context must be non-nil and will be used for request cancellation. If
16506// the context is nil a panic will occur. In the future the SDK may create
16507// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16508// for more information on using Contexts.
16509func (c *IoT) ListSecurityProfilesPagesWithContext(ctx aws.Context, input *ListSecurityProfilesInput, fn func(*ListSecurityProfilesOutput, bool) bool, opts ...request.Option) error {
16510	p := request.Pagination{
16511		NewRequest: func() (*request.Request, error) {
16512			var inCpy *ListSecurityProfilesInput
16513			if input != nil {
16514				tmp := *input
16515				inCpy = &tmp
16516			}
16517			req, _ := c.ListSecurityProfilesRequest(inCpy)
16518			req.SetContext(ctx)
16519			req.ApplyOptions(opts...)
16520			return req, nil
16521		},
16522	}
16523
16524	for p.Next() {
16525		if !fn(p.Page().(*ListSecurityProfilesOutput), !p.HasNextPage()) {
16526			break
16527		}
16528	}
16529
16530	return p.Err()
16531}
16532
16533const opListSecurityProfilesForTarget = "ListSecurityProfilesForTarget"
16534
16535// ListSecurityProfilesForTargetRequest generates a "aws/request.Request" representing the
16536// client's request for the ListSecurityProfilesForTarget operation. The "output" return
16537// value will be populated with the request's response once the request completes
16538// successfully.
16539//
16540// Use "Send" method on the returned Request to send the API call to the service.
16541// the "output" return value is not valid until after Send returns without error.
16542//
16543// See ListSecurityProfilesForTarget for more information on using the ListSecurityProfilesForTarget
16544// API call, and error handling.
16545//
16546// This method is useful when you want to inject custom logic or configuration
16547// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16548//
16549//
16550//    // Example sending a request using the ListSecurityProfilesForTargetRequest method.
16551//    req, resp := client.ListSecurityProfilesForTargetRequest(params)
16552//
16553//    err := req.Send()
16554//    if err == nil { // resp is now filled
16555//        fmt.Println(resp)
16556//    }
16557func (c *IoT) ListSecurityProfilesForTargetRequest(input *ListSecurityProfilesForTargetInput) (req *request.Request, output *ListSecurityProfilesForTargetOutput) {
16558	op := &request.Operation{
16559		Name:       opListSecurityProfilesForTarget,
16560		HTTPMethod: "GET",
16561		HTTPPath:   "/security-profiles-for-target",
16562		Paginator: &request.Paginator{
16563			InputTokens:     []string{"nextToken"},
16564			OutputTokens:    []string{"nextToken"},
16565			LimitToken:      "maxResults",
16566			TruncationToken: "",
16567		},
16568	}
16569
16570	if input == nil {
16571		input = &ListSecurityProfilesForTargetInput{}
16572	}
16573
16574	output = &ListSecurityProfilesForTargetOutput{}
16575	req = c.newRequest(op, input, output)
16576	return
16577}
16578
16579// ListSecurityProfilesForTarget API operation for AWS IoT.
16580//
16581// Lists the Device Defender security profiles attached to a target (thing group).
16582//
16583// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16584// with awserr.Error's Code and Message methods to get detailed information about
16585// the error.
16586//
16587// See the AWS API reference guide for AWS IoT's
16588// API operation ListSecurityProfilesForTarget for usage and error information.
16589//
16590// Returned Error Types:
16591//   * InvalidRequestException
16592//   The request is not valid.
16593//
16594//   * ThrottlingException
16595//   The rate exceeds the limit.
16596//
16597//   * InternalFailureException
16598//   An unexpected error has occurred.
16599//
16600//   * ResourceNotFoundException
16601//   The specified resource does not exist.
16602//
16603func (c *IoT) ListSecurityProfilesForTarget(input *ListSecurityProfilesForTargetInput) (*ListSecurityProfilesForTargetOutput, error) {
16604	req, out := c.ListSecurityProfilesForTargetRequest(input)
16605	return out, req.Send()
16606}
16607
16608// ListSecurityProfilesForTargetWithContext is the same as ListSecurityProfilesForTarget with the addition of
16609// the ability to pass a context and additional request options.
16610//
16611// See ListSecurityProfilesForTarget for details on how to use this API operation.
16612//
16613// The context must be non-nil and will be used for request cancellation. If
16614// the context is nil a panic will occur. In the future the SDK may create
16615// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16616// for more information on using Contexts.
16617func (c *IoT) ListSecurityProfilesForTargetWithContext(ctx aws.Context, input *ListSecurityProfilesForTargetInput, opts ...request.Option) (*ListSecurityProfilesForTargetOutput, error) {
16618	req, out := c.ListSecurityProfilesForTargetRequest(input)
16619	req.SetContext(ctx)
16620	req.ApplyOptions(opts...)
16621	return out, req.Send()
16622}
16623
16624// ListSecurityProfilesForTargetPages iterates over the pages of a ListSecurityProfilesForTarget operation,
16625// calling the "fn" function with the response data for each page. To stop
16626// iterating, return false from the fn function.
16627//
16628// See ListSecurityProfilesForTarget method for more information on how to use this operation.
16629//
16630// Note: This operation can generate multiple requests to a service.
16631//
16632//    // Example iterating over at most 3 pages of a ListSecurityProfilesForTarget operation.
16633//    pageNum := 0
16634//    err := client.ListSecurityProfilesForTargetPages(params,
16635//        func(page *iot.ListSecurityProfilesForTargetOutput, lastPage bool) bool {
16636//            pageNum++
16637//            fmt.Println(page)
16638//            return pageNum <= 3
16639//        })
16640//
16641func (c *IoT) ListSecurityProfilesForTargetPages(input *ListSecurityProfilesForTargetInput, fn func(*ListSecurityProfilesForTargetOutput, bool) bool) error {
16642	return c.ListSecurityProfilesForTargetPagesWithContext(aws.BackgroundContext(), input, fn)
16643}
16644
16645// ListSecurityProfilesForTargetPagesWithContext same as ListSecurityProfilesForTargetPages except
16646// it takes a Context and allows setting request options on the pages.
16647//
16648// The context must be non-nil and will be used for request cancellation. If
16649// the context is nil a panic will occur. In the future the SDK may create
16650// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16651// for more information on using Contexts.
16652func (c *IoT) ListSecurityProfilesForTargetPagesWithContext(ctx aws.Context, input *ListSecurityProfilesForTargetInput, fn func(*ListSecurityProfilesForTargetOutput, bool) bool, opts ...request.Option) error {
16653	p := request.Pagination{
16654		NewRequest: func() (*request.Request, error) {
16655			var inCpy *ListSecurityProfilesForTargetInput
16656			if input != nil {
16657				tmp := *input
16658				inCpy = &tmp
16659			}
16660			req, _ := c.ListSecurityProfilesForTargetRequest(inCpy)
16661			req.SetContext(ctx)
16662			req.ApplyOptions(opts...)
16663			return req, nil
16664		},
16665	}
16666
16667	for p.Next() {
16668		if !fn(p.Page().(*ListSecurityProfilesForTargetOutput), !p.HasNextPage()) {
16669			break
16670		}
16671	}
16672
16673	return p.Err()
16674}
16675
16676const opListStreams = "ListStreams"
16677
16678// ListStreamsRequest generates a "aws/request.Request" representing the
16679// client's request for the ListStreams operation. The "output" return
16680// value will be populated with the request's response once the request completes
16681// successfully.
16682//
16683// Use "Send" method on the returned Request to send the API call to the service.
16684// the "output" return value is not valid until after Send returns without error.
16685//
16686// See ListStreams for more information on using the ListStreams
16687// API call, and error handling.
16688//
16689// This method is useful when you want to inject custom logic or configuration
16690// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16691//
16692//
16693//    // Example sending a request using the ListStreamsRequest method.
16694//    req, resp := client.ListStreamsRequest(params)
16695//
16696//    err := req.Send()
16697//    if err == nil { // resp is now filled
16698//        fmt.Println(resp)
16699//    }
16700func (c *IoT) ListStreamsRequest(input *ListStreamsInput) (req *request.Request, output *ListStreamsOutput) {
16701	op := &request.Operation{
16702		Name:       opListStreams,
16703		HTTPMethod: "GET",
16704		HTTPPath:   "/streams",
16705		Paginator: &request.Paginator{
16706			InputTokens:     []string{"nextToken"},
16707			OutputTokens:    []string{"nextToken"},
16708			LimitToken:      "maxResults",
16709			TruncationToken: "",
16710		},
16711	}
16712
16713	if input == nil {
16714		input = &ListStreamsInput{}
16715	}
16716
16717	output = &ListStreamsOutput{}
16718	req = c.newRequest(op, input, output)
16719	return
16720}
16721
16722// ListStreams API operation for AWS IoT.
16723//
16724// Lists all of the streams in your AWS account.
16725//
16726// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16727// with awserr.Error's Code and Message methods to get detailed information about
16728// the error.
16729//
16730// See the AWS API reference guide for AWS IoT's
16731// API operation ListStreams for usage and error information.
16732//
16733// Returned Error Types:
16734//   * InvalidRequestException
16735//   The request is not valid.
16736//
16737//   * ThrottlingException
16738//   The rate exceeds the limit.
16739//
16740//   * UnauthorizedException
16741//   You are not authorized to perform this operation.
16742//
16743//   * ServiceUnavailableException
16744//   The service is temporarily unavailable.
16745//
16746//   * InternalFailureException
16747//   An unexpected error has occurred.
16748//
16749func (c *IoT) ListStreams(input *ListStreamsInput) (*ListStreamsOutput, error) {
16750	req, out := c.ListStreamsRequest(input)
16751	return out, req.Send()
16752}
16753
16754// ListStreamsWithContext is the same as ListStreams with the addition of
16755// the ability to pass a context and additional request options.
16756//
16757// See ListStreams for details on how to use this API operation.
16758//
16759// The context must be non-nil and will be used for request cancellation. If
16760// the context is nil a panic will occur. In the future the SDK may create
16761// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16762// for more information on using Contexts.
16763func (c *IoT) ListStreamsWithContext(ctx aws.Context, input *ListStreamsInput, opts ...request.Option) (*ListStreamsOutput, error) {
16764	req, out := c.ListStreamsRequest(input)
16765	req.SetContext(ctx)
16766	req.ApplyOptions(opts...)
16767	return out, req.Send()
16768}
16769
16770// ListStreamsPages iterates over the pages of a ListStreams operation,
16771// calling the "fn" function with the response data for each page. To stop
16772// iterating, return false from the fn function.
16773//
16774// See ListStreams method for more information on how to use this operation.
16775//
16776// Note: This operation can generate multiple requests to a service.
16777//
16778//    // Example iterating over at most 3 pages of a ListStreams operation.
16779//    pageNum := 0
16780//    err := client.ListStreamsPages(params,
16781//        func(page *iot.ListStreamsOutput, lastPage bool) bool {
16782//            pageNum++
16783//            fmt.Println(page)
16784//            return pageNum <= 3
16785//        })
16786//
16787func (c *IoT) ListStreamsPages(input *ListStreamsInput, fn func(*ListStreamsOutput, bool) bool) error {
16788	return c.ListStreamsPagesWithContext(aws.BackgroundContext(), input, fn)
16789}
16790
16791// ListStreamsPagesWithContext same as ListStreamsPages except
16792// it takes a Context and allows setting request options on the pages.
16793//
16794// The context must be non-nil and will be used for request cancellation. If
16795// the context is nil a panic will occur. In the future the SDK may create
16796// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16797// for more information on using Contexts.
16798func (c *IoT) ListStreamsPagesWithContext(ctx aws.Context, input *ListStreamsInput, fn func(*ListStreamsOutput, bool) bool, opts ...request.Option) error {
16799	p := request.Pagination{
16800		NewRequest: func() (*request.Request, error) {
16801			var inCpy *ListStreamsInput
16802			if input != nil {
16803				tmp := *input
16804				inCpy = &tmp
16805			}
16806			req, _ := c.ListStreamsRequest(inCpy)
16807			req.SetContext(ctx)
16808			req.ApplyOptions(opts...)
16809			return req, nil
16810		},
16811	}
16812
16813	for p.Next() {
16814		if !fn(p.Page().(*ListStreamsOutput), !p.HasNextPage()) {
16815			break
16816		}
16817	}
16818
16819	return p.Err()
16820}
16821
16822const opListTagsForResource = "ListTagsForResource"
16823
16824// ListTagsForResourceRequest generates a "aws/request.Request" representing the
16825// client's request for the ListTagsForResource operation. The "output" return
16826// value will be populated with the request's response once the request completes
16827// successfully.
16828//
16829// Use "Send" method on the returned Request to send the API call to the service.
16830// the "output" return value is not valid until after Send returns without error.
16831//
16832// See ListTagsForResource for more information on using the ListTagsForResource
16833// API call, and error handling.
16834//
16835// This method is useful when you want to inject custom logic or configuration
16836// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16837//
16838//
16839//    // Example sending a request using the ListTagsForResourceRequest method.
16840//    req, resp := client.ListTagsForResourceRequest(params)
16841//
16842//    err := req.Send()
16843//    if err == nil { // resp is now filled
16844//        fmt.Println(resp)
16845//    }
16846func (c *IoT) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
16847	op := &request.Operation{
16848		Name:       opListTagsForResource,
16849		HTTPMethod: "GET",
16850		HTTPPath:   "/tags",
16851		Paginator: &request.Paginator{
16852			InputTokens:     []string{"nextToken"},
16853			OutputTokens:    []string{"nextToken"},
16854			LimitToken:      "",
16855			TruncationToken: "",
16856		},
16857	}
16858
16859	if input == nil {
16860		input = &ListTagsForResourceInput{}
16861	}
16862
16863	output = &ListTagsForResourceOutput{}
16864	req = c.newRequest(op, input, output)
16865	return
16866}
16867
16868// ListTagsForResource API operation for AWS IoT.
16869//
16870// Lists the tags (metadata) you have assigned to the resource.
16871//
16872// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16873// with awserr.Error's Code and Message methods to get detailed information about
16874// the error.
16875//
16876// See the AWS API reference guide for AWS IoT's
16877// API operation ListTagsForResource for usage and error information.
16878//
16879// Returned Error Types:
16880//   * InvalidRequestException
16881//   The request is not valid.
16882//
16883//   * InternalFailureException
16884//   An unexpected error has occurred.
16885//
16886//   * ResourceNotFoundException
16887//   The specified resource does not exist.
16888//
16889//   * ThrottlingException
16890//   The rate exceeds the limit.
16891//
16892func (c *IoT) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
16893	req, out := c.ListTagsForResourceRequest(input)
16894	return out, req.Send()
16895}
16896
16897// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
16898// the ability to pass a context and additional request options.
16899//
16900// See ListTagsForResource for details on how to use this API operation.
16901//
16902// The context must be non-nil and will be used for request cancellation. If
16903// the context is nil a panic will occur. In the future the SDK may create
16904// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16905// for more information on using Contexts.
16906func (c *IoT) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
16907	req, out := c.ListTagsForResourceRequest(input)
16908	req.SetContext(ctx)
16909	req.ApplyOptions(opts...)
16910	return out, req.Send()
16911}
16912
16913// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
16914// calling the "fn" function with the response data for each page. To stop
16915// iterating, return false from the fn function.
16916//
16917// See ListTagsForResource method for more information on how to use this operation.
16918//
16919// Note: This operation can generate multiple requests to a service.
16920//
16921//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
16922//    pageNum := 0
16923//    err := client.ListTagsForResourcePages(params,
16924//        func(page *iot.ListTagsForResourceOutput, lastPage bool) bool {
16925//            pageNum++
16926//            fmt.Println(page)
16927//            return pageNum <= 3
16928//        })
16929//
16930func (c *IoT) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
16931	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
16932}
16933
16934// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
16935// it takes a Context and allows setting request options on the pages.
16936//
16937// The context must be non-nil and will be used for request cancellation. If
16938// the context is nil a panic will occur. In the future the SDK may create
16939// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16940// for more information on using Contexts.
16941func (c *IoT) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
16942	p := request.Pagination{
16943		NewRequest: func() (*request.Request, error) {
16944			var inCpy *ListTagsForResourceInput
16945			if input != nil {
16946				tmp := *input
16947				inCpy = &tmp
16948			}
16949			req, _ := c.ListTagsForResourceRequest(inCpy)
16950			req.SetContext(ctx)
16951			req.ApplyOptions(opts...)
16952			return req, nil
16953		},
16954	}
16955
16956	for p.Next() {
16957		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
16958			break
16959		}
16960	}
16961
16962	return p.Err()
16963}
16964
16965const opListTargetsForPolicy = "ListTargetsForPolicy"
16966
16967// ListTargetsForPolicyRequest generates a "aws/request.Request" representing the
16968// client's request for the ListTargetsForPolicy operation. The "output" return
16969// value will be populated with the request's response once the request completes
16970// successfully.
16971//
16972// Use "Send" method on the returned Request to send the API call to the service.
16973// the "output" return value is not valid until after Send returns without error.
16974//
16975// See ListTargetsForPolicy for more information on using the ListTargetsForPolicy
16976// API call, and error handling.
16977//
16978// This method is useful when you want to inject custom logic or configuration
16979// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16980//
16981//
16982//    // Example sending a request using the ListTargetsForPolicyRequest method.
16983//    req, resp := client.ListTargetsForPolicyRequest(params)
16984//
16985//    err := req.Send()
16986//    if err == nil { // resp is now filled
16987//        fmt.Println(resp)
16988//    }
16989func (c *IoT) ListTargetsForPolicyRequest(input *ListTargetsForPolicyInput) (req *request.Request, output *ListTargetsForPolicyOutput) {
16990	op := &request.Operation{
16991		Name:       opListTargetsForPolicy,
16992		HTTPMethod: "POST",
16993		HTTPPath:   "/policy-targets/{policyName}",
16994		Paginator: &request.Paginator{
16995			InputTokens:     []string{"marker"},
16996			OutputTokens:    []string{"nextMarker"},
16997			LimitToken:      "pageSize",
16998			TruncationToken: "",
16999		},
17000	}
17001
17002	if input == nil {
17003		input = &ListTargetsForPolicyInput{}
17004	}
17005
17006	output = &ListTargetsForPolicyOutput{}
17007	req = c.newRequest(op, input, output)
17008	return
17009}
17010
17011// ListTargetsForPolicy API operation for AWS IoT.
17012//
17013// List targets for the specified policy.
17014//
17015// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17016// with awserr.Error's Code and Message methods to get detailed information about
17017// the error.
17018//
17019// See the AWS API reference guide for AWS IoT's
17020// API operation ListTargetsForPolicy for usage and error information.
17021//
17022// Returned Error Types:
17023//   * ResourceNotFoundException
17024//   The specified resource does not exist.
17025//
17026//   * InvalidRequestException
17027//   The request is not valid.
17028//
17029//   * ThrottlingException
17030//   The rate exceeds the limit.
17031//
17032//   * UnauthorizedException
17033//   You are not authorized to perform this operation.
17034//
17035//   * ServiceUnavailableException
17036//   The service is temporarily unavailable.
17037//
17038//   * InternalFailureException
17039//   An unexpected error has occurred.
17040//
17041//   * LimitExceededException
17042//   A limit has been exceeded.
17043//
17044func (c *IoT) ListTargetsForPolicy(input *ListTargetsForPolicyInput) (*ListTargetsForPolicyOutput, error) {
17045	req, out := c.ListTargetsForPolicyRequest(input)
17046	return out, req.Send()
17047}
17048
17049// ListTargetsForPolicyWithContext is the same as ListTargetsForPolicy with the addition of
17050// the ability to pass a context and additional request options.
17051//
17052// See ListTargetsForPolicy for details on how to use this API operation.
17053//
17054// The context must be non-nil and will be used for request cancellation. If
17055// the context is nil a panic will occur. In the future the SDK may create
17056// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17057// for more information on using Contexts.
17058func (c *IoT) ListTargetsForPolicyWithContext(ctx aws.Context, input *ListTargetsForPolicyInput, opts ...request.Option) (*ListTargetsForPolicyOutput, error) {
17059	req, out := c.ListTargetsForPolicyRequest(input)
17060	req.SetContext(ctx)
17061	req.ApplyOptions(opts...)
17062	return out, req.Send()
17063}
17064
17065// ListTargetsForPolicyPages iterates over the pages of a ListTargetsForPolicy operation,
17066// calling the "fn" function with the response data for each page. To stop
17067// iterating, return false from the fn function.
17068//
17069// See ListTargetsForPolicy method for more information on how to use this operation.
17070//
17071// Note: This operation can generate multiple requests to a service.
17072//
17073//    // Example iterating over at most 3 pages of a ListTargetsForPolicy operation.
17074//    pageNum := 0
17075//    err := client.ListTargetsForPolicyPages(params,
17076//        func(page *iot.ListTargetsForPolicyOutput, lastPage bool) bool {
17077//            pageNum++
17078//            fmt.Println(page)
17079//            return pageNum <= 3
17080//        })
17081//
17082func (c *IoT) ListTargetsForPolicyPages(input *ListTargetsForPolicyInput, fn func(*ListTargetsForPolicyOutput, bool) bool) error {
17083	return c.ListTargetsForPolicyPagesWithContext(aws.BackgroundContext(), input, fn)
17084}
17085
17086// ListTargetsForPolicyPagesWithContext same as ListTargetsForPolicyPages except
17087// it takes a Context and allows setting request options on the pages.
17088//
17089// The context must be non-nil and will be used for request cancellation. If
17090// the context is nil a panic will occur. In the future the SDK may create
17091// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17092// for more information on using Contexts.
17093func (c *IoT) ListTargetsForPolicyPagesWithContext(ctx aws.Context, input *ListTargetsForPolicyInput, fn func(*ListTargetsForPolicyOutput, bool) bool, opts ...request.Option) error {
17094	p := request.Pagination{
17095		NewRequest: func() (*request.Request, error) {
17096			var inCpy *ListTargetsForPolicyInput
17097			if input != nil {
17098				tmp := *input
17099				inCpy = &tmp
17100			}
17101			req, _ := c.ListTargetsForPolicyRequest(inCpy)
17102			req.SetContext(ctx)
17103			req.ApplyOptions(opts...)
17104			return req, nil
17105		},
17106	}
17107
17108	for p.Next() {
17109		if !fn(p.Page().(*ListTargetsForPolicyOutput), !p.HasNextPage()) {
17110			break
17111		}
17112	}
17113
17114	return p.Err()
17115}
17116
17117const opListTargetsForSecurityProfile = "ListTargetsForSecurityProfile"
17118
17119// ListTargetsForSecurityProfileRequest generates a "aws/request.Request" representing the
17120// client's request for the ListTargetsForSecurityProfile operation. The "output" return
17121// value will be populated with the request's response once the request completes
17122// successfully.
17123//
17124// Use "Send" method on the returned Request to send the API call to the service.
17125// the "output" return value is not valid until after Send returns without error.
17126//
17127// See ListTargetsForSecurityProfile for more information on using the ListTargetsForSecurityProfile
17128// API call, and error handling.
17129//
17130// This method is useful when you want to inject custom logic or configuration
17131// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17132//
17133//
17134//    // Example sending a request using the ListTargetsForSecurityProfileRequest method.
17135//    req, resp := client.ListTargetsForSecurityProfileRequest(params)
17136//
17137//    err := req.Send()
17138//    if err == nil { // resp is now filled
17139//        fmt.Println(resp)
17140//    }
17141func (c *IoT) ListTargetsForSecurityProfileRequest(input *ListTargetsForSecurityProfileInput) (req *request.Request, output *ListTargetsForSecurityProfileOutput) {
17142	op := &request.Operation{
17143		Name:       opListTargetsForSecurityProfile,
17144		HTTPMethod: "GET",
17145		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
17146		Paginator: &request.Paginator{
17147			InputTokens:     []string{"nextToken"},
17148			OutputTokens:    []string{"nextToken"},
17149			LimitToken:      "maxResults",
17150			TruncationToken: "",
17151		},
17152	}
17153
17154	if input == nil {
17155		input = &ListTargetsForSecurityProfileInput{}
17156	}
17157
17158	output = &ListTargetsForSecurityProfileOutput{}
17159	req = c.newRequest(op, input, output)
17160	return
17161}
17162
17163// ListTargetsForSecurityProfile API operation for AWS IoT.
17164//
17165// Lists the targets (thing groups) associated with a given Device Defender
17166// security profile.
17167//
17168// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17169// with awserr.Error's Code and Message methods to get detailed information about
17170// the error.
17171//
17172// See the AWS API reference guide for AWS IoT's
17173// API operation ListTargetsForSecurityProfile for usage and error information.
17174//
17175// Returned Error Types:
17176//   * InvalidRequestException
17177//   The request is not valid.
17178//
17179//   * ResourceNotFoundException
17180//   The specified resource does not exist.
17181//
17182//   * ThrottlingException
17183//   The rate exceeds the limit.
17184//
17185//   * InternalFailureException
17186//   An unexpected error has occurred.
17187//
17188func (c *IoT) ListTargetsForSecurityProfile(input *ListTargetsForSecurityProfileInput) (*ListTargetsForSecurityProfileOutput, error) {
17189	req, out := c.ListTargetsForSecurityProfileRequest(input)
17190	return out, req.Send()
17191}
17192
17193// ListTargetsForSecurityProfileWithContext is the same as ListTargetsForSecurityProfile with the addition of
17194// the ability to pass a context and additional request options.
17195//
17196// See ListTargetsForSecurityProfile for details on how to use this API operation.
17197//
17198// The context must be non-nil and will be used for request cancellation. If
17199// the context is nil a panic will occur. In the future the SDK may create
17200// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17201// for more information on using Contexts.
17202func (c *IoT) ListTargetsForSecurityProfileWithContext(ctx aws.Context, input *ListTargetsForSecurityProfileInput, opts ...request.Option) (*ListTargetsForSecurityProfileOutput, error) {
17203	req, out := c.ListTargetsForSecurityProfileRequest(input)
17204	req.SetContext(ctx)
17205	req.ApplyOptions(opts...)
17206	return out, req.Send()
17207}
17208
17209// ListTargetsForSecurityProfilePages iterates over the pages of a ListTargetsForSecurityProfile operation,
17210// calling the "fn" function with the response data for each page. To stop
17211// iterating, return false from the fn function.
17212//
17213// See ListTargetsForSecurityProfile method for more information on how to use this operation.
17214//
17215// Note: This operation can generate multiple requests to a service.
17216//
17217//    // Example iterating over at most 3 pages of a ListTargetsForSecurityProfile operation.
17218//    pageNum := 0
17219//    err := client.ListTargetsForSecurityProfilePages(params,
17220//        func(page *iot.ListTargetsForSecurityProfileOutput, lastPage bool) bool {
17221//            pageNum++
17222//            fmt.Println(page)
17223//            return pageNum <= 3
17224//        })
17225//
17226func (c *IoT) ListTargetsForSecurityProfilePages(input *ListTargetsForSecurityProfileInput, fn func(*ListTargetsForSecurityProfileOutput, bool) bool) error {
17227	return c.ListTargetsForSecurityProfilePagesWithContext(aws.BackgroundContext(), input, fn)
17228}
17229
17230// ListTargetsForSecurityProfilePagesWithContext same as ListTargetsForSecurityProfilePages except
17231// it takes a Context and allows setting request options on the pages.
17232//
17233// The context must be non-nil and will be used for request cancellation. If
17234// the context is nil a panic will occur. In the future the SDK may create
17235// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17236// for more information on using Contexts.
17237func (c *IoT) ListTargetsForSecurityProfilePagesWithContext(ctx aws.Context, input *ListTargetsForSecurityProfileInput, fn func(*ListTargetsForSecurityProfileOutput, bool) bool, opts ...request.Option) error {
17238	p := request.Pagination{
17239		NewRequest: func() (*request.Request, error) {
17240			var inCpy *ListTargetsForSecurityProfileInput
17241			if input != nil {
17242				tmp := *input
17243				inCpy = &tmp
17244			}
17245			req, _ := c.ListTargetsForSecurityProfileRequest(inCpy)
17246			req.SetContext(ctx)
17247			req.ApplyOptions(opts...)
17248			return req, nil
17249		},
17250	}
17251
17252	for p.Next() {
17253		if !fn(p.Page().(*ListTargetsForSecurityProfileOutput), !p.HasNextPage()) {
17254			break
17255		}
17256	}
17257
17258	return p.Err()
17259}
17260
17261const opListThingGroups = "ListThingGroups"
17262
17263// ListThingGroupsRequest generates a "aws/request.Request" representing the
17264// client's request for the ListThingGroups operation. The "output" return
17265// value will be populated with the request's response once the request completes
17266// successfully.
17267//
17268// Use "Send" method on the returned Request to send the API call to the service.
17269// the "output" return value is not valid until after Send returns without error.
17270//
17271// See ListThingGroups for more information on using the ListThingGroups
17272// API call, and error handling.
17273//
17274// This method is useful when you want to inject custom logic or configuration
17275// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17276//
17277//
17278//    // Example sending a request using the ListThingGroupsRequest method.
17279//    req, resp := client.ListThingGroupsRequest(params)
17280//
17281//    err := req.Send()
17282//    if err == nil { // resp is now filled
17283//        fmt.Println(resp)
17284//    }
17285func (c *IoT) ListThingGroupsRequest(input *ListThingGroupsInput) (req *request.Request, output *ListThingGroupsOutput) {
17286	op := &request.Operation{
17287		Name:       opListThingGroups,
17288		HTTPMethod: "GET",
17289		HTTPPath:   "/thing-groups",
17290		Paginator: &request.Paginator{
17291			InputTokens:     []string{"nextToken"},
17292			OutputTokens:    []string{"nextToken"},
17293			LimitToken:      "maxResults",
17294			TruncationToken: "",
17295		},
17296	}
17297
17298	if input == nil {
17299		input = &ListThingGroupsInput{}
17300	}
17301
17302	output = &ListThingGroupsOutput{}
17303	req = c.newRequest(op, input, output)
17304	return
17305}
17306
17307// ListThingGroups API operation for AWS IoT.
17308//
17309// List the thing groups in your account.
17310//
17311// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17312// with awserr.Error's Code and Message methods to get detailed information about
17313// the error.
17314//
17315// See the AWS API reference guide for AWS IoT's
17316// API operation ListThingGroups for usage and error information.
17317//
17318// Returned Error Types:
17319//   * InvalidRequestException
17320//   The request is not valid.
17321//
17322//   * InternalFailureException
17323//   An unexpected error has occurred.
17324//
17325//   * ResourceNotFoundException
17326//   The specified resource does not exist.
17327//
17328//   * ThrottlingException
17329//   The rate exceeds the limit.
17330//
17331func (c *IoT) ListThingGroups(input *ListThingGroupsInput) (*ListThingGroupsOutput, error) {
17332	req, out := c.ListThingGroupsRequest(input)
17333	return out, req.Send()
17334}
17335
17336// ListThingGroupsWithContext is the same as ListThingGroups with the addition of
17337// the ability to pass a context and additional request options.
17338//
17339// See ListThingGroups for details on how to use this API operation.
17340//
17341// The context must be non-nil and will be used for request cancellation. If
17342// the context is nil a panic will occur. In the future the SDK may create
17343// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17344// for more information on using Contexts.
17345func (c *IoT) ListThingGroupsWithContext(ctx aws.Context, input *ListThingGroupsInput, opts ...request.Option) (*ListThingGroupsOutput, error) {
17346	req, out := c.ListThingGroupsRequest(input)
17347	req.SetContext(ctx)
17348	req.ApplyOptions(opts...)
17349	return out, req.Send()
17350}
17351
17352// ListThingGroupsPages iterates over the pages of a ListThingGroups operation,
17353// calling the "fn" function with the response data for each page. To stop
17354// iterating, return false from the fn function.
17355//
17356// See ListThingGroups method for more information on how to use this operation.
17357//
17358// Note: This operation can generate multiple requests to a service.
17359//
17360//    // Example iterating over at most 3 pages of a ListThingGroups operation.
17361//    pageNum := 0
17362//    err := client.ListThingGroupsPages(params,
17363//        func(page *iot.ListThingGroupsOutput, lastPage bool) bool {
17364//            pageNum++
17365//            fmt.Println(page)
17366//            return pageNum <= 3
17367//        })
17368//
17369func (c *IoT) ListThingGroupsPages(input *ListThingGroupsInput, fn func(*ListThingGroupsOutput, bool) bool) error {
17370	return c.ListThingGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
17371}
17372
17373// ListThingGroupsPagesWithContext same as ListThingGroupsPages except
17374// it takes a Context and allows setting request options on the pages.
17375//
17376// The context must be non-nil and will be used for request cancellation. If
17377// the context is nil a panic will occur. In the future the SDK may create
17378// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17379// for more information on using Contexts.
17380func (c *IoT) ListThingGroupsPagesWithContext(ctx aws.Context, input *ListThingGroupsInput, fn func(*ListThingGroupsOutput, bool) bool, opts ...request.Option) error {
17381	p := request.Pagination{
17382		NewRequest: func() (*request.Request, error) {
17383			var inCpy *ListThingGroupsInput
17384			if input != nil {
17385				tmp := *input
17386				inCpy = &tmp
17387			}
17388			req, _ := c.ListThingGroupsRequest(inCpy)
17389			req.SetContext(ctx)
17390			req.ApplyOptions(opts...)
17391			return req, nil
17392		},
17393	}
17394
17395	for p.Next() {
17396		if !fn(p.Page().(*ListThingGroupsOutput), !p.HasNextPage()) {
17397			break
17398		}
17399	}
17400
17401	return p.Err()
17402}
17403
17404const opListThingGroupsForThing = "ListThingGroupsForThing"
17405
17406// ListThingGroupsForThingRequest generates a "aws/request.Request" representing the
17407// client's request for the ListThingGroupsForThing operation. The "output" return
17408// value will be populated with the request's response once the request completes
17409// successfully.
17410//
17411// Use "Send" method on the returned Request to send the API call to the service.
17412// the "output" return value is not valid until after Send returns without error.
17413//
17414// See ListThingGroupsForThing for more information on using the ListThingGroupsForThing
17415// API call, and error handling.
17416//
17417// This method is useful when you want to inject custom logic or configuration
17418// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17419//
17420//
17421//    // Example sending a request using the ListThingGroupsForThingRequest method.
17422//    req, resp := client.ListThingGroupsForThingRequest(params)
17423//
17424//    err := req.Send()
17425//    if err == nil { // resp is now filled
17426//        fmt.Println(resp)
17427//    }
17428func (c *IoT) ListThingGroupsForThingRequest(input *ListThingGroupsForThingInput) (req *request.Request, output *ListThingGroupsForThingOutput) {
17429	op := &request.Operation{
17430		Name:       opListThingGroupsForThing,
17431		HTTPMethod: "GET",
17432		HTTPPath:   "/things/{thingName}/thing-groups",
17433		Paginator: &request.Paginator{
17434			InputTokens:     []string{"nextToken"},
17435			OutputTokens:    []string{"nextToken"},
17436			LimitToken:      "maxResults",
17437			TruncationToken: "",
17438		},
17439	}
17440
17441	if input == nil {
17442		input = &ListThingGroupsForThingInput{}
17443	}
17444
17445	output = &ListThingGroupsForThingOutput{}
17446	req = c.newRequest(op, input, output)
17447	return
17448}
17449
17450// ListThingGroupsForThing API operation for AWS IoT.
17451//
17452// List the thing groups to which the specified thing belongs.
17453//
17454// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17455// with awserr.Error's Code and Message methods to get detailed information about
17456// the error.
17457//
17458// See the AWS API reference guide for AWS IoT's
17459// API operation ListThingGroupsForThing for usage and error information.
17460//
17461// Returned Error Types:
17462//   * InvalidRequestException
17463//   The request is not valid.
17464//
17465//   * InternalFailureException
17466//   An unexpected error has occurred.
17467//
17468//   * ResourceNotFoundException
17469//   The specified resource does not exist.
17470//
17471//   * ThrottlingException
17472//   The rate exceeds the limit.
17473//
17474func (c *IoT) ListThingGroupsForThing(input *ListThingGroupsForThingInput) (*ListThingGroupsForThingOutput, error) {
17475	req, out := c.ListThingGroupsForThingRequest(input)
17476	return out, req.Send()
17477}
17478
17479// ListThingGroupsForThingWithContext is the same as ListThingGroupsForThing with the addition of
17480// the ability to pass a context and additional request options.
17481//
17482// See ListThingGroupsForThing for details on how to use this API operation.
17483//
17484// The context must be non-nil and will be used for request cancellation. If
17485// the context is nil a panic will occur. In the future the SDK may create
17486// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17487// for more information on using Contexts.
17488func (c *IoT) ListThingGroupsForThingWithContext(ctx aws.Context, input *ListThingGroupsForThingInput, opts ...request.Option) (*ListThingGroupsForThingOutput, error) {
17489	req, out := c.ListThingGroupsForThingRequest(input)
17490	req.SetContext(ctx)
17491	req.ApplyOptions(opts...)
17492	return out, req.Send()
17493}
17494
17495// ListThingGroupsForThingPages iterates over the pages of a ListThingGroupsForThing operation,
17496// calling the "fn" function with the response data for each page. To stop
17497// iterating, return false from the fn function.
17498//
17499// See ListThingGroupsForThing method for more information on how to use this operation.
17500//
17501// Note: This operation can generate multiple requests to a service.
17502//
17503//    // Example iterating over at most 3 pages of a ListThingGroupsForThing operation.
17504//    pageNum := 0
17505//    err := client.ListThingGroupsForThingPages(params,
17506//        func(page *iot.ListThingGroupsForThingOutput, lastPage bool) bool {
17507//            pageNum++
17508//            fmt.Println(page)
17509//            return pageNum <= 3
17510//        })
17511//
17512func (c *IoT) ListThingGroupsForThingPages(input *ListThingGroupsForThingInput, fn func(*ListThingGroupsForThingOutput, bool) bool) error {
17513	return c.ListThingGroupsForThingPagesWithContext(aws.BackgroundContext(), input, fn)
17514}
17515
17516// ListThingGroupsForThingPagesWithContext same as ListThingGroupsForThingPages except
17517// it takes a Context and allows setting request options on the pages.
17518//
17519// The context must be non-nil and will be used for request cancellation. If
17520// the context is nil a panic will occur. In the future the SDK may create
17521// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17522// for more information on using Contexts.
17523func (c *IoT) ListThingGroupsForThingPagesWithContext(ctx aws.Context, input *ListThingGroupsForThingInput, fn func(*ListThingGroupsForThingOutput, bool) bool, opts ...request.Option) error {
17524	p := request.Pagination{
17525		NewRequest: func() (*request.Request, error) {
17526			var inCpy *ListThingGroupsForThingInput
17527			if input != nil {
17528				tmp := *input
17529				inCpy = &tmp
17530			}
17531			req, _ := c.ListThingGroupsForThingRequest(inCpy)
17532			req.SetContext(ctx)
17533			req.ApplyOptions(opts...)
17534			return req, nil
17535		},
17536	}
17537
17538	for p.Next() {
17539		if !fn(p.Page().(*ListThingGroupsForThingOutput), !p.HasNextPage()) {
17540			break
17541		}
17542	}
17543
17544	return p.Err()
17545}
17546
17547const opListThingPrincipals = "ListThingPrincipals"
17548
17549// ListThingPrincipalsRequest generates a "aws/request.Request" representing the
17550// client's request for the ListThingPrincipals operation. The "output" return
17551// value will be populated with the request's response once the request completes
17552// successfully.
17553//
17554// Use "Send" method on the returned Request to send the API call to the service.
17555// the "output" return value is not valid until after Send returns without error.
17556//
17557// See ListThingPrincipals for more information on using the ListThingPrincipals
17558// API call, and error handling.
17559//
17560// This method is useful when you want to inject custom logic or configuration
17561// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17562//
17563//
17564//    // Example sending a request using the ListThingPrincipalsRequest method.
17565//    req, resp := client.ListThingPrincipalsRequest(params)
17566//
17567//    err := req.Send()
17568//    if err == nil { // resp is now filled
17569//        fmt.Println(resp)
17570//    }
17571func (c *IoT) ListThingPrincipalsRequest(input *ListThingPrincipalsInput) (req *request.Request, output *ListThingPrincipalsOutput) {
17572	op := &request.Operation{
17573		Name:       opListThingPrincipals,
17574		HTTPMethod: "GET",
17575		HTTPPath:   "/things/{thingName}/principals",
17576		Paginator: &request.Paginator{
17577			InputTokens:     []string{"nextToken"},
17578			OutputTokens:    []string{"nextToken"},
17579			LimitToken:      "maxResults",
17580			TruncationToken: "",
17581		},
17582	}
17583
17584	if input == nil {
17585		input = &ListThingPrincipalsInput{}
17586	}
17587
17588	output = &ListThingPrincipalsOutput{}
17589	req = c.newRequest(op, input, output)
17590	return
17591}
17592
17593// ListThingPrincipals API operation for AWS IoT.
17594//
17595// Lists the principals associated with the specified thing. A principal can
17596// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
17597// or federated identities.
17598//
17599// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17600// with awserr.Error's Code and Message methods to get detailed information about
17601// the error.
17602//
17603// See the AWS API reference guide for AWS IoT's
17604// API operation ListThingPrincipals for usage and error information.
17605//
17606// Returned Error Types:
17607//   * InvalidRequestException
17608//   The request is not valid.
17609//
17610//   * ThrottlingException
17611//   The rate exceeds the limit.
17612//
17613//   * UnauthorizedException
17614//   You are not authorized to perform this operation.
17615//
17616//   * ServiceUnavailableException
17617//   The service is temporarily unavailable.
17618//
17619//   * InternalFailureException
17620//   An unexpected error has occurred.
17621//
17622//   * ResourceNotFoundException
17623//   The specified resource does not exist.
17624//
17625func (c *IoT) ListThingPrincipals(input *ListThingPrincipalsInput) (*ListThingPrincipalsOutput, error) {
17626	req, out := c.ListThingPrincipalsRequest(input)
17627	return out, req.Send()
17628}
17629
17630// ListThingPrincipalsWithContext is the same as ListThingPrincipals with the addition of
17631// the ability to pass a context and additional request options.
17632//
17633// See ListThingPrincipals for details on how to use this API operation.
17634//
17635// The context must be non-nil and will be used for request cancellation. If
17636// the context is nil a panic will occur. In the future the SDK may create
17637// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17638// for more information on using Contexts.
17639func (c *IoT) ListThingPrincipalsWithContext(ctx aws.Context, input *ListThingPrincipalsInput, opts ...request.Option) (*ListThingPrincipalsOutput, error) {
17640	req, out := c.ListThingPrincipalsRequest(input)
17641	req.SetContext(ctx)
17642	req.ApplyOptions(opts...)
17643	return out, req.Send()
17644}
17645
17646// ListThingPrincipalsPages iterates over the pages of a ListThingPrincipals operation,
17647// calling the "fn" function with the response data for each page. To stop
17648// iterating, return false from the fn function.
17649//
17650// See ListThingPrincipals method for more information on how to use this operation.
17651//
17652// Note: This operation can generate multiple requests to a service.
17653//
17654//    // Example iterating over at most 3 pages of a ListThingPrincipals operation.
17655//    pageNum := 0
17656//    err := client.ListThingPrincipalsPages(params,
17657//        func(page *iot.ListThingPrincipalsOutput, lastPage bool) bool {
17658//            pageNum++
17659//            fmt.Println(page)
17660//            return pageNum <= 3
17661//        })
17662//
17663func (c *IoT) ListThingPrincipalsPages(input *ListThingPrincipalsInput, fn func(*ListThingPrincipalsOutput, bool) bool) error {
17664	return c.ListThingPrincipalsPagesWithContext(aws.BackgroundContext(), input, fn)
17665}
17666
17667// ListThingPrincipalsPagesWithContext same as ListThingPrincipalsPages except
17668// it takes a Context and allows setting request options on the pages.
17669//
17670// The context must be non-nil and will be used for request cancellation. If
17671// the context is nil a panic will occur. In the future the SDK may create
17672// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17673// for more information on using Contexts.
17674func (c *IoT) ListThingPrincipalsPagesWithContext(ctx aws.Context, input *ListThingPrincipalsInput, fn func(*ListThingPrincipalsOutput, bool) bool, opts ...request.Option) error {
17675	p := request.Pagination{
17676		NewRequest: func() (*request.Request, error) {
17677			var inCpy *ListThingPrincipalsInput
17678			if input != nil {
17679				tmp := *input
17680				inCpy = &tmp
17681			}
17682			req, _ := c.ListThingPrincipalsRequest(inCpy)
17683			req.SetContext(ctx)
17684			req.ApplyOptions(opts...)
17685			return req, nil
17686		},
17687	}
17688
17689	for p.Next() {
17690		if !fn(p.Page().(*ListThingPrincipalsOutput), !p.HasNextPage()) {
17691			break
17692		}
17693	}
17694
17695	return p.Err()
17696}
17697
17698const opListThingRegistrationTaskReports = "ListThingRegistrationTaskReports"
17699
17700// ListThingRegistrationTaskReportsRequest generates a "aws/request.Request" representing the
17701// client's request for the ListThingRegistrationTaskReports operation. The "output" return
17702// value will be populated with the request's response once the request completes
17703// successfully.
17704//
17705// Use "Send" method on the returned Request to send the API call to the service.
17706// the "output" return value is not valid until after Send returns without error.
17707//
17708// See ListThingRegistrationTaskReports for more information on using the ListThingRegistrationTaskReports
17709// API call, and error handling.
17710//
17711// This method is useful when you want to inject custom logic or configuration
17712// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17713//
17714//
17715//    // Example sending a request using the ListThingRegistrationTaskReportsRequest method.
17716//    req, resp := client.ListThingRegistrationTaskReportsRequest(params)
17717//
17718//    err := req.Send()
17719//    if err == nil { // resp is now filled
17720//        fmt.Println(resp)
17721//    }
17722func (c *IoT) ListThingRegistrationTaskReportsRequest(input *ListThingRegistrationTaskReportsInput) (req *request.Request, output *ListThingRegistrationTaskReportsOutput) {
17723	op := &request.Operation{
17724		Name:       opListThingRegistrationTaskReports,
17725		HTTPMethod: "GET",
17726		HTTPPath:   "/thing-registration-tasks/{taskId}/reports",
17727		Paginator: &request.Paginator{
17728			InputTokens:     []string{"nextToken"},
17729			OutputTokens:    []string{"nextToken"},
17730			LimitToken:      "maxResults",
17731			TruncationToken: "",
17732		},
17733	}
17734
17735	if input == nil {
17736		input = &ListThingRegistrationTaskReportsInput{}
17737	}
17738
17739	output = &ListThingRegistrationTaskReportsOutput{}
17740	req = c.newRequest(op, input, output)
17741	return
17742}
17743
17744// ListThingRegistrationTaskReports API operation for AWS IoT.
17745//
17746// Information about the thing registration tasks.
17747//
17748// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17749// with awserr.Error's Code and Message methods to get detailed information about
17750// the error.
17751//
17752// See the AWS API reference guide for AWS IoT's
17753// API operation ListThingRegistrationTaskReports for usage and error information.
17754//
17755// Returned Error Types:
17756//   * InvalidRequestException
17757//   The request is not valid.
17758//
17759//   * ThrottlingException
17760//   The rate exceeds the limit.
17761//
17762//   * UnauthorizedException
17763//   You are not authorized to perform this operation.
17764//
17765//   * InternalFailureException
17766//   An unexpected error has occurred.
17767//
17768func (c *IoT) ListThingRegistrationTaskReports(input *ListThingRegistrationTaskReportsInput) (*ListThingRegistrationTaskReportsOutput, error) {
17769	req, out := c.ListThingRegistrationTaskReportsRequest(input)
17770	return out, req.Send()
17771}
17772
17773// ListThingRegistrationTaskReportsWithContext is the same as ListThingRegistrationTaskReports with the addition of
17774// the ability to pass a context and additional request options.
17775//
17776// See ListThingRegistrationTaskReports for details on how to use this API operation.
17777//
17778// The context must be non-nil and will be used for request cancellation. If
17779// the context is nil a panic will occur. In the future the SDK may create
17780// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17781// for more information on using Contexts.
17782func (c *IoT) ListThingRegistrationTaskReportsWithContext(ctx aws.Context, input *ListThingRegistrationTaskReportsInput, opts ...request.Option) (*ListThingRegistrationTaskReportsOutput, error) {
17783	req, out := c.ListThingRegistrationTaskReportsRequest(input)
17784	req.SetContext(ctx)
17785	req.ApplyOptions(opts...)
17786	return out, req.Send()
17787}
17788
17789// ListThingRegistrationTaskReportsPages iterates over the pages of a ListThingRegistrationTaskReports operation,
17790// calling the "fn" function with the response data for each page. To stop
17791// iterating, return false from the fn function.
17792//
17793// See ListThingRegistrationTaskReports method for more information on how to use this operation.
17794//
17795// Note: This operation can generate multiple requests to a service.
17796//
17797//    // Example iterating over at most 3 pages of a ListThingRegistrationTaskReports operation.
17798//    pageNum := 0
17799//    err := client.ListThingRegistrationTaskReportsPages(params,
17800//        func(page *iot.ListThingRegistrationTaskReportsOutput, lastPage bool) bool {
17801//            pageNum++
17802//            fmt.Println(page)
17803//            return pageNum <= 3
17804//        })
17805//
17806func (c *IoT) ListThingRegistrationTaskReportsPages(input *ListThingRegistrationTaskReportsInput, fn func(*ListThingRegistrationTaskReportsOutput, bool) bool) error {
17807	return c.ListThingRegistrationTaskReportsPagesWithContext(aws.BackgroundContext(), input, fn)
17808}
17809
17810// ListThingRegistrationTaskReportsPagesWithContext same as ListThingRegistrationTaskReportsPages except
17811// it takes a Context and allows setting request options on the pages.
17812//
17813// The context must be non-nil and will be used for request cancellation. If
17814// the context is nil a panic will occur. In the future the SDK may create
17815// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17816// for more information on using Contexts.
17817func (c *IoT) ListThingRegistrationTaskReportsPagesWithContext(ctx aws.Context, input *ListThingRegistrationTaskReportsInput, fn func(*ListThingRegistrationTaskReportsOutput, bool) bool, opts ...request.Option) error {
17818	p := request.Pagination{
17819		NewRequest: func() (*request.Request, error) {
17820			var inCpy *ListThingRegistrationTaskReportsInput
17821			if input != nil {
17822				tmp := *input
17823				inCpy = &tmp
17824			}
17825			req, _ := c.ListThingRegistrationTaskReportsRequest(inCpy)
17826			req.SetContext(ctx)
17827			req.ApplyOptions(opts...)
17828			return req, nil
17829		},
17830	}
17831
17832	for p.Next() {
17833		if !fn(p.Page().(*ListThingRegistrationTaskReportsOutput), !p.HasNextPage()) {
17834			break
17835		}
17836	}
17837
17838	return p.Err()
17839}
17840
17841const opListThingRegistrationTasks = "ListThingRegistrationTasks"
17842
17843// ListThingRegistrationTasksRequest generates a "aws/request.Request" representing the
17844// client's request for the ListThingRegistrationTasks operation. The "output" return
17845// value will be populated with the request's response once the request completes
17846// successfully.
17847//
17848// Use "Send" method on the returned Request to send the API call to the service.
17849// the "output" return value is not valid until after Send returns without error.
17850//
17851// See ListThingRegistrationTasks for more information on using the ListThingRegistrationTasks
17852// API call, and error handling.
17853//
17854// This method is useful when you want to inject custom logic or configuration
17855// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17856//
17857//
17858//    // Example sending a request using the ListThingRegistrationTasksRequest method.
17859//    req, resp := client.ListThingRegistrationTasksRequest(params)
17860//
17861//    err := req.Send()
17862//    if err == nil { // resp is now filled
17863//        fmt.Println(resp)
17864//    }
17865func (c *IoT) ListThingRegistrationTasksRequest(input *ListThingRegistrationTasksInput) (req *request.Request, output *ListThingRegistrationTasksOutput) {
17866	op := &request.Operation{
17867		Name:       opListThingRegistrationTasks,
17868		HTTPMethod: "GET",
17869		HTTPPath:   "/thing-registration-tasks",
17870		Paginator: &request.Paginator{
17871			InputTokens:     []string{"nextToken"},
17872			OutputTokens:    []string{"nextToken"},
17873			LimitToken:      "maxResults",
17874			TruncationToken: "",
17875		},
17876	}
17877
17878	if input == nil {
17879		input = &ListThingRegistrationTasksInput{}
17880	}
17881
17882	output = &ListThingRegistrationTasksOutput{}
17883	req = c.newRequest(op, input, output)
17884	return
17885}
17886
17887// ListThingRegistrationTasks API operation for AWS IoT.
17888//
17889// List bulk thing provisioning tasks.
17890//
17891// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17892// with awserr.Error's Code and Message methods to get detailed information about
17893// the error.
17894//
17895// See the AWS API reference guide for AWS IoT's
17896// API operation ListThingRegistrationTasks for usage and error information.
17897//
17898// Returned Error Types:
17899//   * InvalidRequestException
17900//   The request is not valid.
17901//
17902//   * ThrottlingException
17903//   The rate exceeds the limit.
17904//
17905//   * UnauthorizedException
17906//   You are not authorized to perform this operation.
17907//
17908//   * InternalFailureException
17909//   An unexpected error has occurred.
17910//
17911func (c *IoT) ListThingRegistrationTasks(input *ListThingRegistrationTasksInput) (*ListThingRegistrationTasksOutput, error) {
17912	req, out := c.ListThingRegistrationTasksRequest(input)
17913	return out, req.Send()
17914}
17915
17916// ListThingRegistrationTasksWithContext is the same as ListThingRegistrationTasks with the addition of
17917// the ability to pass a context and additional request options.
17918//
17919// See ListThingRegistrationTasks for details on how to use this API operation.
17920//
17921// The context must be non-nil and will be used for request cancellation. If
17922// the context is nil a panic will occur. In the future the SDK may create
17923// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17924// for more information on using Contexts.
17925func (c *IoT) ListThingRegistrationTasksWithContext(ctx aws.Context, input *ListThingRegistrationTasksInput, opts ...request.Option) (*ListThingRegistrationTasksOutput, error) {
17926	req, out := c.ListThingRegistrationTasksRequest(input)
17927	req.SetContext(ctx)
17928	req.ApplyOptions(opts...)
17929	return out, req.Send()
17930}
17931
17932// ListThingRegistrationTasksPages iterates over the pages of a ListThingRegistrationTasks operation,
17933// calling the "fn" function with the response data for each page. To stop
17934// iterating, return false from the fn function.
17935//
17936// See ListThingRegistrationTasks method for more information on how to use this operation.
17937//
17938// Note: This operation can generate multiple requests to a service.
17939//
17940//    // Example iterating over at most 3 pages of a ListThingRegistrationTasks operation.
17941//    pageNum := 0
17942//    err := client.ListThingRegistrationTasksPages(params,
17943//        func(page *iot.ListThingRegistrationTasksOutput, lastPage bool) bool {
17944//            pageNum++
17945//            fmt.Println(page)
17946//            return pageNum <= 3
17947//        })
17948//
17949func (c *IoT) ListThingRegistrationTasksPages(input *ListThingRegistrationTasksInput, fn func(*ListThingRegistrationTasksOutput, bool) bool) error {
17950	return c.ListThingRegistrationTasksPagesWithContext(aws.BackgroundContext(), input, fn)
17951}
17952
17953// ListThingRegistrationTasksPagesWithContext same as ListThingRegistrationTasksPages except
17954// it takes a Context and allows setting request options on the pages.
17955//
17956// The context must be non-nil and will be used for request cancellation. If
17957// the context is nil a panic will occur. In the future the SDK may create
17958// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17959// for more information on using Contexts.
17960func (c *IoT) ListThingRegistrationTasksPagesWithContext(ctx aws.Context, input *ListThingRegistrationTasksInput, fn func(*ListThingRegistrationTasksOutput, bool) bool, opts ...request.Option) error {
17961	p := request.Pagination{
17962		NewRequest: func() (*request.Request, error) {
17963			var inCpy *ListThingRegistrationTasksInput
17964			if input != nil {
17965				tmp := *input
17966				inCpy = &tmp
17967			}
17968			req, _ := c.ListThingRegistrationTasksRequest(inCpy)
17969			req.SetContext(ctx)
17970			req.ApplyOptions(opts...)
17971			return req, nil
17972		},
17973	}
17974
17975	for p.Next() {
17976		if !fn(p.Page().(*ListThingRegistrationTasksOutput), !p.HasNextPage()) {
17977			break
17978		}
17979	}
17980
17981	return p.Err()
17982}
17983
17984const opListThingTypes = "ListThingTypes"
17985
17986// ListThingTypesRequest generates a "aws/request.Request" representing the
17987// client's request for the ListThingTypes operation. The "output" return
17988// value will be populated with the request's response once the request completes
17989// successfully.
17990//
17991// Use "Send" method on the returned Request to send the API call to the service.
17992// the "output" return value is not valid until after Send returns without error.
17993//
17994// See ListThingTypes for more information on using the ListThingTypes
17995// API call, and error handling.
17996//
17997// This method is useful when you want to inject custom logic or configuration
17998// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17999//
18000//
18001//    // Example sending a request using the ListThingTypesRequest method.
18002//    req, resp := client.ListThingTypesRequest(params)
18003//
18004//    err := req.Send()
18005//    if err == nil { // resp is now filled
18006//        fmt.Println(resp)
18007//    }
18008func (c *IoT) ListThingTypesRequest(input *ListThingTypesInput) (req *request.Request, output *ListThingTypesOutput) {
18009	op := &request.Operation{
18010		Name:       opListThingTypes,
18011		HTTPMethod: "GET",
18012		HTTPPath:   "/thing-types",
18013		Paginator: &request.Paginator{
18014			InputTokens:     []string{"nextToken"},
18015			OutputTokens:    []string{"nextToken"},
18016			LimitToken:      "maxResults",
18017			TruncationToken: "",
18018		},
18019	}
18020
18021	if input == nil {
18022		input = &ListThingTypesInput{}
18023	}
18024
18025	output = &ListThingTypesOutput{}
18026	req = c.newRequest(op, input, output)
18027	return
18028}
18029
18030// ListThingTypes API operation for AWS IoT.
18031//
18032// Lists the existing thing types.
18033//
18034// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18035// with awserr.Error's Code and Message methods to get detailed information about
18036// the error.
18037//
18038// See the AWS API reference guide for AWS IoT's
18039// API operation ListThingTypes for usage and error information.
18040//
18041// Returned Error Types:
18042//   * InvalidRequestException
18043//   The request is not valid.
18044//
18045//   * ThrottlingException
18046//   The rate exceeds the limit.
18047//
18048//   * UnauthorizedException
18049//   You are not authorized to perform this operation.
18050//
18051//   * ServiceUnavailableException
18052//   The service is temporarily unavailable.
18053//
18054//   * InternalFailureException
18055//   An unexpected error has occurred.
18056//
18057func (c *IoT) ListThingTypes(input *ListThingTypesInput) (*ListThingTypesOutput, error) {
18058	req, out := c.ListThingTypesRequest(input)
18059	return out, req.Send()
18060}
18061
18062// ListThingTypesWithContext is the same as ListThingTypes with the addition of
18063// the ability to pass a context and additional request options.
18064//
18065// See ListThingTypes for details on how to use this API operation.
18066//
18067// The context must be non-nil and will be used for request cancellation. If
18068// the context is nil a panic will occur. In the future the SDK may create
18069// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18070// for more information on using Contexts.
18071func (c *IoT) ListThingTypesWithContext(ctx aws.Context, input *ListThingTypesInput, opts ...request.Option) (*ListThingTypesOutput, error) {
18072	req, out := c.ListThingTypesRequest(input)
18073	req.SetContext(ctx)
18074	req.ApplyOptions(opts...)
18075	return out, req.Send()
18076}
18077
18078// ListThingTypesPages iterates over the pages of a ListThingTypes operation,
18079// calling the "fn" function with the response data for each page. To stop
18080// iterating, return false from the fn function.
18081//
18082// See ListThingTypes method for more information on how to use this operation.
18083//
18084// Note: This operation can generate multiple requests to a service.
18085//
18086//    // Example iterating over at most 3 pages of a ListThingTypes operation.
18087//    pageNum := 0
18088//    err := client.ListThingTypesPages(params,
18089//        func(page *iot.ListThingTypesOutput, lastPage bool) bool {
18090//            pageNum++
18091//            fmt.Println(page)
18092//            return pageNum <= 3
18093//        })
18094//
18095func (c *IoT) ListThingTypesPages(input *ListThingTypesInput, fn func(*ListThingTypesOutput, bool) bool) error {
18096	return c.ListThingTypesPagesWithContext(aws.BackgroundContext(), input, fn)
18097}
18098
18099// ListThingTypesPagesWithContext same as ListThingTypesPages except
18100// it takes a Context and allows setting request options on the pages.
18101//
18102// The context must be non-nil and will be used for request cancellation. If
18103// the context is nil a panic will occur. In the future the SDK may create
18104// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18105// for more information on using Contexts.
18106func (c *IoT) ListThingTypesPagesWithContext(ctx aws.Context, input *ListThingTypesInput, fn func(*ListThingTypesOutput, bool) bool, opts ...request.Option) error {
18107	p := request.Pagination{
18108		NewRequest: func() (*request.Request, error) {
18109			var inCpy *ListThingTypesInput
18110			if input != nil {
18111				tmp := *input
18112				inCpy = &tmp
18113			}
18114			req, _ := c.ListThingTypesRequest(inCpy)
18115			req.SetContext(ctx)
18116			req.ApplyOptions(opts...)
18117			return req, nil
18118		},
18119	}
18120
18121	for p.Next() {
18122		if !fn(p.Page().(*ListThingTypesOutput), !p.HasNextPage()) {
18123			break
18124		}
18125	}
18126
18127	return p.Err()
18128}
18129
18130const opListThings = "ListThings"
18131
18132// ListThingsRequest generates a "aws/request.Request" representing the
18133// client's request for the ListThings operation. The "output" return
18134// value will be populated with the request's response once the request completes
18135// successfully.
18136//
18137// Use "Send" method on the returned Request to send the API call to the service.
18138// the "output" return value is not valid until after Send returns without error.
18139//
18140// See ListThings for more information on using the ListThings
18141// API call, and error handling.
18142//
18143// This method is useful when you want to inject custom logic or configuration
18144// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18145//
18146//
18147//    // Example sending a request using the ListThingsRequest method.
18148//    req, resp := client.ListThingsRequest(params)
18149//
18150//    err := req.Send()
18151//    if err == nil { // resp is now filled
18152//        fmt.Println(resp)
18153//    }
18154func (c *IoT) ListThingsRequest(input *ListThingsInput) (req *request.Request, output *ListThingsOutput) {
18155	op := &request.Operation{
18156		Name:       opListThings,
18157		HTTPMethod: "GET",
18158		HTTPPath:   "/things",
18159		Paginator: &request.Paginator{
18160			InputTokens:     []string{"nextToken"},
18161			OutputTokens:    []string{"nextToken"},
18162			LimitToken:      "maxResults",
18163			TruncationToken: "",
18164		},
18165	}
18166
18167	if input == nil {
18168		input = &ListThingsInput{}
18169	}
18170
18171	output = &ListThingsOutput{}
18172	req = c.newRequest(op, input, output)
18173	return
18174}
18175
18176// ListThings API operation for AWS IoT.
18177//
18178// Lists your things. Use the attributeName and attributeValue parameters to
18179// filter your things. For example, calling ListThings with attributeName=Color
18180// and attributeValue=Red retrieves all things in the registry that contain
18181// an attribute Color with the value Red.
18182//
18183// You will not be charged for calling this API if an Access denied error is
18184// returned. You will also not be charged if no attributes or pagination token
18185// was provided in request and no pagination token and no results were returned.
18186//
18187// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18188// with awserr.Error's Code and Message methods to get detailed information about
18189// the error.
18190//
18191// See the AWS API reference guide for AWS IoT's
18192// API operation ListThings for usage and error information.
18193//
18194// Returned Error Types:
18195//   * InvalidRequestException
18196//   The request is not valid.
18197//
18198//   * ThrottlingException
18199//   The rate exceeds the limit.
18200//
18201//   * UnauthorizedException
18202//   You are not authorized to perform this operation.
18203//
18204//   * ServiceUnavailableException
18205//   The service is temporarily unavailable.
18206//
18207//   * InternalFailureException
18208//   An unexpected error has occurred.
18209//
18210func (c *IoT) ListThings(input *ListThingsInput) (*ListThingsOutput, error) {
18211	req, out := c.ListThingsRequest(input)
18212	return out, req.Send()
18213}
18214
18215// ListThingsWithContext is the same as ListThings with the addition of
18216// the ability to pass a context and additional request options.
18217//
18218// See ListThings for details on how to use this API operation.
18219//
18220// The context must be non-nil and will be used for request cancellation. If
18221// the context is nil a panic will occur. In the future the SDK may create
18222// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18223// for more information on using Contexts.
18224func (c *IoT) ListThingsWithContext(ctx aws.Context, input *ListThingsInput, opts ...request.Option) (*ListThingsOutput, error) {
18225	req, out := c.ListThingsRequest(input)
18226	req.SetContext(ctx)
18227	req.ApplyOptions(opts...)
18228	return out, req.Send()
18229}
18230
18231// ListThingsPages iterates over the pages of a ListThings operation,
18232// calling the "fn" function with the response data for each page. To stop
18233// iterating, return false from the fn function.
18234//
18235// See ListThings method for more information on how to use this operation.
18236//
18237// Note: This operation can generate multiple requests to a service.
18238//
18239//    // Example iterating over at most 3 pages of a ListThings operation.
18240//    pageNum := 0
18241//    err := client.ListThingsPages(params,
18242//        func(page *iot.ListThingsOutput, lastPage bool) bool {
18243//            pageNum++
18244//            fmt.Println(page)
18245//            return pageNum <= 3
18246//        })
18247//
18248func (c *IoT) ListThingsPages(input *ListThingsInput, fn func(*ListThingsOutput, bool) bool) error {
18249	return c.ListThingsPagesWithContext(aws.BackgroundContext(), input, fn)
18250}
18251
18252// ListThingsPagesWithContext same as ListThingsPages except
18253// it takes a Context and allows setting request options on the pages.
18254//
18255// The context must be non-nil and will be used for request cancellation. If
18256// the context is nil a panic will occur. In the future the SDK may create
18257// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18258// for more information on using Contexts.
18259func (c *IoT) ListThingsPagesWithContext(ctx aws.Context, input *ListThingsInput, fn func(*ListThingsOutput, bool) bool, opts ...request.Option) error {
18260	p := request.Pagination{
18261		NewRequest: func() (*request.Request, error) {
18262			var inCpy *ListThingsInput
18263			if input != nil {
18264				tmp := *input
18265				inCpy = &tmp
18266			}
18267			req, _ := c.ListThingsRequest(inCpy)
18268			req.SetContext(ctx)
18269			req.ApplyOptions(opts...)
18270			return req, nil
18271		},
18272	}
18273
18274	for p.Next() {
18275		if !fn(p.Page().(*ListThingsOutput), !p.HasNextPage()) {
18276			break
18277		}
18278	}
18279
18280	return p.Err()
18281}
18282
18283const opListThingsInBillingGroup = "ListThingsInBillingGroup"
18284
18285// ListThingsInBillingGroupRequest generates a "aws/request.Request" representing the
18286// client's request for the ListThingsInBillingGroup operation. The "output" return
18287// value will be populated with the request's response once the request completes
18288// successfully.
18289//
18290// Use "Send" method on the returned Request to send the API call to the service.
18291// the "output" return value is not valid until after Send returns without error.
18292//
18293// See ListThingsInBillingGroup for more information on using the ListThingsInBillingGroup
18294// API call, and error handling.
18295//
18296// This method is useful when you want to inject custom logic or configuration
18297// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18298//
18299//
18300//    // Example sending a request using the ListThingsInBillingGroupRequest method.
18301//    req, resp := client.ListThingsInBillingGroupRequest(params)
18302//
18303//    err := req.Send()
18304//    if err == nil { // resp is now filled
18305//        fmt.Println(resp)
18306//    }
18307func (c *IoT) ListThingsInBillingGroupRequest(input *ListThingsInBillingGroupInput) (req *request.Request, output *ListThingsInBillingGroupOutput) {
18308	op := &request.Operation{
18309		Name:       opListThingsInBillingGroup,
18310		HTTPMethod: "GET",
18311		HTTPPath:   "/billing-groups/{billingGroupName}/things",
18312		Paginator: &request.Paginator{
18313			InputTokens:     []string{"nextToken"},
18314			OutputTokens:    []string{"nextToken"},
18315			LimitToken:      "maxResults",
18316			TruncationToken: "",
18317		},
18318	}
18319
18320	if input == nil {
18321		input = &ListThingsInBillingGroupInput{}
18322	}
18323
18324	output = &ListThingsInBillingGroupOutput{}
18325	req = c.newRequest(op, input, output)
18326	return
18327}
18328
18329// ListThingsInBillingGroup API operation for AWS IoT.
18330//
18331// Lists the things you have added to the given billing group.
18332//
18333// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18334// with awserr.Error's Code and Message methods to get detailed information about
18335// the error.
18336//
18337// See the AWS API reference guide for AWS IoT's
18338// API operation ListThingsInBillingGroup for usage and error information.
18339//
18340// Returned Error Types:
18341//   * InvalidRequestException
18342//   The request is not valid.
18343//
18344//   * InternalFailureException
18345//   An unexpected error has occurred.
18346//
18347//   * ResourceNotFoundException
18348//   The specified resource does not exist.
18349//
18350//   * ThrottlingException
18351//   The rate exceeds the limit.
18352//
18353func (c *IoT) ListThingsInBillingGroup(input *ListThingsInBillingGroupInput) (*ListThingsInBillingGroupOutput, error) {
18354	req, out := c.ListThingsInBillingGroupRequest(input)
18355	return out, req.Send()
18356}
18357
18358// ListThingsInBillingGroupWithContext is the same as ListThingsInBillingGroup with the addition of
18359// the ability to pass a context and additional request options.
18360//
18361// See ListThingsInBillingGroup for details on how to use this API operation.
18362//
18363// The context must be non-nil and will be used for request cancellation. If
18364// the context is nil a panic will occur. In the future the SDK may create
18365// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18366// for more information on using Contexts.
18367func (c *IoT) ListThingsInBillingGroupWithContext(ctx aws.Context, input *ListThingsInBillingGroupInput, opts ...request.Option) (*ListThingsInBillingGroupOutput, error) {
18368	req, out := c.ListThingsInBillingGroupRequest(input)
18369	req.SetContext(ctx)
18370	req.ApplyOptions(opts...)
18371	return out, req.Send()
18372}
18373
18374// ListThingsInBillingGroupPages iterates over the pages of a ListThingsInBillingGroup operation,
18375// calling the "fn" function with the response data for each page. To stop
18376// iterating, return false from the fn function.
18377//
18378// See ListThingsInBillingGroup method for more information on how to use this operation.
18379//
18380// Note: This operation can generate multiple requests to a service.
18381//
18382//    // Example iterating over at most 3 pages of a ListThingsInBillingGroup operation.
18383//    pageNum := 0
18384//    err := client.ListThingsInBillingGroupPages(params,
18385//        func(page *iot.ListThingsInBillingGroupOutput, lastPage bool) bool {
18386//            pageNum++
18387//            fmt.Println(page)
18388//            return pageNum <= 3
18389//        })
18390//
18391func (c *IoT) ListThingsInBillingGroupPages(input *ListThingsInBillingGroupInput, fn func(*ListThingsInBillingGroupOutput, bool) bool) error {
18392	return c.ListThingsInBillingGroupPagesWithContext(aws.BackgroundContext(), input, fn)
18393}
18394
18395// ListThingsInBillingGroupPagesWithContext same as ListThingsInBillingGroupPages except
18396// it takes a Context and allows setting request options on the pages.
18397//
18398// The context must be non-nil and will be used for request cancellation. If
18399// the context is nil a panic will occur. In the future the SDK may create
18400// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18401// for more information on using Contexts.
18402func (c *IoT) ListThingsInBillingGroupPagesWithContext(ctx aws.Context, input *ListThingsInBillingGroupInput, fn func(*ListThingsInBillingGroupOutput, bool) bool, opts ...request.Option) error {
18403	p := request.Pagination{
18404		NewRequest: func() (*request.Request, error) {
18405			var inCpy *ListThingsInBillingGroupInput
18406			if input != nil {
18407				tmp := *input
18408				inCpy = &tmp
18409			}
18410			req, _ := c.ListThingsInBillingGroupRequest(inCpy)
18411			req.SetContext(ctx)
18412			req.ApplyOptions(opts...)
18413			return req, nil
18414		},
18415	}
18416
18417	for p.Next() {
18418		if !fn(p.Page().(*ListThingsInBillingGroupOutput), !p.HasNextPage()) {
18419			break
18420		}
18421	}
18422
18423	return p.Err()
18424}
18425
18426const opListThingsInThingGroup = "ListThingsInThingGroup"
18427
18428// ListThingsInThingGroupRequest generates a "aws/request.Request" representing the
18429// client's request for the ListThingsInThingGroup operation. The "output" return
18430// value will be populated with the request's response once the request completes
18431// successfully.
18432//
18433// Use "Send" method on the returned Request to send the API call to the service.
18434// the "output" return value is not valid until after Send returns without error.
18435//
18436// See ListThingsInThingGroup for more information on using the ListThingsInThingGroup
18437// API call, and error handling.
18438//
18439// This method is useful when you want to inject custom logic or configuration
18440// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18441//
18442//
18443//    // Example sending a request using the ListThingsInThingGroupRequest method.
18444//    req, resp := client.ListThingsInThingGroupRequest(params)
18445//
18446//    err := req.Send()
18447//    if err == nil { // resp is now filled
18448//        fmt.Println(resp)
18449//    }
18450func (c *IoT) ListThingsInThingGroupRequest(input *ListThingsInThingGroupInput) (req *request.Request, output *ListThingsInThingGroupOutput) {
18451	op := &request.Operation{
18452		Name:       opListThingsInThingGroup,
18453		HTTPMethod: "GET",
18454		HTTPPath:   "/thing-groups/{thingGroupName}/things",
18455		Paginator: &request.Paginator{
18456			InputTokens:     []string{"nextToken"},
18457			OutputTokens:    []string{"nextToken"},
18458			LimitToken:      "maxResults",
18459			TruncationToken: "",
18460		},
18461	}
18462
18463	if input == nil {
18464		input = &ListThingsInThingGroupInput{}
18465	}
18466
18467	output = &ListThingsInThingGroupOutput{}
18468	req = c.newRequest(op, input, output)
18469	return
18470}
18471
18472// ListThingsInThingGroup API operation for AWS IoT.
18473//
18474// Lists the things in the specified group.
18475//
18476// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18477// with awserr.Error's Code and Message methods to get detailed information about
18478// the error.
18479//
18480// See the AWS API reference guide for AWS IoT's
18481// API operation ListThingsInThingGroup for usage and error information.
18482//
18483// Returned Error Types:
18484//   * InvalidRequestException
18485//   The request is not valid.
18486//
18487//   * InternalFailureException
18488//   An unexpected error has occurred.
18489//
18490//   * ResourceNotFoundException
18491//   The specified resource does not exist.
18492//
18493//   * ThrottlingException
18494//   The rate exceeds the limit.
18495//
18496func (c *IoT) ListThingsInThingGroup(input *ListThingsInThingGroupInput) (*ListThingsInThingGroupOutput, error) {
18497	req, out := c.ListThingsInThingGroupRequest(input)
18498	return out, req.Send()
18499}
18500
18501// ListThingsInThingGroupWithContext is the same as ListThingsInThingGroup with the addition of
18502// the ability to pass a context and additional request options.
18503//
18504// See ListThingsInThingGroup for details on how to use this API operation.
18505//
18506// The context must be non-nil and will be used for request cancellation. If
18507// the context is nil a panic will occur. In the future the SDK may create
18508// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18509// for more information on using Contexts.
18510func (c *IoT) ListThingsInThingGroupWithContext(ctx aws.Context, input *ListThingsInThingGroupInput, opts ...request.Option) (*ListThingsInThingGroupOutput, error) {
18511	req, out := c.ListThingsInThingGroupRequest(input)
18512	req.SetContext(ctx)
18513	req.ApplyOptions(opts...)
18514	return out, req.Send()
18515}
18516
18517// ListThingsInThingGroupPages iterates over the pages of a ListThingsInThingGroup operation,
18518// calling the "fn" function with the response data for each page. To stop
18519// iterating, return false from the fn function.
18520//
18521// See ListThingsInThingGroup method for more information on how to use this operation.
18522//
18523// Note: This operation can generate multiple requests to a service.
18524//
18525//    // Example iterating over at most 3 pages of a ListThingsInThingGroup operation.
18526//    pageNum := 0
18527//    err := client.ListThingsInThingGroupPages(params,
18528//        func(page *iot.ListThingsInThingGroupOutput, lastPage bool) bool {
18529//            pageNum++
18530//            fmt.Println(page)
18531//            return pageNum <= 3
18532//        })
18533//
18534func (c *IoT) ListThingsInThingGroupPages(input *ListThingsInThingGroupInput, fn func(*ListThingsInThingGroupOutput, bool) bool) error {
18535	return c.ListThingsInThingGroupPagesWithContext(aws.BackgroundContext(), input, fn)
18536}
18537
18538// ListThingsInThingGroupPagesWithContext same as ListThingsInThingGroupPages except
18539// it takes a Context and allows setting request options on the pages.
18540//
18541// The context must be non-nil and will be used for request cancellation. If
18542// the context is nil a panic will occur. In the future the SDK may create
18543// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18544// for more information on using Contexts.
18545func (c *IoT) ListThingsInThingGroupPagesWithContext(ctx aws.Context, input *ListThingsInThingGroupInput, fn func(*ListThingsInThingGroupOutput, bool) bool, opts ...request.Option) error {
18546	p := request.Pagination{
18547		NewRequest: func() (*request.Request, error) {
18548			var inCpy *ListThingsInThingGroupInput
18549			if input != nil {
18550				tmp := *input
18551				inCpy = &tmp
18552			}
18553			req, _ := c.ListThingsInThingGroupRequest(inCpy)
18554			req.SetContext(ctx)
18555			req.ApplyOptions(opts...)
18556			return req, nil
18557		},
18558	}
18559
18560	for p.Next() {
18561		if !fn(p.Page().(*ListThingsInThingGroupOutput), !p.HasNextPage()) {
18562			break
18563		}
18564	}
18565
18566	return p.Err()
18567}
18568
18569const opListTopicRuleDestinations = "ListTopicRuleDestinations"
18570
18571// ListTopicRuleDestinationsRequest generates a "aws/request.Request" representing the
18572// client's request for the ListTopicRuleDestinations operation. The "output" return
18573// value will be populated with the request's response once the request completes
18574// successfully.
18575//
18576// Use "Send" method on the returned Request to send the API call to the service.
18577// the "output" return value is not valid until after Send returns without error.
18578//
18579// See ListTopicRuleDestinations for more information on using the ListTopicRuleDestinations
18580// API call, and error handling.
18581//
18582// This method is useful when you want to inject custom logic or configuration
18583// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18584//
18585//
18586//    // Example sending a request using the ListTopicRuleDestinationsRequest method.
18587//    req, resp := client.ListTopicRuleDestinationsRequest(params)
18588//
18589//    err := req.Send()
18590//    if err == nil { // resp is now filled
18591//        fmt.Println(resp)
18592//    }
18593func (c *IoT) ListTopicRuleDestinationsRequest(input *ListTopicRuleDestinationsInput) (req *request.Request, output *ListTopicRuleDestinationsOutput) {
18594	op := &request.Operation{
18595		Name:       opListTopicRuleDestinations,
18596		HTTPMethod: "GET",
18597		HTTPPath:   "/destinations",
18598		Paginator: &request.Paginator{
18599			InputTokens:     []string{"nextToken"},
18600			OutputTokens:    []string{"nextToken"},
18601			LimitToken:      "maxResults",
18602			TruncationToken: "",
18603		},
18604	}
18605
18606	if input == nil {
18607		input = &ListTopicRuleDestinationsInput{}
18608	}
18609
18610	output = &ListTopicRuleDestinationsOutput{}
18611	req = c.newRequest(op, input, output)
18612	return
18613}
18614
18615// ListTopicRuleDestinations API operation for AWS IoT.
18616//
18617// Lists all the topic rule destinations in your AWS account.
18618//
18619// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18620// with awserr.Error's Code and Message methods to get detailed information about
18621// the error.
18622//
18623// See the AWS API reference guide for AWS IoT's
18624// API operation ListTopicRuleDestinations for usage and error information.
18625//
18626// Returned Error Types:
18627//   * InternalException
18628//   An unexpected error has occurred.
18629//
18630//   * InvalidRequestException
18631//   The request is not valid.
18632//
18633//   * ServiceUnavailableException
18634//   The service is temporarily unavailable.
18635//
18636//   * UnauthorizedException
18637//   You are not authorized to perform this operation.
18638//
18639func (c *IoT) ListTopicRuleDestinations(input *ListTopicRuleDestinationsInput) (*ListTopicRuleDestinationsOutput, error) {
18640	req, out := c.ListTopicRuleDestinationsRequest(input)
18641	return out, req.Send()
18642}
18643
18644// ListTopicRuleDestinationsWithContext is the same as ListTopicRuleDestinations with the addition of
18645// the ability to pass a context and additional request options.
18646//
18647// See ListTopicRuleDestinations for details on how to use this API operation.
18648//
18649// The context must be non-nil and will be used for request cancellation. If
18650// the context is nil a panic will occur. In the future the SDK may create
18651// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18652// for more information on using Contexts.
18653func (c *IoT) ListTopicRuleDestinationsWithContext(ctx aws.Context, input *ListTopicRuleDestinationsInput, opts ...request.Option) (*ListTopicRuleDestinationsOutput, error) {
18654	req, out := c.ListTopicRuleDestinationsRequest(input)
18655	req.SetContext(ctx)
18656	req.ApplyOptions(opts...)
18657	return out, req.Send()
18658}
18659
18660// ListTopicRuleDestinationsPages iterates over the pages of a ListTopicRuleDestinations operation,
18661// calling the "fn" function with the response data for each page. To stop
18662// iterating, return false from the fn function.
18663//
18664// See ListTopicRuleDestinations method for more information on how to use this operation.
18665//
18666// Note: This operation can generate multiple requests to a service.
18667//
18668//    // Example iterating over at most 3 pages of a ListTopicRuleDestinations operation.
18669//    pageNum := 0
18670//    err := client.ListTopicRuleDestinationsPages(params,
18671//        func(page *iot.ListTopicRuleDestinationsOutput, lastPage bool) bool {
18672//            pageNum++
18673//            fmt.Println(page)
18674//            return pageNum <= 3
18675//        })
18676//
18677func (c *IoT) ListTopicRuleDestinationsPages(input *ListTopicRuleDestinationsInput, fn func(*ListTopicRuleDestinationsOutput, bool) bool) error {
18678	return c.ListTopicRuleDestinationsPagesWithContext(aws.BackgroundContext(), input, fn)
18679}
18680
18681// ListTopicRuleDestinationsPagesWithContext same as ListTopicRuleDestinationsPages except
18682// it takes a Context and allows setting request options on the pages.
18683//
18684// The context must be non-nil and will be used for request cancellation. If
18685// the context is nil a panic will occur. In the future the SDK may create
18686// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18687// for more information on using Contexts.
18688func (c *IoT) ListTopicRuleDestinationsPagesWithContext(ctx aws.Context, input *ListTopicRuleDestinationsInput, fn func(*ListTopicRuleDestinationsOutput, bool) bool, opts ...request.Option) error {
18689	p := request.Pagination{
18690		NewRequest: func() (*request.Request, error) {
18691			var inCpy *ListTopicRuleDestinationsInput
18692			if input != nil {
18693				tmp := *input
18694				inCpy = &tmp
18695			}
18696			req, _ := c.ListTopicRuleDestinationsRequest(inCpy)
18697			req.SetContext(ctx)
18698			req.ApplyOptions(opts...)
18699			return req, nil
18700		},
18701	}
18702
18703	for p.Next() {
18704		if !fn(p.Page().(*ListTopicRuleDestinationsOutput), !p.HasNextPage()) {
18705			break
18706		}
18707	}
18708
18709	return p.Err()
18710}
18711
18712const opListTopicRules = "ListTopicRules"
18713
18714// ListTopicRulesRequest generates a "aws/request.Request" representing the
18715// client's request for the ListTopicRules operation. The "output" return
18716// value will be populated with the request's response once the request completes
18717// successfully.
18718//
18719// Use "Send" method on the returned Request to send the API call to the service.
18720// the "output" return value is not valid until after Send returns without error.
18721//
18722// See ListTopicRules for more information on using the ListTopicRules
18723// API call, and error handling.
18724//
18725// This method is useful when you want to inject custom logic or configuration
18726// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18727//
18728//
18729//    // Example sending a request using the ListTopicRulesRequest method.
18730//    req, resp := client.ListTopicRulesRequest(params)
18731//
18732//    err := req.Send()
18733//    if err == nil { // resp is now filled
18734//        fmt.Println(resp)
18735//    }
18736func (c *IoT) ListTopicRulesRequest(input *ListTopicRulesInput) (req *request.Request, output *ListTopicRulesOutput) {
18737	op := &request.Operation{
18738		Name:       opListTopicRules,
18739		HTTPMethod: "GET",
18740		HTTPPath:   "/rules",
18741		Paginator: &request.Paginator{
18742			InputTokens:     []string{"nextToken"},
18743			OutputTokens:    []string{"nextToken"},
18744			LimitToken:      "maxResults",
18745			TruncationToken: "",
18746		},
18747	}
18748
18749	if input == nil {
18750		input = &ListTopicRulesInput{}
18751	}
18752
18753	output = &ListTopicRulesOutput{}
18754	req = c.newRequest(op, input, output)
18755	return
18756}
18757
18758// ListTopicRules API operation for AWS IoT.
18759//
18760// Lists the rules for the specific topic.
18761//
18762// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18763// with awserr.Error's Code and Message methods to get detailed information about
18764// the error.
18765//
18766// See the AWS API reference guide for AWS IoT's
18767// API operation ListTopicRules for usage and error information.
18768//
18769// Returned Error Types:
18770//   * InternalException
18771//   An unexpected error has occurred.
18772//
18773//   * InvalidRequestException
18774//   The request is not valid.
18775//
18776//   * ServiceUnavailableException
18777//   The service is temporarily unavailable.
18778//
18779func (c *IoT) ListTopicRules(input *ListTopicRulesInput) (*ListTopicRulesOutput, error) {
18780	req, out := c.ListTopicRulesRequest(input)
18781	return out, req.Send()
18782}
18783
18784// ListTopicRulesWithContext is the same as ListTopicRules with the addition of
18785// the ability to pass a context and additional request options.
18786//
18787// See ListTopicRules for details on how to use this API operation.
18788//
18789// The context must be non-nil and will be used for request cancellation. If
18790// the context is nil a panic will occur. In the future the SDK may create
18791// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18792// for more information on using Contexts.
18793func (c *IoT) ListTopicRulesWithContext(ctx aws.Context, input *ListTopicRulesInput, opts ...request.Option) (*ListTopicRulesOutput, error) {
18794	req, out := c.ListTopicRulesRequest(input)
18795	req.SetContext(ctx)
18796	req.ApplyOptions(opts...)
18797	return out, req.Send()
18798}
18799
18800// ListTopicRulesPages iterates over the pages of a ListTopicRules operation,
18801// calling the "fn" function with the response data for each page. To stop
18802// iterating, return false from the fn function.
18803//
18804// See ListTopicRules method for more information on how to use this operation.
18805//
18806// Note: This operation can generate multiple requests to a service.
18807//
18808//    // Example iterating over at most 3 pages of a ListTopicRules operation.
18809//    pageNum := 0
18810//    err := client.ListTopicRulesPages(params,
18811//        func(page *iot.ListTopicRulesOutput, lastPage bool) bool {
18812//            pageNum++
18813//            fmt.Println(page)
18814//            return pageNum <= 3
18815//        })
18816//
18817func (c *IoT) ListTopicRulesPages(input *ListTopicRulesInput, fn func(*ListTopicRulesOutput, bool) bool) error {
18818	return c.ListTopicRulesPagesWithContext(aws.BackgroundContext(), input, fn)
18819}
18820
18821// ListTopicRulesPagesWithContext same as ListTopicRulesPages except
18822// it takes a Context and allows setting request options on the pages.
18823//
18824// The context must be non-nil and will be used for request cancellation. If
18825// the context is nil a panic will occur. In the future the SDK may create
18826// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18827// for more information on using Contexts.
18828func (c *IoT) ListTopicRulesPagesWithContext(ctx aws.Context, input *ListTopicRulesInput, fn func(*ListTopicRulesOutput, bool) bool, opts ...request.Option) error {
18829	p := request.Pagination{
18830		NewRequest: func() (*request.Request, error) {
18831			var inCpy *ListTopicRulesInput
18832			if input != nil {
18833				tmp := *input
18834				inCpy = &tmp
18835			}
18836			req, _ := c.ListTopicRulesRequest(inCpy)
18837			req.SetContext(ctx)
18838			req.ApplyOptions(opts...)
18839			return req, nil
18840		},
18841	}
18842
18843	for p.Next() {
18844		if !fn(p.Page().(*ListTopicRulesOutput), !p.HasNextPage()) {
18845			break
18846		}
18847	}
18848
18849	return p.Err()
18850}
18851
18852const opListV2LoggingLevels = "ListV2LoggingLevels"
18853
18854// ListV2LoggingLevelsRequest generates a "aws/request.Request" representing the
18855// client's request for the ListV2LoggingLevels operation. The "output" return
18856// value will be populated with the request's response once the request completes
18857// successfully.
18858//
18859// Use "Send" method on the returned Request to send the API call to the service.
18860// the "output" return value is not valid until after Send returns without error.
18861//
18862// See ListV2LoggingLevels for more information on using the ListV2LoggingLevels
18863// API call, and error handling.
18864//
18865// This method is useful when you want to inject custom logic or configuration
18866// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18867//
18868//
18869//    // Example sending a request using the ListV2LoggingLevelsRequest method.
18870//    req, resp := client.ListV2LoggingLevelsRequest(params)
18871//
18872//    err := req.Send()
18873//    if err == nil { // resp is now filled
18874//        fmt.Println(resp)
18875//    }
18876func (c *IoT) ListV2LoggingLevelsRequest(input *ListV2LoggingLevelsInput) (req *request.Request, output *ListV2LoggingLevelsOutput) {
18877	op := &request.Operation{
18878		Name:       opListV2LoggingLevels,
18879		HTTPMethod: "GET",
18880		HTTPPath:   "/v2LoggingLevel",
18881		Paginator: &request.Paginator{
18882			InputTokens:     []string{"nextToken"},
18883			OutputTokens:    []string{"nextToken"},
18884			LimitToken:      "maxResults",
18885			TruncationToken: "",
18886		},
18887	}
18888
18889	if input == nil {
18890		input = &ListV2LoggingLevelsInput{}
18891	}
18892
18893	output = &ListV2LoggingLevelsOutput{}
18894	req = c.newRequest(op, input, output)
18895	return
18896}
18897
18898// ListV2LoggingLevels API operation for AWS IoT.
18899//
18900// Lists logging levels.
18901//
18902// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18903// with awserr.Error's Code and Message methods to get detailed information about
18904// the error.
18905//
18906// See the AWS API reference guide for AWS IoT's
18907// API operation ListV2LoggingLevels for usage and error information.
18908//
18909// Returned Error Types:
18910//   * InternalException
18911//   An unexpected error has occurred.
18912//
18913//   * NotConfiguredException
18914//   The resource is not configured.
18915//
18916//   * InvalidRequestException
18917//   The request is not valid.
18918//
18919//   * ServiceUnavailableException
18920//   The service is temporarily unavailable.
18921//
18922func (c *IoT) ListV2LoggingLevels(input *ListV2LoggingLevelsInput) (*ListV2LoggingLevelsOutput, error) {
18923	req, out := c.ListV2LoggingLevelsRequest(input)
18924	return out, req.Send()
18925}
18926
18927// ListV2LoggingLevelsWithContext is the same as ListV2LoggingLevels with the addition of
18928// the ability to pass a context and additional request options.
18929//
18930// See ListV2LoggingLevels for details on how to use this API operation.
18931//
18932// The context must be non-nil and will be used for request cancellation. If
18933// the context is nil a panic will occur. In the future the SDK may create
18934// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18935// for more information on using Contexts.
18936func (c *IoT) ListV2LoggingLevelsWithContext(ctx aws.Context, input *ListV2LoggingLevelsInput, opts ...request.Option) (*ListV2LoggingLevelsOutput, error) {
18937	req, out := c.ListV2LoggingLevelsRequest(input)
18938	req.SetContext(ctx)
18939	req.ApplyOptions(opts...)
18940	return out, req.Send()
18941}
18942
18943// ListV2LoggingLevelsPages iterates over the pages of a ListV2LoggingLevels operation,
18944// calling the "fn" function with the response data for each page. To stop
18945// iterating, return false from the fn function.
18946//
18947// See ListV2LoggingLevels method for more information on how to use this operation.
18948//
18949// Note: This operation can generate multiple requests to a service.
18950//
18951//    // Example iterating over at most 3 pages of a ListV2LoggingLevels operation.
18952//    pageNum := 0
18953//    err := client.ListV2LoggingLevelsPages(params,
18954//        func(page *iot.ListV2LoggingLevelsOutput, lastPage bool) bool {
18955//            pageNum++
18956//            fmt.Println(page)
18957//            return pageNum <= 3
18958//        })
18959//
18960func (c *IoT) ListV2LoggingLevelsPages(input *ListV2LoggingLevelsInput, fn func(*ListV2LoggingLevelsOutput, bool) bool) error {
18961	return c.ListV2LoggingLevelsPagesWithContext(aws.BackgroundContext(), input, fn)
18962}
18963
18964// ListV2LoggingLevelsPagesWithContext same as ListV2LoggingLevelsPages except
18965// it takes a Context and allows setting request options on the pages.
18966//
18967// The context must be non-nil and will be used for request cancellation. If
18968// the context is nil a panic will occur. In the future the SDK may create
18969// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18970// for more information on using Contexts.
18971func (c *IoT) ListV2LoggingLevelsPagesWithContext(ctx aws.Context, input *ListV2LoggingLevelsInput, fn func(*ListV2LoggingLevelsOutput, bool) bool, opts ...request.Option) error {
18972	p := request.Pagination{
18973		NewRequest: func() (*request.Request, error) {
18974			var inCpy *ListV2LoggingLevelsInput
18975			if input != nil {
18976				tmp := *input
18977				inCpy = &tmp
18978			}
18979			req, _ := c.ListV2LoggingLevelsRequest(inCpy)
18980			req.SetContext(ctx)
18981			req.ApplyOptions(opts...)
18982			return req, nil
18983		},
18984	}
18985
18986	for p.Next() {
18987		if !fn(p.Page().(*ListV2LoggingLevelsOutput), !p.HasNextPage()) {
18988			break
18989		}
18990	}
18991
18992	return p.Err()
18993}
18994
18995const opListViolationEvents = "ListViolationEvents"
18996
18997// ListViolationEventsRequest generates a "aws/request.Request" representing the
18998// client's request for the ListViolationEvents operation. The "output" return
18999// value will be populated with the request's response once the request completes
19000// successfully.
19001//
19002// Use "Send" method on the returned Request to send the API call to the service.
19003// the "output" return value is not valid until after Send returns without error.
19004//
19005// See ListViolationEvents for more information on using the ListViolationEvents
19006// API call, and error handling.
19007//
19008// This method is useful when you want to inject custom logic or configuration
19009// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19010//
19011//
19012//    // Example sending a request using the ListViolationEventsRequest method.
19013//    req, resp := client.ListViolationEventsRequest(params)
19014//
19015//    err := req.Send()
19016//    if err == nil { // resp is now filled
19017//        fmt.Println(resp)
19018//    }
19019func (c *IoT) ListViolationEventsRequest(input *ListViolationEventsInput) (req *request.Request, output *ListViolationEventsOutput) {
19020	op := &request.Operation{
19021		Name:       opListViolationEvents,
19022		HTTPMethod: "GET",
19023		HTTPPath:   "/violation-events",
19024		Paginator: &request.Paginator{
19025			InputTokens:     []string{"nextToken"},
19026			OutputTokens:    []string{"nextToken"},
19027			LimitToken:      "maxResults",
19028			TruncationToken: "",
19029		},
19030	}
19031
19032	if input == nil {
19033		input = &ListViolationEventsInput{}
19034	}
19035
19036	output = &ListViolationEventsOutput{}
19037	req = c.newRequest(op, input, output)
19038	return
19039}
19040
19041// ListViolationEvents API operation for AWS IoT.
19042//
19043// Lists the Device Defender security profile violations discovered during the
19044// given time period. You can use filters to limit the results to those alerts
19045// issued for a particular security profile, behavior, or thing (device).
19046//
19047// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19048// with awserr.Error's Code and Message methods to get detailed information about
19049// the error.
19050//
19051// See the AWS API reference guide for AWS IoT's
19052// API operation ListViolationEvents for usage and error information.
19053//
19054// Returned Error Types:
19055//   * InvalidRequestException
19056//   The request is not valid.
19057//
19058//   * ThrottlingException
19059//   The rate exceeds the limit.
19060//
19061//   * InternalFailureException
19062//   An unexpected error has occurred.
19063//
19064func (c *IoT) ListViolationEvents(input *ListViolationEventsInput) (*ListViolationEventsOutput, error) {
19065	req, out := c.ListViolationEventsRequest(input)
19066	return out, req.Send()
19067}
19068
19069// ListViolationEventsWithContext is the same as ListViolationEvents with the addition of
19070// the ability to pass a context and additional request options.
19071//
19072// See ListViolationEvents for details on how to use this API operation.
19073//
19074// The context must be non-nil and will be used for request cancellation. If
19075// the context is nil a panic will occur. In the future the SDK may create
19076// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19077// for more information on using Contexts.
19078func (c *IoT) ListViolationEventsWithContext(ctx aws.Context, input *ListViolationEventsInput, opts ...request.Option) (*ListViolationEventsOutput, error) {
19079	req, out := c.ListViolationEventsRequest(input)
19080	req.SetContext(ctx)
19081	req.ApplyOptions(opts...)
19082	return out, req.Send()
19083}
19084
19085// ListViolationEventsPages iterates over the pages of a ListViolationEvents operation,
19086// calling the "fn" function with the response data for each page. To stop
19087// iterating, return false from the fn function.
19088//
19089// See ListViolationEvents method for more information on how to use this operation.
19090//
19091// Note: This operation can generate multiple requests to a service.
19092//
19093//    // Example iterating over at most 3 pages of a ListViolationEvents operation.
19094//    pageNum := 0
19095//    err := client.ListViolationEventsPages(params,
19096//        func(page *iot.ListViolationEventsOutput, lastPage bool) bool {
19097//            pageNum++
19098//            fmt.Println(page)
19099//            return pageNum <= 3
19100//        })
19101//
19102func (c *IoT) ListViolationEventsPages(input *ListViolationEventsInput, fn func(*ListViolationEventsOutput, bool) bool) error {
19103	return c.ListViolationEventsPagesWithContext(aws.BackgroundContext(), input, fn)
19104}
19105
19106// ListViolationEventsPagesWithContext same as ListViolationEventsPages except
19107// it takes a Context and allows setting request options on the pages.
19108//
19109// The context must be non-nil and will be used for request cancellation. If
19110// the context is nil a panic will occur. In the future the SDK may create
19111// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19112// for more information on using Contexts.
19113func (c *IoT) ListViolationEventsPagesWithContext(ctx aws.Context, input *ListViolationEventsInput, fn func(*ListViolationEventsOutput, bool) bool, opts ...request.Option) error {
19114	p := request.Pagination{
19115		NewRequest: func() (*request.Request, error) {
19116			var inCpy *ListViolationEventsInput
19117			if input != nil {
19118				tmp := *input
19119				inCpy = &tmp
19120			}
19121			req, _ := c.ListViolationEventsRequest(inCpy)
19122			req.SetContext(ctx)
19123			req.ApplyOptions(opts...)
19124			return req, nil
19125		},
19126	}
19127
19128	for p.Next() {
19129		if !fn(p.Page().(*ListViolationEventsOutput), !p.HasNextPage()) {
19130			break
19131		}
19132	}
19133
19134	return p.Err()
19135}
19136
19137const opRegisterCACertificate = "RegisterCACertificate"
19138
19139// RegisterCACertificateRequest generates a "aws/request.Request" representing the
19140// client's request for the RegisterCACertificate operation. The "output" return
19141// value will be populated with the request's response once the request completes
19142// successfully.
19143//
19144// Use "Send" method on the returned Request to send the API call to the service.
19145// the "output" return value is not valid until after Send returns without error.
19146//
19147// See RegisterCACertificate for more information on using the RegisterCACertificate
19148// API call, and error handling.
19149//
19150// This method is useful when you want to inject custom logic or configuration
19151// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19152//
19153//
19154//    // Example sending a request using the RegisterCACertificateRequest method.
19155//    req, resp := client.RegisterCACertificateRequest(params)
19156//
19157//    err := req.Send()
19158//    if err == nil { // resp is now filled
19159//        fmt.Println(resp)
19160//    }
19161func (c *IoT) RegisterCACertificateRequest(input *RegisterCACertificateInput) (req *request.Request, output *RegisterCACertificateOutput) {
19162	op := &request.Operation{
19163		Name:       opRegisterCACertificate,
19164		HTTPMethod: "POST",
19165		HTTPPath:   "/cacertificate",
19166	}
19167
19168	if input == nil {
19169		input = &RegisterCACertificateInput{}
19170	}
19171
19172	output = &RegisterCACertificateOutput{}
19173	req = c.newRequest(op, input, output)
19174	return
19175}
19176
19177// RegisterCACertificate API operation for AWS IoT.
19178//
19179// Registers a CA certificate with AWS IoT. This CA certificate can then be
19180// used to sign device certificates, which can be then registered with AWS IoT.
19181// You can register up to 10 CA certificates per AWS account that have the same
19182// subject field. This enables you to have up to 10 certificate authorities
19183// sign your device certificates. If you have more than one CA certificate registered,
19184// make sure you pass the CA certificate when you register your device certificates
19185// with the RegisterCertificate API.
19186//
19187// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19188// with awserr.Error's Code and Message methods to get detailed information about
19189// the error.
19190//
19191// See the AWS API reference guide for AWS IoT's
19192// API operation RegisterCACertificate for usage and error information.
19193//
19194// Returned Error Types:
19195//   * ResourceAlreadyExistsException
19196//   The resource already exists.
19197//
19198//   * RegistrationCodeValidationException
19199//   The registration code is invalid.
19200//
19201//   * InvalidRequestException
19202//   The request is not valid.
19203//
19204//   * CertificateValidationException
19205//   The certificate is invalid.
19206//
19207//   * ThrottlingException
19208//   The rate exceeds the limit.
19209//
19210//   * LimitExceededException
19211//   A limit has been exceeded.
19212//
19213//   * UnauthorizedException
19214//   You are not authorized to perform this operation.
19215//
19216//   * ServiceUnavailableException
19217//   The service is temporarily unavailable.
19218//
19219//   * InternalFailureException
19220//   An unexpected error has occurred.
19221//
19222func (c *IoT) RegisterCACertificate(input *RegisterCACertificateInput) (*RegisterCACertificateOutput, error) {
19223	req, out := c.RegisterCACertificateRequest(input)
19224	return out, req.Send()
19225}
19226
19227// RegisterCACertificateWithContext is the same as RegisterCACertificate with the addition of
19228// the ability to pass a context and additional request options.
19229//
19230// See RegisterCACertificate for details on how to use this API operation.
19231//
19232// The context must be non-nil and will be used for request cancellation. If
19233// the context is nil a panic will occur. In the future the SDK may create
19234// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19235// for more information on using Contexts.
19236func (c *IoT) RegisterCACertificateWithContext(ctx aws.Context, input *RegisterCACertificateInput, opts ...request.Option) (*RegisterCACertificateOutput, error) {
19237	req, out := c.RegisterCACertificateRequest(input)
19238	req.SetContext(ctx)
19239	req.ApplyOptions(opts...)
19240	return out, req.Send()
19241}
19242
19243const opRegisterCertificate = "RegisterCertificate"
19244
19245// RegisterCertificateRequest generates a "aws/request.Request" representing the
19246// client's request for the RegisterCertificate operation. The "output" return
19247// value will be populated with the request's response once the request completes
19248// successfully.
19249//
19250// Use "Send" method on the returned Request to send the API call to the service.
19251// the "output" return value is not valid until after Send returns without error.
19252//
19253// See RegisterCertificate for more information on using the RegisterCertificate
19254// API call, and error handling.
19255//
19256// This method is useful when you want to inject custom logic or configuration
19257// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19258//
19259//
19260//    // Example sending a request using the RegisterCertificateRequest method.
19261//    req, resp := client.RegisterCertificateRequest(params)
19262//
19263//    err := req.Send()
19264//    if err == nil { // resp is now filled
19265//        fmt.Println(resp)
19266//    }
19267func (c *IoT) RegisterCertificateRequest(input *RegisterCertificateInput) (req *request.Request, output *RegisterCertificateOutput) {
19268	op := &request.Operation{
19269		Name:       opRegisterCertificate,
19270		HTTPMethod: "POST",
19271		HTTPPath:   "/certificate/register",
19272	}
19273
19274	if input == nil {
19275		input = &RegisterCertificateInput{}
19276	}
19277
19278	output = &RegisterCertificateOutput{}
19279	req = c.newRequest(op, input, output)
19280	return
19281}
19282
19283// RegisterCertificate API operation for AWS IoT.
19284//
19285// Registers a device certificate with AWS IoT. If you have more than one CA
19286// certificate that has the same subject field, you must specify the CA certificate
19287// that was used to sign the device certificate being registered.
19288//
19289// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19290// with awserr.Error's Code and Message methods to get detailed information about
19291// the error.
19292//
19293// See the AWS API reference guide for AWS IoT's
19294// API operation RegisterCertificate for usage and error information.
19295//
19296// Returned Error Types:
19297//   * ResourceAlreadyExistsException
19298//   The resource already exists.
19299//
19300//   * InvalidRequestException
19301//   The request is not valid.
19302//
19303//   * CertificateValidationException
19304//   The certificate is invalid.
19305//
19306//   * CertificateStateException
19307//   The certificate operation is not allowed.
19308//
19309//   * CertificateConflictException
19310//   Unable to verify the CA certificate used to sign the device certificate you
19311//   are attempting to register. This is happens when you have registered more
19312//   than one CA certificate that has the same subject field and public key.
19313//
19314//   * ThrottlingException
19315//   The rate exceeds the limit.
19316//
19317//   * UnauthorizedException
19318//   You are not authorized to perform this operation.
19319//
19320//   * ServiceUnavailableException
19321//   The service is temporarily unavailable.
19322//
19323//   * InternalFailureException
19324//   An unexpected error has occurred.
19325//
19326func (c *IoT) RegisterCertificate(input *RegisterCertificateInput) (*RegisterCertificateOutput, error) {
19327	req, out := c.RegisterCertificateRequest(input)
19328	return out, req.Send()
19329}
19330
19331// RegisterCertificateWithContext is the same as RegisterCertificate with the addition of
19332// the ability to pass a context and additional request options.
19333//
19334// See RegisterCertificate for details on how to use this API operation.
19335//
19336// The context must be non-nil and will be used for request cancellation. If
19337// the context is nil a panic will occur. In the future the SDK may create
19338// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19339// for more information on using Contexts.
19340func (c *IoT) RegisterCertificateWithContext(ctx aws.Context, input *RegisterCertificateInput, opts ...request.Option) (*RegisterCertificateOutput, error) {
19341	req, out := c.RegisterCertificateRequest(input)
19342	req.SetContext(ctx)
19343	req.ApplyOptions(opts...)
19344	return out, req.Send()
19345}
19346
19347const opRegisterCertificateWithoutCA = "RegisterCertificateWithoutCA"
19348
19349// RegisterCertificateWithoutCARequest generates a "aws/request.Request" representing the
19350// client's request for the RegisterCertificateWithoutCA operation. The "output" return
19351// value will be populated with the request's response once the request completes
19352// successfully.
19353//
19354// Use "Send" method on the returned Request to send the API call to the service.
19355// the "output" return value is not valid until after Send returns without error.
19356//
19357// See RegisterCertificateWithoutCA for more information on using the RegisterCertificateWithoutCA
19358// API call, and error handling.
19359//
19360// This method is useful when you want to inject custom logic or configuration
19361// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19362//
19363//
19364//    // Example sending a request using the RegisterCertificateWithoutCARequest method.
19365//    req, resp := client.RegisterCertificateWithoutCARequest(params)
19366//
19367//    err := req.Send()
19368//    if err == nil { // resp is now filled
19369//        fmt.Println(resp)
19370//    }
19371func (c *IoT) RegisterCertificateWithoutCARequest(input *RegisterCertificateWithoutCAInput) (req *request.Request, output *RegisterCertificateWithoutCAOutput) {
19372	op := &request.Operation{
19373		Name:       opRegisterCertificateWithoutCA,
19374		HTTPMethod: "POST",
19375		HTTPPath:   "/certificate/register-no-ca",
19376	}
19377
19378	if input == nil {
19379		input = &RegisterCertificateWithoutCAInput{}
19380	}
19381
19382	output = &RegisterCertificateWithoutCAOutput{}
19383	req = c.newRequest(op, input, output)
19384	return
19385}
19386
19387// RegisterCertificateWithoutCA API operation for AWS IoT.
19388//
19389// Register a certificate that does not have a certificate authority (CA).
19390//
19391// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19392// with awserr.Error's Code and Message methods to get detailed information about
19393// the error.
19394//
19395// See the AWS API reference guide for AWS IoT's
19396// API operation RegisterCertificateWithoutCA for usage and error information.
19397//
19398// Returned Error Types:
19399//   * ResourceAlreadyExistsException
19400//   The resource already exists.
19401//
19402//   * InvalidRequestException
19403//   The request is not valid.
19404//
19405//   * CertificateStateException
19406//   The certificate operation is not allowed.
19407//
19408//   * CertificateValidationException
19409//   The certificate is invalid.
19410//
19411//   * ThrottlingException
19412//   The rate exceeds the limit.
19413//
19414//   * UnauthorizedException
19415//   You are not authorized to perform this operation.
19416//
19417//   * ServiceUnavailableException
19418//   The service is temporarily unavailable.
19419//
19420//   * InternalFailureException
19421//   An unexpected error has occurred.
19422//
19423func (c *IoT) RegisterCertificateWithoutCA(input *RegisterCertificateWithoutCAInput) (*RegisterCertificateWithoutCAOutput, error) {
19424	req, out := c.RegisterCertificateWithoutCARequest(input)
19425	return out, req.Send()
19426}
19427
19428// RegisterCertificateWithoutCAWithContext is the same as RegisterCertificateWithoutCA with the addition of
19429// the ability to pass a context and additional request options.
19430//
19431// See RegisterCertificateWithoutCA for details on how to use this API operation.
19432//
19433// The context must be non-nil and will be used for request cancellation. If
19434// the context is nil a panic will occur. In the future the SDK may create
19435// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19436// for more information on using Contexts.
19437func (c *IoT) RegisterCertificateWithoutCAWithContext(ctx aws.Context, input *RegisterCertificateWithoutCAInput, opts ...request.Option) (*RegisterCertificateWithoutCAOutput, error) {
19438	req, out := c.RegisterCertificateWithoutCARequest(input)
19439	req.SetContext(ctx)
19440	req.ApplyOptions(opts...)
19441	return out, req.Send()
19442}
19443
19444const opRegisterThing = "RegisterThing"
19445
19446// RegisterThingRequest generates a "aws/request.Request" representing the
19447// client's request for the RegisterThing operation. The "output" return
19448// value will be populated with the request's response once the request completes
19449// successfully.
19450//
19451// Use "Send" method on the returned Request to send the API call to the service.
19452// the "output" return value is not valid until after Send returns without error.
19453//
19454// See RegisterThing for more information on using the RegisterThing
19455// API call, and error handling.
19456//
19457// This method is useful when you want to inject custom logic or configuration
19458// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19459//
19460//
19461//    // Example sending a request using the RegisterThingRequest method.
19462//    req, resp := client.RegisterThingRequest(params)
19463//
19464//    err := req.Send()
19465//    if err == nil { // resp is now filled
19466//        fmt.Println(resp)
19467//    }
19468func (c *IoT) RegisterThingRequest(input *RegisterThingInput) (req *request.Request, output *RegisterThingOutput) {
19469	op := &request.Operation{
19470		Name:       opRegisterThing,
19471		HTTPMethod: "POST",
19472		HTTPPath:   "/things",
19473	}
19474
19475	if input == nil {
19476		input = &RegisterThingInput{}
19477	}
19478
19479	output = &RegisterThingOutput{}
19480	req = c.newRequest(op, input, output)
19481	return
19482}
19483
19484// RegisterThing API operation for AWS IoT.
19485//
19486// Provisions a thing in the device registry. RegisterThing calls other AWS
19487// IoT control plane APIs. These calls might exceed your account level AWS IoT
19488// Throttling Limits (https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_iot)
19489// and cause throttle errors. Please contact AWS Customer Support (https://console.aws.amazon.com/support/home)
19490// to raise your throttling limits if necessary.
19491//
19492// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19493// with awserr.Error's Code and Message methods to get detailed information about
19494// the error.
19495//
19496// See the AWS API reference guide for AWS IoT's
19497// API operation RegisterThing for usage and error information.
19498//
19499// Returned Error Types:
19500//   * InternalFailureException
19501//   An unexpected error has occurred.
19502//
19503//   * ServiceUnavailableException
19504//   The service is temporarily unavailable.
19505//
19506//   * InvalidRequestException
19507//   The request is not valid.
19508//
19509//   * UnauthorizedException
19510//   You are not authorized to perform this operation.
19511//
19512//   * ThrottlingException
19513//   The rate exceeds the limit.
19514//
19515//   * ConflictingResourceUpdateException
19516//   A conflicting resource update exception. This exception is thrown when two
19517//   pending updates cause a conflict.
19518//
19519//   * ResourceRegistrationFailureException
19520//   The resource registration failed.
19521//
19522func (c *IoT) RegisterThing(input *RegisterThingInput) (*RegisterThingOutput, error) {
19523	req, out := c.RegisterThingRequest(input)
19524	return out, req.Send()
19525}
19526
19527// RegisterThingWithContext is the same as RegisterThing with the addition of
19528// the ability to pass a context and additional request options.
19529//
19530// See RegisterThing for details on how to use this API operation.
19531//
19532// The context must be non-nil and will be used for request cancellation. If
19533// the context is nil a panic will occur. In the future the SDK may create
19534// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19535// for more information on using Contexts.
19536func (c *IoT) RegisterThingWithContext(ctx aws.Context, input *RegisterThingInput, opts ...request.Option) (*RegisterThingOutput, error) {
19537	req, out := c.RegisterThingRequest(input)
19538	req.SetContext(ctx)
19539	req.ApplyOptions(opts...)
19540	return out, req.Send()
19541}
19542
19543const opRejectCertificateTransfer = "RejectCertificateTransfer"
19544
19545// RejectCertificateTransferRequest generates a "aws/request.Request" representing the
19546// client's request for the RejectCertificateTransfer operation. The "output" return
19547// value will be populated with the request's response once the request completes
19548// successfully.
19549//
19550// Use "Send" method on the returned Request to send the API call to the service.
19551// the "output" return value is not valid until after Send returns without error.
19552//
19553// See RejectCertificateTransfer for more information on using the RejectCertificateTransfer
19554// API call, and error handling.
19555//
19556// This method is useful when you want to inject custom logic or configuration
19557// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19558//
19559//
19560//    // Example sending a request using the RejectCertificateTransferRequest method.
19561//    req, resp := client.RejectCertificateTransferRequest(params)
19562//
19563//    err := req.Send()
19564//    if err == nil { // resp is now filled
19565//        fmt.Println(resp)
19566//    }
19567func (c *IoT) RejectCertificateTransferRequest(input *RejectCertificateTransferInput) (req *request.Request, output *RejectCertificateTransferOutput) {
19568	op := &request.Operation{
19569		Name:       opRejectCertificateTransfer,
19570		HTTPMethod: "PATCH",
19571		HTTPPath:   "/reject-certificate-transfer/{certificateId}",
19572	}
19573
19574	if input == nil {
19575		input = &RejectCertificateTransferInput{}
19576	}
19577
19578	output = &RejectCertificateTransferOutput{}
19579	req = c.newRequest(op, input, output)
19580	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19581	return
19582}
19583
19584// RejectCertificateTransfer API operation for AWS IoT.
19585//
19586// Rejects a pending certificate transfer. After AWS IoT rejects a certificate
19587// transfer, the certificate status changes from PENDING_TRANSFER to INACTIVE.
19588//
19589// To check for pending certificate transfers, call ListCertificates to enumerate
19590// your certificates.
19591//
19592// This operation can only be called by the transfer destination. After it is
19593// called, the certificate will be returned to the source's account in the INACTIVE
19594// state.
19595//
19596// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19597// with awserr.Error's Code and Message methods to get detailed information about
19598// the error.
19599//
19600// See the AWS API reference guide for AWS IoT's
19601// API operation RejectCertificateTransfer for usage and error information.
19602//
19603// Returned Error Types:
19604//   * ResourceNotFoundException
19605//   The specified resource does not exist.
19606//
19607//   * TransferAlreadyCompletedException
19608//   You can't revert the certificate transfer because the transfer is already
19609//   complete.
19610//
19611//   * InvalidRequestException
19612//   The request is not valid.
19613//
19614//   * ThrottlingException
19615//   The rate exceeds the limit.
19616//
19617//   * UnauthorizedException
19618//   You are not authorized to perform this operation.
19619//
19620//   * ServiceUnavailableException
19621//   The service is temporarily unavailable.
19622//
19623//   * InternalFailureException
19624//   An unexpected error has occurred.
19625//
19626func (c *IoT) RejectCertificateTransfer(input *RejectCertificateTransferInput) (*RejectCertificateTransferOutput, error) {
19627	req, out := c.RejectCertificateTransferRequest(input)
19628	return out, req.Send()
19629}
19630
19631// RejectCertificateTransferWithContext is the same as RejectCertificateTransfer with the addition of
19632// the ability to pass a context and additional request options.
19633//
19634// See RejectCertificateTransfer for details on how to use this API operation.
19635//
19636// The context must be non-nil and will be used for request cancellation. If
19637// the context is nil a panic will occur. In the future the SDK may create
19638// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19639// for more information on using Contexts.
19640func (c *IoT) RejectCertificateTransferWithContext(ctx aws.Context, input *RejectCertificateTransferInput, opts ...request.Option) (*RejectCertificateTransferOutput, error) {
19641	req, out := c.RejectCertificateTransferRequest(input)
19642	req.SetContext(ctx)
19643	req.ApplyOptions(opts...)
19644	return out, req.Send()
19645}
19646
19647const opRemoveThingFromBillingGroup = "RemoveThingFromBillingGroup"
19648
19649// RemoveThingFromBillingGroupRequest generates a "aws/request.Request" representing the
19650// client's request for the RemoveThingFromBillingGroup operation. The "output" return
19651// value will be populated with the request's response once the request completes
19652// successfully.
19653//
19654// Use "Send" method on the returned Request to send the API call to the service.
19655// the "output" return value is not valid until after Send returns without error.
19656//
19657// See RemoveThingFromBillingGroup for more information on using the RemoveThingFromBillingGroup
19658// API call, and error handling.
19659//
19660// This method is useful when you want to inject custom logic or configuration
19661// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19662//
19663//
19664//    // Example sending a request using the RemoveThingFromBillingGroupRequest method.
19665//    req, resp := client.RemoveThingFromBillingGroupRequest(params)
19666//
19667//    err := req.Send()
19668//    if err == nil { // resp is now filled
19669//        fmt.Println(resp)
19670//    }
19671func (c *IoT) RemoveThingFromBillingGroupRequest(input *RemoveThingFromBillingGroupInput) (req *request.Request, output *RemoveThingFromBillingGroupOutput) {
19672	op := &request.Operation{
19673		Name:       opRemoveThingFromBillingGroup,
19674		HTTPMethod: "PUT",
19675		HTTPPath:   "/billing-groups/removeThingFromBillingGroup",
19676	}
19677
19678	if input == nil {
19679		input = &RemoveThingFromBillingGroupInput{}
19680	}
19681
19682	output = &RemoveThingFromBillingGroupOutput{}
19683	req = c.newRequest(op, input, output)
19684	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19685	return
19686}
19687
19688// RemoveThingFromBillingGroup API operation for AWS IoT.
19689//
19690// Removes the given thing from the billing group.
19691//
19692// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19693// with awserr.Error's Code and Message methods to get detailed information about
19694// the error.
19695//
19696// See the AWS API reference guide for AWS IoT's
19697// API operation RemoveThingFromBillingGroup for usage and error information.
19698//
19699// Returned Error Types:
19700//   * InvalidRequestException
19701//   The request is not valid.
19702//
19703//   * ThrottlingException
19704//   The rate exceeds the limit.
19705//
19706//   * InternalFailureException
19707//   An unexpected error has occurred.
19708//
19709//   * ResourceNotFoundException
19710//   The specified resource does not exist.
19711//
19712func (c *IoT) RemoveThingFromBillingGroup(input *RemoveThingFromBillingGroupInput) (*RemoveThingFromBillingGroupOutput, error) {
19713	req, out := c.RemoveThingFromBillingGroupRequest(input)
19714	return out, req.Send()
19715}
19716
19717// RemoveThingFromBillingGroupWithContext is the same as RemoveThingFromBillingGroup with the addition of
19718// the ability to pass a context and additional request options.
19719//
19720// See RemoveThingFromBillingGroup for details on how to use this API operation.
19721//
19722// The context must be non-nil and will be used for request cancellation. If
19723// the context is nil a panic will occur. In the future the SDK may create
19724// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19725// for more information on using Contexts.
19726func (c *IoT) RemoveThingFromBillingGroupWithContext(ctx aws.Context, input *RemoveThingFromBillingGroupInput, opts ...request.Option) (*RemoveThingFromBillingGroupOutput, error) {
19727	req, out := c.RemoveThingFromBillingGroupRequest(input)
19728	req.SetContext(ctx)
19729	req.ApplyOptions(opts...)
19730	return out, req.Send()
19731}
19732
19733const opRemoveThingFromThingGroup = "RemoveThingFromThingGroup"
19734
19735// RemoveThingFromThingGroupRequest generates a "aws/request.Request" representing the
19736// client's request for the RemoveThingFromThingGroup operation. The "output" return
19737// value will be populated with the request's response once the request completes
19738// successfully.
19739//
19740// Use "Send" method on the returned Request to send the API call to the service.
19741// the "output" return value is not valid until after Send returns without error.
19742//
19743// See RemoveThingFromThingGroup for more information on using the RemoveThingFromThingGroup
19744// API call, and error handling.
19745//
19746// This method is useful when you want to inject custom logic or configuration
19747// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19748//
19749//
19750//    // Example sending a request using the RemoveThingFromThingGroupRequest method.
19751//    req, resp := client.RemoveThingFromThingGroupRequest(params)
19752//
19753//    err := req.Send()
19754//    if err == nil { // resp is now filled
19755//        fmt.Println(resp)
19756//    }
19757func (c *IoT) RemoveThingFromThingGroupRequest(input *RemoveThingFromThingGroupInput) (req *request.Request, output *RemoveThingFromThingGroupOutput) {
19758	op := &request.Operation{
19759		Name:       opRemoveThingFromThingGroup,
19760		HTTPMethod: "PUT",
19761		HTTPPath:   "/thing-groups/removeThingFromThingGroup",
19762	}
19763
19764	if input == nil {
19765		input = &RemoveThingFromThingGroupInput{}
19766	}
19767
19768	output = &RemoveThingFromThingGroupOutput{}
19769	req = c.newRequest(op, input, output)
19770	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19771	return
19772}
19773
19774// RemoveThingFromThingGroup API operation for AWS IoT.
19775//
19776// Remove the specified thing from the specified group.
19777//
19778// You must specify either a thingGroupArn or a thingGroupName to identify the
19779// thing group and either a thingArn or a thingName to identify the thing to
19780// remove from the thing group.
19781//
19782// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19783// with awserr.Error's Code and Message methods to get detailed information about
19784// the error.
19785//
19786// See the AWS API reference guide for AWS IoT's
19787// API operation RemoveThingFromThingGroup for usage and error information.
19788//
19789// Returned Error Types:
19790//   * InvalidRequestException
19791//   The request is not valid.
19792//
19793//   * ThrottlingException
19794//   The rate exceeds the limit.
19795//
19796//   * InternalFailureException
19797//   An unexpected error has occurred.
19798//
19799//   * ResourceNotFoundException
19800//   The specified resource does not exist.
19801//
19802func (c *IoT) RemoveThingFromThingGroup(input *RemoveThingFromThingGroupInput) (*RemoveThingFromThingGroupOutput, error) {
19803	req, out := c.RemoveThingFromThingGroupRequest(input)
19804	return out, req.Send()
19805}
19806
19807// RemoveThingFromThingGroupWithContext is the same as RemoveThingFromThingGroup with the addition of
19808// the ability to pass a context and additional request options.
19809//
19810// See RemoveThingFromThingGroup for details on how to use this API operation.
19811//
19812// The context must be non-nil and will be used for request cancellation. If
19813// the context is nil a panic will occur. In the future the SDK may create
19814// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19815// for more information on using Contexts.
19816func (c *IoT) RemoveThingFromThingGroupWithContext(ctx aws.Context, input *RemoveThingFromThingGroupInput, opts ...request.Option) (*RemoveThingFromThingGroupOutput, error) {
19817	req, out := c.RemoveThingFromThingGroupRequest(input)
19818	req.SetContext(ctx)
19819	req.ApplyOptions(opts...)
19820	return out, req.Send()
19821}
19822
19823const opReplaceTopicRule = "ReplaceTopicRule"
19824
19825// ReplaceTopicRuleRequest generates a "aws/request.Request" representing the
19826// client's request for the ReplaceTopicRule operation. The "output" return
19827// value will be populated with the request's response once the request completes
19828// successfully.
19829//
19830// Use "Send" method on the returned Request to send the API call to the service.
19831// the "output" return value is not valid until after Send returns without error.
19832//
19833// See ReplaceTopicRule for more information on using the ReplaceTopicRule
19834// API call, and error handling.
19835//
19836// This method is useful when you want to inject custom logic or configuration
19837// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19838//
19839//
19840//    // Example sending a request using the ReplaceTopicRuleRequest method.
19841//    req, resp := client.ReplaceTopicRuleRequest(params)
19842//
19843//    err := req.Send()
19844//    if err == nil { // resp is now filled
19845//        fmt.Println(resp)
19846//    }
19847func (c *IoT) ReplaceTopicRuleRequest(input *ReplaceTopicRuleInput) (req *request.Request, output *ReplaceTopicRuleOutput) {
19848	op := &request.Operation{
19849		Name:       opReplaceTopicRule,
19850		HTTPMethod: "PATCH",
19851		HTTPPath:   "/rules/{ruleName}",
19852	}
19853
19854	if input == nil {
19855		input = &ReplaceTopicRuleInput{}
19856	}
19857
19858	output = &ReplaceTopicRuleOutput{}
19859	req = c.newRequest(op, input, output)
19860	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
19861	return
19862}
19863
19864// ReplaceTopicRule API operation for AWS IoT.
19865//
19866// Replaces the rule. You must specify all parameters for the new rule. Creating
19867// rules is an administrator-level action. Any user who has permission to create
19868// rules will be able to access data processed by the rule.
19869//
19870// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19871// with awserr.Error's Code and Message methods to get detailed information about
19872// the error.
19873//
19874// See the AWS API reference guide for AWS IoT's
19875// API operation ReplaceTopicRule for usage and error information.
19876//
19877// Returned Error Types:
19878//   * SqlParseException
19879//   The Rule-SQL expression can't be parsed correctly.
19880//
19881//   * InternalException
19882//   An unexpected error has occurred.
19883//
19884//   * InvalidRequestException
19885//   The request is not valid.
19886//
19887//   * ServiceUnavailableException
19888//   The service is temporarily unavailable.
19889//
19890//   * UnauthorizedException
19891//   You are not authorized to perform this operation.
19892//
19893//   * ConflictingResourceUpdateException
19894//   A conflicting resource update exception. This exception is thrown when two
19895//   pending updates cause a conflict.
19896//
19897func (c *IoT) ReplaceTopicRule(input *ReplaceTopicRuleInput) (*ReplaceTopicRuleOutput, error) {
19898	req, out := c.ReplaceTopicRuleRequest(input)
19899	return out, req.Send()
19900}
19901
19902// ReplaceTopicRuleWithContext is the same as ReplaceTopicRule with the addition of
19903// the ability to pass a context and additional request options.
19904//
19905// See ReplaceTopicRule for details on how to use this API operation.
19906//
19907// The context must be non-nil and will be used for request cancellation. If
19908// the context is nil a panic will occur. In the future the SDK may create
19909// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19910// for more information on using Contexts.
19911func (c *IoT) ReplaceTopicRuleWithContext(ctx aws.Context, input *ReplaceTopicRuleInput, opts ...request.Option) (*ReplaceTopicRuleOutput, error) {
19912	req, out := c.ReplaceTopicRuleRequest(input)
19913	req.SetContext(ctx)
19914	req.ApplyOptions(opts...)
19915	return out, req.Send()
19916}
19917
19918const opSearchIndex = "SearchIndex"
19919
19920// SearchIndexRequest generates a "aws/request.Request" representing the
19921// client's request for the SearchIndex operation. The "output" return
19922// value will be populated with the request's response once the request completes
19923// successfully.
19924//
19925// Use "Send" method on the returned Request to send the API call to the service.
19926// the "output" return value is not valid until after Send returns without error.
19927//
19928// See SearchIndex for more information on using the SearchIndex
19929// API call, and error handling.
19930//
19931// This method is useful when you want to inject custom logic or configuration
19932// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19933//
19934//
19935//    // Example sending a request using the SearchIndexRequest method.
19936//    req, resp := client.SearchIndexRequest(params)
19937//
19938//    err := req.Send()
19939//    if err == nil { // resp is now filled
19940//        fmt.Println(resp)
19941//    }
19942func (c *IoT) SearchIndexRequest(input *SearchIndexInput) (req *request.Request, output *SearchIndexOutput) {
19943	op := &request.Operation{
19944		Name:       opSearchIndex,
19945		HTTPMethod: "POST",
19946		HTTPPath:   "/indices/search",
19947	}
19948
19949	if input == nil {
19950		input = &SearchIndexInput{}
19951	}
19952
19953	output = &SearchIndexOutput{}
19954	req = c.newRequest(op, input, output)
19955	return
19956}
19957
19958// SearchIndex API operation for AWS IoT.
19959//
19960// The query search index.
19961//
19962// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19963// with awserr.Error's Code and Message methods to get detailed information about
19964// the error.
19965//
19966// See the AWS API reference guide for AWS IoT's
19967// API operation SearchIndex for usage and error information.
19968//
19969// Returned Error Types:
19970//   * InvalidRequestException
19971//   The request is not valid.
19972//
19973//   * ThrottlingException
19974//   The rate exceeds the limit.
19975//
19976//   * UnauthorizedException
19977//   You are not authorized to perform this operation.
19978//
19979//   * ServiceUnavailableException
19980//   The service is temporarily unavailable.
19981//
19982//   * InternalFailureException
19983//   An unexpected error has occurred.
19984//
19985//   * ResourceNotFoundException
19986//   The specified resource does not exist.
19987//
19988//   * InvalidQueryException
19989//   The query is invalid.
19990//
19991//   * IndexNotReadyException
19992//   The index is not ready.
19993//
19994func (c *IoT) SearchIndex(input *SearchIndexInput) (*SearchIndexOutput, error) {
19995	req, out := c.SearchIndexRequest(input)
19996	return out, req.Send()
19997}
19998
19999// SearchIndexWithContext is the same as SearchIndex with the addition of
20000// the ability to pass a context and additional request options.
20001//
20002// See SearchIndex for details on how to use this API operation.
20003//
20004// The context must be non-nil and will be used for request cancellation. If
20005// the context is nil a panic will occur. In the future the SDK may create
20006// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20007// for more information on using Contexts.
20008func (c *IoT) SearchIndexWithContext(ctx aws.Context, input *SearchIndexInput, opts ...request.Option) (*SearchIndexOutput, error) {
20009	req, out := c.SearchIndexRequest(input)
20010	req.SetContext(ctx)
20011	req.ApplyOptions(opts...)
20012	return out, req.Send()
20013}
20014
20015const opSetDefaultAuthorizer = "SetDefaultAuthorizer"
20016
20017// SetDefaultAuthorizerRequest generates a "aws/request.Request" representing the
20018// client's request for the SetDefaultAuthorizer operation. The "output" return
20019// value will be populated with the request's response once the request completes
20020// successfully.
20021//
20022// Use "Send" method on the returned Request to send the API call to the service.
20023// the "output" return value is not valid until after Send returns without error.
20024//
20025// See SetDefaultAuthorizer for more information on using the SetDefaultAuthorizer
20026// API call, and error handling.
20027//
20028// This method is useful when you want to inject custom logic or configuration
20029// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20030//
20031//
20032//    // Example sending a request using the SetDefaultAuthorizerRequest method.
20033//    req, resp := client.SetDefaultAuthorizerRequest(params)
20034//
20035//    err := req.Send()
20036//    if err == nil { // resp is now filled
20037//        fmt.Println(resp)
20038//    }
20039func (c *IoT) SetDefaultAuthorizerRequest(input *SetDefaultAuthorizerInput) (req *request.Request, output *SetDefaultAuthorizerOutput) {
20040	op := &request.Operation{
20041		Name:       opSetDefaultAuthorizer,
20042		HTTPMethod: "POST",
20043		HTTPPath:   "/default-authorizer",
20044	}
20045
20046	if input == nil {
20047		input = &SetDefaultAuthorizerInput{}
20048	}
20049
20050	output = &SetDefaultAuthorizerOutput{}
20051	req = c.newRequest(op, input, output)
20052	return
20053}
20054
20055// SetDefaultAuthorizer API operation for AWS IoT.
20056//
20057// Sets the default authorizer. This will be used if a websocket connection
20058// is made without specifying an authorizer.
20059//
20060// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20061// with awserr.Error's Code and Message methods to get detailed information about
20062// the error.
20063//
20064// See the AWS API reference guide for AWS IoT's
20065// API operation SetDefaultAuthorizer for usage and error information.
20066//
20067// Returned Error Types:
20068//   * ResourceNotFoundException
20069//   The specified resource does not exist.
20070//
20071//   * InvalidRequestException
20072//   The request is not valid.
20073//
20074//   * ThrottlingException
20075//   The rate exceeds the limit.
20076//
20077//   * UnauthorizedException
20078//   You are not authorized to perform this operation.
20079//
20080//   * ServiceUnavailableException
20081//   The service is temporarily unavailable.
20082//
20083//   * InternalFailureException
20084//   An unexpected error has occurred.
20085//
20086//   * ResourceAlreadyExistsException
20087//   The resource already exists.
20088//
20089func (c *IoT) SetDefaultAuthorizer(input *SetDefaultAuthorizerInput) (*SetDefaultAuthorizerOutput, error) {
20090	req, out := c.SetDefaultAuthorizerRequest(input)
20091	return out, req.Send()
20092}
20093
20094// SetDefaultAuthorizerWithContext is the same as SetDefaultAuthorizer with the addition of
20095// the ability to pass a context and additional request options.
20096//
20097// See SetDefaultAuthorizer for details on how to use this API operation.
20098//
20099// The context must be non-nil and will be used for request cancellation. If
20100// the context is nil a panic will occur. In the future the SDK may create
20101// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20102// for more information on using Contexts.
20103func (c *IoT) SetDefaultAuthorizerWithContext(ctx aws.Context, input *SetDefaultAuthorizerInput, opts ...request.Option) (*SetDefaultAuthorizerOutput, error) {
20104	req, out := c.SetDefaultAuthorizerRequest(input)
20105	req.SetContext(ctx)
20106	req.ApplyOptions(opts...)
20107	return out, req.Send()
20108}
20109
20110const opSetDefaultPolicyVersion = "SetDefaultPolicyVersion"
20111
20112// SetDefaultPolicyVersionRequest generates a "aws/request.Request" representing the
20113// client's request for the SetDefaultPolicyVersion operation. The "output" return
20114// value will be populated with the request's response once the request completes
20115// successfully.
20116//
20117// Use "Send" method on the returned Request to send the API call to the service.
20118// the "output" return value is not valid until after Send returns without error.
20119//
20120// See SetDefaultPolicyVersion for more information on using the SetDefaultPolicyVersion
20121// API call, and error handling.
20122//
20123// This method is useful when you want to inject custom logic or configuration
20124// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20125//
20126//
20127//    // Example sending a request using the SetDefaultPolicyVersionRequest method.
20128//    req, resp := client.SetDefaultPolicyVersionRequest(params)
20129//
20130//    err := req.Send()
20131//    if err == nil { // resp is now filled
20132//        fmt.Println(resp)
20133//    }
20134func (c *IoT) SetDefaultPolicyVersionRequest(input *SetDefaultPolicyVersionInput) (req *request.Request, output *SetDefaultPolicyVersionOutput) {
20135	op := &request.Operation{
20136		Name:       opSetDefaultPolicyVersion,
20137		HTTPMethod: "PATCH",
20138		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
20139	}
20140
20141	if input == nil {
20142		input = &SetDefaultPolicyVersionInput{}
20143	}
20144
20145	output = &SetDefaultPolicyVersionOutput{}
20146	req = c.newRequest(op, input, output)
20147	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20148	return
20149}
20150
20151// SetDefaultPolicyVersion API operation for AWS IoT.
20152//
20153// Sets the specified version of the specified policy as the policy's default
20154// (operative) version. This action affects all certificates to which the policy
20155// is attached. To list the principals the policy is attached to, use the ListPrincipalPolicy
20156// API.
20157//
20158// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20159// with awserr.Error's Code and Message methods to get detailed information about
20160// the error.
20161//
20162// See the AWS API reference guide for AWS IoT's
20163// API operation SetDefaultPolicyVersion for usage and error information.
20164//
20165// Returned Error Types:
20166//   * ResourceNotFoundException
20167//   The specified resource does not exist.
20168//
20169//   * InvalidRequestException
20170//   The request is not valid.
20171//
20172//   * ThrottlingException
20173//   The rate exceeds the limit.
20174//
20175//   * UnauthorizedException
20176//   You are not authorized to perform this operation.
20177//
20178//   * ServiceUnavailableException
20179//   The service is temporarily unavailable.
20180//
20181//   * InternalFailureException
20182//   An unexpected error has occurred.
20183//
20184func (c *IoT) SetDefaultPolicyVersion(input *SetDefaultPolicyVersionInput) (*SetDefaultPolicyVersionOutput, error) {
20185	req, out := c.SetDefaultPolicyVersionRequest(input)
20186	return out, req.Send()
20187}
20188
20189// SetDefaultPolicyVersionWithContext is the same as SetDefaultPolicyVersion with the addition of
20190// the ability to pass a context and additional request options.
20191//
20192// See SetDefaultPolicyVersion for details on how to use this API operation.
20193//
20194// The context must be non-nil and will be used for request cancellation. If
20195// the context is nil a panic will occur. In the future the SDK may create
20196// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20197// for more information on using Contexts.
20198func (c *IoT) SetDefaultPolicyVersionWithContext(ctx aws.Context, input *SetDefaultPolicyVersionInput, opts ...request.Option) (*SetDefaultPolicyVersionOutput, error) {
20199	req, out := c.SetDefaultPolicyVersionRequest(input)
20200	req.SetContext(ctx)
20201	req.ApplyOptions(opts...)
20202	return out, req.Send()
20203}
20204
20205const opSetLoggingOptions = "SetLoggingOptions"
20206
20207// SetLoggingOptionsRequest generates a "aws/request.Request" representing the
20208// client's request for the SetLoggingOptions operation. The "output" return
20209// value will be populated with the request's response once the request completes
20210// successfully.
20211//
20212// Use "Send" method on the returned Request to send the API call to the service.
20213// the "output" return value is not valid until after Send returns without error.
20214//
20215// See SetLoggingOptions for more information on using the SetLoggingOptions
20216// API call, and error handling.
20217//
20218// This method is useful when you want to inject custom logic or configuration
20219// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20220//
20221//
20222//    // Example sending a request using the SetLoggingOptionsRequest method.
20223//    req, resp := client.SetLoggingOptionsRequest(params)
20224//
20225//    err := req.Send()
20226//    if err == nil { // resp is now filled
20227//        fmt.Println(resp)
20228//    }
20229func (c *IoT) SetLoggingOptionsRequest(input *SetLoggingOptionsInput) (req *request.Request, output *SetLoggingOptionsOutput) {
20230	op := &request.Operation{
20231		Name:       opSetLoggingOptions,
20232		HTTPMethod: "POST",
20233		HTTPPath:   "/loggingOptions",
20234	}
20235
20236	if input == nil {
20237		input = &SetLoggingOptionsInput{}
20238	}
20239
20240	output = &SetLoggingOptionsOutput{}
20241	req = c.newRequest(op, input, output)
20242	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20243	return
20244}
20245
20246// SetLoggingOptions API operation for AWS IoT.
20247//
20248// Sets the logging options.
20249//
20250// NOTE: use of this command is not recommended. Use SetV2LoggingOptions instead.
20251//
20252// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20253// with awserr.Error's Code and Message methods to get detailed information about
20254// the error.
20255//
20256// See the AWS API reference guide for AWS IoT's
20257// API operation SetLoggingOptions for usage and error information.
20258//
20259// Returned Error Types:
20260//   * InternalException
20261//   An unexpected error has occurred.
20262//
20263//   * InvalidRequestException
20264//   The request is not valid.
20265//
20266//   * ServiceUnavailableException
20267//   The service is temporarily unavailable.
20268//
20269func (c *IoT) SetLoggingOptions(input *SetLoggingOptionsInput) (*SetLoggingOptionsOutput, error) {
20270	req, out := c.SetLoggingOptionsRequest(input)
20271	return out, req.Send()
20272}
20273
20274// SetLoggingOptionsWithContext is the same as SetLoggingOptions with the addition of
20275// the ability to pass a context and additional request options.
20276//
20277// See SetLoggingOptions for details on how to use this API operation.
20278//
20279// The context must be non-nil and will be used for request cancellation. If
20280// the context is nil a panic will occur. In the future the SDK may create
20281// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20282// for more information on using Contexts.
20283func (c *IoT) SetLoggingOptionsWithContext(ctx aws.Context, input *SetLoggingOptionsInput, opts ...request.Option) (*SetLoggingOptionsOutput, error) {
20284	req, out := c.SetLoggingOptionsRequest(input)
20285	req.SetContext(ctx)
20286	req.ApplyOptions(opts...)
20287	return out, req.Send()
20288}
20289
20290const opSetV2LoggingLevel = "SetV2LoggingLevel"
20291
20292// SetV2LoggingLevelRequest generates a "aws/request.Request" representing the
20293// client's request for the SetV2LoggingLevel operation. The "output" return
20294// value will be populated with the request's response once the request completes
20295// successfully.
20296//
20297// Use "Send" method on the returned Request to send the API call to the service.
20298// the "output" return value is not valid until after Send returns without error.
20299//
20300// See SetV2LoggingLevel for more information on using the SetV2LoggingLevel
20301// API call, and error handling.
20302//
20303// This method is useful when you want to inject custom logic or configuration
20304// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20305//
20306//
20307//    // Example sending a request using the SetV2LoggingLevelRequest method.
20308//    req, resp := client.SetV2LoggingLevelRequest(params)
20309//
20310//    err := req.Send()
20311//    if err == nil { // resp is now filled
20312//        fmt.Println(resp)
20313//    }
20314func (c *IoT) SetV2LoggingLevelRequest(input *SetV2LoggingLevelInput) (req *request.Request, output *SetV2LoggingLevelOutput) {
20315	op := &request.Operation{
20316		Name:       opSetV2LoggingLevel,
20317		HTTPMethod: "POST",
20318		HTTPPath:   "/v2LoggingLevel",
20319	}
20320
20321	if input == nil {
20322		input = &SetV2LoggingLevelInput{}
20323	}
20324
20325	output = &SetV2LoggingLevelOutput{}
20326	req = c.newRequest(op, input, output)
20327	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20328	return
20329}
20330
20331// SetV2LoggingLevel API operation for AWS IoT.
20332//
20333// Sets the logging level.
20334//
20335// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20336// with awserr.Error's Code and Message methods to get detailed information about
20337// the error.
20338//
20339// See the AWS API reference guide for AWS IoT's
20340// API operation SetV2LoggingLevel for usage and error information.
20341//
20342// Returned Error Types:
20343//   * InternalException
20344//   An unexpected error has occurred.
20345//
20346//   * NotConfiguredException
20347//   The resource is not configured.
20348//
20349//   * InvalidRequestException
20350//   The request is not valid.
20351//
20352//   * ServiceUnavailableException
20353//   The service is temporarily unavailable.
20354//
20355//   * LimitExceededException
20356//   A limit has been exceeded.
20357//
20358func (c *IoT) SetV2LoggingLevel(input *SetV2LoggingLevelInput) (*SetV2LoggingLevelOutput, error) {
20359	req, out := c.SetV2LoggingLevelRequest(input)
20360	return out, req.Send()
20361}
20362
20363// SetV2LoggingLevelWithContext is the same as SetV2LoggingLevel with the addition of
20364// the ability to pass a context and additional request options.
20365//
20366// See SetV2LoggingLevel for details on how to use this API operation.
20367//
20368// The context must be non-nil and will be used for request cancellation. If
20369// the context is nil a panic will occur. In the future the SDK may create
20370// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20371// for more information on using Contexts.
20372func (c *IoT) SetV2LoggingLevelWithContext(ctx aws.Context, input *SetV2LoggingLevelInput, opts ...request.Option) (*SetV2LoggingLevelOutput, error) {
20373	req, out := c.SetV2LoggingLevelRequest(input)
20374	req.SetContext(ctx)
20375	req.ApplyOptions(opts...)
20376	return out, req.Send()
20377}
20378
20379const opSetV2LoggingOptions = "SetV2LoggingOptions"
20380
20381// SetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
20382// client's request for the SetV2LoggingOptions operation. The "output" return
20383// value will be populated with the request's response once the request completes
20384// successfully.
20385//
20386// Use "Send" method on the returned Request to send the API call to the service.
20387// the "output" return value is not valid until after Send returns without error.
20388//
20389// See SetV2LoggingOptions for more information on using the SetV2LoggingOptions
20390// API call, and error handling.
20391//
20392// This method is useful when you want to inject custom logic or configuration
20393// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20394//
20395//
20396//    // Example sending a request using the SetV2LoggingOptionsRequest method.
20397//    req, resp := client.SetV2LoggingOptionsRequest(params)
20398//
20399//    err := req.Send()
20400//    if err == nil { // resp is now filled
20401//        fmt.Println(resp)
20402//    }
20403func (c *IoT) SetV2LoggingOptionsRequest(input *SetV2LoggingOptionsInput) (req *request.Request, output *SetV2LoggingOptionsOutput) {
20404	op := &request.Operation{
20405		Name:       opSetV2LoggingOptions,
20406		HTTPMethod: "POST",
20407		HTTPPath:   "/v2LoggingOptions",
20408	}
20409
20410	if input == nil {
20411		input = &SetV2LoggingOptionsInput{}
20412	}
20413
20414	output = &SetV2LoggingOptionsOutput{}
20415	req = c.newRequest(op, input, output)
20416	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20417	return
20418}
20419
20420// SetV2LoggingOptions API operation for AWS IoT.
20421//
20422// Sets the logging options for the V2 logging service.
20423//
20424// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20425// with awserr.Error's Code and Message methods to get detailed information about
20426// the error.
20427//
20428// See the AWS API reference guide for AWS IoT's
20429// API operation SetV2LoggingOptions for usage and error information.
20430//
20431// Returned Error Types:
20432//   * InternalException
20433//   An unexpected error has occurred.
20434//
20435//   * InvalidRequestException
20436//   The request is not valid.
20437//
20438//   * ServiceUnavailableException
20439//   The service is temporarily unavailable.
20440//
20441func (c *IoT) SetV2LoggingOptions(input *SetV2LoggingOptionsInput) (*SetV2LoggingOptionsOutput, error) {
20442	req, out := c.SetV2LoggingOptionsRequest(input)
20443	return out, req.Send()
20444}
20445
20446// SetV2LoggingOptionsWithContext is the same as SetV2LoggingOptions with the addition of
20447// the ability to pass a context and additional request options.
20448//
20449// See SetV2LoggingOptions for details on how to use this API operation.
20450//
20451// The context must be non-nil and will be used for request cancellation. If
20452// the context is nil a panic will occur. In the future the SDK may create
20453// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20454// for more information on using Contexts.
20455func (c *IoT) SetV2LoggingOptionsWithContext(ctx aws.Context, input *SetV2LoggingOptionsInput, opts ...request.Option) (*SetV2LoggingOptionsOutput, error) {
20456	req, out := c.SetV2LoggingOptionsRequest(input)
20457	req.SetContext(ctx)
20458	req.ApplyOptions(opts...)
20459	return out, req.Send()
20460}
20461
20462const opStartAuditMitigationActionsTask = "StartAuditMitigationActionsTask"
20463
20464// StartAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
20465// client's request for the StartAuditMitigationActionsTask operation. The "output" return
20466// value will be populated with the request's response once the request completes
20467// successfully.
20468//
20469// Use "Send" method on the returned Request to send the API call to the service.
20470// the "output" return value is not valid until after Send returns without error.
20471//
20472// See StartAuditMitigationActionsTask for more information on using the StartAuditMitigationActionsTask
20473// API call, and error handling.
20474//
20475// This method is useful when you want to inject custom logic or configuration
20476// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20477//
20478//
20479//    // Example sending a request using the StartAuditMitigationActionsTaskRequest method.
20480//    req, resp := client.StartAuditMitigationActionsTaskRequest(params)
20481//
20482//    err := req.Send()
20483//    if err == nil { // resp is now filled
20484//        fmt.Println(resp)
20485//    }
20486func (c *IoT) StartAuditMitigationActionsTaskRequest(input *StartAuditMitigationActionsTaskInput) (req *request.Request, output *StartAuditMitigationActionsTaskOutput) {
20487	op := &request.Operation{
20488		Name:       opStartAuditMitigationActionsTask,
20489		HTTPMethod: "POST",
20490		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}",
20491	}
20492
20493	if input == nil {
20494		input = &StartAuditMitigationActionsTaskInput{}
20495	}
20496
20497	output = &StartAuditMitigationActionsTaskOutput{}
20498	req = c.newRequest(op, input, output)
20499	return
20500}
20501
20502// StartAuditMitigationActionsTask API operation for AWS IoT.
20503//
20504// Starts a task that applies a set of mitigation actions to the specified target.
20505//
20506// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20507// with awserr.Error's Code and Message methods to get detailed information about
20508// the error.
20509//
20510// See the AWS API reference guide for AWS IoT's
20511// API operation StartAuditMitigationActionsTask for usage and error information.
20512//
20513// Returned Error Types:
20514//   * InvalidRequestException
20515//   The request is not valid.
20516//
20517//   * TaskAlreadyExistsException
20518//   This exception occurs if you attempt to start a task with the same task-id
20519//   as an existing task but with a different clientRequestToken.
20520//
20521//   * LimitExceededException
20522//   A limit has been exceeded.
20523//
20524//   * ThrottlingException
20525//   The rate exceeds the limit.
20526//
20527//   * InternalFailureException
20528//   An unexpected error has occurred.
20529//
20530func (c *IoT) StartAuditMitigationActionsTask(input *StartAuditMitigationActionsTaskInput) (*StartAuditMitigationActionsTaskOutput, error) {
20531	req, out := c.StartAuditMitigationActionsTaskRequest(input)
20532	return out, req.Send()
20533}
20534
20535// StartAuditMitigationActionsTaskWithContext is the same as StartAuditMitigationActionsTask with the addition of
20536// the ability to pass a context and additional request options.
20537//
20538// See StartAuditMitigationActionsTask for details on how to use this API operation.
20539//
20540// The context must be non-nil and will be used for request cancellation. If
20541// the context is nil a panic will occur. In the future the SDK may create
20542// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20543// for more information on using Contexts.
20544func (c *IoT) StartAuditMitigationActionsTaskWithContext(ctx aws.Context, input *StartAuditMitigationActionsTaskInput, opts ...request.Option) (*StartAuditMitigationActionsTaskOutput, error) {
20545	req, out := c.StartAuditMitigationActionsTaskRequest(input)
20546	req.SetContext(ctx)
20547	req.ApplyOptions(opts...)
20548	return out, req.Send()
20549}
20550
20551const opStartDetectMitigationActionsTask = "StartDetectMitigationActionsTask"
20552
20553// StartDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
20554// client's request for the StartDetectMitigationActionsTask operation. The "output" return
20555// value will be populated with the request's response once the request completes
20556// successfully.
20557//
20558// Use "Send" method on the returned Request to send the API call to the service.
20559// the "output" return value is not valid until after Send returns without error.
20560//
20561// See StartDetectMitigationActionsTask for more information on using the StartDetectMitigationActionsTask
20562// API call, and error handling.
20563//
20564// This method is useful when you want to inject custom logic or configuration
20565// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20566//
20567//
20568//    // Example sending a request using the StartDetectMitigationActionsTaskRequest method.
20569//    req, resp := client.StartDetectMitigationActionsTaskRequest(params)
20570//
20571//    err := req.Send()
20572//    if err == nil { // resp is now filled
20573//        fmt.Println(resp)
20574//    }
20575func (c *IoT) StartDetectMitigationActionsTaskRequest(input *StartDetectMitigationActionsTaskInput) (req *request.Request, output *StartDetectMitigationActionsTaskOutput) {
20576	op := &request.Operation{
20577		Name:       opStartDetectMitigationActionsTask,
20578		HTTPMethod: "PUT",
20579		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}",
20580	}
20581
20582	if input == nil {
20583		input = &StartDetectMitigationActionsTaskInput{}
20584	}
20585
20586	output = &StartDetectMitigationActionsTaskOutput{}
20587	req = c.newRequest(op, input, output)
20588	return
20589}
20590
20591// StartDetectMitigationActionsTask API operation for AWS IoT.
20592//
20593// Starts a Device Defender ML Detect mitigation actions task.
20594//
20595// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20596// with awserr.Error's Code and Message methods to get detailed information about
20597// the error.
20598//
20599// See the AWS API reference guide for AWS IoT's
20600// API operation StartDetectMitigationActionsTask for usage and error information.
20601//
20602// Returned Error Types:
20603//   * InvalidRequestException
20604//   The request is not valid.
20605//
20606//   * TaskAlreadyExistsException
20607//   This exception occurs if you attempt to start a task with the same task-id
20608//   as an existing task but with a different clientRequestToken.
20609//
20610//   * LimitExceededException
20611//   A limit has been exceeded.
20612//
20613//   * ThrottlingException
20614//   The rate exceeds the limit.
20615//
20616//   * InternalFailureException
20617//   An unexpected error has occurred.
20618//
20619func (c *IoT) StartDetectMitigationActionsTask(input *StartDetectMitigationActionsTaskInput) (*StartDetectMitigationActionsTaskOutput, error) {
20620	req, out := c.StartDetectMitigationActionsTaskRequest(input)
20621	return out, req.Send()
20622}
20623
20624// StartDetectMitigationActionsTaskWithContext is the same as StartDetectMitigationActionsTask with the addition of
20625// the ability to pass a context and additional request options.
20626//
20627// See StartDetectMitigationActionsTask for details on how to use this API operation.
20628//
20629// The context must be non-nil and will be used for request cancellation. If
20630// the context is nil a panic will occur. In the future the SDK may create
20631// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20632// for more information on using Contexts.
20633func (c *IoT) StartDetectMitigationActionsTaskWithContext(ctx aws.Context, input *StartDetectMitigationActionsTaskInput, opts ...request.Option) (*StartDetectMitigationActionsTaskOutput, error) {
20634	req, out := c.StartDetectMitigationActionsTaskRequest(input)
20635	req.SetContext(ctx)
20636	req.ApplyOptions(opts...)
20637	return out, req.Send()
20638}
20639
20640const opStartOnDemandAuditTask = "StartOnDemandAuditTask"
20641
20642// StartOnDemandAuditTaskRequest generates a "aws/request.Request" representing the
20643// client's request for the StartOnDemandAuditTask operation. The "output" return
20644// value will be populated with the request's response once the request completes
20645// successfully.
20646//
20647// Use "Send" method on the returned Request to send the API call to the service.
20648// the "output" return value is not valid until after Send returns without error.
20649//
20650// See StartOnDemandAuditTask for more information on using the StartOnDemandAuditTask
20651// API call, and error handling.
20652//
20653// This method is useful when you want to inject custom logic or configuration
20654// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20655//
20656//
20657//    // Example sending a request using the StartOnDemandAuditTaskRequest method.
20658//    req, resp := client.StartOnDemandAuditTaskRequest(params)
20659//
20660//    err := req.Send()
20661//    if err == nil { // resp is now filled
20662//        fmt.Println(resp)
20663//    }
20664func (c *IoT) StartOnDemandAuditTaskRequest(input *StartOnDemandAuditTaskInput) (req *request.Request, output *StartOnDemandAuditTaskOutput) {
20665	op := &request.Operation{
20666		Name:       opStartOnDemandAuditTask,
20667		HTTPMethod: "POST",
20668		HTTPPath:   "/audit/tasks",
20669	}
20670
20671	if input == nil {
20672		input = &StartOnDemandAuditTaskInput{}
20673	}
20674
20675	output = &StartOnDemandAuditTaskOutput{}
20676	req = c.newRequest(op, input, output)
20677	return
20678}
20679
20680// StartOnDemandAuditTask API operation for AWS IoT.
20681//
20682// Starts an on-demand Device Defender audit.
20683//
20684// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20685// with awserr.Error's Code and Message methods to get detailed information about
20686// the error.
20687//
20688// See the AWS API reference guide for AWS IoT's
20689// API operation StartOnDemandAuditTask for usage and error information.
20690//
20691// Returned Error Types:
20692//   * InvalidRequestException
20693//   The request is not valid.
20694//
20695//   * ThrottlingException
20696//   The rate exceeds the limit.
20697//
20698//   * InternalFailureException
20699//   An unexpected error has occurred.
20700//
20701//   * LimitExceededException
20702//   A limit has been exceeded.
20703//
20704func (c *IoT) StartOnDemandAuditTask(input *StartOnDemandAuditTaskInput) (*StartOnDemandAuditTaskOutput, error) {
20705	req, out := c.StartOnDemandAuditTaskRequest(input)
20706	return out, req.Send()
20707}
20708
20709// StartOnDemandAuditTaskWithContext is the same as StartOnDemandAuditTask with the addition of
20710// the ability to pass a context and additional request options.
20711//
20712// See StartOnDemandAuditTask for details on how to use this API operation.
20713//
20714// The context must be non-nil and will be used for request cancellation. If
20715// the context is nil a panic will occur. In the future the SDK may create
20716// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20717// for more information on using Contexts.
20718func (c *IoT) StartOnDemandAuditTaskWithContext(ctx aws.Context, input *StartOnDemandAuditTaskInput, opts ...request.Option) (*StartOnDemandAuditTaskOutput, error) {
20719	req, out := c.StartOnDemandAuditTaskRequest(input)
20720	req.SetContext(ctx)
20721	req.ApplyOptions(opts...)
20722	return out, req.Send()
20723}
20724
20725const opStartThingRegistrationTask = "StartThingRegistrationTask"
20726
20727// StartThingRegistrationTaskRequest generates a "aws/request.Request" representing the
20728// client's request for the StartThingRegistrationTask operation. The "output" return
20729// value will be populated with the request's response once the request completes
20730// successfully.
20731//
20732// Use "Send" method on the returned Request to send the API call to the service.
20733// the "output" return value is not valid until after Send returns without error.
20734//
20735// See StartThingRegistrationTask for more information on using the StartThingRegistrationTask
20736// API call, and error handling.
20737//
20738// This method is useful when you want to inject custom logic or configuration
20739// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20740//
20741//
20742//    // Example sending a request using the StartThingRegistrationTaskRequest method.
20743//    req, resp := client.StartThingRegistrationTaskRequest(params)
20744//
20745//    err := req.Send()
20746//    if err == nil { // resp is now filled
20747//        fmt.Println(resp)
20748//    }
20749func (c *IoT) StartThingRegistrationTaskRequest(input *StartThingRegistrationTaskInput) (req *request.Request, output *StartThingRegistrationTaskOutput) {
20750	op := &request.Operation{
20751		Name:       opStartThingRegistrationTask,
20752		HTTPMethod: "POST",
20753		HTTPPath:   "/thing-registration-tasks",
20754	}
20755
20756	if input == nil {
20757		input = &StartThingRegistrationTaskInput{}
20758	}
20759
20760	output = &StartThingRegistrationTaskOutput{}
20761	req = c.newRequest(op, input, output)
20762	return
20763}
20764
20765// StartThingRegistrationTask API operation for AWS IoT.
20766//
20767// Creates a bulk thing provisioning task.
20768//
20769// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20770// with awserr.Error's Code and Message methods to get detailed information about
20771// the error.
20772//
20773// See the AWS API reference guide for AWS IoT's
20774// API operation StartThingRegistrationTask for usage and error information.
20775//
20776// Returned Error Types:
20777//   * InvalidRequestException
20778//   The request is not valid.
20779//
20780//   * ThrottlingException
20781//   The rate exceeds the limit.
20782//
20783//   * UnauthorizedException
20784//   You are not authorized to perform this operation.
20785//
20786//   * InternalFailureException
20787//   An unexpected error has occurred.
20788//
20789func (c *IoT) StartThingRegistrationTask(input *StartThingRegistrationTaskInput) (*StartThingRegistrationTaskOutput, error) {
20790	req, out := c.StartThingRegistrationTaskRequest(input)
20791	return out, req.Send()
20792}
20793
20794// StartThingRegistrationTaskWithContext is the same as StartThingRegistrationTask with the addition of
20795// the ability to pass a context and additional request options.
20796//
20797// See StartThingRegistrationTask for details on how to use this API operation.
20798//
20799// The context must be non-nil and will be used for request cancellation. If
20800// the context is nil a panic will occur. In the future the SDK may create
20801// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20802// for more information on using Contexts.
20803func (c *IoT) StartThingRegistrationTaskWithContext(ctx aws.Context, input *StartThingRegistrationTaskInput, opts ...request.Option) (*StartThingRegistrationTaskOutput, error) {
20804	req, out := c.StartThingRegistrationTaskRequest(input)
20805	req.SetContext(ctx)
20806	req.ApplyOptions(opts...)
20807	return out, req.Send()
20808}
20809
20810const opStopThingRegistrationTask = "StopThingRegistrationTask"
20811
20812// StopThingRegistrationTaskRequest generates a "aws/request.Request" representing the
20813// client's request for the StopThingRegistrationTask operation. The "output" return
20814// value will be populated with the request's response once the request completes
20815// successfully.
20816//
20817// Use "Send" method on the returned Request to send the API call to the service.
20818// the "output" return value is not valid until after Send returns without error.
20819//
20820// See StopThingRegistrationTask for more information on using the StopThingRegistrationTask
20821// API call, and error handling.
20822//
20823// This method is useful when you want to inject custom logic or configuration
20824// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20825//
20826//
20827//    // Example sending a request using the StopThingRegistrationTaskRequest method.
20828//    req, resp := client.StopThingRegistrationTaskRequest(params)
20829//
20830//    err := req.Send()
20831//    if err == nil { // resp is now filled
20832//        fmt.Println(resp)
20833//    }
20834func (c *IoT) StopThingRegistrationTaskRequest(input *StopThingRegistrationTaskInput) (req *request.Request, output *StopThingRegistrationTaskOutput) {
20835	op := &request.Operation{
20836		Name:       opStopThingRegistrationTask,
20837		HTTPMethod: "PUT",
20838		HTTPPath:   "/thing-registration-tasks/{taskId}/cancel",
20839	}
20840
20841	if input == nil {
20842		input = &StopThingRegistrationTaskInput{}
20843	}
20844
20845	output = &StopThingRegistrationTaskOutput{}
20846	req = c.newRequest(op, input, output)
20847	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20848	return
20849}
20850
20851// StopThingRegistrationTask API operation for AWS IoT.
20852//
20853// Cancels a bulk thing provisioning task.
20854//
20855// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20856// with awserr.Error's Code and Message methods to get detailed information about
20857// the error.
20858//
20859// See the AWS API reference guide for AWS IoT's
20860// API operation StopThingRegistrationTask for usage and error information.
20861//
20862// Returned Error Types:
20863//   * InvalidRequestException
20864//   The request is not valid.
20865//
20866//   * ThrottlingException
20867//   The rate exceeds the limit.
20868//
20869//   * UnauthorizedException
20870//   You are not authorized to perform this operation.
20871//
20872//   * InternalFailureException
20873//   An unexpected error has occurred.
20874//
20875//   * ResourceNotFoundException
20876//   The specified resource does not exist.
20877//
20878func (c *IoT) StopThingRegistrationTask(input *StopThingRegistrationTaskInput) (*StopThingRegistrationTaskOutput, error) {
20879	req, out := c.StopThingRegistrationTaskRequest(input)
20880	return out, req.Send()
20881}
20882
20883// StopThingRegistrationTaskWithContext is the same as StopThingRegistrationTask with the addition of
20884// the ability to pass a context and additional request options.
20885//
20886// See StopThingRegistrationTask for details on how to use this API operation.
20887//
20888// The context must be non-nil and will be used for request cancellation. If
20889// the context is nil a panic will occur. In the future the SDK may create
20890// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20891// for more information on using Contexts.
20892func (c *IoT) StopThingRegistrationTaskWithContext(ctx aws.Context, input *StopThingRegistrationTaskInput, opts ...request.Option) (*StopThingRegistrationTaskOutput, error) {
20893	req, out := c.StopThingRegistrationTaskRequest(input)
20894	req.SetContext(ctx)
20895	req.ApplyOptions(opts...)
20896	return out, req.Send()
20897}
20898
20899const opTagResource = "TagResource"
20900
20901// TagResourceRequest generates a "aws/request.Request" representing the
20902// client's request for the TagResource operation. The "output" return
20903// value will be populated with the request's response once the request completes
20904// successfully.
20905//
20906// Use "Send" method on the returned Request to send the API call to the service.
20907// the "output" return value is not valid until after Send returns without error.
20908//
20909// See TagResource for more information on using the TagResource
20910// API call, and error handling.
20911//
20912// This method is useful when you want to inject custom logic or configuration
20913// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20914//
20915//
20916//    // Example sending a request using the TagResourceRequest method.
20917//    req, resp := client.TagResourceRequest(params)
20918//
20919//    err := req.Send()
20920//    if err == nil { // resp is now filled
20921//        fmt.Println(resp)
20922//    }
20923func (c *IoT) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
20924	op := &request.Operation{
20925		Name:       opTagResource,
20926		HTTPMethod: "POST",
20927		HTTPPath:   "/tags",
20928	}
20929
20930	if input == nil {
20931		input = &TagResourceInput{}
20932	}
20933
20934	output = &TagResourceOutput{}
20935	req = c.newRequest(op, input, output)
20936	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20937	return
20938}
20939
20940// TagResource API operation for AWS IoT.
20941//
20942// Adds to or modifies the tags of the given resource. Tags are metadata which
20943// can be used to manage a resource.
20944//
20945// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20946// with awserr.Error's Code and Message methods to get detailed information about
20947// the error.
20948//
20949// See the AWS API reference guide for AWS IoT's
20950// API operation TagResource for usage and error information.
20951//
20952// Returned Error Types:
20953//   * InvalidRequestException
20954//   The request is not valid.
20955//
20956//   * InternalFailureException
20957//   An unexpected error has occurred.
20958//
20959//   * ResourceNotFoundException
20960//   The specified resource does not exist.
20961//
20962//   * ThrottlingException
20963//   The rate exceeds the limit.
20964//
20965//   * LimitExceededException
20966//   A limit has been exceeded.
20967//
20968func (c *IoT) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
20969	req, out := c.TagResourceRequest(input)
20970	return out, req.Send()
20971}
20972
20973// TagResourceWithContext is the same as TagResource with the addition of
20974// the ability to pass a context and additional request options.
20975//
20976// See TagResource for details on how to use this API operation.
20977//
20978// The context must be non-nil and will be used for request cancellation. If
20979// the context is nil a panic will occur. In the future the SDK may create
20980// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20981// for more information on using Contexts.
20982func (c *IoT) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
20983	req, out := c.TagResourceRequest(input)
20984	req.SetContext(ctx)
20985	req.ApplyOptions(opts...)
20986	return out, req.Send()
20987}
20988
20989const opTestAuthorization = "TestAuthorization"
20990
20991// TestAuthorizationRequest generates a "aws/request.Request" representing the
20992// client's request for the TestAuthorization operation. The "output" return
20993// value will be populated with the request's response once the request completes
20994// successfully.
20995//
20996// Use "Send" method on the returned Request to send the API call to the service.
20997// the "output" return value is not valid until after Send returns without error.
20998//
20999// See TestAuthorization for more information on using the TestAuthorization
21000// API call, and error handling.
21001//
21002// This method is useful when you want to inject custom logic or configuration
21003// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21004//
21005//
21006//    // Example sending a request using the TestAuthorizationRequest method.
21007//    req, resp := client.TestAuthorizationRequest(params)
21008//
21009//    err := req.Send()
21010//    if err == nil { // resp is now filled
21011//        fmt.Println(resp)
21012//    }
21013func (c *IoT) TestAuthorizationRequest(input *TestAuthorizationInput) (req *request.Request, output *TestAuthorizationOutput) {
21014	op := &request.Operation{
21015		Name:       opTestAuthorization,
21016		HTTPMethod: "POST",
21017		HTTPPath:   "/test-authorization",
21018	}
21019
21020	if input == nil {
21021		input = &TestAuthorizationInput{}
21022	}
21023
21024	output = &TestAuthorizationOutput{}
21025	req = c.newRequest(op, input, output)
21026	return
21027}
21028
21029// TestAuthorization API operation for AWS IoT.
21030//
21031// Tests if a specified principal is authorized to perform an AWS IoT action
21032// on a specified resource. Use this to test and debug the authorization behavior
21033// of devices that connect to the AWS IoT device gateway.
21034//
21035// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21036// with awserr.Error's Code and Message methods to get detailed information about
21037// the error.
21038//
21039// See the AWS API reference guide for AWS IoT's
21040// API operation TestAuthorization for usage and error information.
21041//
21042// Returned Error Types:
21043//   * ResourceNotFoundException
21044//   The specified resource does not exist.
21045//
21046//   * InvalidRequestException
21047//   The request is not valid.
21048//
21049//   * ThrottlingException
21050//   The rate exceeds the limit.
21051//
21052//   * UnauthorizedException
21053//   You are not authorized to perform this operation.
21054//
21055//   * ServiceUnavailableException
21056//   The service is temporarily unavailable.
21057//
21058//   * InternalFailureException
21059//   An unexpected error has occurred.
21060//
21061//   * LimitExceededException
21062//   A limit has been exceeded.
21063//
21064func (c *IoT) TestAuthorization(input *TestAuthorizationInput) (*TestAuthorizationOutput, error) {
21065	req, out := c.TestAuthorizationRequest(input)
21066	return out, req.Send()
21067}
21068
21069// TestAuthorizationWithContext is the same as TestAuthorization with the addition of
21070// the ability to pass a context and additional request options.
21071//
21072// See TestAuthorization for details on how to use this API operation.
21073//
21074// The context must be non-nil and will be used for request cancellation. If
21075// the context is nil a panic will occur. In the future the SDK may create
21076// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21077// for more information on using Contexts.
21078func (c *IoT) TestAuthorizationWithContext(ctx aws.Context, input *TestAuthorizationInput, opts ...request.Option) (*TestAuthorizationOutput, error) {
21079	req, out := c.TestAuthorizationRequest(input)
21080	req.SetContext(ctx)
21081	req.ApplyOptions(opts...)
21082	return out, req.Send()
21083}
21084
21085const opTestInvokeAuthorizer = "TestInvokeAuthorizer"
21086
21087// TestInvokeAuthorizerRequest generates a "aws/request.Request" representing the
21088// client's request for the TestInvokeAuthorizer operation. The "output" return
21089// value will be populated with the request's response once the request completes
21090// successfully.
21091//
21092// Use "Send" method on the returned Request to send the API call to the service.
21093// the "output" return value is not valid until after Send returns without error.
21094//
21095// See TestInvokeAuthorizer for more information on using the TestInvokeAuthorizer
21096// API call, and error handling.
21097//
21098// This method is useful when you want to inject custom logic or configuration
21099// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21100//
21101//
21102//    // Example sending a request using the TestInvokeAuthorizerRequest method.
21103//    req, resp := client.TestInvokeAuthorizerRequest(params)
21104//
21105//    err := req.Send()
21106//    if err == nil { // resp is now filled
21107//        fmt.Println(resp)
21108//    }
21109func (c *IoT) TestInvokeAuthorizerRequest(input *TestInvokeAuthorizerInput) (req *request.Request, output *TestInvokeAuthorizerOutput) {
21110	op := &request.Operation{
21111		Name:       opTestInvokeAuthorizer,
21112		HTTPMethod: "POST",
21113		HTTPPath:   "/authorizer/{authorizerName}/test",
21114	}
21115
21116	if input == nil {
21117		input = &TestInvokeAuthorizerInput{}
21118	}
21119
21120	output = &TestInvokeAuthorizerOutput{}
21121	req = c.newRequest(op, input, output)
21122	return
21123}
21124
21125// TestInvokeAuthorizer API operation for AWS IoT.
21126//
21127// Tests a custom authorization behavior by invoking a specified custom authorizer.
21128// Use this to test and debug the custom authorization behavior of devices that
21129// connect to the AWS IoT device gateway.
21130//
21131// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21132// with awserr.Error's Code and Message methods to get detailed information about
21133// the error.
21134//
21135// See the AWS API reference guide for AWS IoT's
21136// API operation TestInvokeAuthorizer for usage and error information.
21137//
21138// Returned Error Types:
21139//   * ResourceNotFoundException
21140//   The specified resource does not exist.
21141//
21142//   * InvalidRequestException
21143//   The request is not valid.
21144//
21145//   * ThrottlingException
21146//   The rate exceeds the limit.
21147//
21148//   * UnauthorizedException
21149//   You are not authorized to perform this operation.
21150//
21151//   * ServiceUnavailableException
21152//   The service is temporarily unavailable.
21153//
21154//   * InternalFailureException
21155//   An unexpected error has occurred.
21156//
21157//   * InvalidResponseException
21158//   The response is invalid.
21159//
21160func (c *IoT) TestInvokeAuthorizer(input *TestInvokeAuthorizerInput) (*TestInvokeAuthorizerOutput, error) {
21161	req, out := c.TestInvokeAuthorizerRequest(input)
21162	return out, req.Send()
21163}
21164
21165// TestInvokeAuthorizerWithContext is the same as TestInvokeAuthorizer with the addition of
21166// the ability to pass a context and additional request options.
21167//
21168// See TestInvokeAuthorizer for details on how to use this API operation.
21169//
21170// The context must be non-nil and will be used for request cancellation. If
21171// the context is nil a panic will occur. In the future the SDK may create
21172// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21173// for more information on using Contexts.
21174func (c *IoT) TestInvokeAuthorizerWithContext(ctx aws.Context, input *TestInvokeAuthorizerInput, opts ...request.Option) (*TestInvokeAuthorizerOutput, error) {
21175	req, out := c.TestInvokeAuthorizerRequest(input)
21176	req.SetContext(ctx)
21177	req.ApplyOptions(opts...)
21178	return out, req.Send()
21179}
21180
21181const opTransferCertificate = "TransferCertificate"
21182
21183// TransferCertificateRequest generates a "aws/request.Request" representing the
21184// client's request for the TransferCertificate operation. The "output" return
21185// value will be populated with the request's response once the request completes
21186// successfully.
21187//
21188// Use "Send" method on the returned Request to send the API call to the service.
21189// the "output" return value is not valid until after Send returns without error.
21190//
21191// See TransferCertificate for more information on using the TransferCertificate
21192// API call, and error handling.
21193//
21194// This method is useful when you want to inject custom logic or configuration
21195// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21196//
21197//
21198//    // Example sending a request using the TransferCertificateRequest method.
21199//    req, resp := client.TransferCertificateRequest(params)
21200//
21201//    err := req.Send()
21202//    if err == nil { // resp is now filled
21203//        fmt.Println(resp)
21204//    }
21205func (c *IoT) TransferCertificateRequest(input *TransferCertificateInput) (req *request.Request, output *TransferCertificateOutput) {
21206	op := &request.Operation{
21207		Name:       opTransferCertificate,
21208		HTTPMethod: "PATCH",
21209		HTTPPath:   "/transfer-certificate/{certificateId}",
21210	}
21211
21212	if input == nil {
21213		input = &TransferCertificateInput{}
21214	}
21215
21216	output = &TransferCertificateOutput{}
21217	req = c.newRequest(op, input, output)
21218	return
21219}
21220
21221// TransferCertificate API operation for AWS IoT.
21222//
21223// Transfers the specified certificate to the specified AWS account.
21224//
21225// You can cancel the transfer until it is acknowledged by the recipient.
21226//
21227// No notification is sent to the transfer destination's account. It is up to
21228// the caller to notify the transfer target.
21229//
21230// The certificate being transferred must not be in the ACTIVE state. You can
21231// use the UpdateCertificate API to deactivate it.
21232//
21233// The certificate must not have any policies attached to it. You can use the
21234// DetachPrincipalPolicy API to detach them.
21235//
21236// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21237// with awserr.Error's Code and Message methods to get detailed information about
21238// the error.
21239//
21240// See the AWS API reference guide for AWS IoT's
21241// API operation TransferCertificate for usage and error information.
21242//
21243// Returned Error Types:
21244//   * InvalidRequestException
21245//   The request is not valid.
21246//
21247//   * ResourceNotFoundException
21248//   The specified resource does not exist.
21249//
21250//   * CertificateStateException
21251//   The certificate operation is not allowed.
21252//
21253//   * TransferConflictException
21254//   You can't transfer the certificate because authorization policies are still
21255//   attached.
21256//
21257//   * ThrottlingException
21258//   The rate exceeds the limit.
21259//
21260//   * UnauthorizedException
21261//   You are not authorized to perform this operation.
21262//
21263//   * ServiceUnavailableException
21264//   The service is temporarily unavailable.
21265//
21266//   * InternalFailureException
21267//   An unexpected error has occurred.
21268//
21269func (c *IoT) TransferCertificate(input *TransferCertificateInput) (*TransferCertificateOutput, error) {
21270	req, out := c.TransferCertificateRequest(input)
21271	return out, req.Send()
21272}
21273
21274// TransferCertificateWithContext is the same as TransferCertificate with the addition of
21275// the ability to pass a context and additional request options.
21276//
21277// See TransferCertificate for details on how to use this API operation.
21278//
21279// The context must be non-nil and will be used for request cancellation. If
21280// the context is nil a panic will occur. In the future the SDK may create
21281// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21282// for more information on using Contexts.
21283func (c *IoT) TransferCertificateWithContext(ctx aws.Context, input *TransferCertificateInput, opts ...request.Option) (*TransferCertificateOutput, error) {
21284	req, out := c.TransferCertificateRequest(input)
21285	req.SetContext(ctx)
21286	req.ApplyOptions(opts...)
21287	return out, req.Send()
21288}
21289
21290const opUntagResource = "UntagResource"
21291
21292// UntagResourceRequest generates a "aws/request.Request" representing the
21293// client's request for the UntagResource operation. The "output" return
21294// value will be populated with the request's response once the request completes
21295// successfully.
21296//
21297// Use "Send" method on the returned Request to send the API call to the service.
21298// the "output" return value is not valid until after Send returns without error.
21299//
21300// See UntagResource for more information on using the UntagResource
21301// API call, and error handling.
21302//
21303// This method is useful when you want to inject custom logic or configuration
21304// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21305//
21306//
21307//    // Example sending a request using the UntagResourceRequest method.
21308//    req, resp := client.UntagResourceRequest(params)
21309//
21310//    err := req.Send()
21311//    if err == nil { // resp is now filled
21312//        fmt.Println(resp)
21313//    }
21314func (c *IoT) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
21315	op := &request.Operation{
21316		Name:       opUntagResource,
21317		HTTPMethod: "POST",
21318		HTTPPath:   "/untag",
21319	}
21320
21321	if input == nil {
21322		input = &UntagResourceInput{}
21323	}
21324
21325	output = &UntagResourceOutput{}
21326	req = c.newRequest(op, input, output)
21327	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21328	return
21329}
21330
21331// UntagResource API operation for AWS IoT.
21332//
21333// Removes the given tags (metadata) from the resource.
21334//
21335// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21336// with awserr.Error's Code and Message methods to get detailed information about
21337// the error.
21338//
21339// See the AWS API reference guide for AWS IoT's
21340// API operation UntagResource for usage and error information.
21341//
21342// Returned Error Types:
21343//   * InvalidRequestException
21344//   The request is not valid.
21345//
21346//   * InternalFailureException
21347//   An unexpected error has occurred.
21348//
21349//   * ResourceNotFoundException
21350//   The specified resource does not exist.
21351//
21352//   * ThrottlingException
21353//   The rate exceeds the limit.
21354//
21355func (c *IoT) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
21356	req, out := c.UntagResourceRequest(input)
21357	return out, req.Send()
21358}
21359
21360// UntagResourceWithContext is the same as UntagResource with the addition of
21361// the ability to pass a context and additional request options.
21362//
21363// See UntagResource for details on how to use this API operation.
21364//
21365// The context must be non-nil and will be used for request cancellation. If
21366// the context is nil a panic will occur. In the future the SDK may create
21367// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21368// for more information on using Contexts.
21369func (c *IoT) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
21370	req, out := c.UntagResourceRequest(input)
21371	req.SetContext(ctx)
21372	req.ApplyOptions(opts...)
21373	return out, req.Send()
21374}
21375
21376const opUpdateAccountAuditConfiguration = "UpdateAccountAuditConfiguration"
21377
21378// UpdateAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
21379// client's request for the UpdateAccountAuditConfiguration operation. The "output" return
21380// value will be populated with the request's response once the request completes
21381// successfully.
21382//
21383// Use "Send" method on the returned Request to send the API call to the service.
21384// the "output" return value is not valid until after Send returns without error.
21385//
21386// See UpdateAccountAuditConfiguration for more information on using the UpdateAccountAuditConfiguration
21387// API call, and error handling.
21388//
21389// This method is useful when you want to inject custom logic or configuration
21390// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21391//
21392//
21393//    // Example sending a request using the UpdateAccountAuditConfigurationRequest method.
21394//    req, resp := client.UpdateAccountAuditConfigurationRequest(params)
21395//
21396//    err := req.Send()
21397//    if err == nil { // resp is now filled
21398//        fmt.Println(resp)
21399//    }
21400func (c *IoT) UpdateAccountAuditConfigurationRequest(input *UpdateAccountAuditConfigurationInput) (req *request.Request, output *UpdateAccountAuditConfigurationOutput) {
21401	op := &request.Operation{
21402		Name:       opUpdateAccountAuditConfiguration,
21403		HTTPMethod: "PATCH",
21404		HTTPPath:   "/audit/configuration",
21405	}
21406
21407	if input == nil {
21408		input = &UpdateAccountAuditConfigurationInput{}
21409	}
21410
21411	output = &UpdateAccountAuditConfigurationOutput{}
21412	req = c.newRequest(op, input, output)
21413	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21414	return
21415}
21416
21417// UpdateAccountAuditConfiguration API operation for AWS IoT.
21418//
21419// Configures or reconfigures the Device Defender audit settings for this account.
21420// Settings include how audit notifications are sent and which audit checks
21421// are enabled or disabled.
21422//
21423// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21424// with awserr.Error's Code and Message methods to get detailed information about
21425// the error.
21426//
21427// See the AWS API reference guide for AWS IoT's
21428// API operation UpdateAccountAuditConfiguration for usage and error information.
21429//
21430// Returned Error Types:
21431//   * InvalidRequestException
21432//   The request is not valid.
21433//
21434//   * ThrottlingException
21435//   The rate exceeds the limit.
21436//
21437//   * InternalFailureException
21438//   An unexpected error has occurred.
21439//
21440func (c *IoT) UpdateAccountAuditConfiguration(input *UpdateAccountAuditConfigurationInput) (*UpdateAccountAuditConfigurationOutput, error) {
21441	req, out := c.UpdateAccountAuditConfigurationRequest(input)
21442	return out, req.Send()
21443}
21444
21445// UpdateAccountAuditConfigurationWithContext is the same as UpdateAccountAuditConfiguration with the addition of
21446// the ability to pass a context and additional request options.
21447//
21448// See UpdateAccountAuditConfiguration for details on how to use this API operation.
21449//
21450// The context must be non-nil and will be used for request cancellation. If
21451// the context is nil a panic will occur. In the future the SDK may create
21452// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21453// for more information on using Contexts.
21454func (c *IoT) UpdateAccountAuditConfigurationWithContext(ctx aws.Context, input *UpdateAccountAuditConfigurationInput, opts ...request.Option) (*UpdateAccountAuditConfigurationOutput, error) {
21455	req, out := c.UpdateAccountAuditConfigurationRequest(input)
21456	req.SetContext(ctx)
21457	req.ApplyOptions(opts...)
21458	return out, req.Send()
21459}
21460
21461const opUpdateAuditSuppression = "UpdateAuditSuppression"
21462
21463// UpdateAuditSuppressionRequest generates a "aws/request.Request" representing the
21464// client's request for the UpdateAuditSuppression operation. The "output" return
21465// value will be populated with the request's response once the request completes
21466// successfully.
21467//
21468// Use "Send" method on the returned Request to send the API call to the service.
21469// the "output" return value is not valid until after Send returns without error.
21470//
21471// See UpdateAuditSuppression for more information on using the UpdateAuditSuppression
21472// API call, and error handling.
21473//
21474// This method is useful when you want to inject custom logic or configuration
21475// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21476//
21477//
21478//    // Example sending a request using the UpdateAuditSuppressionRequest method.
21479//    req, resp := client.UpdateAuditSuppressionRequest(params)
21480//
21481//    err := req.Send()
21482//    if err == nil { // resp is now filled
21483//        fmt.Println(resp)
21484//    }
21485func (c *IoT) UpdateAuditSuppressionRequest(input *UpdateAuditSuppressionInput) (req *request.Request, output *UpdateAuditSuppressionOutput) {
21486	op := &request.Operation{
21487		Name:       opUpdateAuditSuppression,
21488		HTTPMethod: "PATCH",
21489		HTTPPath:   "/audit/suppressions/update",
21490	}
21491
21492	if input == nil {
21493		input = &UpdateAuditSuppressionInput{}
21494	}
21495
21496	output = &UpdateAuditSuppressionOutput{}
21497	req = c.newRequest(op, input, output)
21498	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21499	return
21500}
21501
21502// UpdateAuditSuppression API operation for AWS IoT.
21503//
21504// Updates a Device Defender audit suppression.
21505//
21506// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21507// with awserr.Error's Code and Message methods to get detailed information about
21508// the error.
21509//
21510// See the AWS API reference guide for AWS IoT's
21511// API operation UpdateAuditSuppression for usage and error information.
21512//
21513// Returned Error Types:
21514//   * InvalidRequestException
21515//   The request is not valid.
21516//
21517//   * ResourceNotFoundException
21518//   The specified resource does not exist.
21519//
21520//   * ThrottlingException
21521//   The rate exceeds the limit.
21522//
21523//   * InternalFailureException
21524//   An unexpected error has occurred.
21525//
21526func (c *IoT) UpdateAuditSuppression(input *UpdateAuditSuppressionInput) (*UpdateAuditSuppressionOutput, error) {
21527	req, out := c.UpdateAuditSuppressionRequest(input)
21528	return out, req.Send()
21529}
21530
21531// UpdateAuditSuppressionWithContext is the same as UpdateAuditSuppression with the addition of
21532// the ability to pass a context and additional request options.
21533//
21534// See UpdateAuditSuppression for details on how to use this API operation.
21535//
21536// The context must be non-nil and will be used for request cancellation. If
21537// the context is nil a panic will occur. In the future the SDK may create
21538// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21539// for more information on using Contexts.
21540func (c *IoT) UpdateAuditSuppressionWithContext(ctx aws.Context, input *UpdateAuditSuppressionInput, opts ...request.Option) (*UpdateAuditSuppressionOutput, error) {
21541	req, out := c.UpdateAuditSuppressionRequest(input)
21542	req.SetContext(ctx)
21543	req.ApplyOptions(opts...)
21544	return out, req.Send()
21545}
21546
21547const opUpdateAuthorizer = "UpdateAuthorizer"
21548
21549// UpdateAuthorizerRequest generates a "aws/request.Request" representing the
21550// client's request for the UpdateAuthorizer operation. The "output" return
21551// value will be populated with the request's response once the request completes
21552// successfully.
21553//
21554// Use "Send" method on the returned Request to send the API call to the service.
21555// the "output" return value is not valid until after Send returns without error.
21556//
21557// See UpdateAuthorizer for more information on using the UpdateAuthorizer
21558// API call, and error handling.
21559//
21560// This method is useful when you want to inject custom logic or configuration
21561// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21562//
21563//
21564//    // Example sending a request using the UpdateAuthorizerRequest method.
21565//    req, resp := client.UpdateAuthorizerRequest(params)
21566//
21567//    err := req.Send()
21568//    if err == nil { // resp is now filled
21569//        fmt.Println(resp)
21570//    }
21571func (c *IoT) UpdateAuthorizerRequest(input *UpdateAuthorizerInput) (req *request.Request, output *UpdateAuthorizerOutput) {
21572	op := &request.Operation{
21573		Name:       opUpdateAuthorizer,
21574		HTTPMethod: "PUT",
21575		HTTPPath:   "/authorizer/{authorizerName}",
21576	}
21577
21578	if input == nil {
21579		input = &UpdateAuthorizerInput{}
21580	}
21581
21582	output = &UpdateAuthorizerOutput{}
21583	req = c.newRequest(op, input, output)
21584	return
21585}
21586
21587// UpdateAuthorizer API operation for AWS IoT.
21588//
21589// Updates an authorizer.
21590//
21591// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21592// with awserr.Error's Code and Message methods to get detailed information about
21593// the error.
21594//
21595// See the AWS API reference guide for AWS IoT's
21596// API operation UpdateAuthorizer for usage and error information.
21597//
21598// Returned Error Types:
21599//   * ResourceNotFoundException
21600//   The specified resource does not exist.
21601//
21602//   * InvalidRequestException
21603//   The request is not valid.
21604//
21605//   * LimitExceededException
21606//   A limit has been exceeded.
21607//
21608//   * ThrottlingException
21609//   The rate exceeds the limit.
21610//
21611//   * UnauthorizedException
21612//   You are not authorized to perform this operation.
21613//
21614//   * ServiceUnavailableException
21615//   The service is temporarily unavailable.
21616//
21617//   * InternalFailureException
21618//   An unexpected error has occurred.
21619//
21620func (c *IoT) UpdateAuthorizer(input *UpdateAuthorizerInput) (*UpdateAuthorizerOutput, error) {
21621	req, out := c.UpdateAuthorizerRequest(input)
21622	return out, req.Send()
21623}
21624
21625// UpdateAuthorizerWithContext is the same as UpdateAuthorizer with the addition of
21626// the ability to pass a context and additional request options.
21627//
21628// See UpdateAuthorizer for details on how to use this API operation.
21629//
21630// The context must be non-nil and will be used for request cancellation. If
21631// the context is nil a panic will occur. In the future the SDK may create
21632// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21633// for more information on using Contexts.
21634func (c *IoT) UpdateAuthorizerWithContext(ctx aws.Context, input *UpdateAuthorizerInput, opts ...request.Option) (*UpdateAuthorizerOutput, error) {
21635	req, out := c.UpdateAuthorizerRequest(input)
21636	req.SetContext(ctx)
21637	req.ApplyOptions(opts...)
21638	return out, req.Send()
21639}
21640
21641const opUpdateBillingGroup = "UpdateBillingGroup"
21642
21643// UpdateBillingGroupRequest generates a "aws/request.Request" representing the
21644// client's request for the UpdateBillingGroup operation. The "output" return
21645// value will be populated with the request's response once the request completes
21646// successfully.
21647//
21648// Use "Send" method on the returned Request to send the API call to the service.
21649// the "output" return value is not valid until after Send returns without error.
21650//
21651// See UpdateBillingGroup for more information on using the UpdateBillingGroup
21652// API call, and error handling.
21653//
21654// This method is useful when you want to inject custom logic or configuration
21655// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21656//
21657//
21658//    // Example sending a request using the UpdateBillingGroupRequest method.
21659//    req, resp := client.UpdateBillingGroupRequest(params)
21660//
21661//    err := req.Send()
21662//    if err == nil { // resp is now filled
21663//        fmt.Println(resp)
21664//    }
21665func (c *IoT) UpdateBillingGroupRequest(input *UpdateBillingGroupInput) (req *request.Request, output *UpdateBillingGroupOutput) {
21666	op := &request.Operation{
21667		Name:       opUpdateBillingGroup,
21668		HTTPMethod: "PATCH",
21669		HTTPPath:   "/billing-groups/{billingGroupName}",
21670	}
21671
21672	if input == nil {
21673		input = &UpdateBillingGroupInput{}
21674	}
21675
21676	output = &UpdateBillingGroupOutput{}
21677	req = c.newRequest(op, input, output)
21678	return
21679}
21680
21681// UpdateBillingGroup API operation for AWS IoT.
21682//
21683// Updates information about the billing group.
21684//
21685// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21686// with awserr.Error's Code and Message methods to get detailed information about
21687// the error.
21688//
21689// See the AWS API reference guide for AWS IoT's
21690// API operation UpdateBillingGroup for usage and error information.
21691//
21692// Returned Error Types:
21693//   * InvalidRequestException
21694//   The request is not valid.
21695//
21696//   * VersionConflictException
21697//   An exception thrown when the version of an entity specified with the expectedVersion
21698//   parameter does not match the latest version in the system.
21699//
21700//   * ThrottlingException
21701//   The rate exceeds the limit.
21702//
21703//   * InternalFailureException
21704//   An unexpected error has occurred.
21705//
21706//   * ResourceNotFoundException
21707//   The specified resource does not exist.
21708//
21709func (c *IoT) UpdateBillingGroup(input *UpdateBillingGroupInput) (*UpdateBillingGroupOutput, error) {
21710	req, out := c.UpdateBillingGroupRequest(input)
21711	return out, req.Send()
21712}
21713
21714// UpdateBillingGroupWithContext is the same as UpdateBillingGroup with the addition of
21715// the ability to pass a context and additional request options.
21716//
21717// See UpdateBillingGroup for details on how to use this API operation.
21718//
21719// The context must be non-nil and will be used for request cancellation. If
21720// the context is nil a panic will occur. In the future the SDK may create
21721// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21722// for more information on using Contexts.
21723func (c *IoT) UpdateBillingGroupWithContext(ctx aws.Context, input *UpdateBillingGroupInput, opts ...request.Option) (*UpdateBillingGroupOutput, error) {
21724	req, out := c.UpdateBillingGroupRequest(input)
21725	req.SetContext(ctx)
21726	req.ApplyOptions(opts...)
21727	return out, req.Send()
21728}
21729
21730const opUpdateCACertificate = "UpdateCACertificate"
21731
21732// UpdateCACertificateRequest generates a "aws/request.Request" representing the
21733// client's request for the UpdateCACertificate operation. The "output" return
21734// value will be populated with the request's response once the request completes
21735// successfully.
21736//
21737// Use "Send" method on the returned Request to send the API call to the service.
21738// the "output" return value is not valid until after Send returns without error.
21739//
21740// See UpdateCACertificate for more information on using the UpdateCACertificate
21741// API call, and error handling.
21742//
21743// This method is useful when you want to inject custom logic or configuration
21744// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21745//
21746//
21747//    // Example sending a request using the UpdateCACertificateRequest method.
21748//    req, resp := client.UpdateCACertificateRequest(params)
21749//
21750//    err := req.Send()
21751//    if err == nil { // resp is now filled
21752//        fmt.Println(resp)
21753//    }
21754func (c *IoT) UpdateCACertificateRequest(input *UpdateCACertificateInput) (req *request.Request, output *UpdateCACertificateOutput) {
21755	op := &request.Operation{
21756		Name:       opUpdateCACertificate,
21757		HTTPMethod: "PUT",
21758		HTTPPath:   "/cacertificate/{caCertificateId}",
21759	}
21760
21761	if input == nil {
21762		input = &UpdateCACertificateInput{}
21763	}
21764
21765	output = &UpdateCACertificateOutput{}
21766	req = c.newRequest(op, input, output)
21767	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21768	return
21769}
21770
21771// UpdateCACertificate API operation for AWS IoT.
21772//
21773// Updates a registered CA certificate.
21774//
21775// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21776// with awserr.Error's Code and Message methods to get detailed information about
21777// the error.
21778//
21779// See the AWS API reference guide for AWS IoT's
21780// API operation UpdateCACertificate for usage and error information.
21781//
21782// Returned Error Types:
21783//   * ResourceNotFoundException
21784//   The specified resource does not exist.
21785//
21786//   * InvalidRequestException
21787//   The request is not valid.
21788//
21789//   * ThrottlingException
21790//   The rate exceeds the limit.
21791//
21792//   * UnauthorizedException
21793//   You are not authorized to perform this operation.
21794//
21795//   * ServiceUnavailableException
21796//   The service is temporarily unavailable.
21797//
21798//   * InternalFailureException
21799//   An unexpected error has occurred.
21800//
21801func (c *IoT) UpdateCACertificate(input *UpdateCACertificateInput) (*UpdateCACertificateOutput, error) {
21802	req, out := c.UpdateCACertificateRequest(input)
21803	return out, req.Send()
21804}
21805
21806// UpdateCACertificateWithContext is the same as UpdateCACertificate with the addition of
21807// the ability to pass a context and additional request options.
21808//
21809// See UpdateCACertificate for details on how to use this API operation.
21810//
21811// The context must be non-nil and will be used for request cancellation. If
21812// the context is nil a panic will occur. In the future the SDK may create
21813// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21814// for more information on using Contexts.
21815func (c *IoT) UpdateCACertificateWithContext(ctx aws.Context, input *UpdateCACertificateInput, opts ...request.Option) (*UpdateCACertificateOutput, error) {
21816	req, out := c.UpdateCACertificateRequest(input)
21817	req.SetContext(ctx)
21818	req.ApplyOptions(opts...)
21819	return out, req.Send()
21820}
21821
21822const opUpdateCertificate = "UpdateCertificate"
21823
21824// UpdateCertificateRequest generates a "aws/request.Request" representing the
21825// client's request for the UpdateCertificate operation. The "output" return
21826// value will be populated with the request's response once the request completes
21827// successfully.
21828//
21829// Use "Send" method on the returned Request to send the API call to the service.
21830// the "output" return value is not valid until after Send returns without error.
21831//
21832// See UpdateCertificate for more information on using the UpdateCertificate
21833// API call, and error handling.
21834//
21835// This method is useful when you want to inject custom logic or configuration
21836// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21837//
21838//
21839//    // Example sending a request using the UpdateCertificateRequest method.
21840//    req, resp := client.UpdateCertificateRequest(params)
21841//
21842//    err := req.Send()
21843//    if err == nil { // resp is now filled
21844//        fmt.Println(resp)
21845//    }
21846func (c *IoT) UpdateCertificateRequest(input *UpdateCertificateInput) (req *request.Request, output *UpdateCertificateOutput) {
21847	op := &request.Operation{
21848		Name:       opUpdateCertificate,
21849		HTTPMethod: "PUT",
21850		HTTPPath:   "/certificates/{certificateId}",
21851	}
21852
21853	if input == nil {
21854		input = &UpdateCertificateInput{}
21855	}
21856
21857	output = &UpdateCertificateOutput{}
21858	req = c.newRequest(op, input, output)
21859	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21860	return
21861}
21862
21863// UpdateCertificate API operation for AWS IoT.
21864//
21865// Updates the status of the specified certificate. This operation is idempotent.
21866//
21867// Certificates must be in the ACTIVE state to authenticate devices that use
21868// a certificate to connect to AWS IoT.
21869//
21870// Within a few minutes of updating a certificate from the ACTIVE state to any
21871// other state, AWS IoT disconnects all devices that used that certificate to
21872// connect. Devices cannot use a certificate that is not in the ACTIVE state
21873// to reconnect.
21874//
21875// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21876// with awserr.Error's Code and Message methods to get detailed information about
21877// the error.
21878//
21879// See the AWS API reference guide for AWS IoT's
21880// API operation UpdateCertificate for usage and error information.
21881//
21882// Returned Error Types:
21883//   * ResourceNotFoundException
21884//   The specified resource does not exist.
21885//
21886//   * CertificateStateException
21887//   The certificate operation is not allowed.
21888//
21889//   * InvalidRequestException
21890//   The request is not valid.
21891//
21892//   * ThrottlingException
21893//   The rate exceeds the limit.
21894//
21895//   * UnauthorizedException
21896//   You are not authorized to perform this operation.
21897//
21898//   * ServiceUnavailableException
21899//   The service is temporarily unavailable.
21900//
21901//   * InternalFailureException
21902//   An unexpected error has occurred.
21903//
21904func (c *IoT) UpdateCertificate(input *UpdateCertificateInput) (*UpdateCertificateOutput, error) {
21905	req, out := c.UpdateCertificateRequest(input)
21906	return out, req.Send()
21907}
21908
21909// UpdateCertificateWithContext is the same as UpdateCertificate with the addition of
21910// the ability to pass a context and additional request options.
21911//
21912// See UpdateCertificate for details on how to use this API operation.
21913//
21914// The context must be non-nil and will be used for request cancellation. If
21915// the context is nil a panic will occur. In the future the SDK may create
21916// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21917// for more information on using Contexts.
21918func (c *IoT) UpdateCertificateWithContext(ctx aws.Context, input *UpdateCertificateInput, opts ...request.Option) (*UpdateCertificateOutput, error) {
21919	req, out := c.UpdateCertificateRequest(input)
21920	req.SetContext(ctx)
21921	req.ApplyOptions(opts...)
21922	return out, req.Send()
21923}
21924
21925const opUpdateCustomMetric = "UpdateCustomMetric"
21926
21927// UpdateCustomMetricRequest generates a "aws/request.Request" representing the
21928// client's request for the UpdateCustomMetric operation. The "output" return
21929// value will be populated with the request's response once the request completes
21930// successfully.
21931//
21932// Use "Send" method on the returned Request to send the API call to the service.
21933// the "output" return value is not valid until after Send returns without error.
21934//
21935// See UpdateCustomMetric for more information on using the UpdateCustomMetric
21936// API call, and error handling.
21937//
21938// This method is useful when you want to inject custom logic or configuration
21939// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21940//
21941//
21942//    // Example sending a request using the UpdateCustomMetricRequest method.
21943//    req, resp := client.UpdateCustomMetricRequest(params)
21944//
21945//    err := req.Send()
21946//    if err == nil { // resp is now filled
21947//        fmt.Println(resp)
21948//    }
21949func (c *IoT) UpdateCustomMetricRequest(input *UpdateCustomMetricInput) (req *request.Request, output *UpdateCustomMetricOutput) {
21950	op := &request.Operation{
21951		Name:       opUpdateCustomMetric,
21952		HTTPMethod: "PATCH",
21953		HTTPPath:   "/custom-metric/{metricName}",
21954	}
21955
21956	if input == nil {
21957		input = &UpdateCustomMetricInput{}
21958	}
21959
21960	output = &UpdateCustomMetricOutput{}
21961	req = c.newRequest(op, input, output)
21962	return
21963}
21964
21965// UpdateCustomMetric API operation for AWS IoT.
21966//
21967// Updates a Device Defender detect custom metric.
21968//
21969// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21970// with awserr.Error's Code and Message methods to get detailed information about
21971// the error.
21972//
21973// See the AWS API reference guide for AWS IoT's
21974// API operation UpdateCustomMetric for usage and error information.
21975//
21976// Returned Error Types:
21977//   * InvalidRequestException
21978//   The request is not valid.
21979//
21980//   * ResourceNotFoundException
21981//   The specified resource does not exist.
21982//
21983//   * ThrottlingException
21984//   The rate exceeds the limit.
21985//
21986//   * InternalFailureException
21987//   An unexpected error has occurred.
21988//
21989func (c *IoT) UpdateCustomMetric(input *UpdateCustomMetricInput) (*UpdateCustomMetricOutput, error) {
21990	req, out := c.UpdateCustomMetricRequest(input)
21991	return out, req.Send()
21992}
21993
21994// UpdateCustomMetricWithContext is the same as UpdateCustomMetric with the addition of
21995// the ability to pass a context and additional request options.
21996//
21997// See UpdateCustomMetric for details on how to use this API operation.
21998//
21999// The context must be non-nil and will be used for request cancellation. If
22000// the context is nil a panic will occur. In the future the SDK may create
22001// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22002// for more information on using Contexts.
22003func (c *IoT) UpdateCustomMetricWithContext(ctx aws.Context, input *UpdateCustomMetricInput, opts ...request.Option) (*UpdateCustomMetricOutput, error) {
22004	req, out := c.UpdateCustomMetricRequest(input)
22005	req.SetContext(ctx)
22006	req.ApplyOptions(opts...)
22007	return out, req.Send()
22008}
22009
22010const opUpdateDimension = "UpdateDimension"
22011
22012// UpdateDimensionRequest generates a "aws/request.Request" representing the
22013// client's request for the UpdateDimension operation. The "output" return
22014// value will be populated with the request's response once the request completes
22015// successfully.
22016//
22017// Use "Send" method on the returned Request to send the API call to the service.
22018// the "output" return value is not valid until after Send returns without error.
22019//
22020// See UpdateDimension for more information on using the UpdateDimension
22021// API call, and error handling.
22022//
22023// This method is useful when you want to inject custom logic or configuration
22024// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22025//
22026//
22027//    // Example sending a request using the UpdateDimensionRequest method.
22028//    req, resp := client.UpdateDimensionRequest(params)
22029//
22030//    err := req.Send()
22031//    if err == nil { // resp is now filled
22032//        fmt.Println(resp)
22033//    }
22034func (c *IoT) UpdateDimensionRequest(input *UpdateDimensionInput) (req *request.Request, output *UpdateDimensionOutput) {
22035	op := &request.Operation{
22036		Name:       opUpdateDimension,
22037		HTTPMethod: "PATCH",
22038		HTTPPath:   "/dimensions/{name}",
22039	}
22040
22041	if input == nil {
22042		input = &UpdateDimensionInput{}
22043	}
22044
22045	output = &UpdateDimensionOutput{}
22046	req = c.newRequest(op, input, output)
22047	return
22048}
22049
22050// UpdateDimension API operation for AWS IoT.
22051//
22052// Updates the definition for a dimension. You cannot change the type of a dimension
22053// after it is created (you can delete it and recreate it).
22054//
22055// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22056// with awserr.Error's Code and Message methods to get detailed information about
22057// the error.
22058//
22059// See the AWS API reference guide for AWS IoT's
22060// API operation UpdateDimension for usage and error information.
22061//
22062// Returned Error Types:
22063//   * InternalFailureException
22064//   An unexpected error has occurred.
22065//
22066//   * InvalidRequestException
22067//   The request is not valid.
22068//
22069//   * ResourceNotFoundException
22070//   The specified resource does not exist.
22071//
22072//   * ThrottlingException
22073//   The rate exceeds the limit.
22074//
22075func (c *IoT) UpdateDimension(input *UpdateDimensionInput) (*UpdateDimensionOutput, error) {
22076	req, out := c.UpdateDimensionRequest(input)
22077	return out, req.Send()
22078}
22079
22080// UpdateDimensionWithContext is the same as UpdateDimension with the addition of
22081// the ability to pass a context and additional request options.
22082//
22083// See UpdateDimension for details on how to use this API operation.
22084//
22085// The context must be non-nil and will be used for request cancellation. If
22086// the context is nil a panic will occur. In the future the SDK may create
22087// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22088// for more information on using Contexts.
22089func (c *IoT) UpdateDimensionWithContext(ctx aws.Context, input *UpdateDimensionInput, opts ...request.Option) (*UpdateDimensionOutput, error) {
22090	req, out := c.UpdateDimensionRequest(input)
22091	req.SetContext(ctx)
22092	req.ApplyOptions(opts...)
22093	return out, req.Send()
22094}
22095
22096const opUpdateDomainConfiguration = "UpdateDomainConfiguration"
22097
22098// UpdateDomainConfigurationRequest generates a "aws/request.Request" representing the
22099// client's request for the UpdateDomainConfiguration operation. The "output" return
22100// value will be populated with the request's response once the request completes
22101// successfully.
22102//
22103// Use "Send" method on the returned Request to send the API call to the service.
22104// the "output" return value is not valid until after Send returns without error.
22105//
22106// See UpdateDomainConfiguration for more information on using the UpdateDomainConfiguration
22107// API call, and error handling.
22108//
22109// This method is useful when you want to inject custom logic or configuration
22110// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22111//
22112//
22113//    // Example sending a request using the UpdateDomainConfigurationRequest method.
22114//    req, resp := client.UpdateDomainConfigurationRequest(params)
22115//
22116//    err := req.Send()
22117//    if err == nil { // resp is now filled
22118//        fmt.Println(resp)
22119//    }
22120func (c *IoT) UpdateDomainConfigurationRequest(input *UpdateDomainConfigurationInput) (req *request.Request, output *UpdateDomainConfigurationOutput) {
22121	op := &request.Operation{
22122		Name:       opUpdateDomainConfiguration,
22123		HTTPMethod: "PUT",
22124		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
22125	}
22126
22127	if input == nil {
22128		input = &UpdateDomainConfigurationInput{}
22129	}
22130
22131	output = &UpdateDomainConfigurationOutput{}
22132	req = c.newRequest(op, input, output)
22133	return
22134}
22135
22136// UpdateDomainConfiguration API operation for AWS IoT.
22137//
22138// Updates values stored in the domain configuration. Domain configurations
22139// for default endpoints can't be updated.
22140//
22141// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22142// with awserr.Error's Code and Message methods to get detailed information about
22143// the error.
22144//
22145// See the AWS API reference guide for AWS IoT's
22146// API operation UpdateDomainConfiguration for usage and error information.
22147//
22148// Returned Error Types:
22149//   * ResourceNotFoundException
22150//   The specified resource does not exist.
22151//
22152//   * CertificateValidationException
22153//   The certificate is invalid.
22154//
22155//   * InvalidRequestException
22156//   The request is not valid.
22157//
22158//   * ThrottlingException
22159//   The rate exceeds the limit.
22160//
22161//   * UnauthorizedException
22162//   You are not authorized to perform this operation.
22163//
22164//   * ServiceUnavailableException
22165//   The service is temporarily unavailable.
22166//
22167//   * InternalFailureException
22168//   An unexpected error has occurred.
22169//
22170func (c *IoT) UpdateDomainConfiguration(input *UpdateDomainConfigurationInput) (*UpdateDomainConfigurationOutput, error) {
22171	req, out := c.UpdateDomainConfigurationRequest(input)
22172	return out, req.Send()
22173}
22174
22175// UpdateDomainConfigurationWithContext is the same as UpdateDomainConfiguration with the addition of
22176// the ability to pass a context and additional request options.
22177//
22178// See UpdateDomainConfiguration for details on how to use this API operation.
22179//
22180// The context must be non-nil and will be used for request cancellation. If
22181// the context is nil a panic will occur. In the future the SDK may create
22182// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22183// for more information on using Contexts.
22184func (c *IoT) UpdateDomainConfigurationWithContext(ctx aws.Context, input *UpdateDomainConfigurationInput, opts ...request.Option) (*UpdateDomainConfigurationOutput, error) {
22185	req, out := c.UpdateDomainConfigurationRequest(input)
22186	req.SetContext(ctx)
22187	req.ApplyOptions(opts...)
22188	return out, req.Send()
22189}
22190
22191const opUpdateDynamicThingGroup = "UpdateDynamicThingGroup"
22192
22193// UpdateDynamicThingGroupRequest generates a "aws/request.Request" representing the
22194// client's request for the UpdateDynamicThingGroup operation. The "output" return
22195// value will be populated with the request's response once the request completes
22196// successfully.
22197//
22198// Use "Send" method on the returned Request to send the API call to the service.
22199// the "output" return value is not valid until after Send returns without error.
22200//
22201// See UpdateDynamicThingGroup for more information on using the UpdateDynamicThingGroup
22202// API call, and error handling.
22203//
22204// This method is useful when you want to inject custom logic or configuration
22205// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22206//
22207//
22208//    // Example sending a request using the UpdateDynamicThingGroupRequest method.
22209//    req, resp := client.UpdateDynamicThingGroupRequest(params)
22210//
22211//    err := req.Send()
22212//    if err == nil { // resp is now filled
22213//        fmt.Println(resp)
22214//    }
22215func (c *IoT) UpdateDynamicThingGroupRequest(input *UpdateDynamicThingGroupInput) (req *request.Request, output *UpdateDynamicThingGroupOutput) {
22216	op := &request.Operation{
22217		Name:       opUpdateDynamicThingGroup,
22218		HTTPMethod: "PATCH",
22219		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
22220	}
22221
22222	if input == nil {
22223		input = &UpdateDynamicThingGroupInput{}
22224	}
22225
22226	output = &UpdateDynamicThingGroupOutput{}
22227	req = c.newRequest(op, input, output)
22228	return
22229}
22230
22231// UpdateDynamicThingGroup API operation for AWS IoT.
22232//
22233// Updates a dynamic thing group.
22234//
22235// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22236// with awserr.Error's Code and Message methods to get detailed information about
22237// the error.
22238//
22239// See the AWS API reference guide for AWS IoT's
22240// API operation UpdateDynamicThingGroup for usage and error information.
22241//
22242// Returned Error Types:
22243//   * InvalidRequestException
22244//   The request is not valid.
22245//
22246//   * VersionConflictException
22247//   An exception thrown when the version of an entity specified with the expectedVersion
22248//   parameter does not match the latest version in the system.
22249//
22250//   * ThrottlingException
22251//   The rate exceeds the limit.
22252//
22253//   * InternalFailureException
22254//   An unexpected error has occurred.
22255//
22256//   * ResourceNotFoundException
22257//   The specified resource does not exist.
22258//
22259//   * InvalidQueryException
22260//   The query is invalid.
22261//
22262func (c *IoT) UpdateDynamicThingGroup(input *UpdateDynamicThingGroupInput) (*UpdateDynamicThingGroupOutput, error) {
22263	req, out := c.UpdateDynamicThingGroupRequest(input)
22264	return out, req.Send()
22265}
22266
22267// UpdateDynamicThingGroupWithContext is the same as UpdateDynamicThingGroup with the addition of
22268// the ability to pass a context and additional request options.
22269//
22270// See UpdateDynamicThingGroup for details on how to use this API operation.
22271//
22272// The context must be non-nil and will be used for request cancellation. If
22273// the context is nil a panic will occur. In the future the SDK may create
22274// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22275// for more information on using Contexts.
22276func (c *IoT) UpdateDynamicThingGroupWithContext(ctx aws.Context, input *UpdateDynamicThingGroupInput, opts ...request.Option) (*UpdateDynamicThingGroupOutput, error) {
22277	req, out := c.UpdateDynamicThingGroupRequest(input)
22278	req.SetContext(ctx)
22279	req.ApplyOptions(opts...)
22280	return out, req.Send()
22281}
22282
22283const opUpdateEventConfigurations = "UpdateEventConfigurations"
22284
22285// UpdateEventConfigurationsRequest generates a "aws/request.Request" representing the
22286// client's request for the UpdateEventConfigurations operation. The "output" return
22287// value will be populated with the request's response once the request completes
22288// successfully.
22289//
22290// Use "Send" method on the returned Request to send the API call to the service.
22291// the "output" return value is not valid until after Send returns without error.
22292//
22293// See UpdateEventConfigurations for more information on using the UpdateEventConfigurations
22294// API call, and error handling.
22295//
22296// This method is useful when you want to inject custom logic or configuration
22297// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22298//
22299//
22300//    // Example sending a request using the UpdateEventConfigurationsRequest method.
22301//    req, resp := client.UpdateEventConfigurationsRequest(params)
22302//
22303//    err := req.Send()
22304//    if err == nil { // resp is now filled
22305//        fmt.Println(resp)
22306//    }
22307func (c *IoT) UpdateEventConfigurationsRequest(input *UpdateEventConfigurationsInput) (req *request.Request, output *UpdateEventConfigurationsOutput) {
22308	op := &request.Operation{
22309		Name:       opUpdateEventConfigurations,
22310		HTTPMethod: "PATCH",
22311		HTTPPath:   "/event-configurations",
22312	}
22313
22314	if input == nil {
22315		input = &UpdateEventConfigurationsInput{}
22316	}
22317
22318	output = &UpdateEventConfigurationsOutput{}
22319	req = c.newRequest(op, input, output)
22320	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22321	return
22322}
22323
22324// UpdateEventConfigurations API operation for AWS IoT.
22325//
22326// Updates the event configurations.
22327//
22328// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22329// with awserr.Error's Code and Message methods to get detailed information about
22330// the error.
22331//
22332// See the AWS API reference guide for AWS IoT's
22333// API operation UpdateEventConfigurations for usage and error information.
22334//
22335// Returned Error Types:
22336//   * InvalidRequestException
22337//   The request is not valid.
22338//
22339//   * InternalFailureException
22340//   An unexpected error has occurred.
22341//
22342//   * ThrottlingException
22343//   The rate exceeds the limit.
22344//
22345func (c *IoT) UpdateEventConfigurations(input *UpdateEventConfigurationsInput) (*UpdateEventConfigurationsOutput, error) {
22346	req, out := c.UpdateEventConfigurationsRequest(input)
22347	return out, req.Send()
22348}
22349
22350// UpdateEventConfigurationsWithContext is the same as UpdateEventConfigurations with the addition of
22351// the ability to pass a context and additional request options.
22352//
22353// See UpdateEventConfigurations for details on how to use this API operation.
22354//
22355// The context must be non-nil and will be used for request cancellation. If
22356// the context is nil a panic will occur. In the future the SDK may create
22357// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22358// for more information on using Contexts.
22359func (c *IoT) UpdateEventConfigurationsWithContext(ctx aws.Context, input *UpdateEventConfigurationsInput, opts ...request.Option) (*UpdateEventConfigurationsOutput, error) {
22360	req, out := c.UpdateEventConfigurationsRequest(input)
22361	req.SetContext(ctx)
22362	req.ApplyOptions(opts...)
22363	return out, req.Send()
22364}
22365
22366const opUpdateIndexingConfiguration = "UpdateIndexingConfiguration"
22367
22368// UpdateIndexingConfigurationRequest generates a "aws/request.Request" representing the
22369// client's request for the UpdateIndexingConfiguration operation. The "output" return
22370// value will be populated with the request's response once the request completes
22371// successfully.
22372//
22373// Use "Send" method on the returned Request to send the API call to the service.
22374// the "output" return value is not valid until after Send returns without error.
22375//
22376// See UpdateIndexingConfiguration for more information on using the UpdateIndexingConfiguration
22377// API call, and error handling.
22378//
22379// This method is useful when you want to inject custom logic or configuration
22380// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22381//
22382//
22383//    // Example sending a request using the UpdateIndexingConfigurationRequest method.
22384//    req, resp := client.UpdateIndexingConfigurationRequest(params)
22385//
22386//    err := req.Send()
22387//    if err == nil { // resp is now filled
22388//        fmt.Println(resp)
22389//    }
22390func (c *IoT) UpdateIndexingConfigurationRequest(input *UpdateIndexingConfigurationInput) (req *request.Request, output *UpdateIndexingConfigurationOutput) {
22391	op := &request.Operation{
22392		Name:       opUpdateIndexingConfiguration,
22393		HTTPMethod: "POST",
22394		HTTPPath:   "/indexing/config",
22395	}
22396
22397	if input == nil {
22398		input = &UpdateIndexingConfigurationInput{}
22399	}
22400
22401	output = &UpdateIndexingConfigurationOutput{}
22402	req = c.newRequest(op, input, output)
22403	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22404	return
22405}
22406
22407// UpdateIndexingConfiguration API operation for AWS IoT.
22408//
22409// Updates the search configuration.
22410//
22411// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22412// with awserr.Error's Code and Message methods to get detailed information about
22413// the error.
22414//
22415// See the AWS API reference guide for AWS IoT's
22416// API operation UpdateIndexingConfiguration for usage and error information.
22417//
22418// Returned Error Types:
22419//   * InvalidRequestException
22420//   The request is not valid.
22421//
22422//   * ThrottlingException
22423//   The rate exceeds the limit.
22424//
22425//   * UnauthorizedException
22426//   You are not authorized to perform this operation.
22427//
22428//   * ServiceUnavailableException
22429//   The service is temporarily unavailable.
22430//
22431//   * InternalFailureException
22432//   An unexpected error has occurred.
22433//
22434func (c *IoT) UpdateIndexingConfiguration(input *UpdateIndexingConfigurationInput) (*UpdateIndexingConfigurationOutput, error) {
22435	req, out := c.UpdateIndexingConfigurationRequest(input)
22436	return out, req.Send()
22437}
22438
22439// UpdateIndexingConfigurationWithContext is the same as UpdateIndexingConfiguration with the addition of
22440// the ability to pass a context and additional request options.
22441//
22442// See UpdateIndexingConfiguration for details on how to use this API operation.
22443//
22444// The context must be non-nil and will be used for request cancellation. If
22445// the context is nil a panic will occur. In the future the SDK may create
22446// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22447// for more information on using Contexts.
22448func (c *IoT) UpdateIndexingConfigurationWithContext(ctx aws.Context, input *UpdateIndexingConfigurationInput, opts ...request.Option) (*UpdateIndexingConfigurationOutput, error) {
22449	req, out := c.UpdateIndexingConfigurationRequest(input)
22450	req.SetContext(ctx)
22451	req.ApplyOptions(opts...)
22452	return out, req.Send()
22453}
22454
22455const opUpdateJob = "UpdateJob"
22456
22457// UpdateJobRequest generates a "aws/request.Request" representing the
22458// client's request for the UpdateJob operation. The "output" return
22459// value will be populated with the request's response once the request completes
22460// successfully.
22461//
22462// Use "Send" method on the returned Request to send the API call to the service.
22463// the "output" return value is not valid until after Send returns without error.
22464//
22465// See UpdateJob for more information on using the UpdateJob
22466// API call, and error handling.
22467//
22468// This method is useful when you want to inject custom logic or configuration
22469// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22470//
22471//
22472//    // Example sending a request using the UpdateJobRequest method.
22473//    req, resp := client.UpdateJobRequest(params)
22474//
22475//    err := req.Send()
22476//    if err == nil { // resp is now filled
22477//        fmt.Println(resp)
22478//    }
22479func (c *IoT) UpdateJobRequest(input *UpdateJobInput) (req *request.Request, output *UpdateJobOutput) {
22480	op := &request.Operation{
22481		Name:       opUpdateJob,
22482		HTTPMethod: "PATCH",
22483		HTTPPath:   "/jobs/{jobId}",
22484	}
22485
22486	if input == nil {
22487		input = &UpdateJobInput{}
22488	}
22489
22490	output = &UpdateJobOutput{}
22491	req = c.newRequest(op, input, output)
22492	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22493	return
22494}
22495
22496// UpdateJob API operation for AWS IoT.
22497//
22498// Updates supported fields of the specified job.
22499//
22500// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22501// with awserr.Error's Code and Message methods to get detailed information about
22502// the error.
22503//
22504// See the AWS API reference guide for AWS IoT's
22505// API operation UpdateJob for usage and error information.
22506//
22507// Returned Error Types:
22508//   * InvalidRequestException
22509//   The request is not valid.
22510//
22511//   * ResourceNotFoundException
22512//   The specified resource does not exist.
22513//
22514//   * ThrottlingException
22515//   The rate exceeds the limit.
22516//
22517//   * ServiceUnavailableException
22518//   The service is temporarily unavailable.
22519//
22520func (c *IoT) UpdateJob(input *UpdateJobInput) (*UpdateJobOutput, error) {
22521	req, out := c.UpdateJobRequest(input)
22522	return out, req.Send()
22523}
22524
22525// UpdateJobWithContext is the same as UpdateJob with the addition of
22526// the ability to pass a context and additional request options.
22527//
22528// See UpdateJob for details on how to use this API operation.
22529//
22530// The context must be non-nil and will be used for request cancellation. If
22531// the context is nil a panic will occur. In the future the SDK may create
22532// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22533// for more information on using Contexts.
22534func (c *IoT) UpdateJobWithContext(ctx aws.Context, input *UpdateJobInput, opts ...request.Option) (*UpdateJobOutput, error) {
22535	req, out := c.UpdateJobRequest(input)
22536	req.SetContext(ctx)
22537	req.ApplyOptions(opts...)
22538	return out, req.Send()
22539}
22540
22541const opUpdateMitigationAction = "UpdateMitigationAction"
22542
22543// UpdateMitigationActionRequest generates a "aws/request.Request" representing the
22544// client's request for the UpdateMitigationAction operation. The "output" return
22545// value will be populated with the request's response once the request completes
22546// successfully.
22547//
22548// Use "Send" method on the returned Request to send the API call to the service.
22549// the "output" return value is not valid until after Send returns without error.
22550//
22551// See UpdateMitigationAction for more information on using the UpdateMitigationAction
22552// API call, and error handling.
22553//
22554// This method is useful when you want to inject custom logic or configuration
22555// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22556//
22557//
22558//    // Example sending a request using the UpdateMitigationActionRequest method.
22559//    req, resp := client.UpdateMitigationActionRequest(params)
22560//
22561//    err := req.Send()
22562//    if err == nil { // resp is now filled
22563//        fmt.Println(resp)
22564//    }
22565func (c *IoT) UpdateMitigationActionRequest(input *UpdateMitigationActionInput) (req *request.Request, output *UpdateMitigationActionOutput) {
22566	op := &request.Operation{
22567		Name:       opUpdateMitigationAction,
22568		HTTPMethod: "PATCH",
22569		HTTPPath:   "/mitigationactions/actions/{actionName}",
22570	}
22571
22572	if input == nil {
22573		input = &UpdateMitigationActionInput{}
22574	}
22575
22576	output = &UpdateMitigationActionOutput{}
22577	req = c.newRequest(op, input, output)
22578	return
22579}
22580
22581// UpdateMitigationAction API operation for AWS IoT.
22582//
22583// Updates the definition for the specified mitigation action.
22584//
22585// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22586// with awserr.Error's Code and Message methods to get detailed information about
22587// the error.
22588//
22589// See the AWS API reference guide for AWS IoT's
22590// API operation UpdateMitigationAction for usage and error information.
22591//
22592// Returned Error Types:
22593//   * InvalidRequestException
22594//   The request is not valid.
22595//
22596//   * ResourceNotFoundException
22597//   The specified resource does not exist.
22598//
22599//   * ThrottlingException
22600//   The rate exceeds the limit.
22601//
22602//   * InternalFailureException
22603//   An unexpected error has occurred.
22604//
22605func (c *IoT) UpdateMitigationAction(input *UpdateMitigationActionInput) (*UpdateMitigationActionOutput, error) {
22606	req, out := c.UpdateMitigationActionRequest(input)
22607	return out, req.Send()
22608}
22609
22610// UpdateMitigationActionWithContext is the same as UpdateMitigationAction with the addition of
22611// the ability to pass a context and additional request options.
22612//
22613// See UpdateMitigationAction for details on how to use this API operation.
22614//
22615// The context must be non-nil and will be used for request cancellation. If
22616// the context is nil a panic will occur. In the future the SDK may create
22617// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22618// for more information on using Contexts.
22619func (c *IoT) UpdateMitigationActionWithContext(ctx aws.Context, input *UpdateMitigationActionInput, opts ...request.Option) (*UpdateMitigationActionOutput, error) {
22620	req, out := c.UpdateMitigationActionRequest(input)
22621	req.SetContext(ctx)
22622	req.ApplyOptions(opts...)
22623	return out, req.Send()
22624}
22625
22626const opUpdateProvisioningTemplate = "UpdateProvisioningTemplate"
22627
22628// UpdateProvisioningTemplateRequest generates a "aws/request.Request" representing the
22629// client's request for the UpdateProvisioningTemplate operation. The "output" return
22630// value will be populated with the request's response once the request completes
22631// successfully.
22632//
22633// Use "Send" method on the returned Request to send the API call to the service.
22634// the "output" return value is not valid until after Send returns without error.
22635//
22636// See UpdateProvisioningTemplate for more information on using the UpdateProvisioningTemplate
22637// API call, and error handling.
22638//
22639// This method is useful when you want to inject custom logic or configuration
22640// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22641//
22642//
22643//    // Example sending a request using the UpdateProvisioningTemplateRequest method.
22644//    req, resp := client.UpdateProvisioningTemplateRequest(params)
22645//
22646//    err := req.Send()
22647//    if err == nil { // resp is now filled
22648//        fmt.Println(resp)
22649//    }
22650func (c *IoT) UpdateProvisioningTemplateRequest(input *UpdateProvisioningTemplateInput) (req *request.Request, output *UpdateProvisioningTemplateOutput) {
22651	op := &request.Operation{
22652		Name:       opUpdateProvisioningTemplate,
22653		HTTPMethod: "PATCH",
22654		HTTPPath:   "/provisioning-templates/{templateName}",
22655	}
22656
22657	if input == nil {
22658		input = &UpdateProvisioningTemplateInput{}
22659	}
22660
22661	output = &UpdateProvisioningTemplateOutput{}
22662	req = c.newRequest(op, input, output)
22663	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22664	return
22665}
22666
22667// UpdateProvisioningTemplate API operation for AWS IoT.
22668//
22669// Updates a fleet provisioning template.
22670//
22671// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22672// with awserr.Error's Code and Message methods to get detailed information about
22673// the error.
22674//
22675// See the AWS API reference guide for AWS IoT's
22676// API operation UpdateProvisioningTemplate for usage and error information.
22677//
22678// Returned Error Types:
22679//   * InternalFailureException
22680//   An unexpected error has occurred.
22681//
22682//   * InvalidRequestException
22683//   The request is not valid.
22684//
22685//   * ResourceNotFoundException
22686//   The specified resource does not exist.
22687//
22688//   * UnauthorizedException
22689//   You are not authorized to perform this operation.
22690//
22691//   * ConflictingResourceUpdateException
22692//   A conflicting resource update exception. This exception is thrown when two
22693//   pending updates cause a conflict.
22694//
22695func (c *IoT) UpdateProvisioningTemplate(input *UpdateProvisioningTemplateInput) (*UpdateProvisioningTemplateOutput, error) {
22696	req, out := c.UpdateProvisioningTemplateRequest(input)
22697	return out, req.Send()
22698}
22699
22700// UpdateProvisioningTemplateWithContext is the same as UpdateProvisioningTemplate with the addition of
22701// the ability to pass a context and additional request options.
22702//
22703// See UpdateProvisioningTemplate for details on how to use this API operation.
22704//
22705// The context must be non-nil and will be used for request cancellation. If
22706// the context is nil a panic will occur. In the future the SDK may create
22707// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22708// for more information on using Contexts.
22709func (c *IoT) UpdateProvisioningTemplateWithContext(ctx aws.Context, input *UpdateProvisioningTemplateInput, opts ...request.Option) (*UpdateProvisioningTemplateOutput, error) {
22710	req, out := c.UpdateProvisioningTemplateRequest(input)
22711	req.SetContext(ctx)
22712	req.ApplyOptions(opts...)
22713	return out, req.Send()
22714}
22715
22716const opUpdateRoleAlias = "UpdateRoleAlias"
22717
22718// UpdateRoleAliasRequest generates a "aws/request.Request" representing the
22719// client's request for the UpdateRoleAlias operation. The "output" return
22720// value will be populated with the request's response once the request completes
22721// successfully.
22722//
22723// Use "Send" method on the returned Request to send the API call to the service.
22724// the "output" return value is not valid until after Send returns without error.
22725//
22726// See UpdateRoleAlias for more information on using the UpdateRoleAlias
22727// API call, and error handling.
22728//
22729// This method is useful when you want to inject custom logic or configuration
22730// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22731//
22732//
22733//    // Example sending a request using the UpdateRoleAliasRequest method.
22734//    req, resp := client.UpdateRoleAliasRequest(params)
22735//
22736//    err := req.Send()
22737//    if err == nil { // resp is now filled
22738//        fmt.Println(resp)
22739//    }
22740func (c *IoT) UpdateRoleAliasRequest(input *UpdateRoleAliasInput) (req *request.Request, output *UpdateRoleAliasOutput) {
22741	op := &request.Operation{
22742		Name:       opUpdateRoleAlias,
22743		HTTPMethod: "PUT",
22744		HTTPPath:   "/role-aliases/{roleAlias}",
22745	}
22746
22747	if input == nil {
22748		input = &UpdateRoleAliasInput{}
22749	}
22750
22751	output = &UpdateRoleAliasOutput{}
22752	req = c.newRequest(op, input, output)
22753	return
22754}
22755
22756// UpdateRoleAlias API operation for AWS IoT.
22757//
22758// Updates a role alias.
22759//
22760// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22761// with awserr.Error's Code and Message methods to get detailed information about
22762// the error.
22763//
22764// See the AWS API reference guide for AWS IoT's
22765// API operation UpdateRoleAlias for usage and error information.
22766//
22767// Returned Error Types:
22768//   * ResourceNotFoundException
22769//   The specified resource does not exist.
22770//
22771//   * InvalidRequestException
22772//   The request is not valid.
22773//
22774//   * ThrottlingException
22775//   The rate exceeds the limit.
22776//
22777//   * UnauthorizedException
22778//   You are not authorized to perform this operation.
22779//
22780//   * ServiceUnavailableException
22781//   The service is temporarily unavailable.
22782//
22783//   * InternalFailureException
22784//   An unexpected error has occurred.
22785//
22786func (c *IoT) UpdateRoleAlias(input *UpdateRoleAliasInput) (*UpdateRoleAliasOutput, error) {
22787	req, out := c.UpdateRoleAliasRequest(input)
22788	return out, req.Send()
22789}
22790
22791// UpdateRoleAliasWithContext is the same as UpdateRoleAlias with the addition of
22792// the ability to pass a context and additional request options.
22793//
22794// See UpdateRoleAlias for details on how to use this API operation.
22795//
22796// The context must be non-nil and will be used for request cancellation. If
22797// the context is nil a panic will occur. In the future the SDK may create
22798// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22799// for more information on using Contexts.
22800func (c *IoT) UpdateRoleAliasWithContext(ctx aws.Context, input *UpdateRoleAliasInput, opts ...request.Option) (*UpdateRoleAliasOutput, error) {
22801	req, out := c.UpdateRoleAliasRequest(input)
22802	req.SetContext(ctx)
22803	req.ApplyOptions(opts...)
22804	return out, req.Send()
22805}
22806
22807const opUpdateScheduledAudit = "UpdateScheduledAudit"
22808
22809// UpdateScheduledAuditRequest generates a "aws/request.Request" representing the
22810// client's request for the UpdateScheduledAudit operation. The "output" return
22811// value will be populated with the request's response once the request completes
22812// successfully.
22813//
22814// Use "Send" method on the returned Request to send the API call to the service.
22815// the "output" return value is not valid until after Send returns without error.
22816//
22817// See UpdateScheduledAudit for more information on using the UpdateScheduledAudit
22818// API call, and error handling.
22819//
22820// This method is useful when you want to inject custom logic or configuration
22821// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22822//
22823//
22824//    // Example sending a request using the UpdateScheduledAuditRequest method.
22825//    req, resp := client.UpdateScheduledAuditRequest(params)
22826//
22827//    err := req.Send()
22828//    if err == nil { // resp is now filled
22829//        fmt.Println(resp)
22830//    }
22831func (c *IoT) UpdateScheduledAuditRequest(input *UpdateScheduledAuditInput) (req *request.Request, output *UpdateScheduledAuditOutput) {
22832	op := &request.Operation{
22833		Name:       opUpdateScheduledAudit,
22834		HTTPMethod: "PATCH",
22835		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
22836	}
22837
22838	if input == nil {
22839		input = &UpdateScheduledAuditInput{}
22840	}
22841
22842	output = &UpdateScheduledAuditOutput{}
22843	req = c.newRequest(op, input, output)
22844	return
22845}
22846
22847// UpdateScheduledAudit API operation for AWS IoT.
22848//
22849// Updates a scheduled audit, including which checks are performed and how often
22850// the audit takes place.
22851//
22852// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22853// with awserr.Error's Code and Message methods to get detailed information about
22854// the error.
22855//
22856// See the AWS API reference guide for AWS IoT's
22857// API operation UpdateScheduledAudit for usage and error information.
22858//
22859// Returned Error Types:
22860//   * InvalidRequestException
22861//   The request is not valid.
22862//
22863//   * ResourceNotFoundException
22864//   The specified resource does not exist.
22865//
22866//   * ThrottlingException
22867//   The rate exceeds the limit.
22868//
22869//   * InternalFailureException
22870//   An unexpected error has occurred.
22871//
22872func (c *IoT) UpdateScheduledAudit(input *UpdateScheduledAuditInput) (*UpdateScheduledAuditOutput, error) {
22873	req, out := c.UpdateScheduledAuditRequest(input)
22874	return out, req.Send()
22875}
22876
22877// UpdateScheduledAuditWithContext is the same as UpdateScheduledAudit with the addition of
22878// the ability to pass a context and additional request options.
22879//
22880// See UpdateScheduledAudit for details on how to use this API operation.
22881//
22882// The context must be non-nil and will be used for request cancellation. If
22883// the context is nil a panic will occur. In the future the SDK may create
22884// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22885// for more information on using Contexts.
22886func (c *IoT) UpdateScheduledAuditWithContext(ctx aws.Context, input *UpdateScheduledAuditInput, opts ...request.Option) (*UpdateScheduledAuditOutput, error) {
22887	req, out := c.UpdateScheduledAuditRequest(input)
22888	req.SetContext(ctx)
22889	req.ApplyOptions(opts...)
22890	return out, req.Send()
22891}
22892
22893const opUpdateSecurityProfile = "UpdateSecurityProfile"
22894
22895// UpdateSecurityProfileRequest generates a "aws/request.Request" representing the
22896// client's request for the UpdateSecurityProfile operation. The "output" return
22897// value will be populated with the request's response once the request completes
22898// successfully.
22899//
22900// Use "Send" method on the returned Request to send the API call to the service.
22901// the "output" return value is not valid until after Send returns without error.
22902//
22903// See UpdateSecurityProfile for more information on using the UpdateSecurityProfile
22904// API call, and error handling.
22905//
22906// This method is useful when you want to inject custom logic or configuration
22907// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22908//
22909//
22910//    // Example sending a request using the UpdateSecurityProfileRequest method.
22911//    req, resp := client.UpdateSecurityProfileRequest(params)
22912//
22913//    err := req.Send()
22914//    if err == nil { // resp is now filled
22915//        fmt.Println(resp)
22916//    }
22917func (c *IoT) UpdateSecurityProfileRequest(input *UpdateSecurityProfileInput) (req *request.Request, output *UpdateSecurityProfileOutput) {
22918	op := &request.Operation{
22919		Name:       opUpdateSecurityProfile,
22920		HTTPMethod: "PATCH",
22921		HTTPPath:   "/security-profiles/{securityProfileName}",
22922	}
22923
22924	if input == nil {
22925		input = &UpdateSecurityProfileInput{}
22926	}
22927
22928	output = &UpdateSecurityProfileOutput{}
22929	req = c.newRequest(op, input, output)
22930	return
22931}
22932
22933// UpdateSecurityProfile API operation for AWS IoT.
22934//
22935// Updates a Device Defender security profile.
22936//
22937// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22938// with awserr.Error's Code and Message methods to get detailed information about
22939// the error.
22940//
22941// See the AWS API reference guide for AWS IoT's
22942// API operation UpdateSecurityProfile for usage and error information.
22943//
22944// Returned Error Types:
22945//   * InvalidRequestException
22946//   The request is not valid.
22947//
22948//   * ResourceNotFoundException
22949//   The specified resource does not exist.
22950//
22951//   * VersionConflictException
22952//   An exception thrown when the version of an entity specified with the expectedVersion
22953//   parameter does not match the latest version in the system.
22954//
22955//   * ThrottlingException
22956//   The rate exceeds the limit.
22957//
22958//   * InternalFailureException
22959//   An unexpected error has occurred.
22960//
22961func (c *IoT) UpdateSecurityProfile(input *UpdateSecurityProfileInput) (*UpdateSecurityProfileOutput, error) {
22962	req, out := c.UpdateSecurityProfileRequest(input)
22963	return out, req.Send()
22964}
22965
22966// UpdateSecurityProfileWithContext is the same as UpdateSecurityProfile with the addition of
22967// the ability to pass a context and additional request options.
22968//
22969// See UpdateSecurityProfile for details on how to use this API operation.
22970//
22971// The context must be non-nil and will be used for request cancellation. If
22972// the context is nil a panic will occur. In the future the SDK may create
22973// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22974// for more information on using Contexts.
22975func (c *IoT) UpdateSecurityProfileWithContext(ctx aws.Context, input *UpdateSecurityProfileInput, opts ...request.Option) (*UpdateSecurityProfileOutput, error) {
22976	req, out := c.UpdateSecurityProfileRequest(input)
22977	req.SetContext(ctx)
22978	req.ApplyOptions(opts...)
22979	return out, req.Send()
22980}
22981
22982const opUpdateStream = "UpdateStream"
22983
22984// UpdateStreamRequest generates a "aws/request.Request" representing the
22985// client's request for the UpdateStream operation. The "output" return
22986// value will be populated with the request's response once the request completes
22987// successfully.
22988//
22989// Use "Send" method on the returned Request to send the API call to the service.
22990// the "output" return value is not valid until after Send returns without error.
22991//
22992// See UpdateStream for more information on using the UpdateStream
22993// API call, and error handling.
22994//
22995// This method is useful when you want to inject custom logic or configuration
22996// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22997//
22998//
22999//    // Example sending a request using the UpdateStreamRequest method.
23000//    req, resp := client.UpdateStreamRequest(params)
23001//
23002//    err := req.Send()
23003//    if err == nil { // resp is now filled
23004//        fmt.Println(resp)
23005//    }
23006func (c *IoT) UpdateStreamRequest(input *UpdateStreamInput) (req *request.Request, output *UpdateStreamOutput) {
23007	op := &request.Operation{
23008		Name:       opUpdateStream,
23009		HTTPMethod: "PUT",
23010		HTTPPath:   "/streams/{streamId}",
23011	}
23012
23013	if input == nil {
23014		input = &UpdateStreamInput{}
23015	}
23016
23017	output = &UpdateStreamOutput{}
23018	req = c.newRequest(op, input, output)
23019	return
23020}
23021
23022// UpdateStream API operation for AWS IoT.
23023//
23024// Updates an existing stream. The stream version will be incremented by one.
23025//
23026// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23027// with awserr.Error's Code and Message methods to get detailed information about
23028// the error.
23029//
23030// See the AWS API reference guide for AWS IoT's
23031// API operation UpdateStream for usage and error information.
23032//
23033// Returned Error Types:
23034//   * InvalidRequestException
23035//   The request is not valid.
23036//
23037//   * ResourceNotFoundException
23038//   The specified resource does not exist.
23039//
23040//   * ThrottlingException
23041//   The rate exceeds the limit.
23042//
23043//   * UnauthorizedException
23044//   You are not authorized to perform this operation.
23045//
23046//   * ServiceUnavailableException
23047//   The service is temporarily unavailable.
23048//
23049//   * InternalFailureException
23050//   An unexpected error has occurred.
23051//
23052func (c *IoT) UpdateStream(input *UpdateStreamInput) (*UpdateStreamOutput, error) {
23053	req, out := c.UpdateStreamRequest(input)
23054	return out, req.Send()
23055}
23056
23057// UpdateStreamWithContext is the same as UpdateStream with the addition of
23058// the ability to pass a context and additional request options.
23059//
23060// See UpdateStream for details on how to use this API operation.
23061//
23062// The context must be non-nil and will be used for request cancellation. If
23063// the context is nil a panic will occur. In the future the SDK may create
23064// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23065// for more information on using Contexts.
23066func (c *IoT) UpdateStreamWithContext(ctx aws.Context, input *UpdateStreamInput, opts ...request.Option) (*UpdateStreamOutput, error) {
23067	req, out := c.UpdateStreamRequest(input)
23068	req.SetContext(ctx)
23069	req.ApplyOptions(opts...)
23070	return out, req.Send()
23071}
23072
23073const opUpdateThing = "UpdateThing"
23074
23075// UpdateThingRequest generates a "aws/request.Request" representing the
23076// client's request for the UpdateThing operation. The "output" return
23077// value will be populated with the request's response once the request completes
23078// successfully.
23079//
23080// Use "Send" method on the returned Request to send the API call to the service.
23081// the "output" return value is not valid until after Send returns without error.
23082//
23083// See UpdateThing for more information on using the UpdateThing
23084// API call, and error handling.
23085//
23086// This method is useful when you want to inject custom logic or configuration
23087// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23088//
23089//
23090//    // Example sending a request using the UpdateThingRequest method.
23091//    req, resp := client.UpdateThingRequest(params)
23092//
23093//    err := req.Send()
23094//    if err == nil { // resp is now filled
23095//        fmt.Println(resp)
23096//    }
23097func (c *IoT) UpdateThingRequest(input *UpdateThingInput) (req *request.Request, output *UpdateThingOutput) {
23098	op := &request.Operation{
23099		Name:       opUpdateThing,
23100		HTTPMethod: "PATCH",
23101		HTTPPath:   "/things/{thingName}",
23102	}
23103
23104	if input == nil {
23105		input = &UpdateThingInput{}
23106	}
23107
23108	output = &UpdateThingOutput{}
23109	req = c.newRequest(op, input, output)
23110	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23111	return
23112}
23113
23114// UpdateThing API operation for AWS IoT.
23115//
23116// Updates the data for a thing.
23117//
23118// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23119// with awserr.Error's Code and Message methods to get detailed information about
23120// the error.
23121//
23122// See the AWS API reference guide for AWS IoT's
23123// API operation UpdateThing for usage and error information.
23124//
23125// Returned Error Types:
23126//   * InvalidRequestException
23127//   The request is not valid.
23128//
23129//   * VersionConflictException
23130//   An exception thrown when the version of an entity specified with the expectedVersion
23131//   parameter does not match the latest version in the system.
23132//
23133//   * ThrottlingException
23134//   The rate exceeds the limit.
23135//
23136//   * UnauthorizedException
23137//   You are not authorized to perform this operation.
23138//
23139//   * ServiceUnavailableException
23140//   The service is temporarily unavailable.
23141//
23142//   * InternalFailureException
23143//   An unexpected error has occurred.
23144//
23145//   * ResourceNotFoundException
23146//   The specified resource does not exist.
23147//
23148func (c *IoT) UpdateThing(input *UpdateThingInput) (*UpdateThingOutput, error) {
23149	req, out := c.UpdateThingRequest(input)
23150	return out, req.Send()
23151}
23152
23153// UpdateThingWithContext is the same as UpdateThing with the addition of
23154// the ability to pass a context and additional request options.
23155//
23156// See UpdateThing for details on how to use this API operation.
23157//
23158// The context must be non-nil and will be used for request cancellation. If
23159// the context is nil a panic will occur. In the future the SDK may create
23160// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23161// for more information on using Contexts.
23162func (c *IoT) UpdateThingWithContext(ctx aws.Context, input *UpdateThingInput, opts ...request.Option) (*UpdateThingOutput, error) {
23163	req, out := c.UpdateThingRequest(input)
23164	req.SetContext(ctx)
23165	req.ApplyOptions(opts...)
23166	return out, req.Send()
23167}
23168
23169const opUpdateThingGroup = "UpdateThingGroup"
23170
23171// UpdateThingGroupRequest generates a "aws/request.Request" representing the
23172// client's request for the UpdateThingGroup operation. The "output" return
23173// value will be populated with the request's response once the request completes
23174// successfully.
23175//
23176// Use "Send" method on the returned Request to send the API call to the service.
23177// the "output" return value is not valid until after Send returns without error.
23178//
23179// See UpdateThingGroup for more information on using the UpdateThingGroup
23180// API call, and error handling.
23181//
23182// This method is useful when you want to inject custom logic or configuration
23183// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23184//
23185//
23186//    // Example sending a request using the UpdateThingGroupRequest method.
23187//    req, resp := client.UpdateThingGroupRequest(params)
23188//
23189//    err := req.Send()
23190//    if err == nil { // resp is now filled
23191//        fmt.Println(resp)
23192//    }
23193func (c *IoT) UpdateThingGroupRequest(input *UpdateThingGroupInput) (req *request.Request, output *UpdateThingGroupOutput) {
23194	op := &request.Operation{
23195		Name:       opUpdateThingGroup,
23196		HTTPMethod: "PATCH",
23197		HTTPPath:   "/thing-groups/{thingGroupName}",
23198	}
23199
23200	if input == nil {
23201		input = &UpdateThingGroupInput{}
23202	}
23203
23204	output = &UpdateThingGroupOutput{}
23205	req = c.newRequest(op, input, output)
23206	return
23207}
23208
23209// UpdateThingGroup API operation for AWS IoT.
23210//
23211// Update a thing group.
23212//
23213// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23214// with awserr.Error's Code and Message methods to get detailed information about
23215// the error.
23216//
23217// See the AWS API reference guide for AWS IoT's
23218// API operation UpdateThingGroup for usage and error information.
23219//
23220// Returned Error Types:
23221//   * InvalidRequestException
23222//   The request is not valid.
23223//
23224//   * VersionConflictException
23225//   An exception thrown when the version of an entity specified with the expectedVersion
23226//   parameter does not match the latest version in the system.
23227//
23228//   * ThrottlingException
23229//   The rate exceeds the limit.
23230//
23231//   * InternalFailureException
23232//   An unexpected error has occurred.
23233//
23234//   * ResourceNotFoundException
23235//   The specified resource does not exist.
23236//
23237func (c *IoT) UpdateThingGroup(input *UpdateThingGroupInput) (*UpdateThingGroupOutput, error) {
23238	req, out := c.UpdateThingGroupRequest(input)
23239	return out, req.Send()
23240}
23241
23242// UpdateThingGroupWithContext is the same as UpdateThingGroup with the addition of
23243// the ability to pass a context and additional request options.
23244//
23245// See UpdateThingGroup for details on how to use this API operation.
23246//
23247// The context must be non-nil and will be used for request cancellation. If
23248// the context is nil a panic will occur. In the future the SDK may create
23249// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23250// for more information on using Contexts.
23251func (c *IoT) UpdateThingGroupWithContext(ctx aws.Context, input *UpdateThingGroupInput, opts ...request.Option) (*UpdateThingGroupOutput, error) {
23252	req, out := c.UpdateThingGroupRequest(input)
23253	req.SetContext(ctx)
23254	req.ApplyOptions(opts...)
23255	return out, req.Send()
23256}
23257
23258const opUpdateThingGroupsForThing = "UpdateThingGroupsForThing"
23259
23260// UpdateThingGroupsForThingRequest generates a "aws/request.Request" representing the
23261// client's request for the UpdateThingGroupsForThing operation. The "output" return
23262// value will be populated with the request's response once the request completes
23263// successfully.
23264//
23265// Use "Send" method on the returned Request to send the API call to the service.
23266// the "output" return value is not valid until after Send returns without error.
23267//
23268// See UpdateThingGroupsForThing for more information on using the UpdateThingGroupsForThing
23269// API call, and error handling.
23270//
23271// This method is useful when you want to inject custom logic or configuration
23272// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23273//
23274//
23275//    // Example sending a request using the UpdateThingGroupsForThingRequest method.
23276//    req, resp := client.UpdateThingGroupsForThingRequest(params)
23277//
23278//    err := req.Send()
23279//    if err == nil { // resp is now filled
23280//        fmt.Println(resp)
23281//    }
23282func (c *IoT) UpdateThingGroupsForThingRequest(input *UpdateThingGroupsForThingInput) (req *request.Request, output *UpdateThingGroupsForThingOutput) {
23283	op := &request.Operation{
23284		Name:       opUpdateThingGroupsForThing,
23285		HTTPMethod: "PUT",
23286		HTTPPath:   "/thing-groups/updateThingGroupsForThing",
23287	}
23288
23289	if input == nil {
23290		input = &UpdateThingGroupsForThingInput{}
23291	}
23292
23293	output = &UpdateThingGroupsForThingOutput{}
23294	req = c.newRequest(op, input, output)
23295	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23296	return
23297}
23298
23299// UpdateThingGroupsForThing API operation for AWS IoT.
23300//
23301// Updates the groups to which the thing belongs.
23302//
23303// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23304// with awserr.Error's Code and Message methods to get detailed information about
23305// the error.
23306//
23307// See the AWS API reference guide for AWS IoT's
23308// API operation UpdateThingGroupsForThing for usage and error information.
23309//
23310// Returned Error Types:
23311//   * InvalidRequestException
23312//   The request is not valid.
23313//
23314//   * ThrottlingException
23315//   The rate exceeds the limit.
23316//
23317//   * InternalFailureException
23318//   An unexpected error has occurred.
23319//
23320//   * ResourceNotFoundException
23321//   The specified resource does not exist.
23322//
23323func (c *IoT) UpdateThingGroupsForThing(input *UpdateThingGroupsForThingInput) (*UpdateThingGroupsForThingOutput, error) {
23324	req, out := c.UpdateThingGroupsForThingRequest(input)
23325	return out, req.Send()
23326}
23327
23328// UpdateThingGroupsForThingWithContext is the same as UpdateThingGroupsForThing with the addition of
23329// the ability to pass a context and additional request options.
23330//
23331// See UpdateThingGroupsForThing for details on how to use this API operation.
23332//
23333// The context must be non-nil and will be used for request cancellation. If
23334// the context is nil a panic will occur. In the future the SDK may create
23335// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23336// for more information on using Contexts.
23337func (c *IoT) UpdateThingGroupsForThingWithContext(ctx aws.Context, input *UpdateThingGroupsForThingInput, opts ...request.Option) (*UpdateThingGroupsForThingOutput, error) {
23338	req, out := c.UpdateThingGroupsForThingRequest(input)
23339	req.SetContext(ctx)
23340	req.ApplyOptions(opts...)
23341	return out, req.Send()
23342}
23343
23344const opUpdateTopicRuleDestination = "UpdateTopicRuleDestination"
23345
23346// UpdateTopicRuleDestinationRequest generates a "aws/request.Request" representing the
23347// client's request for the UpdateTopicRuleDestination operation. The "output" return
23348// value will be populated with the request's response once the request completes
23349// successfully.
23350//
23351// Use "Send" method on the returned Request to send the API call to the service.
23352// the "output" return value is not valid until after Send returns without error.
23353//
23354// See UpdateTopicRuleDestination for more information on using the UpdateTopicRuleDestination
23355// API call, and error handling.
23356//
23357// This method is useful when you want to inject custom logic or configuration
23358// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23359//
23360//
23361//    // Example sending a request using the UpdateTopicRuleDestinationRequest method.
23362//    req, resp := client.UpdateTopicRuleDestinationRequest(params)
23363//
23364//    err := req.Send()
23365//    if err == nil { // resp is now filled
23366//        fmt.Println(resp)
23367//    }
23368func (c *IoT) UpdateTopicRuleDestinationRequest(input *UpdateTopicRuleDestinationInput) (req *request.Request, output *UpdateTopicRuleDestinationOutput) {
23369	op := &request.Operation{
23370		Name:       opUpdateTopicRuleDestination,
23371		HTTPMethod: "PATCH",
23372		HTTPPath:   "/destinations",
23373	}
23374
23375	if input == nil {
23376		input = &UpdateTopicRuleDestinationInput{}
23377	}
23378
23379	output = &UpdateTopicRuleDestinationOutput{}
23380	req = c.newRequest(op, input, output)
23381	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23382	return
23383}
23384
23385// UpdateTopicRuleDestination API operation for AWS IoT.
23386//
23387// Updates a topic rule destination. You use this to change the status, endpoint
23388// URL, or confirmation URL of the destination.
23389//
23390// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23391// with awserr.Error's Code and Message methods to get detailed information about
23392// the error.
23393//
23394// See the AWS API reference guide for AWS IoT's
23395// API operation UpdateTopicRuleDestination for usage and error information.
23396//
23397// Returned Error Types:
23398//   * InternalException
23399//   An unexpected error has occurred.
23400//
23401//   * InvalidRequestException
23402//   The request is not valid.
23403//
23404//   * ServiceUnavailableException
23405//   The service is temporarily unavailable.
23406//
23407//   * UnauthorizedException
23408//   You are not authorized to perform this operation.
23409//
23410//   * ConflictingResourceUpdateException
23411//   A conflicting resource update exception. This exception is thrown when two
23412//   pending updates cause a conflict.
23413//
23414func (c *IoT) UpdateTopicRuleDestination(input *UpdateTopicRuleDestinationInput) (*UpdateTopicRuleDestinationOutput, error) {
23415	req, out := c.UpdateTopicRuleDestinationRequest(input)
23416	return out, req.Send()
23417}
23418
23419// UpdateTopicRuleDestinationWithContext is the same as UpdateTopicRuleDestination with the addition of
23420// the ability to pass a context and additional request options.
23421//
23422// See UpdateTopicRuleDestination for details on how to use this API operation.
23423//
23424// The context must be non-nil and will be used for request cancellation. If
23425// the context is nil a panic will occur. In the future the SDK may create
23426// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23427// for more information on using Contexts.
23428func (c *IoT) UpdateTopicRuleDestinationWithContext(ctx aws.Context, input *UpdateTopicRuleDestinationInput, opts ...request.Option) (*UpdateTopicRuleDestinationOutput, error) {
23429	req, out := c.UpdateTopicRuleDestinationRequest(input)
23430	req.SetContext(ctx)
23431	req.ApplyOptions(opts...)
23432	return out, req.Send()
23433}
23434
23435const opValidateSecurityProfileBehaviors = "ValidateSecurityProfileBehaviors"
23436
23437// ValidateSecurityProfileBehaviorsRequest generates a "aws/request.Request" representing the
23438// client's request for the ValidateSecurityProfileBehaviors operation. The "output" return
23439// value will be populated with the request's response once the request completes
23440// successfully.
23441//
23442// Use "Send" method on the returned Request to send the API call to the service.
23443// the "output" return value is not valid until after Send returns without error.
23444//
23445// See ValidateSecurityProfileBehaviors for more information on using the ValidateSecurityProfileBehaviors
23446// API call, and error handling.
23447//
23448// This method is useful when you want to inject custom logic or configuration
23449// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23450//
23451//
23452//    // Example sending a request using the ValidateSecurityProfileBehaviorsRequest method.
23453//    req, resp := client.ValidateSecurityProfileBehaviorsRequest(params)
23454//
23455//    err := req.Send()
23456//    if err == nil { // resp is now filled
23457//        fmt.Println(resp)
23458//    }
23459func (c *IoT) ValidateSecurityProfileBehaviorsRequest(input *ValidateSecurityProfileBehaviorsInput) (req *request.Request, output *ValidateSecurityProfileBehaviorsOutput) {
23460	op := &request.Operation{
23461		Name:       opValidateSecurityProfileBehaviors,
23462		HTTPMethod: "POST",
23463		HTTPPath:   "/security-profile-behaviors/validate",
23464	}
23465
23466	if input == nil {
23467		input = &ValidateSecurityProfileBehaviorsInput{}
23468	}
23469
23470	output = &ValidateSecurityProfileBehaviorsOutput{}
23471	req = c.newRequest(op, input, output)
23472	return
23473}
23474
23475// ValidateSecurityProfileBehaviors API operation for AWS IoT.
23476//
23477// Validates a Device Defender security profile behaviors specification.
23478//
23479// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23480// with awserr.Error's Code and Message methods to get detailed information about
23481// the error.
23482//
23483// See the AWS API reference guide for AWS IoT's
23484// API operation ValidateSecurityProfileBehaviors for usage and error information.
23485//
23486// Returned Error Types:
23487//   * InvalidRequestException
23488//   The request is not valid.
23489//
23490//   * ThrottlingException
23491//   The rate exceeds the limit.
23492//
23493//   * InternalFailureException
23494//   An unexpected error has occurred.
23495//
23496func (c *IoT) ValidateSecurityProfileBehaviors(input *ValidateSecurityProfileBehaviorsInput) (*ValidateSecurityProfileBehaviorsOutput, error) {
23497	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
23498	return out, req.Send()
23499}
23500
23501// ValidateSecurityProfileBehaviorsWithContext is the same as ValidateSecurityProfileBehaviors with the addition of
23502// the ability to pass a context and additional request options.
23503//
23504// See ValidateSecurityProfileBehaviors for details on how to use this API operation.
23505//
23506// The context must be non-nil and will be used for request cancellation. If
23507// the context is nil a panic will occur. In the future the SDK may create
23508// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23509// for more information on using Contexts.
23510func (c *IoT) ValidateSecurityProfileBehaviorsWithContext(ctx aws.Context, input *ValidateSecurityProfileBehaviorsInput, opts ...request.Option) (*ValidateSecurityProfileBehaviorsOutput, error) {
23511	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
23512	req.SetContext(ctx)
23513	req.ApplyOptions(opts...)
23514	return out, req.Send()
23515}
23516
23517// The criteria that determine when and how a job abort takes place.
23518type AbortConfig struct {
23519	_ struct{} `type:"structure"`
23520
23521	// The list of criteria that determine when and how to abort the job.
23522	//
23523	// CriteriaList is a required field
23524	CriteriaList []*AbortCriteria `locationName:"criteriaList" min:"1" type:"list" required:"true"`
23525}
23526
23527// String returns the string representation
23528func (s AbortConfig) String() string {
23529	return awsutil.Prettify(s)
23530}
23531
23532// GoString returns the string representation
23533func (s AbortConfig) GoString() string {
23534	return s.String()
23535}
23536
23537// Validate inspects the fields of the type to determine if they are valid.
23538func (s *AbortConfig) Validate() error {
23539	invalidParams := request.ErrInvalidParams{Context: "AbortConfig"}
23540	if s.CriteriaList == nil {
23541		invalidParams.Add(request.NewErrParamRequired("CriteriaList"))
23542	}
23543	if s.CriteriaList != nil && len(s.CriteriaList) < 1 {
23544		invalidParams.Add(request.NewErrParamMinLen("CriteriaList", 1))
23545	}
23546	if s.CriteriaList != nil {
23547		for i, v := range s.CriteriaList {
23548			if v == nil {
23549				continue
23550			}
23551			if err := v.Validate(); err != nil {
23552				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CriteriaList", i), err.(request.ErrInvalidParams))
23553			}
23554		}
23555	}
23556
23557	if invalidParams.Len() > 0 {
23558		return invalidParams
23559	}
23560	return nil
23561}
23562
23563// SetCriteriaList sets the CriteriaList field's value.
23564func (s *AbortConfig) SetCriteriaList(v []*AbortCriteria) *AbortConfig {
23565	s.CriteriaList = v
23566	return s
23567}
23568
23569// The criteria that determine when and how a job abort takes place.
23570type AbortCriteria struct {
23571	_ struct{} `type:"structure"`
23572
23573	// The type of job action to take to initiate the job abort.
23574	//
23575	// Action is a required field
23576	Action *string `locationName:"action" type:"string" required:"true" enum:"AbortAction"`
23577
23578	// The type of job execution failures that can initiate a job abort.
23579	//
23580	// FailureType is a required field
23581	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"JobExecutionFailureType"`
23582
23583	// The minimum number of things which must receive job execution notifications
23584	// before the job can be aborted.
23585	//
23586	// MinNumberOfExecutedThings is a required field
23587	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
23588
23589	// The minimum percentage of job execution failures that must occur to initiate
23590	// the job abort.
23591	//
23592	// AWS IoT supports up to two digits after the decimal (for example, 10.9 and
23593	// 10.99, but not 10.999).
23594	//
23595	// ThresholdPercentage is a required field
23596	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
23597}
23598
23599// String returns the string representation
23600func (s AbortCriteria) String() string {
23601	return awsutil.Prettify(s)
23602}
23603
23604// GoString returns the string representation
23605func (s AbortCriteria) GoString() string {
23606	return s.String()
23607}
23608
23609// Validate inspects the fields of the type to determine if they are valid.
23610func (s *AbortCriteria) Validate() error {
23611	invalidParams := request.ErrInvalidParams{Context: "AbortCriteria"}
23612	if s.Action == nil {
23613		invalidParams.Add(request.NewErrParamRequired("Action"))
23614	}
23615	if s.FailureType == nil {
23616		invalidParams.Add(request.NewErrParamRequired("FailureType"))
23617	}
23618	if s.MinNumberOfExecutedThings == nil {
23619		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
23620	}
23621	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
23622		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
23623	}
23624	if s.ThresholdPercentage == nil {
23625		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
23626	}
23627
23628	if invalidParams.Len() > 0 {
23629		return invalidParams
23630	}
23631	return nil
23632}
23633
23634// SetAction sets the Action field's value.
23635func (s *AbortCriteria) SetAction(v string) *AbortCriteria {
23636	s.Action = &v
23637	return s
23638}
23639
23640// SetFailureType sets the FailureType field's value.
23641func (s *AbortCriteria) SetFailureType(v string) *AbortCriteria {
23642	s.FailureType = &v
23643	return s
23644}
23645
23646// SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
23647func (s *AbortCriteria) SetMinNumberOfExecutedThings(v int64) *AbortCriteria {
23648	s.MinNumberOfExecutedThings = &v
23649	return s
23650}
23651
23652// SetThresholdPercentage sets the ThresholdPercentage field's value.
23653func (s *AbortCriteria) SetThresholdPercentage(v float64) *AbortCriteria {
23654	s.ThresholdPercentage = &v
23655	return s
23656}
23657
23658// The input for the AcceptCertificateTransfer operation.
23659type AcceptCertificateTransferInput struct {
23660	_ struct{} `type:"structure"`
23661
23662	// The ID of the certificate. (The last part of the certificate ARN contains
23663	// the certificate ID.)
23664	//
23665	// CertificateId is a required field
23666	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
23667
23668	// Specifies whether the certificate is active.
23669	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
23670}
23671
23672// String returns the string representation
23673func (s AcceptCertificateTransferInput) String() string {
23674	return awsutil.Prettify(s)
23675}
23676
23677// GoString returns the string representation
23678func (s AcceptCertificateTransferInput) GoString() string {
23679	return s.String()
23680}
23681
23682// Validate inspects the fields of the type to determine if they are valid.
23683func (s *AcceptCertificateTransferInput) Validate() error {
23684	invalidParams := request.ErrInvalidParams{Context: "AcceptCertificateTransferInput"}
23685	if s.CertificateId == nil {
23686		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
23687	}
23688	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
23689		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
23690	}
23691
23692	if invalidParams.Len() > 0 {
23693		return invalidParams
23694	}
23695	return nil
23696}
23697
23698// SetCertificateId sets the CertificateId field's value.
23699func (s *AcceptCertificateTransferInput) SetCertificateId(v string) *AcceptCertificateTransferInput {
23700	s.CertificateId = &v
23701	return s
23702}
23703
23704// SetSetAsActive sets the SetAsActive field's value.
23705func (s *AcceptCertificateTransferInput) SetSetAsActive(v bool) *AcceptCertificateTransferInput {
23706	s.SetAsActive = &v
23707	return s
23708}
23709
23710type AcceptCertificateTransferOutput struct {
23711	_ struct{} `type:"structure"`
23712}
23713
23714// String returns the string representation
23715func (s AcceptCertificateTransferOutput) String() string {
23716	return awsutil.Prettify(s)
23717}
23718
23719// GoString returns the string representation
23720func (s AcceptCertificateTransferOutput) GoString() string {
23721	return s.String()
23722}
23723
23724// Describes the actions associated with a rule.
23725type Action struct {
23726	_ struct{} `type:"structure"`
23727
23728	// Change the state of a CloudWatch alarm.
23729	CloudwatchAlarm *CloudwatchAlarmAction `locationName:"cloudwatchAlarm" type:"structure"`
23730
23731	// Send data to CloudWatch Logs.
23732	CloudwatchLogs *CloudwatchLogsAction `locationName:"cloudwatchLogs" type:"structure"`
23733
23734	// Capture a CloudWatch metric.
23735	CloudwatchMetric *CloudwatchMetricAction `locationName:"cloudwatchMetric" type:"structure"`
23736
23737	// Write to a DynamoDB table.
23738	DynamoDB *DynamoDBAction `locationName:"dynamoDB" type:"structure"`
23739
23740	// Write to a DynamoDB table. This is a new version of the DynamoDB action.
23741	// It allows you to write each attribute in an MQTT message payload into a separate
23742	// DynamoDB column.
23743	DynamoDBv2 *DynamoDBv2Action `locationName:"dynamoDBv2" type:"structure"`
23744
23745	// Write data to an Amazon Elasticsearch Service domain.
23746	Elasticsearch *ElasticsearchAction `locationName:"elasticsearch" type:"structure"`
23747
23748	// Write to an Amazon Kinesis Firehose stream.
23749	Firehose *FirehoseAction `locationName:"firehose" type:"structure"`
23750
23751	// Send data to an HTTPS endpoint.
23752	Http *HttpAction `locationName:"http" type:"structure"`
23753
23754	// Sends message data to an AWS IoT Analytics channel.
23755	IotAnalytics *IotAnalyticsAction `locationName:"iotAnalytics" type:"structure"`
23756
23757	// Sends an input to an AWS IoT Events detector.
23758	IotEvents *IotEventsAction `locationName:"iotEvents" type:"structure"`
23759
23760	// Sends data from the MQTT message that triggered the rule to AWS IoT SiteWise
23761	// asset properties.
23762	IotSiteWise *IotSiteWiseAction `locationName:"iotSiteWise" type:"structure"`
23763
23764	// Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK)
23765	// or self-managed Apache Kafka cluster.
23766	Kafka *KafkaAction `locationName:"kafka" type:"structure"`
23767
23768	// Write data to an Amazon Kinesis stream.
23769	Kinesis *KinesisAction `locationName:"kinesis" type:"structure"`
23770
23771	// Invoke a Lambda function.
23772	Lambda *LambdaAction `locationName:"lambda" type:"structure"`
23773
23774	// Publish to another MQTT topic.
23775	Republish *RepublishAction `locationName:"republish" type:"structure"`
23776
23777	// Write to an Amazon S3 bucket.
23778	S3 *S3Action `locationName:"s3" type:"structure"`
23779
23780	// Send a message to a Salesforce IoT Cloud Input Stream.
23781	Salesforce *SalesforceAction `locationName:"salesforce" type:"structure"`
23782
23783	// Publish to an Amazon SNS topic.
23784	Sns *SnsAction `locationName:"sns" type:"structure"`
23785
23786	// Publish to an Amazon SQS queue.
23787	Sqs *SqsAction `locationName:"sqs" type:"structure"`
23788
23789	// Starts execution of a Step Functions state machine.
23790	StepFunctions *StepFunctionsAction `locationName:"stepFunctions" type:"structure"`
23791
23792	// The Timestream rule action writes attributes (measures) from an MQTT message
23793	// into an Amazon Timestream table. For more information, see the Timestream
23794	// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
23795	// topic rule action documentation.
23796	Timestream *TimestreamAction `locationName:"timestream" type:"structure"`
23797}
23798
23799// String returns the string representation
23800func (s Action) String() string {
23801	return awsutil.Prettify(s)
23802}
23803
23804// GoString returns the string representation
23805func (s Action) GoString() string {
23806	return s.String()
23807}
23808
23809// Validate inspects the fields of the type to determine if they are valid.
23810func (s *Action) Validate() error {
23811	invalidParams := request.ErrInvalidParams{Context: "Action"}
23812	if s.CloudwatchAlarm != nil {
23813		if err := s.CloudwatchAlarm.Validate(); err != nil {
23814			invalidParams.AddNested("CloudwatchAlarm", err.(request.ErrInvalidParams))
23815		}
23816	}
23817	if s.CloudwatchLogs != nil {
23818		if err := s.CloudwatchLogs.Validate(); err != nil {
23819			invalidParams.AddNested("CloudwatchLogs", err.(request.ErrInvalidParams))
23820		}
23821	}
23822	if s.CloudwatchMetric != nil {
23823		if err := s.CloudwatchMetric.Validate(); err != nil {
23824			invalidParams.AddNested("CloudwatchMetric", err.(request.ErrInvalidParams))
23825		}
23826	}
23827	if s.DynamoDB != nil {
23828		if err := s.DynamoDB.Validate(); err != nil {
23829			invalidParams.AddNested("DynamoDB", err.(request.ErrInvalidParams))
23830		}
23831	}
23832	if s.DynamoDBv2 != nil {
23833		if err := s.DynamoDBv2.Validate(); err != nil {
23834			invalidParams.AddNested("DynamoDBv2", err.(request.ErrInvalidParams))
23835		}
23836	}
23837	if s.Elasticsearch != nil {
23838		if err := s.Elasticsearch.Validate(); err != nil {
23839			invalidParams.AddNested("Elasticsearch", err.(request.ErrInvalidParams))
23840		}
23841	}
23842	if s.Firehose != nil {
23843		if err := s.Firehose.Validate(); err != nil {
23844			invalidParams.AddNested("Firehose", err.(request.ErrInvalidParams))
23845		}
23846	}
23847	if s.Http != nil {
23848		if err := s.Http.Validate(); err != nil {
23849			invalidParams.AddNested("Http", err.(request.ErrInvalidParams))
23850		}
23851	}
23852	if s.IotEvents != nil {
23853		if err := s.IotEvents.Validate(); err != nil {
23854			invalidParams.AddNested("IotEvents", err.(request.ErrInvalidParams))
23855		}
23856	}
23857	if s.IotSiteWise != nil {
23858		if err := s.IotSiteWise.Validate(); err != nil {
23859			invalidParams.AddNested("IotSiteWise", err.(request.ErrInvalidParams))
23860		}
23861	}
23862	if s.Kafka != nil {
23863		if err := s.Kafka.Validate(); err != nil {
23864			invalidParams.AddNested("Kafka", err.(request.ErrInvalidParams))
23865		}
23866	}
23867	if s.Kinesis != nil {
23868		if err := s.Kinesis.Validate(); err != nil {
23869			invalidParams.AddNested("Kinesis", err.(request.ErrInvalidParams))
23870		}
23871	}
23872	if s.Lambda != nil {
23873		if err := s.Lambda.Validate(); err != nil {
23874			invalidParams.AddNested("Lambda", err.(request.ErrInvalidParams))
23875		}
23876	}
23877	if s.Republish != nil {
23878		if err := s.Republish.Validate(); err != nil {
23879			invalidParams.AddNested("Republish", err.(request.ErrInvalidParams))
23880		}
23881	}
23882	if s.S3 != nil {
23883		if err := s.S3.Validate(); err != nil {
23884			invalidParams.AddNested("S3", err.(request.ErrInvalidParams))
23885		}
23886	}
23887	if s.Salesforce != nil {
23888		if err := s.Salesforce.Validate(); err != nil {
23889			invalidParams.AddNested("Salesforce", err.(request.ErrInvalidParams))
23890		}
23891	}
23892	if s.Sns != nil {
23893		if err := s.Sns.Validate(); err != nil {
23894			invalidParams.AddNested("Sns", err.(request.ErrInvalidParams))
23895		}
23896	}
23897	if s.Sqs != nil {
23898		if err := s.Sqs.Validate(); err != nil {
23899			invalidParams.AddNested("Sqs", err.(request.ErrInvalidParams))
23900		}
23901	}
23902	if s.StepFunctions != nil {
23903		if err := s.StepFunctions.Validate(); err != nil {
23904			invalidParams.AddNested("StepFunctions", err.(request.ErrInvalidParams))
23905		}
23906	}
23907	if s.Timestream != nil {
23908		if err := s.Timestream.Validate(); err != nil {
23909			invalidParams.AddNested("Timestream", err.(request.ErrInvalidParams))
23910		}
23911	}
23912
23913	if invalidParams.Len() > 0 {
23914		return invalidParams
23915	}
23916	return nil
23917}
23918
23919// SetCloudwatchAlarm sets the CloudwatchAlarm field's value.
23920func (s *Action) SetCloudwatchAlarm(v *CloudwatchAlarmAction) *Action {
23921	s.CloudwatchAlarm = v
23922	return s
23923}
23924
23925// SetCloudwatchLogs sets the CloudwatchLogs field's value.
23926func (s *Action) SetCloudwatchLogs(v *CloudwatchLogsAction) *Action {
23927	s.CloudwatchLogs = v
23928	return s
23929}
23930
23931// SetCloudwatchMetric sets the CloudwatchMetric field's value.
23932func (s *Action) SetCloudwatchMetric(v *CloudwatchMetricAction) *Action {
23933	s.CloudwatchMetric = v
23934	return s
23935}
23936
23937// SetDynamoDB sets the DynamoDB field's value.
23938func (s *Action) SetDynamoDB(v *DynamoDBAction) *Action {
23939	s.DynamoDB = v
23940	return s
23941}
23942
23943// SetDynamoDBv2 sets the DynamoDBv2 field's value.
23944func (s *Action) SetDynamoDBv2(v *DynamoDBv2Action) *Action {
23945	s.DynamoDBv2 = v
23946	return s
23947}
23948
23949// SetElasticsearch sets the Elasticsearch field's value.
23950func (s *Action) SetElasticsearch(v *ElasticsearchAction) *Action {
23951	s.Elasticsearch = v
23952	return s
23953}
23954
23955// SetFirehose sets the Firehose field's value.
23956func (s *Action) SetFirehose(v *FirehoseAction) *Action {
23957	s.Firehose = v
23958	return s
23959}
23960
23961// SetHttp sets the Http field's value.
23962func (s *Action) SetHttp(v *HttpAction) *Action {
23963	s.Http = v
23964	return s
23965}
23966
23967// SetIotAnalytics sets the IotAnalytics field's value.
23968func (s *Action) SetIotAnalytics(v *IotAnalyticsAction) *Action {
23969	s.IotAnalytics = v
23970	return s
23971}
23972
23973// SetIotEvents sets the IotEvents field's value.
23974func (s *Action) SetIotEvents(v *IotEventsAction) *Action {
23975	s.IotEvents = v
23976	return s
23977}
23978
23979// SetIotSiteWise sets the IotSiteWise field's value.
23980func (s *Action) SetIotSiteWise(v *IotSiteWiseAction) *Action {
23981	s.IotSiteWise = v
23982	return s
23983}
23984
23985// SetKafka sets the Kafka field's value.
23986func (s *Action) SetKafka(v *KafkaAction) *Action {
23987	s.Kafka = v
23988	return s
23989}
23990
23991// SetKinesis sets the Kinesis field's value.
23992func (s *Action) SetKinesis(v *KinesisAction) *Action {
23993	s.Kinesis = v
23994	return s
23995}
23996
23997// SetLambda sets the Lambda field's value.
23998func (s *Action) SetLambda(v *LambdaAction) *Action {
23999	s.Lambda = v
24000	return s
24001}
24002
24003// SetRepublish sets the Republish field's value.
24004func (s *Action) SetRepublish(v *RepublishAction) *Action {
24005	s.Republish = v
24006	return s
24007}
24008
24009// SetS3 sets the S3 field's value.
24010func (s *Action) SetS3(v *S3Action) *Action {
24011	s.S3 = v
24012	return s
24013}
24014
24015// SetSalesforce sets the Salesforce field's value.
24016func (s *Action) SetSalesforce(v *SalesforceAction) *Action {
24017	s.Salesforce = v
24018	return s
24019}
24020
24021// SetSns sets the Sns field's value.
24022func (s *Action) SetSns(v *SnsAction) *Action {
24023	s.Sns = v
24024	return s
24025}
24026
24027// SetSqs sets the Sqs field's value.
24028func (s *Action) SetSqs(v *SqsAction) *Action {
24029	s.Sqs = v
24030	return s
24031}
24032
24033// SetStepFunctions sets the StepFunctions field's value.
24034func (s *Action) SetStepFunctions(v *StepFunctionsAction) *Action {
24035	s.StepFunctions = v
24036	return s
24037}
24038
24039// SetTimestream sets the Timestream field's value.
24040func (s *Action) SetTimestream(v *TimestreamAction) *Action {
24041	s.Timestream = v
24042	return s
24043}
24044
24045// Information about an active Device Defender security profile behavior violation.
24046type ActiveViolation struct {
24047	_ struct{} `type:"structure"`
24048
24049	// The behavior that is being violated.
24050	Behavior *Behavior `locationName:"behavior" type:"structure"`
24051
24052	// The time the most recent violation occurred.
24053	LastViolationTime *time.Time `locationName:"lastViolationTime" type:"timestamp"`
24054
24055	// The value of the metric (the measurement) that caused the most recent violation.
24056	LastViolationValue *MetricValue `locationName:"lastViolationValue" type:"structure"`
24057
24058	// The security profile with the behavior is in violation.
24059	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
24060
24061	// The name of the thing responsible for the active violation.
24062	ThingName *string `locationName:"thingName" min:"1" type:"string"`
24063
24064	// The details of a violation event.
24065	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo `locationName:"violationEventAdditionalInfo" type:"structure"`
24066
24067	// The ID of the active violation.
24068	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
24069
24070	// The time the violation started.
24071	ViolationStartTime *time.Time `locationName:"violationStartTime" type:"timestamp"`
24072}
24073
24074// String returns the string representation
24075func (s ActiveViolation) String() string {
24076	return awsutil.Prettify(s)
24077}
24078
24079// GoString returns the string representation
24080func (s ActiveViolation) GoString() string {
24081	return s.String()
24082}
24083
24084// SetBehavior sets the Behavior field's value.
24085func (s *ActiveViolation) SetBehavior(v *Behavior) *ActiveViolation {
24086	s.Behavior = v
24087	return s
24088}
24089
24090// SetLastViolationTime sets the LastViolationTime field's value.
24091func (s *ActiveViolation) SetLastViolationTime(v time.Time) *ActiveViolation {
24092	s.LastViolationTime = &v
24093	return s
24094}
24095
24096// SetLastViolationValue sets the LastViolationValue field's value.
24097func (s *ActiveViolation) SetLastViolationValue(v *MetricValue) *ActiveViolation {
24098	s.LastViolationValue = v
24099	return s
24100}
24101
24102// SetSecurityProfileName sets the SecurityProfileName field's value.
24103func (s *ActiveViolation) SetSecurityProfileName(v string) *ActiveViolation {
24104	s.SecurityProfileName = &v
24105	return s
24106}
24107
24108// SetThingName sets the ThingName field's value.
24109func (s *ActiveViolation) SetThingName(v string) *ActiveViolation {
24110	s.ThingName = &v
24111	return s
24112}
24113
24114// SetViolationEventAdditionalInfo sets the ViolationEventAdditionalInfo field's value.
24115func (s *ActiveViolation) SetViolationEventAdditionalInfo(v *ViolationEventAdditionalInfo) *ActiveViolation {
24116	s.ViolationEventAdditionalInfo = v
24117	return s
24118}
24119
24120// SetViolationId sets the ViolationId field's value.
24121func (s *ActiveViolation) SetViolationId(v string) *ActiveViolation {
24122	s.ViolationId = &v
24123	return s
24124}
24125
24126// SetViolationStartTime sets the ViolationStartTime field's value.
24127func (s *ActiveViolation) SetViolationStartTime(v time.Time) *ActiveViolation {
24128	s.ViolationStartTime = &v
24129	return s
24130}
24131
24132type AddThingToBillingGroupInput struct {
24133	_ struct{} `type:"structure"`
24134
24135	// The ARN of the billing group.
24136	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
24137
24138	// The name of the billing group.
24139	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
24140
24141	// The ARN of the thing to be added to the billing group.
24142	ThingArn *string `locationName:"thingArn" type:"string"`
24143
24144	// The name of the thing to be added to the billing group.
24145	ThingName *string `locationName:"thingName" min:"1" type:"string"`
24146}
24147
24148// String returns the string representation
24149func (s AddThingToBillingGroupInput) String() string {
24150	return awsutil.Prettify(s)
24151}
24152
24153// GoString returns the string representation
24154func (s AddThingToBillingGroupInput) GoString() string {
24155	return s.String()
24156}
24157
24158// Validate inspects the fields of the type to determine if they are valid.
24159func (s *AddThingToBillingGroupInput) Validate() error {
24160	invalidParams := request.ErrInvalidParams{Context: "AddThingToBillingGroupInput"}
24161	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
24162		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
24163	}
24164	if s.ThingName != nil && len(*s.ThingName) < 1 {
24165		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
24166	}
24167
24168	if invalidParams.Len() > 0 {
24169		return invalidParams
24170	}
24171	return nil
24172}
24173
24174// SetBillingGroupArn sets the BillingGroupArn field's value.
24175func (s *AddThingToBillingGroupInput) SetBillingGroupArn(v string) *AddThingToBillingGroupInput {
24176	s.BillingGroupArn = &v
24177	return s
24178}
24179
24180// SetBillingGroupName sets the BillingGroupName field's value.
24181func (s *AddThingToBillingGroupInput) SetBillingGroupName(v string) *AddThingToBillingGroupInput {
24182	s.BillingGroupName = &v
24183	return s
24184}
24185
24186// SetThingArn sets the ThingArn field's value.
24187func (s *AddThingToBillingGroupInput) SetThingArn(v string) *AddThingToBillingGroupInput {
24188	s.ThingArn = &v
24189	return s
24190}
24191
24192// SetThingName sets the ThingName field's value.
24193func (s *AddThingToBillingGroupInput) SetThingName(v string) *AddThingToBillingGroupInput {
24194	s.ThingName = &v
24195	return s
24196}
24197
24198type AddThingToBillingGroupOutput struct {
24199	_ struct{} `type:"structure"`
24200}
24201
24202// String returns the string representation
24203func (s AddThingToBillingGroupOutput) String() string {
24204	return awsutil.Prettify(s)
24205}
24206
24207// GoString returns the string representation
24208func (s AddThingToBillingGroupOutput) GoString() string {
24209	return s.String()
24210}
24211
24212type AddThingToThingGroupInput struct {
24213	_ struct{} `type:"structure"`
24214
24215	// Override dynamic thing groups with static thing groups when 10-group limit
24216	// is reached. If a thing belongs to 10 thing groups, and one or more of those
24217	// groups are dynamic thing groups, adding a thing to a static group removes
24218	// the thing from the last dynamic group.
24219	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
24220
24221	// The ARN of the thing to add to a group.
24222	ThingArn *string `locationName:"thingArn" type:"string"`
24223
24224	// The ARN of the group to which you are adding a thing.
24225	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
24226
24227	// The name of the group to which you are adding a thing.
24228	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
24229
24230	// The name of the thing to add to a group.
24231	ThingName *string `locationName:"thingName" min:"1" type:"string"`
24232}
24233
24234// String returns the string representation
24235func (s AddThingToThingGroupInput) String() string {
24236	return awsutil.Prettify(s)
24237}
24238
24239// GoString returns the string representation
24240func (s AddThingToThingGroupInput) GoString() string {
24241	return s.String()
24242}
24243
24244// Validate inspects the fields of the type to determine if they are valid.
24245func (s *AddThingToThingGroupInput) Validate() error {
24246	invalidParams := request.ErrInvalidParams{Context: "AddThingToThingGroupInput"}
24247	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
24248		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
24249	}
24250	if s.ThingName != nil && len(*s.ThingName) < 1 {
24251		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
24252	}
24253
24254	if invalidParams.Len() > 0 {
24255		return invalidParams
24256	}
24257	return nil
24258}
24259
24260// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
24261func (s *AddThingToThingGroupInput) SetOverrideDynamicGroups(v bool) *AddThingToThingGroupInput {
24262	s.OverrideDynamicGroups = &v
24263	return s
24264}
24265
24266// SetThingArn sets the ThingArn field's value.
24267func (s *AddThingToThingGroupInput) SetThingArn(v string) *AddThingToThingGroupInput {
24268	s.ThingArn = &v
24269	return s
24270}
24271
24272// SetThingGroupArn sets the ThingGroupArn field's value.
24273func (s *AddThingToThingGroupInput) SetThingGroupArn(v string) *AddThingToThingGroupInput {
24274	s.ThingGroupArn = &v
24275	return s
24276}
24277
24278// SetThingGroupName sets the ThingGroupName field's value.
24279func (s *AddThingToThingGroupInput) SetThingGroupName(v string) *AddThingToThingGroupInput {
24280	s.ThingGroupName = &v
24281	return s
24282}
24283
24284// SetThingName sets the ThingName field's value.
24285func (s *AddThingToThingGroupInput) SetThingName(v string) *AddThingToThingGroupInput {
24286	s.ThingName = &v
24287	return s
24288}
24289
24290type AddThingToThingGroupOutput struct {
24291	_ struct{} `type:"structure"`
24292}
24293
24294// String returns the string representation
24295func (s AddThingToThingGroupOutput) String() string {
24296	return awsutil.Prettify(s)
24297}
24298
24299// GoString returns the string representation
24300func (s AddThingToThingGroupOutput) GoString() string {
24301	return s.String()
24302}
24303
24304// Parameters used when defining a mitigation action that move a set of things
24305// to a thing group.
24306type AddThingsToThingGroupParams struct {
24307	_ struct{} `type:"structure"`
24308
24309	// Specifies if this mitigation action can move the things that triggered the
24310	// mitigation action even if they are part of one or more dynamic thing groups.
24311	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
24312
24313	// The list of groups to which you want to add the things that triggered the
24314	// mitigation action. You can add a thing to a maximum of 10 groups, but you
24315	// can't add a thing to more than one group in the same hierarchy.
24316	//
24317	// ThingGroupNames is a required field
24318	ThingGroupNames []*string `locationName:"thingGroupNames" min:"1" type:"list" required:"true"`
24319}
24320
24321// String returns the string representation
24322func (s AddThingsToThingGroupParams) String() string {
24323	return awsutil.Prettify(s)
24324}
24325
24326// GoString returns the string representation
24327func (s AddThingsToThingGroupParams) GoString() string {
24328	return s.String()
24329}
24330
24331// Validate inspects the fields of the type to determine if they are valid.
24332func (s *AddThingsToThingGroupParams) Validate() error {
24333	invalidParams := request.ErrInvalidParams{Context: "AddThingsToThingGroupParams"}
24334	if s.ThingGroupNames == nil {
24335		invalidParams.Add(request.NewErrParamRequired("ThingGroupNames"))
24336	}
24337	if s.ThingGroupNames != nil && len(s.ThingGroupNames) < 1 {
24338		invalidParams.Add(request.NewErrParamMinLen("ThingGroupNames", 1))
24339	}
24340
24341	if invalidParams.Len() > 0 {
24342		return invalidParams
24343	}
24344	return nil
24345}
24346
24347// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
24348func (s *AddThingsToThingGroupParams) SetOverrideDynamicGroups(v bool) *AddThingsToThingGroupParams {
24349	s.OverrideDynamicGroups = &v
24350	return s
24351}
24352
24353// SetThingGroupNames sets the ThingGroupNames field's value.
24354func (s *AddThingsToThingGroupParams) SetThingGroupNames(v []*string) *AddThingsToThingGroupParams {
24355	s.ThingGroupNames = v
24356	return s
24357}
24358
24359// A structure containing the alert target ARN and the role ARN.
24360type AlertTarget struct {
24361	_ struct{} `type:"structure"`
24362
24363	// The Amazon Resource Name (ARN) of the notification target to which alerts
24364	// are sent.
24365	//
24366	// AlertTargetArn is a required field
24367	AlertTargetArn *string `locationName:"alertTargetArn" type:"string" required:"true"`
24368
24369	// The ARN of the role that grants permission to send alerts to the notification
24370	// target.
24371	//
24372	// RoleArn is a required field
24373	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
24374}
24375
24376// String returns the string representation
24377func (s AlertTarget) String() string {
24378	return awsutil.Prettify(s)
24379}
24380
24381// GoString returns the string representation
24382func (s AlertTarget) GoString() string {
24383	return s.String()
24384}
24385
24386// Validate inspects the fields of the type to determine if they are valid.
24387func (s *AlertTarget) Validate() error {
24388	invalidParams := request.ErrInvalidParams{Context: "AlertTarget"}
24389	if s.AlertTargetArn == nil {
24390		invalidParams.Add(request.NewErrParamRequired("AlertTargetArn"))
24391	}
24392	if s.RoleArn == nil {
24393		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
24394	}
24395	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
24396		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
24397	}
24398
24399	if invalidParams.Len() > 0 {
24400		return invalidParams
24401	}
24402	return nil
24403}
24404
24405// SetAlertTargetArn sets the AlertTargetArn field's value.
24406func (s *AlertTarget) SetAlertTargetArn(v string) *AlertTarget {
24407	s.AlertTargetArn = &v
24408	return s
24409}
24410
24411// SetRoleArn sets the RoleArn field's value.
24412func (s *AlertTarget) SetRoleArn(v string) *AlertTarget {
24413	s.RoleArn = &v
24414	return s
24415}
24416
24417// Contains information that allowed the authorization.
24418type Allowed struct {
24419	_ struct{} `type:"structure"`
24420
24421	// A list of policies that allowed the authentication.
24422	Policies []*Policy `locationName:"policies" type:"list"`
24423}
24424
24425// String returns the string representation
24426func (s Allowed) String() string {
24427	return awsutil.Prettify(s)
24428}
24429
24430// GoString returns the string representation
24431func (s Allowed) GoString() string {
24432	return s.String()
24433}
24434
24435// SetPolicies sets the Policies field's value.
24436func (s *Allowed) SetPolicies(v []*Policy) *Allowed {
24437	s.Policies = v
24438	return s
24439}
24440
24441// An asset property timestamp entry containing the following information.
24442type AssetPropertyTimestamp struct {
24443	_ struct{} `type:"structure"`
24444
24445	// Optional. A string that contains the nanosecond time offset. Accepts substitution
24446	// templates.
24447	OffsetInNanos *string `locationName:"offsetInNanos" type:"string"`
24448
24449	// A string that contains the time in seconds since epoch. Accepts substitution
24450	// templates.
24451	//
24452	// TimeInSeconds is a required field
24453	TimeInSeconds *string `locationName:"timeInSeconds" type:"string" required:"true"`
24454}
24455
24456// String returns the string representation
24457func (s AssetPropertyTimestamp) String() string {
24458	return awsutil.Prettify(s)
24459}
24460
24461// GoString returns the string representation
24462func (s AssetPropertyTimestamp) GoString() string {
24463	return s.String()
24464}
24465
24466// Validate inspects the fields of the type to determine if they are valid.
24467func (s *AssetPropertyTimestamp) Validate() error {
24468	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyTimestamp"}
24469	if s.TimeInSeconds == nil {
24470		invalidParams.Add(request.NewErrParamRequired("TimeInSeconds"))
24471	}
24472
24473	if invalidParams.Len() > 0 {
24474		return invalidParams
24475	}
24476	return nil
24477}
24478
24479// SetOffsetInNanos sets the OffsetInNanos field's value.
24480func (s *AssetPropertyTimestamp) SetOffsetInNanos(v string) *AssetPropertyTimestamp {
24481	s.OffsetInNanos = &v
24482	return s
24483}
24484
24485// SetTimeInSeconds sets the TimeInSeconds field's value.
24486func (s *AssetPropertyTimestamp) SetTimeInSeconds(v string) *AssetPropertyTimestamp {
24487	s.TimeInSeconds = &v
24488	return s
24489}
24490
24491// An asset property value entry containing the following information.
24492type AssetPropertyValue struct {
24493	_ struct{} `type:"structure"`
24494
24495	// Optional. A string that describes the quality of the value. Accepts substitution
24496	// templates. Must be GOOD, BAD, or UNCERTAIN.
24497	Quality *string `locationName:"quality" type:"string"`
24498
24499	// The asset property value timestamp.
24500	//
24501	// Timestamp is a required field
24502	Timestamp *AssetPropertyTimestamp `locationName:"timestamp" type:"structure" required:"true"`
24503
24504	// The value of the asset property.
24505	//
24506	// Value is a required field
24507	Value *AssetPropertyVariant `locationName:"value" type:"structure" required:"true"`
24508}
24509
24510// String returns the string representation
24511func (s AssetPropertyValue) String() string {
24512	return awsutil.Prettify(s)
24513}
24514
24515// GoString returns the string representation
24516func (s AssetPropertyValue) GoString() string {
24517	return s.String()
24518}
24519
24520// Validate inspects the fields of the type to determine if they are valid.
24521func (s *AssetPropertyValue) Validate() error {
24522	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyValue"}
24523	if s.Timestamp == nil {
24524		invalidParams.Add(request.NewErrParamRequired("Timestamp"))
24525	}
24526	if s.Value == nil {
24527		invalidParams.Add(request.NewErrParamRequired("Value"))
24528	}
24529	if s.Timestamp != nil {
24530		if err := s.Timestamp.Validate(); err != nil {
24531			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
24532		}
24533	}
24534	if s.Value != nil {
24535		if err := s.Value.Validate(); err != nil {
24536			invalidParams.AddNested("Value", err.(request.ErrInvalidParams))
24537		}
24538	}
24539
24540	if invalidParams.Len() > 0 {
24541		return invalidParams
24542	}
24543	return nil
24544}
24545
24546// SetQuality sets the Quality field's value.
24547func (s *AssetPropertyValue) SetQuality(v string) *AssetPropertyValue {
24548	s.Quality = &v
24549	return s
24550}
24551
24552// SetTimestamp sets the Timestamp field's value.
24553func (s *AssetPropertyValue) SetTimestamp(v *AssetPropertyTimestamp) *AssetPropertyValue {
24554	s.Timestamp = v
24555	return s
24556}
24557
24558// SetValue sets the Value field's value.
24559func (s *AssetPropertyValue) SetValue(v *AssetPropertyVariant) *AssetPropertyValue {
24560	s.Value = v
24561	return s
24562}
24563
24564// Contains an asset property value (of a single type).
24565type AssetPropertyVariant struct {
24566	_ struct{} `type:"structure"`
24567
24568	// Optional. A string that contains the boolean value (true or false) of the
24569	// value entry. Accepts substitution templates.
24570	BooleanValue *string `locationName:"booleanValue" type:"string"`
24571
24572	// Optional. A string that contains the double value of the value entry. Accepts
24573	// substitution templates.
24574	DoubleValue *string `locationName:"doubleValue" type:"string"`
24575
24576	// Optional. A string that contains the integer value of the value entry. Accepts
24577	// substitution templates.
24578	IntegerValue *string `locationName:"integerValue" type:"string"`
24579
24580	// Optional. The string value of the value entry. Accepts substitution templates.
24581	StringValue *string `locationName:"stringValue" min:"1" type:"string"`
24582}
24583
24584// String returns the string representation
24585func (s AssetPropertyVariant) String() string {
24586	return awsutil.Prettify(s)
24587}
24588
24589// GoString returns the string representation
24590func (s AssetPropertyVariant) GoString() string {
24591	return s.String()
24592}
24593
24594// Validate inspects the fields of the type to determine if they are valid.
24595func (s *AssetPropertyVariant) Validate() error {
24596	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyVariant"}
24597	if s.StringValue != nil && len(*s.StringValue) < 1 {
24598		invalidParams.Add(request.NewErrParamMinLen("StringValue", 1))
24599	}
24600
24601	if invalidParams.Len() > 0 {
24602		return invalidParams
24603	}
24604	return nil
24605}
24606
24607// SetBooleanValue sets the BooleanValue field's value.
24608func (s *AssetPropertyVariant) SetBooleanValue(v string) *AssetPropertyVariant {
24609	s.BooleanValue = &v
24610	return s
24611}
24612
24613// SetDoubleValue sets the DoubleValue field's value.
24614func (s *AssetPropertyVariant) SetDoubleValue(v string) *AssetPropertyVariant {
24615	s.DoubleValue = &v
24616	return s
24617}
24618
24619// SetIntegerValue sets the IntegerValue field's value.
24620func (s *AssetPropertyVariant) SetIntegerValue(v string) *AssetPropertyVariant {
24621	s.IntegerValue = &v
24622	return s
24623}
24624
24625// SetStringValue sets the StringValue field's value.
24626func (s *AssetPropertyVariant) SetStringValue(v string) *AssetPropertyVariant {
24627	s.StringValue = &v
24628	return s
24629}
24630
24631type AssociateTargetsWithJobInput struct {
24632	_ struct{} `type:"structure"`
24633
24634	// An optional comment string describing why the job was associated with the
24635	// targets.
24636	Comment *string `locationName:"comment" type:"string"`
24637
24638	// The unique identifier you assigned to this job when it was created.
24639	//
24640	// JobId is a required field
24641	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
24642
24643	// The namespace used to indicate that a job is a customer-managed job.
24644	//
24645	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
24646	// to MQTT topics that contain the value in the following format.
24647	//
24648	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
24649	//
24650	// The namespaceId feature is in public preview.
24651	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
24652
24653	// A list of thing group ARNs that define the targets of the job.
24654	//
24655	// Targets is a required field
24656	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
24657}
24658
24659// String returns the string representation
24660func (s AssociateTargetsWithJobInput) String() string {
24661	return awsutil.Prettify(s)
24662}
24663
24664// GoString returns the string representation
24665func (s AssociateTargetsWithJobInput) GoString() string {
24666	return s.String()
24667}
24668
24669// Validate inspects the fields of the type to determine if they are valid.
24670func (s *AssociateTargetsWithJobInput) Validate() error {
24671	invalidParams := request.ErrInvalidParams{Context: "AssociateTargetsWithJobInput"}
24672	if s.JobId == nil {
24673		invalidParams.Add(request.NewErrParamRequired("JobId"))
24674	}
24675	if s.JobId != nil && len(*s.JobId) < 1 {
24676		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
24677	}
24678	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
24679		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
24680	}
24681	if s.Targets == nil {
24682		invalidParams.Add(request.NewErrParamRequired("Targets"))
24683	}
24684	if s.Targets != nil && len(s.Targets) < 1 {
24685		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
24686	}
24687
24688	if invalidParams.Len() > 0 {
24689		return invalidParams
24690	}
24691	return nil
24692}
24693
24694// SetComment sets the Comment field's value.
24695func (s *AssociateTargetsWithJobInput) SetComment(v string) *AssociateTargetsWithJobInput {
24696	s.Comment = &v
24697	return s
24698}
24699
24700// SetJobId sets the JobId field's value.
24701func (s *AssociateTargetsWithJobInput) SetJobId(v string) *AssociateTargetsWithJobInput {
24702	s.JobId = &v
24703	return s
24704}
24705
24706// SetNamespaceId sets the NamespaceId field's value.
24707func (s *AssociateTargetsWithJobInput) SetNamespaceId(v string) *AssociateTargetsWithJobInput {
24708	s.NamespaceId = &v
24709	return s
24710}
24711
24712// SetTargets sets the Targets field's value.
24713func (s *AssociateTargetsWithJobInput) SetTargets(v []*string) *AssociateTargetsWithJobInput {
24714	s.Targets = v
24715	return s
24716}
24717
24718type AssociateTargetsWithJobOutput struct {
24719	_ struct{} `type:"structure"`
24720
24721	// A short text description of the job.
24722	Description *string `locationName:"description" type:"string"`
24723
24724	// An ARN identifying the job.
24725	JobArn *string `locationName:"jobArn" type:"string"`
24726
24727	// The unique identifier you assigned to this job when it was created.
24728	JobId *string `locationName:"jobId" min:"1" type:"string"`
24729}
24730
24731// String returns the string representation
24732func (s AssociateTargetsWithJobOutput) String() string {
24733	return awsutil.Prettify(s)
24734}
24735
24736// GoString returns the string representation
24737func (s AssociateTargetsWithJobOutput) GoString() string {
24738	return s.String()
24739}
24740
24741// SetDescription sets the Description field's value.
24742func (s *AssociateTargetsWithJobOutput) SetDescription(v string) *AssociateTargetsWithJobOutput {
24743	s.Description = &v
24744	return s
24745}
24746
24747// SetJobArn sets the JobArn field's value.
24748func (s *AssociateTargetsWithJobOutput) SetJobArn(v string) *AssociateTargetsWithJobOutput {
24749	s.JobArn = &v
24750	return s
24751}
24752
24753// SetJobId sets the JobId field's value.
24754func (s *AssociateTargetsWithJobOutput) SetJobId(v string) *AssociateTargetsWithJobOutput {
24755	s.JobId = &v
24756	return s
24757}
24758
24759type AttachPolicyInput struct {
24760	_ struct{} `type:"structure"`
24761
24762	// The name of the policy to attach.
24763	//
24764	// PolicyName is a required field
24765	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
24766
24767	// The identity (https://docs.aws.amazon.com/iot/latest/developerguide/security-iam.html)
24768	// to which the policy is attached. For example, a thing group or a certificate.
24769	//
24770	// Target is a required field
24771	Target *string `locationName:"target" type:"string" required:"true"`
24772}
24773
24774// String returns the string representation
24775func (s AttachPolicyInput) String() string {
24776	return awsutil.Prettify(s)
24777}
24778
24779// GoString returns the string representation
24780func (s AttachPolicyInput) GoString() string {
24781	return s.String()
24782}
24783
24784// Validate inspects the fields of the type to determine if they are valid.
24785func (s *AttachPolicyInput) Validate() error {
24786	invalidParams := request.ErrInvalidParams{Context: "AttachPolicyInput"}
24787	if s.PolicyName == nil {
24788		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
24789	}
24790	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
24791		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
24792	}
24793	if s.Target == nil {
24794		invalidParams.Add(request.NewErrParamRequired("Target"))
24795	}
24796
24797	if invalidParams.Len() > 0 {
24798		return invalidParams
24799	}
24800	return nil
24801}
24802
24803// SetPolicyName sets the PolicyName field's value.
24804func (s *AttachPolicyInput) SetPolicyName(v string) *AttachPolicyInput {
24805	s.PolicyName = &v
24806	return s
24807}
24808
24809// SetTarget sets the Target field's value.
24810func (s *AttachPolicyInput) SetTarget(v string) *AttachPolicyInput {
24811	s.Target = &v
24812	return s
24813}
24814
24815type AttachPolicyOutput struct {
24816	_ struct{} `type:"structure"`
24817}
24818
24819// String returns the string representation
24820func (s AttachPolicyOutput) String() string {
24821	return awsutil.Prettify(s)
24822}
24823
24824// GoString returns the string representation
24825func (s AttachPolicyOutput) GoString() string {
24826	return s.String()
24827}
24828
24829// The input for the AttachPrincipalPolicy operation.
24830type AttachPrincipalPolicyInput struct {
24831	_ struct{} `type:"structure"`
24832
24833	// The policy name.
24834	//
24835	// PolicyName is a required field
24836	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
24837
24838	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
24839	// operation) or an Amazon Cognito ID.
24840	//
24841	// Principal is a required field
24842	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
24843}
24844
24845// String returns the string representation
24846func (s AttachPrincipalPolicyInput) String() string {
24847	return awsutil.Prettify(s)
24848}
24849
24850// GoString returns the string representation
24851func (s AttachPrincipalPolicyInput) GoString() string {
24852	return s.String()
24853}
24854
24855// Validate inspects the fields of the type to determine if they are valid.
24856func (s *AttachPrincipalPolicyInput) Validate() error {
24857	invalidParams := request.ErrInvalidParams{Context: "AttachPrincipalPolicyInput"}
24858	if s.PolicyName == nil {
24859		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
24860	}
24861	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
24862		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
24863	}
24864	if s.Principal == nil {
24865		invalidParams.Add(request.NewErrParamRequired("Principal"))
24866	}
24867
24868	if invalidParams.Len() > 0 {
24869		return invalidParams
24870	}
24871	return nil
24872}
24873
24874// SetPolicyName sets the PolicyName field's value.
24875func (s *AttachPrincipalPolicyInput) SetPolicyName(v string) *AttachPrincipalPolicyInput {
24876	s.PolicyName = &v
24877	return s
24878}
24879
24880// SetPrincipal sets the Principal field's value.
24881func (s *AttachPrincipalPolicyInput) SetPrincipal(v string) *AttachPrincipalPolicyInput {
24882	s.Principal = &v
24883	return s
24884}
24885
24886type AttachPrincipalPolicyOutput struct {
24887	_ struct{} `type:"structure"`
24888}
24889
24890// String returns the string representation
24891func (s AttachPrincipalPolicyOutput) String() string {
24892	return awsutil.Prettify(s)
24893}
24894
24895// GoString returns the string representation
24896func (s AttachPrincipalPolicyOutput) GoString() string {
24897	return s.String()
24898}
24899
24900type AttachSecurityProfileInput struct {
24901	_ struct{} `type:"structure"`
24902
24903	// The security profile that is attached.
24904	//
24905	// SecurityProfileName is a required field
24906	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
24907
24908	// The ARN of the target (thing group) to which the security profile is attached.
24909	//
24910	// SecurityProfileTargetArn is a required field
24911	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
24912}
24913
24914// String returns the string representation
24915func (s AttachSecurityProfileInput) String() string {
24916	return awsutil.Prettify(s)
24917}
24918
24919// GoString returns the string representation
24920func (s AttachSecurityProfileInput) GoString() string {
24921	return s.String()
24922}
24923
24924// Validate inspects the fields of the type to determine if they are valid.
24925func (s *AttachSecurityProfileInput) Validate() error {
24926	invalidParams := request.ErrInvalidParams{Context: "AttachSecurityProfileInput"}
24927	if s.SecurityProfileName == nil {
24928		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
24929	}
24930	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
24931		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
24932	}
24933	if s.SecurityProfileTargetArn == nil {
24934		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
24935	}
24936
24937	if invalidParams.Len() > 0 {
24938		return invalidParams
24939	}
24940	return nil
24941}
24942
24943// SetSecurityProfileName sets the SecurityProfileName field's value.
24944func (s *AttachSecurityProfileInput) SetSecurityProfileName(v string) *AttachSecurityProfileInput {
24945	s.SecurityProfileName = &v
24946	return s
24947}
24948
24949// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
24950func (s *AttachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *AttachSecurityProfileInput {
24951	s.SecurityProfileTargetArn = &v
24952	return s
24953}
24954
24955type AttachSecurityProfileOutput struct {
24956	_ struct{} `type:"structure"`
24957}
24958
24959// String returns the string representation
24960func (s AttachSecurityProfileOutput) String() string {
24961	return awsutil.Prettify(s)
24962}
24963
24964// GoString returns the string representation
24965func (s AttachSecurityProfileOutput) GoString() string {
24966	return s.String()
24967}
24968
24969// The input for the AttachThingPrincipal operation.
24970type AttachThingPrincipalInput struct {
24971	_ struct{} `type:"structure"`
24972
24973	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
24974	// operation) or an Amazon Cognito ID.
24975	//
24976	// Principal is a required field
24977	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
24978
24979	// The name of the thing.
24980	//
24981	// ThingName is a required field
24982	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
24983}
24984
24985// String returns the string representation
24986func (s AttachThingPrincipalInput) String() string {
24987	return awsutil.Prettify(s)
24988}
24989
24990// GoString returns the string representation
24991func (s AttachThingPrincipalInput) GoString() string {
24992	return s.String()
24993}
24994
24995// Validate inspects the fields of the type to determine if they are valid.
24996func (s *AttachThingPrincipalInput) Validate() error {
24997	invalidParams := request.ErrInvalidParams{Context: "AttachThingPrincipalInput"}
24998	if s.Principal == nil {
24999		invalidParams.Add(request.NewErrParamRequired("Principal"))
25000	}
25001	if s.ThingName == nil {
25002		invalidParams.Add(request.NewErrParamRequired("ThingName"))
25003	}
25004	if s.ThingName != nil && len(*s.ThingName) < 1 {
25005		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
25006	}
25007
25008	if invalidParams.Len() > 0 {
25009		return invalidParams
25010	}
25011	return nil
25012}
25013
25014// SetPrincipal sets the Principal field's value.
25015func (s *AttachThingPrincipalInput) SetPrincipal(v string) *AttachThingPrincipalInput {
25016	s.Principal = &v
25017	return s
25018}
25019
25020// SetThingName sets the ThingName field's value.
25021func (s *AttachThingPrincipalInput) SetThingName(v string) *AttachThingPrincipalInput {
25022	s.ThingName = &v
25023	return s
25024}
25025
25026// The output from the AttachThingPrincipal operation.
25027type AttachThingPrincipalOutput struct {
25028	_ struct{} `type:"structure"`
25029}
25030
25031// String returns the string representation
25032func (s AttachThingPrincipalOutput) String() string {
25033	return awsutil.Prettify(s)
25034}
25035
25036// GoString returns the string representation
25037func (s AttachThingPrincipalOutput) GoString() string {
25038	return s.String()
25039}
25040
25041// The attribute payload.
25042type AttributePayload struct {
25043	_ struct{} `type:"structure"`
25044
25045	// A JSON string containing up to three key-value pair in JSON format. For example:
25046	//
25047	// {\"attributes\":{\"string1\":\"string2\"}}
25048	Attributes map[string]*string `locationName:"attributes" type:"map"`
25049
25050	// Specifies whether the list of attributes provided in the AttributePayload
25051	// is merged with the attributes stored in the registry, instead of overwriting
25052	// them.
25053	//
25054	// To remove an attribute, call UpdateThing with an empty attribute value.
25055	//
25056	// The merge attribute is only valid when calling UpdateThing or UpdateThingGroup.
25057	Merge *bool `locationName:"merge" type:"boolean"`
25058}
25059
25060// String returns the string representation
25061func (s AttributePayload) String() string {
25062	return awsutil.Prettify(s)
25063}
25064
25065// GoString returns the string representation
25066func (s AttributePayload) GoString() string {
25067	return s.String()
25068}
25069
25070// SetAttributes sets the Attributes field's value.
25071func (s *AttributePayload) SetAttributes(v map[string]*string) *AttributePayload {
25072	s.Attributes = v
25073	return s
25074}
25075
25076// SetMerge sets the Merge field's value.
25077func (s *AttributePayload) SetMerge(v bool) *AttributePayload {
25078	s.Merge = &v
25079	return s
25080}
25081
25082// Which audit checks are enabled and disabled for this account.
25083type AuditCheckConfiguration struct {
25084	_ struct{} `type:"structure"`
25085
25086	// True if this audit check is enabled for this account.
25087	Enabled *bool `locationName:"enabled" type:"boolean"`
25088}
25089
25090// String returns the string representation
25091func (s AuditCheckConfiguration) String() string {
25092	return awsutil.Prettify(s)
25093}
25094
25095// GoString returns the string representation
25096func (s AuditCheckConfiguration) GoString() string {
25097	return s.String()
25098}
25099
25100// SetEnabled sets the Enabled field's value.
25101func (s *AuditCheckConfiguration) SetEnabled(v bool) *AuditCheckConfiguration {
25102	s.Enabled = &v
25103	return s
25104}
25105
25106// Information about the audit check.
25107type AuditCheckDetails struct {
25108	_ struct{} `type:"structure"`
25109
25110	// True if the check is complete and found all resources compliant.
25111	CheckCompliant *bool `locationName:"checkCompliant" type:"boolean"`
25112
25113	// The completion status of this check. One of "IN_PROGRESS", "WAITING_FOR_DATA_COLLECTION",
25114	// "CANCELED", "COMPLETED_COMPLIANT", "COMPLETED_NON_COMPLIANT", or "FAILED".
25115	CheckRunStatus *string `locationName:"checkRunStatus" type:"string" enum:"AuditCheckRunStatus"`
25116
25117	// The code of any error encountered when this check is performed during this
25118	// audit. One of "INSUFFICIENT_PERMISSIONS" or "AUDIT_CHECK_DISABLED".
25119	ErrorCode *string `locationName:"errorCode" type:"string"`
25120
25121	// The message associated with any error encountered when this check is performed
25122	// during this audit.
25123	Message *string `locationName:"message" type:"string"`
25124
25125	// The number of resources that were found noncompliant during the check.
25126	NonCompliantResourcesCount *int64 `locationName:"nonCompliantResourcesCount" type:"long"`
25127
25128	// Describes how many of the non-compliant resources created during the evaluation
25129	// of an audit check were marked as suppressed.
25130	SuppressedNonCompliantResourcesCount *int64 `locationName:"suppressedNonCompliantResourcesCount" type:"long"`
25131
25132	// The number of resources on which the check was performed.
25133	TotalResourcesCount *int64 `locationName:"totalResourcesCount" type:"long"`
25134}
25135
25136// String returns the string representation
25137func (s AuditCheckDetails) String() string {
25138	return awsutil.Prettify(s)
25139}
25140
25141// GoString returns the string representation
25142func (s AuditCheckDetails) GoString() string {
25143	return s.String()
25144}
25145
25146// SetCheckCompliant sets the CheckCompliant field's value.
25147func (s *AuditCheckDetails) SetCheckCompliant(v bool) *AuditCheckDetails {
25148	s.CheckCompliant = &v
25149	return s
25150}
25151
25152// SetCheckRunStatus sets the CheckRunStatus field's value.
25153func (s *AuditCheckDetails) SetCheckRunStatus(v string) *AuditCheckDetails {
25154	s.CheckRunStatus = &v
25155	return s
25156}
25157
25158// SetErrorCode sets the ErrorCode field's value.
25159func (s *AuditCheckDetails) SetErrorCode(v string) *AuditCheckDetails {
25160	s.ErrorCode = &v
25161	return s
25162}
25163
25164// SetMessage sets the Message field's value.
25165func (s *AuditCheckDetails) SetMessage(v string) *AuditCheckDetails {
25166	s.Message = &v
25167	return s
25168}
25169
25170// SetNonCompliantResourcesCount sets the NonCompliantResourcesCount field's value.
25171func (s *AuditCheckDetails) SetNonCompliantResourcesCount(v int64) *AuditCheckDetails {
25172	s.NonCompliantResourcesCount = &v
25173	return s
25174}
25175
25176// SetSuppressedNonCompliantResourcesCount sets the SuppressedNonCompliantResourcesCount field's value.
25177func (s *AuditCheckDetails) SetSuppressedNonCompliantResourcesCount(v int64) *AuditCheckDetails {
25178	s.SuppressedNonCompliantResourcesCount = &v
25179	return s
25180}
25181
25182// SetTotalResourcesCount sets the TotalResourcesCount field's value.
25183func (s *AuditCheckDetails) SetTotalResourcesCount(v int64) *AuditCheckDetails {
25184	s.TotalResourcesCount = &v
25185	return s
25186}
25187
25188// The findings (results) of the audit.
25189type AuditFinding struct {
25190	_ struct{} `type:"structure"`
25191
25192	// The audit check that generated this result.
25193	CheckName *string `locationName:"checkName" type:"string"`
25194
25195	// A unique identifier for this set of audit findings. This identifier is used
25196	// to apply mitigation tasks to one or more sets of findings.
25197	FindingId *string `locationName:"findingId" min:"1" type:"string"`
25198
25199	// The time the result (finding) was discovered.
25200	FindingTime *time.Time `locationName:"findingTime" type:"timestamp"`
25201
25202	// Indicates whether the audit finding was suppressed or not during reporting.
25203	IsSuppressed *bool `locationName:"isSuppressed" type:"boolean"`
25204
25205	// The resource that was found to be noncompliant with the audit check.
25206	NonCompliantResource *NonCompliantResource `locationName:"nonCompliantResource" type:"structure"`
25207
25208	// The reason the resource was noncompliant.
25209	ReasonForNonCompliance *string `locationName:"reasonForNonCompliance" type:"string"`
25210
25211	// A code that indicates the reason that the resource was noncompliant.
25212	ReasonForNonComplianceCode *string `locationName:"reasonForNonComplianceCode" type:"string"`
25213
25214	// The list of related resources.
25215	RelatedResources []*RelatedResource `locationName:"relatedResources" type:"list"`
25216
25217	// The severity of the result (finding).
25218	Severity *string `locationName:"severity" type:"string" enum:"AuditFindingSeverity"`
25219
25220	// The ID of the audit that generated this result (finding).
25221	TaskId *string `locationName:"taskId" min:"1" type:"string"`
25222
25223	// The time the audit started.
25224	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
25225}
25226
25227// String returns the string representation
25228func (s AuditFinding) String() string {
25229	return awsutil.Prettify(s)
25230}
25231
25232// GoString returns the string representation
25233func (s AuditFinding) GoString() string {
25234	return s.String()
25235}
25236
25237// SetCheckName sets the CheckName field's value.
25238func (s *AuditFinding) SetCheckName(v string) *AuditFinding {
25239	s.CheckName = &v
25240	return s
25241}
25242
25243// SetFindingId sets the FindingId field's value.
25244func (s *AuditFinding) SetFindingId(v string) *AuditFinding {
25245	s.FindingId = &v
25246	return s
25247}
25248
25249// SetFindingTime sets the FindingTime field's value.
25250func (s *AuditFinding) SetFindingTime(v time.Time) *AuditFinding {
25251	s.FindingTime = &v
25252	return s
25253}
25254
25255// SetIsSuppressed sets the IsSuppressed field's value.
25256func (s *AuditFinding) SetIsSuppressed(v bool) *AuditFinding {
25257	s.IsSuppressed = &v
25258	return s
25259}
25260
25261// SetNonCompliantResource sets the NonCompliantResource field's value.
25262func (s *AuditFinding) SetNonCompliantResource(v *NonCompliantResource) *AuditFinding {
25263	s.NonCompliantResource = v
25264	return s
25265}
25266
25267// SetReasonForNonCompliance sets the ReasonForNonCompliance field's value.
25268func (s *AuditFinding) SetReasonForNonCompliance(v string) *AuditFinding {
25269	s.ReasonForNonCompliance = &v
25270	return s
25271}
25272
25273// SetReasonForNonComplianceCode sets the ReasonForNonComplianceCode field's value.
25274func (s *AuditFinding) SetReasonForNonComplianceCode(v string) *AuditFinding {
25275	s.ReasonForNonComplianceCode = &v
25276	return s
25277}
25278
25279// SetRelatedResources sets the RelatedResources field's value.
25280func (s *AuditFinding) SetRelatedResources(v []*RelatedResource) *AuditFinding {
25281	s.RelatedResources = v
25282	return s
25283}
25284
25285// SetSeverity sets the Severity field's value.
25286func (s *AuditFinding) SetSeverity(v string) *AuditFinding {
25287	s.Severity = &v
25288	return s
25289}
25290
25291// SetTaskId sets the TaskId field's value.
25292func (s *AuditFinding) SetTaskId(v string) *AuditFinding {
25293	s.TaskId = &v
25294	return s
25295}
25296
25297// SetTaskStartTime sets the TaskStartTime field's value.
25298func (s *AuditFinding) SetTaskStartTime(v time.Time) *AuditFinding {
25299	s.TaskStartTime = &v
25300	return s
25301}
25302
25303// Returned by ListAuditMitigationActionsTask, this object contains information
25304// that describes a mitigation action that has been started.
25305type AuditMitigationActionExecutionMetadata struct {
25306	_ struct{} `type:"structure"`
25307
25308	// The unique identifier for the mitigation action being applied by the task.
25309	ActionId *string `locationName:"actionId" type:"string"`
25310
25311	// The friendly name of the mitigation action being applied by the task.
25312	ActionName *string `locationName:"actionName" type:"string"`
25313
25314	// The date and time when the task was completed or canceled. Blank if the task
25315	// is still running.
25316	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
25317
25318	// If an error occurred, the code that indicates which type of error occurred.
25319	ErrorCode *string `locationName:"errorCode" type:"string"`
25320
25321	// The unique identifier for the findings to which the task and associated mitigation
25322	// action are applied.
25323	FindingId *string `locationName:"findingId" min:"1" type:"string"`
25324
25325	// If an error occurred, a message that describes the error.
25326	Message *string `locationName:"message" type:"string"`
25327
25328	// The date and time when the task was started.
25329	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
25330
25331	// The current status of the task being executed.
25332	Status *string `locationName:"status" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
25333
25334	// The unique identifier for the task that applies the mitigation action.
25335	TaskId *string `locationName:"taskId" min:"1" type:"string"`
25336}
25337
25338// String returns the string representation
25339func (s AuditMitigationActionExecutionMetadata) String() string {
25340	return awsutil.Prettify(s)
25341}
25342
25343// GoString returns the string representation
25344func (s AuditMitigationActionExecutionMetadata) GoString() string {
25345	return s.String()
25346}
25347
25348// SetActionId sets the ActionId field's value.
25349func (s *AuditMitigationActionExecutionMetadata) SetActionId(v string) *AuditMitigationActionExecutionMetadata {
25350	s.ActionId = &v
25351	return s
25352}
25353
25354// SetActionName sets the ActionName field's value.
25355func (s *AuditMitigationActionExecutionMetadata) SetActionName(v string) *AuditMitigationActionExecutionMetadata {
25356	s.ActionName = &v
25357	return s
25358}
25359
25360// SetEndTime sets the EndTime field's value.
25361func (s *AuditMitigationActionExecutionMetadata) SetEndTime(v time.Time) *AuditMitigationActionExecutionMetadata {
25362	s.EndTime = &v
25363	return s
25364}
25365
25366// SetErrorCode sets the ErrorCode field's value.
25367func (s *AuditMitigationActionExecutionMetadata) SetErrorCode(v string) *AuditMitigationActionExecutionMetadata {
25368	s.ErrorCode = &v
25369	return s
25370}
25371
25372// SetFindingId sets the FindingId field's value.
25373func (s *AuditMitigationActionExecutionMetadata) SetFindingId(v string) *AuditMitigationActionExecutionMetadata {
25374	s.FindingId = &v
25375	return s
25376}
25377
25378// SetMessage sets the Message field's value.
25379func (s *AuditMitigationActionExecutionMetadata) SetMessage(v string) *AuditMitigationActionExecutionMetadata {
25380	s.Message = &v
25381	return s
25382}
25383
25384// SetStartTime sets the StartTime field's value.
25385func (s *AuditMitigationActionExecutionMetadata) SetStartTime(v time.Time) *AuditMitigationActionExecutionMetadata {
25386	s.StartTime = &v
25387	return s
25388}
25389
25390// SetStatus sets the Status field's value.
25391func (s *AuditMitigationActionExecutionMetadata) SetStatus(v string) *AuditMitigationActionExecutionMetadata {
25392	s.Status = &v
25393	return s
25394}
25395
25396// SetTaskId sets the TaskId field's value.
25397func (s *AuditMitigationActionExecutionMetadata) SetTaskId(v string) *AuditMitigationActionExecutionMetadata {
25398	s.TaskId = &v
25399	return s
25400}
25401
25402// Information about an audit mitigation actions task that is returned by ListAuditMitigationActionsTasks.
25403type AuditMitigationActionsTaskMetadata struct {
25404	_ struct{} `type:"structure"`
25405
25406	// The time at which the audit mitigation actions task was started.
25407	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
25408
25409	// The unique identifier for the task.
25410	TaskId *string `locationName:"taskId" min:"1" type:"string"`
25411
25412	// The current state of the audit mitigation actions task.
25413	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
25414}
25415
25416// String returns the string representation
25417func (s AuditMitigationActionsTaskMetadata) String() string {
25418	return awsutil.Prettify(s)
25419}
25420
25421// GoString returns the string representation
25422func (s AuditMitigationActionsTaskMetadata) GoString() string {
25423	return s.String()
25424}
25425
25426// SetStartTime sets the StartTime field's value.
25427func (s *AuditMitigationActionsTaskMetadata) SetStartTime(v time.Time) *AuditMitigationActionsTaskMetadata {
25428	s.StartTime = &v
25429	return s
25430}
25431
25432// SetTaskId sets the TaskId field's value.
25433func (s *AuditMitigationActionsTaskMetadata) SetTaskId(v string) *AuditMitigationActionsTaskMetadata {
25434	s.TaskId = &v
25435	return s
25436}
25437
25438// SetTaskStatus sets the TaskStatus field's value.
25439func (s *AuditMitigationActionsTaskMetadata) SetTaskStatus(v string) *AuditMitigationActionsTaskMetadata {
25440	s.TaskStatus = &v
25441	return s
25442}
25443
25444// Used in MitigationActionParams, this information identifies the target findings
25445// to which the mitigation actions are applied. Only one entry appears.
25446type AuditMitigationActionsTaskTarget struct {
25447	_ struct{} `type:"structure"`
25448
25449	// Specifies a filter in the form of an audit check and set of reason codes
25450	// that identify the findings from the audit to which the audit mitigation actions
25451	// task apply.
25452	AuditCheckToReasonCodeFilter map[string][]*string `locationName:"auditCheckToReasonCodeFilter" type:"map"`
25453
25454	// If the task will apply a mitigation action to findings from a specific audit,
25455	// this value uniquely identifies the audit.
25456	AuditTaskId *string `locationName:"auditTaskId" min:"1" type:"string"`
25457
25458	// If the task will apply a mitigation action to one or more listed findings,
25459	// this value uniquely identifies those findings.
25460	FindingIds []*string `locationName:"findingIds" min:"1" type:"list"`
25461}
25462
25463// String returns the string representation
25464func (s AuditMitigationActionsTaskTarget) String() string {
25465	return awsutil.Prettify(s)
25466}
25467
25468// GoString returns the string representation
25469func (s AuditMitigationActionsTaskTarget) GoString() string {
25470	return s.String()
25471}
25472
25473// Validate inspects the fields of the type to determine if they are valid.
25474func (s *AuditMitigationActionsTaskTarget) Validate() error {
25475	invalidParams := request.ErrInvalidParams{Context: "AuditMitigationActionsTaskTarget"}
25476	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
25477		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
25478	}
25479	if s.FindingIds != nil && len(s.FindingIds) < 1 {
25480		invalidParams.Add(request.NewErrParamMinLen("FindingIds", 1))
25481	}
25482
25483	if invalidParams.Len() > 0 {
25484		return invalidParams
25485	}
25486	return nil
25487}
25488
25489// SetAuditCheckToReasonCodeFilter sets the AuditCheckToReasonCodeFilter field's value.
25490func (s *AuditMitigationActionsTaskTarget) SetAuditCheckToReasonCodeFilter(v map[string][]*string) *AuditMitigationActionsTaskTarget {
25491	s.AuditCheckToReasonCodeFilter = v
25492	return s
25493}
25494
25495// SetAuditTaskId sets the AuditTaskId field's value.
25496func (s *AuditMitigationActionsTaskTarget) SetAuditTaskId(v string) *AuditMitigationActionsTaskTarget {
25497	s.AuditTaskId = &v
25498	return s
25499}
25500
25501// SetFindingIds sets the FindingIds field's value.
25502func (s *AuditMitigationActionsTaskTarget) SetFindingIds(v []*string) *AuditMitigationActionsTaskTarget {
25503	s.FindingIds = v
25504	return s
25505}
25506
25507// Information about the targets to which audit notifications are sent.
25508type AuditNotificationTarget struct {
25509	_ struct{} `type:"structure"`
25510
25511	// True if notifications to the target are enabled.
25512	Enabled *bool `locationName:"enabled" type:"boolean"`
25513
25514	// The ARN of the role that grants permission to send notifications to the target.
25515	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
25516
25517	// The ARN of the target (SNS topic) to which audit notifications are sent.
25518	TargetArn *string `locationName:"targetArn" type:"string"`
25519}
25520
25521// String returns the string representation
25522func (s AuditNotificationTarget) String() string {
25523	return awsutil.Prettify(s)
25524}
25525
25526// GoString returns the string representation
25527func (s AuditNotificationTarget) GoString() string {
25528	return s.String()
25529}
25530
25531// Validate inspects the fields of the type to determine if they are valid.
25532func (s *AuditNotificationTarget) Validate() error {
25533	invalidParams := request.ErrInvalidParams{Context: "AuditNotificationTarget"}
25534	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
25535		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
25536	}
25537
25538	if invalidParams.Len() > 0 {
25539		return invalidParams
25540	}
25541	return nil
25542}
25543
25544// SetEnabled sets the Enabled field's value.
25545func (s *AuditNotificationTarget) SetEnabled(v bool) *AuditNotificationTarget {
25546	s.Enabled = &v
25547	return s
25548}
25549
25550// SetRoleArn sets the RoleArn field's value.
25551func (s *AuditNotificationTarget) SetRoleArn(v string) *AuditNotificationTarget {
25552	s.RoleArn = &v
25553	return s
25554}
25555
25556// SetTargetArn sets the TargetArn field's value.
25557func (s *AuditNotificationTarget) SetTargetArn(v string) *AuditNotificationTarget {
25558	s.TargetArn = &v
25559	return s
25560}
25561
25562// Filters out specific findings of a Device Defender audit.
25563type AuditSuppression struct {
25564	_ struct{} `type:"structure"`
25565
25566	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
25567	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
25568	// to select which checks are enabled.)
25569	//
25570	// CheckName is a required field
25571	CheckName *string `locationName:"checkName" type:"string" required:"true"`
25572
25573	// The description of the audit suppression.
25574	Description *string `locationName:"description" type:"string"`
25575
25576	// The expiration date (epoch timestamp in seconds) that you want the suppression
25577	// to adhere to.
25578	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
25579
25580	// Information that identifies the noncompliant resource.
25581	//
25582	// ResourceIdentifier is a required field
25583	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
25584
25585	// Indicates whether a suppression should exist indefinitely or not.
25586	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
25587}
25588
25589// String returns the string representation
25590func (s AuditSuppression) String() string {
25591	return awsutil.Prettify(s)
25592}
25593
25594// GoString returns the string representation
25595func (s AuditSuppression) GoString() string {
25596	return s.String()
25597}
25598
25599// SetCheckName sets the CheckName field's value.
25600func (s *AuditSuppression) SetCheckName(v string) *AuditSuppression {
25601	s.CheckName = &v
25602	return s
25603}
25604
25605// SetDescription sets the Description field's value.
25606func (s *AuditSuppression) SetDescription(v string) *AuditSuppression {
25607	s.Description = &v
25608	return s
25609}
25610
25611// SetExpirationDate sets the ExpirationDate field's value.
25612func (s *AuditSuppression) SetExpirationDate(v time.Time) *AuditSuppression {
25613	s.ExpirationDate = &v
25614	return s
25615}
25616
25617// SetResourceIdentifier sets the ResourceIdentifier field's value.
25618func (s *AuditSuppression) SetResourceIdentifier(v *ResourceIdentifier) *AuditSuppression {
25619	s.ResourceIdentifier = v
25620	return s
25621}
25622
25623// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
25624func (s *AuditSuppression) SetSuppressIndefinitely(v bool) *AuditSuppression {
25625	s.SuppressIndefinitely = &v
25626	return s
25627}
25628
25629// The audits that were performed.
25630type AuditTaskMetadata struct {
25631	_ struct{} `type:"structure"`
25632
25633	// The ID of this audit.
25634	TaskId *string `locationName:"taskId" min:"1" type:"string"`
25635
25636	// The status of this audit. One of "IN_PROGRESS", "COMPLETED", "FAILED", or
25637	// "CANCELED".
25638	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
25639
25640	// The type of this audit. One of "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
25641	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
25642}
25643
25644// String returns the string representation
25645func (s AuditTaskMetadata) String() string {
25646	return awsutil.Prettify(s)
25647}
25648
25649// GoString returns the string representation
25650func (s AuditTaskMetadata) GoString() string {
25651	return s.String()
25652}
25653
25654// SetTaskId sets the TaskId field's value.
25655func (s *AuditTaskMetadata) SetTaskId(v string) *AuditTaskMetadata {
25656	s.TaskId = &v
25657	return s
25658}
25659
25660// SetTaskStatus sets the TaskStatus field's value.
25661func (s *AuditTaskMetadata) SetTaskStatus(v string) *AuditTaskMetadata {
25662	s.TaskStatus = &v
25663	return s
25664}
25665
25666// SetTaskType sets the TaskType field's value.
25667func (s *AuditTaskMetadata) SetTaskType(v string) *AuditTaskMetadata {
25668	s.TaskType = &v
25669	return s
25670}
25671
25672// A collection of authorization information.
25673type AuthInfo struct {
25674	_ struct{} `type:"structure"`
25675
25676	// The type of action for which the principal is being authorized.
25677	ActionType *string `locationName:"actionType" type:"string" enum:"ActionType"`
25678
25679	// The resources for which the principal is being authorized to perform the
25680	// specified action.
25681	//
25682	// Resources is a required field
25683	Resources []*string `locationName:"resources" type:"list" required:"true"`
25684}
25685
25686// String returns the string representation
25687func (s AuthInfo) String() string {
25688	return awsutil.Prettify(s)
25689}
25690
25691// GoString returns the string representation
25692func (s AuthInfo) GoString() string {
25693	return s.String()
25694}
25695
25696// Validate inspects the fields of the type to determine if they are valid.
25697func (s *AuthInfo) Validate() error {
25698	invalidParams := request.ErrInvalidParams{Context: "AuthInfo"}
25699	if s.Resources == nil {
25700		invalidParams.Add(request.NewErrParamRequired("Resources"))
25701	}
25702
25703	if invalidParams.Len() > 0 {
25704		return invalidParams
25705	}
25706	return nil
25707}
25708
25709// SetActionType sets the ActionType field's value.
25710func (s *AuthInfo) SetActionType(v string) *AuthInfo {
25711	s.ActionType = &v
25712	return s
25713}
25714
25715// SetResources sets the Resources field's value.
25716func (s *AuthInfo) SetResources(v []*string) *AuthInfo {
25717	s.Resources = v
25718	return s
25719}
25720
25721// The authorizer result.
25722type AuthResult struct {
25723	_ struct{} `type:"structure"`
25724
25725	// The policies and statements that allowed the specified action.
25726	Allowed *Allowed `locationName:"allowed" type:"structure"`
25727
25728	// The final authorization decision of this scenario. Multiple statements are
25729	// taken into account when determining the authorization decision. An explicit
25730	// deny statement can override multiple allow statements.
25731	AuthDecision *string `locationName:"authDecision" type:"string" enum:"AuthDecision"`
25732
25733	// Authorization information.
25734	AuthInfo *AuthInfo `locationName:"authInfo" type:"structure"`
25735
25736	// The policies and statements that denied the specified action.
25737	Denied *Denied `locationName:"denied" type:"structure"`
25738
25739	// Contains any missing context values found while evaluating policy.
25740	MissingContextValues []*string `locationName:"missingContextValues" type:"list"`
25741}
25742
25743// String returns the string representation
25744func (s AuthResult) String() string {
25745	return awsutil.Prettify(s)
25746}
25747
25748// GoString returns the string representation
25749func (s AuthResult) GoString() string {
25750	return s.String()
25751}
25752
25753// SetAllowed sets the Allowed field's value.
25754func (s *AuthResult) SetAllowed(v *Allowed) *AuthResult {
25755	s.Allowed = v
25756	return s
25757}
25758
25759// SetAuthDecision sets the AuthDecision field's value.
25760func (s *AuthResult) SetAuthDecision(v string) *AuthResult {
25761	s.AuthDecision = &v
25762	return s
25763}
25764
25765// SetAuthInfo sets the AuthInfo field's value.
25766func (s *AuthResult) SetAuthInfo(v *AuthInfo) *AuthResult {
25767	s.AuthInfo = v
25768	return s
25769}
25770
25771// SetDenied sets the Denied field's value.
25772func (s *AuthResult) SetDenied(v *Denied) *AuthResult {
25773	s.Denied = v
25774	return s
25775}
25776
25777// SetMissingContextValues sets the MissingContextValues field's value.
25778func (s *AuthResult) SetMissingContextValues(v []*string) *AuthResult {
25779	s.MissingContextValues = v
25780	return s
25781}
25782
25783// An object that specifies the authorization service for a domain.
25784type AuthorizerConfig struct {
25785	_ struct{} `type:"structure"`
25786
25787	// A Boolean that specifies whether the domain configuration's authorization
25788	// service can be overridden.
25789	AllowAuthorizerOverride *bool `locationName:"allowAuthorizerOverride" type:"boolean"`
25790
25791	// The name of the authorization service for a domain configuration.
25792	DefaultAuthorizerName *string `locationName:"defaultAuthorizerName" min:"1" type:"string"`
25793}
25794
25795// String returns the string representation
25796func (s AuthorizerConfig) String() string {
25797	return awsutil.Prettify(s)
25798}
25799
25800// GoString returns the string representation
25801func (s AuthorizerConfig) GoString() string {
25802	return s.String()
25803}
25804
25805// Validate inspects the fields of the type to determine if they are valid.
25806func (s *AuthorizerConfig) Validate() error {
25807	invalidParams := request.ErrInvalidParams{Context: "AuthorizerConfig"}
25808	if s.DefaultAuthorizerName != nil && len(*s.DefaultAuthorizerName) < 1 {
25809		invalidParams.Add(request.NewErrParamMinLen("DefaultAuthorizerName", 1))
25810	}
25811
25812	if invalidParams.Len() > 0 {
25813		return invalidParams
25814	}
25815	return nil
25816}
25817
25818// SetAllowAuthorizerOverride sets the AllowAuthorizerOverride field's value.
25819func (s *AuthorizerConfig) SetAllowAuthorizerOverride(v bool) *AuthorizerConfig {
25820	s.AllowAuthorizerOverride = &v
25821	return s
25822}
25823
25824// SetDefaultAuthorizerName sets the DefaultAuthorizerName field's value.
25825func (s *AuthorizerConfig) SetDefaultAuthorizerName(v string) *AuthorizerConfig {
25826	s.DefaultAuthorizerName = &v
25827	return s
25828}
25829
25830// The authorizer description.
25831type AuthorizerDescription struct {
25832	_ struct{} `type:"structure"`
25833
25834	// The authorizer ARN.
25835	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
25836
25837	// The authorizer's Lambda function ARN.
25838	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
25839
25840	// The authorizer name.
25841	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
25842
25843	// The UNIX timestamp of when the authorizer was created.
25844	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
25845
25846	// The UNIX timestamp of when the authorizer was last updated.
25847	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
25848
25849	// Specifies whether AWS IoT validates the token signature in an authorization
25850	// request.
25851	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
25852
25853	// The status of the authorizer.
25854	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
25855
25856	// The key used to extract the token from the HTTP headers.
25857	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
25858
25859	// The public keys used to validate the token signature returned by your custom
25860	// authentication service.
25861	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
25862}
25863
25864// String returns the string representation
25865func (s AuthorizerDescription) String() string {
25866	return awsutil.Prettify(s)
25867}
25868
25869// GoString returns the string representation
25870func (s AuthorizerDescription) GoString() string {
25871	return s.String()
25872}
25873
25874// SetAuthorizerArn sets the AuthorizerArn field's value.
25875func (s *AuthorizerDescription) SetAuthorizerArn(v string) *AuthorizerDescription {
25876	s.AuthorizerArn = &v
25877	return s
25878}
25879
25880// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
25881func (s *AuthorizerDescription) SetAuthorizerFunctionArn(v string) *AuthorizerDescription {
25882	s.AuthorizerFunctionArn = &v
25883	return s
25884}
25885
25886// SetAuthorizerName sets the AuthorizerName field's value.
25887func (s *AuthorizerDescription) SetAuthorizerName(v string) *AuthorizerDescription {
25888	s.AuthorizerName = &v
25889	return s
25890}
25891
25892// SetCreationDate sets the CreationDate field's value.
25893func (s *AuthorizerDescription) SetCreationDate(v time.Time) *AuthorizerDescription {
25894	s.CreationDate = &v
25895	return s
25896}
25897
25898// SetLastModifiedDate sets the LastModifiedDate field's value.
25899func (s *AuthorizerDescription) SetLastModifiedDate(v time.Time) *AuthorizerDescription {
25900	s.LastModifiedDate = &v
25901	return s
25902}
25903
25904// SetSigningDisabled sets the SigningDisabled field's value.
25905func (s *AuthorizerDescription) SetSigningDisabled(v bool) *AuthorizerDescription {
25906	s.SigningDisabled = &v
25907	return s
25908}
25909
25910// SetStatus sets the Status field's value.
25911func (s *AuthorizerDescription) SetStatus(v string) *AuthorizerDescription {
25912	s.Status = &v
25913	return s
25914}
25915
25916// SetTokenKeyName sets the TokenKeyName field's value.
25917func (s *AuthorizerDescription) SetTokenKeyName(v string) *AuthorizerDescription {
25918	s.TokenKeyName = &v
25919	return s
25920}
25921
25922// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
25923func (s *AuthorizerDescription) SetTokenSigningPublicKeys(v map[string]*string) *AuthorizerDescription {
25924	s.TokenSigningPublicKeys = v
25925	return s
25926}
25927
25928// The authorizer summary.
25929type AuthorizerSummary struct {
25930	_ struct{} `type:"structure"`
25931
25932	// The authorizer ARN.
25933	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
25934
25935	// The authorizer name.
25936	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
25937}
25938
25939// String returns the string representation
25940func (s AuthorizerSummary) String() string {
25941	return awsutil.Prettify(s)
25942}
25943
25944// GoString returns the string representation
25945func (s AuthorizerSummary) GoString() string {
25946	return s.String()
25947}
25948
25949// SetAuthorizerArn sets the AuthorizerArn field's value.
25950func (s *AuthorizerSummary) SetAuthorizerArn(v string) *AuthorizerSummary {
25951	s.AuthorizerArn = &v
25952	return s
25953}
25954
25955// SetAuthorizerName sets the AuthorizerName field's value.
25956func (s *AuthorizerSummary) SetAuthorizerName(v string) *AuthorizerSummary {
25957	s.AuthorizerName = &v
25958	return s
25959}
25960
25961// The criteria that determine when and how a job abort takes place.
25962type AwsJobAbortConfig struct {
25963	_ struct{} `type:"structure"`
25964
25965	// The list of criteria that determine when and how to abort the job.
25966	//
25967	// AbortCriteriaList is a required field
25968	AbortCriteriaList []*AwsJobAbortCriteria `locationName:"abortCriteriaList" min:"1" type:"list" required:"true"`
25969}
25970
25971// String returns the string representation
25972func (s AwsJobAbortConfig) String() string {
25973	return awsutil.Prettify(s)
25974}
25975
25976// GoString returns the string representation
25977func (s AwsJobAbortConfig) GoString() string {
25978	return s.String()
25979}
25980
25981// Validate inspects the fields of the type to determine if they are valid.
25982func (s *AwsJobAbortConfig) Validate() error {
25983	invalidParams := request.ErrInvalidParams{Context: "AwsJobAbortConfig"}
25984	if s.AbortCriteriaList == nil {
25985		invalidParams.Add(request.NewErrParamRequired("AbortCriteriaList"))
25986	}
25987	if s.AbortCriteriaList != nil && len(s.AbortCriteriaList) < 1 {
25988		invalidParams.Add(request.NewErrParamMinLen("AbortCriteriaList", 1))
25989	}
25990	if s.AbortCriteriaList != nil {
25991		for i, v := range s.AbortCriteriaList {
25992			if v == nil {
25993				continue
25994			}
25995			if err := v.Validate(); err != nil {
25996				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AbortCriteriaList", i), err.(request.ErrInvalidParams))
25997			}
25998		}
25999	}
26000
26001	if invalidParams.Len() > 0 {
26002		return invalidParams
26003	}
26004	return nil
26005}
26006
26007// SetAbortCriteriaList sets the AbortCriteriaList field's value.
26008func (s *AwsJobAbortConfig) SetAbortCriteriaList(v []*AwsJobAbortCriteria) *AwsJobAbortConfig {
26009	s.AbortCriteriaList = v
26010	return s
26011}
26012
26013// The criteria that determine when and how a job abort takes place.
26014type AwsJobAbortCriteria struct {
26015	_ struct{} `type:"structure"`
26016
26017	// The type of job action to take to initiate the job abort.
26018	//
26019	// Action is a required field
26020	Action *string `locationName:"action" type:"string" required:"true" enum:"AwsJobAbortCriteriaAbortAction"`
26021
26022	// The type of job execution failures that can initiate a job abort.
26023	//
26024	// FailureType is a required field
26025	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"AwsJobAbortCriteriaFailureType"`
26026
26027	// The minimum number of things which must receive job execution notifications
26028	// before the job can be aborted.
26029	//
26030	// MinNumberOfExecutedThings is a required field
26031	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
26032
26033	// The minimum percentage of job execution failures that must occur to initiate
26034	// the job abort.
26035	//
26036	// AWS IoT supports up to two digits after the decimal (for example, 10.9 and
26037	// 10.99, but not 10.999).
26038	//
26039	// ThresholdPercentage is a required field
26040	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
26041}
26042
26043// String returns the string representation
26044func (s AwsJobAbortCriteria) String() string {
26045	return awsutil.Prettify(s)
26046}
26047
26048// GoString returns the string representation
26049func (s AwsJobAbortCriteria) GoString() string {
26050	return s.String()
26051}
26052
26053// Validate inspects the fields of the type to determine if they are valid.
26054func (s *AwsJobAbortCriteria) Validate() error {
26055	invalidParams := request.ErrInvalidParams{Context: "AwsJobAbortCriteria"}
26056	if s.Action == nil {
26057		invalidParams.Add(request.NewErrParamRequired("Action"))
26058	}
26059	if s.FailureType == nil {
26060		invalidParams.Add(request.NewErrParamRequired("FailureType"))
26061	}
26062	if s.MinNumberOfExecutedThings == nil {
26063		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
26064	}
26065	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
26066		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
26067	}
26068	if s.ThresholdPercentage == nil {
26069		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
26070	}
26071
26072	if invalidParams.Len() > 0 {
26073		return invalidParams
26074	}
26075	return nil
26076}
26077
26078// SetAction sets the Action field's value.
26079func (s *AwsJobAbortCriteria) SetAction(v string) *AwsJobAbortCriteria {
26080	s.Action = &v
26081	return s
26082}
26083
26084// SetFailureType sets the FailureType field's value.
26085func (s *AwsJobAbortCriteria) SetFailureType(v string) *AwsJobAbortCriteria {
26086	s.FailureType = &v
26087	return s
26088}
26089
26090// SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
26091func (s *AwsJobAbortCriteria) SetMinNumberOfExecutedThings(v int64) *AwsJobAbortCriteria {
26092	s.MinNumberOfExecutedThings = &v
26093	return s
26094}
26095
26096// SetThresholdPercentage sets the ThresholdPercentage field's value.
26097func (s *AwsJobAbortCriteria) SetThresholdPercentage(v float64) *AwsJobAbortCriteria {
26098	s.ThresholdPercentage = &v
26099	return s
26100}
26101
26102// Configuration for the rollout of OTA updates.
26103type AwsJobExecutionsRolloutConfig struct {
26104	_ struct{} `type:"structure"`
26105
26106	// The rate of increase for a job rollout. This parameter allows you to define
26107	// an exponential rate increase for a job rollout.
26108	ExponentialRate *AwsJobExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
26109
26110	// The maximum number of OTA update job executions started per minute.
26111	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
26112}
26113
26114// String returns the string representation
26115func (s AwsJobExecutionsRolloutConfig) String() string {
26116	return awsutil.Prettify(s)
26117}
26118
26119// GoString returns the string representation
26120func (s AwsJobExecutionsRolloutConfig) GoString() string {
26121	return s.String()
26122}
26123
26124// Validate inspects the fields of the type to determine if they are valid.
26125func (s *AwsJobExecutionsRolloutConfig) Validate() error {
26126	invalidParams := request.ErrInvalidParams{Context: "AwsJobExecutionsRolloutConfig"}
26127	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
26128		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
26129	}
26130	if s.ExponentialRate != nil {
26131		if err := s.ExponentialRate.Validate(); err != nil {
26132			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
26133		}
26134	}
26135
26136	if invalidParams.Len() > 0 {
26137		return invalidParams
26138	}
26139	return nil
26140}
26141
26142// SetExponentialRate sets the ExponentialRate field's value.
26143func (s *AwsJobExecutionsRolloutConfig) SetExponentialRate(v *AwsJobExponentialRolloutRate) *AwsJobExecutionsRolloutConfig {
26144	s.ExponentialRate = v
26145	return s
26146}
26147
26148// SetMaximumPerMinute sets the MaximumPerMinute field's value.
26149func (s *AwsJobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *AwsJobExecutionsRolloutConfig {
26150	s.MaximumPerMinute = &v
26151	return s
26152}
26153
26154// The rate of increase for a job rollout. This parameter allows you to define
26155// an exponential rate increase for a job rollout.
26156type AwsJobExponentialRolloutRate struct {
26157	_ struct{} `type:"structure"`
26158
26159	// The minimum number of things that will be notified of a pending job, per
26160	// minute, at the start of the job rollout. This is the initial rate of the
26161	// rollout.
26162	//
26163	// BaseRatePerMinute is a required field
26164	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
26165
26166	// The rate of increase for a job rollout. The number of things notified is
26167	// multiplied by this factor.
26168	//
26169	// IncrementFactor is a required field
26170	IncrementFactor *float64 `locationName:"incrementFactor" type:"double" required:"true"`
26171
26172	// The criteria to initiate the increase in rate of rollout for a job.
26173	//
26174	// AWS IoT supports up to one digit after the decimal (for example, 1.5, but
26175	// not 1.55).
26176	//
26177	// RateIncreaseCriteria is a required field
26178	RateIncreaseCriteria *AwsJobRateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
26179}
26180
26181// String returns the string representation
26182func (s AwsJobExponentialRolloutRate) String() string {
26183	return awsutil.Prettify(s)
26184}
26185
26186// GoString returns the string representation
26187func (s AwsJobExponentialRolloutRate) GoString() string {
26188	return s.String()
26189}
26190
26191// Validate inspects the fields of the type to determine if they are valid.
26192func (s *AwsJobExponentialRolloutRate) Validate() error {
26193	invalidParams := request.ErrInvalidParams{Context: "AwsJobExponentialRolloutRate"}
26194	if s.BaseRatePerMinute == nil {
26195		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
26196	}
26197	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
26198		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
26199	}
26200	if s.IncrementFactor == nil {
26201		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
26202	}
26203	if s.RateIncreaseCriteria == nil {
26204		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
26205	}
26206	if s.RateIncreaseCriteria != nil {
26207		if err := s.RateIncreaseCriteria.Validate(); err != nil {
26208			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
26209		}
26210	}
26211
26212	if invalidParams.Len() > 0 {
26213		return invalidParams
26214	}
26215	return nil
26216}
26217
26218// SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
26219func (s *AwsJobExponentialRolloutRate) SetBaseRatePerMinute(v int64) *AwsJobExponentialRolloutRate {
26220	s.BaseRatePerMinute = &v
26221	return s
26222}
26223
26224// SetIncrementFactor sets the IncrementFactor field's value.
26225func (s *AwsJobExponentialRolloutRate) SetIncrementFactor(v float64) *AwsJobExponentialRolloutRate {
26226	s.IncrementFactor = &v
26227	return s
26228}
26229
26230// SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
26231func (s *AwsJobExponentialRolloutRate) SetRateIncreaseCriteria(v *AwsJobRateIncreaseCriteria) *AwsJobExponentialRolloutRate {
26232	s.RateIncreaseCriteria = v
26233	return s
26234}
26235
26236// Configuration information for pre-signed URLs. Valid when protocols contains
26237// HTTP.
26238type AwsJobPresignedUrlConfig struct {
26239	_ struct{} `type:"structure"`
26240
26241	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
26242	// the default value is 1800 seconds. Pre-signed URLs are generated when a request
26243	// for the job document is received.
26244	ExpiresInSec *int64 `locationName:"expiresInSec" type:"long"`
26245}
26246
26247// String returns the string representation
26248func (s AwsJobPresignedUrlConfig) String() string {
26249	return awsutil.Prettify(s)
26250}
26251
26252// GoString returns the string representation
26253func (s AwsJobPresignedUrlConfig) GoString() string {
26254	return s.String()
26255}
26256
26257// SetExpiresInSec sets the ExpiresInSec field's value.
26258func (s *AwsJobPresignedUrlConfig) SetExpiresInSec(v int64) *AwsJobPresignedUrlConfig {
26259	s.ExpiresInSec = &v
26260	return s
26261}
26262
26263// The criteria to initiate the increase in rate of rollout for a job.
26264type AwsJobRateIncreaseCriteria struct {
26265	_ struct{} `type:"structure"`
26266
26267	// When this number of things have been notified, it will initiate an increase
26268	// in the rollout rate.
26269	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
26270
26271	// When this number of things have succeeded in their job execution, it will
26272	// initiate an increase in the rollout rate.
26273	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
26274}
26275
26276// String returns the string representation
26277func (s AwsJobRateIncreaseCriteria) String() string {
26278	return awsutil.Prettify(s)
26279}
26280
26281// GoString returns the string representation
26282func (s AwsJobRateIncreaseCriteria) GoString() string {
26283	return s.String()
26284}
26285
26286// Validate inspects the fields of the type to determine if they are valid.
26287func (s *AwsJobRateIncreaseCriteria) Validate() error {
26288	invalidParams := request.ErrInvalidParams{Context: "AwsJobRateIncreaseCriteria"}
26289	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
26290		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
26291	}
26292	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
26293		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
26294	}
26295
26296	if invalidParams.Len() > 0 {
26297		return invalidParams
26298	}
26299	return nil
26300}
26301
26302// SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
26303func (s *AwsJobRateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *AwsJobRateIncreaseCriteria {
26304	s.NumberOfNotifiedThings = &v
26305	return s
26306}
26307
26308// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
26309func (s *AwsJobRateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *AwsJobRateIncreaseCriteria {
26310	s.NumberOfSucceededThings = &v
26311	return s
26312}
26313
26314// Specifies the amount of time each device has to finish its execution of the
26315// job. A timer is started when the job execution status is set to IN_PROGRESS.
26316// If the job execution status is not set to another terminal state before the
26317// timer expires, it will be automatically set to TIMED_OUT.
26318type AwsJobTimeoutConfig struct {
26319	_ struct{} `type:"structure"`
26320
26321	// Specifies the amount of time, in minutes, this device has to finish execution
26322	// of this job. The timeout interval can be anywhere between 1 minute and 7
26323	// days (1 to 10080 minutes). The in progress timer can't be updated and will
26324	// apply to all job executions for the job. Whenever a job execution remains
26325	// in the IN_PROGRESS status for longer than this interval, the job execution
26326	// will fail and switch to the terminal TIMED_OUT status.
26327	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
26328}
26329
26330// String returns the string representation
26331func (s AwsJobTimeoutConfig) String() string {
26332	return awsutil.Prettify(s)
26333}
26334
26335// GoString returns the string representation
26336func (s AwsJobTimeoutConfig) GoString() string {
26337	return s.String()
26338}
26339
26340// SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
26341func (s *AwsJobTimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *AwsJobTimeoutConfig {
26342	s.InProgressTimeoutInMinutes = &v
26343	return s
26344}
26345
26346// A Device Defender security profile behavior.
26347type Behavior struct {
26348	_ struct{} `type:"structure"`
26349
26350	// The criteria that determine if a device is behaving normally in regard to
26351	// the metric.
26352	Criteria *BehaviorCriteria `locationName:"criteria" type:"structure"`
26353
26354	// What is measured by the behavior.
26355	Metric *string `locationName:"metric" type:"string"`
26356
26357	// The dimension for a metric in your behavior. For example, using a TOPIC_FILTER
26358	// dimension, you can narrow down the scope of the metric to only MQTT topics
26359	// where the name matches the pattern specified in the dimension. This can't
26360	// be used with custom metrics.
26361	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
26362
26363	// The name you've given to the behavior.
26364	//
26365	// Name is a required field
26366	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
26367
26368	// Suppresses alerts.
26369	SuppressAlerts *bool `locationName:"suppressAlerts" type:"boolean"`
26370}
26371
26372// String returns the string representation
26373func (s Behavior) String() string {
26374	return awsutil.Prettify(s)
26375}
26376
26377// GoString returns the string representation
26378func (s Behavior) GoString() string {
26379	return s.String()
26380}
26381
26382// Validate inspects the fields of the type to determine if they are valid.
26383func (s *Behavior) Validate() error {
26384	invalidParams := request.ErrInvalidParams{Context: "Behavior"}
26385	if s.Name == nil {
26386		invalidParams.Add(request.NewErrParamRequired("Name"))
26387	}
26388	if s.Name != nil && len(*s.Name) < 1 {
26389		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
26390	}
26391	if s.Criteria != nil {
26392		if err := s.Criteria.Validate(); err != nil {
26393			invalidParams.AddNested("Criteria", err.(request.ErrInvalidParams))
26394		}
26395	}
26396	if s.MetricDimension != nil {
26397		if err := s.MetricDimension.Validate(); err != nil {
26398			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
26399		}
26400	}
26401
26402	if invalidParams.Len() > 0 {
26403		return invalidParams
26404	}
26405	return nil
26406}
26407
26408// SetCriteria sets the Criteria field's value.
26409func (s *Behavior) SetCriteria(v *BehaviorCriteria) *Behavior {
26410	s.Criteria = v
26411	return s
26412}
26413
26414// SetMetric sets the Metric field's value.
26415func (s *Behavior) SetMetric(v string) *Behavior {
26416	s.Metric = &v
26417	return s
26418}
26419
26420// SetMetricDimension sets the MetricDimension field's value.
26421func (s *Behavior) SetMetricDimension(v *MetricDimension) *Behavior {
26422	s.MetricDimension = v
26423	return s
26424}
26425
26426// SetName sets the Name field's value.
26427func (s *Behavior) SetName(v string) *Behavior {
26428	s.Name = &v
26429	return s
26430}
26431
26432// SetSuppressAlerts sets the SuppressAlerts field's value.
26433func (s *Behavior) SetSuppressAlerts(v bool) *Behavior {
26434	s.SuppressAlerts = &v
26435	return s
26436}
26437
26438// The criteria by which the behavior is determined to be normal.
26439type BehaviorCriteria struct {
26440	_ struct{} `type:"structure"`
26441
26442	// The operator that relates the thing measured (metric) to the criteria (containing
26443	// a value or statisticalThreshold). Valid operators include:
26444	//
26445	//    * string-list: in-set and not-in-set
26446	//
26447	//    * number-list: in-set and not-in-set
26448	//
26449	//    * ip-address-list: in-cidr-set and not-in-cidr-set
26450	//
26451	//    * number: less-than, less-than-equals, greater-than, and greater-than-equals
26452	ComparisonOperator *string `locationName:"comparisonOperator" type:"string" enum:"ComparisonOperator"`
26453
26454	// If a device is in violation of the behavior for the specified number of consecutive
26455	// datapoints, an alarm occurs. If not specified, the default is 1.
26456	ConsecutiveDatapointsToAlarm *int64 `locationName:"consecutiveDatapointsToAlarm" min:"1" type:"integer"`
26457
26458	// If an alarm has occurred and the offending device is no longer in violation
26459	// of the behavior for the specified number of consecutive datapoints, the alarm
26460	// is cleared. If not specified, the default is 1.
26461	ConsecutiveDatapointsToClear *int64 `locationName:"consecutiveDatapointsToClear" min:"1" type:"integer"`
26462
26463	// Use this to specify the time duration over which the behavior is evaluated,
26464	// for those criteria that have a time dimension (for example, NUM_MESSAGES_SENT).
26465	// For a statisticalThreshhold metric comparison, measurements from all devices
26466	// are accumulated over this time duration before being used to calculate percentiles,
26467	// and later, measurements from an individual device are also accumulated over
26468	// this time duration before being given a percentile rank. Cannot be used with
26469	// list-based metric datatypes.
26470	DurationSeconds *int64 `locationName:"durationSeconds" type:"integer"`
26471
26472	// The configuration of an ML Detect
26473	MlDetectionConfig *MachineLearningDetectionConfig `locationName:"mlDetectionConfig" type:"structure"`
26474
26475	// A statistical ranking (percentile)that indicates a threshold value by which
26476	// a behavior is determined to be in compliance or in violation of the behavior.
26477	StatisticalThreshold *StatisticalThreshold `locationName:"statisticalThreshold" type:"structure"`
26478
26479	// The value to be compared with the metric.
26480	Value *MetricValue `locationName:"value" type:"structure"`
26481}
26482
26483// String returns the string representation
26484func (s BehaviorCriteria) String() string {
26485	return awsutil.Prettify(s)
26486}
26487
26488// GoString returns the string representation
26489func (s BehaviorCriteria) GoString() string {
26490	return s.String()
26491}
26492
26493// Validate inspects the fields of the type to determine if they are valid.
26494func (s *BehaviorCriteria) Validate() error {
26495	invalidParams := request.ErrInvalidParams{Context: "BehaviorCriteria"}
26496	if s.ConsecutiveDatapointsToAlarm != nil && *s.ConsecutiveDatapointsToAlarm < 1 {
26497		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToAlarm", 1))
26498	}
26499	if s.ConsecutiveDatapointsToClear != nil && *s.ConsecutiveDatapointsToClear < 1 {
26500		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToClear", 1))
26501	}
26502	if s.MlDetectionConfig != nil {
26503		if err := s.MlDetectionConfig.Validate(); err != nil {
26504			invalidParams.AddNested("MlDetectionConfig", err.(request.ErrInvalidParams))
26505		}
26506	}
26507
26508	if invalidParams.Len() > 0 {
26509		return invalidParams
26510	}
26511	return nil
26512}
26513
26514// SetComparisonOperator sets the ComparisonOperator field's value.
26515func (s *BehaviorCriteria) SetComparisonOperator(v string) *BehaviorCriteria {
26516	s.ComparisonOperator = &v
26517	return s
26518}
26519
26520// SetConsecutiveDatapointsToAlarm sets the ConsecutiveDatapointsToAlarm field's value.
26521func (s *BehaviorCriteria) SetConsecutiveDatapointsToAlarm(v int64) *BehaviorCriteria {
26522	s.ConsecutiveDatapointsToAlarm = &v
26523	return s
26524}
26525
26526// SetConsecutiveDatapointsToClear sets the ConsecutiveDatapointsToClear field's value.
26527func (s *BehaviorCriteria) SetConsecutiveDatapointsToClear(v int64) *BehaviorCriteria {
26528	s.ConsecutiveDatapointsToClear = &v
26529	return s
26530}
26531
26532// SetDurationSeconds sets the DurationSeconds field's value.
26533func (s *BehaviorCriteria) SetDurationSeconds(v int64) *BehaviorCriteria {
26534	s.DurationSeconds = &v
26535	return s
26536}
26537
26538// SetMlDetectionConfig sets the MlDetectionConfig field's value.
26539func (s *BehaviorCriteria) SetMlDetectionConfig(v *MachineLearningDetectionConfig) *BehaviorCriteria {
26540	s.MlDetectionConfig = v
26541	return s
26542}
26543
26544// SetStatisticalThreshold sets the StatisticalThreshold field's value.
26545func (s *BehaviorCriteria) SetStatisticalThreshold(v *StatisticalThreshold) *BehaviorCriteria {
26546	s.StatisticalThreshold = v
26547	return s
26548}
26549
26550// SetValue sets the Value field's value.
26551func (s *BehaviorCriteria) SetValue(v *MetricValue) *BehaviorCriteria {
26552	s.Value = v
26553	return s
26554}
26555
26556// The summary of an ML Detect behavior model.
26557type BehaviorModelTrainingSummary struct {
26558	_ struct{} `type:"structure"`
26559
26560	// The name of the behavior.
26561	BehaviorName *string `locationName:"behaviorName" min:"1" type:"string"`
26562
26563	// The percentage of datapoints collected.
26564	DatapointsCollectionPercentage *float64 `locationName:"datapointsCollectionPercentage" type:"double"`
26565
26566	// The date the model was last refreshed.
26567	LastModelRefreshDate *time.Time `locationName:"lastModelRefreshDate" type:"timestamp"`
26568
26569	// The status of the behavior model.
26570	ModelStatus *string `locationName:"modelStatus" type:"string" enum:"ModelStatus"`
26571
26572	// The name of the security profile.
26573	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
26574
26575	// The date a training model started collecting data.
26576	TrainingDataCollectionStartDate *time.Time `locationName:"trainingDataCollectionStartDate" type:"timestamp"`
26577}
26578
26579// String returns the string representation
26580func (s BehaviorModelTrainingSummary) String() string {
26581	return awsutil.Prettify(s)
26582}
26583
26584// GoString returns the string representation
26585func (s BehaviorModelTrainingSummary) GoString() string {
26586	return s.String()
26587}
26588
26589// SetBehaviorName sets the BehaviorName field's value.
26590func (s *BehaviorModelTrainingSummary) SetBehaviorName(v string) *BehaviorModelTrainingSummary {
26591	s.BehaviorName = &v
26592	return s
26593}
26594
26595// SetDatapointsCollectionPercentage sets the DatapointsCollectionPercentage field's value.
26596func (s *BehaviorModelTrainingSummary) SetDatapointsCollectionPercentage(v float64) *BehaviorModelTrainingSummary {
26597	s.DatapointsCollectionPercentage = &v
26598	return s
26599}
26600
26601// SetLastModelRefreshDate sets the LastModelRefreshDate field's value.
26602func (s *BehaviorModelTrainingSummary) SetLastModelRefreshDate(v time.Time) *BehaviorModelTrainingSummary {
26603	s.LastModelRefreshDate = &v
26604	return s
26605}
26606
26607// SetModelStatus sets the ModelStatus field's value.
26608func (s *BehaviorModelTrainingSummary) SetModelStatus(v string) *BehaviorModelTrainingSummary {
26609	s.ModelStatus = &v
26610	return s
26611}
26612
26613// SetSecurityProfileName sets the SecurityProfileName field's value.
26614func (s *BehaviorModelTrainingSummary) SetSecurityProfileName(v string) *BehaviorModelTrainingSummary {
26615	s.SecurityProfileName = &v
26616	return s
26617}
26618
26619// SetTrainingDataCollectionStartDate sets the TrainingDataCollectionStartDate field's value.
26620func (s *BehaviorModelTrainingSummary) SetTrainingDataCollectionStartDate(v time.Time) *BehaviorModelTrainingSummary {
26621	s.TrainingDataCollectionStartDate = &v
26622	return s
26623}
26624
26625// Additional information about the billing group.
26626type BillingGroupMetadata struct {
26627	_ struct{} `type:"structure"`
26628
26629	// The date the billing group was created.
26630	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
26631}
26632
26633// String returns the string representation
26634func (s BillingGroupMetadata) String() string {
26635	return awsutil.Prettify(s)
26636}
26637
26638// GoString returns the string representation
26639func (s BillingGroupMetadata) GoString() string {
26640	return s.String()
26641}
26642
26643// SetCreationDate sets the CreationDate field's value.
26644func (s *BillingGroupMetadata) SetCreationDate(v time.Time) *BillingGroupMetadata {
26645	s.CreationDate = &v
26646	return s
26647}
26648
26649// The properties of a billing group.
26650type BillingGroupProperties struct {
26651	_ struct{} `type:"structure"`
26652
26653	// The description of the billing group.
26654	BillingGroupDescription *string `locationName:"billingGroupDescription" type:"string"`
26655}
26656
26657// String returns the string representation
26658func (s BillingGroupProperties) String() string {
26659	return awsutil.Prettify(s)
26660}
26661
26662// GoString returns the string representation
26663func (s BillingGroupProperties) GoString() string {
26664	return s.String()
26665}
26666
26667// SetBillingGroupDescription sets the BillingGroupDescription field's value.
26668func (s *BillingGroupProperties) SetBillingGroupDescription(v string) *BillingGroupProperties {
26669	s.BillingGroupDescription = &v
26670	return s
26671}
26672
26673// A CA certificate.
26674type CACertificate struct {
26675	_ struct{} `type:"structure"`
26676
26677	// The ARN of the CA certificate.
26678	CertificateArn *string `locationName:"certificateArn" type:"string"`
26679
26680	// The ID of the CA certificate.
26681	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
26682
26683	// The date the CA certificate was created.
26684	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
26685
26686	// The status of the CA certificate.
26687	//
26688	// The status value REGISTER_INACTIVE is deprecated and should not be used.
26689	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
26690}
26691
26692// String returns the string representation
26693func (s CACertificate) String() string {
26694	return awsutil.Prettify(s)
26695}
26696
26697// GoString returns the string representation
26698func (s CACertificate) GoString() string {
26699	return s.String()
26700}
26701
26702// SetCertificateArn sets the CertificateArn field's value.
26703func (s *CACertificate) SetCertificateArn(v string) *CACertificate {
26704	s.CertificateArn = &v
26705	return s
26706}
26707
26708// SetCertificateId sets the CertificateId field's value.
26709func (s *CACertificate) SetCertificateId(v string) *CACertificate {
26710	s.CertificateId = &v
26711	return s
26712}
26713
26714// SetCreationDate sets the CreationDate field's value.
26715func (s *CACertificate) SetCreationDate(v time.Time) *CACertificate {
26716	s.CreationDate = &v
26717	return s
26718}
26719
26720// SetStatus sets the Status field's value.
26721func (s *CACertificate) SetStatus(v string) *CACertificate {
26722	s.Status = &v
26723	return s
26724}
26725
26726// Describes a CA certificate.
26727type CACertificateDescription struct {
26728	_ struct{} `type:"structure"`
26729
26730	// Whether the CA certificate configured for auto registration of device certificates.
26731	// Valid values are "ENABLE" and "DISABLE"
26732	AutoRegistrationStatus *string `locationName:"autoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
26733
26734	// The CA certificate ARN.
26735	CertificateArn *string `locationName:"certificateArn" type:"string"`
26736
26737	// The CA certificate ID.
26738	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
26739
26740	// The CA certificate data, in PEM format.
26741	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
26742
26743	// The date the CA certificate was created.
26744	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
26745
26746	// The customer version of the CA certificate.
26747	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
26748
26749	// The generation ID of the CA certificate.
26750	GenerationId *string `locationName:"generationId" type:"string"`
26751
26752	// The date the CA certificate was last modified.
26753	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
26754
26755	// The owner of the CA certificate.
26756	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
26757
26758	// The status of a CA certificate.
26759	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
26760
26761	// When the CA certificate is valid.
26762	Validity *CertificateValidity `locationName:"validity" type:"structure"`
26763}
26764
26765// String returns the string representation
26766func (s CACertificateDescription) String() string {
26767	return awsutil.Prettify(s)
26768}
26769
26770// GoString returns the string representation
26771func (s CACertificateDescription) GoString() string {
26772	return s.String()
26773}
26774
26775// SetAutoRegistrationStatus sets the AutoRegistrationStatus field's value.
26776func (s *CACertificateDescription) SetAutoRegistrationStatus(v string) *CACertificateDescription {
26777	s.AutoRegistrationStatus = &v
26778	return s
26779}
26780
26781// SetCertificateArn sets the CertificateArn field's value.
26782func (s *CACertificateDescription) SetCertificateArn(v string) *CACertificateDescription {
26783	s.CertificateArn = &v
26784	return s
26785}
26786
26787// SetCertificateId sets the CertificateId field's value.
26788func (s *CACertificateDescription) SetCertificateId(v string) *CACertificateDescription {
26789	s.CertificateId = &v
26790	return s
26791}
26792
26793// SetCertificatePem sets the CertificatePem field's value.
26794func (s *CACertificateDescription) SetCertificatePem(v string) *CACertificateDescription {
26795	s.CertificatePem = &v
26796	return s
26797}
26798
26799// SetCreationDate sets the CreationDate field's value.
26800func (s *CACertificateDescription) SetCreationDate(v time.Time) *CACertificateDescription {
26801	s.CreationDate = &v
26802	return s
26803}
26804
26805// SetCustomerVersion sets the CustomerVersion field's value.
26806func (s *CACertificateDescription) SetCustomerVersion(v int64) *CACertificateDescription {
26807	s.CustomerVersion = &v
26808	return s
26809}
26810
26811// SetGenerationId sets the GenerationId field's value.
26812func (s *CACertificateDescription) SetGenerationId(v string) *CACertificateDescription {
26813	s.GenerationId = &v
26814	return s
26815}
26816
26817// SetLastModifiedDate sets the LastModifiedDate field's value.
26818func (s *CACertificateDescription) SetLastModifiedDate(v time.Time) *CACertificateDescription {
26819	s.LastModifiedDate = &v
26820	return s
26821}
26822
26823// SetOwnedBy sets the OwnedBy field's value.
26824func (s *CACertificateDescription) SetOwnedBy(v string) *CACertificateDescription {
26825	s.OwnedBy = &v
26826	return s
26827}
26828
26829// SetStatus sets the Status field's value.
26830func (s *CACertificateDescription) SetStatus(v string) *CACertificateDescription {
26831	s.Status = &v
26832	return s
26833}
26834
26835// SetValidity sets the Validity field's value.
26836func (s *CACertificateDescription) SetValidity(v *CertificateValidity) *CACertificateDescription {
26837	s.Validity = v
26838	return s
26839}
26840
26841type CancelAuditMitigationActionsTaskInput struct {
26842	_ struct{} `type:"structure"`
26843
26844	// The unique identifier for the task that you want to cancel.
26845	//
26846	// TaskId is a required field
26847	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
26848}
26849
26850// String returns the string representation
26851func (s CancelAuditMitigationActionsTaskInput) String() string {
26852	return awsutil.Prettify(s)
26853}
26854
26855// GoString returns the string representation
26856func (s CancelAuditMitigationActionsTaskInput) GoString() string {
26857	return s.String()
26858}
26859
26860// Validate inspects the fields of the type to determine if they are valid.
26861func (s *CancelAuditMitigationActionsTaskInput) Validate() error {
26862	invalidParams := request.ErrInvalidParams{Context: "CancelAuditMitigationActionsTaskInput"}
26863	if s.TaskId == nil {
26864		invalidParams.Add(request.NewErrParamRequired("TaskId"))
26865	}
26866	if s.TaskId != nil && len(*s.TaskId) < 1 {
26867		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
26868	}
26869
26870	if invalidParams.Len() > 0 {
26871		return invalidParams
26872	}
26873	return nil
26874}
26875
26876// SetTaskId sets the TaskId field's value.
26877func (s *CancelAuditMitigationActionsTaskInput) SetTaskId(v string) *CancelAuditMitigationActionsTaskInput {
26878	s.TaskId = &v
26879	return s
26880}
26881
26882type CancelAuditMitigationActionsTaskOutput struct {
26883	_ struct{} `type:"structure"`
26884}
26885
26886// String returns the string representation
26887func (s CancelAuditMitigationActionsTaskOutput) String() string {
26888	return awsutil.Prettify(s)
26889}
26890
26891// GoString returns the string representation
26892func (s CancelAuditMitigationActionsTaskOutput) GoString() string {
26893	return s.String()
26894}
26895
26896type CancelAuditTaskInput struct {
26897	_ struct{} `type:"structure"`
26898
26899	// The ID of the audit you want to cancel. You can only cancel an audit that
26900	// is "IN_PROGRESS".
26901	//
26902	// TaskId is a required field
26903	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
26904}
26905
26906// String returns the string representation
26907func (s CancelAuditTaskInput) String() string {
26908	return awsutil.Prettify(s)
26909}
26910
26911// GoString returns the string representation
26912func (s CancelAuditTaskInput) GoString() string {
26913	return s.String()
26914}
26915
26916// Validate inspects the fields of the type to determine if they are valid.
26917func (s *CancelAuditTaskInput) Validate() error {
26918	invalidParams := request.ErrInvalidParams{Context: "CancelAuditTaskInput"}
26919	if s.TaskId == nil {
26920		invalidParams.Add(request.NewErrParamRequired("TaskId"))
26921	}
26922	if s.TaskId != nil && len(*s.TaskId) < 1 {
26923		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
26924	}
26925
26926	if invalidParams.Len() > 0 {
26927		return invalidParams
26928	}
26929	return nil
26930}
26931
26932// SetTaskId sets the TaskId field's value.
26933func (s *CancelAuditTaskInput) SetTaskId(v string) *CancelAuditTaskInput {
26934	s.TaskId = &v
26935	return s
26936}
26937
26938type CancelAuditTaskOutput struct {
26939	_ struct{} `type:"structure"`
26940}
26941
26942// String returns the string representation
26943func (s CancelAuditTaskOutput) String() string {
26944	return awsutil.Prettify(s)
26945}
26946
26947// GoString returns the string representation
26948func (s CancelAuditTaskOutput) GoString() string {
26949	return s.String()
26950}
26951
26952// The input for the CancelCertificateTransfer operation.
26953type CancelCertificateTransferInput struct {
26954	_ struct{} `type:"structure"`
26955
26956	// The ID of the certificate. (The last part of the certificate ARN contains
26957	// the certificate ID.)
26958	//
26959	// CertificateId is a required field
26960	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
26961}
26962
26963// String returns the string representation
26964func (s CancelCertificateTransferInput) String() string {
26965	return awsutil.Prettify(s)
26966}
26967
26968// GoString returns the string representation
26969func (s CancelCertificateTransferInput) GoString() string {
26970	return s.String()
26971}
26972
26973// Validate inspects the fields of the type to determine if they are valid.
26974func (s *CancelCertificateTransferInput) Validate() error {
26975	invalidParams := request.ErrInvalidParams{Context: "CancelCertificateTransferInput"}
26976	if s.CertificateId == nil {
26977		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
26978	}
26979	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
26980		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
26981	}
26982
26983	if invalidParams.Len() > 0 {
26984		return invalidParams
26985	}
26986	return nil
26987}
26988
26989// SetCertificateId sets the CertificateId field's value.
26990func (s *CancelCertificateTransferInput) SetCertificateId(v string) *CancelCertificateTransferInput {
26991	s.CertificateId = &v
26992	return s
26993}
26994
26995type CancelCertificateTransferOutput struct {
26996	_ struct{} `type:"structure"`
26997}
26998
26999// String returns the string representation
27000func (s CancelCertificateTransferOutput) String() string {
27001	return awsutil.Prettify(s)
27002}
27003
27004// GoString returns the string representation
27005func (s CancelCertificateTransferOutput) GoString() string {
27006	return s.String()
27007}
27008
27009type CancelDetectMitigationActionsTaskInput struct {
27010	_ struct{} `type:"structure"`
27011
27012	// The unique identifier of the task.
27013	//
27014	// TaskId is a required field
27015	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
27016}
27017
27018// String returns the string representation
27019func (s CancelDetectMitigationActionsTaskInput) String() string {
27020	return awsutil.Prettify(s)
27021}
27022
27023// GoString returns the string representation
27024func (s CancelDetectMitigationActionsTaskInput) GoString() string {
27025	return s.String()
27026}
27027
27028// Validate inspects the fields of the type to determine if they are valid.
27029func (s *CancelDetectMitigationActionsTaskInput) Validate() error {
27030	invalidParams := request.ErrInvalidParams{Context: "CancelDetectMitigationActionsTaskInput"}
27031	if s.TaskId == nil {
27032		invalidParams.Add(request.NewErrParamRequired("TaskId"))
27033	}
27034	if s.TaskId != nil && len(*s.TaskId) < 1 {
27035		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
27036	}
27037
27038	if invalidParams.Len() > 0 {
27039		return invalidParams
27040	}
27041	return nil
27042}
27043
27044// SetTaskId sets the TaskId field's value.
27045func (s *CancelDetectMitigationActionsTaskInput) SetTaskId(v string) *CancelDetectMitigationActionsTaskInput {
27046	s.TaskId = &v
27047	return s
27048}
27049
27050type CancelDetectMitigationActionsTaskOutput struct {
27051	_ struct{} `type:"structure"`
27052}
27053
27054// String returns the string representation
27055func (s CancelDetectMitigationActionsTaskOutput) String() string {
27056	return awsutil.Prettify(s)
27057}
27058
27059// GoString returns the string representation
27060func (s CancelDetectMitigationActionsTaskOutput) GoString() string {
27061	return s.String()
27062}
27063
27064type CancelJobExecutionInput struct {
27065	_ struct{} `type:"structure"`
27066
27067	// (Optional) The expected current version of the job execution. Each time you
27068	// update the job execution, its version is incremented. If the version of the
27069	// job execution stored in Jobs does not match, the update is rejected with
27070	// a VersionMismatch error, and an ErrorResponse that contains the current job
27071	// execution status data is returned. (This makes it unnecessary to perform
27072	// a separate DescribeJobExecution request in order to obtain the job execution
27073	// status data.)
27074	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
27075
27076	// (Optional) If true the job execution will be canceled if it has status IN_PROGRESS
27077	// or QUEUED, otherwise the job execution will be canceled only if it has status
27078	// QUEUED. If you attempt to cancel a job execution that is IN_PROGRESS, and
27079	// you do not set force to true, then an InvalidStateTransitionException will
27080	// be thrown. The default is false.
27081	//
27082	// Canceling a job execution which is "IN_PROGRESS", will cause the device to
27083	// be unable to update the job execution status. Use caution and ensure that
27084	// the device is able to recover to a valid state.
27085	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
27086
27087	// The ID of the job to be canceled.
27088	//
27089	// JobId is a required field
27090	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
27091
27092	// A collection of name/value pairs that describe the status of the job execution.
27093	// If not specified, the statusDetails are unchanged. You can specify at most
27094	// 10 name/value pairs.
27095	StatusDetails map[string]*string `locationName:"statusDetails" type:"map"`
27096
27097	// The name of the thing whose execution of the job will be canceled.
27098	//
27099	// ThingName is a required field
27100	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
27101}
27102
27103// String returns the string representation
27104func (s CancelJobExecutionInput) String() string {
27105	return awsutil.Prettify(s)
27106}
27107
27108// GoString returns the string representation
27109func (s CancelJobExecutionInput) GoString() string {
27110	return s.String()
27111}
27112
27113// Validate inspects the fields of the type to determine if they are valid.
27114func (s *CancelJobExecutionInput) Validate() error {
27115	invalidParams := request.ErrInvalidParams{Context: "CancelJobExecutionInput"}
27116	if s.JobId == nil {
27117		invalidParams.Add(request.NewErrParamRequired("JobId"))
27118	}
27119	if s.JobId != nil && len(*s.JobId) < 1 {
27120		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
27121	}
27122	if s.ThingName == nil {
27123		invalidParams.Add(request.NewErrParamRequired("ThingName"))
27124	}
27125	if s.ThingName != nil && len(*s.ThingName) < 1 {
27126		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
27127	}
27128
27129	if invalidParams.Len() > 0 {
27130		return invalidParams
27131	}
27132	return nil
27133}
27134
27135// SetExpectedVersion sets the ExpectedVersion field's value.
27136func (s *CancelJobExecutionInput) SetExpectedVersion(v int64) *CancelJobExecutionInput {
27137	s.ExpectedVersion = &v
27138	return s
27139}
27140
27141// SetForce sets the Force field's value.
27142func (s *CancelJobExecutionInput) SetForce(v bool) *CancelJobExecutionInput {
27143	s.Force = &v
27144	return s
27145}
27146
27147// SetJobId sets the JobId field's value.
27148func (s *CancelJobExecutionInput) SetJobId(v string) *CancelJobExecutionInput {
27149	s.JobId = &v
27150	return s
27151}
27152
27153// SetStatusDetails sets the StatusDetails field's value.
27154func (s *CancelJobExecutionInput) SetStatusDetails(v map[string]*string) *CancelJobExecutionInput {
27155	s.StatusDetails = v
27156	return s
27157}
27158
27159// SetThingName sets the ThingName field's value.
27160func (s *CancelJobExecutionInput) SetThingName(v string) *CancelJobExecutionInput {
27161	s.ThingName = &v
27162	return s
27163}
27164
27165type CancelJobExecutionOutput struct {
27166	_ struct{} `type:"structure"`
27167}
27168
27169// String returns the string representation
27170func (s CancelJobExecutionOutput) String() string {
27171	return awsutil.Prettify(s)
27172}
27173
27174// GoString returns the string representation
27175func (s CancelJobExecutionOutput) GoString() string {
27176	return s.String()
27177}
27178
27179type CancelJobInput struct {
27180	_ struct{} `type:"structure"`
27181
27182	// An optional comment string describing why the job was canceled.
27183	Comment *string `locationName:"comment" type:"string"`
27184
27185	// (Optional) If true job executions with status "IN_PROGRESS" and "QUEUED"
27186	// are canceled, otherwise only job executions with status "QUEUED" are canceled.
27187	// The default is false.
27188	//
27189	// Canceling a job which is "IN_PROGRESS", will cause a device which is executing
27190	// the job to be unable to update the job execution status. Use caution and
27191	// ensure that each device executing a job which is canceled is able to recover
27192	// to a valid state.
27193	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
27194
27195	// The unique identifier you assigned to this job when it was created.
27196	//
27197	// JobId is a required field
27198	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
27199
27200	// (Optional)A reason code string that explains why the job was canceled.
27201	ReasonCode *string `locationName:"reasonCode" type:"string"`
27202}
27203
27204// String returns the string representation
27205func (s CancelJobInput) String() string {
27206	return awsutil.Prettify(s)
27207}
27208
27209// GoString returns the string representation
27210func (s CancelJobInput) GoString() string {
27211	return s.String()
27212}
27213
27214// Validate inspects the fields of the type to determine if they are valid.
27215func (s *CancelJobInput) Validate() error {
27216	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
27217	if s.JobId == nil {
27218		invalidParams.Add(request.NewErrParamRequired("JobId"))
27219	}
27220	if s.JobId != nil && len(*s.JobId) < 1 {
27221		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
27222	}
27223
27224	if invalidParams.Len() > 0 {
27225		return invalidParams
27226	}
27227	return nil
27228}
27229
27230// SetComment sets the Comment field's value.
27231func (s *CancelJobInput) SetComment(v string) *CancelJobInput {
27232	s.Comment = &v
27233	return s
27234}
27235
27236// SetForce sets the Force field's value.
27237func (s *CancelJobInput) SetForce(v bool) *CancelJobInput {
27238	s.Force = &v
27239	return s
27240}
27241
27242// SetJobId sets the JobId field's value.
27243func (s *CancelJobInput) SetJobId(v string) *CancelJobInput {
27244	s.JobId = &v
27245	return s
27246}
27247
27248// SetReasonCode sets the ReasonCode field's value.
27249func (s *CancelJobInput) SetReasonCode(v string) *CancelJobInput {
27250	s.ReasonCode = &v
27251	return s
27252}
27253
27254type CancelJobOutput struct {
27255	_ struct{} `type:"structure"`
27256
27257	// A short text description of the job.
27258	Description *string `locationName:"description" type:"string"`
27259
27260	// The job ARN.
27261	JobArn *string `locationName:"jobArn" type:"string"`
27262
27263	// The unique identifier you assigned to this job when it was created.
27264	JobId *string `locationName:"jobId" min:"1" type:"string"`
27265}
27266
27267// String returns the string representation
27268func (s CancelJobOutput) String() string {
27269	return awsutil.Prettify(s)
27270}
27271
27272// GoString returns the string representation
27273func (s CancelJobOutput) GoString() string {
27274	return s.String()
27275}
27276
27277// SetDescription sets the Description field's value.
27278func (s *CancelJobOutput) SetDescription(v string) *CancelJobOutput {
27279	s.Description = &v
27280	return s
27281}
27282
27283// SetJobArn sets the JobArn field's value.
27284func (s *CancelJobOutput) SetJobArn(v string) *CancelJobOutput {
27285	s.JobArn = &v
27286	return s
27287}
27288
27289// SetJobId sets the JobId field's value.
27290func (s *CancelJobOutput) SetJobId(v string) *CancelJobOutput {
27291	s.JobId = &v
27292	return s
27293}
27294
27295// Information about a certificate.
27296type Certificate struct {
27297	_ struct{} `type:"structure"`
27298
27299	// The ARN of the certificate.
27300	CertificateArn *string `locationName:"certificateArn" type:"string"`
27301
27302	// The ID of the certificate. (The last part of the certificate ARN contains
27303	// the certificate ID.)
27304	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
27305
27306	// The mode of the certificate.
27307	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
27308
27309	// The date and time the certificate was created.
27310	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
27311
27312	// The status of the certificate.
27313	//
27314	// The status value REGISTER_INACTIVE is deprecated and should not be used.
27315	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
27316}
27317
27318// String returns the string representation
27319func (s Certificate) String() string {
27320	return awsutil.Prettify(s)
27321}
27322
27323// GoString returns the string representation
27324func (s Certificate) GoString() string {
27325	return s.String()
27326}
27327
27328// SetCertificateArn sets the CertificateArn field's value.
27329func (s *Certificate) SetCertificateArn(v string) *Certificate {
27330	s.CertificateArn = &v
27331	return s
27332}
27333
27334// SetCertificateId sets the CertificateId field's value.
27335func (s *Certificate) SetCertificateId(v string) *Certificate {
27336	s.CertificateId = &v
27337	return s
27338}
27339
27340// SetCertificateMode sets the CertificateMode field's value.
27341func (s *Certificate) SetCertificateMode(v string) *Certificate {
27342	s.CertificateMode = &v
27343	return s
27344}
27345
27346// SetCreationDate sets the CreationDate field's value.
27347func (s *Certificate) SetCreationDate(v time.Time) *Certificate {
27348	s.CreationDate = &v
27349	return s
27350}
27351
27352// SetStatus sets the Status field's value.
27353func (s *Certificate) SetStatus(v string) *Certificate {
27354	s.Status = &v
27355	return s
27356}
27357
27358// Unable to verify the CA certificate used to sign the device certificate you
27359// are attempting to register. This is happens when you have registered more
27360// than one CA certificate that has the same subject field and public key.
27361type CertificateConflictException struct {
27362	_            struct{}                  `type:"structure"`
27363	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
27364
27365	// The message for the exception.
27366	Message_ *string `locationName:"message" type:"string"`
27367}
27368
27369// String returns the string representation
27370func (s CertificateConflictException) String() string {
27371	return awsutil.Prettify(s)
27372}
27373
27374// GoString returns the string representation
27375func (s CertificateConflictException) GoString() string {
27376	return s.String()
27377}
27378
27379func newErrorCertificateConflictException(v protocol.ResponseMetadata) error {
27380	return &CertificateConflictException{
27381		RespMetadata: v,
27382	}
27383}
27384
27385// Code returns the exception type name.
27386func (s *CertificateConflictException) Code() string {
27387	return "CertificateConflictException"
27388}
27389
27390// Message returns the exception's message.
27391func (s *CertificateConflictException) Message() string {
27392	if s.Message_ != nil {
27393		return *s.Message_
27394	}
27395	return ""
27396}
27397
27398// OrigErr always returns nil, satisfies awserr.Error interface.
27399func (s *CertificateConflictException) OrigErr() error {
27400	return nil
27401}
27402
27403func (s *CertificateConflictException) Error() string {
27404	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
27405}
27406
27407// Status code returns the HTTP status code for the request's response error.
27408func (s *CertificateConflictException) StatusCode() int {
27409	return s.RespMetadata.StatusCode
27410}
27411
27412// RequestID returns the service's response RequestID for request.
27413func (s *CertificateConflictException) RequestID() string {
27414	return s.RespMetadata.RequestID
27415}
27416
27417// Describes a certificate.
27418type CertificateDescription struct {
27419	_ struct{} `type:"structure"`
27420
27421	// The certificate ID of the CA certificate used to sign this certificate.
27422	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
27423
27424	// The ARN of the certificate.
27425	CertificateArn *string `locationName:"certificateArn" type:"string"`
27426
27427	// The ID of the certificate.
27428	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
27429
27430	// The mode of the certificate.
27431	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
27432
27433	// The certificate data, in PEM format.
27434	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
27435
27436	// The date and time the certificate was created.
27437	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
27438
27439	// The customer version of the certificate.
27440	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
27441
27442	// The generation ID of the certificate.
27443	GenerationId *string `locationName:"generationId" type:"string"`
27444
27445	// The date and time the certificate was last modified.
27446	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
27447
27448	// The ID of the AWS account that owns the certificate.
27449	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
27450
27451	// The ID of the AWS account of the previous owner of the certificate.
27452	PreviousOwnedBy *string `locationName:"previousOwnedBy" min:"12" type:"string"`
27453
27454	// The status of the certificate.
27455	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
27456
27457	// The transfer data.
27458	TransferData *TransferData `locationName:"transferData" type:"structure"`
27459
27460	// When the certificate is valid.
27461	Validity *CertificateValidity `locationName:"validity" type:"structure"`
27462}
27463
27464// String returns the string representation
27465func (s CertificateDescription) String() string {
27466	return awsutil.Prettify(s)
27467}
27468
27469// GoString returns the string representation
27470func (s CertificateDescription) GoString() string {
27471	return s.String()
27472}
27473
27474// SetCaCertificateId sets the CaCertificateId field's value.
27475func (s *CertificateDescription) SetCaCertificateId(v string) *CertificateDescription {
27476	s.CaCertificateId = &v
27477	return s
27478}
27479
27480// SetCertificateArn sets the CertificateArn field's value.
27481func (s *CertificateDescription) SetCertificateArn(v string) *CertificateDescription {
27482	s.CertificateArn = &v
27483	return s
27484}
27485
27486// SetCertificateId sets the CertificateId field's value.
27487func (s *CertificateDescription) SetCertificateId(v string) *CertificateDescription {
27488	s.CertificateId = &v
27489	return s
27490}
27491
27492// SetCertificateMode sets the CertificateMode field's value.
27493func (s *CertificateDescription) SetCertificateMode(v string) *CertificateDescription {
27494	s.CertificateMode = &v
27495	return s
27496}
27497
27498// SetCertificatePem sets the CertificatePem field's value.
27499func (s *CertificateDescription) SetCertificatePem(v string) *CertificateDescription {
27500	s.CertificatePem = &v
27501	return s
27502}
27503
27504// SetCreationDate sets the CreationDate field's value.
27505func (s *CertificateDescription) SetCreationDate(v time.Time) *CertificateDescription {
27506	s.CreationDate = &v
27507	return s
27508}
27509
27510// SetCustomerVersion sets the CustomerVersion field's value.
27511func (s *CertificateDescription) SetCustomerVersion(v int64) *CertificateDescription {
27512	s.CustomerVersion = &v
27513	return s
27514}
27515
27516// SetGenerationId sets the GenerationId field's value.
27517func (s *CertificateDescription) SetGenerationId(v string) *CertificateDescription {
27518	s.GenerationId = &v
27519	return s
27520}
27521
27522// SetLastModifiedDate sets the LastModifiedDate field's value.
27523func (s *CertificateDescription) SetLastModifiedDate(v time.Time) *CertificateDescription {
27524	s.LastModifiedDate = &v
27525	return s
27526}
27527
27528// SetOwnedBy sets the OwnedBy field's value.
27529func (s *CertificateDescription) SetOwnedBy(v string) *CertificateDescription {
27530	s.OwnedBy = &v
27531	return s
27532}
27533
27534// SetPreviousOwnedBy sets the PreviousOwnedBy field's value.
27535func (s *CertificateDescription) SetPreviousOwnedBy(v string) *CertificateDescription {
27536	s.PreviousOwnedBy = &v
27537	return s
27538}
27539
27540// SetStatus sets the Status field's value.
27541func (s *CertificateDescription) SetStatus(v string) *CertificateDescription {
27542	s.Status = &v
27543	return s
27544}
27545
27546// SetTransferData sets the TransferData field's value.
27547func (s *CertificateDescription) SetTransferData(v *TransferData) *CertificateDescription {
27548	s.TransferData = v
27549	return s
27550}
27551
27552// SetValidity sets the Validity field's value.
27553func (s *CertificateDescription) SetValidity(v *CertificateValidity) *CertificateDescription {
27554	s.Validity = v
27555	return s
27556}
27557
27558// The certificate operation is not allowed.
27559type CertificateStateException struct {
27560	_            struct{}                  `type:"structure"`
27561	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
27562
27563	// The message for the exception.
27564	Message_ *string `locationName:"message" type:"string"`
27565}
27566
27567// String returns the string representation
27568func (s CertificateStateException) String() string {
27569	return awsutil.Prettify(s)
27570}
27571
27572// GoString returns the string representation
27573func (s CertificateStateException) GoString() string {
27574	return s.String()
27575}
27576
27577func newErrorCertificateStateException(v protocol.ResponseMetadata) error {
27578	return &CertificateStateException{
27579		RespMetadata: v,
27580	}
27581}
27582
27583// Code returns the exception type name.
27584func (s *CertificateStateException) Code() string {
27585	return "CertificateStateException"
27586}
27587
27588// Message returns the exception's message.
27589func (s *CertificateStateException) Message() string {
27590	if s.Message_ != nil {
27591		return *s.Message_
27592	}
27593	return ""
27594}
27595
27596// OrigErr always returns nil, satisfies awserr.Error interface.
27597func (s *CertificateStateException) OrigErr() error {
27598	return nil
27599}
27600
27601func (s *CertificateStateException) Error() string {
27602	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
27603}
27604
27605// Status code returns the HTTP status code for the request's response error.
27606func (s *CertificateStateException) StatusCode() int {
27607	return s.RespMetadata.StatusCode
27608}
27609
27610// RequestID returns the service's response RequestID for request.
27611func (s *CertificateStateException) RequestID() string {
27612	return s.RespMetadata.RequestID
27613}
27614
27615// The certificate is invalid.
27616type CertificateValidationException struct {
27617	_            struct{}                  `type:"structure"`
27618	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
27619
27620	// Additional information about the exception.
27621	Message_ *string `locationName:"message" type:"string"`
27622}
27623
27624// String returns the string representation
27625func (s CertificateValidationException) String() string {
27626	return awsutil.Prettify(s)
27627}
27628
27629// GoString returns the string representation
27630func (s CertificateValidationException) GoString() string {
27631	return s.String()
27632}
27633
27634func newErrorCertificateValidationException(v protocol.ResponseMetadata) error {
27635	return &CertificateValidationException{
27636		RespMetadata: v,
27637	}
27638}
27639
27640// Code returns the exception type name.
27641func (s *CertificateValidationException) Code() string {
27642	return "CertificateValidationException"
27643}
27644
27645// Message returns the exception's message.
27646func (s *CertificateValidationException) Message() string {
27647	if s.Message_ != nil {
27648		return *s.Message_
27649	}
27650	return ""
27651}
27652
27653// OrigErr always returns nil, satisfies awserr.Error interface.
27654func (s *CertificateValidationException) OrigErr() error {
27655	return nil
27656}
27657
27658func (s *CertificateValidationException) Error() string {
27659	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
27660}
27661
27662// Status code returns the HTTP status code for the request's response error.
27663func (s *CertificateValidationException) StatusCode() int {
27664	return s.RespMetadata.StatusCode
27665}
27666
27667// RequestID returns the service's response RequestID for request.
27668func (s *CertificateValidationException) RequestID() string {
27669	return s.RespMetadata.RequestID
27670}
27671
27672// When the certificate is valid.
27673type CertificateValidity struct {
27674	_ struct{} `type:"structure"`
27675
27676	// The certificate is not valid after this date.
27677	NotAfter *time.Time `locationName:"notAfter" type:"timestamp"`
27678
27679	// The certificate is not valid before this date.
27680	NotBefore *time.Time `locationName:"notBefore" type:"timestamp"`
27681}
27682
27683// String returns the string representation
27684func (s CertificateValidity) String() string {
27685	return awsutil.Prettify(s)
27686}
27687
27688// GoString returns the string representation
27689func (s CertificateValidity) GoString() string {
27690	return s.String()
27691}
27692
27693// SetNotAfter sets the NotAfter field's value.
27694func (s *CertificateValidity) SetNotAfter(v time.Time) *CertificateValidity {
27695	s.NotAfter = &v
27696	return s
27697}
27698
27699// SetNotBefore sets the NotBefore field's value.
27700func (s *CertificateValidity) SetNotBefore(v time.Time) *CertificateValidity {
27701	s.NotBefore = &v
27702	return s
27703}
27704
27705type ClearDefaultAuthorizerInput struct {
27706	_ struct{} `type:"structure"`
27707}
27708
27709// String returns the string representation
27710func (s ClearDefaultAuthorizerInput) String() string {
27711	return awsutil.Prettify(s)
27712}
27713
27714// GoString returns the string representation
27715func (s ClearDefaultAuthorizerInput) GoString() string {
27716	return s.String()
27717}
27718
27719type ClearDefaultAuthorizerOutput struct {
27720	_ struct{} `type:"structure"`
27721}
27722
27723// String returns the string representation
27724func (s ClearDefaultAuthorizerOutput) String() string {
27725	return awsutil.Prettify(s)
27726}
27727
27728// GoString returns the string representation
27729func (s ClearDefaultAuthorizerOutput) GoString() string {
27730	return s.String()
27731}
27732
27733// Describes an action that updates a CloudWatch alarm.
27734type CloudwatchAlarmAction struct {
27735	_ struct{} `type:"structure"`
27736
27737	// The CloudWatch alarm name.
27738	//
27739	// AlarmName is a required field
27740	AlarmName *string `locationName:"alarmName" type:"string" required:"true"`
27741
27742	// The IAM role that allows access to the CloudWatch alarm.
27743	//
27744	// RoleArn is a required field
27745	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
27746
27747	// The reason for the alarm change.
27748	//
27749	// StateReason is a required field
27750	StateReason *string `locationName:"stateReason" type:"string" required:"true"`
27751
27752	// The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
27753	//
27754	// StateValue is a required field
27755	StateValue *string `locationName:"stateValue" type:"string" required:"true"`
27756}
27757
27758// String returns the string representation
27759func (s CloudwatchAlarmAction) String() string {
27760	return awsutil.Prettify(s)
27761}
27762
27763// GoString returns the string representation
27764func (s CloudwatchAlarmAction) GoString() string {
27765	return s.String()
27766}
27767
27768// Validate inspects the fields of the type to determine if they are valid.
27769func (s *CloudwatchAlarmAction) Validate() error {
27770	invalidParams := request.ErrInvalidParams{Context: "CloudwatchAlarmAction"}
27771	if s.AlarmName == nil {
27772		invalidParams.Add(request.NewErrParamRequired("AlarmName"))
27773	}
27774	if s.RoleArn == nil {
27775		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
27776	}
27777	if s.StateReason == nil {
27778		invalidParams.Add(request.NewErrParamRequired("StateReason"))
27779	}
27780	if s.StateValue == nil {
27781		invalidParams.Add(request.NewErrParamRequired("StateValue"))
27782	}
27783
27784	if invalidParams.Len() > 0 {
27785		return invalidParams
27786	}
27787	return nil
27788}
27789
27790// SetAlarmName sets the AlarmName field's value.
27791func (s *CloudwatchAlarmAction) SetAlarmName(v string) *CloudwatchAlarmAction {
27792	s.AlarmName = &v
27793	return s
27794}
27795
27796// SetRoleArn sets the RoleArn field's value.
27797func (s *CloudwatchAlarmAction) SetRoleArn(v string) *CloudwatchAlarmAction {
27798	s.RoleArn = &v
27799	return s
27800}
27801
27802// SetStateReason sets the StateReason field's value.
27803func (s *CloudwatchAlarmAction) SetStateReason(v string) *CloudwatchAlarmAction {
27804	s.StateReason = &v
27805	return s
27806}
27807
27808// SetStateValue sets the StateValue field's value.
27809func (s *CloudwatchAlarmAction) SetStateValue(v string) *CloudwatchAlarmAction {
27810	s.StateValue = &v
27811	return s
27812}
27813
27814// Describes an action that sends data to CloudWatch Logs.
27815type CloudwatchLogsAction struct {
27816	_ struct{} `type:"structure"`
27817
27818	// The CloudWatch log group to which the action sends data.
27819	//
27820	// LogGroupName is a required field
27821	LogGroupName *string `locationName:"logGroupName" type:"string" required:"true"`
27822
27823	// The IAM role that allows access to the CloudWatch log.
27824	//
27825	// RoleArn is a required field
27826	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
27827}
27828
27829// String returns the string representation
27830func (s CloudwatchLogsAction) String() string {
27831	return awsutil.Prettify(s)
27832}
27833
27834// GoString returns the string representation
27835func (s CloudwatchLogsAction) GoString() string {
27836	return s.String()
27837}
27838
27839// Validate inspects the fields of the type to determine if they are valid.
27840func (s *CloudwatchLogsAction) Validate() error {
27841	invalidParams := request.ErrInvalidParams{Context: "CloudwatchLogsAction"}
27842	if s.LogGroupName == nil {
27843		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
27844	}
27845	if s.RoleArn == nil {
27846		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
27847	}
27848
27849	if invalidParams.Len() > 0 {
27850		return invalidParams
27851	}
27852	return nil
27853}
27854
27855// SetLogGroupName sets the LogGroupName field's value.
27856func (s *CloudwatchLogsAction) SetLogGroupName(v string) *CloudwatchLogsAction {
27857	s.LogGroupName = &v
27858	return s
27859}
27860
27861// SetRoleArn sets the RoleArn field's value.
27862func (s *CloudwatchLogsAction) SetRoleArn(v string) *CloudwatchLogsAction {
27863	s.RoleArn = &v
27864	return s
27865}
27866
27867// Describes an action that captures a CloudWatch metric.
27868type CloudwatchMetricAction struct {
27869	_ struct{} `type:"structure"`
27870
27871	// The CloudWatch metric name.
27872	//
27873	// MetricName is a required field
27874	MetricName *string `locationName:"metricName" type:"string" required:"true"`
27875
27876	// The CloudWatch metric namespace name.
27877	//
27878	// MetricNamespace is a required field
27879	MetricNamespace *string `locationName:"metricNamespace" type:"string" required:"true"`
27880
27881	// An optional Unix timestamp (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
27882	MetricTimestamp *string `locationName:"metricTimestamp" type:"string"`
27883
27884	// The metric unit (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
27885	// supported by CloudWatch.
27886	//
27887	// MetricUnit is a required field
27888	MetricUnit *string `locationName:"metricUnit" type:"string" required:"true"`
27889
27890	// The CloudWatch metric value.
27891	//
27892	// MetricValue is a required field
27893	MetricValue *string `locationName:"metricValue" type:"string" required:"true"`
27894
27895	// The IAM role that allows access to the CloudWatch metric.
27896	//
27897	// RoleArn is a required field
27898	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
27899}
27900
27901// String returns the string representation
27902func (s CloudwatchMetricAction) String() string {
27903	return awsutil.Prettify(s)
27904}
27905
27906// GoString returns the string representation
27907func (s CloudwatchMetricAction) GoString() string {
27908	return s.String()
27909}
27910
27911// Validate inspects the fields of the type to determine if they are valid.
27912func (s *CloudwatchMetricAction) Validate() error {
27913	invalidParams := request.ErrInvalidParams{Context: "CloudwatchMetricAction"}
27914	if s.MetricName == nil {
27915		invalidParams.Add(request.NewErrParamRequired("MetricName"))
27916	}
27917	if s.MetricNamespace == nil {
27918		invalidParams.Add(request.NewErrParamRequired("MetricNamespace"))
27919	}
27920	if s.MetricUnit == nil {
27921		invalidParams.Add(request.NewErrParamRequired("MetricUnit"))
27922	}
27923	if s.MetricValue == nil {
27924		invalidParams.Add(request.NewErrParamRequired("MetricValue"))
27925	}
27926	if s.RoleArn == nil {
27927		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
27928	}
27929
27930	if invalidParams.Len() > 0 {
27931		return invalidParams
27932	}
27933	return nil
27934}
27935
27936// SetMetricName sets the MetricName field's value.
27937func (s *CloudwatchMetricAction) SetMetricName(v string) *CloudwatchMetricAction {
27938	s.MetricName = &v
27939	return s
27940}
27941
27942// SetMetricNamespace sets the MetricNamespace field's value.
27943func (s *CloudwatchMetricAction) SetMetricNamespace(v string) *CloudwatchMetricAction {
27944	s.MetricNamespace = &v
27945	return s
27946}
27947
27948// SetMetricTimestamp sets the MetricTimestamp field's value.
27949func (s *CloudwatchMetricAction) SetMetricTimestamp(v string) *CloudwatchMetricAction {
27950	s.MetricTimestamp = &v
27951	return s
27952}
27953
27954// SetMetricUnit sets the MetricUnit field's value.
27955func (s *CloudwatchMetricAction) SetMetricUnit(v string) *CloudwatchMetricAction {
27956	s.MetricUnit = &v
27957	return s
27958}
27959
27960// SetMetricValue sets the MetricValue field's value.
27961func (s *CloudwatchMetricAction) SetMetricValue(v string) *CloudwatchMetricAction {
27962	s.MetricValue = &v
27963	return s
27964}
27965
27966// SetRoleArn sets the RoleArn field's value.
27967func (s *CloudwatchMetricAction) SetRoleArn(v string) *CloudwatchMetricAction {
27968	s.RoleArn = &v
27969	return s
27970}
27971
27972// Describes the method to use when code signing a file.
27973type CodeSigning struct {
27974	_ struct{} `type:"structure"`
27975
27976	// The ID of the AWSSignerJob which was created to sign the file.
27977	AwsSignerJobId *string `locationName:"awsSignerJobId" type:"string"`
27978
27979	// A custom method for code signing a file.
27980	CustomCodeSigning *CustomCodeSigning `locationName:"customCodeSigning" type:"structure"`
27981
27982	// Describes the code-signing job.
27983	StartSigningJobParameter *StartSigningJobParameter `locationName:"startSigningJobParameter" type:"structure"`
27984}
27985
27986// String returns the string representation
27987func (s CodeSigning) String() string {
27988	return awsutil.Prettify(s)
27989}
27990
27991// GoString returns the string representation
27992func (s CodeSigning) GoString() string {
27993	return s.String()
27994}
27995
27996// Validate inspects the fields of the type to determine if they are valid.
27997func (s *CodeSigning) Validate() error {
27998	invalidParams := request.ErrInvalidParams{Context: "CodeSigning"}
27999	if s.StartSigningJobParameter != nil {
28000		if err := s.StartSigningJobParameter.Validate(); err != nil {
28001			invalidParams.AddNested("StartSigningJobParameter", err.(request.ErrInvalidParams))
28002		}
28003	}
28004
28005	if invalidParams.Len() > 0 {
28006		return invalidParams
28007	}
28008	return nil
28009}
28010
28011// SetAwsSignerJobId sets the AwsSignerJobId field's value.
28012func (s *CodeSigning) SetAwsSignerJobId(v string) *CodeSigning {
28013	s.AwsSignerJobId = &v
28014	return s
28015}
28016
28017// SetCustomCodeSigning sets the CustomCodeSigning field's value.
28018func (s *CodeSigning) SetCustomCodeSigning(v *CustomCodeSigning) *CodeSigning {
28019	s.CustomCodeSigning = v
28020	return s
28021}
28022
28023// SetStartSigningJobParameter sets the StartSigningJobParameter field's value.
28024func (s *CodeSigning) SetStartSigningJobParameter(v *StartSigningJobParameter) *CodeSigning {
28025	s.StartSigningJobParameter = v
28026	return s
28027}
28028
28029// Describes the certificate chain being used when code signing a file.
28030type CodeSigningCertificateChain struct {
28031	_ struct{} `type:"structure"`
28032
28033	// The name of the certificate.
28034	CertificateName *string `locationName:"certificateName" type:"string"`
28035
28036	// A base64 encoded binary representation of the code signing certificate chain.
28037	InlineDocument *string `locationName:"inlineDocument" type:"string"`
28038}
28039
28040// String returns the string representation
28041func (s CodeSigningCertificateChain) String() string {
28042	return awsutil.Prettify(s)
28043}
28044
28045// GoString returns the string representation
28046func (s CodeSigningCertificateChain) GoString() string {
28047	return s.String()
28048}
28049
28050// SetCertificateName sets the CertificateName field's value.
28051func (s *CodeSigningCertificateChain) SetCertificateName(v string) *CodeSigningCertificateChain {
28052	s.CertificateName = &v
28053	return s
28054}
28055
28056// SetInlineDocument sets the InlineDocument field's value.
28057func (s *CodeSigningCertificateChain) SetInlineDocument(v string) *CodeSigningCertificateChain {
28058	s.InlineDocument = &v
28059	return s
28060}
28061
28062// Describes the signature for a file.
28063type CodeSigningSignature struct {
28064	_ struct{} `type:"structure"`
28065
28066	// A base64 encoded binary representation of the code signing signature.
28067	//
28068	// InlineDocument is automatically base64 encoded/decoded by the SDK.
28069	InlineDocument []byte `locationName:"inlineDocument" type:"blob"`
28070}
28071
28072// String returns the string representation
28073func (s CodeSigningSignature) String() string {
28074	return awsutil.Prettify(s)
28075}
28076
28077// GoString returns the string representation
28078func (s CodeSigningSignature) GoString() string {
28079	return s.String()
28080}
28081
28082// SetInlineDocument sets the InlineDocument field's value.
28083func (s *CodeSigningSignature) SetInlineDocument(v []byte) *CodeSigningSignature {
28084	s.InlineDocument = v
28085	return s
28086}
28087
28088// Configuration.
28089type Configuration struct {
28090	_ struct{} `type:"structure"`
28091
28092	// True to enable the configuration.
28093	Enabled *bool `type:"boolean"`
28094}
28095
28096// String returns the string representation
28097func (s Configuration) String() string {
28098	return awsutil.Prettify(s)
28099}
28100
28101// GoString returns the string representation
28102func (s Configuration) GoString() string {
28103	return s.String()
28104}
28105
28106// SetEnabled sets the Enabled field's value.
28107func (s *Configuration) SetEnabled(v bool) *Configuration {
28108	s.Enabled = &v
28109	return s
28110}
28111
28112type ConfirmTopicRuleDestinationInput struct {
28113	_ struct{} `type:"structure"`
28114
28115	// The token used to confirm ownership or access to the topic rule confirmation
28116	// URL.
28117	//
28118	// ConfirmationToken is a required field
28119	ConfirmationToken *string `location:"uri" locationName:"confirmationToken" min:"1" type:"string" required:"true"`
28120}
28121
28122// String returns the string representation
28123func (s ConfirmTopicRuleDestinationInput) String() string {
28124	return awsutil.Prettify(s)
28125}
28126
28127// GoString returns the string representation
28128func (s ConfirmTopicRuleDestinationInput) GoString() string {
28129	return s.String()
28130}
28131
28132// Validate inspects the fields of the type to determine if they are valid.
28133func (s *ConfirmTopicRuleDestinationInput) Validate() error {
28134	invalidParams := request.ErrInvalidParams{Context: "ConfirmTopicRuleDestinationInput"}
28135	if s.ConfirmationToken == nil {
28136		invalidParams.Add(request.NewErrParamRequired("ConfirmationToken"))
28137	}
28138	if s.ConfirmationToken != nil && len(*s.ConfirmationToken) < 1 {
28139		invalidParams.Add(request.NewErrParamMinLen("ConfirmationToken", 1))
28140	}
28141
28142	if invalidParams.Len() > 0 {
28143		return invalidParams
28144	}
28145	return nil
28146}
28147
28148// SetConfirmationToken sets the ConfirmationToken field's value.
28149func (s *ConfirmTopicRuleDestinationInput) SetConfirmationToken(v string) *ConfirmTopicRuleDestinationInput {
28150	s.ConfirmationToken = &v
28151	return s
28152}
28153
28154type ConfirmTopicRuleDestinationOutput struct {
28155	_ struct{} `type:"structure"`
28156}
28157
28158// String returns the string representation
28159func (s ConfirmTopicRuleDestinationOutput) String() string {
28160	return awsutil.Prettify(s)
28161}
28162
28163// GoString returns the string representation
28164func (s ConfirmTopicRuleDestinationOutput) GoString() string {
28165	return s.String()
28166}
28167
28168// A resource with the same name already exists.
28169type ConflictException struct {
28170	_            struct{}                  `type:"structure"`
28171	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
28172
28173	Message_ *string `locationName:"message" type:"string"`
28174}
28175
28176// String returns the string representation
28177func (s ConflictException) String() string {
28178	return awsutil.Prettify(s)
28179}
28180
28181// GoString returns the string representation
28182func (s ConflictException) GoString() string {
28183	return s.String()
28184}
28185
28186func newErrorConflictException(v protocol.ResponseMetadata) error {
28187	return &ConflictException{
28188		RespMetadata: v,
28189	}
28190}
28191
28192// Code returns the exception type name.
28193func (s *ConflictException) Code() string {
28194	return "ConflictException"
28195}
28196
28197// Message returns the exception's message.
28198func (s *ConflictException) Message() string {
28199	if s.Message_ != nil {
28200		return *s.Message_
28201	}
28202	return ""
28203}
28204
28205// OrigErr always returns nil, satisfies awserr.Error interface.
28206func (s *ConflictException) OrigErr() error {
28207	return nil
28208}
28209
28210func (s *ConflictException) Error() string {
28211	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
28212}
28213
28214// Status code returns the HTTP status code for the request's response error.
28215func (s *ConflictException) StatusCode() int {
28216	return s.RespMetadata.StatusCode
28217}
28218
28219// RequestID returns the service's response RequestID for request.
28220func (s *ConflictException) RequestID() string {
28221	return s.RespMetadata.RequestID
28222}
28223
28224// A conflicting resource update exception. This exception is thrown when two
28225// pending updates cause a conflict.
28226type ConflictingResourceUpdateException struct {
28227	_            struct{}                  `type:"structure"`
28228	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
28229
28230	// The message for the exception.
28231	Message_ *string `locationName:"message" type:"string"`
28232}
28233
28234// String returns the string representation
28235func (s ConflictingResourceUpdateException) String() string {
28236	return awsutil.Prettify(s)
28237}
28238
28239// GoString returns the string representation
28240func (s ConflictingResourceUpdateException) GoString() string {
28241	return s.String()
28242}
28243
28244func newErrorConflictingResourceUpdateException(v protocol.ResponseMetadata) error {
28245	return &ConflictingResourceUpdateException{
28246		RespMetadata: v,
28247	}
28248}
28249
28250// Code returns the exception type name.
28251func (s *ConflictingResourceUpdateException) Code() string {
28252	return "ConflictingResourceUpdateException"
28253}
28254
28255// Message returns the exception's message.
28256func (s *ConflictingResourceUpdateException) Message() string {
28257	if s.Message_ != nil {
28258		return *s.Message_
28259	}
28260	return ""
28261}
28262
28263// OrigErr always returns nil, satisfies awserr.Error interface.
28264func (s *ConflictingResourceUpdateException) OrigErr() error {
28265	return nil
28266}
28267
28268func (s *ConflictingResourceUpdateException) Error() string {
28269	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
28270}
28271
28272// Status code returns the HTTP status code for the request's response error.
28273func (s *ConflictingResourceUpdateException) StatusCode() int {
28274	return s.RespMetadata.StatusCode
28275}
28276
28277// RequestID returns the service's response RequestID for request.
28278func (s *ConflictingResourceUpdateException) RequestID() string {
28279	return s.RespMetadata.RequestID
28280}
28281
28282type CreateAuditSuppressionInput struct {
28283	_ struct{} `type:"structure"`
28284
28285	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
28286	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
28287	// to select which checks are enabled.)
28288	//
28289	// CheckName is a required field
28290	CheckName *string `locationName:"checkName" type:"string" required:"true"`
28291
28292	// The epoch timestamp in seconds at which this suppression expires.
28293	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
28294
28295	// The description of the audit suppression.
28296	Description *string `locationName:"description" type:"string"`
28297
28298	// The epoch timestamp in seconds at which this suppression expires.
28299	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
28300
28301	// Information that identifies the noncompliant resource.
28302	//
28303	// ResourceIdentifier is a required field
28304	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
28305
28306	// Indicates whether a suppression should exist indefinitely or not.
28307	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
28308}
28309
28310// String returns the string representation
28311func (s CreateAuditSuppressionInput) String() string {
28312	return awsutil.Prettify(s)
28313}
28314
28315// GoString returns the string representation
28316func (s CreateAuditSuppressionInput) GoString() string {
28317	return s.String()
28318}
28319
28320// Validate inspects the fields of the type to determine if they are valid.
28321func (s *CreateAuditSuppressionInput) Validate() error {
28322	invalidParams := request.ErrInvalidParams{Context: "CreateAuditSuppressionInput"}
28323	if s.CheckName == nil {
28324		invalidParams.Add(request.NewErrParamRequired("CheckName"))
28325	}
28326	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
28327		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
28328	}
28329	if s.ResourceIdentifier == nil {
28330		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
28331	}
28332	if s.ResourceIdentifier != nil {
28333		if err := s.ResourceIdentifier.Validate(); err != nil {
28334			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
28335		}
28336	}
28337
28338	if invalidParams.Len() > 0 {
28339		return invalidParams
28340	}
28341	return nil
28342}
28343
28344// SetCheckName sets the CheckName field's value.
28345func (s *CreateAuditSuppressionInput) SetCheckName(v string) *CreateAuditSuppressionInput {
28346	s.CheckName = &v
28347	return s
28348}
28349
28350// SetClientRequestToken sets the ClientRequestToken field's value.
28351func (s *CreateAuditSuppressionInput) SetClientRequestToken(v string) *CreateAuditSuppressionInput {
28352	s.ClientRequestToken = &v
28353	return s
28354}
28355
28356// SetDescription sets the Description field's value.
28357func (s *CreateAuditSuppressionInput) SetDescription(v string) *CreateAuditSuppressionInput {
28358	s.Description = &v
28359	return s
28360}
28361
28362// SetExpirationDate sets the ExpirationDate field's value.
28363func (s *CreateAuditSuppressionInput) SetExpirationDate(v time.Time) *CreateAuditSuppressionInput {
28364	s.ExpirationDate = &v
28365	return s
28366}
28367
28368// SetResourceIdentifier sets the ResourceIdentifier field's value.
28369func (s *CreateAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *CreateAuditSuppressionInput {
28370	s.ResourceIdentifier = v
28371	return s
28372}
28373
28374// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
28375func (s *CreateAuditSuppressionInput) SetSuppressIndefinitely(v bool) *CreateAuditSuppressionInput {
28376	s.SuppressIndefinitely = &v
28377	return s
28378}
28379
28380type CreateAuditSuppressionOutput struct {
28381	_ struct{} `type:"structure"`
28382}
28383
28384// String returns the string representation
28385func (s CreateAuditSuppressionOutput) String() string {
28386	return awsutil.Prettify(s)
28387}
28388
28389// GoString returns the string representation
28390func (s CreateAuditSuppressionOutput) GoString() string {
28391	return s.String()
28392}
28393
28394type CreateAuthorizerInput struct {
28395	_ struct{} `type:"structure"`
28396
28397	// The ARN of the authorizer's Lambda function.
28398	//
28399	// AuthorizerFunctionArn is a required field
28400	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string" required:"true"`
28401
28402	// The authorizer name.
28403	//
28404	// AuthorizerName is a required field
28405	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
28406
28407	// Specifies whether AWS IoT validates the token signature in an authorization
28408	// request.
28409	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
28410
28411	// The status of the create authorizer request.
28412	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
28413
28414	// Metadata which can be used to manage the custom authorizer.
28415	//
28416	// For URI Request parameters use format: ...key1=value1&key2=value2...
28417	//
28418	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
28419	//
28420	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
28421	Tags []*Tag `locationName:"tags" type:"list"`
28422
28423	// The name of the token key used to extract the token from the HTTP headers.
28424	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
28425
28426	// The public keys used to verify the digital signature returned by your custom
28427	// authentication service.
28428	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
28429}
28430
28431// String returns the string representation
28432func (s CreateAuthorizerInput) String() string {
28433	return awsutil.Prettify(s)
28434}
28435
28436// GoString returns the string representation
28437func (s CreateAuthorizerInput) GoString() string {
28438	return s.String()
28439}
28440
28441// Validate inspects the fields of the type to determine if they are valid.
28442func (s *CreateAuthorizerInput) Validate() error {
28443	invalidParams := request.ErrInvalidParams{Context: "CreateAuthorizerInput"}
28444	if s.AuthorizerFunctionArn == nil {
28445		invalidParams.Add(request.NewErrParamRequired("AuthorizerFunctionArn"))
28446	}
28447	if s.AuthorizerName == nil {
28448		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
28449	}
28450	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
28451		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
28452	}
28453	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
28454		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
28455	}
28456	if s.Tags != nil {
28457		for i, v := range s.Tags {
28458			if v == nil {
28459				continue
28460			}
28461			if err := v.Validate(); err != nil {
28462				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28463			}
28464		}
28465	}
28466
28467	if invalidParams.Len() > 0 {
28468		return invalidParams
28469	}
28470	return nil
28471}
28472
28473// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
28474func (s *CreateAuthorizerInput) SetAuthorizerFunctionArn(v string) *CreateAuthorizerInput {
28475	s.AuthorizerFunctionArn = &v
28476	return s
28477}
28478
28479// SetAuthorizerName sets the AuthorizerName field's value.
28480func (s *CreateAuthorizerInput) SetAuthorizerName(v string) *CreateAuthorizerInput {
28481	s.AuthorizerName = &v
28482	return s
28483}
28484
28485// SetSigningDisabled sets the SigningDisabled field's value.
28486func (s *CreateAuthorizerInput) SetSigningDisabled(v bool) *CreateAuthorizerInput {
28487	s.SigningDisabled = &v
28488	return s
28489}
28490
28491// SetStatus sets the Status field's value.
28492func (s *CreateAuthorizerInput) SetStatus(v string) *CreateAuthorizerInput {
28493	s.Status = &v
28494	return s
28495}
28496
28497// SetTags sets the Tags field's value.
28498func (s *CreateAuthorizerInput) SetTags(v []*Tag) *CreateAuthorizerInput {
28499	s.Tags = v
28500	return s
28501}
28502
28503// SetTokenKeyName sets the TokenKeyName field's value.
28504func (s *CreateAuthorizerInput) SetTokenKeyName(v string) *CreateAuthorizerInput {
28505	s.TokenKeyName = &v
28506	return s
28507}
28508
28509// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
28510func (s *CreateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *CreateAuthorizerInput {
28511	s.TokenSigningPublicKeys = v
28512	return s
28513}
28514
28515type CreateAuthorizerOutput struct {
28516	_ struct{} `type:"structure"`
28517
28518	// The authorizer ARN.
28519	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
28520
28521	// The authorizer's name.
28522	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
28523}
28524
28525// String returns the string representation
28526func (s CreateAuthorizerOutput) String() string {
28527	return awsutil.Prettify(s)
28528}
28529
28530// GoString returns the string representation
28531func (s CreateAuthorizerOutput) GoString() string {
28532	return s.String()
28533}
28534
28535// SetAuthorizerArn sets the AuthorizerArn field's value.
28536func (s *CreateAuthorizerOutput) SetAuthorizerArn(v string) *CreateAuthorizerOutput {
28537	s.AuthorizerArn = &v
28538	return s
28539}
28540
28541// SetAuthorizerName sets the AuthorizerName field's value.
28542func (s *CreateAuthorizerOutput) SetAuthorizerName(v string) *CreateAuthorizerOutput {
28543	s.AuthorizerName = &v
28544	return s
28545}
28546
28547type CreateBillingGroupInput struct {
28548	_ struct{} `type:"structure"`
28549
28550	// The name you wish to give to the billing group.
28551	//
28552	// BillingGroupName is a required field
28553	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
28554
28555	// The properties of the billing group.
28556	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
28557
28558	// Metadata which can be used to manage the billing group.
28559	Tags []*Tag `locationName:"tags" type:"list"`
28560}
28561
28562// String returns the string representation
28563func (s CreateBillingGroupInput) String() string {
28564	return awsutil.Prettify(s)
28565}
28566
28567// GoString returns the string representation
28568func (s CreateBillingGroupInput) GoString() string {
28569	return s.String()
28570}
28571
28572// Validate inspects the fields of the type to determine if they are valid.
28573func (s *CreateBillingGroupInput) Validate() error {
28574	invalidParams := request.ErrInvalidParams{Context: "CreateBillingGroupInput"}
28575	if s.BillingGroupName == nil {
28576		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
28577	}
28578	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
28579		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
28580	}
28581	if s.Tags != nil {
28582		for i, v := range s.Tags {
28583			if v == nil {
28584				continue
28585			}
28586			if err := v.Validate(); err != nil {
28587				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28588			}
28589		}
28590	}
28591
28592	if invalidParams.Len() > 0 {
28593		return invalidParams
28594	}
28595	return nil
28596}
28597
28598// SetBillingGroupName sets the BillingGroupName field's value.
28599func (s *CreateBillingGroupInput) SetBillingGroupName(v string) *CreateBillingGroupInput {
28600	s.BillingGroupName = &v
28601	return s
28602}
28603
28604// SetBillingGroupProperties sets the BillingGroupProperties field's value.
28605func (s *CreateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *CreateBillingGroupInput {
28606	s.BillingGroupProperties = v
28607	return s
28608}
28609
28610// SetTags sets the Tags field's value.
28611func (s *CreateBillingGroupInput) SetTags(v []*Tag) *CreateBillingGroupInput {
28612	s.Tags = v
28613	return s
28614}
28615
28616type CreateBillingGroupOutput struct {
28617	_ struct{} `type:"structure"`
28618
28619	// The ARN of the billing group.
28620	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
28621
28622	// The ID of the billing group.
28623	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
28624
28625	// The name you gave to the billing group.
28626	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
28627}
28628
28629// String returns the string representation
28630func (s CreateBillingGroupOutput) String() string {
28631	return awsutil.Prettify(s)
28632}
28633
28634// GoString returns the string representation
28635func (s CreateBillingGroupOutput) GoString() string {
28636	return s.String()
28637}
28638
28639// SetBillingGroupArn sets the BillingGroupArn field's value.
28640func (s *CreateBillingGroupOutput) SetBillingGroupArn(v string) *CreateBillingGroupOutput {
28641	s.BillingGroupArn = &v
28642	return s
28643}
28644
28645// SetBillingGroupId sets the BillingGroupId field's value.
28646func (s *CreateBillingGroupOutput) SetBillingGroupId(v string) *CreateBillingGroupOutput {
28647	s.BillingGroupId = &v
28648	return s
28649}
28650
28651// SetBillingGroupName sets the BillingGroupName field's value.
28652func (s *CreateBillingGroupOutput) SetBillingGroupName(v string) *CreateBillingGroupOutput {
28653	s.BillingGroupName = &v
28654	return s
28655}
28656
28657// The input for the CreateCertificateFromCsr operation.
28658type CreateCertificateFromCsrInput struct {
28659	_ struct{} `type:"structure"`
28660
28661	// The certificate signing request (CSR).
28662	//
28663	// CertificateSigningRequest is a required field
28664	CertificateSigningRequest *string `locationName:"certificateSigningRequest" min:"1" type:"string" required:"true"`
28665
28666	// Specifies whether the certificate is active.
28667	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
28668}
28669
28670// String returns the string representation
28671func (s CreateCertificateFromCsrInput) String() string {
28672	return awsutil.Prettify(s)
28673}
28674
28675// GoString returns the string representation
28676func (s CreateCertificateFromCsrInput) GoString() string {
28677	return s.String()
28678}
28679
28680// Validate inspects the fields of the type to determine if they are valid.
28681func (s *CreateCertificateFromCsrInput) Validate() error {
28682	invalidParams := request.ErrInvalidParams{Context: "CreateCertificateFromCsrInput"}
28683	if s.CertificateSigningRequest == nil {
28684		invalidParams.Add(request.NewErrParamRequired("CertificateSigningRequest"))
28685	}
28686	if s.CertificateSigningRequest != nil && len(*s.CertificateSigningRequest) < 1 {
28687		invalidParams.Add(request.NewErrParamMinLen("CertificateSigningRequest", 1))
28688	}
28689
28690	if invalidParams.Len() > 0 {
28691		return invalidParams
28692	}
28693	return nil
28694}
28695
28696// SetCertificateSigningRequest sets the CertificateSigningRequest field's value.
28697func (s *CreateCertificateFromCsrInput) SetCertificateSigningRequest(v string) *CreateCertificateFromCsrInput {
28698	s.CertificateSigningRequest = &v
28699	return s
28700}
28701
28702// SetSetAsActive sets the SetAsActive field's value.
28703func (s *CreateCertificateFromCsrInput) SetSetAsActive(v bool) *CreateCertificateFromCsrInput {
28704	s.SetAsActive = &v
28705	return s
28706}
28707
28708// The output from the CreateCertificateFromCsr operation.
28709type CreateCertificateFromCsrOutput struct {
28710	_ struct{} `type:"structure"`
28711
28712	// The Amazon Resource Name (ARN) of the certificate. You can use the ARN as
28713	// a principal for policy operations.
28714	CertificateArn *string `locationName:"certificateArn" type:"string"`
28715
28716	// The ID of the certificate. Certificate management operations only take a
28717	// certificateId.
28718	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
28719
28720	// The certificate data, in PEM format.
28721	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
28722}
28723
28724// String returns the string representation
28725func (s CreateCertificateFromCsrOutput) String() string {
28726	return awsutil.Prettify(s)
28727}
28728
28729// GoString returns the string representation
28730func (s CreateCertificateFromCsrOutput) GoString() string {
28731	return s.String()
28732}
28733
28734// SetCertificateArn sets the CertificateArn field's value.
28735func (s *CreateCertificateFromCsrOutput) SetCertificateArn(v string) *CreateCertificateFromCsrOutput {
28736	s.CertificateArn = &v
28737	return s
28738}
28739
28740// SetCertificateId sets the CertificateId field's value.
28741func (s *CreateCertificateFromCsrOutput) SetCertificateId(v string) *CreateCertificateFromCsrOutput {
28742	s.CertificateId = &v
28743	return s
28744}
28745
28746// SetCertificatePem sets the CertificatePem field's value.
28747func (s *CreateCertificateFromCsrOutput) SetCertificatePem(v string) *CreateCertificateFromCsrOutput {
28748	s.CertificatePem = &v
28749	return s
28750}
28751
28752type CreateCustomMetricInput struct {
28753	_ struct{} `type:"structure"`
28754
28755	// Each custom metric must have a unique client request token. If you try to
28756	// create a new custom metric that already exists with a different token, an
28757	// exception occurs. If you omit this value, AWS SDKs will automatically generate
28758	// a unique client request.
28759	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
28760
28761	// Field represents a friendly name in the console for the custom metric; it
28762	// doesn't have to be unique. Don't use this name as the metric identifier in
28763	// the device metric report. Can be updated once defined.
28764	DisplayName *string `locationName:"displayName" type:"string"`
28765
28766	// The name of the custom metric. This will be used in the metric report submitted
28767	// from the device/thing. Shouldn't begin with aws:. Cannot be updated once
28768	// defined.
28769	//
28770	// MetricName is a required field
28771	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
28772
28773	// The type of the custom metric. Types include string-list, ip-address-list,
28774	// number-list, and number.
28775	//
28776	// MetricType is a required field
28777	MetricType *string `locationName:"metricType" type:"string" required:"true" enum:"CustomMetricType"`
28778
28779	// Metadata that can be used to manage the custom metric.
28780	Tags []*Tag `locationName:"tags" type:"list"`
28781}
28782
28783// String returns the string representation
28784func (s CreateCustomMetricInput) String() string {
28785	return awsutil.Prettify(s)
28786}
28787
28788// GoString returns the string representation
28789func (s CreateCustomMetricInput) GoString() string {
28790	return s.String()
28791}
28792
28793// Validate inspects the fields of the type to determine if they are valid.
28794func (s *CreateCustomMetricInput) Validate() error {
28795	invalidParams := request.ErrInvalidParams{Context: "CreateCustomMetricInput"}
28796	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
28797		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
28798	}
28799	if s.MetricName == nil {
28800		invalidParams.Add(request.NewErrParamRequired("MetricName"))
28801	}
28802	if s.MetricName != nil && len(*s.MetricName) < 1 {
28803		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
28804	}
28805	if s.MetricType == nil {
28806		invalidParams.Add(request.NewErrParamRequired("MetricType"))
28807	}
28808	if s.Tags != nil {
28809		for i, v := range s.Tags {
28810			if v == nil {
28811				continue
28812			}
28813			if err := v.Validate(); err != nil {
28814				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28815			}
28816		}
28817	}
28818
28819	if invalidParams.Len() > 0 {
28820		return invalidParams
28821	}
28822	return nil
28823}
28824
28825// SetClientRequestToken sets the ClientRequestToken field's value.
28826func (s *CreateCustomMetricInput) SetClientRequestToken(v string) *CreateCustomMetricInput {
28827	s.ClientRequestToken = &v
28828	return s
28829}
28830
28831// SetDisplayName sets the DisplayName field's value.
28832func (s *CreateCustomMetricInput) SetDisplayName(v string) *CreateCustomMetricInput {
28833	s.DisplayName = &v
28834	return s
28835}
28836
28837// SetMetricName sets the MetricName field's value.
28838func (s *CreateCustomMetricInput) SetMetricName(v string) *CreateCustomMetricInput {
28839	s.MetricName = &v
28840	return s
28841}
28842
28843// SetMetricType sets the MetricType field's value.
28844func (s *CreateCustomMetricInput) SetMetricType(v string) *CreateCustomMetricInput {
28845	s.MetricType = &v
28846	return s
28847}
28848
28849// SetTags sets the Tags field's value.
28850func (s *CreateCustomMetricInput) SetTags(v []*Tag) *CreateCustomMetricInput {
28851	s.Tags = v
28852	return s
28853}
28854
28855type CreateCustomMetricOutput struct {
28856	_ struct{} `type:"structure"`
28857
28858	// The Amazon Resource Number (ARN) of the custom metric, e.g. arn:aws-partition:iot:region:accountId:custommetric/metricName
28859	MetricArn *string `locationName:"metricArn" type:"string"`
28860
28861	// The name of the custom metric to be used in the metric report.
28862	MetricName *string `locationName:"metricName" min:"1" type:"string"`
28863}
28864
28865// String returns the string representation
28866func (s CreateCustomMetricOutput) String() string {
28867	return awsutil.Prettify(s)
28868}
28869
28870// GoString returns the string representation
28871func (s CreateCustomMetricOutput) GoString() string {
28872	return s.String()
28873}
28874
28875// SetMetricArn sets the MetricArn field's value.
28876func (s *CreateCustomMetricOutput) SetMetricArn(v string) *CreateCustomMetricOutput {
28877	s.MetricArn = &v
28878	return s
28879}
28880
28881// SetMetricName sets the MetricName field's value.
28882func (s *CreateCustomMetricOutput) SetMetricName(v string) *CreateCustomMetricOutput {
28883	s.MetricName = &v
28884	return s
28885}
28886
28887type CreateDimensionInput struct {
28888	_ struct{} `type:"structure"`
28889
28890	// Each dimension must have a unique client request token. If you try to create
28891	// a new dimension with the same token as a dimension that already exists, an
28892	// exception occurs. If you omit this value, AWS SDKs will automatically generate
28893	// a unique client request.
28894	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
28895
28896	// A unique identifier for the dimension. Choose something that describes the
28897	// type and value to make it easy to remember what it does.
28898	//
28899	// Name is a required field
28900	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
28901
28902	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
28903	// dimensions, this is a pattern used to match the MQTT topic (for example,
28904	// "admin/#").
28905	//
28906	// StringValues is a required field
28907	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
28908
28909	// Metadata that can be used to manage the dimension.
28910	Tags []*Tag `locationName:"tags" type:"list"`
28911
28912	// Specifies the type of dimension. Supported types: TOPIC_FILTER.
28913	//
28914	// Type is a required field
28915	Type *string `locationName:"type" type:"string" required:"true" enum:"DimensionType"`
28916}
28917
28918// String returns the string representation
28919func (s CreateDimensionInput) String() string {
28920	return awsutil.Prettify(s)
28921}
28922
28923// GoString returns the string representation
28924func (s CreateDimensionInput) GoString() string {
28925	return s.String()
28926}
28927
28928// Validate inspects the fields of the type to determine if they are valid.
28929func (s *CreateDimensionInput) Validate() error {
28930	invalidParams := request.ErrInvalidParams{Context: "CreateDimensionInput"}
28931	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
28932		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
28933	}
28934	if s.Name == nil {
28935		invalidParams.Add(request.NewErrParamRequired("Name"))
28936	}
28937	if s.Name != nil && len(*s.Name) < 1 {
28938		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
28939	}
28940	if s.StringValues == nil {
28941		invalidParams.Add(request.NewErrParamRequired("StringValues"))
28942	}
28943	if s.StringValues != nil && len(s.StringValues) < 1 {
28944		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
28945	}
28946	if s.Type == nil {
28947		invalidParams.Add(request.NewErrParamRequired("Type"))
28948	}
28949	if s.Tags != nil {
28950		for i, v := range s.Tags {
28951			if v == nil {
28952				continue
28953			}
28954			if err := v.Validate(); err != nil {
28955				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
28956			}
28957		}
28958	}
28959
28960	if invalidParams.Len() > 0 {
28961		return invalidParams
28962	}
28963	return nil
28964}
28965
28966// SetClientRequestToken sets the ClientRequestToken field's value.
28967func (s *CreateDimensionInput) SetClientRequestToken(v string) *CreateDimensionInput {
28968	s.ClientRequestToken = &v
28969	return s
28970}
28971
28972// SetName sets the Name field's value.
28973func (s *CreateDimensionInput) SetName(v string) *CreateDimensionInput {
28974	s.Name = &v
28975	return s
28976}
28977
28978// SetStringValues sets the StringValues field's value.
28979func (s *CreateDimensionInput) SetStringValues(v []*string) *CreateDimensionInput {
28980	s.StringValues = v
28981	return s
28982}
28983
28984// SetTags sets the Tags field's value.
28985func (s *CreateDimensionInput) SetTags(v []*Tag) *CreateDimensionInput {
28986	s.Tags = v
28987	return s
28988}
28989
28990// SetType sets the Type field's value.
28991func (s *CreateDimensionInput) SetType(v string) *CreateDimensionInput {
28992	s.Type = &v
28993	return s
28994}
28995
28996type CreateDimensionOutput struct {
28997	_ struct{} `type:"structure"`
28998
28999	// The Amazon Resource Name (ARN) of the created dimension.
29000	Arn *string `locationName:"arn" type:"string"`
29001
29002	// A unique identifier for the dimension.
29003	Name *string `locationName:"name" min:"1" type:"string"`
29004}
29005
29006// String returns the string representation
29007func (s CreateDimensionOutput) String() string {
29008	return awsutil.Prettify(s)
29009}
29010
29011// GoString returns the string representation
29012func (s CreateDimensionOutput) GoString() string {
29013	return s.String()
29014}
29015
29016// SetArn sets the Arn field's value.
29017func (s *CreateDimensionOutput) SetArn(v string) *CreateDimensionOutput {
29018	s.Arn = &v
29019	return s
29020}
29021
29022// SetName sets the Name field's value.
29023func (s *CreateDimensionOutput) SetName(v string) *CreateDimensionOutput {
29024	s.Name = &v
29025	return s
29026}
29027
29028type CreateDomainConfigurationInput struct {
29029	_ struct{} `type:"structure"`
29030
29031	// An object that specifies the authorization service for a domain.
29032	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
29033
29034	// The name of the domain configuration. This value must be unique to a region.
29035	//
29036	// DomainConfigurationName is a required field
29037	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
29038
29039	// The name of the domain.
29040	DomainName *string `locationName:"domainName" min:"1" type:"string"`
29041
29042	// The ARNs of the certificates that AWS IoT passes to the device during the
29043	// TLS handshake. Currently you can specify only one certificate ARN. This value
29044	// is not required for AWS-managed domains.
29045	ServerCertificateArns []*string `locationName:"serverCertificateArns" type:"list"`
29046
29047	// The type of service delivered by the endpoint.
29048	//
29049	// AWS IoT Core currently supports only the DATA service type.
29050	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
29051
29052	// Metadata which can be used to manage the domain configuration.
29053	//
29054	// For URI Request parameters use format: ...key1=value1&key2=value2...
29055	//
29056	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
29057	//
29058	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
29059	Tags []*Tag `locationName:"tags" type:"list"`
29060
29061	// The certificate used to validate the server certificate and prove domain
29062	// name ownership. This certificate must be signed by a public certificate authority.
29063	// This value is not required for AWS-managed domains.
29064	ValidationCertificateArn *string `locationName:"validationCertificateArn" min:"1" type:"string"`
29065}
29066
29067// String returns the string representation
29068func (s CreateDomainConfigurationInput) String() string {
29069	return awsutil.Prettify(s)
29070}
29071
29072// GoString returns the string representation
29073func (s CreateDomainConfigurationInput) GoString() string {
29074	return s.String()
29075}
29076
29077// Validate inspects the fields of the type to determine if they are valid.
29078func (s *CreateDomainConfigurationInput) Validate() error {
29079	invalidParams := request.ErrInvalidParams{Context: "CreateDomainConfigurationInput"}
29080	if s.DomainConfigurationName == nil {
29081		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
29082	}
29083	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
29084		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
29085	}
29086	if s.DomainName != nil && len(*s.DomainName) < 1 {
29087		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
29088	}
29089	if s.ValidationCertificateArn != nil && len(*s.ValidationCertificateArn) < 1 {
29090		invalidParams.Add(request.NewErrParamMinLen("ValidationCertificateArn", 1))
29091	}
29092	if s.AuthorizerConfig != nil {
29093		if err := s.AuthorizerConfig.Validate(); err != nil {
29094			invalidParams.AddNested("AuthorizerConfig", err.(request.ErrInvalidParams))
29095		}
29096	}
29097	if s.Tags != nil {
29098		for i, v := range s.Tags {
29099			if v == nil {
29100				continue
29101			}
29102			if err := v.Validate(); err != nil {
29103				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
29104			}
29105		}
29106	}
29107
29108	if invalidParams.Len() > 0 {
29109		return invalidParams
29110	}
29111	return nil
29112}
29113
29114// SetAuthorizerConfig sets the AuthorizerConfig field's value.
29115func (s *CreateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *CreateDomainConfigurationInput {
29116	s.AuthorizerConfig = v
29117	return s
29118}
29119
29120// SetDomainConfigurationName sets the DomainConfigurationName field's value.
29121func (s *CreateDomainConfigurationInput) SetDomainConfigurationName(v string) *CreateDomainConfigurationInput {
29122	s.DomainConfigurationName = &v
29123	return s
29124}
29125
29126// SetDomainName sets the DomainName field's value.
29127func (s *CreateDomainConfigurationInput) SetDomainName(v string) *CreateDomainConfigurationInput {
29128	s.DomainName = &v
29129	return s
29130}
29131
29132// SetServerCertificateArns sets the ServerCertificateArns field's value.
29133func (s *CreateDomainConfigurationInput) SetServerCertificateArns(v []*string) *CreateDomainConfigurationInput {
29134	s.ServerCertificateArns = v
29135	return s
29136}
29137
29138// SetServiceType sets the ServiceType field's value.
29139func (s *CreateDomainConfigurationInput) SetServiceType(v string) *CreateDomainConfigurationInput {
29140	s.ServiceType = &v
29141	return s
29142}
29143
29144// SetTags sets the Tags field's value.
29145func (s *CreateDomainConfigurationInput) SetTags(v []*Tag) *CreateDomainConfigurationInput {
29146	s.Tags = v
29147	return s
29148}
29149
29150// SetValidationCertificateArn sets the ValidationCertificateArn field's value.
29151func (s *CreateDomainConfigurationInput) SetValidationCertificateArn(v string) *CreateDomainConfigurationInput {
29152	s.ValidationCertificateArn = &v
29153	return s
29154}
29155
29156type CreateDomainConfigurationOutput struct {
29157	_ struct{} `type:"structure"`
29158
29159	// The ARN of the domain configuration.
29160	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
29161
29162	// The name of the domain configuration.
29163	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
29164}
29165
29166// String returns the string representation
29167func (s CreateDomainConfigurationOutput) String() string {
29168	return awsutil.Prettify(s)
29169}
29170
29171// GoString returns the string representation
29172func (s CreateDomainConfigurationOutput) GoString() string {
29173	return s.String()
29174}
29175
29176// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
29177func (s *CreateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *CreateDomainConfigurationOutput {
29178	s.DomainConfigurationArn = &v
29179	return s
29180}
29181
29182// SetDomainConfigurationName sets the DomainConfigurationName field's value.
29183func (s *CreateDomainConfigurationOutput) SetDomainConfigurationName(v string) *CreateDomainConfigurationOutput {
29184	s.DomainConfigurationName = &v
29185	return s
29186}
29187
29188type CreateDynamicThingGroupInput struct {
29189	_ struct{} `type:"structure"`
29190
29191	// The dynamic thing group index name.
29192	//
29193	// Currently one index is supported: "AWS_Things".
29194	IndexName *string `locationName:"indexName" min:"1" type:"string"`
29195
29196	// The dynamic thing group search query string.
29197	//
29198	// See Query Syntax (https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)
29199	// for information about query string syntax.
29200	//
29201	// QueryString is a required field
29202	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
29203
29204	// The dynamic thing group query version.
29205	//
29206	// Currently one query version is supported: "2017-09-30". If not specified,
29207	// the query version defaults to this value.
29208	QueryVersion *string `locationName:"queryVersion" type:"string"`
29209
29210	// Metadata which can be used to manage the dynamic thing group.
29211	Tags []*Tag `locationName:"tags" type:"list"`
29212
29213	// The dynamic thing group name to create.
29214	//
29215	// ThingGroupName is a required field
29216	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
29217
29218	// The dynamic thing group properties.
29219	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
29220}
29221
29222// String returns the string representation
29223func (s CreateDynamicThingGroupInput) String() string {
29224	return awsutil.Prettify(s)
29225}
29226
29227// GoString returns the string representation
29228func (s CreateDynamicThingGroupInput) GoString() string {
29229	return s.String()
29230}
29231
29232// Validate inspects the fields of the type to determine if they are valid.
29233func (s *CreateDynamicThingGroupInput) Validate() error {
29234	invalidParams := request.ErrInvalidParams{Context: "CreateDynamicThingGroupInput"}
29235	if s.IndexName != nil && len(*s.IndexName) < 1 {
29236		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
29237	}
29238	if s.QueryString == nil {
29239		invalidParams.Add(request.NewErrParamRequired("QueryString"))
29240	}
29241	if s.QueryString != nil && len(*s.QueryString) < 1 {
29242		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
29243	}
29244	if s.ThingGroupName == nil {
29245		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
29246	}
29247	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
29248		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
29249	}
29250	if s.Tags != nil {
29251		for i, v := range s.Tags {
29252			if v == nil {
29253				continue
29254			}
29255			if err := v.Validate(); err != nil {
29256				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
29257			}
29258		}
29259	}
29260
29261	if invalidParams.Len() > 0 {
29262		return invalidParams
29263	}
29264	return nil
29265}
29266
29267// SetIndexName sets the IndexName field's value.
29268func (s *CreateDynamicThingGroupInput) SetIndexName(v string) *CreateDynamicThingGroupInput {
29269	s.IndexName = &v
29270	return s
29271}
29272
29273// SetQueryString sets the QueryString field's value.
29274func (s *CreateDynamicThingGroupInput) SetQueryString(v string) *CreateDynamicThingGroupInput {
29275	s.QueryString = &v
29276	return s
29277}
29278
29279// SetQueryVersion sets the QueryVersion field's value.
29280func (s *CreateDynamicThingGroupInput) SetQueryVersion(v string) *CreateDynamicThingGroupInput {
29281	s.QueryVersion = &v
29282	return s
29283}
29284
29285// SetTags sets the Tags field's value.
29286func (s *CreateDynamicThingGroupInput) SetTags(v []*Tag) *CreateDynamicThingGroupInput {
29287	s.Tags = v
29288	return s
29289}
29290
29291// SetThingGroupName sets the ThingGroupName field's value.
29292func (s *CreateDynamicThingGroupInput) SetThingGroupName(v string) *CreateDynamicThingGroupInput {
29293	s.ThingGroupName = &v
29294	return s
29295}
29296
29297// SetThingGroupProperties sets the ThingGroupProperties field's value.
29298func (s *CreateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateDynamicThingGroupInput {
29299	s.ThingGroupProperties = v
29300	return s
29301}
29302
29303type CreateDynamicThingGroupOutput struct {
29304	_ struct{} `type:"structure"`
29305
29306	// The dynamic thing group index name.
29307	IndexName *string `locationName:"indexName" min:"1" type:"string"`
29308
29309	// The dynamic thing group search query string.
29310	QueryString *string `locationName:"queryString" min:"1" type:"string"`
29311
29312	// The dynamic thing group query version.
29313	QueryVersion *string `locationName:"queryVersion" type:"string"`
29314
29315	// The dynamic thing group ARN.
29316	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
29317
29318	// The dynamic thing group ID.
29319	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
29320
29321	// The dynamic thing group name.
29322	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
29323}
29324
29325// String returns the string representation
29326func (s CreateDynamicThingGroupOutput) String() string {
29327	return awsutil.Prettify(s)
29328}
29329
29330// GoString returns the string representation
29331func (s CreateDynamicThingGroupOutput) GoString() string {
29332	return s.String()
29333}
29334
29335// SetIndexName sets the IndexName field's value.
29336func (s *CreateDynamicThingGroupOutput) SetIndexName(v string) *CreateDynamicThingGroupOutput {
29337	s.IndexName = &v
29338	return s
29339}
29340
29341// SetQueryString sets the QueryString field's value.
29342func (s *CreateDynamicThingGroupOutput) SetQueryString(v string) *CreateDynamicThingGroupOutput {
29343	s.QueryString = &v
29344	return s
29345}
29346
29347// SetQueryVersion sets the QueryVersion field's value.
29348func (s *CreateDynamicThingGroupOutput) SetQueryVersion(v string) *CreateDynamicThingGroupOutput {
29349	s.QueryVersion = &v
29350	return s
29351}
29352
29353// SetThingGroupArn sets the ThingGroupArn field's value.
29354func (s *CreateDynamicThingGroupOutput) SetThingGroupArn(v string) *CreateDynamicThingGroupOutput {
29355	s.ThingGroupArn = &v
29356	return s
29357}
29358
29359// SetThingGroupId sets the ThingGroupId field's value.
29360func (s *CreateDynamicThingGroupOutput) SetThingGroupId(v string) *CreateDynamicThingGroupOutput {
29361	s.ThingGroupId = &v
29362	return s
29363}
29364
29365// SetThingGroupName sets the ThingGroupName field's value.
29366func (s *CreateDynamicThingGroupOutput) SetThingGroupName(v string) *CreateDynamicThingGroupOutput {
29367	s.ThingGroupName = &v
29368	return s
29369}
29370
29371type CreateJobInput struct {
29372	_ struct{} `type:"structure"`
29373
29374	// Allows you to create criteria to abort a job.
29375	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
29376
29377	// A short text description of the job.
29378	Description *string `locationName:"description" type:"string"`
29379
29380	// The job document. Required if you don't specify a value for documentSource.
29381	Document *string `locationName:"document" type:"string"`
29382
29383	// An S3 link to the job document. Required if you don't specify a value for
29384	// document.
29385	//
29386	// If the job document resides in an S3 bucket, you must use a placeholder link
29387	// when specifying the document.
29388	//
29389	// The placeholder link is of the following form:
29390	//
29391	// ${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
29392	//
29393	// where bucket is your bucket name and key is the object in the bucket to which
29394	// you are linking.
29395	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
29396
29397	// Allows you to create a staged rollout of the job.
29398	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
29399
29400	// A job identifier which must be unique for your AWS account. We recommend
29401	// using a UUID. Alpha-numeric characters, "-" and "_" are valid for use here.
29402	//
29403	// JobId is a required field
29404	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
29405
29406	// The ARN of the job template used to create the job.
29407	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
29408
29409	// The namespace used to indicate that a job is a customer-managed job.
29410	//
29411	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
29412	// to MQTT topics that contain the value in the following format.
29413	//
29414	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
29415	//
29416	// The namespaceId feature is in public preview.
29417	NamespaceId *string `locationName:"namespaceId" min:"1" type:"string"`
29418
29419	// Configuration information for pre-signed S3 URLs.
29420	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
29421
29422	// Metadata which can be used to manage the job.
29423	Tags []*Tag `locationName:"tags" type:"list"`
29424
29425	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
29426	// after all those things specified as targets have completed the job (SNAPSHOT).
29427	// If continuous, the job may also be run on a thing when a change is detected
29428	// in a target. For example, a job will run on a thing when the thing is added
29429	// to a target group, even after the job was completed by all things originally
29430	// in the group.
29431	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
29432
29433	// A list of things and thing groups to which the job should be sent.
29434	//
29435	// Targets is a required field
29436	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
29437
29438	// Specifies the amount of time each device has to finish its execution of the
29439	// job. The timer is started when the job execution status is set to IN_PROGRESS.
29440	// If the job execution status is not set to another terminal state before the
29441	// time expires, it will be automatically set to TIMED_OUT.
29442	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
29443}
29444
29445// String returns the string representation
29446func (s CreateJobInput) String() string {
29447	return awsutil.Prettify(s)
29448}
29449
29450// GoString returns the string representation
29451func (s CreateJobInput) GoString() string {
29452	return s.String()
29453}
29454
29455// Validate inspects the fields of the type to determine if they are valid.
29456func (s *CreateJobInput) Validate() error {
29457	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
29458	if s.DocumentSource != nil && len(*s.DocumentSource) < 1 {
29459		invalidParams.Add(request.NewErrParamMinLen("DocumentSource", 1))
29460	}
29461	if s.JobId == nil {
29462		invalidParams.Add(request.NewErrParamRequired("JobId"))
29463	}
29464	if s.JobId != nil && len(*s.JobId) < 1 {
29465		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
29466	}
29467	if s.JobTemplateArn != nil && len(*s.JobTemplateArn) < 1 {
29468		invalidParams.Add(request.NewErrParamMinLen("JobTemplateArn", 1))
29469	}
29470	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
29471		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
29472	}
29473	if s.Targets == nil {
29474		invalidParams.Add(request.NewErrParamRequired("Targets"))
29475	}
29476	if s.Targets != nil && len(s.Targets) < 1 {
29477		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
29478	}
29479	if s.AbortConfig != nil {
29480		if err := s.AbortConfig.Validate(); err != nil {
29481			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
29482		}
29483	}
29484	if s.JobExecutionsRolloutConfig != nil {
29485		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
29486			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
29487		}
29488	}
29489	if s.PresignedUrlConfig != nil {
29490		if err := s.PresignedUrlConfig.Validate(); err != nil {
29491			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
29492		}
29493	}
29494	if s.Tags != nil {
29495		for i, v := range s.Tags {
29496			if v == nil {
29497				continue
29498			}
29499			if err := v.Validate(); err != nil {
29500				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
29501			}
29502		}
29503	}
29504
29505	if invalidParams.Len() > 0 {
29506		return invalidParams
29507	}
29508	return nil
29509}
29510
29511// SetAbortConfig sets the AbortConfig field's value.
29512func (s *CreateJobInput) SetAbortConfig(v *AbortConfig) *CreateJobInput {
29513	s.AbortConfig = v
29514	return s
29515}
29516
29517// SetDescription sets the Description field's value.
29518func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
29519	s.Description = &v
29520	return s
29521}
29522
29523// SetDocument sets the Document field's value.
29524func (s *CreateJobInput) SetDocument(v string) *CreateJobInput {
29525	s.Document = &v
29526	return s
29527}
29528
29529// SetDocumentSource sets the DocumentSource field's value.
29530func (s *CreateJobInput) SetDocumentSource(v string) *CreateJobInput {
29531	s.DocumentSource = &v
29532	return s
29533}
29534
29535// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
29536func (s *CreateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *CreateJobInput {
29537	s.JobExecutionsRolloutConfig = v
29538	return s
29539}
29540
29541// SetJobId sets the JobId field's value.
29542func (s *CreateJobInput) SetJobId(v string) *CreateJobInput {
29543	s.JobId = &v
29544	return s
29545}
29546
29547// SetJobTemplateArn sets the JobTemplateArn field's value.
29548func (s *CreateJobInput) SetJobTemplateArn(v string) *CreateJobInput {
29549	s.JobTemplateArn = &v
29550	return s
29551}
29552
29553// SetNamespaceId sets the NamespaceId field's value.
29554func (s *CreateJobInput) SetNamespaceId(v string) *CreateJobInput {
29555	s.NamespaceId = &v
29556	return s
29557}
29558
29559// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
29560func (s *CreateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *CreateJobInput {
29561	s.PresignedUrlConfig = v
29562	return s
29563}
29564
29565// SetTags sets the Tags field's value.
29566func (s *CreateJobInput) SetTags(v []*Tag) *CreateJobInput {
29567	s.Tags = v
29568	return s
29569}
29570
29571// SetTargetSelection sets the TargetSelection field's value.
29572func (s *CreateJobInput) SetTargetSelection(v string) *CreateJobInput {
29573	s.TargetSelection = &v
29574	return s
29575}
29576
29577// SetTargets sets the Targets field's value.
29578func (s *CreateJobInput) SetTargets(v []*string) *CreateJobInput {
29579	s.Targets = v
29580	return s
29581}
29582
29583// SetTimeoutConfig sets the TimeoutConfig field's value.
29584func (s *CreateJobInput) SetTimeoutConfig(v *TimeoutConfig) *CreateJobInput {
29585	s.TimeoutConfig = v
29586	return s
29587}
29588
29589type CreateJobOutput struct {
29590	_ struct{} `type:"structure"`
29591
29592	// The job description.
29593	Description *string `locationName:"description" type:"string"`
29594
29595	// The job ARN.
29596	JobArn *string `locationName:"jobArn" type:"string"`
29597
29598	// The unique identifier you assigned to this job.
29599	JobId *string `locationName:"jobId" min:"1" type:"string"`
29600}
29601
29602// String returns the string representation
29603func (s CreateJobOutput) String() string {
29604	return awsutil.Prettify(s)
29605}
29606
29607// GoString returns the string representation
29608func (s CreateJobOutput) GoString() string {
29609	return s.String()
29610}
29611
29612// SetDescription sets the Description field's value.
29613func (s *CreateJobOutput) SetDescription(v string) *CreateJobOutput {
29614	s.Description = &v
29615	return s
29616}
29617
29618// SetJobArn sets the JobArn field's value.
29619func (s *CreateJobOutput) SetJobArn(v string) *CreateJobOutput {
29620	s.JobArn = &v
29621	return s
29622}
29623
29624// SetJobId sets the JobId field's value.
29625func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
29626	s.JobId = &v
29627	return s
29628}
29629
29630type CreateJobTemplateInput struct {
29631	_ struct{} `type:"structure"`
29632
29633	// The criteria that determine when and how a job abort takes place.
29634	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
29635
29636	// A description of the job document.
29637	//
29638	// Description is a required field
29639	Description *string `locationName:"description" type:"string" required:"true"`
29640
29641	// The job document. Required if you don't specify a value for documentSource.
29642	Document *string `locationName:"document" type:"string"`
29643
29644	// An S3 link to the job document to use in the template. Required if you don't
29645	// specify a value for document.
29646	//
29647	// If the job document resides in an S3 bucket, you must use a placeholder link
29648	// when specifying the document.
29649	//
29650	// The placeholder link is of the following form:
29651	//
29652	// ${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
29653	//
29654	// where bucket is your bucket name and key is the object in the bucket to which
29655	// you are linking.
29656	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
29657
29658	// The ARN of the job to use as the basis for the job template.
29659	JobArn *string `locationName:"jobArn" type:"string"`
29660
29661	// Allows you to create a staged rollout of a job.
29662	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
29663
29664	// A unique identifier for the job template. We recommend using a UUID. Alpha-numeric
29665	// characters, "-", and "_" are valid for use here.
29666	//
29667	// JobTemplateId is a required field
29668	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
29669
29670	// Configuration for pre-signed S3 URLs.
29671	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
29672
29673	// Metadata that can be used to manage the job template.
29674	Tags []*Tag `locationName:"tags" type:"list"`
29675
29676	// Specifies the amount of time each device has to finish its execution of the
29677	// job. A timer is started when the job execution status is set to IN_PROGRESS.
29678	// If the job execution status is not set to another terminal state before the
29679	// timer expires, it will be automatically set to TIMED_OUT.
29680	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
29681}
29682
29683// String returns the string representation
29684func (s CreateJobTemplateInput) String() string {
29685	return awsutil.Prettify(s)
29686}
29687
29688// GoString returns the string representation
29689func (s CreateJobTemplateInput) GoString() string {
29690	return s.String()
29691}
29692
29693// Validate inspects the fields of the type to determine if they are valid.
29694func (s *CreateJobTemplateInput) Validate() error {
29695	invalidParams := request.ErrInvalidParams{Context: "CreateJobTemplateInput"}
29696	if s.Description == nil {
29697		invalidParams.Add(request.NewErrParamRequired("Description"))
29698	}
29699	if s.DocumentSource != nil && len(*s.DocumentSource) < 1 {
29700		invalidParams.Add(request.NewErrParamMinLen("DocumentSource", 1))
29701	}
29702	if s.JobTemplateId == nil {
29703		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
29704	}
29705	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
29706		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
29707	}
29708	if s.AbortConfig != nil {
29709		if err := s.AbortConfig.Validate(); err != nil {
29710			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
29711		}
29712	}
29713	if s.JobExecutionsRolloutConfig != nil {
29714		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
29715			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
29716		}
29717	}
29718	if s.PresignedUrlConfig != nil {
29719		if err := s.PresignedUrlConfig.Validate(); err != nil {
29720			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
29721		}
29722	}
29723	if s.Tags != nil {
29724		for i, v := range s.Tags {
29725			if v == nil {
29726				continue
29727			}
29728			if err := v.Validate(); err != nil {
29729				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
29730			}
29731		}
29732	}
29733
29734	if invalidParams.Len() > 0 {
29735		return invalidParams
29736	}
29737	return nil
29738}
29739
29740// SetAbortConfig sets the AbortConfig field's value.
29741func (s *CreateJobTemplateInput) SetAbortConfig(v *AbortConfig) *CreateJobTemplateInput {
29742	s.AbortConfig = v
29743	return s
29744}
29745
29746// SetDescription sets the Description field's value.
29747func (s *CreateJobTemplateInput) SetDescription(v string) *CreateJobTemplateInput {
29748	s.Description = &v
29749	return s
29750}
29751
29752// SetDocument sets the Document field's value.
29753func (s *CreateJobTemplateInput) SetDocument(v string) *CreateJobTemplateInput {
29754	s.Document = &v
29755	return s
29756}
29757
29758// SetDocumentSource sets the DocumentSource field's value.
29759func (s *CreateJobTemplateInput) SetDocumentSource(v string) *CreateJobTemplateInput {
29760	s.DocumentSource = &v
29761	return s
29762}
29763
29764// SetJobArn sets the JobArn field's value.
29765func (s *CreateJobTemplateInput) SetJobArn(v string) *CreateJobTemplateInput {
29766	s.JobArn = &v
29767	return s
29768}
29769
29770// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
29771func (s *CreateJobTemplateInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *CreateJobTemplateInput {
29772	s.JobExecutionsRolloutConfig = v
29773	return s
29774}
29775
29776// SetJobTemplateId sets the JobTemplateId field's value.
29777func (s *CreateJobTemplateInput) SetJobTemplateId(v string) *CreateJobTemplateInput {
29778	s.JobTemplateId = &v
29779	return s
29780}
29781
29782// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
29783func (s *CreateJobTemplateInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *CreateJobTemplateInput {
29784	s.PresignedUrlConfig = v
29785	return s
29786}
29787
29788// SetTags sets the Tags field's value.
29789func (s *CreateJobTemplateInput) SetTags(v []*Tag) *CreateJobTemplateInput {
29790	s.Tags = v
29791	return s
29792}
29793
29794// SetTimeoutConfig sets the TimeoutConfig field's value.
29795func (s *CreateJobTemplateInput) SetTimeoutConfig(v *TimeoutConfig) *CreateJobTemplateInput {
29796	s.TimeoutConfig = v
29797	return s
29798}
29799
29800type CreateJobTemplateOutput struct {
29801	_ struct{} `type:"structure"`
29802
29803	// The ARN of the job template.
29804	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
29805
29806	// The unique identifier of the job template.
29807	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
29808}
29809
29810// String returns the string representation
29811func (s CreateJobTemplateOutput) String() string {
29812	return awsutil.Prettify(s)
29813}
29814
29815// GoString returns the string representation
29816func (s CreateJobTemplateOutput) GoString() string {
29817	return s.String()
29818}
29819
29820// SetJobTemplateArn sets the JobTemplateArn field's value.
29821func (s *CreateJobTemplateOutput) SetJobTemplateArn(v string) *CreateJobTemplateOutput {
29822	s.JobTemplateArn = &v
29823	return s
29824}
29825
29826// SetJobTemplateId sets the JobTemplateId field's value.
29827func (s *CreateJobTemplateOutput) SetJobTemplateId(v string) *CreateJobTemplateOutput {
29828	s.JobTemplateId = &v
29829	return s
29830}
29831
29832// The input for the CreateKeysAndCertificate operation.
29833type CreateKeysAndCertificateInput struct {
29834	_ struct{} `type:"structure"`
29835
29836	// Specifies whether the certificate is active.
29837	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
29838}
29839
29840// String returns the string representation
29841func (s CreateKeysAndCertificateInput) String() string {
29842	return awsutil.Prettify(s)
29843}
29844
29845// GoString returns the string representation
29846func (s CreateKeysAndCertificateInput) GoString() string {
29847	return s.String()
29848}
29849
29850// SetSetAsActive sets the SetAsActive field's value.
29851func (s *CreateKeysAndCertificateInput) SetSetAsActive(v bool) *CreateKeysAndCertificateInput {
29852	s.SetAsActive = &v
29853	return s
29854}
29855
29856// The output of the CreateKeysAndCertificate operation.
29857type CreateKeysAndCertificateOutput struct {
29858	_ struct{} `type:"structure"`
29859
29860	// The ARN of the certificate.
29861	CertificateArn *string `locationName:"certificateArn" type:"string"`
29862
29863	// The ID of the certificate. AWS IoT issues a default subject name for the
29864	// certificate (for example, AWS IoT Certificate).
29865	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
29866
29867	// The certificate data, in PEM format.
29868	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
29869
29870	// The generated key pair.
29871	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
29872}
29873
29874// String returns the string representation
29875func (s CreateKeysAndCertificateOutput) String() string {
29876	return awsutil.Prettify(s)
29877}
29878
29879// GoString returns the string representation
29880func (s CreateKeysAndCertificateOutput) GoString() string {
29881	return s.String()
29882}
29883
29884// SetCertificateArn sets the CertificateArn field's value.
29885func (s *CreateKeysAndCertificateOutput) SetCertificateArn(v string) *CreateKeysAndCertificateOutput {
29886	s.CertificateArn = &v
29887	return s
29888}
29889
29890// SetCertificateId sets the CertificateId field's value.
29891func (s *CreateKeysAndCertificateOutput) SetCertificateId(v string) *CreateKeysAndCertificateOutput {
29892	s.CertificateId = &v
29893	return s
29894}
29895
29896// SetCertificatePem sets the CertificatePem field's value.
29897func (s *CreateKeysAndCertificateOutput) SetCertificatePem(v string) *CreateKeysAndCertificateOutput {
29898	s.CertificatePem = &v
29899	return s
29900}
29901
29902// SetKeyPair sets the KeyPair field's value.
29903func (s *CreateKeysAndCertificateOutput) SetKeyPair(v *KeyPair) *CreateKeysAndCertificateOutput {
29904	s.KeyPair = v
29905	return s
29906}
29907
29908type CreateMitigationActionInput struct {
29909	_ struct{} `type:"structure"`
29910
29911	// A friendly name for the action. Choose a friendly name that accurately describes
29912	// the action (for example, EnableLoggingAction).
29913	//
29914	// ActionName is a required field
29915	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
29916
29917	// Defines the type of action and the parameters for that action.
29918	//
29919	// ActionParams is a required field
29920	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure" required:"true"`
29921
29922	// The ARN of the IAM role that is used to apply the mitigation action.
29923	//
29924	// RoleArn is a required field
29925	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
29926
29927	// Metadata that can be used to manage the mitigation action.
29928	Tags []*Tag `locationName:"tags" type:"list"`
29929}
29930
29931// String returns the string representation
29932func (s CreateMitigationActionInput) String() string {
29933	return awsutil.Prettify(s)
29934}
29935
29936// GoString returns the string representation
29937func (s CreateMitigationActionInput) GoString() string {
29938	return s.String()
29939}
29940
29941// Validate inspects the fields of the type to determine if they are valid.
29942func (s *CreateMitigationActionInput) Validate() error {
29943	invalidParams := request.ErrInvalidParams{Context: "CreateMitigationActionInput"}
29944	if s.ActionName == nil {
29945		invalidParams.Add(request.NewErrParamRequired("ActionName"))
29946	}
29947	if s.ActionName != nil && len(*s.ActionName) < 1 {
29948		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
29949	}
29950	if s.ActionParams == nil {
29951		invalidParams.Add(request.NewErrParamRequired("ActionParams"))
29952	}
29953	if s.RoleArn == nil {
29954		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
29955	}
29956	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
29957		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
29958	}
29959	if s.ActionParams != nil {
29960		if err := s.ActionParams.Validate(); err != nil {
29961			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
29962		}
29963	}
29964	if s.Tags != nil {
29965		for i, v := range s.Tags {
29966			if v == nil {
29967				continue
29968			}
29969			if err := v.Validate(); err != nil {
29970				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
29971			}
29972		}
29973	}
29974
29975	if invalidParams.Len() > 0 {
29976		return invalidParams
29977	}
29978	return nil
29979}
29980
29981// SetActionName sets the ActionName field's value.
29982func (s *CreateMitigationActionInput) SetActionName(v string) *CreateMitigationActionInput {
29983	s.ActionName = &v
29984	return s
29985}
29986
29987// SetActionParams sets the ActionParams field's value.
29988func (s *CreateMitigationActionInput) SetActionParams(v *MitigationActionParams) *CreateMitigationActionInput {
29989	s.ActionParams = v
29990	return s
29991}
29992
29993// SetRoleArn sets the RoleArn field's value.
29994func (s *CreateMitigationActionInput) SetRoleArn(v string) *CreateMitigationActionInput {
29995	s.RoleArn = &v
29996	return s
29997}
29998
29999// SetTags sets the Tags field's value.
30000func (s *CreateMitigationActionInput) SetTags(v []*Tag) *CreateMitigationActionInput {
30001	s.Tags = v
30002	return s
30003}
30004
30005type CreateMitigationActionOutput struct {
30006	_ struct{} `type:"structure"`
30007
30008	// The ARN for the new mitigation action.
30009	ActionArn *string `locationName:"actionArn" type:"string"`
30010
30011	// A unique identifier for the new mitigation action.
30012	ActionId *string `locationName:"actionId" type:"string"`
30013}
30014
30015// String returns the string representation
30016func (s CreateMitigationActionOutput) String() string {
30017	return awsutil.Prettify(s)
30018}
30019
30020// GoString returns the string representation
30021func (s CreateMitigationActionOutput) GoString() string {
30022	return s.String()
30023}
30024
30025// SetActionArn sets the ActionArn field's value.
30026func (s *CreateMitigationActionOutput) SetActionArn(v string) *CreateMitigationActionOutput {
30027	s.ActionArn = &v
30028	return s
30029}
30030
30031// SetActionId sets the ActionId field's value.
30032func (s *CreateMitigationActionOutput) SetActionId(v string) *CreateMitigationActionOutput {
30033	s.ActionId = &v
30034	return s
30035}
30036
30037type CreateOTAUpdateInput struct {
30038	_ struct{} `type:"structure"`
30039
30040	// A list of additional OTA update parameters which are name-value pairs.
30041	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
30042
30043	// The criteria that determine when and how a job abort takes place.
30044	AwsJobAbortConfig *AwsJobAbortConfig `locationName:"awsJobAbortConfig" type:"structure"`
30045
30046	// Configuration for the rollout of OTA updates.
30047	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
30048
30049	// Configuration information for pre-signed URLs.
30050	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
30051
30052	// Specifies the amount of time each device has to finish its execution of the
30053	// job. A timer is started when the job execution status is set to IN_PROGRESS.
30054	// If the job execution status is not set to another terminal state before the
30055	// timer expires, it will be automatically set to TIMED_OUT.
30056	AwsJobTimeoutConfig *AwsJobTimeoutConfig `locationName:"awsJobTimeoutConfig" type:"structure"`
30057
30058	// The description of the OTA update.
30059	Description *string `locationName:"description" type:"string"`
30060
30061	// The files to be streamed by the OTA update.
30062	//
30063	// Files is a required field
30064	Files []*OTAUpdateFile `locationName:"files" min:"1" type:"list" required:"true"`
30065
30066	// The ID of the OTA update to be created.
30067	//
30068	// OtaUpdateId is a required field
30069	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
30070
30071	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
30072	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
30073	// can choose the protocol.
30074	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
30075
30076	// The IAM role that grants AWS IoT access to the Amazon S3, AWS IoT jobs and
30077	// AWS Code Signing resources to create an OTA update job.
30078	//
30079	// RoleArn is a required field
30080	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
30081
30082	// Metadata which can be used to manage updates.
30083	Tags []*Tag `locationName:"tags" type:"list"`
30084
30085	// Specifies whether the update will continue to run (CONTINUOUS), or will be
30086	// complete after all the things specified as targets have completed the update
30087	// (SNAPSHOT). If continuous, the update may also be run on a thing when a change
30088	// is detected in a target. For example, an update will run on a thing when
30089	// the thing is added to a target group, even after the update was completed
30090	// by all things originally in the group. Valid values: CONTINUOUS | SNAPSHOT.
30091	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
30092
30093	// The devices targeted to receive OTA updates.
30094	//
30095	// Targets is a required field
30096	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
30097}
30098
30099// String returns the string representation
30100func (s CreateOTAUpdateInput) String() string {
30101	return awsutil.Prettify(s)
30102}
30103
30104// GoString returns the string representation
30105func (s CreateOTAUpdateInput) GoString() string {
30106	return s.String()
30107}
30108
30109// Validate inspects the fields of the type to determine if they are valid.
30110func (s *CreateOTAUpdateInput) Validate() error {
30111	invalidParams := request.ErrInvalidParams{Context: "CreateOTAUpdateInput"}
30112	if s.Files == nil {
30113		invalidParams.Add(request.NewErrParamRequired("Files"))
30114	}
30115	if s.Files != nil && len(s.Files) < 1 {
30116		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
30117	}
30118	if s.OtaUpdateId == nil {
30119		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
30120	}
30121	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
30122		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
30123	}
30124	if s.Protocols != nil && len(s.Protocols) < 1 {
30125		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
30126	}
30127	if s.RoleArn == nil {
30128		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
30129	}
30130	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
30131		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
30132	}
30133	if s.Targets == nil {
30134		invalidParams.Add(request.NewErrParamRequired("Targets"))
30135	}
30136	if s.Targets != nil && len(s.Targets) < 1 {
30137		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
30138	}
30139	if s.AwsJobAbortConfig != nil {
30140		if err := s.AwsJobAbortConfig.Validate(); err != nil {
30141			invalidParams.AddNested("AwsJobAbortConfig", err.(request.ErrInvalidParams))
30142		}
30143	}
30144	if s.AwsJobExecutionsRolloutConfig != nil {
30145		if err := s.AwsJobExecutionsRolloutConfig.Validate(); err != nil {
30146			invalidParams.AddNested("AwsJobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
30147		}
30148	}
30149	if s.Files != nil {
30150		for i, v := range s.Files {
30151			if v == nil {
30152				continue
30153			}
30154			if err := v.Validate(); err != nil {
30155				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
30156			}
30157		}
30158	}
30159	if s.Tags != nil {
30160		for i, v := range s.Tags {
30161			if v == nil {
30162				continue
30163			}
30164			if err := v.Validate(); err != nil {
30165				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30166			}
30167		}
30168	}
30169
30170	if invalidParams.Len() > 0 {
30171		return invalidParams
30172	}
30173	return nil
30174}
30175
30176// SetAdditionalParameters sets the AdditionalParameters field's value.
30177func (s *CreateOTAUpdateInput) SetAdditionalParameters(v map[string]*string) *CreateOTAUpdateInput {
30178	s.AdditionalParameters = v
30179	return s
30180}
30181
30182// SetAwsJobAbortConfig sets the AwsJobAbortConfig field's value.
30183func (s *CreateOTAUpdateInput) SetAwsJobAbortConfig(v *AwsJobAbortConfig) *CreateOTAUpdateInput {
30184	s.AwsJobAbortConfig = v
30185	return s
30186}
30187
30188// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
30189func (s *CreateOTAUpdateInput) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *CreateOTAUpdateInput {
30190	s.AwsJobExecutionsRolloutConfig = v
30191	return s
30192}
30193
30194// SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
30195func (s *CreateOTAUpdateInput) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *CreateOTAUpdateInput {
30196	s.AwsJobPresignedUrlConfig = v
30197	return s
30198}
30199
30200// SetAwsJobTimeoutConfig sets the AwsJobTimeoutConfig field's value.
30201func (s *CreateOTAUpdateInput) SetAwsJobTimeoutConfig(v *AwsJobTimeoutConfig) *CreateOTAUpdateInput {
30202	s.AwsJobTimeoutConfig = v
30203	return s
30204}
30205
30206// SetDescription sets the Description field's value.
30207func (s *CreateOTAUpdateInput) SetDescription(v string) *CreateOTAUpdateInput {
30208	s.Description = &v
30209	return s
30210}
30211
30212// SetFiles sets the Files field's value.
30213func (s *CreateOTAUpdateInput) SetFiles(v []*OTAUpdateFile) *CreateOTAUpdateInput {
30214	s.Files = v
30215	return s
30216}
30217
30218// SetOtaUpdateId sets the OtaUpdateId field's value.
30219func (s *CreateOTAUpdateInput) SetOtaUpdateId(v string) *CreateOTAUpdateInput {
30220	s.OtaUpdateId = &v
30221	return s
30222}
30223
30224// SetProtocols sets the Protocols field's value.
30225func (s *CreateOTAUpdateInput) SetProtocols(v []*string) *CreateOTAUpdateInput {
30226	s.Protocols = v
30227	return s
30228}
30229
30230// SetRoleArn sets the RoleArn field's value.
30231func (s *CreateOTAUpdateInput) SetRoleArn(v string) *CreateOTAUpdateInput {
30232	s.RoleArn = &v
30233	return s
30234}
30235
30236// SetTags sets the Tags field's value.
30237func (s *CreateOTAUpdateInput) SetTags(v []*Tag) *CreateOTAUpdateInput {
30238	s.Tags = v
30239	return s
30240}
30241
30242// SetTargetSelection sets the TargetSelection field's value.
30243func (s *CreateOTAUpdateInput) SetTargetSelection(v string) *CreateOTAUpdateInput {
30244	s.TargetSelection = &v
30245	return s
30246}
30247
30248// SetTargets sets the Targets field's value.
30249func (s *CreateOTAUpdateInput) SetTargets(v []*string) *CreateOTAUpdateInput {
30250	s.Targets = v
30251	return s
30252}
30253
30254type CreateOTAUpdateOutput struct {
30255	_ struct{} `type:"structure"`
30256
30257	// The AWS IoT job ARN associated with the OTA update.
30258	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
30259
30260	// The AWS IoT job ID associated with the OTA update.
30261	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
30262
30263	// The OTA update ARN.
30264	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
30265
30266	// The OTA update ID.
30267	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
30268
30269	// The OTA update status.
30270	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
30271}
30272
30273// String returns the string representation
30274func (s CreateOTAUpdateOutput) String() string {
30275	return awsutil.Prettify(s)
30276}
30277
30278// GoString returns the string representation
30279func (s CreateOTAUpdateOutput) GoString() string {
30280	return s.String()
30281}
30282
30283// SetAwsIotJobArn sets the AwsIotJobArn field's value.
30284func (s *CreateOTAUpdateOutput) SetAwsIotJobArn(v string) *CreateOTAUpdateOutput {
30285	s.AwsIotJobArn = &v
30286	return s
30287}
30288
30289// SetAwsIotJobId sets the AwsIotJobId field's value.
30290func (s *CreateOTAUpdateOutput) SetAwsIotJobId(v string) *CreateOTAUpdateOutput {
30291	s.AwsIotJobId = &v
30292	return s
30293}
30294
30295// SetOtaUpdateArn sets the OtaUpdateArn field's value.
30296func (s *CreateOTAUpdateOutput) SetOtaUpdateArn(v string) *CreateOTAUpdateOutput {
30297	s.OtaUpdateArn = &v
30298	return s
30299}
30300
30301// SetOtaUpdateId sets the OtaUpdateId field's value.
30302func (s *CreateOTAUpdateOutput) SetOtaUpdateId(v string) *CreateOTAUpdateOutput {
30303	s.OtaUpdateId = &v
30304	return s
30305}
30306
30307// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
30308func (s *CreateOTAUpdateOutput) SetOtaUpdateStatus(v string) *CreateOTAUpdateOutput {
30309	s.OtaUpdateStatus = &v
30310	return s
30311}
30312
30313// The input for the CreatePolicy operation.
30314type CreatePolicyInput struct {
30315	_ struct{} `type:"structure"`
30316
30317	// The JSON document that describes the policy. policyDocument must have a minimum
30318	// length of 1, with a maximum length of 2048, excluding whitespace.
30319	//
30320	// PolicyDocument is a required field
30321	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
30322
30323	// The policy name.
30324	//
30325	// PolicyName is a required field
30326	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
30327
30328	// Metadata which can be used to manage the policy.
30329	//
30330	// For URI Request parameters use format: ...key1=value1&key2=value2...
30331	//
30332	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
30333	//
30334	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
30335	Tags []*Tag `locationName:"tags" type:"list"`
30336}
30337
30338// String returns the string representation
30339func (s CreatePolicyInput) String() string {
30340	return awsutil.Prettify(s)
30341}
30342
30343// GoString returns the string representation
30344func (s CreatePolicyInput) GoString() string {
30345	return s.String()
30346}
30347
30348// Validate inspects the fields of the type to determine if they are valid.
30349func (s *CreatePolicyInput) Validate() error {
30350	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyInput"}
30351	if s.PolicyDocument == nil {
30352		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
30353	}
30354	if s.PolicyName == nil {
30355		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
30356	}
30357	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
30358		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
30359	}
30360	if s.Tags != nil {
30361		for i, v := range s.Tags {
30362			if v == nil {
30363				continue
30364			}
30365			if err := v.Validate(); err != nil {
30366				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30367			}
30368		}
30369	}
30370
30371	if invalidParams.Len() > 0 {
30372		return invalidParams
30373	}
30374	return nil
30375}
30376
30377// SetPolicyDocument sets the PolicyDocument field's value.
30378func (s *CreatePolicyInput) SetPolicyDocument(v string) *CreatePolicyInput {
30379	s.PolicyDocument = &v
30380	return s
30381}
30382
30383// SetPolicyName sets the PolicyName field's value.
30384func (s *CreatePolicyInput) SetPolicyName(v string) *CreatePolicyInput {
30385	s.PolicyName = &v
30386	return s
30387}
30388
30389// SetTags sets the Tags field's value.
30390func (s *CreatePolicyInput) SetTags(v []*Tag) *CreatePolicyInput {
30391	s.Tags = v
30392	return s
30393}
30394
30395// The output from the CreatePolicy operation.
30396type CreatePolicyOutput struct {
30397	_ struct{} `type:"structure"`
30398
30399	// The policy ARN.
30400	PolicyArn *string `locationName:"policyArn" type:"string"`
30401
30402	// The JSON document that describes the policy.
30403	PolicyDocument *string `locationName:"policyDocument" type:"string"`
30404
30405	// The policy name.
30406	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
30407
30408	// The policy version ID.
30409	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
30410}
30411
30412// String returns the string representation
30413func (s CreatePolicyOutput) String() string {
30414	return awsutil.Prettify(s)
30415}
30416
30417// GoString returns the string representation
30418func (s CreatePolicyOutput) GoString() string {
30419	return s.String()
30420}
30421
30422// SetPolicyArn sets the PolicyArn field's value.
30423func (s *CreatePolicyOutput) SetPolicyArn(v string) *CreatePolicyOutput {
30424	s.PolicyArn = &v
30425	return s
30426}
30427
30428// SetPolicyDocument sets the PolicyDocument field's value.
30429func (s *CreatePolicyOutput) SetPolicyDocument(v string) *CreatePolicyOutput {
30430	s.PolicyDocument = &v
30431	return s
30432}
30433
30434// SetPolicyName sets the PolicyName field's value.
30435func (s *CreatePolicyOutput) SetPolicyName(v string) *CreatePolicyOutput {
30436	s.PolicyName = &v
30437	return s
30438}
30439
30440// SetPolicyVersionId sets the PolicyVersionId field's value.
30441func (s *CreatePolicyOutput) SetPolicyVersionId(v string) *CreatePolicyOutput {
30442	s.PolicyVersionId = &v
30443	return s
30444}
30445
30446// The input for the CreatePolicyVersion operation.
30447type CreatePolicyVersionInput struct {
30448	_ struct{} `type:"structure"`
30449
30450	// The JSON document that describes the policy. Minimum length of 1. Maximum
30451	// length of 2048, excluding whitespace.
30452	//
30453	// PolicyDocument is a required field
30454	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
30455
30456	// The policy name.
30457	//
30458	// PolicyName is a required field
30459	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
30460
30461	// Specifies whether the policy version is set as the default. When this parameter
30462	// is true, the new policy version becomes the operative version (that is, the
30463	// version that is in effect for the certificates to which the policy is attached).
30464	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
30465}
30466
30467// String returns the string representation
30468func (s CreatePolicyVersionInput) String() string {
30469	return awsutil.Prettify(s)
30470}
30471
30472// GoString returns the string representation
30473func (s CreatePolicyVersionInput) GoString() string {
30474	return s.String()
30475}
30476
30477// Validate inspects the fields of the type to determine if they are valid.
30478func (s *CreatePolicyVersionInput) Validate() error {
30479	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyVersionInput"}
30480	if s.PolicyDocument == nil {
30481		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
30482	}
30483	if s.PolicyName == nil {
30484		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
30485	}
30486	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
30487		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
30488	}
30489
30490	if invalidParams.Len() > 0 {
30491		return invalidParams
30492	}
30493	return nil
30494}
30495
30496// SetPolicyDocument sets the PolicyDocument field's value.
30497func (s *CreatePolicyVersionInput) SetPolicyDocument(v string) *CreatePolicyVersionInput {
30498	s.PolicyDocument = &v
30499	return s
30500}
30501
30502// SetPolicyName sets the PolicyName field's value.
30503func (s *CreatePolicyVersionInput) SetPolicyName(v string) *CreatePolicyVersionInput {
30504	s.PolicyName = &v
30505	return s
30506}
30507
30508// SetSetAsDefault sets the SetAsDefault field's value.
30509func (s *CreatePolicyVersionInput) SetSetAsDefault(v bool) *CreatePolicyVersionInput {
30510	s.SetAsDefault = &v
30511	return s
30512}
30513
30514// The output of the CreatePolicyVersion operation.
30515type CreatePolicyVersionOutput struct {
30516	_ struct{} `type:"structure"`
30517
30518	// Specifies whether the policy version is the default.
30519	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
30520
30521	// The policy ARN.
30522	PolicyArn *string `locationName:"policyArn" type:"string"`
30523
30524	// The JSON document that describes the policy.
30525	PolicyDocument *string `locationName:"policyDocument" type:"string"`
30526
30527	// The policy version ID.
30528	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
30529}
30530
30531// String returns the string representation
30532func (s CreatePolicyVersionOutput) String() string {
30533	return awsutil.Prettify(s)
30534}
30535
30536// GoString returns the string representation
30537func (s CreatePolicyVersionOutput) GoString() string {
30538	return s.String()
30539}
30540
30541// SetIsDefaultVersion sets the IsDefaultVersion field's value.
30542func (s *CreatePolicyVersionOutput) SetIsDefaultVersion(v bool) *CreatePolicyVersionOutput {
30543	s.IsDefaultVersion = &v
30544	return s
30545}
30546
30547// SetPolicyArn sets the PolicyArn field's value.
30548func (s *CreatePolicyVersionOutput) SetPolicyArn(v string) *CreatePolicyVersionOutput {
30549	s.PolicyArn = &v
30550	return s
30551}
30552
30553// SetPolicyDocument sets the PolicyDocument field's value.
30554func (s *CreatePolicyVersionOutput) SetPolicyDocument(v string) *CreatePolicyVersionOutput {
30555	s.PolicyDocument = &v
30556	return s
30557}
30558
30559// SetPolicyVersionId sets the PolicyVersionId field's value.
30560func (s *CreatePolicyVersionOutput) SetPolicyVersionId(v string) *CreatePolicyVersionOutput {
30561	s.PolicyVersionId = &v
30562	return s
30563}
30564
30565type CreateProvisioningClaimInput struct {
30566	_ struct{} `type:"structure"`
30567
30568	// The name of the provisioning template to use.
30569	//
30570	// TemplateName is a required field
30571	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
30572}
30573
30574// String returns the string representation
30575func (s CreateProvisioningClaimInput) String() string {
30576	return awsutil.Prettify(s)
30577}
30578
30579// GoString returns the string representation
30580func (s CreateProvisioningClaimInput) GoString() string {
30581	return s.String()
30582}
30583
30584// Validate inspects the fields of the type to determine if they are valid.
30585func (s *CreateProvisioningClaimInput) Validate() error {
30586	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningClaimInput"}
30587	if s.TemplateName == nil {
30588		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
30589	}
30590	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
30591		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
30592	}
30593
30594	if invalidParams.Len() > 0 {
30595		return invalidParams
30596	}
30597	return nil
30598}
30599
30600// SetTemplateName sets the TemplateName field's value.
30601func (s *CreateProvisioningClaimInput) SetTemplateName(v string) *CreateProvisioningClaimInput {
30602	s.TemplateName = &v
30603	return s
30604}
30605
30606type CreateProvisioningClaimOutput struct {
30607	_ struct{} `type:"structure"`
30608
30609	// The ID of the certificate.
30610	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
30611
30612	// The provisioning claim certificate.
30613	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
30614
30615	// The provisioning claim expiration time.
30616	Expiration *time.Time `locationName:"expiration" type:"timestamp"`
30617
30618	// The provisioning claim key pair.
30619	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
30620}
30621
30622// String returns the string representation
30623func (s CreateProvisioningClaimOutput) String() string {
30624	return awsutil.Prettify(s)
30625}
30626
30627// GoString returns the string representation
30628func (s CreateProvisioningClaimOutput) GoString() string {
30629	return s.String()
30630}
30631
30632// SetCertificateId sets the CertificateId field's value.
30633func (s *CreateProvisioningClaimOutput) SetCertificateId(v string) *CreateProvisioningClaimOutput {
30634	s.CertificateId = &v
30635	return s
30636}
30637
30638// SetCertificatePem sets the CertificatePem field's value.
30639func (s *CreateProvisioningClaimOutput) SetCertificatePem(v string) *CreateProvisioningClaimOutput {
30640	s.CertificatePem = &v
30641	return s
30642}
30643
30644// SetExpiration sets the Expiration field's value.
30645func (s *CreateProvisioningClaimOutput) SetExpiration(v time.Time) *CreateProvisioningClaimOutput {
30646	s.Expiration = &v
30647	return s
30648}
30649
30650// SetKeyPair sets the KeyPair field's value.
30651func (s *CreateProvisioningClaimOutput) SetKeyPair(v *KeyPair) *CreateProvisioningClaimOutput {
30652	s.KeyPair = v
30653	return s
30654}
30655
30656type CreateProvisioningTemplateInput struct {
30657	_ struct{} `type:"structure"`
30658
30659	// The description of the fleet provisioning template.
30660	Description *string `locationName:"description" type:"string"`
30661
30662	// True to enable the fleet provisioning template, otherwise false.
30663	Enabled *bool `locationName:"enabled" type:"boolean"`
30664
30665	// Creates a pre-provisioning hook template.
30666	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
30667
30668	// The role ARN for the role associated with the fleet provisioning template.
30669	// This IoT role grants permission to provision a device.
30670	//
30671	// ProvisioningRoleArn is a required field
30672	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string" required:"true"`
30673
30674	// Metadata which can be used to manage the fleet provisioning template.
30675	//
30676	// For URI Request parameters use format: ...key1=value1&key2=value2...
30677	//
30678	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
30679	//
30680	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
30681	Tags []*Tag `locationName:"tags" type:"list"`
30682
30683	// The JSON formatted contents of the fleet provisioning template.
30684	//
30685	// TemplateBody is a required field
30686	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
30687
30688	// The name of the fleet provisioning template.
30689	//
30690	// TemplateName is a required field
30691	TemplateName *string `locationName:"templateName" min:"1" type:"string" required:"true"`
30692}
30693
30694// String returns the string representation
30695func (s CreateProvisioningTemplateInput) String() string {
30696	return awsutil.Prettify(s)
30697}
30698
30699// GoString returns the string representation
30700func (s CreateProvisioningTemplateInput) GoString() string {
30701	return s.String()
30702}
30703
30704// Validate inspects the fields of the type to determine if they are valid.
30705func (s *CreateProvisioningTemplateInput) Validate() error {
30706	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateInput"}
30707	if s.ProvisioningRoleArn == nil {
30708		invalidParams.Add(request.NewErrParamRequired("ProvisioningRoleArn"))
30709	}
30710	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
30711		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
30712	}
30713	if s.TemplateBody == nil {
30714		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
30715	}
30716	if s.TemplateName == nil {
30717		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
30718	}
30719	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
30720		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
30721	}
30722	if s.PreProvisioningHook != nil {
30723		if err := s.PreProvisioningHook.Validate(); err != nil {
30724			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
30725		}
30726	}
30727	if s.Tags != nil {
30728		for i, v := range s.Tags {
30729			if v == nil {
30730				continue
30731			}
30732			if err := v.Validate(); err != nil {
30733				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30734			}
30735		}
30736	}
30737
30738	if invalidParams.Len() > 0 {
30739		return invalidParams
30740	}
30741	return nil
30742}
30743
30744// SetDescription sets the Description field's value.
30745func (s *CreateProvisioningTemplateInput) SetDescription(v string) *CreateProvisioningTemplateInput {
30746	s.Description = &v
30747	return s
30748}
30749
30750// SetEnabled sets the Enabled field's value.
30751func (s *CreateProvisioningTemplateInput) SetEnabled(v bool) *CreateProvisioningTemplateInput {
30752	s.Enabled = &v
30753	return s
30754}
30755
30756// SetPreProvisioningHook sets the PreProvisioningHook field's value.
30757func (s *CreateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *CreateProvisioningTemplateInput {
30758	s.PreProvisioningHook = v
30759	return s
30760}
30761
30762// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
30763func (s *CreateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *CreateProvisioningTemplateInput {
30764	s.ProvisioningRoleArn = &v
30765	return s
30766}
30767
30768// SetTags sets the Tags field's value.
30769func (s *CreateProvisioningTemplateInput) SetTags(v []*Tag) *CreateProvisioningTemplateInput {
30770	s.Tags = v
30771	return s
30772}
30773
30774// SetTemplateBody sets the TemplateBody field's value.
30775func (s *CreateProvisioningTemplateInput) SetTemplateBody(v string) *CreateProvisioningTemplateInput {
30776	s.TemplateBody = &v
30777	return s
30778}
30779
30780// SetTemplateName sets the TemplateName field's value.
30781func (s *CreateProvisioningTemplateInput) SetTemplateName(v string) *CreateProvisioningTemplateInput {
30782	s.TemplateName = &v
30783	return s
30784}
30785
30786type CreateProvisioningTemplateOutput struct {
30787	_ struct{} `type:"structure"`
30788
30789	// The default version of the fleet provisioning template.
30790	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
30791
30792	// The ARN that identifies the provisioning template.
30793	TemplateArn *string `locationName:"templateArn" type:"string"`
30794
30795	// The name of the fleet provisioning template.
30796	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
30797}
30798
30799// String returns the string representation
30800func (s CreateProvisioningTemplateOutput) String() string {
30801	return awsutil.Prettify(s)
30802}
30803
30804// GoString returns the string representation
30805func (s CreateProvisioningTemplateOutput) GoString() string {
30806	return s.String()
30807}
30808
30809// SetDefaultVersionId sets the DefaultVersionId field's value.
30810func (s *CreateProvisioningTemplateOutput) SetDefaultVersionId(v int64) *CreateProvisioningTemplateOutput {
30811	s.DefaultVersionId = &v
30812	return s
30813}
30814
30815// SetTemplateArn sets the TemplateArn field's value.
30816func (s *CreateProvisioningTemplateOutput) SetTemplateArn(v string) *CreateProvisioningTemplateOutput {
30817	s.TemplateArn = &v
30818	return s
30819}
30820
30821// SetTemplateName sets the TemplateName field's value.
30822func (s *CreateProvisioningTemplateOutput) SetTemplateName(v string) *CreateProvisioningTemplateOutput {
30823	s.TemplateName = &v
30824	return s
30825}
30826
30827type CreateProvisioningTemplateVersionInput struct {
30828	_ struct{} `type:"structure"`
30829
30830	// Sets a fleet provision template version as the default version.
30831	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
30832
30833	// The JSON formatted contents of the fleet provisioning template.
30834	//
30835	// TemplateBody is a required field
30836	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
30837
30838	// The name of the fleet provisioning template.
30839	//
30840	// TemplateName is a required field
30841	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
30842}
30843
30844// String returns the string representation
30845func (s CreateProvisioningTemplateVersionInput) String() string {
30846	return awsutil.Prettify(s)
30847}
30848
30849// GoString returns the string representation
30850func (s CreateProvisioningTemplateVersionInput) GoString() string {
30851	return s.String()
30852}
30853
30854// Validate inspects the fields of the type to determine if they are valid.
30855func (s *CreateProvisioningTemplateVersionInput) Validate() error {
30856	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateVersionInput"}
30857	if s.TemplateBody == nil {
30858		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
30859	}
30860	if s.TemplateName == nil {
30861		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
30862	}
30863	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
30864		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
30865	}
30866
30867	if invalidParams.Len() > 0 {
30868		return invalidParams
30869	}
30870	return nil
30871}
30872
30873// SetSetAsDefault sets the SetAsDefault field's value.
30874func (s *CreateProvisioningTemplateVersionInput) SetSetAsDefault(v bool) *CreateProvisioningTemplateVersionInput {
30875	s.SetAsDefault = &v
30876	return s
30877}
30878
30879// SetTemplateBody sets the TemplateBody field's value.
30880func (s *CreateProvisioningTemplateVersionInput) SetTemplateBody(v string) *CreateProvisioningTemplateVersionInput {
30881	s.TemplateBody = &v
30882	return s
30883}
30884
30885// SetTemplateName sets the TemplateName field's value.
30886func (s *CreateProvisioningTemplateVersionInput) SetTemplateName(v string) *CreateProvisioningTemplateVersionInput {
30887	s.TemplateName = &v
30888	return s
30889}
30890
30891type CreateProvisioningTemplateVersionOutput struct {
30892	_ struct{} `type:"structure"`
30893
30894	// True if the fleet provisioning template version is the default version, otherwise
30895	// false.
30896	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
30897
30898	// The ARN that identifies the provisioning template.
30899	TemplateArn *string `locationName:"templateArn" type:"string"`
30900
30901	// The name of the fleet provisioning template.
30902	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
30903
30904	// The version of the fleet provisioning template.
30905	VersionId *int64 `locationName:"versionId" type:"integer"`
30906}
30907
30908// String returns the string representation
30909func (s CreateProvisioningTemplateVersionOutput) String() string {
30910	return awsutil.Prettify(s)
30911}
30912
30913// GoString returns the string representation
30914func (s CreateProvisioningTemplateVersionOutput) GoString() string {
30915	return s.String()
30916}
30917
30918// SetIsDefaultVersion sets the IsDefaultVersion field's value.
30919func (s *CreateProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *CreateProvisioningTemplateVersionOutput {
30920	s.IsDefaultVersion = &v
30921	return s
30922}
30923
30924// SetTemplateArn sets the TemplateArn field's value.
30925func (s *CreateProvisioningTemplateVersionOutput) SetTemplateArn(v string) *CreateProvisioningTemplateVersionOutput {
30926	s.TemplateArn = &v
30927	return s
30928}
30929
30930// SetTemplateName sets the TemplateName field's value.
30931func (s *CreateProvisioningTemplateVersionOutput) SetTemplateName(v string) *CreateProvisioningTemplateVersionOutput {
30932	s.TemplateName = &v
30933	return s
30934}
30935
30936// SetVersionId sets the VersionId field's value.
30937func (s *CreateProvisioningTemplateVersionOutput) SetVersionId(v int64) *CreateProvisioningTemplateVersionOutput {
30938	s.VersionId = &v
30939	return s
30940}
30941
30942type CreateRoleAliasInput struct {
30943	_ struct{} `type:"structure"`
30944
30945	// How long (in seconds) the credentials will be valid.
30946	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
30947
30948	// The role alias that points to a role ARN. This allows you to change the role
30949	// without having to update the device.
30950	//
30951	// RoleAlias is a required field
30952	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
30953
30954	// The role ARN.
30955	//
30956	// RoleArn is a required field
30957	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
30958
30959	// Metadata which can be used to manage the role alias.
30960	//
30961	// For URI Request parameters use format: ...key1=value1&key2=value2...
30962	//
30963	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
30964	//
30965	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
30966	Tags []*Tag `locationName:"tags" type:"list"`
30967}
30968
30969// String returns the string representation
30970func (s CreateRoleAliasInput) String() string {
30971	return awsutil.Prettify(s)
30972}
30973
30974// GoString returns the string representation
30975func (s CreateRoleAliasInput) GoString() string {
30976	return s.String()
30977}
30978
30979// Validate inspects the fields of the type to determine if they are valid.
30980func (s *CreateRoleAliasInput) Validate() error {
30981	invalidParams := request.ErrInvalidParams{Context: "CreateRoleAliasInput"}
30982	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
30983		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
30984	}
30985	if s.RoleAlias == nil {
30986		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
30987	}
30988	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
30989		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
30990	}
30991	if s.RoleArn == nil {
30992		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
30993	}
30994	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
30995		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
30996	}
30997	if s.Tags != nil {
30998		for i, v := range s.Tags {
30999			if v == nil {
31000				continue
31001			}
31002			if err := v.Validate(); err != nil {
31003				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31004			}
31005		}
31006	}
31007
31008	if invalidParams.Len() > 0 {
31009		return invalidParams
31010	}
31011	return nil
31012}
31013
31014// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
31015func (s *CreateRoleAliasInput) SetCredentialDurationSeconds(v int64) *CreateRoleAliasInput {
31016	s.CredentialDurationSeconds = &v
31017	return s
31018}
31019
31020// SetRoleAlias sets the RoleAlias field's value.
31021func (s *CreateRoleAliasInput) SetRoleAlias(v string) *CreateRoleAliasInput {
31022	s.RoleAlias = &v
31023	return s
31024}
31025
31026// SetRoleArn sets the RoleArn field's value.
31027func (s *CreateRoleAliasInput) SetRoleArn(v string) *CreateRoleAliasInput {
31028	s.RoleArn = &v
31029	return s
31030}
31031
31032// SetTags sets the Tags field's value.
31033func (s *CreateRoleAliasInput) SetTags(v []*Tag) *CreateRoleAliasInput {
31034	s.Tags = v
31035	return s
31036}
31037
31038type CreateRoleAliasOutput struct {
31039	_ struct{} `type:"structure"`
31040
31041	// The role alias.
31042	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
31043
31044	// The role alias ARN.
31045	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
31046}
31047
31048// String returns the string representation
31049func (s CreateRoleAliasOutput) String() string {
31050	return awsutil.Prettify(s)
31051}
31052
31053// GoString returns the string representation
31054func (s CreateRoleAliasOutput) GoString() string {
31055	return s.String()
31056}
31057
31058// SetRoleAlias sets the RoleAlias field's value.
31059func (s *CreateRoleAliasOutput) SetRoleAlias(v string) *CreateRoleAliasOutput {
31060	s.RoleAlias = &v
31061	return s
31062}
31063
31064// SetRoleAliasArn sets the RoleAliasArn field's value.
31065func (s *CreateRoleAliasOutput) SetRoleAliasArn(v string) *CreateRoleAliasOutput {
31066	s.RoleAliasArn = &v
31067	return s
31068}
31069
31070type CreateScheduledAuditInput struct {
31071	_ struct{} `type:"structure"`
31072
31073	// The day of the month on which the scheduled audit takes place. This can be
31074	// "1" through "31" or "LAST". This field is required if the "frequency" parameter
31075	// is set to MONTHLY. If days 29 to 31 are specified, and the month doesn't
31076	// have that many days, the audit takes place on the LAST day of the month.
31077	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
31078
31079	// The day of the week on which the scheduled audit takes place, either SUN,
31080	// MON, TUE, WED, THU, FRI, or SAT. This field is required if the frequency
31081	// parameter is set to WEEKLY or BIWEEKLY.
31082	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
31083
31084	// How often the scheduled audit takes place, either DAILY, WEEKLY, BIWEEKLY
31085	// or MONTHLY. The start time of each audit is determined by the system.
31086	//
31087	// Frequency is a required field
31088	Frequency *string `locationName:"frequency" type:"string" required:"true" enum:"AuditFrequency"`
31089
31090	// The name you want to give to the scheduled audit. (Max. 128 chars)
31091	//
31092	// ScheduledAuditName is a required field
31093	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
31094
31095	// Metadata that can be used to manage the scheduled audit.
31096	Tags []*Tag `locationName:"tags" type:"list"`
31097
31098	// Which checks are performed during the scheduled audit. Checks must be enabled
31099	// for your account. (Use DescribeAccountAuditConfiguration to see the list
31100	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
31101	// to select which checks are enabled.)
31102	//
31103	// TargetCheckNames is a required field
31104	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
31105}
31106
31107// String returns the string representation
31108func (s CreateScheduledAuditInput) String() string {
31109	return awsutil.Prettify(s)
31110}
31111
31112// GoString returns the string representation
31113func (s CreateScheduledAuditInput) GoString() string {
31114	return s.String()
31115}
31116
31117// Validate inspects the fields of the type to determine if they are valid.
31118func (s *CreateScheduledAuditInput) Validate() error {
31119	invalidParams := request.ErrInvalidParams{Context: "CreateScheduledAuditInput"}
31120	if s.Frequency == nil {
31121		invalidParams.Add(request.NewErrParamRequired("Frequency"))
31122	}
31123	if s.ScheduledAuditName == nil {
31124		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
31125	}
31126	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
31127		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
31128	}
31129	if s.TargetCheckNames == nil {
31130		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
31131	}
31132	if s.Tags != nil {
31133		for i, v := range s.Tags {
31134			if v == nil {
31135				continue
31136			}
31137			if err := v.Validate(); err != nil {
31138				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31139			}
31140		}
31141	}
31142
31143	if invalidParams.Len() > 0 {
31144		return invalidParams
31145	}
31146	return nil
31147}
31148
31149// SetDayOfMonth sets the DayOfMonth field's value.
31150func (s *CreateScheduledAuditInput) SetDayOfMonth(v string) *CreateScheduledAuditInput {
31151	s.DayOfMonth = &v
31152	return s
31153}
31154
31155// SetDayOfWeek sets the DayOfWeek field's value.
31156func (s *CreateScheduledAuditInput) SetDayOfWeek(v string) *CreateScheduledAuditInput {
31157	s.DayOfWeek = &v
31158	return s
31159}
31160
31161// SetFrequency sets the Frequency field's value.
31162func (s *CreateScheduledAuditInput) SetFrequency(v string) *CreateScheduledAuditInput {
31163	s.Frequency = &v
31164	return s
31165}
31166
31167// SetScheduledAuditName sets the ScheduledAuditName field's value.
31168func (s *CreateScheduledAuditInput) SetScheduledAuditName(v string) *CreateScheduledAuditInput {
31169	s.ScheduledAuditName = &v
31170	return s
31171}
31172
31173// SetTags sets the Tags field's value.
31174func (s *CreateScheduledAuditInput) SetTags(v []*Tag) *CreateScheduledAuditInput {
31175	s.Tags = v
31176	return s
31177}
31178
31179// SetTargetCheckNames sets the TargetCheckNames field's value.
31180func (s *CreateScheduledAuditInput) SetTargetCheckNames(v []*string) *CreateScheduledAuditInput {
31181	s.TargetCheckNames = v
31182	return s
31183}
31184
31185type CreateScheduledAuditOutput struct {
31186	_ struct{} `type:"structure"`
31187
31188	// The ARN of the scheduled audit.
31189	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
31190}
31191
31192// String returns the string representation
31193func (s CreateScheduledAuditOutput) String() string {
31194	return awsutil.Prettify(s)
31195}
31196
31197// GoString returns the string representation
31198func (s CreateScheduledAuditOutput) GoString() string {
31199	return s.String()
31200}
31201
31202// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
31203func (s *CreateScheduledAuditOutput) SetScheduledAuditArn(v string) *CreateScheduledAuditOutput {
31204	s.ScheduledAuditArn = &v
31205	return s
31206}
31207
31208type CreateSecurityProfileInput struct {
31209	_ struct{} `type:"structure"`
31210
31211	// Please use CreateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
31212	//
31213	// A list of metrics whose data is retained (stored). By default, data is retained
31214	// for any metric used in the profile's behaviors, but it is also retained for
31215	// any metric specified here. Can be used with custom metrics; cannot be used
31216	// with dimensions.
31217	//
31218	// Deprecated: Use additionalMetricsToRetainV2.
31219	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
31220
31221	// A list of metrics whose data is retained (stored). By default, data is retained
31222	// for any metric used in the profile's behaviors, but it is also retained for
31223	// any metric specified here. Can be used with custom metrics; cannot be used
31224	// with dimensions.
31225	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
31226
31227	// Specifies the destinations to which alerts are sent. (Alerts are always sent
31228	// to the console.) Alerts are generated when a device (thing) violates a behavior.
31229	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
31230
31231	// Specifies the behaviors that, when violated by a device (thing), cause an
31232	// alert.
31233	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
31234
31235	// A description of the security profile.
31236	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
31237
31238	// The name you are giving to the security profile.
31239	//
31240	// SecurityProfileName is a required field
31241	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
31242
31243	// Metadata that can be used to manage the security profile.
31244	Tags []*Tag `locationName:"tags" type:"list"`
31245}
31246
31247// String returns the string representation
31248func (s CreateSecurityProfileInput) String() string {
31249	return awsutil.Prettify(s)
31250}
31251
31252// GoString returns the string representation
31253func (s CreateSecurityProfileInput) GoString() string {
31254	return s.String()
31255}
31256
31257// Validate inspects the fields of the type to determine if they are valid.
31258func (s *CreateSecurityProfileInput) Validate() error {
31259	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityProfileInput"}
31260	if s.SecurityProfileName == nil {
31261		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
31262	}
31263	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
31264		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
31265	}
31266	if s.AdditionalMetricsToRetainV2 != nil {
31267		for i, v := range s.AdditionalMetricsToRetainV2 {
31268			if v == nil {
31269				continue
31270			}
31271			if err := v.Validate(); err != nil {
31272				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
31273			}
31274		}
31275	}
31276	if s.AlertTargets != nil {
31277		for i, v := range s.AlertTargets {
31278			if v == nil {
31279				continue
31280			}
31281			if err := v.Validate(); err != nil {
31282				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
31283			}
31284		}
31285	}
31286	if s.Behaviors != nil {
31287		for i, v := range s.Behaviors {
31288			if v == nil {
31289				continue
31290			}
31291			if err := v.Validate(); err != nil {
31292				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
31293			}
31294		}
31295	}
31296	if s.Tags != nil {
31297		for i, v := range s.Tags {
31298			if v == nil {
31299				continue
31300			}
31301			if err := v.Validate(); err != nil {
31302				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31303			}
31304		}
31305	}
31306
31307	if invalidParams.Len() > 0 {
31308		return invalidParams
31309	}
31310	return nil
31311}
31312
31313// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
31314func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *CreateSecurityProfileInput {
31315	s.AdditionalMetricsToRetain = v
31316	return s
31317}
31318
31319// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
31320func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *CreateSecurityProfileInput {
31321	s.AdditionalMetricsToRetainV2 = v
31322	return s
31323}
31324
31325// SetAlertTargets sets the AlertTargets field's value.
31326func (s *CreateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *CreateSecurityProfileInput {
31327	s.AlertTargets = v
31328	return s
31329}
31330
31331// SetBehaviors sets the Behaviors field's value.
31332func (s *CreateSecurityProfileInput) SetBehaviors(v []*Behavior) *CreateSecurityProfileInput {
31333	s.Behaviors = v
31334	return s
31335}
31336
31337// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
31338func (s *CreateSecurityProfileInput) SetSecurityProfileDescription(v string) *CreateSecurityProfileInput {
31339	s.SecurityProfileDescription = &v
31340	return s
31341}
31342
31343// SetSecurityProfileName sets the SecurityProfileName field's value.
31344func (s *CreateSecurityProfileInput) SetSecurityProfileName(v string) *CreateSecurityProfileInput {
31345	s.SecurityProfileName = &v
31346	return s
31347}
31348
31349// SetTags sets the Tags field's value.
31350func (s *CreateSecurityProfileInput) SetTags(v []*Tag) *CreateSecurityProfileInput {
31351	s.Tags = v
31352	return s
31353}
31354
31355type CreateSecurityProfileOutput struct {
31356	_ struct{} `type:"structure"`
31357
31358	// The ARN of the security profile.
31359	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
31360
31361	// The name you gave to the security profile.
31362	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
31363}
31364
31365// String returns the string representation
31366func (s CreateSecurityProfileOutput) String() string {
31367	return awsutil.Prettify(s)
31368}
31369
31370// GoString returns the string representation
31371func (s CreateSecurityProfileOutput) GoString() string {
31372	return s.String()
31373}
31374
31375// SetSecurityProfileArn sets the SecurityProfileArn field's value.
31376func (s *CreateSecurityProfileOutput) SetSecurityProfileArn(v string) *CreateSecurityProfileOutput {
31377	s.SecurityProfileArn = &v
31378	return s
31379}
31380
31381// SetSecurityProfileName sets the SecurityProfileName field's value.
31382func (s *CreateSecurityProfileOutput) SetSecurityProfileName(v string) *CreateSecurityProfileOutput {
31383	s.SecurityProfileName = &v
31384	return s
31385}
31386
31387type CreateStreamInput struct {
31388	_ struct{} `type:"structure"`
31389
31390	// A description of the stream.
31391	Description *string `locationName:"description" type:"string"`
31392
31393	// The files to stream.
31394	//
31395	// Files is a required field
31396	Files []*StreamFile `locationName:"files" min:"1" type:"list" required:"true"`
31397
31398	// An IAM role that allows the IoT service principal assumes to access your
31399	// S3 files.
31400	//
31401	// RoleArn is a required field
31402	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
31403
31404	// The stream ID.
31405	//
31406	// StreamId is a required field
31407	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
31408
31409	// Metadata which can be used to manage streams.
31410	Tags []*Tag `locationName:"tags" type:"list"`
31411}
31412
31413// String returns the string representation
31414func (s CreateStreamInput) String() string {
31415	return awsutil.Prettify(s)
31416}
31417
31418// GoString returns the string representation
31419func (s CreateStreamInput) GoString() string {
31420	return s.String()
31421}
31422
31423// Validate inspects the fields of the type to determine if they are valid.
31424func (s *CreateStreamInput) Validate() error {
31425	invalidParams := request.ErrInvalidParams{Context: "CreateStreamInput"}
31426	if s.Files == nil {
31427		invalidParams.Add(request.NewErrParamRequired("Files"))
31428	}
31429	if s.Files != nil && len(s.Files) < 1 {
31430		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
31431	}
31432	if s.RoleArn == nil {
31433		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
31434	}
31435	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
31436		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
31437	}
31438	if s.StreamId == nil {
31439		invalidParams.Add(request.NewErrParamRequired("StreamId"))
31440	}
31441	if s.StreamId != nil && len(*s.StreamId) < 1 {
31442		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
31443	}
31444	if s.Files != nil {
31445		for i, v := range s.Files {
31446			if v == nil {
31447				continue
31448			}
31449			if err := v.Validate(); err != nil {
31450				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
31451			}
31452		}
31453	}
31454	if s.Tags != nil {
31455		for i, v := range s.Tags {
31456			if v == nil {
31457				continue
31458			}
31459			if err := v.Validate(); err != nil {
31460				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31461			}
31462		}
31463	}
31464
31465	if invalidParams.Len() > 0 {
31466		return invalidParams
31467	}
31468	return nil
31469}
31470
31471// SetDescription sets the Description field's value.
31472func (s *CreateStreamInput) SetDescription(v string) *CreateStreamInput {
31473	s.Description = &v
31474	return s
31475}
31476
31477// SetFiles sets the Files field's value.
31478func (s *CreateStreamInput) SetFiles(v []*StreamFile) *CreateStreamInput {
31479	s.Files = v
31480	return s
31481}
31482
31483// SetRoleArn sets the RoleArn field's value.
31484func (s *CreateStreamInput) SetRoleArn(v string) *CreateStreamInput {
31485	s.RoleArn = &v
31486	return s
31487}
31488
31489// SetStreamId sets the StreamId field's value.
31490func (s *CreateStreamInput) SetStreamId(v string) *CreateStreamInput {
31491	s.StreamId = &v
31492	return s
31493}
31494
31495// SetTags sets the Tags field's value.
31496func (s *CreateStreamInput) SetTags(v []*Tag) *CreateStreamInput {
31497	s.Tags = v
31498	return s
31499}
31500
31501type CreateStreamOutput struct {
31502	_ struct{} `type:"structure"`
31503
31504	// A description of the stream.
31505	Description *string `locationName:"description" type:"string"`
31506
31507	// The stream ARN.
31508	StreamArn *string `locationName:"streamArn" type:"string"`
31509
31510	// The stream ID.
31511	StreamId *string `locationName:"streamId" min:"1" type:"string"`
31512
31513	// The version of the stream.
31514	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
31515}
31516
31517// String returns the string representation
31518func (s CreateStreamOutput) String() string {
31519	return awsutil.Prettify(s)
31520}
31521
31522// GoString returns the string representation
31523func (s CreateStreamOutput) GoString() string {
31524	return s.String()
31525}
31526
31527// SetDescription sets the Description field's value.
31528func (s *CreateStreamOutput) SetDescription(v string) *CreateStreamOutput {
31529	s.Description = &v
31530	return s
31531}
31532
31533// SetStreamArn sets the StreamArn field's value.
31534func (s *CreateStreamOutput) SetStreamArn(v string) *CreateStreamOutput {
31535	s.StreamArn = &v
31536	return s
31537}
31538
31539// SetStreamId sets the StreamId field's value.
31540func (s *CreateStreamOutput) SetStreamId(v string) *CreateStreamOutput {
31541	s.StreamId = &v
31542	return s
31543}
31544
31545// SetStreamVersion sets the StreamVersion field's value.
31546func (s *CreateStreamOutput) SetStreamVersion(v int64) *CreateStreamOutput {
31547	s.StreamVersion = &v
31548	return s
31549}
31550
31551type CreateThingGroupInput struct {
31552	_ struct{} `type:"structure"`
31553
31554	// The name of the parent thing group.
31555	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
31556
31557	// Metadata which can be used to manage the thing group.
31558	Tags []*Tag `locationName:"tags" type:"list"`
31559
31560	// The thing group name to create.
31561	//
31562	// ThingGroupName is a required field
31563	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
31564
31565	// The thing group properties.
31566	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
31567}
31568
31569// String returns the string representation
31570func (s CreateThingGroupInput) String() string {
31571	return awsutil.Prettify(s)
31572}
31573
31574// GoString returns the string representation
31575func (s CreateThingGroupInput) GoString() string {
31576	return s.String()
31577}
31578
31579// Validate inspects the fields of the type to determine if they are valid.
31580func (s *CreateThingGroupInput) Validate() error {
31581	invalidParams := request.ErrInvalidParams{Context: "CreateThingGroupInput"}
31582	if s.ParentGroupName != nil && len(*s.ParentGroupName) < 1 {
31583		invalidParams.Add(request.NewErrParamMinLen("ParentGroupName", 1))
31584	}
31585	if s.ThingGroupName == nil {
31586		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
31587	}
31588	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
31589		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
31590	}
31591	if s.Tags != nil {
31592		for i, v := range s.Tags {
31593			if v == nil {
31594				continue
31595			}
31596			if err := v.Validate(); err != nil {
31597				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31598			}
31599		}
31600	}
31601
31602	if invalidParams.Len() > 0 {
31603		return invalidParams
31604	}
31605	return nil
31606}
31607
31608// SetParentGroupName sets the ParentGroupName field's value.
31609func (s *CreateThingGroupInput) SetParentGroupName(v string) *CreateThingGroupInput {
31610	s.ParentGroupName = &v
31611	return s
31612}
31613
31614// SetTags sets the Tags field's value.
31615func (s *CreateThingGroupInput) SetTags(v []*Tag) *CreateThingGroupInput {
31616	s.Tags = v
31617	return s
31618}
31619
31620// SetThingGroupName sets the ThingGroupName field's value.
31621func (s *CreateThingGroupInput) SetThingGroupName(v string) *CreateThingGroupInput {
31622	s.ThingGroupName = &v
31623	return s
31624}
31625
31626// SetThingGroupProperties sets the ThingGroupProperties field's value.
31627func (s *CreateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateThingGroupInput {
31628	s.ThingGroupProperties = v
31629	return s
31630}
31631
31632type CreateThingGroupOutput struct {
31633	_ struct{} `type:"structure"`
31634
31635	// The thing group ARN.
31636	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
31637
31638	// The thing group ID.
31639	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
31640
31641	// The thing group name.
31642	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
31643}
31644
31645// String returns the string representation
31646func (s CreateThingGroupOutput) String() string {
31647	return awsutil.Prettify(s)
31648}
31649
31650// GoString returns the string representation
31651func (s CreateThingGroupOutput) GoString() string {
31652	return s.String()
31653}
31654
31655// SetThingGroupArn sets the ThingGroupArn field's value.
31656func (s *CreateThingGroupOutput) SetThingGroupArn(v string) *CreateThingGroupOutput {
31657	s.ThingGroupArn = &v
31658	return s
31659}
31660
31661// SetThingGroupId sets the ThingGroupId field's value.
31662func (s *CreateThingGroupOutput) SetThingGroupId(v string) *CreateThingGroupOutput {
31663	s.ThingGroupId = &v
31664	return s
31665}
31666
31667// SetThingGroupName sets the ThingGroupName field's value.
31668func (s *CreateThingGroupOutput) SetThingGroupName(v string) *CreateThingGroupOutput {
31669	s.ThingGroupName = &v
31670	return s
31671}
31672
31673// The input for the CreateThing operation.
31674type CreateThingInput struct {
31675	_ struct{} `type:"structure"`
31676
31677	// The attribute payload, which consists of up to three name/value pairs in
31678	// a JSON document. For example:
31679	//
31680	// {\"attributes\":{\"string1\":\"string2\"}}
31681	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
31682
31683	// The name of the billing group the thing will be added to.
31684	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
31685
31686	// The name of the thing to create.
31687	//
31688	// You can't change a thing's name after you create it. To change a thing's
31689	// name, you must create a new thing, give it the new name, and then delete
31690	// the old thing.
31691	//
31692	// ThingName is a required field
31693	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
31694
31695	// The name of the thing type associated with the new thing.
31696	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
31697}
31698
31699// String returns the string representation
31700func (s CreateThingInput) String() string {
31701	return awsutil.Prettify(s)
31702}
31703
31704// GoString returns the string representation
31705func (s CreateThingInput) GoString() string {
31706	return s.String()
31707}
31708
31709// Validate inspects the fields of the type to determine if they are valid.
31710func (s *CreateThingInput) Validate() error {
31711	invalidParams := request.ErrInvalidParams{Context: "CreateThingInput"}
31712	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
31713		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
31714	}
31715	if s.ThingName == nil {
31716		invalidParams.Add(request.NewErrParamRequired("ThingName"))
31717	}
31718	if s.ThingName != nil && len(*s.ThingName) < 1 {
31719		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
31720	}
31721	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
31722		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
31723	}
31724
31725	if invalidParams.Len() > 0 {
31726		return invalidParams
31727	}
31728	return nil
31729}
31730
31731// SetAttributePayload sets the AttributePayload field's value.
31732func (s *CreateThingInput) SetAttributePayload(v *AttributePayload) *CreateThingInput {
31733	s.AttributePayload = v
31734	return s
31735}
31736
31737// SetBillingGroupName sets the BillingGroupName field's value.
31738func (s *CreateThingInput) SetBillingGroupName(v string) *CreateThingInput {
31739	s.BillingGroupName = &v
31740	return s
31741}
31742
31743// SetThingName sets the ThingName field's value.
31744func (s *CreateThingInput) SetThingName(v string) *CreateThingInput {
31745	s.ThingName = &v
31746	return s
31747}
31748
31749// SetThingTypeName sets the ThingTypeName field's value.
31750func (s *CreateThingInput) SetThingTypeName(v string) *CreateThingInput {
31751	s.ThingTypeName = &v
31752	return s
31753}
31754
31755// The output of the CreateThing operation.
31756type CreateThingOutput struct {
31757	_ struct{} `type:"structure"`
31758
31759	// The ARN of the new thing.
31760	ThingArn *string `locationName:"thingArn" type:"string"`
31761
31762	// The thing ID.
31763	ThingId *string `locationName:"thingId" type:"string"`
31764
31765	// The name of the new thing.
31766	ThingName *string `locationName:"thingName" min:"1" type:"string"`
31767}
31768
31769// String returns the string representation
31770func (s CreateThingOutput) String() string {
31771	return awsutil.Prettify(s)
31772}
31773
31774// GoString returns the string representation
31775func (s CreateThingOutput) GoString() string {
31776	return s.String()
31777}
31778
31779// SetThingArn sets the ThingArn field's value.
31780func (s *CreateThingOutput) SetThingArn(v string) *CreateThingOutput {
31781	s.ThingArn = &v
31782	return s
31783}
31784
31785// SetThingId sets the ThingId field's value.
31786func (s *CreateThingOutput) SetThingId(v string) *CreateThingOutput {
31787	s.ThingId = &v
31788	return s
31789}
31790
31791// SetThingName sets the ThingName field's value.
31792func (s *CreateThingOutput) SetThingName(v string) *CreateThingOutput {
31793	s.ThingName = &v
31794	return s
31795}
31796
31797// The input for the CreateThingType operation.
31798type CreateThingTypeInput struct {
31799	_ struct{} `type:"structure"`
31800
31801	// Metadata which can be used to manage the thing type.
31802	Tags []*Tag `locationName:"tags" type:"list"`
31803
31804	// The name of the thing type.
31805	//
31806	// ThingTypeName is a required field
31807	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
31808
31809	// The ThingTypeProperties for the thing type to create. It contains information
31810	// about the new thing type including a description, and a list of searchable
31811	// thing attribute names.
31812	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
31813}
31814
31815// String returns the string representation
31816func (s CreateThingTypeInput) String() string {
31817	return awsutil.Prettify(s)
31818}
31819
31820// GoString returns the string representation
31821func (s CreateThingTypeInput) GoString() string {
31822	return s.String()
31823}
31824
31825// Validate inspects the fields of the type to determine if they are valid.
31826func (s *CreateThingTypeInput) Validate() error {
31827	invalidParams := request.ErrInvalidParams{Context: "CreateThingTypeInput"}
31828	if s.ThingTypeName == nil {
31829		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
31830	}
31831	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
31832		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
31833	}
31834	if s.Tags != nil {
31835		for i, v := range s.Tags {
31836			if v == nil {
31837				continue
31838			}
31839			if err := v.Validate(); err != nil {
31840				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31841			}
31842		}
31843	}
31844
31845	if invalidParams.Len() > 0 {
31846		return invalidParams
31847	}
31848	return nil
31849}
31850
31851// SetTags sets the Tags field's value.
31852func (s *CreateThingTypeInput) SetTags(v []*Tag) *CreateThingTypeInput {
31853	s.Tags = v
31854	return s
31855}
31856
31857// SetThingTypeName sets the ThingTypeName field's value.
31858func (s *CreateThingTypeInput) SetThingTypeName(v string) *CreateThingTypeInput {
31859	s.ThingTypeName = &v
31860	return s
31861}
31862
31863// SetThingTypeProperties sets the ThingTypeProperties field's value.
31864func (s *CreateThingTypeInput) SetThingTypeProperties(v *ThingTypeProperties) *CreateThingTypeInput {
31865	s.ThingTypeProperties = v
31866	return s
31867}
31868
31869// The output of the CreateThingType operation.
31870type CreateThingTypeOutput struct {
31871	_ struct{} `type:"structure"`
31872
31873	// The Amazon Resource Name (ARN) of the thing type.
31874	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
31875
31876	// The thing type ID.
31877	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
31878
31879	// The name of the thing type.
31880	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
31881}
31882
31883// String returns the string representation
31884func (s CreateThingTypeOutput) String() string {
31885	return awsutil.Prettify(s)
31886}
31887
31888// GoString returns the string representation
31889func (s CreateThingTypeOutput) GoString() string {
31890	return s.String()
31891}
31892
31893// SetThingTypeArn sets the ThingTypeArn field's value.
31894func (s *CreateThingTypeOutput) SetThingTypeArn(v string) *CreateThingTypeOutput {
31895	s.ThingTypeArn = &v
31896	return s
31897}
31898
31899// SetThingTypeId sets the ThingTypeId field's value.
31900func (s *CreateThingTypeOutput) SetThingTypeId(v string) *CreateThingTypeOutput {
31901	s.ThingTypeId = &v
31902	return s
31903}
31904
31905// SetThingTypeName sets the ThingTypeName field's value.
31906func (s *CreateThingTypeOutput) SetThingTypeName(v string) *CreateThingTypeOutput {
31907	s.ThingTypeName = &v
31908	return s
31909}
31910
31911type CreateTopicRuleDestinationInput struct {
31912	_ struct{} `type:"structure"`
31913
31914	// The topic rule destination configuration.
31915	//
31916	// DestinationConfiguration is a required field
31917	DestinationConfiguration *TopicRuleDestinationConfiguration `locationName:"destinationConfiguration" type:"structure" required:"true"`
31918}
31919
31920// String returns the string representation
31921func (s CreateTopicRuleDestinationInput) String() string {
31922	return awsutil.Prettify(s)
31923}
31924
31925// GoString returns the string representation
31926func (s CreateTopicRuleDestinationInput) GoString() string {
31927	return s.String()
31928}
31929
31930// Validate inspects the fields of the type to determine if they are valid.
31931func (s *CreateTopicRuleDestinationInput) Validate() error {
31932	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleDestinationInput"}
31933	if s.DestinationConfiguration == nil {
31934		invalidParams.Add(request.NewErrParamRequired("DestinationConfiguration"))
31935	}
31936	if s.DestinationConfiguration != nil {
31937		if err := s.DestinationConfiguration.Validate(); err != nil {
31938			invalidParams.AddNested("DestinationConfiguration", err.(request.ErrInvalidParams))
31939		}
31940	}
31941
31942	if invalidParams.Len() > 0 {
31943		return invalidParams
31944	}
31945	return nil
31946}
31947
31948// SetDestinationConfiguration sets the DestinationConfiguration field's value.
31949func (s *CreateTopicRuleDestinationInput) SetDestinationConfiguration(v *TopicRuleDestinationConfiguration) *CreateTopicRuleDestinationInput {
31950	s.DestinationConfiguration = v
31951	return s
31952}
31953
31954type CreateTopicRuleDestinationOutput struct {
31955	_ struct{} `type:"structure"`
31956
31957	// The topic rule destination.
31958	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
31959}
31960
31961// String returns the string representation
31962func (s CreateTopicRuleDestinationOutput) String() string {
31963	return awsutil.Prettify(s)
31964}
31965
31966// GoString returns the string representation
31967func (s CreateTopicRuleDestinationOutput) GoString() string {
31968	return s.String()
31969}
31970
31971// SetTopicRuleDestination sets the TopicRuleDestination field's value.
31972func (s *CreateTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *CreateTopicRuleDestinationOutput {
31973	s.TopicRuleDestination = v
31974	return s
31975}
31976
31977// The input for the CreateTopicRule operation.
31978type CreateTopicRuleInput struct {
31979	_ struct{} `type:"structure" payload:"TopicRulePayload"`
31980
31981	// The name of the rule.
31982	//
31983	// RuleName is a required field
31984	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
31985
31986	// Metadata which can be used to manage the topic rule.
31987	//
31988	// For URI Request parameters use format: ...key1=value1&key2=value2...
31989	//
31990	// For the CLI command-line parameter use format: --tags "key1=value1&key2=value2..."
31991	//
31992	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
31993	Tags *string `location:"header" locationName:"x-amz-tagging" type:"string"`
31994
31995	// The rule payload.
31996	//
31997	// TopicRulePayload is a required field
31998	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
31999}
32000
32001// String returns the string representation
32002func (s CreateTopicRuleInput) String() string {
32003	return awsutil.Prettify(s)
32004}
32005
32006// GoString returns the string representation
32007func (s CreateTopicRuleInput) GoString() string {
32008	return s.String()
32009}
32010
32011// Validate inspects the fields of the type to determine if they are valid.
32012func (s *CreateTopicRuleInput) Validate() error {
32013	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleInput"}
32014	if s.RuleName == nil {
32015		invalidParams.Add(request.NewErrParamRequired("RuleName"))
32016	}
32017	if s.RuleName != nil && len(*s.RuleName) < 1 {
32018		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
32019	}
32020	if s.TopicRulePayload == nil {
32021		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
32022	}
32023	if s.TopicRulePayload != nil {
32024		if err := s.TopicRulePayload.Validate(); err != nil {
32025			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
32026		}
32027	}
32028
32029	if invalidParams.Len() > 0 {
32030		return invalidParams
32031	}
32032	return nil
32033}
32034
32035// SetRuleName sets the RuleName field's value.
32036func (s *CreateTopicRuleInput) SetRuleName(v string) *CreateTopicRuleInput {
32037	s.RuleName = &v
32038	return s
32039}
32040
32041// SetTags sets the Tags field's value.
32042func (s *CreateTopicRuleInput) SetTags(v string) *CreateTopicRuleInput {
32043	s.Tags = &v
32044	return s
32045}
32046
32047// SetTopicRulePayload sets the TopicRulePayload field's value.
32048func (s *CreateTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *CreateTopicRuleInput {
32049	s.TopicRulePayload = v
32050	return s
32051}
32052
32053type CreateTopicRuleOutput struct {
32054	_ struct{} `type:"structure"`
32055}
32056
32057// String returns the string representation
32058func (s CreateTopicRuleOutput) String() string {
32059	return awsutil.Prettify(s)
32060}
32061
32062// GoString returns the string representation
32063func (s CreateTopicRuleOutput) GoString() string {
32064	return s.String()
32065}
32066
32067// Describes a custom method used to code sign a file.
32068type CustomCodeSigning struct {
32069	_ struct{} `type:"structure"`
32070
32071	// The certificate chain.
32072	CertificateChain *CodeSigningCertificateChain `locationName:"certificateChain" type:"structure"`
32073
32074	// The hash algorithm used to code sign the file.
32075	HashAlgorithm *string `locationName:"hashAlgorithm" type:"string"`
32076
32077	// The signature for the file.
32078	Signature *CodeSigningSignature `locationName:"signature" type:"structure"`
32079
32080	// The signature algorithm used to code sign the file.
32081	SignatureAlgorithm *string `locationName:"signatureAlgorithm" type:"string"`
32082}
32083
32084// String returns the string representation
32085func (s CustomCodeSigning) String() string {
32086	return awsutil.Prettify(s)
32087}
32088
32089// GoString returns the string representation
32090func (s CustomCodeSigning) GoString() string {
32091	return s.String()
32092}
32093
32094// SetCertificateChain sets the CertificateChain field's value.
32095func (s *CustomCodeSigning) SetCertificateChain(v *CodeSigningCertificateChain) *CustomCodeSigning {
32096	s.CertificateChain = v
32097	return s
32098}
32099
32100// SetHashAlgorithm sets the HashAlgorithm field's value.
32101func (s *CustomCodeSigning) SetHashAlgorithm(v string) *CustomCodeSigning {
32102	s.HashAlgorithm = &v
32103	return s
32104}
32105
32106// SetSignature sets the Signature field's value.
32107func (s *CustomCodeSigning) SetSignature(v *CodeSigningSignature) *CustomCodeSigning {
32108	s.Signature = v
32109	return s
32110}
32111
32112// SetSignatureAlgorithm sets the SignatureAlgorithm field's value.
32113func (s *CustomCodeSigning) SetSignatureAlgorithm(v string) *CustomCodeSigning {
32114	s.SignatureAlgorithm = &v
32115	return s
32116}
32117
32118type DeleteAccountAuditConfigurationInput struct {
32119	_ struct{} `type:"structure"`
32120
32121	// If true, all scheduled audits are deleted.
32122	DeleteScheduledAudits *bool `location:"querystring" locationName:"deleteScheduledAudits" type:"boolean"`
32123}
32124
32125// String returns the string representation
32126func (s DeleteAccountAuditConfigurationInput) String() string {
32127	return awsutil.Prettify(s)
32128}
32129
32130// GoString returns the string representation
32131func (s DeleteAccountAuditConfigurationInput) GoString() string {
32132	return s.String()
32133}
32134
32135// SetDeleteScheduledAudits sets the DeleteScheduledAudits field's value.
32136func (s *DeleteAccountAuditConfigurationInput) SetDeleteScheduledAudits(v bool) *DeleteAccountAuditConfigurationInput {
32137	s.DeleteScheduledAudits = &v
32138	return s
32139}
32140
32141type DeleteAccountAuditConfigurationOutput struct {
32142	_ struct{} `type:"structure"`
32143}
32144
32145// String returns the string representation
32146func (s DeleteAccountAuditConfigurationOutput) String() string {
32147	return awsutil.Prettify(s)
32148}
32149
32150// GoString returns the string representation
32151func (s DeleteAccountAuditConfigurationOutput) GoString() string {
32152	return s.String()
32153}
32154
32155type DeleteAuditSuppressionInput struct {
32156	_ struct{} `type:"structure"`
32157
32158	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
32159	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
32160	// to select which checks are enabled.)
32161	//
32162	// CheckName is a required field
32163	CheckName *string `locationName:"checkName" type:"string" required:"true"`
32164
32165	// Information that identifies the noncompliant resource.
32166	//
32167	// ResourceIdentifier is a required field
32168	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
32169}
32170
32171// String returns the string representation
32172func (s DeleteAuditSuppressionInput) String() string {
32173	return awsutil.Prettify(s)
32174}
32175
32176// GoString returns the string representation
32177func (s DeleteAuditSuppressionInput) GoString() string {
32178	return s.String()
32179}
32180
32181// Validate inspects the fields of the type to determine if they are valid.
32182func (s *DeleteAuditSuppressionInput) Validate() error {
32183	invalidParams := request.ErrInvalidParams{Context: "DeleteAuditSuppressionInput"}
32184	if s.CheckName == nil {
32185		invalidParams.Add(request.NewErrParamRequired("CheckName"))
32186	}
32187	if s.ResourceIdentifier == nil {
32188		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
32189	}
32190	if s.ResourceIdentifier != nil {
32191		if err := s.ResourceIdentifier.Validate(); err != nil {
32192			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
32193		}
32194	}
32195
32196	if invalidParams.Len() > 0 {
32197		return invalidParams
32198	}
32199	return nil
32200}
32201
32202// SetCheckName sets the CheckName field's value.
32203func (s *DeleteAuditSuppressionInput) SetCheckName(v string) *DeleteAuditSuppressionInput {
32204	s.CheckName = &v
32205	return s
32206}
32207
32208// SetResourceIdentifier sets the ResourceIdentifier field's value.
32209func (s *DeleteAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *DeleteAuditSuppressionInput {
32210	s.ResourceIdentifier = v
32211	return s
32212}
32213
32214type DeleteAuditSuppressionOutput struct {
32215	_ struct{} `type:"structure"`
32216}
32217
32218// String returns the string representation
32219func (s DeleteAuditSuppressionOutput) String() string {
32220	return awsutil.Prettify(s)
32221}
32222
32223// GoString returns the string representation
32224func (s DeleteAuditSuppressionOutput) GoString() string {
32225	return s.String()
32226}
32227
32228type DeleteAuthorizerInput struct {
32229	_ struct{} `type:"structure"`
32230
32231	// The name of the authorizer to delete.
32232	//
32233	// AuthorizerName is a required field
32234	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
32235}
32236
32237// String returns the string representation
32238func (s DeleteAuthorizerInput) String() string {
32239	return awsutil.Prettify(s)
32240}
32241
32242// GoString returns the string representation
32243func (s DeleteAuthorizerInput) GoString() string {
32244	return s.String()
32245}
32246
32247// Validate inspects the fields of the type to determine if they are valid.
32248func (s *DeleteAuthorizerInput) Validate() error {
32249	invalidParams := request.ErrInvalidParams{Context: "DeleteAuthorizerInput"}
32250	if s.AuthorizerName == nil {
32251		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
32252	}
32253	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
32254		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
32255	}
32256
32257	if invalidParams.Len() > 0 {
32258		return invalidParams
32259	}
32260	return nil
32261}
32262
32263// SetAuthorizerName sets the AuthorizerName field's value.
32264func (s *DeleteAuthorizerInput) SetAuthorizerName(v string) *DeleteAuthorizerInput {
32265	s.AuthorizerName = &v
32266	return s
32267}
32268
32269type DeleteAuthorizerOutput struct {
32270	_ struct{} `type:"structure"`
32271}
32272
32273// String returns the string representation
32274func (s DeleteAuthorizerOutput) String() string {
32275	return awsutil.Prettify(s)
32276}
32277
32278// GoString returns the string representation
32279func (s DeleteAuthorizerOutput) GoString() string {
32280	return s.String()
32281}
32282
32283type DeleteBillingGroupInput struct {
32284	_ struct{} `type:"structure"`
32285
32286	// The name of the billing group.
32287	//
32288	// BillingGroupName is a required field
32289	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
32290
32291	// The expected version of the billing group. If the version of the billing
32292	// group does not match the expected version specified in the request, the DeleteBillingGroup
32293	// request is rejected with a VersionConflictException.
32294	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
32295}
32296
32297// String returns the string representation
32298func (s DeleteBillingGroupInput) String() string {
32299	return awsutil.Prettify(s)
32300}
32301
32302// GoString returns the string representation
32303func (s DeleteBillingGroupInput) GoString() string {
32304	return s.String()
32305}
32306
32307// Validate inspects the fields of the type to determine if they are valid.
32308func (s *DeleteBillingGroupInput) Validate() error {
32309	invalidParams := request.ErrInvalidParams{Context: "DeleteBillingGroupInput"}
32310	if s.BillingGroupName == nil {
32311		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
32312	}
32313	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
32314		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
32315	}
32316
32317	if invalidParams.Len() > 0 {
32318		return invalidParams
32319	}
32320	return nil
32321}
32322
32323// SetBillingGroupName sets the BillingGroupName field's value.
32324func (s *DeleteBillingGroupInput) SetBillingGroupName(v string) *DeleteBillingGroupInput {
32325	s.BillingGroupName = &v
32326	return s
32327}
32328
32329// SetExpectedVersion sets the ExpectedVersion field's value.
32330func (s *DeleteBillingGroupInput) SetExpectedVersion(v int64) *DeleteBillingGroupInput {
32331	s.ExpectedVersion = &v
32332	return s
32333}
32334
32335type DeleteBillingGroupOutput struct {
32336	_ struct{} `type:"structure"`
32337}
32338
32339// String returns the string representation
32340func (s DeleteBillingGroupOutput) String() string {
32341	return awsutil.Prettify(s)
32342}
32343
32344// GoString returns the string representation
32345func (s DeleteBillingGroupOutput) GoString() string {
32346	return s.String()
32347}
32348
32349// Input for the DeleteCACertificate operation.
32350type DeleteCACertificateInput struct {
32351	_ struct{} `type:"structure"`
32352
32353	// The ID of the certificate to delete. (The last part of the certificate ARN
32354	// contains the certificate ID.)
32355	//
32356	// CertificateId is a required field
32357	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
32358}
32359
32360// String returns the string representation
32361func (s DeleteCACertificateInput) String() string {
32362	return awsutil.Prettify(s)
32363}
32364
32365// GoString returns the string representation
32366func (s DeleteCACertificateInput) GoString() string {
32367	return s.String()
32368}
32369
32370// Validate inspects the fields of the type to determine if they are valid.
32371func (s *DeleteCACertificateInput) Validate() error {
32372	invalidParams := request.ErrInvalidParams{Context: "DeleteCACertificateInput"}
32373	if s.CertificateId == nil {
32374		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
32375	}
32376	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
32377		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
32378	}
32379
32380	if invalidParams.Len() > 0 {
32381		return invalidParams
32382	}
32383	return nil
32384}
32385
32386// SetCertificateId sets the CertificateId field's value.
32387func (s *DeleteCACertificateInput) SetCertificateId(v string) *DeleteCACertificateInput {
32388	s.CertificateId = &v
32389	return s
32390}
32391
32392// The output for the DeleteCACertificate operation.
32393type DeleteCACertificateOutput struct {
32394	_ struct{} `type:"structure"`
32395}
32396
32397// String returns the string representation
32398func (s DeleteCACertificateOutput) String() string {
32399	return awsutil.Prettify(s)
32400}
32401
32402// GoString returns the string representation
32403func (s DeleteCACertificateOutput) GoString() string {
32404	return s.String()
32405}
32406
32407// The input for the DeleteCertificate operation.
32408type DeleteCertificateInput struct {
32409	_ struct{} `type:"structure"`
32410
32411	// The ID of the certificate. (The last part of the certificate ARN contains
32412	// the certificate ID.)
32413	//
32414	// CertificateId is a required field
32415	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
32416
32417	// Forces the deletion of a certificate if it is inactive and is not attached
32418	// to an IoT thing.
32419	ForceDelete *bool `location:"querystring" locationName:"forceDelete" type:"boolean"`
32420}
32421
32422// String returns the string representation
32423func (s DeleteCertificateInput) String() string {
32424	return awsutil.Prettify(s)
32425}
32426
32427// GoString returns the string representation
32428func (s DeleteCertificateInput) GoString() string {
32429	return s.String()
32430}
32431
32432// Validate inspects the fields of the type to determine if they are valid.
32433func (s *DeleteCertificateInput) Validate() error {
32434	invalidParams := request.ErrInvalidParams{Context: "DeleteCertificateInput"}
32435	if s.CertificateId == nil {
32436		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
32437	}
32438	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
32439		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
32440	}
32441
32442	if invalidParams.Len() > 0 {
32443		return invalidParams
32444	}
32445	return nil
32446}
32447
32448// SetCertificateId sets the CertificateId field's value.
32449func (s *DeleteCertificateInput) SetCertificateId(v string) *DeleteCertificateInput {
32450	s.CertificateId = &v
32451	return s
32452}
32453
32454// SetForceDelete sets the ForceDelete field's value.
32455func (s *DeleteCertificateInput) SetForceDelete(v bool) *DeleteCertificateInput {
32456	s.ForceDelete = &v
32457	return s
32458}
32459
32460type DeleteCertificateOutput struct {
32461	_ struct{} `type:"structure"`
32462}
32463
32464// String returns the string representation
32465func (s DeleteCertificateOutput) String() string {
32466	return awsutil.Prettify(s)
32467}
32468
32469// GoString returns the string representation
32470func (s DeleteCertificateOutput) GoString() string {
32471	return s.String()
32472}
32473
32474// You can't delete the resource because it is attached to one or more resources.
32475type DeleteConflictException struct {
32476	_            struct{}                  `type:"structure"`
32477	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
32478
32479	// The message for the exception.
32480	Message_ *string `locationName:"message" type:"string"`
32481}
32482
32483// String returns the string representation
32484func (s DeleteConflictException) String() string {
32485	return awsutil.Prettify(s)
32486}
32487
32488// GoString returns the string representation
32489func (s DeleteConflictException) GoString() string {
32490	return s.String()
32491}
32492
32493func newErrorDeleteConflictException(v protocol.ResponseMetadata) error {
32494	return &DeleteConflictException{
32495		RespMetadata: v,
32496	}
32497}
32498
32499// Code returns the exception type name.
32500func (s *DeleteConflictException) Code() string {
32501	return "DeleteConflictException"
32502}
32503
32504// Message returns the exception's message.
32505func (s *DeleteConflictException) Message() string {
32506	if s.Message_ != nil {
32507		return *s.Message_
32508	}
32509	return ""
32510}
32511
32512// OrigErr always returns nil, satisfies awserr.Error interface.
32513func (s *DeleteConflictException) OrigErr() error {
32514	return nil
32515}
32516
32517func (s *DeleteConflictException) Error() string {
32518	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
32519}
32520
32521// Status code returns the HTTP status code for the request's response error.
32522func (s *DeleteConflictException) StatusCode() int {
32523	return s.RespMetadata.StatusCode
32524}
32525
32526// RequestID returns the service's response RequestID for request.
32527func (s *DeleteConflictException) RequestID() string {
32528	return s.RespMetadata.RequestID
32529}
32530
32531type DeleteCustomMetricInput struct {
32532	_ struct{} `type:"structure"`
32533
32534	// The name of the custom metric.
32535	//
32536	// MetricName is a required field
32537	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
32538}
32539
32540// String returns the string representation
32541func (s DeleteCustomMetricInput) String() string {
32542	return awsutil.Prettify(s)
32543}
32544
32545// GoString returns the string representation
32546func (s DeleteCustomMetricInput) GoString() string {
32547	return s.String()
32548}
32549
32550// Validate inspects the fields of the type to determine if they are valid.
32551func (s *DeleteCustomMetricInput) Validate() error {
32552	invalidParams := request.ErrInvalidParams{Context: "DeleteCustomMetricInput"}
32553	if s.MetricName == nil {
32554		invalidParams.Add(request.NewErrParamRequired("MetricName"))
32555	}
32556	if s.MetricName != nil && len(*s.MetricName) < 1 {
32557		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
32558	}
32559
32560	if invalidParams.Len() > 0 {
32561		return invalidParams
32562	}
32563	return nil
32564}
32565
32566// SetMetricName sets the MetricName field's value.
32567func (s *DeleteCustomMetricInput) SetMetricName(v string) *DeleteCustomMetricInput {
32568	s.MetricName = &v
32569	return s
32570}
32571
32572type DeleteCustomMetricOutput struct {
32573	_ struct{} `type:"structure"`
32574}
32575
32576// String returns the string representation
32577func (s DeleteCustomMetricOutput) String() string {
32578	return awsutil.Prettify(s)
32579}
32580
32581// GoString returns the string representation
32582func (s DeleteCustomMetricOutput) GoString() string {
32583	return s.String()
32584}
32585
32586type DeleteDimensionInput struct {
32587	_ struct{} `type:"structure"`
32588
32589	// The unique identifier for the dimension that you want to delete.
32590	//
32591	// Name is a required field
32592	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
32593}
32594
32595// String returns the string representation
32596func (s DeleteDimensionInput) String() string {
32597	return awsutil.Prettify(s)
32598}
32599
32600// GoString returns the string representation
32601func (s DeleteDimensionInput) GoString() string {
32602	return s.String()
32603}
32604
32605// Validate inspects the fields of the type to determine if they are valid.
32606func (s *DeleteDimensionInput) Validate() error {
32607	invalidParams := request.ErrInvalidParams{Context: "DeleteDimensionInput"}
32608	if s.Name == nil {
32609		invalidParams.Add(request.NewErrParamRequired("Name"))
32610	}
32611	if s.Name != nil && len(*s.Name) < 1 {
32612		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
32613	}
32614
32615	if invalidParams.Len() > 0 {
32616		return invalidParams
32617	}
32618	return nil
32619}
32620
32621// SetName sets the Name field's value.
32622func (s *DeleteDimensionInput) SetName(v string) *DeleteDimensionInput {
32623	s.Name = &v
32624	return s
32625}
32626
32627type DeleteDimensionOutput struct {
32628	_ struct{} `type:"structure"`
32629}
32630
32631// String returns the string representation
32632func (s DeleteDimensionOutput) String() string {
32633	return awsutil.Prettify(s)
32634}
32635
32636// GoString returns the string representation
32637func (s DeleteDimensionOutput) GoString() string {
32638	return s.String()
32639}
32640
32641type DeleteDomainConfigurationInput struct {
32642	_ struct{} `type:"structure"`
32643
32644	// The name of the domain configuration to be deleted.
32645	//
32646	// DomainConfigurationName is a required field
32647	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
32648}
32649
32650// String returns the string representation
32651func (s DeleteDomainConfigurationInput) String() string {
32652	return awsutil.Prettify(s)
32653}
32654
32655// GoString returns the string representation
32656func (s DeleteDomainConfigurationInput) GoString() string {
32657	return s.String()
32658}
32659
32660// Validate inspects the fields of the type to determine if they are valid.
32661func (s *DeleteDomainConfigurationInput) Validate() error {
32662	invalidParams := request.ErrInvalidParams{Context: "DeleteDomainConfigurationInput"}
32663	if s.DomainConfigurationName == nil {
32664		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
32665	}
32666	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
32667		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
32668	}
32669
32670	if invalidParams.Len() > 0 {
32671		return invalidParams
32672	}
32673	return nil
32674}
32675
32676// SetDomainConfigurationName sets the DomainConfigurationName field's value.
32677func (s *DeleteDomainConfigurationInput) SetDomainConfigurationName(v string) *DeleteDomainConfigurationInput {
32678	s.DomainConfigurationName = &v
32679	return s
32680}
32681
32682type DeleteDomainConfigurationOutput struct {
32683	_ struct{} `type:"structure"`
32684}
32685
32686// String returns the string representation
32687func (s DeleteDomainConfigurationOutput) String() string {
32688	return awsutil.Prettify(s)
32689}
32690
32691// GoString returns the string representation
32692func (s DeleteDomainConfigurationOutput) GoString() string {
32693	return s.String()
32694}
32695
32696type DeleteDynamicThingGroupInput struct {
32697	_ struct{} `type:"structure"`
32698
32699	// The expected version of the dynamic thing group to delete.
32700	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
32701
32702	// The name of the dynamic thing group to delete.
32703	//
32704	// ThingGroupName is a required field
32705	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
32706}
32707
32708// String returns the string representation
32709func (s DeleteDynamicThingGroupInput) String() string {
32710	return awsutil.Prettify(s)
32711}
32712
32713// GoString returns the string representation
32714func (s DeleteDynamicThingGroupInput) GoString() string {
32715	return s.String()
32716}
32717
32718// Validate inspects the fields of the type to determine if they are valid.
32719func (s *DeleteDynamicThingGroupInput) Validate() error {
32720	invalidParams := request.ErrInvalidParams{Context: "DeleteDynamicThingGroupInput"}
32721	if s.ThingGroupName == nil {
32722		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
32723	}
32724	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
32725		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
32726	}
32727
32728	if invalidParams.Len() > 0 {
32729		return invalidParams
32730	}
32731	return nil
32732}
32733
32734// SetExpectedVersion sets the ExpectedVersion field's value.
32735func (s *DeleteDynamicThingGroupInput) SetExpectedVersion(v int64) *DeleteDynamicThingGroupInput {
32736	s.ExpectedVersion = &v
32737	return s
32738}
32739
32740// SetThingGroupName sets the ThingGroupName field's value.
32741func (s *DeleteDynamicThingGroupInput) SetThingGroupName(v string) *DeleteDynamicThingGroupInput {
32742	s.ThingGroupName = &v
32743	return s
32744}
32745
32746type DeleteDynamicThingGroupOutput struct {
32747	_ struct{} `type:"structure"`
32748}
32749
32750// String returns the string representation
32751func (s DeleteDynamicThingGroupOutput) String() string {
32752	return awsutil.Prettify(s)
32753}
32754
32755// GoString returns the string representation
32756func (s DeleteDynamicThingGroupOutput) GoString() string {
32757	return s.String()
32758}
32759
32760type DeleteJobExecutionInput struct {
32761	_ struct{} `type:"structure"`
32762
32763	// The ID of the job execution to be deleted. The executionNumber refers to
32764	// the execution of a particular job on a particular device.
32765	//
32766	// Note that once a job execution is deleted, the executionNumber may be reused
32767	// by IoT, so be sure you get and use the correct value here.
32768	//
32769	// ExecutionNumber is a required field
32770	ExecutionNumber *int64 `location:"uri" locationName:"executionNumber" type:"long" required:"true"`
32771
32772	// (Optional) When true, you can delete a job execution which is "IN_PROGRESS".
32773	// Otherwise, you can only delete a job execution which is in a terminal state
32774	// ("SUCCEEDED", "FAILED", "REJECTED", "REMOVED" or "CANCELED") or an exception
32775	// will occur. The default is false.
32776	//
32777	// Deleting a job execution which is "IN_PROGRESS", will cause the device to
32778	// be unable to access job information or update the job execution status. Use
32779	// caution and ensure that the device is able to recover to a valid state.
32780	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
32781
32782	// The ID of the job whose execution on a particular device will be deleted.
32783	//
32784	// JobId is a required field
32785	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
32786
32787	// The namespace used to indicate that a job is a customer-managed job.
32788	//
32789	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
32790	// to MQTT topics that contain the value in the following format.
32791	//
32792	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
32793	//
32794	// The namespaceId feature is in public preview.
32795	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
32796
32797	// The name of the thing whose job execution will be deleted.
32798	//
32799	// ThingName is a required field
32800	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
32801}
32802
32803// String returns the string representation
32804func (s DeleteJobExecutionInput) String() string {
32805	return awsutil.Prettify(s)
32806}
32807
32808// GoString returns the string representation
32809func (s DeleteJobExecutionInput) GoString() string {
32810	return s.String()
32811}
32812
32813// Validate inspects the fields of the type to determine if they are valid.
32814func (s *DeleteJobExecutionInput) Validate() error {
32815	invalidParams := request.ErrInvalidParams{Context: "DeleteJobExecutionInput"}
32816	if s.ExecutionNumber == nil {
32817		invalidParams.Add(request.NewErrParamRequired("ExecutionNumber"))
32818	}
32819	if s.JobId == nil {
32820		invalidParams.Add(request.NewErrParamRequired("JobId"))
32821	}
32822	if s.JobId != nil && len(*s.JobId) < 1 {
32823		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
32824	}
32825	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
32826		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
32827	}
32828	if s.ThingName == nil {
32829		invalidParams.Add(request.NewErrParamRequired("ThingName"))
32830	}
32831	if s.ThingName != nil && len(*s.ThingName) < 1 {
32832		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
32833	}
32834
32835	if invalidParams.Len() > 0 {
32836		return invalidParams
32837	}
32838	return nil
32839}
32840
32841// SetExecutionNumber sets the ExecutionNumber field's value.
32842func (s *DeleteJobExecutionInput) SetExecutionNumber(v int64) *DeleteJobExecutionInput {
32843	s.ExecutionNumber = &v
32844	return s
32845}
32846
32847// SetForce sets the Force field's value.
32848func (s *DeleteJobExecutionInput) SetForce(v bool) *DeleteJobExecutionInput {
32849	s.Force = &v
32850	return s
32851}
32852
32853// SetJobId sets the JobId field's value.
32854func (s *DeleteJobExecutionInput) SetJobId(v string) *DeleteJobExecutionInput {
32855	s.JobId = &v
32856	return s
32857}
32858
32859// SetNamespaceId sets the NamespaceId field's value.
32860func (s *DeleteJobExecutionInput) SetNamespaceId(v string) *DeleteJobExecutionInput {
32861	s.NamespaceId = &v
32862	return s
32863}
32864
32865// SetThingName sets the ThingName field's value.
32866func (s *DeleteJobExecutionInput) SetThingName(v string) *DeleteJobExecutionInput {
32867	s.ThingName = &v
32868	return s
32869}
32870
32871type DeleteJobExecutionOutput struct {
32872	_ struct{} `type:"structure"`
32873}
32874
32875// String returns the string representation
32876func (s DeleteJobExecutionOutput) String() string {
32877	return awsutil.Prettify(s)
32878}
32879
32880// GoString returns the string representation
32881func (s DeleteJobExecutionOutput) GoString() string {
32882	return s.String()
32883}
32884
32885type DeleteJobInput struct {
32886	_ struct{} `type:"structure"`
32887
32888	// (Optional) When true, you can delete a job which is "IN_PROGRESS". Otherwise,
32889	// you can only delete a job which is in a terminal state ("COMPLETED" or "CANCELED")
32890	// or an exception will occur. The default is false.
32891	//
32892	// Deleting a job which is "IN_PROGRESS", will cause a device which is executing
32893	// the job to be unable to access job information or update the job execution
32894	// status. Use caution and ensure that each device executing a job which is
32895	// deleted is able to recover to a valid state.
32896	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
32897
32898	// The ID of the job to be deleted.
32899	//
32900	// After a job deletion is completed, you may reuse this jobId when you create
32901	// a new job. However, this is not recommended, and you must ensure that your
32902	// devices are not using the jobId to refer to the deleted job.
32903	//
32904	// JobId is a required field
32905	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
32906
32907	// The namespace used to indicate that a job is a customer-managed job.
32908	//
32909	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
32910	// to MQTT topics that contain the value in the following format.
32911	//
32912	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
32913	//
32914	// The namespaceId feature is in public preview.
32915	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
32916}
32917
32918// String returns the string representation
32919func (s DeleteJobInput) String() string {
32920	return awsutil.Prettify(s)
32921}
32922
32923// GoString returns the string representation
32924func (s DeleteJobInput) GoString() string {
32925	return s.String()
32926}
32927
32928// Validate inspects the fields of the type to determine if they are valid.
32929func (s *DeleteJobInput) Validate() error {
32930	invalidParams := request.ErrInvalidParams{Context: "DeleteJobInput"}
32931	if s.JobId == nil {
32932		invalidParams.Add(request.NewErrParamRequired("JobId"))
32933	}
32934	if s.JobId != nil && len(*s.JobId) < 1 {
32935		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
32936	}
32937	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
32938		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
32939	}
32940
32941	if invalidParams.Len() > 0 {
32942		return invalidParams
32943	}
32944	return nil
32945}
32946
32947// SetForce sets the Force field's value.
32948func (s *DeleteJobInput) SetForce(v bool) *DeleteJobInput {
32949	s.Force = &v
32950	return s
32951}
32952
32953// SetJobId sets the JobId field's value.
32954func (s *DeleteJobInput) SetJobId(v string) *DeleteJobInput {
32955	s.JobId = &v
32956	return s
32957}
32958
32959// SetNamespaceId sets the NamespaceId field's value.
32960func (s *DeleteJobInput) SetNamespaceId(v string) *DeleteJobInput {
32961	s.NamespaceId = &v
32962	return s
32963}
32964
32965type DeleteJobOutput struct {
32966	_ struct{} `type:"structure"`
32967}
32968
32969// String returns the string representation
32970func (s DeleteJobOutput) String() string {
32971	return awsutil.Prettify(s)
32972}
32973
32974// GoString returns the string representation
32975func (s DeleteJobOutput) GoString() string {
32976	return s.String()
32977}
32978
32979type DeleteJobTemplateInput struct {
32980	_ struct{} `type:"structure"`
32981
32982	// The unique identifier of the job template to delete.
32983	//
32984	// JobTemplateId is a required field
32985	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
32986}
32987
32988// String returns the string representation
32989func (s DeleteJobTemplateInput) String() string {
32990	return awsutil.Prettify(s)
32991}
32992
32993// GoString returns the string representation
32994func (s DeleteJobTemplateInput) GoString() string {
32995	return s.String()
32996}
32997
32998// Validate inspects the fields of the type to determine if they are valid.
32999func (s *DeleteJobTemplateInput) Validate() error {
33000	invalidParams := request.ErrInvalidParams{Context: "DeleteJobTemplateInput"}
33001	if s.JobTemplateId == nil {
33002		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
33003	}
33004	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
33005		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
33006	}
33007
33008	if invalidParams.Len() > 0 {
33009		return invalidParams
33010	}
33011	return nil
33012}
33013
33014// SetJobTemplateId sets the JobTemplateId field's value.
33015func (s *DeleteJobTemplateInput) SetJobTemplateId(v string) *DeleteJobTemplateInput {
33016	s.JobTemplateId = &v
33017	return s
33018}
33019
33020type DeleteJobTemplateOutput struct {
33021	_ struct{} `type:"structure"`
33022}
33023
33024// String returns the string representation
33025func (s DeleteJobTemplateOutput) String() string {
33026	return awsutil.Prettify(s)
33027}
33028
33029// GoString returns the string representation
33030func (s DeleteJobTemplateOutput) GoString() string {
33031	return s.String()
33032}
33033
33034type DeleteMitigationActionInput struct {
33035	_ struct{} `type:"structure"`
33036
33037	// The name of the mitigation action that you want to delete.
33038	//
33039	// ActionName is a required field
33040	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
33041}
33042
33043// String returns the string representation
33044func (s DeleteMitigationActionInput) String() string {
33045	return awsutil.Prettify(s)
33046}
33047
33048// GoString returns the string representation
33049func (s DeleteMitigationActionInput) GoString() string {
33050	return s.String()
33051}
33052
33053// Validate inspects the fields of the type to determine if they are valid.
33054func (s *DeleteMitigationActionInput) Validate() error {
33055	invalidParams := request.ErrInvalidParams{Context: "DeleteMitigationActionInput"}
33056	if s.ActionName == nil {
33057		invalidParams.Add(request.NewErrParamRequired("ActionName"))
33058	}
33059	if s.ActionName != nil && len(*s.ActionName) < 1 {
33060		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
33061	}
33062
33063	if invalidParams.Len() > 0 {
33064		return invalidParams
33065	}
33066	return nil
33067}
33068
33069// SetActionName sets the ActionName field's value.
33070func (s *DeleteMitigationActionInput) SetActionName(v string) *DeleteMitigationActionInput {
33071	s.ActionName = &v
33072	return s
33073}
33074
33075type DeleteMitigationActionOutput struct {
33076	_ struct{} `type:"structure"`
33077}
33078
33079// String returns the string representation
33080func (s DeleteMitigationActionOutput) String() string {
33081	return awsutil.Prettify(s)
33082}
33083
33084// GoString returns the string representation
33085func (s DeleteMitigationActionOutput) GoString() string {
33086	return s.String()
33087}
33088
33089type DeleteOTAUpdateInput struct {
33090	_ struct{} `type:"structure"`
33091
33092	// When true, the stream created by the OTAUpdate process is deleted when the
33093	// OTA update is deleted. Ignored if the stream specified in the OTAUpdate is
33094	// supplied by the user.
33095	DeleteStream *bool `location:"querystring" locationName:"deleteStream" type:"boolean"`
33096
33097	// When true, deletes the AWS job created by the OTAUpdate process even if it
33098	// is "IN_PROGRESS". Otherwise, if the job is not in a terminal state ("COMPLETED"
33099	// or "CANCELED") an exception will occur. The default is false.
33100	ForceDeleteAWSJob *bool `location:"querystring" locationName:"forceDeleteAWSJob" type:"boolean"`
33101
33102	// The ID of the OTA update to delete.
33103	//
33104	// OtaUpdateId is a required field
33105	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
33106}
33107
33108// String returns the string representation
33109func (s DeleteOTAUpdateInput) String() string {
33110	return awsutil.Prettify(s)
33111}
33112
33113// GoString returns the string representation
33114func (s DeleteOTAUpdateInput) GoString() string {
33115	return s.String()
33116}
33117
33118// Validate inspects the fields of the type to determine if they are valid.
33119func (s *DeleteOTAUpdateInput) Validate() error {
33120	invalidParams := request.ErrInvalidParams{Context: "DeleteOTAUpdateInput"}
33121	if s.OtaUpdateId == nil {
33122		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
33123	}
33124	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
33125		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
33126	}
33127
33128	if invalidParams.Len() > 0 {
33129		return invalidParams
33130	}
33131	return nil
33132}
33133
33134// SetDeleteStream sets the DeleteStream field's value.
33135func (s *DeleteOTAUpdateInput) SetDeleteStream(v bool) *DeleteOTAUpdateInput {
33136	s.DeleteStream = &v
33137	return s
33138}
33139
33140// SetForceDeleteAWSJob sets the ForceDeleteAWSJob field's value.
33141func (s *DeleteOTAUpdateInput) SetForceDeleteAWSJob(v bool) *DeleteOTAUpdateInput {
33142	s.ForceDeleteAWSJob = &v
33143	return s
33144}
33145
33146// SetOtaUpdateId sets the OtaUpdateId field's value.
33147func (s *DeleteOTAUpdateInput) SetOtaUpdateId(v string) *DeleteOTAUpdateInput {
33148	s.OtaUpdateId = &v
33149	return s
33150}
33151
33152type DeleteOTAUpdateOutput struct {
33153	_ struct{} `type:"structure"`
33154}
33155
33156// String returns the string representation
33157func (s DeleteOTAUpdateOutput) String() string {
33158	return awsutil.Prettify(s)
33159}
33160
33161// GoString returns the string representation
33162func (s DeleteOTAUpdateOutput) GoString() string {
33163	return s.String()
33164}
33165
33166// The input for the DeletePolicy operation.
33167type DeletePolicyInput struct {
33168	_ struct{} `type:"structure"`
33169
33170	// The name of the policy to delete.
33171	//
33172	// PolicyName is a required field
33173	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
33174}
33175
33176// String returns the string representation
33177func (s DeletePolicyInput) String() string {
33178	return awsutil.Prettify(s)
33179}
33180
33181// GoString returns the string representation
33182func (s DeletePolicyInput) GoString() string {
33183	return s.String()
33184}
33185
33186// Validate inspects the fields of the type to determine if they are valid.
33187func (s *DeletePolicyInput) Validate() error {
33188	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
33189	if s.PolicyName == nil {
33190		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
33191	}
33192	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
33193		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
33194	}
33195
33196	if invalidParams.Len() > 0 {
33197		return invalidParams
33198	}
33199	return nil
33200}
33201
33202// SetPolicyName sets the PolicyName field's value.
33203func (s *DeletePolicyInput) SetPolicyName(v string) *DeletePolicyInput {
33204	s.PolicyName = &v
33205	return s
33206}
33207
33208type DeletePolicyOutput struct {
33209	_ struct{} `type:"structure"`
33210}
33211
33212// String returns the string representation
33213func (s DeletePolicyOutput) String() string {
33214	return awsutil.Prettify(s)
33215}
33216
33217// GoString returns the string representation
33218func (s DeletePolicyOutput) GoString() string {
33219	return s.String()
33220}
33221
33222// The input for the DeletePolicyVersion operation.
33223type DeletePolicyVersionInput struct {
33224	_ struct{} `type:"structure"`
33225
33226	// The name of the policy.
33227	//
33228	// PolicyName is a required field
33229	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
33230
33231	// The policy version ID.
33232	//
33233	// PolicyVersionId is a required field
33234	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
33235}
33236
33237// String returns the string representation
33238func (s DeletePolicyVersionInput) String() string {
33239	return awsutil.Prettify(s)
33240}
33241
33242// GoString returns the string representation
33243func (s DeletePolicyVersionInput) GoString() string {
33244	return s.String()
33245}
33246
33247// Validate inspects the fields of the type to determine if they are valid.
33248func (s *DeletePolicyVersionInput) Validate() error {
33249	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyVersionInput"}
33250	if s.PolicyName == nil {
33251		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
33252	}
33253	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
33254		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
33255	}
33256	if s.PolicyVersionId == nil {
33257		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
33258	}
33259	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
33260		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
33261	}
33262
33263	if invalidParams.Len() > 0 {
33264		return invalidParams
33265	}
33266	return nil
33267}
33268
33269// SetPolicyName sets the PolicyName field's value.
33270func (s *DeletePolicyVersionInput) SetPolicyName(v string) *DeletePolicyVersionInput {
33271	s.PolicyName = &v
33272	return s
33273}
33274
33275// SetPolicyVersionId sets the PolicyVersionId field's value.
33276func (s *DeletePolicyVersionInput) SetPolicyVersionId(v string) *DeletePolicyVersionInput {
33277	s.PolicyVersionId = &v
33278	return s
33279}
33280
33281type DeletePolicyVersionOutput struct {
33282	_ struct{} `type:"structure"`
33283}
33284
33285// String returns the string representation
33286func (s DeletePolicyVersionOutput) String() string {
33287	return awsutil.Prettify(s)
33288}
33289
33290// GoString returns the string representation
33291func (s DeletePolicyVersionOutput) GoString() string {
33292	return s.String()
33293}
33294
33295type DeleteProvisioningTemplateInput struct {
33296	_ struct{} `type:"structure"`
33297
33298	// The name of the fleet provision template to delete.
33299	//
33300	// TemplateName is a required field
33301	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
33302}
33303
33304// String returns the string representation
33305func (s DeleteProvisioningTemplateInput) String() string {
33306	return awsutil.Prettify(s)
33307}
33308
33309// GoString returns the string representation
33310func (s DeleteProvisioningTemplateInput) GoString() string {
33311	return s.String()
33312}
33313
33314// Validate inspects the fields of the type to determine if they are valid.
33315func (s *DeleteProvisioningTemplateInput) Validate() error {
33316	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateInput"}
33317	if s.TemplateName == nil {
33318		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
33319	}
33320	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
33321		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
33322	}
33323
33324	if invalidParams.Len() > 0 {
33325		return invalidParams
33326	}
33327	return nil
33328}
33329
33330// SetTemplateName sets the TemplateName field's value.
33331func (s *DeleteProvisioningTemplateInput) SetTemplateName(v string) *DeleteProvisioningTemplateInput {
33332	s.TemplateName = &v
33333	return s
33334}
33335
33336type DeleteProvisioningTemplateOutput struct {
33337	_ struct{} `type:"structure"`
33338}
33339
33340// String returns the string representation
33341func (s DeleteProvisioningTemplateOutput) String() string {
33342	return awsutil.Prettify(s)
33343}
33344
33345// GoString returns the string representation
33346func (s DeleteProvisioningTemplateOutput) GoString() string {
33347	return s.String()
33348}
33349
33350type DeleteProvisioningTemplateVersionInput struct {
33351	_ struct{} `type:"structure"`
33352
33353	// The name of the fleet provisioning template version to delete.
33354	//
33355	// TemplateName is a required field
33356	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
33357
33358	// The fleet provisioning template version ID to delete.
33359	//
33360	// VersionId is a required field
33361	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
33362}
33363
33364// String returns the string representation
33365func (s DeleteProvisioningTemplateVersionInput) String() string {
33366	return awsutil.Prettify(s)
33367}
33368
33369// GoString returns the string representation
33370func (s DeleteProvisioningTemplateVersionInput) GoString() string {
33371	return s.String()
33372}
33373
33374// Validate inspects the fields of the type to determine if they are valid.
33375func (s *DeleteProvisioningTemplateVersionInput) Validate() error {
33376	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateVersionInput"}
33377	if s.TemplateName == nil {
33378		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
33379	}
33380	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
33381		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
33382	}
33383	if s.VersionId == nil {
33384		invalidParams.Add(request.NewErrParamRequired("VersionId"))
33385	}
33386
33387	if invalidParams.Len() > 0 {
33388		return invalidParams
33389	}
33390	return nil
33391}
33392
33393// SetTemplateName sets the TemplateName field's value.
33394func (s *DeleteProvisioningTemplateVersionInput) SetTemplateName(v string) *DeleteProvisioningTemplateVersionInput {
33395	s.TemplateName = &v
33396	return s
33397}
33398
33399// SetVersionId sets the VersionId field's value.
33400func (s *DeleteProvisioningTemplateVersionInput) SetVersionId(v int64) *DeleteProvisioningTemplateVersionInput {
33401	s.VersionId = &v
33402	return s
33403}
33404
33405type DeleteProvisioningTemplateVersionOutput struct {
33406	_ struct{} `type:"structure"`
33407}
33408
33409// String returns the string representation
33410func (s DeleteProvisioningTemplateVersionOutput) String() string {
33411	return awsutil.Prettify(s)
33412}
33413
33414// GoString returns the string representation
33415func (s DeleteProvisioningTemplateVersionOutput) GoString() string {
33416	return s.String()
33417}
33418
33419// The input for the DeleteRegistrationCode operation.
33420type DeleteRegistrationCodeInput struct {
33421	_ struct{} `type:"structure"`
33422}
33423
33424// String returns the string representation
33425func (s DeleteRegistrationCodeInput) String() string {
33426	return awsutil.Prettify(s)
33427}
33428
33429// GoString returns the string representation
33430func (s DeleteRegistrationCodeInput) GoString() string {
33431	return s.String()
33432}
33433
33434// The output for the DeleteRegistrationCode operation.
33435type DeleteRegistrationCodeOutput struct {
33436	_ struct{} `type:"structure"`
33437}
33438
33439// String returns the string representation
33440func (s DeleteRegistrationCodeOutput) String() string {
33441	return awsutil.Prettify(s)
33442}
33443
33444// GoString returns the string representation
33445func (s DeleteRegistrationCodeOutput) GoString() string {
33446	return s.String()
33447}
33448
33449type DeleteRoleAliasInput struct {
33450	_ struct{} `type:"structure"`
33451
33452	// The role alias to delete.
33453	//
33454	// RoleAlias is a required field
33455	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
33456}
33457
33458// String returns the string representation
33459func (s DeleteRoleAliasInput) String() string {
33460	return awsutil.Prettify(s)
33461}
33462
33463// GoString returns the string representation
33464func (s DeleteRoleAliasInput) GoString() string {
33465	return s.String()
33466}
33467
33468// Validate inspects the fields of the type to determine if they are valid.
33469func (s *DeleteRoleAliasInput) Validate() error {
33470	invalidParams := request.ErrInvalidParams{Context: "DeleteRoleAliasInput"}
33471	if s.RoleAlias == nil {
33472		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
33473	}
33474	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
33475		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
33476	}
33477
33478	if invalidParams.Len() > 0 {
33479		return invalidParams
33480	}
33481	return nil
33482}
33483
33484// SetRoleAlias sets the RoleAlias field's value.
33485func (s *DeleteRoleAliasInput) SetRoleAlias(v string) *DeleteRoleAliasInput {
33486	s.RoleAlias = &v
33487	return s
33488}
33489
33490type DeleteRoleAliasOutput struct {
33491	_ struct{} `type:"structure"`
33492}
33493
33494// String returns the string representation
33495func (s DeleteRoleAliasOutput) String() string {
33496	return awsutil.Prettify(s)
33497}
33498
33499// GoString returns the string representation
33500func (s DeleteRoleAliasOutput) GoString() string {
33501	return s.String()
33502}
33503
33504type DeleteScheduledAuditInput struct {
33505	_ struct{} `type:"structure"`
33506
33507	// The name of the scheduled audit you want to delete.
33508	//
33509	// ScheduledAuditName is a required field
33510	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
33511}
33512
33513// String returns the string representation
33514func (s DeleteScheduledAuditInput) String() string {
33515	return awsutil.Prettify(s)
33516}
33517
33518// GoString returns the string representation
33519func (s DeleteScheduledAuditInput) GoString() string {
33520	return s.String()
33521}
33522
33523// Validate inspects the fields of the type to determine if they are valid.
33524func (s *DeleteScheduledAuditInput) Validate() error {
33525	invalidParams := request.ErrInvalidParams{Context: "DeleteScheduledAuditInput"}
33526	if s.ScheduledAuditName == nil {
33527		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
33528	}
33529	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
33530		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
33531	}
33532
33533	if invalidParams.Len() > 0 {
33534		return invalidParams
33535	}
33536	return nil
33537}
33538
33539// SetScheduledAuditName sets the ScheduledAuditName field's value.
33540func (s *DeleteScheduledAuditInput) SetScheduledAuditName(v string) *DeleteScheduledAuditInput {
33541	s.ScheduledAuditName = &v
33542	return s
33543}
33544
33545type DeleteScheduledAuditOutput struct {
33546	_ struct{} `type:"structure"`
33547}
33548
33549// String returns the string representation
33550func (s DeleteScheduledAuditOutput) String() string {
33551	return awsutil.Prettify(s)
33552}
33553
33554// GoString returns the string representation
33555func (s DeleteScheduledAuditOutput) GoString() string {
33556	return s.String()
33557}
33558
33559type DeleteSecurityProfileInput struct {
33560	_ struct{} `type:"structure"`
33561
33562	// The expected version of the security profile. A new version is generated
33563	// whenever the security profile is updated. If you specify a value that is
33564	// different from the actual version, a VersionConflictException is thrown.
33565	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
33566
33567	// The name of the security profile to be deleted.
33568	//
33569	// SecurityProfileName is a required field
33570	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
33571}
33572
33573// String returns the string representation
33574func (s DeleteSecurityProfileInput) String() string {
33575	return awsutil.Prettify(s)
33576}
33577
33578// GoString returns the string representation
33579func (s DeleteSecurityProfileInput) GoString() string {
33580	return s.String()
33581}
33582
33583// Validate inspects the fields of the type to determine if they are valid.
33584func (s *DeleteSecurityProfileInput) Validate() error {
33585	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityProfileInput"}
33586	if s.SecurityProfileName == nil {
33587		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
33588	}
33589	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
33590		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
33591	}
33592
33593	if invalidParams.Len() > 0 {
33594		return invalidParams
33595	}
33596	return nil
33597}
33598
33599// SetExpectedVersion sets the ExpectedVersion field's value.
33600func (s *DeleteSecurityProfileInput) SetExpectedVersion(v int64) *DeleteSecurityProfileInput {
33601	s.ExpectedVersion = &v
33602	return s
33603}
33604
33605// SetSecurityProfileName sets the SecurityProfileName field's value.
33606func (s *DeleteSecurityProfileInput) SetSecurityProfileName(v string) *DeleteSecurityProfileInput {
33607	s.SecurityProfileName = &v
33608	return s
33609}
33610
33611type DeleteSecurityProfileOutput struct {
33612	_ struct{} `type:"structure"`
33613}
33614
33615// String returns the string representation
33616func (s DeleteSecurityProfileOutput) String() string {
33617	return awsutil.Prettify(s)
33618}
33619
33620// GoString returns the string representation
33621func (s DeleteSecurityProfileOutput) GoString() string {
33622	return s.String()
33623}
33624
33625type DeleteStreamInput struct {
33626	_ struct{} `type:"structure"`
33627
33628	// The stream ID.
33629	//
33630	// StreamId is a required field
33631	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
33632}
33633
33634// String returns the string representation
33635func (s DeleteStreamInput) String() string {
33636	return awsutil.Prettify(s)
33637}
33638
33639// GoString returns the string representation
33640func (s DeleteStreamInput) GoString() string {
33641	return s.String()
33642}
33643
33644// Validate inspects the fields of the type to determine if they are valid.
33645func (s *DeleteStreamInput) Validate() error {
33646	invalidParams := request.ErrInvalidParams{Context: "DeleteStreamInput"}
33647	if s.StreamId == nil {
33648		invalidParams.Add(request.NewErrParamRequired("StreamId"))
33649	}
33650	if s.StreamId != nil && len(*s.StreamId) < 1 {
33651		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
33652	}
33653
33654	if invalidParams.Len() > 0 {
33655		return invalidParams
33656	}
33657	return nil
33658}
33659
33660// SetStreamId sets the StreamId field's value.
33661func (s *DeleteStreamInput) SetStreamId(v string) *DeleteStreamInput {
33662	s.StreamId = &v
33663	return s
33664}
33665
33666type DeleteStreamOutput struct {
33667	_ struct{} `type:"structure"`
33668}
33669
33670// String returns the string representation
33671func (s DeleteStreamOutput) String() string {
33672	return awsutil.Prettify(s)
33673}
33674
33675// GoString returns the string representation
33676func (s DeleteStreamOutput) GoString() string {
33677	return s.String()
33678}
33679
33680type DeleteThingGroupInput struct {
33681	_ struct{} `type:"structure"`
33682
33683	// The expected version of the thing group to delete.
33684	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
33685
33686	// The name of the thing group to delete.
33687	//
33688	// ThingGroupName is a required field
33689	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
33690}
33691
33692// String returns the string representation
33693func (s DeleteThingGroupInput) String() string {
33694	return awsutil.Prettify(s)
33695}
33696
33697// GoString returns the string representation
33698func (s DeleteThingGroupInput) GoString() string {
33699	return s.String()
33700}
33701
33702// Validate inspects the fields of the type to determine if they are valid.
33703func (s *DeleteThingGroupInput) Validate() error {
33704	invalidParams := request.ErrInvalidParams{Context: "DeleteThingGroupInput"}
33705	if s.ThingGroupName == nil {
33706		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
33707	}
33708	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
33709		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
33710	}
33711
33712	if invalidParams.Len() > 0 {
33713		return invalidParams
33714	}
33715	return nil
33716}
33717
33718// SetExpectedVersion sets the ExpectedVersion field's value.
33719func (s *DeleteThingGroupInput) SetExpectedVersion(v int64) *DeleteThingGroupInput {
33720	s.ExpectedVersion = &v
33721	return s
33722}
33723
33724// SetThingGroupName sets the ThingGroupName field's value.
33725func (s *DeleteThingGroupInput) SetThingGroupName(v string) *DeleteThingGroupInput {
33726	s.ThingGroupName = &v
33727	return s
33728}
33729
33730type DeleteThingGroupOutput struct {
33731	_ struct{} `type:"structure"`
33732}
33733
33734// String returns the string representation
33735func (s DeleteThingGroupOutput) String() string {
33736	return awsutil.Prettify(s)
33737}
33738
33739// GoString returns the string representation
33740func (s DeleteThingGroupOutput) GoString() string {
33741	return s.String()
33742}
33743
33744// The input for the DeleteThing operation.
33745type DeleteThingInput struct {
33746	_ struct{} `type:"structure"`
33747
33748	// The expected version of the thing record in the registry. If the version
33749	// of the record in the registry does not match the expected version specified
33750	// in the request, the DeleteThing request is rejected with a VersionConflictException.
33751	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
33752
33753	// The name of the thing to delete.
33754	//
33755	// ThingName is a required field
33756	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
33757}
33758
33759// String returns the string representation
33760func (s DeleteThingInput) String() string {
33761	return awsutil.Prettify(s)
33762}
33763
33764// GoString returns the string representation
33765func (s DeleteThingInput) GoString() string {
33766	return s.String()
33767}
33768
33769// Validate inspects the fields of the type to determine if they are valid.
33770func (s *DeleteThingInput) Validate() error {
33771	invalidParams := request.ErrInvalidParams{Context: "DeleteThingInput"}
33772	if s.ThingName == nil {
33773		invalidParams.Add(request.NewErrParamRequired("ThingName"))
33774	}
33775	if s.ThingName != nil && len(*s.ThingName) < 1 {
33776		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
33777	}
33778
33779	if invalidParams.Len() > 0 {
33780		return invalidParams
33781	}
33782	return nil
33783}
33784
33785// SetExpectedVersion sets the ExpectedVersion field's value.
33786func (s *DeleteThingInput) SetExpectedVersion(v int64) *DeleteThingInput {
33787	s.ExpectedVersion = &v
33788	return s
33789}
33790
33791// SetThingName sets the ThingName field's value.
33792func (s *DeleteThingInput) SetThingName(v string) *DeleteThingInput {
33793	s.ThingName = &v
33794	return s
33795}
33796
33797// The output of the DeleteThing operation.
33798type DeleteThingOutput struct {
33799	_ struct{} `type:"structure"`
33800}
33801
33802// String returns the string representation
33803func (s DeleteThingOutput) String() string {
33804	return awsutil.Prettify(s)
33805}
33806
33807// GoString returns the string representation
33808func (s DeleteThingOutput) GoString() string {
33809	return s.String()
33810}
33811
33812// The input for the DeleteThingType operation.
33813type DeleteThingTypeInput struct {
33814	_ struct{} `type:"structure"`
33815
33816	// The name of the thing type.
33817	//
33818	// ThingTypeName is a required field
33819	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
33820}
33821
33822// String returns the string representation
33823func (s DeleteThingTypeInput) String() string {
33824	return awsutil.Prettify(s)
33825}
33826
33827// GoString returns the string representation
33828func (s DeleteThingTypeInput) GoString() string {
33829	return s.String()
33830}
33831
33832// Validate inspects the fields of the type to determine if they are valid.
33833func (s *DeleteThingTypeInput) Validate() error {
33834	invalidParams := request.ErrInvalidParams{Context: "DeleteThingTypeInput"}
33835	if s.ThingTypeName == nil {
33836		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
33837	}
33838	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
33839		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
33840	}
33841
33842	if invalidParams.Len() > 0 {
33843		return invalidParams
33844	}
33845	return nil
33846}
33847
33848// SetThingTypeName sets the ThingTypeName field's value.
33849func (s *DeleteThingTypeInput) SetThingTypeName(v string) *DeleteThingTypeInput {
33850	s.ThingTypeName = &v
33851	return s
33852}
33853
33854// The output for the DeleteThingType operation.
33855type DeleteThingTypeOutput struct {
33856	_ struct{} `type:"structure"`
33857}
33858
33859// String returns the string representation
33860func (s DeleteThingTypeOutput) String() string {
33861	return awsutil.Prettify(s)
33862}
33863
33864// GoString returns the string representation
33865func (s DeleteThingTypeOutput) GoString() string {
33866	return s.String()
33867}
33868
33869type DeleteTopicRuleDestinationInput struct {
33870	_ struct{} `type:"structure"`
33871
33872	// The ARN of the topic rule destination to delete.
33873	//
33874	// Arn is a required field
33875	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
33876}
33877
33878// String returns the string representation
33879func (s DeleteTopicRuleDestinationInput) String() string {
33880	return awsutil.Prettify(s)
33881}
33882
33883// GoString returns the string representation
33884func (s DeleteTopicRuleDestinationInput) GoString() string {
33885	return s.String()
33886}
33887
33888// Validate inspects the fields of the type to determine if they are valid.
33889func (s *DeleteTopicRuleDestinationInput) Validate() error {
33890	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleDestinationInput"}
33891	if s.Arn == nil {
33892		invalidParams.Add(request.NewErrParamRequired("Arn"))
33893	}
33894	if s.Arn != nil && len(*s.Arn) < 1 {
33895		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
33896	}
33897
33898	if invalidParams.Len() > 0 {
33899		return invalidParams
33900	}
33901	return nil
33902}
33903
33904// SetArn sets the Arn field's value.
33905func (s *DeleteTopicRuleDestinationInput) SetArn(v string) *DeleteTopicRuleDestinationInput {
33906	s.Arn = &v
33907	return s
33908}
33909
33910type DeleteTopicRuleDestinationOutput struct {
33911	_ struct{} `type:"structure"`
33912}
33913
33914// String returns the string representation
33915func (s DeleteTopicRuleDestinationOutput) String() string {
33916	return awsutil.Prettify(s)
33917}
33918
33919// GoString returns the string representation
33920func (s DeleteTopicRuleDestinationOutput) GoString() string {
33921	return s.String()
33922}
33923
33924// The input for the DeleteTopicRule operation.
33925type DeleteTopicRuleInput struct {
33926	_ struct{} `type:"structure"`
33927
33928	// The name of the rule.
33929	//
33930	// RuleName is a required field
33931	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
33932}
33933
33934// String returns the string representation
33935func (s DeleteTopicRuleInput) String() string {
33936	return awsutil.Prettify(s)
33937}
33938
33939// GoString returns the string representation
33940func (s DeleteTopicRuleInput) GoString() string {
33941	return s.String()
33942}
33943
33944// Validate inspects the fields of the type to determine if they are valid.
33945func (s *DeleteTopicRuleInput) Validate() error {
33946	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleInput"}
33947	if s.RuleName == nil {
33948		invalidParams.Add(request.NewErrParamRequired("RuleName"))
33949	}
33950	if s.RuleName != nil && len(*s.RuleName) < 1 {
33951		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
33952	}
33953
33954	if invalidParams.Len() > 0 {
33955		return invalidParams
33956	}
33957	return nil
33958}
33959
33960// SetRuleName sets the RuleName field's value.
33961func (s *DeleteTopicRuleInput) SetRuleName(v string) *DeleteTopicRuleInput {
33962	s.RuleName = &v
33963	return s
33964}
33965
33966type DeleteTopicRuleOutput struct {
33967	_ struct{} `type:"structure"`
33968}
33969
33970// String returns the string representation
33971func (s DeleteTopicRuleOutput) String() string {
33972	return awsutil.Prettify(s)
33973}
33974
33975// GoString returns the string representation
33976func (s DeleteTopicRuleOutput) GoString() string {
33977	return s.String()
33978}
33979
33980type DeleteV2LoggingLevelInput struct {
33981	_ struct{} `type:"structure"`
33982
33983	// The name of the resource for which you are configuring logging.
33984	//
33985	// TargetName is a required field
33986	TargetName *string `location:"querystring" locationName:"targetName" type:"string" required:"true"`
33987
33988	// The type of resource for which you are configuring logging. Must be THING_Group.
33989	//
33990	// TargetType is a required field
33991	TargetType *string `location:"querystring" locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
33992}
33993
33994// String returns the string representation
33995func (s DeleteV2LoggingLevelInput) String() string {
33996	return awsutil.Prettify(s)
33997}
33998
33999// GoString returns the string representation
34000func (s DeleteV2LoggingLevelInput) GoString() string {
34001	return s.String()
34002}
34003
34004// Validate inspects the fields of the type to determine if they are valid.
34005func (s *DeleteV2LoggingLevelInput) Validate() error {
34006	invalidParams := request.ErrInvalidParams{Context: "DeleteV2LoggingLevelInput"}
34007	if s.TargetName == nil {
34008		invalidParams.Add(request.NewErrParamRequired("TargetName"))
34009	}
34010	if s.TargetType == nil {
34011		invalidParams.Add(request.NewErrParamRequired("TargetType"))
34012	}
34013
34014	if invalidParams.Len() > 0 {
34015		return invalidParams
34016	}
34017	return nil
34018}
34019
34020// SetTargetName sets the TargetName field's value.
34021func (s *DeleteV2LoggingLevelInput) SetTargetName(v string) *DeleteV2LoggingLevelInput {
34022	s.TargetName = &v
34023	return s
34024}
34025
34026// SetTargetType sets the TargetType field's value.
34027func (s *DeleteV2LoggingLevelInput) SetTargetType(v string) *DeleteV2LoggingLevelInput {
34028	s.TargetType = &v
34029	return s
34030}
34031
34032type DeleteV2LoggingLevelOutput struct {
34033	_ struct{} `type:"structure"`
34034}
34035
34036// String returns the string representation
34037func (s DeleteV2LoggingLevelOutput) String() string {
34038	return awsutil.Prettify(s)
34039}
34040
34041// GoString returns the string representation
34042func (s DeleteV2LoggingLevelOutput) GoString() string {
34043	return s.String()
34044}
34045
34046// Contains information that denied the authorization.
34047type Denied struct {
34048	_ struct{} `type:"structure"`
34049
34050	// Information that explicitly denies the authorization.
34051	ExplicitDeny *ExplicitDeny `locationName:"explicitDeny" type:"structure"`
34052
34053	// Information that implicitly denies the authorization. When a policy doesn't
34054	// explicitly deny or allow an action on a resource it is considered an implicit
34055	// deny.
34056	ImplicitDeny *ImplicitDeny `locationName:"implicitDeny" type:"structure"`
34057}
34058
34059// String returns the string representation
34060func (s Denied) String() string {
34061	return awsutil.Prettify(s)
34062}
34063
34064// GoString returns the string representation
34065func (s Denied) GoString() string {
34066	return s.String()
34067}
34068
34069// SetExplicitDeny sets the ExplicitDeny field's value.
34070func (s *Denied) SetExplicitDeny(v *ExplicitDeny) *Denied {
34071	s.ExplicitDeny = v
34072	return s
34073}
34074
34075// SetImplicitDeny sets the ImplicitDeny field's value.
34076func (s *Denied) SetImplicitDeny(v *ImplicitDeny) *Denied {
34077	s.ImplicitDeny = v
34078	return s
34079}
34080
34081// The input for the DeprecateThingType operation.
34082type DeprecateThingTypeInput struct {
34083	_ struct{} `type:"structure"`
34084
34085	// The name of the thing type to deprecate.
34086	//
34087	// ThingTypeName is a required field
34088	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
34089
34090	// Whether to undeprecate a deprecated thing type. If true, the thing type will
34091	// not be deprecated anymore and you can associate it with things.
34092	UndoDeprecate *bool `locationName:"undoDeprecate" type:"boolean"`
34093}
34094
34095// String returns the string representation
34096func (s DeprecateThingTypeInput) String() string {
34097	return awsutil.Prettify(s)
34098}
34099
34100// GoString returns the string representation
34101func (s DeprecateThingTypeInput) GoString() string {
34102	return s.String()
34103}
34104
34105// Validate inspects the fields of the type to determine if they are valid.
34106func (s *DeprecateThingTypeInput) Validate() error {
34107	invalidParams := request.ErrInvalidParams{Context: "DeprecateThingTypeInput"}
34108	if s.ThingTypeName == nil {
34109		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
34110	}
34111	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
34112		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
34113	}
34114
34115	if invalidParams.Len() > 0 {
34116		return invalidParams
34117	}
34118	return nil
34119}
34120
34121// SetThingTypeName sets the ThingTypeName field's value.
34122func (s *DeprecateThingTypeInput) SetThingTypeName(v string) *DeprecateThingTypeInput {
34123	s.ThingTypeName = &v
34124	return s
34125}
34126
34127// SetUndoDeprecate sets the UndoDeprecate field's value.
34128func (s *DeprecateThingTypeInput) SetUndoDeprecate(v bool) *DeprecateThingTypeInput {
34129	s.UndoDeprecate = &v
34130	return s
34131}
34132
34133// The output for the DeprecateThingType operation.
34134type DeprecateThingTypeOutput struct {
34135	_ struct{} `type:"structure"`
34136}
34137
34138// String returns the string representation
34139func (s DeprecateThingTypeOutput) String() string {
34140	return awsutil.Prettify(s)
34141}
34142
34143// GoString returns the string representation
34144func (s DeprecateThingTypeOutput) GoString() string {
34145	return s.String()
34146}
34147
34148type DescribeAccountAuditConfigurationInput struct {
34149	_ struct{} `type:"structure"`
34150}
34151
34152// String returns the string representation
34153func (s DescribeAccountAuditConfigurationInput) String() string {
34154	return awsutil.Prettify(s)
34155}
34156
34157// GoString returns the string representation
34158func (s DescribeAccountAuditConfigurationInput) GoString() string {
34159	return s.String()
34160}
34161
34162type DescribeAccountAuditConfigurationOutput struct {
34163	_ struct{} `type:"structure"`
34164
34165	// Which audit checks are enabled and disabled for this account.
34166	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
34167
34168	// Information about the targets to which audit notifications are sent for this
34169	// account.
34170	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
34171
34172	// The ARN of the role that grants permission to AWS IoT to access information
34173	// about your devices, policies, certificates, and other items as required when
34174	// performing an audit.
34175	//
34176	// On the first call to UpdateAccountAuditConfiguration, this parameter is required.
34177	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
34178}
34179
34180// String returns the string representation
34181func (s DescribeAccountAuditConfigurationOutput) String() string {
34182	return awsutil.Prettify(s)
34183}
34184
34185// GoString returns the string representation
34186func (s DescribeAccountAuditConfigurationOutput) GoString() string {
34187	return s.String()
34188}
34189
34190// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
34191func (s *DescribeAccountAuditConfigurationOutput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *DescribeAccountAuditConfigurationOutput {
34192	s.AuditCheckConfigurations = v
34193	return s
34194}
34195
34196// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
34197func (s *DescribeAccountAuditConfigurationOutput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *DescribeAccountAuditConfigurationOutput {
34198	s.AuditNotificationTargetConfigurations = v
34199	return s
34200}
34201
34202// SetRoleArn sets the RoleArn field's value.
34203func (s *DescribeAccountAuditConfigurationOutput) SetRoleArn(v string) *DescribeAccountAuditConfigurationOutput {
34204	s.RoleArn = &v
34205	return s
34206}
34207
34208type DescribeAuditFindingInput struct {
34209	_ struct{} `type:"structure"`
34210
34211	// A unique identifier for a single audit finding. You can use this identifier
34212	// to apply mitigation actions to the finding.
34213	//
34214	// FindingId is a required field
34215	FindingId *string `location:"uri" locationName:"findingId" min:"1" type:"string" required:"true"`
34216}
34217
34218// String returns the string representation
34219func (s DescribeAuditFindingInput) String() string {
34220	return awsutil.Prettify(s)
34221}
34222
34223// GoString returns the string representation
34224func (s DescribeAuditFindingInput) GoString() string {
34225	return s.String()
34226}
34227
34228// Validate inspects the fields of the type to determine if they are valid.
34229func (s *DescribeAuditFindingInput) Validate() error {
34230	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditFindingInput"}
34231	if s.FindingId == nil {
34232		invalidParams.Add(request.NewErrParamRequired("FindingId"))
34233	}
34234	if s.FindingId != nil && len(*s.FindingId) < 1 {
34235		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
34236	}
34237
34238	if invalidParams.Len() > 0 {
34239		return invalidParams
34240	}
34241	return nil
34242}
34243
34244// SetFindingId sets the FindingId field's value.
34245func (s *DescribeAuditFindingInput) SetFindingId(v string) *DescribeAuditFindingInput {
34246	s.FindingId = &v
34247	return s
34248}
34249
34250type DescribeAuditFindingOutput struct {
34251	_ struct{} `type:"structure"`
34252
34253	// The findings (results) of the audit.
34254	Finding *AuditFinding `locationName:"finding" type:"structure"`
34255}
34256
34257// String returns the string representation
34258func (s DescribeAuditFindingOutput) String() string {
34259	return awsutil.Prettify(s)
34260}
34261
34262// GoString returns the string representation
34263func (s DescribeAuditFindingOutput) GoString() string {
34264	return s.String()
34265}
34266
34267// SetFinding sets the Finding field's value.
34268func (s *DescribeAuditFindingOutput) SetFinding(v *AuditFinding) *DescribeAuditFindingOutput {
34269	s.Finding = v
34270	return s
34271}
34272
34273type DescribeAuditMitigationActionsTaskInput struct {
34274	_ struct{} `type:"structure"`
34275
34276	// The unique identifier for the audit mitigation task.
34277	//
34278	// TaskId is a required field
34279	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
34280}
34281
34282// String returns the string representation
34283func (s DescribeAuditMitigationActionsTaskInput) String() string {
34284	return awsutil.Prettify(s)
34285}
34286
34287// GoString returns the string representation
34288func (s DescribeAuditMitigationActionsTaskInput) GoString() string {
34289	return s.String()
34290}
34291
34292// Validate inspects the fields of the type to determine if they are valid.
34293func (s *DescribeAuditMitigationActionsTaskInput) Validate() error {
34294	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditMitigationActionsTaskInput"}
34295	if s.TaskId == nil {
34296		invalidParams.Add(request.NewErrParamRequired("TaskId"))
34297	}
34298	if s.TaskId != nil && len(*s.TaskId) < 1 {
34299		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
34300	}
34301
34302	if invalidParams.Len() > 0 {
34303		return invalidParams
34304	}
34305	return nil
34306}
34307
34308// SetTaskId sets the TaskId field's value.
34309func (s *DescribeAuditMitigationActionsTaskInput) SetTaskId(v string) *DescribeAuditMitigationActionsTaskInput {
34310	s.TaskId = &v
34311	return s
34312}
34313
34314type DescribeAuditMitigationActionsTaskOutput struct {
34315	_ struct{} `type:"structure"`
34316
34317	// Specifies the mitigation actions and their parameters that are applied as
34318	// part of this task.
34319	ActionsDefinition []*MitigationAction `locationName:"actionsDefinition" type:"list"`
34320
34321	// Specifies the mitigation actions that should be applied to specific audit
34322	// checks.
34323	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map"`
34324
34325	// The date and time when the task was completed or canceled.
34326	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
34327
34328	// The date and time when the task was started.
34329	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
34330
34331	// Identifies the findings to which the mitigation actions are applied. This
34332	// can be by audit checks, by audit task, or a set of findings.
34333	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure"`
34334
34335	// Aggregate counts of the results when the mitigation tasks were applied to
34336	// the findings for this audit mitigation actions task.
34337	TaskStatistics map[string]*TaskStatisticsForAuditCheck `locationName:"taskStatistics" type:"map"`
34338
34339	// The current status of the task.
34340	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
34341}
34342
34343// String returns the string representation
34344func (s DescribeAuditMitigationActionsTaskOutput) String() string {
34345	return awsutil.Prettify(s)
34346}
34347
34348// GoString returns the string representation
34349func (s DescribeAuditMitigationActionsTaskOutput) GoString() string {
34350	return s.String()
34351}
34352
34353// SetActionsDefinition sets the ActionsDefinition field's value.
34354func (s *DescribeAuditMitigationActionsTaskOutput) SetActionsDefinition(v []*MitigationAction) *DescribeAuditMitigationActionsTaskOutput {
34355	s.ActionsDefinition = v
34356	return s
34357}
34358
34359// SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
34360func (s *DescribeAuditMitigationActionsTaskOutput) SetAuditCheckToActionsMapping(v map[string][]*string) *DescribeAuditMitigationActionsTaskOutput {
34361	s.AuditCheckToActionsMapping = v
34362	return s
34363}
34364
34365// SetEndTime sets the EndTime field's value.
34366func (s *DescribeAuditMitigationActionsTaskOutput) SetEndTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
34367	s.EndTime = &v
34368	return s
34369}
34370
34371// SetStartTime sets the StartTime field's value.
34372func (s *DescribeAuditMitigationActionsTaskOutput) SetStartTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
34373	s.StartTime = &v
34374	return s
34375}
34376
34377// SetTarget sets the Target field's value.
34378func (s *DescribeAuditMitigationActionsTaskOutput) SetTarget(v *AuditMitigationActionsTaskTarget) *DescribeAuditMitigationActionsTaskOutput {
34379	s.Target = v
34380	return s
34381}
34382
34383// SetTaskStatistics sets the TaskStatistics field's value.
34384func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatistics(v map[string]*TaskStatisticsForAuditCheck) *DescribeAuditMitigationActionsTaskOutput {
34385	s.TaskStatistics = v
34386	return s
34387}
34388
34389// SetTaskStatus sets the TaskStatus field's value.
34390func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatus(v string) *DescribeAuditMitigationActionsTaskOutput {
34391	s.TaskStatus = &v
34392	return s
34393}
34394
34395type DescribeAuditSuppressionInput struct {
34396	_ struct{} `type:"structure"`
34397
34398	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
34399	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
34400	// to select which checks are enabled.)
34401	//
34402	// CheckName is a required field
34403	CheckName *string `locationName:"checkName" type:"string" required:"true"`
34404
34405	// Information that identifies the noncompliant resource.
34406	//
34407	// ResourceIdentifier is a required field
34408	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
34409}
34410
34411// String returns the string representation
34412func (s DescribeAuditSuppressionInput) String() string {
34413	return awsutil.Prettify(s)
34414}
34415
34416// GoString returns the string representation
34417func (s DescribeAuditSuppressionInput) GoString() string {
34418	return s.String()
34419}
34420
34421// Validate inspects the fields of the type to determine if they are valid.
34422func (s *DescribeAuditSuppressionInput) Validate() error {
34423	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditSuppressionInput"}
34424	if s.CheckName == nil {
34425		invalidParams.Add(request.NewErrParamRequired("CheckName"))
34426	}
34427	if s.ResourceIdentifier == nil {
34428		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
34429	}
34430	if s.ResourceIdentifier != nil {
34431		if err := s.ResourceIdentifier.Validate(); err != nil {
34432			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
34433		}
34434	}
34435
34436	if invalidParams.Len() > 0 {
34437		return invalidParams
34438	}
34439	return nil
34440}
34441
34442// SetCheckName sets the CheckName field's value.
34443func (s *DescribeAuditSuppressionInput) SetCheckName(v string) *DescribeAuditSuppressionInput {
34444	s.CheckName = &v
34445	return s
34446}
34447
34448// SetResourceIdentifier sets the ResourceIdentifier field's value.
34449func (s *DescribeAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *DescribeAuditSuppressionInput {
34450	s.ResourceIdentifier = v
34451	return s
34452}
34453
34454type DescribeAuditSuppressionOutput struct {
34455	_ struct{} `type:"structure"`
34456
34457	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
34458	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
34459	// to select which checks are enabled.)
34460	CheckName *string `locationName:"checkName" type:"string"`
34461
34462	// The description of the audit suppression.
34463	Description *string `locationName:"description" type:"string"`
34464
34465	// The epoch timestamp in seconds at which this suppression expires.
34466	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
34467
34468	// Information that identifies the noncompliant resource.
34469	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
34470
34471	// Indicates whether a suppression should exist indefinitely or not.
34472	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
34473}
34474
34475// String returns the string representation
34476func (s DescribeAuditSuppressionOutput) String() string {
34477	return awsutil.Prettify(s)
34478}
34479
34480// GoString returns the string representation
34481func (s DescribeAuditSuppressionOutput) GoString() string {
34482	return s.String()
34483}
34484
34485// SetCheckName sets the CheckName field's value.
34486func (s *DescribeAuditSuppressionOutput) SetCheckName(v string) *DescribeAuditSuppressionOutput {
34487	s.CheckName = &v
34488	return s
34489}
34490
34491// SetDescription sets the Description field's value.
34492func (s *DescribeAuditSuppressionOutput) SetDescription(v string) *DescribeAuditSuppressionOutput {
34493	s.Description = &v
34494	return s
34495}
34496
34497// SetExpirationDate sets the ExpirationDate field's value.
34498func (s *DescribeAuditSuppressionOutput) SetExpirationDate(v time.Time) *DescribeAuditSuppressionOutput {
34499	s.ExpirationDate = &v
34500	return s
34501}
34502
34503// SetResourceIdentifier sets the ResourceIdentifier field's value.
34504func (s *DescribeAuditSuppressionOutput) SetResourceIdentifier(v *ResourceIdentifier) *DescribeAuditSuppressionOutput {
34505	s.ResourceIdentifier = v
34506	return s
34507}
34508
34509// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
34510func (s *DescribeAuditSuppressionOutput) SetSuppressIndefinitely(v bool) *DescribeAuditSuppressionOutput {
34511	s.SuppressIndefinitely = &v
34512	return s
34513}
34514
34515type DescribeAuditTaskInput struct {
34516	_ struct{} `type:"structure"`
34517
34518	// The ID of the audit whose information you want to get.
34519	//
34520	// TaskId is a required field
34521	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
34522}
34523
34524// String returns the string representation
34525func (s DescribeAuditTaskInput) String() string {
34526	return awsutil.Prettify(s)
34527}
34528
34529// GoString returns the string representation
34530func (s DescribeAuditTaskInput) GoString() string {
34531	return s.String()
34532}
34533
34534// Validate inspects the fields of the type to determine if they are valid.
34535func (s *DescribeAuditTaskInput) Validate() error {
34536	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditTaskInput"}
34537	if s.TaskId == nil {
34538		invalidParams.Add(request.NewErrParamRequired("TaskId"))
34539	}
34540	if s.TaskId != nil && len(*s.TaskId) < 1 {
34541		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
34542	}
34543
34544	if invalidParams.Len() > 0 {
34545		return invalidParams
34546	}
34547	return nil
34548}
34549
34550// SetTaskId sets the TaskId field's value.
34551func (s *DescribeAuditTaskInput) SetTaskId(v string) *DescribeAuditTaskInput {
34552	s.TaskId = &v
34553	return s
34554}
34555
34556type DescribeAuditTaskOutput struct {
34557	_ struct{} `type:"structure"`
34558
34559	// Detailed information about each check performed during this audit.
34560	AuditDetails map[string]*AuditCheckDetails `locationName:"auditDetails" type:"map"`
34561
34562	// The name of the scheduled audit (only if the audit was a scheduled audit).
34563	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
34564
34565	// The time the audit started.
34566	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
34567
34568	// Statistical information about the audit.
34569	TaskStatistics *TaskStatistics `locationName:"taskStatistics" type:"structure"`
34570
34571	// The status of the audit: one of "IN_PROGRESS", "COMPLETED", "FAILED", or
34572	// "CANCELED".
34573	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
34574
34575	// The type of audit: "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
34576	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
34577}
34578
34579// String returns the string representation
34580func (s DescribeAuditTaskOutput) String() string {
34581	return awsutil.Prettify(s)
34582}
34583
34584// GoString returns the string representation
34585func (s DescribeAuditTaskOutput) GoString() string {
34586	return s.String()
34587}
34588
34589// SetAuditDetails sets the AuditDetails field's value.
34590func (s *DescribeAuditTaskOutput) SetAuditDetails(v map[string]*AuditCheckDetails) *DescribeAuditTaskOutput {
34591	s.AuditDetails = v
34592	return s
34593}
34594
34595// SetScheduledAuditName sets the ScheduledAuditName field's value.
34596func (s *DescribeAuditTaskOutput) SetScheduledAuditName(v string) *DescribeAuditTaskOutput {
34597	s.ScheduledAuditName = &v
34598	return s
34599}
34600
34601// SetTaskStartTime sets the TaskStartTime field's value.
34602func (s *DescribeAuditTaskOutput) SetTaskStartTime(v time.Time) *DescribeAuditTaskOutput {
34603	s.TaskStartTime = &v
34604	return s
34605}
34606
34607// SetTaskStatistics sets the TaskStatistics field's value.
34608func (s *DescribeAuditTaskOutput) SetTaskStatistics(v *TaskStatistics) *DescribeAuditTaskOutput {
34609	s.TaskStatistics = v
34610	return s
34611}
34612
34613// SetTaskStatus sets the TaskStatus field's value.
34614func (s *DescribeAuditTaskOutput) SetTaskStatus(v string) *DescribeAuditTaskOutput {
34615	s.TaskStatus = &v
34616	return s
34617}
34618
34619// SetTaskType sets the TaskType field's value.
34620func (s *DescribeAuditTaskOutput) SetTaskType(v string) *DescribeAuditTaskOutput {
34621	s.TaskType = &v
34622	return s
34623}
34624
34625type DescribeAuthorizerInput struct {
34626	_ struct{} `type:"structure"`
34627
34628	// The name of the authorizer to describe.
34629	//
34630	// AuthorizerName is a required field
34631	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
34632}
34633
34634// String returns the string representation
34635func (s DescribeAuthorizerInput) String() string {
34636	return awsutil.Prettify(s)
34637}
34638
34639// GoString returns the string representation
34640func (s DescribeAuthorizerInput) GoString() string {
34641	return s.String()
34642}
34643
34644// Validate inspects the fields of the type to determine if they are valid.
34645func (s *DescribeAuthorizerInput) Validate() error {
34646	invalidParams := request.ErrInvalidParams{Context: "DescribeAuthorizerInput"}
34647	if s.AuthorizerName == nil {
34648		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
34649	}
34650	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
34651		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
34652	}
34653
34654	if invalidParams.Len() > 0 {
34655		return invalidParams
34656	}
34657	return nil
34658}
34659
34660// SetAuthorizerName sets the AuthorizerName field's value.
34661func (s *DescribeAuthorizerInput) SetAuthorizerName(v string) *DescribeAuthorizerInput {
34662	s.AuthorizerName = &v
34663	return s
34664}
34665
34666type DescribeAuthorizerOutput struct {
34667	_ struct{} `type:"structure"`
34668
34669	// The authorizer description.
34670	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
34671}
34672
34673// String returns the string representation
34674func (s DescribeAuthorizerOutput) String() string {
34675	return awsutil.Prettify(s)
34676}
34677
34678// GoString returns the string representation
34679func (s DescribeAuthorizerOutput) GoString() string {
34680	return s.String()
34681}
34682
34683// SetAuthorizerDescription sets the AuthorizerDescription field's value.
34684func (s *DescribeAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeAuthorizerOutput {
34685	s.AuthorizerDescription = v
34686	return s
34687}
34688
34689type DescribeBillingGroupInput struct {
34690	_ struct{} `type:"structure"`
34691
34692	// The name of the billing group.
34693	//
34694	// BillingGroupName is a required field
34695	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
34696}
34697
34698// String returns the string representation
34699func (s DescribeBillingGroupInput) String() string {
34700	return awsutil.Prettify(s)
34701}
34702
34703// GoString returns the string representation
34704func (s DescribeBillingGroupInput) GoString() string {
34705	return s.String()
34706}
34707
34708// Validate inspects the fields of the type to determine if they are valid.
34709func (s *DescribeBillingGroupInput) Validate() error {
34710	invalidParams := request.ErrInvalidParams{Context: "DescribeBillingGroupInput"}
34711	if s.BillingGroupName == nil {
34712		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
34713	}
34714	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
34715		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
34716	}
34717
34718	if invalidParams.Len() > 0 {
34719		return invalidParams
34720	}
34721	return nil
34722}
34723
34724// SetBillingGroupName sets the BillingGroupName field's value.
34725func (s *DescribeBillingGroupInput) SetBillingGroupName(v string) *DescribeBillingGroupInput {
34726	s.BillingGroupName = &v
34727	return s
34728}
34729
34730type DescribeBillingGroupOutput struct {
34731	_ struct{} `type:"structure"`
34732
34733	// The ARN of the billing group.
34734	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
34735
34736	// The ID of the billing group.
34737	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
34738
34739	// Additional information about the billing group.
34740	BillingGroupMetadata *BillingGroupMetadata `locationName:"billingGroupMetadata" type:"structure"`
34741
34742	// The name of the billing group.
34743	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
34744
34745	// The properties of the billing group.
34746	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
34747
34748	// The version of the billing group.
34749	Version *int64 `locationName:"version" type:"long"`
34750}
34751
34752// String returns the string representation
34753func (s DescribeBillingGroupOutput) String() string {
34754	return awsutil.Prettify(s)
34755}
34756
34757// GoString returns the string representation
34758func (s DescribeBillingGroupOutput) GoString() string {
34759	return s.String()
34760}
34761
34762// SetBillingGroupArn sets the BillingGroupArn field's value.
34763func (s *DescribeBillingGroupOutput) SetBillingGroupArn(v string) *DescribeBillingGroupOutput {
34764	s.BillingGroupArn = &v
34765	return s
34766}
34767
34768// SetBillingGroupId sets the BillingGroupId field's value.
34769func (s *DescribeBillingGroupOutput) SetBillingGroupId(v string) *DescribeBillingGroupOutput {
34770	s.BillingGroupId = &v
34771	return s
34772}
34773
34774// SetBillingGroupMetadata sets the BillingGroupMetadata field's value.
34775func (s *DescribeBillingGroupOutput) SetBillingGroupMetadata(v *BillingGroupMetadata) *DescribeBillingGroupOutput {
34776	s.BillingGroupMetadata = v
34777	return s
34778}
34779
34780// SetBillingGroupName sets the BillingGroupName field's value.
34781func (s *DescribeBillingGroupOutput) SetBillingGroupName(v string) *DescribeBillingGroupOutput {
34782	s.BillingGroupName = &v
34783	return s
34784}
34785
34786// SetBillingGroupProperties sets the BillingGroupProperties field's value.
34787func (s *DescribeBillingGroupOutput) SetBillingGroupProperties(v *BillingGroupProperties) *DescribeBillingGroupOutput {
34788	s.BillingGroupProperties = v
34789	return s
34790}
34791
34792// SetVersion sets the Version field's value.
34793func (s *DescribeBillingGroupOutput) SetVersion(v int64) *DescribeBillingGroupOutput {
34794	s.Version = &v
34795	return s
34796}
34797
34798// The input for the DescribeCACertificate operation.
34799type DescribeCACertificateInput struct {
34800	_ struct{} `type:"structure"`
34801
34802	// The CA certificate identifier.
34803	//
34804	// CertificateId is a required field
34805	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
34806}
34807
34808// String returns the string representation
34809func (s DescribeCACertificateInput) String() string {
34810	return awsutil.Prettify(s)
34811}
34812
34813// GoString returns the string representation
34814func (s DescribeCACertificateInput) GoString() string {
34815	return s.String()
34816}
34817
34818// Validate inspects the fields of the type to determine if they are valid.
34819func (s *DescribeCACertificateInput) Validate() error {
34820	invalidParams := request.ErrInvalidParams{Context: "DescribeCACertificateInput"}
34821	if s.CertificateId == nil {
34822		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
34823	}
34824	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
34825		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
34826	}
34827
34828	if invalidParams.Len() > 0 {
34829		return invalidParams
34830	}
34831	return nil
34832}
34833
34834// SetCertificateId sets the CertificateId field's value.
34835func (s *DescribeCACertificateInput) SetCertificateId(v string) *DescribeCACertificateInput {
34836	s.CertificateId = &v
34837	return s
34838}
34839
34840// The output from the DescribeCACertificate operation.
34841type DescribeCACertificateOutput struct {
34842	_ struct{} `type:"structure"`
34843
34844	// The CA certificate description.
34845	CertificateDescription *CACertificateDescription `locationName:"certificateDescription" type:"structure"`
34846
34847	// Information about the registration configuration.
34848	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
34849}
34850
34851// String returns the string representation
34852func (s DescribeCACertificateOutput) String() string {
34853	return awsutil.Prettify(s)
34854}
34855
34856// GoString returns the string representation
34857func (s DescribeCACertificateOutput) GoString() string {
34858	return s.String()
34859}
34860
34861// SetCertificateDescription sets the CertificateDescription field's value.
34862func (s *DescribeCACertificateOutput) SetCertificateDescription(v *CACertificateDescription) *DescribeCACertificateOutput {
34863	s.CertificateDescription = v
34864	return s
34865}
34866
34867// SetRegistrationConfig sets the RegistrationConfig field's value.
34868func (s *DescribeCACertificateOutput) SetRegistrationConfig(v *RegistrationConfig) *DescribeCACertificateOutput {
34869	s.RegistrationConfig = v
34870	return s
34871}
34872
34873// The input for the DescribeCertificate operation.
34874type DescribeCertificateInput struct {
34875	_ struct{} `type:"structure"`
34876
34877	// The ID of the certificate. (The last part of the certificate ARN contains
34878	// the certificate ID.)
34879	//
34880	// CertificateId is a required field
34881	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
34882}
34883
34884// String returns the string representation
34885func (s DescribeCertificateInput) String() string {
34886	return awsutil.Prettify(s)
34887}
34888
34889// GoString returns the string representation
34890func (s DescribeCertificateInput) GoString() string {
34891	return s.String()
34892}
34893
34894// Validate inspects the fields of the type to determine if they are valid.
34895func (s *DescribeCertificateInput) Validate() error {
34896	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateInput"}
34897	if s.CertificateId == nil {
34898		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
34899	}
34900	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
34901		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
34902	}
34903
34904	if invalidParams.Len() > 0 {
34905		return invalidParams
34906	}
34907	return nil
34908}
34909
34910// SetCertificateId sets the CertificateId field's value.
34911func (s *DescribeCertificateInput) SetCertificateId(v string) *DescribeCertificateInput {
34912	s.CertificateId = &v
34913	return s
34914}
34915
34916// The output of the DescribeCertificate operation.
34917type DescribeCertificateOutput struct {
34918	_ struct{} `type:"structure"`
34919
34920	// The description of the certificate.
34921	CertificateDescription *CertificateDescription `locationName:"certificateDescription" type:"structure"`
34922}
34923
34924// String returns the string representation
34925func (s DescribeCertificateOutput) String() string {
34926	return awsutil.Prettify(s)
34927}
34928
34929// GoString returns the string representation
34930func (s DescribeCertificateOutput) GoString() string {
34931	return s.String()
34932}
34933
34934// SetCertificateDescription sets the CertificateDescription field's value.
34935func (s *DescribeCertificateOutput) SetCertificateDescription(v *CertificateDescription) *DescribeCertificateOutput {
34936	s.CertificateDescription = v
34937	return s
34938}
34939
34940type DescribeCustomMetricInput struct {
34941	_ struct{} `type:"structure"`
34942
34943	// The name of the custom metric.
34944	//
34945	// MetricName is a required field
34946	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
34947}
34948
34949// String returns the string representation
34950func (s DescribeCustomMetricInput) String() string {
34951	return awsutil.Prettify(s)
34952}
34953
34954// GoString returns the string representation
34955func (s DescribeCustomMetricInput) GoString() string {
34956	return s.String()
34957}
34958
34959// Validate inspects the fields of the type to determine if they are valid.
34960func (s *DescribeCustomMetricInput) Validate() error {
34961	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomMetricInput"}
34962	if s.MetricName == nil {
34963		invalidParams.Add(request.NewErrParamRequired("MetricName"))
34964	}
34965	if s.MetricName != nil && len(*s.MetricName) < 1 {
34966		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
34967	}
34968
34969	if invalidParams.Len() > 0 {
34970		return invalidParams
34971	}
34972	return nil
34973}
34974
34975// SetMetricName sets the MetricName field's value.
34976func (s *DescribeCustomMetricInput) SetMetricName(v string) *DescribeCustomMetricInput {
34977	s.MetricName = &v
34978	return s
34979}
34980
34981type DescribeCustomMetricOutput struct {
34982	_ struct{} `type:"structure"`
34983
34984	// The creation date of the custom metric in milliseconds since epoch.
34985	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
34986
34987	// Field represents a friendly name in the console for the custom metric; doesn't
34988	// have to be unique. Don't use this name as the metric identifier in the device
34989	// metric report. Can be updated.
34990	DisplayName *string `locationName:"displayName" type:"string"`
34991
34992	// The time the custom metric was last modified in milliseconds since epoch.
34993	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
34994
34995	// The Amazon Resource Number (ARN) of the custom metric.
34996	MetricArn *string `locationName:"metricArn" type:"string"`
34997
34998	// The name of the custom metric.
34999	MetricName *string `locationName:"metricName" min:"1" type:"string"`
35000
35001	// The type of the custom metric. Types include string-list, ip-address-list,
35002	// number-list, and number.
35003	MetricType *string `locationName:"metricType" type:"string" enum:"CustomMetricType"`
35004}
35005
35006// String returns the string representation
35007func (s DescribeCustomMetricOutput) String() string {
35008	return awsutil.Prettify(s)
35009}
35010
35011// GoString returns the string representation
35012func (s DescribeCustomMetricOutput) GoString() string {
35013	return s.String()
35014}
35015
35016// SetCreationDate sets the CreationDate field's value.
35017func (s *DescribeCustomMetricOutput) SetCreationDate(v time.Time) *DescribeCustomMetricOutput {
35018	s.CreationDate = &v
35019	return s
35020}
35021
35022// SetDisplayName sets the DisplayName field's value.
35023func (s *DescribeCustomMetricOutput) SetDisplayName(v string) *DescribeCustomMetricOutput {
35024	s.DisplayName = &v
35025	return s
35026}
35027
35028// SetLastModifiedDate sets the LastModifiedDate field's value.
35029func (s *DescribeCustomMetricOutput) SetLastModifiedDate(v time.Time) *DescribeCustomMetricOutput {
35030	s.LastModifiedDate = &v
35031	return s
35032}
35033
35034// SetMetricArn sets the MetricArn field's value.
35035func (s *DescribeCustomMetricOutput) SetMetricArn(v string) *DescribeCustomMetricOutput {
35036	s.MetricArn = &v
35037	return s
35038}
35039
35040// SetMetricName sets the MetricName field's value.
35041func (s *DescribeCustomMetricOutput) SetMetricName(v string) *DescribeCustomMetricOutput {
35042	s.MetricName = &v
35043	return s
35044}
35045
35046// SetMetricType sets the MetricType field's value.
35047func (s *DescribeCustomMetricOutput) SetMetricType(v string) *DescribeCustomMetricOutput {
35048	s.MetricType = &v
35049	return s
35050}
35051
35052type DescribeDefaultAuthorizerInput struct {
35053	_ struct{} `type:"structure"`
35054}
35055
35056// String returns the string representation
35057func (s DescribeDefaultAuthorizerInput) String() string {
35058	return awsutil.Prettify(s)
35059}
35060
35061// GoString returns the string representation
35062func (s DescribeDefaultAuthorizerInput) GoString() string {
35063	return s.String()
35064}
35065
35066type DescribeDefaultAuthorizerOutput struct {
35067	_ struct{} `type:"structure"`
35068
35069	// The default authorizer's description.
35070	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
35071}
35072
35073// String returns the string representation
35074func (s DescribeDefaultAuthorizerOutput) String() string {
35075	return awsutil.Prettify(s)
35076}
35077
35078// GoString returns the string representation
35079func (s DescribeDefaultAuthorizerOutput) GoString() string {
35080	return s.String()
35081}
35082
35083// SetAuthorizerDescription sets the AuthorizerDescription field's value.
35084func (s *DescribeDefaultAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeDefaultAuthorizerOutput {
35085	s.AuthorizerDescription = v
35086	return s
35087}
35088
35089type DescribeDetectMitigationActionsTaskInput struct {
35090	_ struct{} `type:"structure"`
35091
35092	// The unique identifier of the task.
35093	//
35094	// TaskId is a required field
35095	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
35096}
35097
35098// String returns the string representation
35099func (s DescribeDetectMitigationActionsTaskInput) String() string {
35100	return awsutil.Prettify(s)
35101}
35102
35103// GoString returns the string representation
35104func (s DescribeDetectMitigationActionsTaskInput) GoString() string {
35105	return s.String()
35106}
35107
35108// Validate inspects the fields of the type to determine if they are valid.
35109func (s *DescribeDetectMitigationActionsTaskInput) Validate() error {
35110	invalidParams := request.ErrInvalidParams{Context: "DescribeDetectMitigationActionsTaskInput"}
35111	if s.TaskId == nil {
35112		invalidParams.Add(request.NewErrParamRequired("TaskId"))
35113	}
35114	if s.TaskId != nil && len(*s.TaskId) < 1 {
35115		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
35116	}
35117
35118	if invalidParams.Len() > 0 {
35119		return invalidParams
35120	}
35121	return nil
35122}
35123
35124// SetTaskId sets the TaskId field's value.
35125func (s *DescribeDetectMitigationActionsTaskInput) SetTaskId(v string) *DescribeDetectMitigationActionsTaskInput {
35126	s.TaskId = &v
35127	return s
35128}
35129
35130type DescribeDetectMitigationActionsTaskOutput struct {
35131	_ struct{} `type:"structure"`
35132
35133	// The description of a task.
35134	TaskSummary *DetectMitigationActionsTaskSummary `locationName:"taskSummary" type:"structure"`
35135}
35136
35137// String returns the string representation
35138func (s DescribeDetectMitigationActionsTaskOutput) String() string {
35139	return awsutil.Prettify(s)
35140}
35141
35142// GoString returns the string representation
35143func (s DescribeDetectMitigationActionsTaskOutput) GoString() string {
35144	return s.String()
35145}
35146
35147// SetTaskSummary sets the TaskSummary field's value.
35148func (s *DescribeDetectMitigationActionsTaskOutput) SetTaskSummary(v *DetectMitigationActionsTaskSummary) *DescribeDetectMitigationActionsTaskOutput {
35149	s.TaskSummary = v
35150	return s
35151}
35152
35153type DescribeDimensionInput struct {
35154	_ struct{} `type:"structure"`
35155
35156	// The unique identifier for the dimension.
35157	//
35158	// Name is a required field
35159	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
35160}
35161
35162// String returns the string representation
35163func (s DescribeDimensionInput) String() string {
35164	return awsutil.Prettify(s)
35165}
35166
35167// GoString returns the string representation
35168func (s DescribeDimensionInput) GoString() string {
35169	return s.String()
35170}
35171
35172// Validate inspects the fields of the type to determine if they are valid.
35173func (s *DescribeDimensionInput) Validate() error {
35174	invalidParams := request.ErrInvalidParams{Context: "DescribeDimensionInput"}
35175	if s.Name == nil {
35176		invalidParams.Add(request.NewErrParamRequired("Name"))
35177	}
35178	if s.Name != nil && len(*s.Name) < 1 {
35179		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
35180	}
35181
35182	if invalidParams.Len() > 0 {
35183		return invalidParams
35184	}
35185	return nil
35186}
35187
35188// SetName sets the Name field's value.
35189func (s *DescribeDimensionInput) SetName(v string) *DescribeDimensionInput {
35190	s.Name = &v
35191	return s
35192}
35193
35194type DescribeDimensionOutput struct {
35195	_ struct{} `type:"structure"`
35196
35197	// The Amazon Resource Name (ARN) for the dimension.
35198	Arn *string `locationName:"arn" type:"string"`
35199
35200	// The date the dimension was created.
35201	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
35202
35203	// The date the dimension was last modified.
35204	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
35205
35206	// The unique identifier for the dimension.
35207	Name *string `locationName:"name" min:"1" type:"string"`
35208
35209	// The value or list of values used to scope the dimension. For example, for
35210	// topic filters, this is the pattern used to match the MQTT topic name.
35211	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
35212
35213	// The type of the dimension.
35214	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
35215}
35216
35217// String returns the string representation
35218func (s DescribeDimensionOutput) String() string {
35219	return awsutil.Prettify(s)
35220}
35221
35222// GoString returns the string representation
35223func (s DescribeDimensionOutput) GoString() string {
35224	return s.String()
35225}
35226
35227// SetArn sets the Arn field's value.
35228func (s *DescribeDimensionOutput) SetArn(v string) *DescribeDimensionOutput {
35229	s.Arn = &v
35230	return s
35231}
35232
35233// SetCreationDate sets the CreationDate field's value.
35234func (s *DescribeDimensionOutput) SetCreationDate(v time.Time) *DescribeDimensionOutput {
35235	s.CreationDate = &v
35236	return s
35237}
35238
35239// SetLastModifiedDate sets the LastModifiedDate field's value.
35240func (s *DescribeDimensionOutput) SetLastModifiedDate(v time.Time) *DescribeDimensionOutput {
35241	s.LastModifiedDate = &v
35242	return s
35243}
35244
35245// SetName sets the Name field's value.
35246func (s *DescribeDimensionOutput) SetName(v string) *DescribeDimensionOutput {
35247	s.Name = &v
35248	return s
35249}
35250
35251// SetStringValues sets the StringValues field's value.
35252func (s *DescribeDimensionOutput) SetStringValues(v []*string) *DescribeDimensionOutput {
35253	s.StringValues = v
35254	return s
35255}
35256
35257// SetType sets the Type field's value.
35258func (s *DescribeDimensionOutput) SetType(v string) *DescribeDimensionOutput {
35259	s.Type = &v
35260	return s
35261}
35262
35263type DescribeDomainConfigurationInput struct {
35264	_ struct{} `type:"structure"`
35265
35266	// The name of the domain configuration.
35267	//
35268	// DomainConfigurationName is a required field
35269	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
35270}
35271
35272// String returns the string representation
35273func (s DescribeDomainConfigurationInput) String() string {
35274	return awsutil.Prettify(s)
35275}
35276
35277// GoString returns the string representation
35278func (s DescribeDomainConfigurationInput) GoString() string {
35279	return s.String()
35280}
35281
35282// Validate inspects the fields of the type to determine if they are valid.
35283func (s *DescribeDomainConfigurationInput) Validate() error {
35284	invalidParams := request.ErrInvalidParams{Context: "DescribeDomainConfigurationInput"}
35285	if s.DomainConfigurationName == nil {
35286		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
35287	}
35288	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
35289		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
35290	}
35291
35292	if invalidParams.Len() > 0 {
35293		return invalidParams
35294	}
35295	return nil
35296}
35297
35298// SetDomainConfigurationName sets the DomainConfigurationName field's value.
35299func (s *DescribeDomainConfigurationInput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationInput {
35300	s.DomainConfigurationName = &v
35301	return s
35302}
35303
35304type DescribeDomainConfigurationOutput struct {
35305	_ struct{} `type:"structure"`
35306
35307	// An object that specifies the authorization service for a domain.
35308	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
35309
35310	// The ARN of the domain configuration.
35311	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
35312
35313	// The name of the domain configuration.
35314	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
35315
35316	// A Boolean value that specifies the current state of the domain configuration.
35317	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
35318
35319	// The name of the domain.
35320	DomainName *string `locationName:"domainName" min:"1" type:"string"`
35321
35322	// The type of the domain.
35323	DomainType *string `locationName:"domainType" type:"string" enum:"DomainType"`
35324
35325	// The date and time the domain configuration's status was last changed.
35326	LastStatusChangeDate *time.Time `locationName:"lastStatusChangeDate" type:"timestamp"`
35327
35328	// A list containing summary information about the server certificate included
35329	// in the domain configuration.
35330	ServerCertificates []*ServerCertificateSummary `locationName:"serverCertificates" type:"list"`
35331
35332	// The type of service delivered by the endpoint.
35333	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
35334}
35335
35336// String returns the string representation
35337func (s DescribeDomainConfigurationOutput) String() string {
35338	return awsutil.Prettify(s)
35339}
35340
35341// GoString returns the string representation
35342func (s DescribeDomainConfigurationOutput) GoString() string {
35343	return s.String()
35344}
35345
35346// SetAuthorizerConfig sets the AuthorizerConfig field's value.
35347func (s *DescribeDomainConfigurationOutput) SetAuthorizerConfig(v *AuthorizerConfig) *DescribeDomainConfigurationOutput {
35348	s.AuthorizerConfig = v
35349	return s
35350}
35351
35352// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
35353func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationArn(v string) *DescribeDomainConfigurationOutput {
35354	s.DomainConfigurationArn = &v
35355	return s
35356}
35357
35358// SetDomainConfigurationName sets the DomainConfigurationName field's value.
35359func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationOutput {
35360	s.DomainConfigurationName = &v
35361	return s
35362}
35363
35364// SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
35365func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationStatus(v string) *DescribeDomainConfigurationOutput {
35366	s.DomainConfigurationStatus = &v
35367	return s
35368}
35369
35370// SetDomainName sets the DomainName field's value.
35371func (s *DescribeDomainConfigurationOutput) SetDomainName(v string) *DescribeDomainConfigurationOutput {
35372	s.DomainName = &v
35373	return s
35374}
35375
35376// SetDomainType sets the DomainType field's value.
35377func (s *DescribeDomainConfigurationOutput) SetDomainType(v string) *DescribeDomainConfigurationOutput {
35378	s.DomainType = &v
35379	return s
35380}
35381
35382// SetLastStatusChangeDate sets the LastStatusChangeDate field's value.
35383func (s *DescribeDomainConfigurationOutput) SetLastStatusChangeDate(v time.Time) *DescribeDomainConfigurationOutput {
35384	s.LastStatusChangeDate = &v
35385	return s
35386}
35387
35388// SetServerCertificates sets the ServerCertificates field's value.
35389func (s *DescribeDomainConfigurationOutput) SetServerCertificates(v []*ServerCertificateSummary) *DescribeDomainConfigurationOutput {
35390	s.ServerCertificates = v
35391	return s
35392}
35393
35394// SetServiceType sets the ServiceType field's value.
35395func (s *DescribeDomainConfigurationOutput) SetServiceType(v string) *DescribeDomainConfigurationOutput {
35396	s.ServiceType = &v
35397	return s
35398}
35399
35400// The input for the DescribeEndpoint operation.
35401type DescribeEndpointInput struct {
35402	_ struct{} `type:"structure"`
35403
35404	// The endpoint type. Valid endpoint types include:
35405	//
35406	//    * iot:Data - Returns a VeriSign signed data endpoint.
35407	//
35408	//    * iot:Data-ATS - Returns an ATS signed data endpoint.
35409	//
35410	//    * iot:CredentialProvider - Returns an AWS IoT credentials provider API
35411	//    endpoint.
35412	//
35413	//    * iot:Jobs - Returns an AWS IoT device management Jobs API endpoint.
35414	//
35415	// We strongly recommend that customers use the newer iot:Data-ATS endpoint
35416	// type to avoid issues related to the widespread distrust of Symantec certificate
35417	// authorities.
35418	EndpointType *string `location:"querystring" locationName:"endpointType" type:"string"`
35419}
35420
35421// String returns the string representation
35422func (s DescribeEndpointInput) String() string {
35423	return awsutil.Prettify(s)
35424}
35425
35426// GoString returns the string representation
35427func (s DescribeEndpointInput) GoString() string {
35428	return s.String()
35429}
35430
35431// SetEndpointType sets the EndpointType field's value.
35432func (s *DescribeEndpointInput) SetEndpointType(v string) *DescribeEndpointInput {
35433	s.EndpointType = &v
35434	return s
35435}
35436
35437// The output from the DescribeEndpoint operation.
35438type DescribeEndpointOutput struct {
35439	_ struct{} `type:"structure"`
35440
35441	// The endpoint. The format of the endpoint is as follows: identifier.iot.region.amazonaws.com.
35442	EndpointAddress *string `locationName:"endpointAddress" type:"string"`
35443}
35444
35445// String returns the string representation
35446func (s DescribeEndpointOutput) String() string {
35447	return awsutil.Prettify(s)
35448}
35449
35450// GoString returns the string representation
35451func (s DescribeEndpointOutput) GoString() string {
35452	return s.String()
35453}
35454
35455// SetEndpointAddress sets the EndpointAddress field's value.
35456func (s *DescribeEndpointOutput) SetEndpointAddress(v string) *DescribeEndpointOutput {
35457	s.EndpointAddress = &v
35458	return s
35459}
35460
35461type DescribeEventConfigurationsInput struct {
35462	_ struct{} `type:"structure"`
35463}
35464
35465// String returns the string representation
35466func (s DescribeEventConfigurationsInput) String() string {
35467	return awsutil.Prettify(s)
35468}
35469
35470// GoString returns the string representation
35471func (s DescribeEventConfigurationsInput) GoString() string {
35472	return s.String()
35473}
35474
35475type DescribeEventConfigurationsOutput struct {
35476	_ struct{} `type:"structure"`
35477
35478	// The creation date of the event configuration.
35479	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
35480
35481	// The event configurations.
35482	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
35483
35484	// The date the event configurations were last modified.
35485	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
35486}
35487
35488// String returns the string representation
35489func (s DescribeEventConfigurationsOutput) String() string {
35490	return awsutil.Prettify(s)
35491}
35492
35493// GoString returns the string representation
35494func (s DescribeEventConfigurationsOutput) GoString() string {
35495	return s.String()
35496}
35497
35498// SetCreationDate sets the CreationDate field's value.
35499func (s *DescribeEventConfigurationsOutput) SetCreationDate(v time.Time) *DescribeEventConfigurationsOutput {
35500	s.CreationDate = &v
35501	return s
35502}
35503
35504// SetEventConfigurations sets the EventConfigurations field's value.
35505func (s *DescribeEventConfigurationsOutput) SetEventConfigurations(v map[string]*Configuration) *DescribeEventConfigurationsOutput {
35506	s.EventConfigurations = v
35507	return s
35508}
35509
35510// SetLastModifiedDate sets the LastModifiedDate field's value.
35511func (s *DescribeEventConfigurationsOutput) SetLastModifiedDate(v time.Time) *DescribeEventConfigurationsOutput {
35512	s.LastModifiedDate = &v
35513	return s
35514}
35515
35516type DescribeIndexInput struct {
35517	_ struct{} `type:"structure"`
35518
35519	// The index name.
35520	//
35521	// IndexName is a required field
35522	IndexName *string `location:"uri" locationName:"indexName" min:"1" type:"string" required:"true"`
35523}
35524
35525// String returns the string representation
35526func (s DescribeIndexInput) String() string {
35527	return awsutil.Prettify(s)
35528}
35529
35530// GoString returns the string representation
35531func (s DescribeIndexInput) GoString() string {
35532	return s.String()
35533}
35534
35535// Validate inspects the fields of the type to determine if they are valid.
35536func (s *DescribeIndexInput) Validate() error {
35537	invalidParams := request.ErrInvalidParams{Context: "DescribeIndexInput"}
35538	if s.IndexName == nil {
35539		invalidParams.Add(request.NewErrParamRequired("IndexName"))
35540	}
35541	if s.IndexName != nil && len(*s.IndexName) < 1 {
35542		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
35543	}
35544
35545	if invalidParams.Len() > 0 {
35546		return invalidParams
35547	}
35548	return nil
35549}
35550
35551// SetIndexName sets the IndexName field's value.
35552func (s *DescribeIndexInput) SetIndexName(v string) *DescribeIndexInput {
35553	s.IndexName = &v
35554	return s
35555}
35556
35557type DescribeIndexOutput struct {
35558	_ struct{} `type:"structure"`
35559
35560	// The index name.
35561	IndexName *string `locationName:"indexName" min:"1" type:"string"`
35562
35563	// The index status.
35564	IndexStatus *string `locationName:"indexStatus" type:"string" enum:"IndexStatus"`
35565
35566	// Contains a value that specifies the type of indexing performed. Valid values
35567	// are:
35568	//
35569	//    * REGISTRY – Your thing index contains only registry data.
35570	//
35571	//    * REGISTRY_AND_SHADOW - Your thing index contains registry data and shadow
35572	//    data.
35573	//
35574	//    * REGISTRY_AND_CONNECTIVITY_STATUS - Your thing index contains registry
35575	//    data and thing connectivity status data.
35576	//
35577	//    * REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS - Your thing index contains
35578	//    registry data, shadow data, and thing connectivity status data.
35579	Schema *string `locationName:"schema" type:"string"`
35580}
35581
35582// String returns the string representation
35583func (s DescribeIndexOutput) String() string {
35584	return awsutil.Prettify(s)
35585}
35586
35587// GoString returns the string representation
35588func (s DescribeIndexOutput) GoString() string {
35589	return s.String()
35590}
35591
35592// SetIndexName sets the IndexName field's value.
35593func (s *DescribeIndexOutput) SetIndexName(v string) *DescribeIndexOutput {
35594	s.IndexName = &v
35595	return s
35596}
35597
35598// SetIndexStatus sets the IndexStatus field's value.
35599func (s *DescribeIndexOutput) SetIndexStatus(v string) *DescribeIndexOutput {
35600	s.IndexStatus = &v
35601	return s
35602}
35603
35604// SetSchema sets the Schema field's value.
35605func (s *DescribeIndexOutput) SetSchema(v string) *DescribeIndexOutput {
35606	s.Schema = &v
35607	return s
35608}
35609
35610type DescribeJobExecutionInput struct {
35611	_ struct{} `type:"structure"`
35612
35613	// A string (consisting of the digits "0" through "9" which is used to specify
35614	// a particular job execution on a particular device.
35615	ExecutionNumber *int64 `location:"querystring" locationName:"executionNumber" type:"long"`
35616
35617	// The unique identifier you assigned to this job when it was created.
35618	//
35619	// JobId is a required field
35620	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
35621
35622	// The name of the thing on which the job execution is running.
35623	//
35624	// ThingName is a required field
35625	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
35626}
35627
35628// String returns the string representation
35629func (s DescribeJobExecutionInput) String() string {
35630	return awsutil.Prettify(s)
35631}
35632
35633// GoString returns the string representation
35634func (s DescribeJobExecutionInput) GoString() string {
35635	return s.String()
35636}
35637
35638// Validate inspects the fields of the type to determine if they are valid.
35639func (s *DescribeJobExecutionInput) Validate() error {
35640	invalidParams := request.ErrInvalidParams{Context: "DescribeJobExecutionInput"}
35641	if s.JobId == nil {
35642		invalidParams.Add(request.NewErrParamRequired("JobId"))
35643	}
35644	if s.JobId != nil && len(*s.JobId) < 1 {
35645		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
35646	}
35647	if s.ThingName == nil {
35648		invalidParams.Add(request.NewErrParamRequired("ThingName"))
35649	}
35650	if s.ThingName != nil && len(*s.ThingName) < 1 {
35651		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
35652	}
35653
35654	if invalidParams.Len() > 0 {
35655		return invalidParams
35656	}
35657	return nil
35658}
35659
35660// SetExecutionNumber sets the ExecutionNumber field's value.
35661func (s *DescribeJobExecutionInput) SetExecutionNumber(v int64) *DescribeJobExecutionInput {
35662	s.ExecutionNumber = &v
35663	return s
35664}
35665
35666// SetJobId sets the JobId field's value.
35667func (s *DescribeJobExecutionInput) SetJobId(v string) *DescribeJobExecutionInput {
35668	s.JobId = &v
35669	return s
35670}
35671
35672// SetThingName sets the ThingName field's value.
35673func (s *DescribeJobExecutionInput) SetThingName(v string) *DescribeJobExecutionInput {
35674	s.ThingName = &v
35675	return s
35676}
35677
35678type DescribeJobExecutionOutput struct {
35679	_ struct{} `type:"structure"`
35680
35681	// Information about the job execution.
35682	Execution *JobExecution `locationName:"execution" type:"structure"`
35683}
35684
35685// String returns the string representation
35686func (s DescribeJobExecutionOutput) String() string {
35687	return awsutil.Prettify(s)
35688}
35689
35690// GoString returns the string representation
35691func (s DescribeJobExecutionOutput) GoString() string {
35692	return s.String()
35693}
35694
35695// SetExecution sets the Execution field's value.
35696func (s *DescribeJobExecutionOutput) SetExecution(v *JobExecution) *DescribeJobExecutionOutput {
35697	s.Execution = v
35698	return s
35699}
35700
35701type DescribeJobInput struct {
35702	_ struct{} `type:"structure"`
35703
35704	// The unique identifier you assigned to this job when it was created.
35705	//
35706	// JobId is a required field
35707	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
35708}
35709
35710// String returns the string representation
35711func (s DescribeJobInput) String() string {
35712	return awsutil.Prettify(s)
35713}
35714
35715// GoString returns the string representation
35716func (s DescribeJobInput) GoString() string {
35717	return s.String()
35718}
35719
35720// Validate inspects the fields of the type to determine if they are valid.
35721func (s *DescribeJobInput) Validate() error {
35722	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
35723	if s.JobId == nil {
35724		invalidParams.Add(request.NewErrParamRequired("JobId"))
35725	}
35726	if s.JobId != nil && len(*s.JobId) < 1 {
35727		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
35728	}
35729
35730	if invalidParams.Len() > 0 {
35731		return invalidParams
35732	}
35733	return nil
35734}
35735
35736// SetJobId sets the JobId field's value.
35737func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
35738	s.JobId = &v
35739	return s
35740}
35741
35742type DescribeJobOutput struct {
35743	_ struct{} `type:"structure"`
35744
35745	// An S3 link to the job document.
35746	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
35747
35748	// Information about the job.
35749	Job *Job `locationName:"job" type:"structure"`
35750}
35751
35752// String returns the string representation
35753func (s DescribeJobOutput) String() string {
35754	return awsutil.Prettify(s)
35755}
35756
35757// GoString returns the string representation
35758func (s DescribeJobOutput) GoString() string {
35759	return s.String()
35760}
35761
35762// SetDocumentSource sets the DocumentSource field's value.
35763func (s *DescribeJobOutput) SetDocumentSource(v string) *DescribeJobOutput {
35764	s.DocumentSource = &v
35765	return s
35766}
35767
35768// SetJob sets the Job field's value.
35769func (s *DescribeJobOutput) SetJob(v *Job) *DescribeJobOutput {
35770	s.Job = v
35771	return s
35772}
35773
35774type DescribeJobTemplateInput struct {
35775	_ struct{} `type:"structure"`
35776
35777	// The unique identifier of the job template.
35778	//
35779	// JobTemplateId is a required field
35780	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
35781}
35782
35783// String returns the string representation
35784func (s DescribeJobTemplateInput) String() string {
35785	return awsutil.Prettify(s)
35786}
35787
35788// GoString returns the string representation
35789func (s DescribeJobTemplateInput) GoString() string {
35790	return s.String()
35791}
35792
35793// Validate inspects the fields of the type to determine if they are valid.
35794func (s *DescribeJobTemplateInput) Validate() error {
35795	invalidParams := request.ErrInvalidParams{Context: "DescribeJobTemplateInput"}
35796	if s.JobTemplateId == nil {
35797		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
35798	}
35799	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
35800		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
35801	}
35802
35803	if invalidParams.Len() > 0 {
35804		return invalidParams
35805	}
35806	return nil
35807}
35808
35809// SetJobTemplateId sets the JobTemplateId field's value.
35810func (s *DescribeJobTemplateInput) SetJobTemplateId(v string) *DescribeJobTemplateInput {
35811	s.JobTemplateId = &v
35812	return s
35813}
35814
35815type DescribeJobTemplateOutput struct {
35816	_ struct{} `type:"structure"`
35817
35818	// The criteria that determine when and how a job abort takes place.
35819	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
35820
35821	// The time, in seconds since the epoch, when the job template was created.
35822	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
35823
35824	// A description of the job template.
35825	Description *string `locationName:"description" type:"string"`
35826
35827	// The job document.
35828	Document *string `locationName:"document" type:"string"`
35829
35830	// An S3 link to the job document.
35831	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
35832
35833	// Allows you to create a staged rollout of a job.
35834	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
35835
35836	// The ARN of the job template.
35837	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
35838
35839	// The unique identifier of the job template.
35840	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
35841
35842	// Configuration for pre-signed S3 URLs.
35843	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
35844
35845	// Specifies the amount of time each device has to finish its execution of the
35846	// job. A timer is started when the job execution status is set to IN_PROGRESS.
35847	// If the job execution status is not set to another terminal state before the
35848	// timer expires, it will be automatically set to TIMED_OUT.
35849	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
35850}
35851
35852// String returns the string representation
35853func (s DescribeJobTemplateOutput) String() string {
35854	return awsutil.Prettify(s)
35855}
35856
35857// GoString returns the string representation
35858func (s DescribeJobTemplateOutput) GoString() string {
35859	return s.String()
35860}
35861
35862// SetAbortConfig sets the AbortConfig field's value.
35863func (s *DescribeJobTemplateOutput) SetAbortConfig(v *AbortConfig) *DescribeJobTemplateOutput {
35864	s.AbortConfig = v
35865	return s
35866}
35867
35868// SetCreatedAt sets the CreatedAt field's value.
35869func (s *DescribeJobTemplateOutput) SetCreatedAt(v time.Time) *DescribeJobTemplateOutput {
35870	s.CreatedAt = &v
35871	return s
35872}
35873
35874// SetDescription sets the Description field's value.
35875func (s *DescribeJobTemplateOutput) SetDescription(v string) *DescribeJobTemplateOutput {
35876	s.Description = &v
35877	return s
35878}
35879
35880// SetDocument sets the Document field's value.
35881func (s *DescribeJobTemplateOutput) SetDocument(v string) *DescribeJobTemplateOutput {
35882	s.Document = &v
35883	return s
35884}
35885
35886// SetDocumentSource sets the DocumentSource field's value.
35887func (s *DescribeJobTemplateOutput) SetDocumentSource(v string) *DescribeJobTemplateOutput {
35888	s.DocumentSource = &v
35889	return s
35890}
35891
35892// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
35893func (s *DescribeJobTemplateOutput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *DescribeJobTemplateOutput {
35894	s.JobExecutionsRolloutConfig = v
35895	return s
35896}
35897
35898// SetJobTemplateArn sets the JobTemplateArn field's value.
35899func (s *DescribeJobTemplateOutput) SetJobTemplateArn(v string) *DescribeJobTemplateOutput {
35900	s.JobTemplateArn = &v
35901	return s
35902}
35903
35904// SetJobTemplateId sets the JobTemplateId field's value.
35905func (s *DescribeJobTemplateOutput) SetJobTemplateId(v string) *DescribeJobTemplateOutput {
35906	s.JobTemplateId = &v
35907	return s
35908}
35909
35910// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
35911func (s *DescribeJobTemplateOutput) SetPresignedUrlConfig(v *PresignedUrlConfig) *DescribeJobTemplateOutput {
35912	s.PresignedUrlConfig = v
35913	return s
35914}
35915
35916// SetTimeoutConfig sets the TimeoutConfig field's value.
35917func (s *DescribeJobTemplateOutput) SetTimeoutConfig(v *TimeoutConfig) *DescribeJobTemplateOutput {
35918	s.TimeoutConfig = v
35919	return s
35920}
35921
35922type DescribeMitigationActionInput struct {
35923	_ struct{} `type:"structure"`
35924
35925	// The friendly name that uniquely identifies the mitigation action.
35926	//
35927	// ActionName is a required field
35928	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
35929}
35930
35931// String returns the string representation
35932func (s DescribeMitigationActionInput) String() string {
35933	return awsutil.Prettify(s)
35934}
35935
35936// GoString returns the string representation
35937func (s DescribeMitigationActionInput) GoString() string {
35938	return s.String()
35939}
35940
35941// Validate inspects the fields of the type to determine if they are valid.
35942func (s *DescribeMitigationActionInput) Validate() error {
35943	invalidParams := request.ErrInvalidParams{Context: "DescribeMitigationActionInput"}
35944	if s.ActionName == nil {
35945		invalidParams.Add(request.NewErrParamRequired("ActionName"))
35946	}
35947	if s.ActionName != nil && len(*s.ActionName) < 1 {
35948		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
35949	}
35950
35951	if invalidParams.Len() > 0 {
35952		return invalidParams
35953	}
35954	return nil
35955}
35956
35957// SetActionName sets the ActionName field's value.
35958func (s *DescribeMitigationActionInput) SetActionName(v string) *DescribeMitigationActionInput {
35959	s.ActionName = &v
35960	return s
35961}
35962
35963type DescribeMitigationActionOutput struct {
35964	_ struct{} `type:"structure"`
35965
35966	// The ARN that identifies this migration action.
35967	ActionArn *string `locationName:"actionArn" type:"string"`
35968
35969	// A unique identifier for this action.
35970	ActionId *string `locationName:"actionId" type:"string"`
35971
35972	// The friendly name that uniquely identifies the mitigation action.
35973	ActionName *string `locationName:"actionName" type:"string"`
35974
35975	// Parameters that control how the mitigation action is applied, specific to
35976	// the type of mitigation action.
35977	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
35978
35979	// The type of mitigation action.
35980	ActionType *string `locationName:"actionType" type:"string" enum:"MitigationActionType"`
35981
35982	// The date and time when the mitigation action was added to your AWS account.
35983	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
35984
35985	// The date and time when the mitigation action was last changed.
35986	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
35987
35988	// The ARN of the IAM role used to apply this action.
35989	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
35990}
35991
35992// String returns the string representation
35993func (s DescribeMitigationActionOutput) String() string {
35994	return awsutil.Prettify(s)
35995}
35996
35997// GoString returns the string representation
35998func (s DescribeMitigationActionOutput) GoString() string {
35999	return s.String()
36000}
36001
36002// SetActionArn sets the ActionArn field's value.
36003func (s *DescribeMitigationActionOutput) SetActionArn(v string) *DescribeMitigationActionOutput {
36004	s.ActionArn = &v
36005	return s
36006}
36007
36008// SetActionId sets the ActionId field's value.
36009func (s *DescribeMitigationActionOutput) SetActionId(v string) *DescribeMitigationActionOutput {
36010	s.ActionId = &v
36011	return s
36012}
36013
36014// SetActionName sets the ActionName field's value.
36015func (s *DescribeMitigationActionOutput) SetActionName(v string) *DescribeMitigationActionOutput {
36016	s.ActionName = &v
36017	return s
36018}
36019
36020// SetActionParams sets the ActionParams field's value.
36021func (s *DescribeMitigationActionOutput) SetActionParams(v *MitigationActionParams) *DescribeMitigationActionOutput {
36022	s.ActionParams = v
36023	return s
36024}
36025
36026// SetActionType sets the ActionType field's value.
36027func (s *DescribeMitigationActionOutput) SetActionType(v string) *DescribeMitigationActionOutput {
36028	s.ActionType = &v
36029	return s
36030}
36031
36032// SetCreationDate sets the CreationDate field's value.
36033func (s *DescribeMitigationActionOutput) SetCreationDate(v time.Time) *DescribeMitigationActionOutput {
36034	s.CreationDate = &v
36035	return s
36036}
36037
36038// SetLastModifiedDate sets the LastModifiedDate field's value.
36039func (s *DescribeMitigationActionOutput) SetLastModifiedDate(v time.Time) *DescribeMitigationActionOutput {
36040	s.LastModifiedDate = &v
36041	return s
36042}
36043
36044// SetRoleArn sets the RoleArn field's value.
36045func (s *DescribeMitigationActionOutput) SetRoleArn(v string) *DescribeMitigationActionOutput {
36046	s.RoleArn = &v
36047	return s
36048}
36049
36050type DescribeProvisioningTemplateInput struct {
36051	_ struct{} `type:"structure"`
36052
36053	// The name of the fleet provisioning template.
36054	//
36055	// TemplateName is a required field
36056	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
36057}
36058
36059// String returns the string representation
36060func (s DescribeProvisioningTemplateInput) String() string {
36061	return awsutil.Prettify(s)
36062}
36063
36064// GoString returns the string representation
36065func (s DescribeProvisioningTemplateInput) GoString() string {
36066	return s.String()
36067}
36068
36069// Validate inspects the fields of the type to determine if they are valid.
36070func (s *DescribeProvisioningTemplateInput) Validate() error {
36071	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateInput"}
36072	if s.TemplateName == nil {
36073		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
36074	}
36075	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
36076		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
36077	}
36078
36079	if invalidParams.Len() > 0 {
36080		return invalidParams
36081	}
36082	return nil
36083}
36084
36085// SetTemplateName sets the TemplateName field's value.
36086func (s *DescribeProvisioningTemplateInput) SetTemplateName(v string) *DescribeProvisioningTemplateInput {
36087	s.TemplateName = &v
36088	return s
36089}
36090
36091type DescribeProvisioningTemplateOutput struct {
36092	_ struct{} `type:"structure"`
36093
36094	// The date when the fleet provisioning template was created.
36095	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
36096
36097	// The default fleet template version ID.
36098	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
36099
36100	// The description of the fleet provisioning template.
36101	Description *string `locationName:"description" type:"string"`
36102
36103	// True if the fleet provisioning template is enabled, otherwise false.
36104	Enabled *bool `locationName:"enabled" type:"boolean"`
36105
36106	// The date when the fleet provisioning template was last modified.
36107	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
36108
36109	// Gets information about a pre-provisioned hook.
36110	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
36111
36112	// The ARN of the role associated with the provisioning template. This IoT role
36113	// grants permission to provision a device.
36114	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
36115
36116	// The ARN of the fleet provisioning template.
36117	TemplateArn *string `locationName:"templateArn" type:"string"`
36118
36119	// The JSON formatted contents of the fleet provisioning template.
36120	TemplateBody *string `locationName:"templateBody" type:"string"`
36121
36122	// The name of the fleet provisioning template.
36123	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
36124}
36125
36126// String returns the string representation
36127func (s DescribeProvisioningTemplateOutput) String() string {
36128	return awsutil.Prettify(s)
36129}
36130
36131// GoString returns the string representation
36132func (s DescribeProvisioningTemplateOutput) GoString() string {
36133	return s.String()
36134}
36135
36136// SetCreationDate sets the CreationDate field's value.
36137func (s *DescribeProvisioningTemplateOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateOutput {
36138	s.CreationDate = &v
36139	return s
36140}
36141
36142// SetDefaultVersionId sets the DefaultVersionId field's value.
36143func (s *DescribeProvisioningTemplateOutput) SetDefaultVersionId(v int64) *DescribeProvisioningTemplateOutput {
36144	s.DefaultVersionId = &v
36145	return s
36146}
36147
36148// SetDescription sets the Description field's value.
36149func (s *DescribeProvisioningTemplateOutput) SetDescription(v string) *DescribeProvisioningTemplateOutput {
36150	s.Description = &v
36151	return s
36152}
36153
36154// SetEnabled sets the Enabled field's value.
36155func (s *DescribeProvisioningTemplateOutput) SetEnabled(v bool) *DescribeProvisioningTemplateOutput {
36156	s.Enabled = &v
36157	return s
36158}
36159
36160// SetLastModifiedDate sets the LastModifiedDate field's value.
36161func (s *DescribeProvisioningTemplateOutput) SetLastModifiedDate(v time.Time) *DescribeProvisioningTemplateOutput {
36162	s.LastModifiedDate = &v
36163	return s
36164}
36165
36166// SetPreProvisioningHook sets the PreProvisioningHook field's value.
36167func (s *DescribeProvisioningTemplateOutput) SetPreProvisioningHook(v *ProvisioningHook) *DescribeProvisioningTemplateOutput {
36168	s.PreProvisioningHook = v
36169	return s
36170}
36171
36172// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
36173func (s *DescribeProvisioningTemplateOutput) SetProvisioningRoleArn(v string) *DescribeProvisioningTemplateOutput {
36174	s.ProvisioningRoleArn = &v
36175	return s
36176}
36177
36178// SetTemplateArn sets the TemplateArn field's value.
36179func (s *DescribeProvisioningTemplateOutput) SetTemplateArn(v string) *DescribeProvisioningTemplateOutput {
36180	s.TemplateArn = &v
36181	return s
36182}
36183
36184// SetTemplateBody sets the TemplateBody field's value.
36185func (s *DescribeProvisioningTemplateOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateOutput {
36186	s.TemplateBody = &v
36187	return s
36188}
36189
36190// SetTemplateName sets the TemplateName field's value.
36191func (s *DescribeProvisioningTemplateOutput) SetTemplateName(v string) *DescribeProvisioningTemplateOutput {
36192	s.TemplateName = &v
36193	return s
36194}
36195
36196type DescribeProvisioningTemplateVersionInput struct {
36197	_ struct{} `type:"structure"`
36198
36199	// The template name.
36200	//
36201	// TemplateName is a required field
36202	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
36203
36204	// The fleet provisioning template version ID.
36205	//
36206	// VersionId is a required field
36207	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
36208}
36209
36210// String returns the string representation
36211func (s DescribeProvisioningTemplateVersionInput) String() string {
36212	return awsutil.Prettify(s)
36213}
36214
36215// GoString returns the string representation
36216func (s DescribeProvisioningTemplateVersionInput) GoString() string {
36217	return s.String()
36218}
36219
36220// Validate inspects the fields of the type to determine if they are valid.
36221func (s *DescribeProvisioningTemplateVersionInput) Validate() error {
36222	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateVersionInput"}
36223	if s.TemplateName == nil {
36224		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
36225	}
36226	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
36227		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
36228	}
36229	if s.VersionId == nil {
36230		invalidParams.Add(request.NewErrParamRequired("VersionId"))
36231	}
36232
36233	if invalidParams.Len() > 0 {
36234		return invalidParams
36235	}
36236	return nil
36237}
36238
36239// SetTemplateName sets the TemplateName field's value.
36240func (s *DescribeProvisioningTemplateVersionInput) SetTemplateName(v string) *DescribeProvisioningTemplateVersionInput {
36241	s.TemplateName = &v
36242	return s
36243}
36244
36245// SetVersionId sets the VersionId field's value.
36246func (s *DescribeProvisioningTemplateVersionInput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionInput {
36247	s.VersionId = &v
36248	return s
36249}
36250
36251type DescribeProvisioningTemplateVersionOutput struct {
36252	_ struct{} `type:"structure"`
36253
36254	// The date when the fleet provisioning template version was created.
36255	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
36256
36257	// True if the fleet provisioning template version is the default version.
36258	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
36259
36260	// The JSON formatted contents of the fleet provisioning template version.
36261	TemplateBody *string `locationName:"templateBody" type:"string"`
36262
36263	// The fleet provisioning template version ID.
36264	VersionId *int64 `locationName:"versionId" type:"integer"`
36265}
36266
36267// String returns the string representation
36268func (s DescribeProvisioningTemplateVersionOutput) String() string {
36269	return awsutil.Prettify(s)
36270}
36271
36272// GoString returns the string representation
36273func (s DescribeProvisioningTemplateVersionOutput) GoString() string {
36274	return s.String()
36275}
36276
36277// SetCreationDate sets the CreationDate field's value.
36278func (s *DescribeProvisioningTemplateVersionOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateVersionOutput {
36279	s.CreationDate = &v
36280	return s
36281}
36282
36283// SetIsDefaultVersion sets the IsDefaultVersion field's value.
36284func (s *DescribeProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *DescribeProvisioningTemplateVersionOutput {
36285	s.IsDefaultVersion = &v
36286	return s
36287}
36288
36289// SetTemplateBody sets the TemplateBody field's value.
36290func (s *DescribeProvisioningTemplateVersionOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateVersionOutput {
36291	s.TemplateBody = &v
36292	return s
36293}
36294
36295// SetVersionId sets the VersionId field's value.
36296func (s *DescribeProvisioningTemplateVersionOutput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionOutput {
36297	s.VersionId = &v
36298	return s
36299}
36300
36301type DescribeRoleAliasInput struct {
36302	_ struct{} `type:"structure"`
36303
36304	// The role alias to describe.
36305	//
36306	// RoleAlias is a required field
36307	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
36308}
36309
36310// String returns the string representation
36311func (s DescribeRoleAliasInput) String() string {
36312	return awsutil.Prettify(s)
36313}
36314
36315// GoString returns the string representation
36316func (s DescribeRoleAliasInput) GoString() string {
36317	return s.String()
36318}
36319
36320// Validate inspects the fields of the type to determine if they are valid.
36321func (s *DescribeRoleAliasInput) Validate() error {
36322	invalidParams := request.ErrInvalidParams{Context: "DescribeRoleAliasInput"}
36323	if s.RoleAlias == nil {
36324		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
36325	}
36326	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
36327		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
36328	}
36329
36330	if invalidParams.Len() > 0 {
36331		return invalidParams
36332	}
36333	return nil
36334}
36335
36336// SetRoleAlias sets the RoleAlias field's value.
36337func (s *DescribeRoleAliasInput) SetRoleAlias(v string) *DescribeRoleAliasInput {
36338	s.RoleAlias = &v
36339	return s
36340}
36341
36342type DescribeRoleAliasOutput struct {
36343	_ struct{} `type:"structure"`
36344
36345	// The role alias description.
36346	RoleAliasDescription *RoleAliasDescription `locationName:"roleAliasDescription" type:"structure"`
36347}
36348
36349// String returns the string representation
36350func (s DescribeRoleAliasOutput) String() string {
36351	return awsutil.Prettify(s)
36352}
36353
36354// GoString returns the string representation
36355func (s DescribeRoleAliasOutput) GoString() string {
36356	return s.String()
36357}
36358
36359// SetRoleAliasDescription sets the RoleAliasDescription field's value.
36360func (s *DescribeRoleAliasOutput) SetRoleAliasDescription(v *RoleAliasDescription) *DescribeRoleAliasOutput {
36361	s.RoleAliasDescription = v
36362	return s
36363}
36364
36365type DescribeScheduledAuditInput struct {
36366	_ struct{} `type:"structure"`
36367
36368	// The name of the scheduled audit whose information you want to get.
36369	//
36370	// ScheduledAuditName is a required field
36371	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
36372}
36373
36374// String returns the string representation
36375func (s DescribeScheduledAuditInput) String() string {
36376	return awsutil.Prettify(s)
36377}
36378
36379// GoString returns the string representation
36380func (s DescribeScheduledAuditInput) GoString() string {
36381	return s.String()
36382}
36383
36384// Validate inspects the fields of the type to determine if they are valid.
36385func (s *DescribeScheduledAuditInput) Validate() error {
36386	invalidParams := request.ErrInvalidParams{Context: "DescribeScheduledAuditInput"}
36387	if s.ScheduledAuditName == nil {
36388		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
36389	}
36390	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
36391		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
36392	}
36393
36394	if invalidParams.Len() > 0 {
36395		return invalidParams
36396	}
36397	return nil
36398}
36399
36400// SetScheduledAuditName sets the ScheduledAuditName field's value.
36401func (s *DescribeScheduledAuditInput) SetScheduledAuditName(v string) *DescribeScheduledAuditInput {
36402	s.ScheduledAuditName = &v
36403	return s
36404}
36405
36406type DescribeScheduledAuditOutput struct {
36407	_ struct{} `type:"structure"`
36408
36409	// The day of the month on which the scheduled audit takes place. This is will
36410	// be 1 through 31 or LAST. If days 29-31 are specified, and the month does
36411	// not have that many days, the audit takes place on the LAST day of the month.
36412	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
36413
36414	// The day of the week on which the scheduled audit takes place, either one
36415	// of SUN, MON, TUE, WED, THU, FRI, or SAT.
36416	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
36417
36418	// How often the scheduled audit takes place, either one of DAILY, WEEKLY, BIWEEKLY,
36419	// or MONTHLY. The start time of each audit is determined by the system.
36420	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
36421
36422	// The ARN of the scheduled audit.
36423	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
36424
36425	// The name of the scheduled audit.
36426	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
36427
36428	// Which checks are performed during the scheduled audit. Checks must be enabled
36429	// for your account. (Use DescribeAccountAuditConfiguration to see the list
36430	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
36431	// to select which checks are enabled.)
36432	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
36433}
36434
36435// String returns the string representation
36436func (s DescribeScheduledAuditOutput) String() string {
36437	return awsutil.Prettify(s)
36438}
36439
36440// GoString returns the string representation
36441func (s DescribeScheduledAuditOutput) GoString() string {
36442	return s.String()
36443}
36444
36445// SetDayOfMonth sets the DayOfMonth field's value.
36446func (s *DescribeScheduledAuditOutput) SetDayOfMonth(v string) *DescribeScheduledAuditOutput {
36447	s.DayOfMonth = &v
36448	return s
36449}
36450
36451// SetDayOfWeek sets the DayOfWeek field's value.
36452func (s *DescribeScheduledAuditOutput) SetDayOfWeek(v string) *DescribeScheduledAuditOutput {
36453	s.DayOfWeek = &v
36454	return s
36455}
36456
36457// SetFrequency sets the Frequency field's value.
36458func (s *DescribeScheduledAuditOutput) SetFrequency(v string) *DescribeScheduledAuditOutput {
36459	s.Frequency = &v
36460	return s
36461}
36462
36463// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
36464func (s *DescribeScheduledAuditOutput) SetScheduledAuditArn(v string) *DescribeScheduledAuditOutput {
36465	s.ScheduledAuditArn = &v
36466	return s
36467}
36468
36469// SetScheduledAuditName sets the ScheduledAuditName field's value.
36470func (s *DescribeScheduledAuditOutput) SetScheduledAuditName(v string) *DescribeScheduledAuditOutput {
36471	s.ScheduledAuditName = &v
36472	return s
36473}
36474
36475// SetTargetCheckNames sets the TargetCheckNames field's value.
36476func (s *DescribeScheduledAuditOutput) SetTargetCheckNames(v []*string) *DescribeScheduledAuditOutput {
36477	s.TargetCheckNames = v
36478	return s
36479}
36480
36481type DescribeSecurityProfileInput struct {
36482	_ struct{} `type:"structure"`
36483
36484	// The name of the security profile whose information you want to get.
36485	//
36486	// SecurityProfileName is a required field
36487	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
36488}
36489
36490// String returns the string representation
36491func (s DescribeSecurityProfileInput) String() string {
36492	return awsutil.Prettify(s)
36493}
36494
36495// GoString returns the string representation
36496func (s DescribeSecurityProfileInput) GoString() string {
36497	return s.String()
36498}
36499
36500// Validate inspects the fields of the type to determine if they are valid.
36501func (s *DescribeSecurityProfileInput) Validate() error {
36502	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityProfileInput"}
36503	if s.SecurityProfileName == nil {
36504		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
36505	}
36506	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
36507		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
36508	}
36509
36510	if invalidParams.Len() > 0 {
36511		return invalidParams
36512	}
36513	return nil
36514}
36515
36516// SetSecurityProfileName sets the SecurityProfileName field's value.
36517func (s *DescribeSecurityProfileInput) SetSecurityProfileName(v string) *DescribeSecurityProfileInput {
36518	s.SecurityProfileName = &v
36519	return s
36520}
36521
36522type DescribeSecurityProfileOutput struct {
36523	_ struct{} `type:"structure"`
36524
36525	// Please use DescribeSecurityProfileResponse$additionalMetricsToRetainV2 instead.
36526	//
36527	// A list of metrics whose data is retained (stored). By default, data is retained
36528	// for any metric used in the profile's behaviors, but it is also retained for
36529	// any metric specified here.
36530	//
36531	// Deprecated: Use additionalMetricsToRetainV2.
36532	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
36533
36534	// A list of metrics whose data is retained (stored). By default, data is retained
36535	// for any metric used in the profile's behaviors, but it is also retained for
36536	// any metric specified here.
36537	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
36538
36539	// Where the alerts are sent. (Alerts are always sent to the console.)
36540	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
36541
36542	// Specifies the behaviors that, when violated by a device (thing), cause an
36543	// alert.
36544	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
36545
36546	// The time the security profile was created.
36547	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
36548
36549	// The time the security profile was last modified.
36550	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
36551
36552	// The ARN of the security profile.
36553	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
36554
36555	// A description of the security profile (associated with the security profile
36556	// when it was created or updated).
36557	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
36558
36559	// The name of the security profile.
36560	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
36561
36562	// The version of the security profile. A new version is generated whenever
36563	// the security profile is updated.
36564	Version *int64 `locationName:"version" type:"long"`
36565}
36566
36567// String returns the string representation
36568func (s DescribeSecurityProfileOutput) String() string {
36569	return awsutil.Prettify(s)
36570}
36571
36572// GoString returns the string representation
36573func (s DescribeSecurityProfileOutput) GoString() string {
36574	return s.String()
36575}
36576
36577// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
36578func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *DescribeSecurityProfileOutput {
36579	s.AdditionalMetricsToRetain = v
36580	return s
36581}
36582
36583// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
36584func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *DescribeSecurityProfileOutput {
36585	s.AdditionalMetricsToRetainV2 = v
36586	return s
36587}
36588
36589// SetAlertTargets sets the AlertTargets field's value.
36590func (s *DescribeSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *DescribeSecurityProfileOutput {
36591	s.AlertTargets = v
36592	return s
36593}
36594
36595// SetBehaviors sets the Behaviors field's value.
36596func (s *DescribeSecurityProfileOutput) SetBehaviors(v []*Behavior) *DescribeSecurityProfileOutput {
36597	s.Behaviors = v
36598	return s
36599}
36600
36601// SetCreationDate sets the CreationDate field's value.
36602func (s *DescribeSecurityProfileOutput) SetCreationDate(v time.Time) *DescribeSecurityProfileOutput {
36603	s.CreationDate = &v
36604	return s
36605}
36606
36607// SetLastModifiedDate sets the LastModifiedDate field's value.
36608func (s *DescribeSecurityProfileOutput) SetLastModifiedDate(v time.Time) *DescribeSecurityProfileOutput {
36609	s.LastModifiedDate = &v
36610	return s
36611}
36612
36613// SetSecurityProfileArn sets the SecurityProfileArn field's value.
36614func (s *DescribeSecurityProfileOutput) SetSecurityProfileArn(v string) *DescribeSecurityProfileOutput {
36615	s.SecurityProfileArn = &v
36616	return s
36617}
36618
36619// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
36620func (s *DescribeSecurityProfileOutput) SetSecurityProfileDescription(v string) *DescribeSecurityProfileOutput {
36621	s.SecurityProfileDescription = &v
36622	return s
36623}
36624
36625// SetSecurityProfileName sets the SecurityProfileName field's value.
36626func (s *DescribeSecurityProfileOutput) SetSecurityProfileName(v string) *DescribeSecurityProfileOutput {
36627	s.SecurityProfileName = &v
36628	return s
36629}
36630
36631// SetVersion sets the Version field's value.
36632func (s *DescribeSecurityProfileOutput) SetVersion(v int64) *DescribeSecurityProfileOutput {
36633	s.Version = &v
36634	return s
36635}
36636
36637type DescribeStreamInput struct {
36638	_ struct{} `type:"structure"`
36639
36640	// The stream ID.
36641	//
36642	// StreamId is a required field
36643	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
36644}
36645
36646// String returns the string representation
36647func (s DescribeStreamInput) String() string {
36648	return awsutil.Prettify(s)
36649}
36650
36651// GoString returns the string representation
36652func (s DescribeStreamInput) GoString() string {
36653	return s.String()
36654}
36655
36656// Validate inspects the fields of the type to determine if they are valid.
36657func (s *DescribeStreamInput) Validate() error {
36658	invalidParams := request.ErrInvalidParams{Context: "DescribeStreamInput"}
36659	if s.StreamId == nil {
36660		invalidParams.Add(request.NewErrParamRequired("StreamId"))
36661	}
36662	if s.StreamId != nil && len(*s.StreamId) < 1 {
36663		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
36664	}
36665
36666	if invalidParams.Len() > 0 {
36667		return invalidParams
36668	}
36669	return nil
36670}
36671
36672// SetStreamId sets the StreamId field's value.
36673func (s *DescribeStreamInput) SetStreamId(v string) *DescribeStreamInput {
36674	s.StreamId = &v
36675	return s
36676}
36677
36678type DescribeStreamOutput struct {
36679	_ struct{} `type:"structure"`
36680
36681	// Information about the stream.
36682	StreamInfo *StreamInfo `locationName:"streamInfo" type:"structure"`
36683}
36684
36685// String returns the string representation
36686func (s DescribeStreamOutput) String() string {
36687	return awsutil.Prettify(s)
36688}
36689
36690// GoString returns the string representation
36691func (s DescribeStreamOutput) GoString() string {
36692	return s.String()
36693}
36694
36695// SetStreamInfo sets the StreamInfo field's value.
36696func (s *DescribeStreamOutput) SetStreamInfo(v *StreamInfo) *DescribeStreamOutput {
36697	s.StreamInfo = v
36698	return s
36699}
36700
36701type DescribeThingGroupInput struct {
36702	_ struct{} `type:"structure"`
36703
36704	// The name of the thing group.
36705	//
36706	// ThingGroupName is a required field
36707	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
36708}
36709
36710// String returns the string representation
36711func (s DescribeThingGroupInput) String() string {
36712	return awsutil.Prettify(s)
36713}
36714
36715// GoString returns the string representation
36716func (s DescribeThingGroupInput) GoString() string {
36717	return s.String()
36718}
36719
36720// Validate inspects the fields of the type to determine if they are valid.
36721func (s *DescribeThingGroupInput) Validate() error {
36722	invalidParams := request.ErrInvalidParams{Context: "DescribeThingGroupInput"}
36723	if s.ThingGroupName == nil {
36724		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
36725	}
36726	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
36727		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
36728	}
36729
36730	if invalidParams.Len() > 0 {
36731		return invalidParams
36732	}
36733	return nil
36734}
36735
36736// SetThingGroupName sets the ThingGroupName field's value.
36737func (s *DescribeThingGroupInput) SetThingGroupName(v string) *DescribeThingGroupInput {
36738	s.ThingGroupName = &v
36739	return s
36740}
36741
36742type DescribeThingGroupOutput struct {
36743	_ struct{} `type:"structure"`
36744
36745	// The dynamic thing group index name.
36746	IndexName *string `locationName:"indexName" min:"1" type:"string"`
36747
36748	// The dynamic thing group search query string.
36749	QueryString *string `locationName:"queryString" min:"1" type:"string"`
36750
36751	// The dynamic thing group query version.
36752	QueryVersion *string `locationName:"queryVersion" type:"string"`
36753
36754	// The dynamic thing group status.
36755	Status *string `locationName:"status" type:"string" enum:"DynamicGroupStatus"`
36756
36757	// The thing group ARN.
36758	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
36759
36760	// The thing group ID.
36761	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
36762
36763	// Thing group metadata.
36764	ThingGroupMetadata *ThingGroupMetadata `locationName:"thingGroupMetadata" type:"structure"`
36765
36766	// The name of the thing group.
36767	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
36768
36769	// The thing group properties.
36770	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
36771
36772	// The version of the thing group.
36773	Version *int64 `locationName:"version" type:"long"`
36774}
36775
36776// String returns the string representation
36777func (s DescribeThingGroupOutput) String() string {
36778	return awsutil.Prettify(s)
36779}
36780
36781// GoString returns the string representation
36782func (s DescribeThingGroupOutput) GoString() string {
36783	return s.String()
36784}
36785
36786// SetIndexName sets the IndexName field's value.
36787func (s *DescribeThingGroupOutput) SetIndexName(v string) *DescribeThingGroupOutput {
36788	s.IndexName = &v
36789	return s
36790}
36791
36792// SetQueryString sets the QueryString field's value.
36793func (s *DescribeThingGroupOutput) SetQueryString(v string) *DescribeThingGroupOutput {
36794	s.QueryString = &v
36795	return s
36796}
36797
36798// SetQueryVersion sets the QueryVersion field's value.
36799func (s *DescribeThingGroupOutput) SetQueryVersion(v string) *DescribeThingGroupOutput {
36800	s.QueryVersion = &v
36801	return s
36802}
36803
36804// SetStatus sets the Status field's value.
36805func (s *DescribeThingGroupOutput) SetStatus(v string) *DescribeThingGroupOutput {
36806	s.Status = &v
36807	return s
36808}
36809
36810// SetThingGroupArn sets the ThingGroupArn field's value.
36811func (s *DescribeThingGroupOutput) SetThingGroupArn(v string) *DescribeThingGroupOutput {
36812	s.ThingGroupArn = &v
36813	return s
36814}
36815
36816// SetThingGroupId sets the ThingGroupId field's value.
36817func (s *DescribeThingGroupOutput) SetThingGroupId(v string) *DescribeThingGroupOutput {
36818	s.ThingGroupId = &v
36819	return s
36820}
36821
36822// SetThingGroupMetadata sets the ThingGroupMetadata field's value.
36823func (s *DescribeThingGroupOutput) SetThingGroupMetadata(v *ThingGroupMetadata) *DescribeThingGroupOutput {
36824	s.ThingGroupMetadata = v
36825	return s
36826}
36827
36828// SetThingGroupName sets the ThingGroupName field's value.
36829func (s *DescribeThingGroupOutput) SetThingGroupName(v string) *DescribeThingGroupOutput {
36830	s.ThingGroupName = &v
36831	return s
36832}
36833
36834// SetThingGroupProperties sets the ThingGroupProperties field's value.
36835func (s *DescribeThingGroupOutput) SetThingGroupProperties(v *ThingGroupProperties) *DescribeThingGroupOutput {
36836	s.ThingGroupProperties = v
36837	return s
36838}
36839
36840// SetVersion sets the Version field's value.
36841func (s *DescribeThingGroupOutput) SetVersion(v int64) *DescribeThingGroupOutput {
36842	s.Version = &v
36843	return s
36844}
36845
36846// The input for the DescribeThing operation.
36847type DescribeThingInput struct {
36848	_ struct{} `type:"structure"`
36849
36850	// The name of the thing.
36851	//
36852	// ThingName is a required field
36853	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
36854}
36855
36856// String returns the string representation
36857func (s DescribeThingInput) String() string {
36858	return awsutil.Prettify(s)
36859}
36860
36861// GoString returns the string representation
36862func (s DescribeThingInput) GoString() string {
36863	return s.String()
36864}
36865
36866// Validate inspects the fields of the type to determine if they are valid.
36867func (s *DescribeThingInput) Validate() error {
36868	invalidParams := request.ErrInvalidParams{Context: "DescribeThingInput"}
36869	if s.ThingName == nil {
36870		invalidParams.Add(request.NewErrParamRequired("ThingName"))
36871	}
36872	if s.ThingName != nil && len(*s.ThingName) < 1 {
36873		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
36874	}
36875
36876	if invalidParams.Len() > 0 {
36877		return invalidParams
36878	}
36879	return nil
36880}
36881
36882// SetThingName sets the ThingName field's value.
36883func (s *DescribeThingInput) SetThingName(v string) *DescribeThingInput {
36884	s.ThingName = &v
36885	return s
36886}
36887
36888// The output from the DescribeThing operation.
36889type DescribeThingOutput struct {
36890	_ struct{} `type:"structure"`
36891
36892	// The thing attributes.
36893	Attributes map[string]*string `locationName:"attributes" type:"map"`
36894
36895	// The name of the billing group the thing belongs to.
36896	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
36897
36898	// The default MQTT client ID. For a typical device, the thing name is also
36899	// used as the default MQTT client ID. Although we don’t require a mapping
36900	// between a thing's registry name and its use of MQTT client IDs, certificates,
36901	// or shadow state, we recommend that you choose a thing name and use it as
36902	// the MQTT client ID for the registry and the Device Shadow service.
36903	//
36904	// This lets you better organize your AWS IoT fleet without removing the flexibility
36905	// of the underlying device certificate model or shadows.
36906	DefaultClientId *string `locationName:"defaultClientId" type:"string"`
36907
36908	// The ARN of the thing to describe.
36909	ThingArn *string `locationName:"thingArn" type:"string"`
36910
36911	// The ID of the thing to describe.
36912	ThingId *string `locationName:"thingId" type:"string"`
36913
36914	// The name of the thing.
36915	ThingName *string `locationName:"thingName" min:"1" type:"string"`
36916
36917	// The thing type name.
36918	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
36919
36920	// The current version of the thing record in the registry.
36921	//
36922	// To avoid unintentional changes to the information in the registry, you can
36923	// pass the version information in the expectedVersion parameter of the UpdateThing
36924	// and DeleteThing calls.
36925	Version *int64 `locationName:"version" type:"long"`
36926}
36927
36928// String returns the string representation
36929func (s DescribeThingOutput) String() string {
36930	return awsutil.Prettify(s)
36931}
36932
36933// GoString returns the string representation
36934func (s DescribeThingOutput) GoString() string {
36935	return s.String()
36936}
36937
36938// SetAttributes sets the Attributes field's value.
36939func (s *DescribeThingOutput) SetAttributes(v map[string]*string) *DescribeThingOutput {
36940	s.Attributes = v
36941	return s
36942}
36943
36944// SetBillingGroupName sets the BillingGroupName field's value.
36945func (s *DescribeThingOutput) SetBillingGroupName(v string) *DescribeThingOutput {
36946	s.BillingGroupName = &v
36947	return s
36948}
36949
36950// SetDefaultClientId sets the DefaultClientId field's value.
36951func (s *DescribeThingOutput) SetDefaultClientId(v string) *DescribeThingOutput {
36952	s.DefaultClientId = &v
36953	return s
36954}
36955
36956// SetThingArn sets the ThingArn field's value.
36957func (s *DescribeThingOutput) SetThingArn(v string) *DescribeThingOutput {
36958	s.ThingArn = &v
36959	return s
36960}
36961
36962// SetThingId sets the ThingId field's value.
36963func (s *DescribeThingOutput) SetThingId(v string) *DescribeThingOutput {
36964	s.ThingId = &v
36965	return s
36966}
36967
36968// SetThingName sets the ThingName field's value.
36969func (s *DescribeThingOutput) SetThingName(v string) *DescribeThingOutput {
36970	s.ThingName = &v
36971	return s
36972}
36973
36974// SetThingTypeName sets the ThingTypeName field's value.
36975func (s *DescribeThingOutput) SetThingTypeName(v string) *DescribeThingOutput {
36976	s.ThingTypeName = &v
36977	return s
36978}
36979
36980// SetVersion sets the Version field's value.
36981func (s *DescribeThingOutput) SetVersion(v int64) *DescribeThingOutput {
36982	s.Version = &v
36983	return s
36984}
36985
36986type DescribeThingRegistrationTaskInput struct {
36987	_ struct{} `type:"structure"`
36988
36989	// The task ID.
36990	//
36991	// TaskId is a required field
36992	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
36993}
36994
36995// String returns the string representation
36996func (s DescribeThingRegistrationTaskInput) String() string {
36997	return awsutil.Prettify(s)
36998}
36999
37000// GoString returns the string representation
37001func (s DescribeThingRegistrationTaskInput) GoString() string {
37002	return s.String()
37003}
37004
37005// Validate inspects the fields of the type to determine if they are valid.
37006func (s *DescribeThingRegistrationTaskInput) Validate() error {
37007	invalidParams := request.ErrInvalidParams{Context: "DescribeThingRegistrationTaskInput"}
37008	if s.TaskId == nil {
37009		invalidParams.Add(request.NewErrParamRequired("TaskId"))
37010	}
37011	if s.TaskId != nil && len(*s.TaskId) < 1 {
37012		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
37013	}
37014
37015	if invalidParams.Len() > 0 {
37016		return invalidParams
37017	}
37018	return nil
37019}
37020
37021// SetTaskId sets the TaskId field's value.
37022func (s *DescribeThingRegistrationTaskInput) SetTaskId(v string) *DescribeThingRegistrationTaskInput {
37023	s.TaskId = &v
37024	return s
37025}
37026
37027type DescribeThingRegistrationTaskOutput struct {
37028	_ struct{} `type:"structure"`
37029
37030	// The task creation date.
37031	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
37032
37033	// The number of things that failed to be provisioned.
37034	FailureCount *int64 `locationName:"failureCount" type:"integer"`
37035
37036	// The S3 bucket that contains the input file.
37037	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string"`
37038
37039	// The input file key.
37040	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string"`
37041
37042	// The date when the task was last modified.
37043	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
37044
37045	// The message.
37046	Message *string `locationName:"message" type:"string"`
37047
37048	// The progress of the bulk provisioning task expressed as a percentage.
37049	PercentageProgress *int64 `locationName:"percentageProgress" type:"integer"`
37050
37051	// The role ARN that grants access to the input file bucket.
37052	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
37053
37054	// The status of the bulk thing provisioning task.
37055	Status *string `locationName:"status" type:"string" enum:"Status"`
37056
37057	// The number of things successfully provisioned.
37058	SuccessCount *int64 `locationName:"successCount" type:"integer"`
37059
37060	// The task ID.
37061	TaskId *string `locationName:"taskId" type:"string"`
37062
37063	// The task's template.
37064	TemplateBody *string `locationName:"templateBody" type:"string"`
37065}
37066
37067// String returns the string representation
37068func (s DescribeThingRegistrationTaskOutput) String() string {
37069	return awsutil.Prettify(s)
37070}
37071
37072// GoString returns the string representation
37073func (s DescribeThingRegistrationTaskOutput) GoString() string {
37074	return s.String()
37075}
37076
37077// SetCreationDate sets the CreationDate field's value.
37078func (s *DescribeThingRegistrationTaskOutput) SetCreationDate(v time.Time) *DescribeThingRegistrationTaskOutput {
37079	s.CreationDate = &v
37080	return s
37081}
37082
37083// SetFailureCount sets the FailureCount field's value.
37084func (s *DescribeThingRegistrationTaskOutput) SetFailureCount(v int64) *DescribeThingRegistrationTaskOutput {
37085	s.FailureCount = &v
37086	return s
37087}
37088
37089// SetInputFileBucket sets the InputFileBucket field's value.
37090func (s *DescribeThingRegistrationTaskOutput) SetInputFileBucket(v string) *DescribeThingRegistrationTaskOutput {
37091	s.InputFileBucket = &v
37092	return s
37093}
37094
37095// SetInputFileKey sets the InputFileKey field's value.
37096func (s *DescribeThingRegistrationTaskOutput) SetInputFileKey(v string) *DescribeThingRegistrationTaskOutput {
37097	s.InputFileKey = &v
37098	return s
37099}
37100
37101// SetLastModifiedDate sets the LastModifiedDate field's value.
37102func (s *DescribeThingRegistrationTaskOutput) SetLastModifiedDate(v time.Time) *DescribeThingRegistrationTaskOutput {
37103	s.LastModifiedDate = &v
37104	return s
37105}
37106
37107// SetMessage sets the Message field's value.
37108func (s *DescribeThingRegistrationTaskOutput) SetMessage(v string) *DescribeThingRegistrationTaskOutput {
37109	s.Message = &v
37110	return s
37111}
37112
37113// SetPercentageProgress sets the PercentageProgress field's value.
37114func (s *DescribeThingRegistrationTaskOutput) SetPercentageProgress(v int64) *DescribeThingRegistrationTaskOutput {
37115	s.PercentageProgress = &v
37116	return s
37117}
37118
37119// SetRoleArn sets the RoleArn field's value.
37120func (s *DescribeThingRegistrationTaskOutput) SetRoleArn(v string) *DescribeThingRegistrationTaskOutput {
37121	s.RoleArn = &v
37122	return s
37123}
37124
37125// SetStatus sets the Status field's value.
37126func (s *DescribeThingRegistrationTaskOutput) SetStatus(v string) *DescribeThingRegistrationTaskOutput {
37127	s.Status = &v
37128	return s
37129}
37130
37131// SetSuccessCount sets the SuccessCount field's value.
37132func (s *DescribeThingRegistrationTaskOutput) SetSuccessCount(v int64) *DescribeThingRegistrationTaskOutput {
37133	s.SuccessCount = &v
37134	return s
37135}
37136
37137// SetTaskId sets the TaskId field's value.
37138func (s *DescribeThingRegistrationTaskOutput) SetTaskId(v string) *DescribeThingRegistrationTaskOutput {
37139	s.TaskId = &v
37140	return s
37141}
37142
37143// SetTemplateBody sets the TemplateBody field's value.
37144func (s *DescribeThingRegistrationTaskOutput) SetTemplateBody(v string) *DescribeThingRegistrationTaskOutput {
37145	s.TemplateBody = &v
37146	return s
37147}
37148
37149// The input for the DescribeThingType operation.
37150type DescribeThingTypeInput struct {
37151	_ struct{} `type:"structure"`
37152
37153	// The name of the thing type.
37154	//
37155	// ThingTypeName is a required field
37156	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
37157}
37158
37159// String returns the string representation
37160func (s DescribeThingTypeInput) String() string {
37161	return awsutil.Prettify(s)
37162}
37163
37164// GoString returns the string representation
37165func (s DescribeThingTypeInput) GoString() string {
37166	return s.String()
37167}
37168
37169// Validate inspects the fields of the type to determine if they are valid.
37170func (s *DescribeThingTypeInput) Validate() error {
37171	invalidParams := request.ErrInvalidParams{Context: "DescribeThingTypeInput"}
37172	if s.ThingTypeName == nil {
37173		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
37174	}
37175	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
37176		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
37177	}
37178
37179	if invalidParams.Len() > 0 {
37180		return invalidParams
37181	}
37182	return nil
37183}
37184
37185// SetThingTypeName sets the ThingTypeName field's value.
37186func (s *DescribeThingTypeInput) SetThingTypeName(v string) *DescribeThingTypeInput {
37187	s.ThingTypeName = &v
37188	return s
37189}
37190
37191// The output for the DescribeThingType operation.
37192type DescribeThingTypeOutput struct {
37193	_ struct{} `type:"structure"`
37194
37195	// The thing type ARN.
37196	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
37197
37198	// The thing type ID.
37199	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
37200
37201	// The ThingTypeMetadata contains additional information about the thing type
37202	// including: creation date and time, a value indicating whether the thing type
37203	// is deprecated, and a date and time when it was deprecated.
37204	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
37205
37206	// The name of the thing type.
37207	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
37208
37209	// The ThingTypeProperties contains information about the thing type including
37210	// description, and a list of searchable thing attribute names.
37211	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
37212}
37213
37214// String returns the string representation
37215func (s DescribeThingTypeOutput) String() string {
37216	return awsutil.Prettify(s)
37217}
37218
37219// GoString returns the string representation
37220func (s DescribeThingTypeOutput) GoString() string {
37221	return s.String()
37222}
37223
37224// SetThingTypeArn sets the ThingTypeArn field's value.
37225func (s *DescribeThingTypeOutput) SetThingTypeArn(v string) *DescribeThingTypeOutput {
37226	s.ThingTypeArn = &v
37227	return s
37228}
37229
37230// SetThingTypeId sets the ThingTypeId field's value.
37231func (s *DescribeThingTypeOutput) SetThingTypeId(v string) *DescribeThingTypeOutput {
37232	s.ThingTypeId = &v
37233	return s
37234}
37235
37236// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
37237func (s *DescribeThingTypeOutput) SetThingTypeMetadata(v *ThingTypeMetadata) *DescribeThingTypeOutput {
37238	s.ThingTypeMetadata = v
37239	return s
37240}
37241
37242// SetThingTypeName sets the ThingTypeName field's value.
37243func (s *DescribeThingTypeOutput) SetThingTypeName(v string) *DescribeThingTypeOutput {
37244	s.ThingTypeName = &v
37245	return s
37246}
37247
37248// SetThingTypeProperties sets the ThingTypeProperties field's value.
37249func (s *DescribeThingTypeOutput) SetThingTypeProperties(v *ThingTypeProperties) *DescribeThingTypeOutput {
37250	s.ThingTypeProperties = v
37251	return s
37252}
37253
37254// Describes the location of the updated firmware.
37255type Destination struct {
37256	_ struct{} `type:"structure"`
37257
37258	// Describes the location in S3 of the updated firmware.
37259	S3Destination *S3Destination `locationName:"s3Destination" type:"structure"`
37260}
37261
37262// String returns the string representation
37263func (s Destination) String() string {
37264	return awsutil.Prettify(s)
37265}
37266
37267// GoString returns the string representation
37268func (s Destination) GoString() string {
37269	return s.String()
37270}
37271
37272// Validate inspects the fields of the type to determine if they are valid.
37273func (s *Destination) Validate() error {
37274	invalidParams := request.ErrInvalidParams{Context: "Destination"}
37275	if s.S3Destination != nil {
37276		if err := s.S3Destination.Validate(); err != nil {
37277			invalidParams.AddNested("S3Destination", err.(request.ErrInvalidParams))
37278		}
37279	}
37280
37281	if invalidParams.Len() > 0 {
37282		return invalidParams
37283	}
37284	return nil
37285}
37286
37287// SetS3Destination sets the S3Destination field's value.
37288func (s *Destination) SetS3Destination(v *S3Destination) *Destination {
37289	s.S3Destination = v
37290	return s
37291}
37292
37293type DetachPolicyInput struct {
37294	_ struct{} `type:"structure"`
37295
37296	// The policy to detach.
37297	//
37298	// PolicyName is a required field
37299	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
37300
37301	// The target from which the policy will be detached.
37302	//
37303	// Target is a required field
37304	Target *string `locationName:"target" type:"string" required:"true"`
37305}
37306
37307// String returns the string representation
37308func (s DetachPolicyInput) String() string {
37309	return awsutil.Prettify(s)
37310}
37311
37312// GoString returns the string representation
37313func (s DetachPolicyInput) GoString() string {
37314	return s.String()
37315}
37316
37317// Validate inspects the fields of the type to determine if they are valid.
37318func (s *DetachPolicyInput) Validate() error {
37319	invalidParams := request.ErrInvalidParams{Context: "DetachPolicyInput"}
37320	if s.PolicyName == nil {
37321		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
37322	}
37323	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
37324		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
37325	}
37326	if s.Target == nil {
37327		invalidParams.Add(request.NewErrParamRequired("Target"))
37328	}
37329
37330	if invalidParams.Len() > 0 {
37331		return invalidParams
37332	}
37333	return nil
37334}
37335
37336// SetPolicyName sets the PolicyName field's value.
37337func (s *DetachPolicyInput) SetPolicyName(v string) *DetachPolicyInput {
37338	s.PolicyName = &v
37339	return s
37340}
37341
37342// SetTarget sets the Target field's value.
37343func (s *DetachPolicyInput) SetTarget(v string) *DetachPolicyInput {
37344	s.Target = &v
37345	return s
37346}
37347
37348type DetachPolicyOutput struct {
37349	_ struct{} `type:"structure"`
37350}
37351
37352// String returns the string representation
37353func (s DetachPolicyOutput) String() string {
37354	return awsutil.Prettify(s)
37355}
37356
37357// GoString returns the string representation
37358func (s DetachPolicyOutput) GoString() string {
37359	return s.String()
37360}
37361
37362// The input for the DetachPrincipalPolicy operation.
37363type DetachPrincipalPolicyInput struct {
37364	_ struct{} `type:"structure"`
37365
37366	// The name of the policy to detach.
37367	//
37368	// PolicyName is a required field
37369	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
37370
37371	// The principal.
37372	//
37373	// Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
37374	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
37375	// (region:id).
37376	//
37377	// Principal is a required field
37378	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
37379}
37380
37381// String returns the string representation
37382func (s DetachPrincipalPolicyInput) String() string {
37383	return awsutil.Prettify(s)
37384}
37385
37386// GoString returns the string representation
37387func (s DetachPrincipalPolicyInput) GoString() string {
37388	return s.String()
37389}
37390
37391// Validate inspects the fields of the type to determine if they are valid.
37392func (s *DetachPrincipalPolicyInput) Validate() error {
37393	invalidParams := request.ErrInvalidParams{Context: "DetachPrincipalPolicyInput"}
37394	if s.PolicyName == nil {
37395		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
37396	}
37397	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
37398		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
37399	}
37400	if s.Principal == nil {
37401		invalidParams.Add(request.NewErrParamRequired("Principal"))
37402	}
37403
37404	if invalidParams.Len() > 0 {
37405		return invalidParams
37406	}
37407	return nil
37408}
37409
37410// SetPolicyName sets the PolicyName field's value.
37411func (s *DetachPrincipalPolicyInput) SetPolicyName(v string) *DetachPrincipalPolicyInput {
37412	s.PolicyName = &v
37413	return s
37414}
37415
37416// SetPrincipal sets the Principal field's value.
37417func (s *DetachPrincipalPolicyInput) SetPrincipal(v string) *DetachPrincipalPolicyInput {
37418	s.Principal = &v
37419	return s
37420}
37421
37422type DetachPrincipalPolicyOutput struct {
37423	_ struct{} `type:"structure"`
37424}
37425
37426// String returns the string representation
37427func (s DetachPrincipalPolicyOutput) String() string {
37428	return awsutil.Prettify(s)
37429}
37430
37431// GoString returns the string representation
37432func (s DetachPrincipalPolicyOutput) GoString() string {
37433	return s.String()
37434}
37435
37436type DetachSecurityProfileInput struct {
37437	_ struct{} `type:"structure"`
37438
37439	// The security profile that is detached.
37440	//
37441	// SecurityProfileName is a required field
37442	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
37443
37444	// The ARN of the thing group from which the security profile is detached.
37445	//
37446	// SecurityProfileTargetArn is a required field
37447	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
37448}
37449
37450// String returns the string representation
37451func (s DetachSecurityProfileInput) String() string {
37452	return awsutil.Prettify(s)
37453}
37454
37455// GoString returns the string representation
37456func (s DetachSecurityProfileInput) GoString() string {
37457	return s.String()
37458}
37459
37460// Validate inspects the fields of the type to determine if they are valid.
37461func (s *DetachSecurityProfileInput) Validate() error {
37462	invalidParams := request.ErrInvalidParams{Context: "DetachSecurityProfileInput"}
37463	if s.SecurityProfileName == nil {
37464		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
37465	}
37466	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
37467		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
37468	}
37469	if s.SecurityProfileTargetArn == nil {
37470		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
37471	}
37472
37473	if invalidParams.Len() > 0 {
37474		return invalidParams
37475	}
37476	return nil
37477}
37478
37479// SetSecurityProfileName sets the SecurityProfileName field's value.
37480func (s *DetachSecurityProfileInput) SetSecurityProfileName(v string) *DetachSecurityProfileInput {
37481	s.SecurityProfileName = &v
37482	return s
37483}
37484
37485// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
37486func (s *DetachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *DetachSecurityProfileInput {
37487	s.SecurityProfileTargetArn = &v
37488	return s
37489}
37490
37491type DetachSecurityProfileOutput struct {
37492	_ struct{} `type:"structure"`
37493}
37494
37495// String returns the string representation
37496func (s DetachSecurityProfileOutput) String() string {
37497	return awsutil.Prettify(s)
37498}
37499
37500// GoString returns the string representation
37501func (s DetachSecurityProfileOutput) GoString() string {
37502	return s.String()
37503}
37504
37505// The input for the DetachThingPrincipal operation.
37506type DetachThingPrincipalInput struct {
37507	_ struct{} `type:"structure"`
37508
37509	// If the principal is a certificate, this value must be ARN of the certificate.
37510	// If the principal is an Amazon Cognito identity, this value must be the ID
37511	// of the Amazon Cognito identity.
37512	//
37513	// Principal is a required field
37514	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
37515
37516	// The name of the thing.
37517	//
37518	// ThingName is a required field
37519	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
37520}
37521
37522// String returns the string representation
37523func (s DetachThingPrincipalInput) String() string {
37524	return awsutil.Prettify(s)
37525}
37526
37527// GoString returns the string representation
37528func (s DetachThingPrincipalInput) GoString() string {
37529	return s.String()
37530}
37531
37532// Validate inspects the fields of the type to determine if they are valid.
37533func (s *DetachThingPrincipalInput) Validate() error {
37534	invalidParams := request.ErrInvalidParams{Context: "DetachThingPrincipalInput"}
37535	if s.Principal == nil {
37536		invalidParams.Add(request.NewErrParamRequired("Principal"))
37537	}
37538	if s.ThingName == nil {
37539		invalidParams.Add(request.NewErrParamRequired("ThingName"))
37540	}
37541	if s.ThingName != nil && len(*s.ThingName) < 1 {
37542		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
37543	}
37544
37545	if invalidParams.Len() > 0 {
37546		return invalidParams
37547	}
37548	return nil
37549}
37550
37551// SetPrincipal sets the Principal field's value.
37552func (s *DetachThingPrincipalInput) SetPrincipal(v string) *DetachThingPrincipalInput {
37553	s.Principal = &v
37554	return s
37555}
37556
37557// SetThingName sets the ThingName field's value.
37558func (s *DetachThingPrincipalInput) SetThingName(v string) *DetachThingPrincipalInput {
37559	s.ThingName = &v
37560	return s
37561}
37562
37563// The output from the DetachThingPrincipal operation.
37564type DetachThingPrincipalOutput struct {
37565	_ struct{} `type:"structure"`
37566}
37567
37568// String returns the string representation
37569func (s DetachThingPrincipalOutput) String() string {
37570	return awsutil.Prettify(s)
37571}
37572
37573// GoString returns the string representation
37574func (s DetachThingPrincipalOutput) GoString() string {
37575	return s.String()
37576}
37577
37578// Describes which mitigation actions should be executed.
37579type DetectMitigationActionExecution struct {
37580	_ struct{} `type:"structure"`
37581
37582	// The friendly name that uniquely identifies the mitigation action.
37583	ActionName *string `locationName:"actionName" type:"string"`
37584
37585	// The error code of a mitigation action.
37586	ErrorCode *string `locationName:"errorCode" type:"string"`
37587
37588	// The date a mitigation action ended.
37589	ExecutionEndDate *time.Time `locationName:"executionEndDate" type:"timestamp"`
37590
37591	// The date a mitigation action was started.
37592	ExecutionStartDate *time.Time `locationName:"executionStartDate" type:"timestamp"`
37593
37594	// The message of a mitigation action.
37595	Message *string `locationName:"message" type:"string"`
37596
37597	// The status of a mitigation action.
37598	Status *string `locationName:"status" type:"string" enum:"DetectMitigationActionExecutionStatus"`
37599
37600	// The unique identifier of the task.
37601	TaskId *string `locationName:"taskId" min:"1" type:"string"`
37602
37603	// The name of the thing.
37604	ThingName *string `locationName:"thingName" min:"1" type:"string"`
37605
37606	// The unique identifier of the violation.
37607	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
37608}
37609
37610// String returns the string representation
37611func (s DetectMitigationActionExecution) String() string {
37612	return awsutil.Prettify(s)
37613}
37614
37615// GoString returns the string representation
37616func (s DetectMitigationActionExecution) GoString() string {
37617	return s.String()
37618}
37619
37620// SetActionName sets the ActionName field's value.
37621func (s *DetectMitigationActionExecution) SetActionName(v string) *DetectMitigationActionExecution {
37622	s.ActionName = &v
37623	return s
37624}
37625
37626// SetErrorCode sets the ErrorCode field's value.
37627func (s *DetectMitigationActionExecution) SetErrorCode(v string) *DetectMitigationActionExecution {
37628	s.ErrorCode = &v
37629	return s
37630}
37631
37632// SetExecutionEndDate sets the ExecutionEndDate field's value.
37633func (s *DetectMitigationActionExecution) SetExecutionEndDate(v time.Time) *DetectMitigationActionExecution {
37634	s.ExecutionEndDate = &v
37635	return s
37636}
37637
37638// SetExecutionStartDate sets the ExecutionStartDate field's value.
37639func (s *DetectMitigationActionExecution) SetExecutionStartDate(v time.Time) *DetectMitigationActionExecution {
37640	s.ExecutionStartDate = &v
37641	return s
37642}
37643
37644// SetMessage sets the Message field's value.
37645func (s *DetectMitigationActionExecution) SetMessage(v string) *DetectMitigationActionExecution {
37646	s.Message = &v
37647	return s
37648}
37649
37650// SetStatus sets the Status field's value.
37651func (s *DetectMitigationActionExecution) SetStatus(v string) *DetectMitigationActionExecution {
37652	s.Status = &v
37653	return s
37654}
37655
37656// SetTaskId sets the TaskId field's value.
37657func (s *DetectMitigationActionExecution) SetTaskId(v string) *DetectMitigationActionExecution {
37658	s.TaskId = &v
37659	return s
37660}
37661
37662// SetThingName sets the ThingName field's value.
37663func (s *DetectMitigationActionExecution) SetThingName(v string) *DetectMitigationActionExecution {
37664	s.ThingName = &v
37665	return s
37666}
37667
37668// SetViolationId sets the ViolationId field's value.
37669func (s *DetectMitigationActionExecution) SetViolationId(v string) *DetectMitigationActionExecution {
37670	s.ViolationId = &v
37671	return s
37672}
37673
37674// The statistics of a mitigation action task.
37675type DetectMitigationActionsTaskStatistics struct {
37676	_ struct{} `type:"structure"`
37677
37678	// The actions that were performed.
37679	ActionsExecuted *int64 `locationName:"actionsExecuted" type:"long"`
37680
37681	// The actions that failed.
37682	ActionsFailed *int64 `locationName:"actionsFailed" type:"long"`
37683
37684	// The actions that were skipped.
37685	ActionsSkipped *int64 `locationName:"actionsSkipped" type:"long"`
37686}
37687
37688// String returns the string representation
37689func (s DetectMitigationActionsTaskStatistics) String() string {
37690	return awsutil.Prettify(s)
37691}
37692
37693// GoString returns the string representation
37694func (s DetectMitigationActionsTaskStatistics) GoString() string {
37695	return s.String()
37696}
37697
37698// SetActionsExecuted sets the ActionsExecuted field's value.
37699func (s *DetectMitigationActionsTaskStatistics) SetActionsExecuted(v int64) *DetectMitigationActionsTaskStatistics {
37700	s.ActionsExecuted = &v
37701	return s
37702}
37703
37704// SetActionsFailed sets the ActionsFailed field's value.
37705func (s *DetectMitigationActionsTaskStatistics) SetActionsFailed(v int64) *DetectMitigationActionsTaskStatistics {
37706	s.ActionsFailed = &v
37707	return s
37708}
37709
37710// SetActionsSkipped sets the ActionsSkipped field's value.
37711func (s *DetectMitigationActionsTaskStatistics) SetActionsSkipped(v int64) *DetectMitigationActionsTaskStatistics {
37712	s.ActionsSkipped = &v
37713	return s
37714}
37715
37716// The summary of the mitigation action tasks.
37717type DetectMitigationActionsTaskSummary struct {
37718	_ struct{} `type:"structure"`
37719
37720	// The definition of the actions.
37721	ActionsDefinition []*MitigationAction `locationName:"actionsDefinition" type:"list"`
37722
37723	// Includes only active violations.
37724	OnlyActiveViolationsIncluded *bool `locationName:"onlyActiveViolationsIncluded" type:"boolean"`
37725
37726	// Includes suppressed alerts.
37727	SuppressedAlertsIncluded *bool `locationName:"suppressedAlertsIncluded" type:"boolean"`
37728
37729	// Specifies the ML Detect findings to which the mitigation actions are applied.
37730	Target *DetectMitigationActionsTaskTarget `locationName:"target" type:"structure"`
37731
37732	// The date the task ended.
37733	TaskEndTime *time.Time `locationName:"taskEndTime" type:"timestamp"`
37734
37735	// The unique identifier of the task.
37736	TaskId *string `locationName:"taskId" min:"1" type:"string"`
37737
37738	// The date the task started.
37739	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
37740
37741	// The statistics of a mitigation action task.
37742	TaskStatistics *DetectMitigationActionsTaskStatistics `locationName:"taskStatistics" type:"structure"`
37743
37744	// The status of the task.
37745	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"DetectMitigationActionsTaskStatus"`
37746
37747	// Specifies the time period of which violation events occurred between.
37748	ViolationEventOccurrenceRange *ViolationEventOccurrenceRange `locationName:"violationEventOccurrenceRange" type:"structure"`
37749}
37750
37751// String returns the string representation
37752func (s DetectMitigationActionsTaskSummary) String() string {
37753	return awsutil.Prettify(s)
37754}
37755
37756// GoString returns the string representation
37757func (s DetectMitigationActionsTaskSummary) GoString() string {
37758	return s.String()
37759}
37760
37761// SetActionsDefinition sets the ActionsDefinition field's value.
37762func (s *DetectMitigationActionsTaskSummary) SetActionsDefinition(v []*MitigationAction) *DetectMitigationActionsTaskSummary {
37763	s.ActionsDefinition = v
37764	return s
37765}
37766
37767// SetOnlyActiveViolationsIncluded sets the OnlyActiveViolationsIncluded field's value.
37768func (s *DetectMitigationActionsTaskSummary) SetOnlyActiveViolationsIncluded(v bool) *DetectMitigationActionsTaskSummary {
37769	s.OnlyActiveViolationsIncluded = &v
37770	return s
37771}
37772
37773// SetSuppressedAlertsIncluded sets the SuppressedAlertsIncluded field's value.
37774func (s *DetectMitigationActionsTaskSummary) SetSuppressedAlertsIncluded(v bool) *DetectMitigationActionsTaskSummary {
37775	s.SuppressedAlertsIncluded = &v
37776	return s
37777}
37778
37779// SetTarget sets the Target field's value.
37780func (s *DetectMitigationActionsTaskSummary) SetTarget(v *DetectMitigationActionsTaskTarget) *DetectMitigationActionsTaskSummary {
37781	s.Target = v
37782	return s
37783}
37784
37785// SetTaskEndTime sets the TaskEndTime field's value.
37786func (s *DetectMitigationActionsTaskSummary) SetTaskEndTime(v time.Time) *DetectMitigationActionsTaskSummary {
37787	s.TaskEndTime = &v
37788	return s
37789}
37790
37791// SetTaskId sets the TaskId field's value.
37792func (s *DetectMitigationActionsTaskSummary) SetTaskId(v string) *DetectMitigationActionsTaskSummary {
37793	s.TaskId = &v
37794	return s
37795}
37796
37797// SetTaskStartTime sets the TaskStartTime field's value.
37798func (s *DetectMitigationActionsTaskSummary) SetTaskStartTime(v time.Time) *DetectMitigationActionsTaskSummary {
37799	s.TaskStartTime = &v
37800	return s
37801}
37802
37803// SetTaskStatistics sets the TaskStatistics field's value.
37804func (s *DetectMitigationActionsTaskSummary) SetTaskStatistics(v *DetectMitigationActionsTaskStatistics) *DetectMitigationActionsTaskSummary {
37805	s.TaskStatistics = v
37806	return s
37807}
37808
37809// SetTaskStatus sets the TaskStatus field's value.
37810func (s *DetectMitigationActionsTaskSummary) SetTaskStatus(v string) *DetectMitigationActionsTaskSummary {
37811	s.TaskStatus = &v
37812	return s
37813}
37814
37815// SetViolationEventOccurrenceRange sets the ViolationEventOccurrenceRange field's value.
37816func (s *DetectMitigationActionsTaskSummary) SetViolationEventOccurrenceRange(v *ViolationEventOccurrenceRange) *DetectMitigationActionsTaskSummary {
37817	s.ViolationEventOccurrenceRange = v
37818	return s
37819}
37820
37821// The target of a mitigation action task.
37822type DetectMitigationActionsTaskTarget struct {
37823	_ struct{} `type:"structure"`
37824
37825	// The name of the behavior.
37826	BehaviorName *string `locationName:"behaviorName" min:"1" type:"string"`
37827
37828	// The name of the security profile.
37829	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
37830
37831	// The unique identifiers of the violations.
37832	ViolationIds []*string `locationName:"violationIds" min:"1" type:"list"`
37833}
37834
37835// String returns the string representation
37836func (s DetectMitigationActionsTaskTarget) String() string {
37837	return awsutil.Prettify(s)
37838}
37839
37840// GoString returns the string representation
37841func (s DetectMitigationActionsTaskTarget) GoString() string {
37842	return s.String()
37843}
37844
37845// Validate inspects the fields of the type to determine if they are valid.
37846func (s *DetectMitigationActionsTaskTarget) Validate() error {
37847	invalidParams := request.ErrInvalidParams{Context: "DetectMitigationActionsTaskTarget"}
37848	if s.BehaviorName != nil && len(*s.BehaviorName) < 1 {
37849		invalidParams.Add(request.NewErrParamMinLen("BehaviorName", 1))
37850	}
37851	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
37852		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
37853	}
37854	if s.ViolationIds != nil && len(s.ViolationIds) < 1 {
37855		invalidParams.Add(request.NewErrParamMinLen("ViolationIds", 1))
37856	}
37857
37858	if invalidParams.Len() > 0 {
37859		return invalidParams
37860	}
37861	return nil
37862}
37863
37864// SetBehaviorName sets the BehaviorName field's value.
37865func (s *DetectMitigationActionsTaskTarget) SetBehaviorName(v string) *DetectMitigationActionsTaskTarget {
37866	s.BehaviorName = &v
37867	return s
37868}
37869
37870// SetSecurityProfileName sets the SecurityProfileName field's value.
37871func (s *DetectMitigationActionsTaskTarget) SetSecurityProfileName(v string) *DetectMitigationActionsTaskTarget {
37872	s.SecurityProfileName = &v
37873	return s
37874}
37875
37876// SetViolationIds sets the ViolationIds field's value.
37877func (s *DetectMitigationActionsTaskTarget) SetViolationIds(v []*string) *DetectMitigationActionsTaskTarget {
37878	s.ViolationIds = v
37879	return s
37880}
37881
37882// The input for the DisableTopicRuleRequest operation.
37883type DisableTopicRuleInput struct {
37884	_ struct{} `type:"structure"`
37885
37886	// The name of the rule to disable.
37887	//
37888	// RuleName is a required field
37889	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
37890}
37891
37892// String returns the string representation
37893func (s DisableTopicRuleInput) String() string {
37894	return awsutil.Prettify(s)
37895}
37896
37897// GoString returns the string representation
37898func (s DisableTopicRuleInput) GoString() string {
37899	return s.String()
37900}
37901
37902// Validate inspects the fields of the type to determine if they are valid.
37903func (s *DisableTopicRuleInput) Validate() error {
37904	invalidParams := request.ErrInvalidParams{Context: "DisableTopicRuleInput"}
37905	if s.RuleName == nil {
37906		invalidParams.Add(request.NewErrParamRequired("RuleName"))
37907	}
37908	if s.RuleName != nil && len(*s.RuleName) < 1 {
37909		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
37910	}
37911
37912	if invalidParams.Len() > 0 {
37913		return invalidParams
37914	}
37915	return nil
37916}
37917
37918// SetRuleName sets the RuleName field's value.
37919func (s *DisableTopicRuleInput) SetRuleName(v string) *DisableTopicRuleInput {
37920	s.RuleName = &v
37921	return s
37922}
37923
37924type DisableTopicRuleOutput struct {
37925	_ struct{} `type:"structure"`
37926}
37927
37928// String returns the string representation
37929func (s DisableTopicRuleOutput) String() string {
37930	return awsutil.Prettify(s)
37931}
37932
37933// GoString returns the string representation
37934func (s DisableTopicRuleOutput) GoString() string {
37935	return s.String()
37936}
37937
37938// The summary of a domain configuration. A domain configuration specifies custom
37939// IoT-specific information about a domain. A domain configuration can be associated
37940// with an AWS-managed domain (for example, dbc123defghijk.iot.us-west-2.amazonaws.com),
37941// a customer managed domain, or a default endpoint.
37942//
37943//    * Data
37944//
37945//    * Jobs
37946//
37947//    * CredentialProvider
37948type DomainConfigurationSummary struct {
37949	_ struct{} `type:"structure"`
37950
37951	// The ARN of the domain configuration.
37952	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
37953
37954	// The name of the domain configuration. This value must be unique to a region.
37955	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
37956
37957	// The type of service delivered by the endpoint.
37958	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
37959}
37960
37961// String returns the string representation
37962func (s DomainConfigurationSummary) String() string {
37963	return awsutil.Prettify(s)
37964}
37965
37966// GoString returns the string representation
37967func (s DomainConfigurationSummary) GoString() string {
37968	return s.String()
37969}
37970
37971// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
37972func (s *DomainConfigurationSummary) SetDomainConfigurationArn(v string) *DomainConfigurationSummary {
37973	s.DomainConfigurationArn = &v
37974	return s
37975}
37976
37977// SetDomainConfigurationName sets the DomainConfigurationName field's value.
37978func (s *DomainConfigurationSummary) SetDomainConfigurationName(v string) *DomainConfigurationSummary {
37979	s.DomainConfigurationName = &v
37980	return s
37981}
37982
37983// SetServiceType sets the ServiceType field's value.
37984func (s *DomainConfigurationSummary) SetServiceType(v string) *DomainConfigurationSummary {
37985	s.ServiceType = &v
37986	return s
37987}
37988
37989// Describes an action to write to a DynamoDB table.
37990//
37991// The tableName, hashKeyField, and rangeKeyField values must match the values
37992// used when you created the table.
37993//
37994// The hashKeyValue and rangeKeyvalue fields use a substitution template syntax.
37995// These templates provide data at runtime. The syntax is as follows: ${sql-expression}.
37996//
37997// You can specify any valid expression in a WHERE or SELECT clause, including
37998// JSON properties, comparisons, calculations, and functions. For example, the
37999// following field uses the third level of the topic:
38000//
38001// "hashKeyValue": "${topic(3)}"
38002//
38003// The following field uses the timestamp:
38004//
38005// "rangeKeyValue": "${timestamp()}"
38006type DynamoDBAction struct {
38007	_ struct{} `type:"structure"`
38008
38009	// The hash key name.
38010	//
38011	// HashKeyField is a required field
38012	HashKeyField *string `locationName:"hashKeyField" type:"string" required:"true"`
38013
38014	// The hash key type. Valid values are "STRING" or "NUMBER"
38015	HashKeyType *string `locationName:"hashKeyType" type:"string" enum:"DynamoKeyType"`
38016
38017	// The hash key value.
38018	//
38019	// HashKeyValue is a required field
38020	HashKeyValue *string `locationName:"hashKeyValue" type:"string" required:"true"`
38021
38022	// The type of operation to be performed. This follows the substitution template,
38023	// so it can be ${operation}, but the substitution must result in one of the
38024	// following: INSERT, UPDATE, or DELETE.
38025	Operation *string `locationName:"operation" type:"string"`
38026
38027	// The action payload. This name can be customized.
38028	PayloadField *string `locationName:"payloadField" type:"string"`
38029
38030	// The range key name.
38031	RangeKeyField *string `locationName:"rangeKeyField" type:"string"`
38032
38033	// The range key type. Valid values are "STRING" or "NUMBER"
38034	RangeKeyType *string `locationName:"rangeKeyType" type:"string" enum:"DynamoKeyType"`
38035
38036	// The range key value.
38037	RangeKeyValue *string `locationName:"rangeKeyValue" type:"string"`
38038
38039	// The ARN of the IAM role that grants access to the DynamoDB table.
38040	//
38041	// RoleArn is a required field
38042	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
38043
38044	// The name of the DynamoDB table.
38045	//
38046	// TableName is a required field
38047	TableName *string `locationName:"tableName" type:"string" required:"true"`
38048}
38049
38050// String returns the string representation
38051func (s DynamoDBAction) String() string {
38052	return awsutil.Prettify(s)
38053}
38054
38055// GoString returns the string representation
38056func (s DynamoDBAction) GoString() string {
38057	return s.String()
38058}
38059
38060// Validate inspects the fields of the type to determine if they are valid.
38061func (s *DynamoDBAction) Validate() error {
38062	invalidParams := request.ErrInvalidParams{Context: "DynamoDBAction"}
38063	if s.HashKeyField == nil {
38064		invalidParams.Add(request.NewErrParamRequired("HashKeyField"))
38065	}
38066	if s.HashKeyValue == nil {
38067		invalidParams.Add(request.NewErrParamRequired("HashKeyValue"))
38068	}
38069	if s.RoleArn == nil {
38070		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
38071	}
38072	if s.TableName == nil {
38073		invalidParams.Add(request.NewErrParamRequired("TableName"))
38074	}
38075
38076	if invalidParams.Len() > 0 {
38077		return invalidParams
38078	}
38079	return nil
38080}
38081
38082// SetHashKeyField sets the HashKeyField field's value.
38083func (s *DynamoDBAction) SetHashKeyField(v string) *DynamoDBAction {
38084	s.HashKeyField = &v
38085	return s
38086}
38087
38088// SetHashKeyType sets the HashKeyType field's value.
38089func (s *DynamoDBAction) SetHashKeyType(v string) *DynamoDBAction {
38090	s.HashKeyType = &v
38091	return s
38092}
38093
38094// SetHashKeyValue sets the HashKeyValue field's value.
38095func (s *DynamoDBAction) SetHashKeyValue(v string) *DynamoDBAction {
38096	s.HashKeyValue = &v
38097	return s
38098}
38099
38100// SetOperation sets the Operation field's value.
38101func (s *DynamoDBAction) SetOperation(v string) *DynamoDBAction {
38102	s.Operation = &v
38103	return s
38104}
38105
38106// SetPayloadField sets the PayloadField field's value.
38107func (s *DynamoDBAction) SetPayloadField(v string) *DynamoDBAction {
38108	s.PayloadField = &v
38109	return s
38110}
38111
38112// SetRangeKeyField sets the RangeKeyField field's value.
38113func (s *DynamoDBAction) SetRangeKeyField(v string) *DynamoDBAction {
38114	s.RangeKeyField = &v
38115	return s
38116}
38117
38118// SetRangeKeyType sets the RangeKeyType field's value.
38119func (s *DynamoDBAction) SetRangeKeyType(v string) *DynamoDBAction {
38120	s.RangeKeyType = &v
38121	return s
38122}
38123
38124// SetRangeKeyValue sets the RangeKeyValue field's value.
38125func (s *DynamoDBAction) SetRangeKeyValue(v string) *DynamoDBAction {
38126	s.RangeKeyValue = &v
38127	return s
38128}
38129
38130// SetRoleArn sets the RoleArn field's value.
38131func (s *DynamoDBAction) SetRoleArn(v string) *DynamoDBAction {
38132	s.RoleArn = &v
38133	return s
38134}
38135
38136// SetTableName sets the TableName field's value.
38137func (s *DynamoDBAction) SetTableName(v string) *DynamoDBAction {
38138	s.TableName = &v
38139	return s
38140}
38141
38142// Describes an action to write to a DynamoDB table.
38143//
38144// This DynamoDB action writes each attribute in the message payload into it's
38145// own column in the DynamoDB table.
38146type DynamoDBv2Action struct {
38147	_ struct{} `type:"structure"`
38148
38149	// Specifies the DynamoDB table to which the message data will be written. For
38150	// example:
38151	//
38152	// { "dynamoDBv2": { "roleArn": "aws:iam:12341251:my-role" "putItem": { "tableName":
38153	// "my-table" } } }
38154	//
38155	// Each attribute in the message payload will be written to a separate column
38156	// in the DynamoDB database.
38157	//
38158	// PutItem is a required field
38159	PutItem *PutItemInput `locationName:"putItem" type:"structure" required:"true"`
38160
38161	// The ARN of the IAM role that grants access to the DynamoDB table.
38162	//
38163	// RoleArn is a required field
38164	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
38165}
38166
38167// String returns the string representation
38168func (s DynamoDBv2Action) String() string {
38169	return awsutil.Prettify(s)
38170}
38171
38172// GoString returns the string representation
38173func (s DynamoDBv2Action) GoString() string {
38174	return s.String()
38175}
38176
38177// Validate inspects the fields of the type to determine if they are valid.
38178func (s *DynamoDBv2Action) Validate() error {
38179	invalidParams := request.ErrInvalidParams{Context: "DynamoDBv2Action"}
38180	if s.PutItem == nil {
38181		invalidParams.Add(request.NewErrParamRequired("PutItem"))
38182	}
38183	if s.RoleArn == nil {
38184		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
38185	}
38186	if s.PutItem != nil {
38187		if err := s.PutItem.Validate(); err != nil {
38188			invalidParams.AddNested("PutItem", err.(request.ErrInvalidParams))
38189		}
38190	}
38191
38192	if invalidParams.Len() > 0 {
38193		return invalidParams
38194	}
38195	return nil
38196}
38197
38198// SetPutItem sets the PutItem field's value.
38199func (s *DynamoDBv2Action) SetPutItem(v *PutItemInput) *DynamoDBv2Action {
38200	s.PutItem = v
38201	return s
38202}
38203
38204// SetRoleArn sets the RoleArn field's value.
38205func (s *DynamoDBv2Action) SetRoleArn(v string) *DynamoDBv2Action {
38206	s.RoleArn = &v
38207	return s
38208}
38209
38210// The policy that has the effect on the authorization results.
38211type EffectivePolicy struct {
38212	_ struct{} `type:"structure"`
38213
38214	// The policy ARN.
38215	PolicyArn *string `locationName:"policyArn" type:"string"`
38216
38217	// The IAM policy document.
38218	PolicyDocument *string `locationName:"policyDocument" type:"string"`
38219
38220	// The policy name.
38221	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
38222}
38223
38224// String returns the string representation
38225func (s EffectivePolicy) String() string {
38226	return awsutil.Prettify(s)
38227}
38228
38229// GoString returns the string representation
38230func (s EffectivePolicy) GoString() string {
38231	return s.String()
38232}
38233
38234// SetPolicyArn sets the PolicyArn field's value.
38235func (s *EffectivePolicy) SetPolicyArn(v string) *EffectivePolicy {
38236	s.PolicyArn = &v
38237	return s
38238}
38239
38240// SetPolicyDocument sets the PolicyDocument field's value.
38241func (s *EffectivePolicy) SetPolicyDocument(v string) *EffectivePolicy {
38242	s.PolicyDocument = &v
38243	return s
38244}
38245
38246// SetPolicyName sets the PolicyName field's value.
38247func (s *EffectivePolicy) SetPolicyName(v string) *EffectivePolicy {
38248	s.PolicyName = &v
38249	return s
38250}
38251
38252// Describes an action that writes data to an Amazon Elasticsearch Service domain.
38253type ElasticsearchAction struct {
38254	_ struct{} `type:"structure"`
38255
38256	// The endpoint of your Elasticsearch domain.
38257	//
38258	// Endpoint is a required field
38259	Endpoint *string `locationName:"endpoint" type:"string" required:"true"`
38260
38261	// The unique identifier for the document you are storing.
38262	//
38263	// Id is a required field
38264	Id *string `locationName:"id" type:"string" required:"true"`
38265
38266	// The Elasticsearch index where you want to store your data.
38267	//
38268	// Index is a required field
38269	Index *string `locationName:"index" type:"string" required:"true"`
38270
38271	// The IAM role ARN that has access to Elasticsearch.
38272	//
38273	// RoleArn is a required field
38274	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
38275
38276	// The type of document you are storing.
38277	//
38278	// Type is a required field
38279	Type *string `locationName:"type" type:"string" required:"true"`
38280}
38281
38282// String returns the string representation
38283func (s ElasticsearchAction) String() string {
38284	return awsutil.Prettify(s)
38285}
38286
38287// GoString returns the string representation
38288func (s ElasticsearchAction) GoString() string {
38289	return s.String()
38290}
38291
38292// Validate inspects the fields of the type to determine if they are valid.
38293func (s *ElasticsearchAction) Validate() error {
38294	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchAction"}
38295	if s.Endpoint == nil {
38296		invalidParams.Add(request.NewErrParamRequired("Endpoint"))
38297	}
38298	if s.Id == nil {
38299		invalidParams.Add(request.NewErrParamRequired("Id"))
38300	}
38301	if s.Index == nil {
38302		invalidParams.Add(request.NewErrParamRequired("Index"))
38303	}
38304	if s.RoleArn == nil {
38305		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
38306	}
38307	if s.Type == nil {
38308		invalidParams.Add(request.NewErrParamRequired("Type"))
38309	}
38310
38311	if invalidParams.Len() > 0 {
38312		return invalidParams
38313	}
38314	return nil
38315}
38316
38317// SetEndpoint sets the Endpoint field's value.
38318func (s *ElasticsearchAction) SetEndpoint(v string) *ElasticsearchAction {
38319	s.Endpoint = &v
38320	return s
38321}
38322
38323// SetId sets the Id field's value.
38324func (s *ElasticsearchAction) SetId(v string) *ElasticsearchAction {
38325	s.Id = &v
38326	return s
38327}
38328
38329// SetIndex sets the Index field's value.
38330func (s *ElasticsearchAction) SetIndex(v string) *ElasticsearchAction {
38331	s.Index = &v
38332	return s
38333}
38334
38335// SetRoleArn sets the RoleArn field's value.
38336func (s *ElasticsearchAction) SetRoleArn(v string) *ElasticsearchAction {
38337	s.RoleArn = &v
38338	return s
38339}
38340
38341// SetType sets the Type field's value.
38342func (s *ElasticsearchAction) SetType(v string) *ElasticsearchAction {
38343	s.Type = &v
38344	return s
38345}
38346
38347// Parameters used when defining a mitigation action that enable AWS IoT logging.
38348type EnableIoTLoggingParams struct {
38349	_ struct{} `type:"structure"`
38350
38351	// Specifies the type of information to be logged.
38352	//
38353	// LogLevel is a required field
38354	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
38355
38356	// The Amazon Resource Name (ARN) of the IAM role used for logging.
38357	//
38358	// RoleArnForLogging is a required field
38359	RoleArnForLogging *string `locationName:"roleArnForLogging" min:"20" type:"string" required:"true"`
38360}
38361
38362// String returns the string representation
38363func (s EnableIoTLoggingParams) String() string {
38364	return awsutil.Prettify(s)
38365}
38366
38367// GoString returns the string representation
38368func (s EnableIoTLoggingParams) GoString() string {
38369	return s.String()
38370}
38371
38372// Validate inspects the fields of the type to determine if they are valid.
38373func (s *EnableIoTLoggingParams) Validate() error {
38374	invalidParams := request.ErrInvalidParams{Context: "EnableIoTLoggingParams"}
38375	if s.LogLevel == nil {
38376		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
38377	}
38378	if s.RoleArnForLogging == nil {
38379		invalidParams.Add(request.NewErrParamRequired("RoleArnForLogging"))
38380	}
38381	if s.RoleArnForLogging != nil && len(*s.RoleArnForLogging) < 20 {
38382		invalidParams.Add(request.NewErrParamMinLen("RoleArnForLogging", 20))
38383	}
38384
38385	if invalidParams.Len() > 0 {
38386		return invalidParams
38387	}
38388	return nil
38389}
38390
38391// SetLogLevel sets the LogLevel field's value.
38392func (s *EnableIoTLoggingParams) SetLogLevel(v string) *EnableIoTLoggingParams {
38393	s.LogLevel = &v
38394	return s
38395}
38396
38397// SetRoleArnForLogging sets the RoleArnForLogging field's value.
38398func (s *EnableIoTLoggingParams) SetRoleArnForLogging(v string) *EnableIoTLoggingParams {
38399	s.RoleArnForLogging = &v
38400	return s
38401}
38402
38403// The input for the EnableTopicRuleRequest operation.
38404type EnableTopicRuleInput struct {
38405	_ struct{} `type:"structure"`
38406
38407	// The name of the topic rule to enable.
38408	//
38409	// RuleName is a required field
38410	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
38411}
38412
38413// String returns the string representation
38414func (s EnableTopicRuleInput) String() string {
38415	return awsutil.Prettify(s)
38416}
38417
38418// GoString returns the string representation
38419func (s EnableTopicRuleInput) GoString() string {
38420	return s.String()
38421}
38422
38423// Validate inspects the fields of the type to determine if they are valid.
38424func (s *EnableTopicRuleInput) Validate() error {
38425	invalidParams := request.ErrInvalidParams{Context: "EnableTopicRuleInput"}
38426	if s.RuleName == nil {
38427		invalidParams.Add(request.NewErrParamRequired("RuleName"))
38428	}
38429	if s.RuleName != nil && len(*s.RuleName) < 1 {
38430		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
38431	}
38432
38433	if invalidParams.Len() > 0 {
38434		return invalidParams
38435	}
38436	return nil
38437}
38438
38439// SetRuleName sets the RuleName field's value.
38440func (s *EnableTopicRuleInput) SetRuleName(v string) *EnableTopicRuleInput {
38441	s.RuleName = &v
38442	return s
38443}
38444
38445type EnableTopicRuleOutput struct {
38446	_ struct{} `type:"structure"`
38447}
38448
38449// String returns the string representation
38450func (s EnableTopicRuleOutput) String() string {
38451	return awsutil.Prettify(s)
38452}
38453
38454// GoString returns the string representation
38455func (s EnableTopicRuleOutput) GoString() string {
38456	return s.String()
38457}
38458
38459// Error information.
38460type ErrorInfo struct {
38461	_ struct{} `type:"structure"`
38462
38463	// The error code.
38464	Code *string `locationName:"code" type:"string"`
38465
38466	// The error message.
38467	Message *string `locationName:"message" type:"string"`
38468}
38469
38470// String returns the string representation
38471func (s ErrorInfo) String() string {
38472	return awsutil.Prettify(s)
38473}
38474
38475// GoString returns the string representation
38476func (s ErrorInfo) GoString() string {
38477	return s.String()
38478}
38479
38480// SetCode sets the Code field's value.
38481func (s *ErrorInfo) SetCode(v string) *ErrorInfo {
38482	s.Code = &v
38483	return s
38484}
38485
38486// SetMessage sets the Message field's value.
38487func (s *ErrorInfo) SetMessage(v string) *ErrorInfo {
38488	s.Message = &v
38489	return s
38490}
38491
38492// Information that explicitly denies authorization.
38493type ExplicitDeny struct {
38494	_ struct{} `type:"structure"`
38495
38496	// The policies that denied the authorization.
38497	Policies []*Policy `locationName:"policies" type:"list"`
38498}
38499
38500// String returns the string representation
38501func (s ExplicitDeny) String() string {
38502	return awsutil.Prettify(s)
38503}
38504
38505// GoString returns the string representation
38506func (s ExplicitDeny) GoString() string {
38507	return s.String()
38508}
38509
38510// SetPolicies sets the Policies field's value.
38511func (s *ExplicitDeny) SetPolicies(v []*Policy) *ExplicitDeny {
38512	s.Policies = v
38513	return s
38514}
38515
38516// Allows you to create an exponential rate of rollout for a job.
38517type ExponentialRolloutRate struct {
38518	_ struct{} `type:"structure"`
38519
38520	// The minimum number of things that will be notified of a pending job, per
38521	// minute at the start of job rollout. This parameter allows you to define the
38522	// initial rate of rollout.
38523	//
38524	// BaseRatePerMinute is a required field
38525	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
38526
38527	// The exponential factor to increase the rate of rollout for a job.
38528	//
38529	// AWS IoT supports up to one digit after the decimal (for example, 1.5, but
38530	// not 1.55).
38531	//
38532	// IncrementFactor is a required field
38533	IncrementFactor *float64 `locationName:"incrementFactor" min:"1" type:"double" required:"true"`
38534
38535	// The criteria to initiate the increase in rate of rollout for a job.
38536	//
38537	// RateIncreaseCriteria is a required field
38538	RateIncreaseCriteria *RateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
38539}
38540
38541// String returns the string representation
38542func (s ExponentialRolloutRate) String() string {
38543	return awsutil.Prettify(s)
38544}
38545
38546// GoString returns the string representation
38547func (s ExponentialRolloutRate) GoString() string {
38548	return s.String()
38549}
38550
38551// Validate inspects the fields of the type to determine if they are valid.
38552func (s *ExponentialRolloutRate) Validate() error {
38553	invalidParams := request.ErrInvalidParams{Context: "ExponentialRolloutRate"}
38554	if s.BaseRatePerMinute == nil {
38555		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
38556	}
38557	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
38558		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
38559	}
38560	if s.IncrementFactor == nil {
38561		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
38562	}
38563	if s.IncrementFactor != nil && *s.IncrementFactor < 1 {
38564		invalidParams.Add(request.NewErrParamMinValue("IncrementFactor", 1))
38565	}
38566	if s.RateIncreaseCriteria == nil {
38567		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
38568	}
38569	if s.RateIncreaseCriteria != nil {
38570		if err := s.RateIncreaseCriteria.Validate(); err != nil {
38571			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
38572		}
38573	}
38574
38575	if invalidParams.Len() > 0 {
38576		return invalidParams
38577	}
38578	return nil
38579}
38580
38581// SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
38582func (s *ExponentialRolloutRate) SetBaseRatePerMinute(v int64) *ExponentialRolloutRate {
38583	s.BaseRatePerMinute = &v
38584	return s
38585}
38586
38587// SetIncrementFactor sets the IncrementFactor field's value.
38588func (s *ExponentialRolloutRate) SetIncrementFactor(v float64) *ExponentialRolloutRate {
38589	s.IncrementFactor = &v
38590	return s
38591}
38592
38593// SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
38594func (s *ExponentialRolloutRate) SetRateIncreaseCriteria(v *RateIncreaseCriteria) *ExponentialRolloutRate {
38595	s.RateIncreaseCriteria = v
38596	return s
38597}
38598
38599// Describes the name and data type at a field.
38600type Field struct {
38601	_ struct{} `type:"structure"`
38602
38603	// The name of the field.
38604	Name *string `locationName:"name" type:"string"`
38605
38606	// The datatype of the field.
38607	Type *string `locationName:"type" type:"string" enum:"FieldType"`
38608}
38609
38610// String returns the string representation
38611func (s Field) String() string {
38612	return awsutil.Prettify(s)
38613}
38614
38615// GoString returns the string representation
38616func (s Field) GoString() string {
38617	return s.String()
38618}
38619
38620// SetName sets the Name field's value.
38621func (s *Field) SetName(v string) *Field {
38622	s.Name = &v
38623	return s
38624}
38625
38626// SetType sets the Type field's value.
38627func (s *Field) SetType(v string) *Field {
38628	s.Type = &v
38629	return s
38630}
38631
38632// The location of the OTA update.
38633type FileLocation struct {
38634	_ struct{} `type:"structure"`
38635
38636	// The location of the updated firmware in S3.
38637	S3Location *S3Location `locationName:"s3Location" type:"structure"`
38638
38639	// The stream that contains the OTA update.
38640	Stream *Stream `locationName:"stream" type:"structure"`
38641}
38642
38643// String returns the string representation
38644func (s FileLocation) String() string {
38645	return awsutil.Prettify(s)
38646}
38647
38648// GoString returns the string representation
38649func (s FileLocation) GoString() string {
38650	return s.String()
38651}
38652
38653// Validate inspects the fields of the type to determine if they are valid.
38654func (s *FileLocation) Validate() error {
38655	invalidParams := request.ErrInvalidParams{Context: "FileLocation"}
38656	if s.S3Location != nil {
38657		if err := s.S3Location.Validate(); err != nil {
38658			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
38659		}
38660	}
38661	if s.Stream != nil {
38662		if err := s.Stream.Validate(); err != nil {
38663			invalidParams.AddNested("Stream", err.(request.ErrInvalidParams))
38664		}
38665	}
38666
38667	if invalidParams.Len() > 0 {
38668		return invalidParams
38669	}
38670	return nil
38671}
38672
38673// SetS3Location sets the S3Location field's value.
38674func (s *FileLocation) SetS3Location(v *S3Location) *FileLocation {
38675	s.S3Location = v
38676	return s
38677}
38678
38679// SetStream sets the Stream field's value.
38680func (s *FileLocation) SetStream(v *Stream) *FileLocation {
38681	s.Stream = v
38682	return s
38683}
38684
38685// Describes an action that writes data to an Amazon Kinesis Firehose stream.
38686type FirehoseAction struct {
38687	_ struct{} `type:"structure"`
38688
38689	// Whether to deliver the Kinesis Data Firehose stream as a batch by using PutRecordBatch
38690	// (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html).
38691	// The default value is false.
38692	//
38693	// When batchMode is true and the rule's SQL statement evaluates to an Array,
38694	// each Array element forms one record in the PutRecordBatch (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)
38695	// request. The resulting array can't have more than 500 records.
38696	BatchMode *bool `locationName:"batchMode" type:"boolean"`
38697
38698	// The delivery stream name.
38699	//
38700	// DeliveryStreamName is a required field
38701	DeliveryStreamName *string `locationName:"deliveryStreamName" type:"string" required:"true"`
38702
38703	// The IAM role that grants access to the Amazon Kinesis Firehose stream.
38704	//
38705	// RoleArn is a required field
38706	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
38707
38708	// A character separator that will be used to separate records written to the
38709	// Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows
38710	// newline), ',' (comma).
38711	Separator *string `locationName:"separator" type:"string"`
38712}
38713
38714// String returns the string representation
38715func (s FirehoseAction) String() string {
38716	return awsutil.Prettify(s)
38717}
38718
38719// GoString returns the string representation
38720func (s FirehoseAction) GoString() string {
38721	return s.String()
38722}
38723
38724// Validate inspects the fields of the type to determine if they are valid.
38725func (s *FirehoseAction) Validate() error {
38726	invalidParams := request.ErrInvalidParams{Context: "FirehoseAction"}
38727	if s.DeliveryStreamName == nil {
38728		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
38729	}
38730	if s.RoleArn == nil {
38731		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
38732	}
38733
38734	if invalidParams.Len() > 0 {
38735		return invalidParams
38736	}
38737	return nil
38738}
38739
38740// SetBatchMode sets the BatchMode field's value.
38741func (s *FirehoseAction) SetBatchMode(v bool) *FirehoseAction {
38742	s.BatchMode = &v
38743	return s
38744}
38745
38746// SetDeliveryStreamName sets the DeliveryStreamName field's value.
38747func (s *FirehoseAction) SetDeliveryStreamName(v string) *FirehoseAction {
38748	s.DeliveryStreamName = &v
38749	return s
38750}
38751
38752// SetRoleArn sets the RoleArn field's value.
38753func (s *FirehoseAction) SetRoleArn(v string) *FirehoseAction {
38754	s.RoleArn = &v
38755	return s
38756}
38757
38758// SetSeparator sets the Separator field's value.
38759func (s *FirehoseAction) SetSeparator(v string) *FirehoseAction {
38760	s.Separator = &v
38761	return s
38762}
38763
38764type GetBehaviorModelTrainingSummariesInput struct {
38765	_ struct{} `type:"structure"`
38766
38767	// The maximum number of results to return at one time. The default is 25.
38768	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
38769
38770	// The token for the next set of results.
38771	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
38772
38773	// The name of the security profile.
38774	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
38775}
38776
38777// String returns the string representation
38778func (s GetBehaviorModelTrainingSummariesInput) String() string {
38779	return awsutil.Prettify(s)
38780}
38781
38782// GoString returns the string representation
38783func (s GetBehaviorModelTrainingSummariesInput) GoString() string {
38784	return s.String()
38785}
38786
38787// Validate inspects the fields of the type to determine if they are valid.
38788func (s *GetBehaviorModelTrainingSummariesInput) Validate() error {
38789	invalidParams := request.ErrInvalidParams{Context: "GetBehaviorModelTrainingSummariesInput"}
38790	if s.MaxResults != nil && *s.MaxResults < 1 {
38791		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
38792	}
38793	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
38794		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
38795	}
38796
38797	if invalidParams.Len() > 0 {
38798		return invalidParams
38799	}
38800	return nil
38801}
38802
38803// SetMaxResults sets the MaxResults field's value.
38804func (s *GetBehaviorModelTrainingSummariesInput) SetMaxResults(v int64) *GetBehaviorModelTrainingSummariesInput {
38805	s.MaxResults = &v
38806	return s
38807}
38808
38809// SetNextToken sets the NextToken field's value.
38810func (s *GetBehaviorModelTrainingSummariesInput) SetNextToken(v string) *GetBehaviorModelTrainingSummariesInput {
38811	s.NextToken = &v
38812	return s
38813}
38814
38815// SetSecurityProfileName sets the SecurityProfileName field's value.
38816func (s *GetBehaviorModelTrainingSummariesInput) SetSecurityProfileName(v string) *GetBehaviorModelTrainingSummariesInput {
38817	s.SecurityProfileName = &v
38818	return s
38819}
38820
38821type GetBehaviorModelTrainingSummariesOutput struct {
38822	_ struct{} `type:"structure"`
38823
38824	// A token that can be used to retrieve the next set of results, or null if
38825	// there are no additional results.
38826	NextToken *string `locationName:"nextToken" type:"string"`
38827
38828	// A list of all ML Detect behaviors and their model status for a given Security
38829	// Profile.
38830	Summaries []*BehaviorModelTrainingSummary `locationName:"summaries" type:"list"`
38831}
38832
38833// String returns the string representation
38834func (s GetBehaviorModelTrainingSummariesOutput) String() string {
38835	return awsutil.Prettify(s)
38836}
38837
38838// GoString returns the string representation
38839func (s GetBehaviorModelTrainingSummariesOutput) GoString() string {
38840	return s.String()
38841}
38842
38843// SetNextToken sets the NextToken field's value.
38844func (s *GetBehaviorModelTrainingSummariesOutput) SetNextToken(v string) *GetBehaviorModelTrainingSummariesOutput {
38845	s.NextToken = &v
38846	return s
38847}
38848
38849// SetSummaries sets the Summaries field's value.
38850func (s *GetBehaviorModelTrainingSummariesOutput) SetSummaries(v []*BehaviorModelTrainingSummary) *GetBehaviorModelTrainingSummariesOutput {
38851	s.Summaries = v
38852	return s
38853}
38854
38855type GetCardinalityInput struct {
38856	_ struct{} `type:"structure"`
38857
38858	// The field to aggregate.
38859	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
38860
38861	// The name of the index to search.
38862	IndexName *string `locationName:"indexName" min:"1" type:"string"`
38863
38864	// The search query.
38865	//
38866	// QueryString is a required field
38867	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
38868
38869	// The query version.
38870	QueryVersion *string `locationName:"queryVersion" type:"string"`
38871}
38872
38873// String returns the string representation
38874func (s GetCardinalityInput) String() string {
38875	return awsutil.Prettify(s)
38876}
38877
38878// GoString returns the string representation
38879func (s GetCardinalityInput) GoString() string {
38880	return s.String()
38881}
38882
38883// Validate inspects the fields of the type to determine if they are valid.
38884func (s *GetCardinalityInput) Validate() error {
38885	invalidParams := request.ErrInvalidParams{Context: "GetCardinalityInput"}
38886	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
38887		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
38888	}
38889	if s.IndexName != nil && len(*s.IndexName) < 1 {
38890		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
38891	}
38892	if s.QueryString == nil {
38893		invalidParams.Add(request.NewErrParamRequired("QueryString"))
38894	}
38895	if s.QueryString != nil && len(*s.QueryString) < 1 {
38896		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
38897	}
38898
38899	if invalidParams.Len() > 0 {
38900		return invalidParams
38901	}
38902	return nil
38903}
38904
38905// SetAggregationField sets the AggregationField field's value.
38906func (s *GetCardinalityInput) SetAggregationField(v string) *GetCardinalityInput {
38907	s.AggregationField = &v
38908	return s
38909}
38910
38911// SetIndexName sets the IndexName field's value.
38912func (s *GetCardinalityInput) SetIndexName(v string) *GetCardinalityInput {
38913	s.IndexName = &v
38914	return s
38915}
38916
38917// SetQueryString sets the QueryString field's value.
38918func (s *GetCardinalityInput) SetQueryString(v string) *GetCardinalityInput {
38919	s.QueryString = &v
38920	return s
38921}
38922
38923// SetQueryVersion sets the QueryVersion field's value.
38924func (s *GetCardinalityInput) SetQueryVersion(v string) *GetCardinalityInput {
38925	s.QueryVersion = &v
38926	return s
38927}
38928
38929type GetCardinalityOutput struct {
38930	_ struct{} `type:"structure"`
38931
38932	// The approximate count of unique values that match the query.
38933	Cardinality *int64 `locationName:"cardinality" type:"integer"`
38934}
38935
38936// String returns the string representation
38937func (s GetCardinalityOutput) String() string {
38938	return awsutil.Prettify(s)
38939}
38940
38941// GoString returns the string representation
38942func (s GetCardinalityOutput) GoString() string {
38943	return s.String()
38944}
38945
38946// SetCardinality sets the Cardinality field's value.
38947func (s *GetCardinalityOutput) SetCardinality(v int64) *GetCardinalityOutput {
38948	s.Cardinality = &v
38949	return s
38950}
38951
38952type GetEffectivePoliciesInput struct {
38953	_ struct{} `type:"structure"`
38954
38955	// The Cognito identity pool ID.
38956	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
38957
38958	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
38959	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
38960	// (region:id).
38961	Principal *string `locationName:"principal" type:"string"`
38962
38963	// The thing name.
38964	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
38965}
38966
38967// String returns the string representation
38968func (s GetEffectivePoliciesInput) String() string {
38969	return awsutil.Prettify(s)
38970}
38971
38972// GoString returns the string representation
38973func (s GetEffectivePoliciesInput) GoString() string {
38974	return s.String()
38975}
38976
38977// Validate inspects the fields of the type to determine if they are valid.
38978func (s *GetEffectivePoliciesInput) Validate() error {
38979	invalidParams := request.ErrInvalidParams{Context: "GetEffectivePoliciesInput"}
38980	if s.ThingName != nil && len(*s.ThingName) < 1 {
38981		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
38982	}
38983
38984	if invalidParams.Len() > 0 {
38985		return invalidParams
38986	}
38987	return nil
38988}
38989
38990// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
38991func (s *GetEffectivePoliciesInput) SetCognitoIdentityPoolId(v string) *GetEffectivePoliciesInput {
38992	s.CognitoIdentityPoolId = &v
38993	return s
38994}
38995
38996// SetPrincipal sets the Principal field's value.
38997func (s *GetEffectivePoliciesInput) SetPrincipal(v string) *GetEffectivePoliciesInput {
38998	s.Principal = &v
38999	return s
39000}
39001
39002// SetThingName sets the ThingName field's value.
39003func (s *GetEffectivePoliciesInput) SetThingName(v string) *GetEffectivePoliciesInput {
39004	s.ThingName = &v
39005	return s
39006}
39007
39008type GetEffectivePoliciesOutput struct {
39009	_ struct{} `type:"structure"`
39010
39011	// The effective policies.
39012	EffectivePolicies []*EffectivePolicy `locationName:"effectivePolicies" type:"list"`
39013}
39014
39015// String returns the string representation
39016func (s GetEffectivePoliciesOutput) String() string {
39017	return awsutil.Prettify(s)
39018}
39019
39020// GoString returns the string representation
39021func (s GetEffectivePoliciesOutput) GoString() string {
39022	return s.String()
39023}
39024
39025// SetEffectivePolicies sets the EffectivePolicies field's value.
39026func (s *GetEffectivePoliciesOutput) SetEffectivePolicies(v []*EffectivePolicy) *GetEffectivePoliciesOutput {
39027	s.EffectivePolicies = v
39028	return s
39029}
39030
39031type GetIndexingConfigurationInput struct {
39032	_ struct{} `type:"structure"`
39033}
39034
39035// String returns the string representation
39036func (s GetIndexingConfigurationInput) String() string {
39037	return awsutil.Prettify(s)
39038}
39039
39040// GoString returns the string representation
39041func (s GetIndexingConfigurationInput) GoString() string {
39042	return s.String()
39043}
39044
39045type GetIndexingConfigurationOutput struct {
39046	_ struct{} `type:"structure"`
39047
39048	// The index configuration.
39049	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
39050
39051	// Thing indexing configuration.
39052	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
39053}
39054
39055// String returns the string representation
39056func (s GetIndexingConfigurationOutput) String() string {
39057	return awsutil.Prettify(s)
39058}
39059
39060// GoString returns the string representation
39061func (s GetIndexingConfigurationOutput) GoString() string {
39062	return s.String()
39063}
39064
39065// SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
39066func (s *GetIndexingConfigurationOutput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *GetIndexingConfigurationOutput {
39067	s.ThingGroupIndexingConfiguration = v
39068	return s
39069}
39070
39071// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
39072func (s *GetIndexingConfigurationOutput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *GetIndexingConfigurationOutput {
39073	s.ThingIndexingConfiguration = v
39074	return s
39075}
39076
39077type GetJobDocumentInput struct {
39078	_ struct{} `type:"structure"`
39079
39080	// The unique identifier you assigned to this job when it was created.
39081	//
39082	// JobId is a required field
39083	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
39084}
39085
39086// String returns the string representation
39087func (s GetJobDocumentInput) String() string {
39088	return awsutil.Prettify(s)
39089}
39090
39091// GoString returns the string representation
39092func (s GetJobDocumentInput) GoString() string {
39093	return s.String()
39094}
39095
39096// Validate inspects the fields of the type to determine if they are valid.
39097func (s *GetJobDocumentInput) Validate() error {
39098	invalidParams := request.ErrInvalidParams{Context: "GetJobDocumentInput"}
39099	if s.JobId == nil {
39100		invalidParams.Add(request.NewErrParamRequired("JobId"))
39101	}
39102	if s.JobId != nil && len(*s.JobId) < 1 {
39103		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
39104	}
39105
39106	if invalidParams.Len() > 0 {
39107		return invalidParams
39108	}
39109	return nil
39110}
39111
39112// SetJobId sets the JobId field's value.
39113func (s *GetJobDocumentInput) SetJobId(v string) *GetJobDocumentInput {
39114	s.JobId = &v
39115	return s
39116}
39117
39118type GetJobDocumentOutput struct {
39119	_ struct{} `type:"structure"`
39120
39121	// The job document content.
39122	Document *string `locationName:"document" type:"string"`
39123}
39124
39125// String returns the string representation
39126func (s GetJobDocumentOutput) String() string {
39127	return awsutil.Prettify(s)
39128}
39129
39130// GoString returns the string representation
39131func (s GetJobDocumentOutput) GoString() string {
39132	return s.String()
39133}
39134
39135// SetDocument sets the Document field's value.
39136func (s *GetJobDocumentOutput) SetDocument(v string) *GetJobDocumentOutput {
39137	s.Document = &v
39138	return s
39139}
39140
39141// The input for the GetLoggingOptions operation.
39142type GetLoggingOptionsInput struct {
39143	_ struct{} `type:"structure"`
39144}
39145
39146// String returns the string representation
39147func (s GetLoggingOptionsInput) String() string {
39148	return awsutil.Prettify(s)
39149}
39150
39151// GoString returns the string representation
39152func (s GetLoggingOptionsInput) GoString() string {
39153	return s.String()
39154}
39155
39156// The output from the GetLoggingOptions operation.
39157type GetLoggingOptionsOutput struct {
39158	_ struct{} `type:"structure"`
39159
39160	// The logging level.
39161	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
39162
39163	// The ARN of the IAM role that grants access.
39164	RoleArn *string `locationName:"roleArn" type:"string"`
39165}
39166
39167// String returns the string representation
39168func (s GetLoggingOptionsOutput) String() string {
39169	return awsutil.Prettify(s)
39170}
39171
39172// GoString returns the string representation
39173func (s GetLoggingOptionsOutput) GoString() string {
39174	return s.String()
39175}
39176
39177// SetLogLevel sets the LogLevel field's value.
39178func (s *GetLoggingOptionsOutput) SetLogLevel(v string) *GetLoggingOptionsOutput {
39179	s.LogLevel = &v
39180	return s
39181}
39182
39183// SetRoleArn sets the RoleArn field's value.
39184func (s *GetLoggingOptionsOutput) SetRoleArn(v string) *GetLoggingOptionsOutput {
39185	s.RoleArn = &v
39186	return s
39187}
39188
39189type GetOTAUpdateInput struct {
39190	_ struct{} `type:"structure"`
39191
39192	// The OTA update ID.
39193	//
39194	// OtaUpdateId is a required field
39195	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
39196}
39197
39198// String returns the string representation
39199func (s GetOTAUpdateInput) String() string {
39200	return awsutil.Prettify(s)
39201}
39202
39203// GoString returns the string representation
39204func (s GetOTAUpdateInput) GoString() string {
39205	return s.String()
39206}
39207
39208// Validate inspects the fields of the type to determine if they are valid.
39209func (s *GetOTAUpdateInput) Validate() error {
39210	invalidParams := request.ErrInvalidParams{Context: "GetOTAUpdateInput"}
39211	if s.OtaUpdateId == nil {
39212		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
39213	}
39214	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
39215		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
39216	}
39217
39218	if invalidParams.Len() > 0 {
39219		return invalidParams
39220	}
39221	return nil
39222}
39223
39224// SetOtaUpdateId sets the OtaUpdateId field's value.
39225func (s *GetOTAUpdateInput) SetOtaUpdateId(v string) *GetOTAUpdateInput {
39226	s.OtaUpdateId = &v
39227	return s
39228}
39229
39230type GetOTAUpdateOutput struct {
39231	_ struct{} `type:"structure"`
39232
39233	// The OTA update info.
39234	OtaUpdateInfo *OTAUpdateInfo `locationName:"otaUpdateInfo" type:"structure"`
39235}
39236
39237// String returns the string representation
39238func (s GetOTAUpdateOutput) String() string {
39239	return awsutil.Prettify(s)
39240}
39241
39242// GoString returns the string representation
39243func (s GetOTAUpdateOutput) GoString() string {
39244	return s.String()
39245}
39246
39247// SetOtaUpdateInfo sets the OtaUpdateInfo field's value.
39248func (s *GetOTAUpdateOutput) SetOtaUpdateInfo(v *OTAUpdateInfo) *GetOTAUpdateOutput {
39249	s.OtaUpdateInfo = v
39250	return s
39251}
39252
39253type GetPercentilesInput struct {
39254	_ struct{} `type:"structure"`
39255
39256	// The field to aggregate.
39257	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
39258
39259	// The name of the index to search.
39260	IndexName *string `locationName:"indexName" min:"1" type:"string"`
39261
39262	// The percentile groups returned.
39263	Percents []*float64 `locationName:"percents" type:"list"`
39264
39265	// The query string.
39266	//
39267	// QueryString is a required field
39268	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
39269
39270	// The query version.
39271	QueryVersion *string `locationName:"queryVersion" type:"string"`
39272}
39273
39274// String returns the string representation
39275func (s GetPercentilesInput) String() string {
39276	return awsutil.Prettify(s)
39277}
39278
39279// GoString returns the string representation
39280func (s GetPercentilesInput) GoString() string {
39281	return s.String()
39282}
39283
39284// Validate inspects the fields of the type to determine if they are valid.
39285func (s *GetPercentilesInput) Validate() error {
39286	invalidParams := request.ErrInvalidParams{Context: "GetPercentilesInput"}
39287	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
39288		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
39289	}
39290	if s.IndexName != nil && len(*s.IndexName) < 1 {
39291		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
39292	}
39293	if s.QueryString == nil {
39294		invalidParams.Add(request.NewErrParamRequired("QueryString"))
39295	}
39296	if s.QueryString != nil && len(*s.QueryString) < 1 {
39297		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
39298	}
39299
39300	if invalidParams.Len() > 0 {
39301		return invalidParams
39302	}
39303	return nil
39304}
39305
39306// SetAggregationField sets the AggregationField field's value.
39307func (s *GetPercentilesInput) SetAggregationField(v string) *GetPercentilesInput {
39308	s.AggregationField = &v
39309	return s
39310}
39311
39312// SetIndexName sets the IndexName field's value.
39313func (s *GetPercentilesInput) SetIndexName(v string) *GetPercentilesInput {
39314	s.IndexName = &v
39315	return s
39316}
39317
39318// SetPercents sets the Percents field's value.
39319func (s *GetPercentilesInput) SetPercents(v []*float64) *GetPercentilesInput {
39320	s.Percents = v
39321	return s
39322}
39323
39324// SetQueryString sets the QueryString field's value.
39325func (s *GetPercentilesInput) SetQueryString(v string) *GetPercentilesInput {
39326	s.QueryString = &v
39327	return s
39328}
39329
39330// SetQueryVersion sets the QueryVersion field's value.
39331func (s *GetPercentilesInput) SetQueryVersion(v string) *GetPercentilesInput {
39332	s.QueryVersion = &v
39333	return s
39334}
39335
39336type GetPercentilesOutput struct {
39337	_ struct{} `type:"structure"`
39338
39339	// The percentile values of the aggregated fields.
39340	Percentiles []*PercentPair `locationName:"percentiles" type:"list"`
39341}
39342
39343// String returns the string representation
39344func (s GetPercentilesOutput) String() string {
39345	return awsutil.Prettify(s)
39346}
39347
39348// GoString returns the string representation
39349func (s GetPercentilesOutput) GoString() string {
39350	return s.String()
39351}
39352
39353// SetPercentiles sets the Percentiles field's value.
39354func (s *GetPercentilesOutput) SetPercentiles(v []*PercentPair) *GetPercentilesOutput {
39355	s.Percentiles = v
39356	return s
39357}
39358
39359// The input for the GetPolicy operation.
39360type GetPolicyInput struct {
39361	_ struct{} `type:"structure"`
39362
39363	// The name of the policy.
39364	//
39365	// PolicyName is a required field
39366	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
39367}
39368
39369// String returns the string representation
39370func (s GetPolicyInput) String() string {
39371	return awsutil.Prettify(s)
39372}
39373
39374// GoString returns the string representation
39375func (s GetPolicyInput) GoString() string {
39376	return s.String()
39377}
39378
39379// Validate inspects the fields of the type to determine if they are valid.
39380func (s *GetPolicyInput) Validate() error {
39381	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
39382	if s.PolicyName == nil {
39383		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
39384	}
39385	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
39386		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
39387	}
39388
39389	if invalidParams.Len() > 0 {
39390		return invalidParams
39391	}
39392	return nil
39393}
39394
39395// SetPolicyName sets the PolicyName field's value.
39396func (s *GetPolicyInput) SetPolicyName(v string) *GetPolicyInput {
39397	s.PolicyName = &v
39398	return s
39399}
39400
39401// The output from the GetPolicy operation.
39402type GetPolicyOutput struct {
39403	_ struct{} `type:"structure"`
39404
39405	// The date the policy was created.
39406	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
39407
39408	// The default policy version ID.
39409	DefaultVersionId *string `locationName:"defaultVersionId" type:"string"`
39410
39411	// The generation ID of the policy.
39412	GenerationId *string `locationName:"generationId" type:"string"`
39413
39414	// The date the policy was last modified.
39415	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
39416
39417	// The policy ARN.
39418	PolicyArn *string `locationName:"policyArn" type:"string"`
39419
39420	// The JSON document that describes the policy.
39421	PolicyDocument *string `locationName:"policyDocument" type:"string"`
39422
39423	// The policy name.
39424	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
39425}
39426
39427// String returns the string representation
39428func (s GetPolicyOutput) String() string {
39429	return awsutil.Prettify(s)
39430}
39431
39432// GoString returns the string representation
39433func (s GetPolicyOutput) GoString() string {
39434	return s.String()
39435}
39436
39437// SetCreationDate sets the CreationDate field's value.
39438func (s *GetPolicyOutput) SetCreationDate(v time.Time) *GetPolicyOutput {
39439	s.CreationDate = &v
39440	return s
39441}
39442
39443// SetDefaultVersionId sets the DefaultVersionId field's value.
39444func (s *GetPolicyOutput) SetDefaultVersionId(v string) *GetPolicyOutput {
39445	s.DefaultVersionId = &v
39446	return s
39447}
39448
39449// SetGenerationId sets the GenerationId field's value.
39450func (s *GetPolicyOutput) SetGenerationId(v string) *GetPolicyOutput {
39451	s.GenerationId = &v
39452	return s
39453}
39454
39455// SetLastModifiedDate sets the LastModifiedDate field's value.
39456func (s *GetPolicyOutput) SetLastModifiedDate(v time.Time) *GetPolicyOutput {
39457	s.LastModifiedDate = &v
39458	return s
39459}
39460
39461// SetPolicyArn sets the PolicyArn field's value.
39462func (s *GetPolicyOutput) SetPolicyArn(v string) *GetPolicyOutput {
39463	s.PolicyArn = &v
39464	return s
39465}
39466
39467// SetPolicyDocument sets the PolicyDocument field's value.
39468func (s *GetPolicyOutput) SetPolicyDocument(v string) *GetPolicyOutput {
39469	s.PolicyDocument = &v
39470	return s
39471}
39472
39473// SetPolicyName sets the PolicyName field's value.
39474func (s *GetPolicyOutput) SetPolicyName(v string) *GetPolicyOutput {
39475	s.PolicyName = &v
39476	return s
39477}
39478
39479// The input for the GetPolicyVersion operation.
39480type GetPolicyVersionInput struct {
39481	_ struct{} `type:"structure"`
39482
39483	// The name of the policy.
39484	//
39485	// PolicyName is a required field
39486	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
39487
39488	// The policy version ID.
39489	//
39490	// PolicyVersionId is a required field
39491	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
39492}
39493
39494// String returns the string representation
39495func (s GetPolicyVersionInput) String() string {
39496	return awsutil.Prettify(s)
39497}
39498
39499// GoString returns the string representation
39500func (s GetPolicyVersionInput) GoString() string {
39501	return s.String()
39502}
39503
39504// Validate inspects the fields of the type to determine if they are valid.
39505func (s *GetPolicyVersionInput) Validate() error {
39506	invalidParams := request.ErrInvalidParams{Context: "GetPolicyVersionInput"}
39507	if s.PolicyName == nil {
39508		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
39509	}
39510	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
39511		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
39512	}
39513	if s.PolicyVersionId == nil {
39514		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
39515	}
39516	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
39517		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
39518	}
39519
39520	if invalidParams.Len() > 0 {
39521		return invalidParams
39522	}
39523	return nil
39524}
39525
39526// SetPolicyName sets the PolicyName field's value.
39527func (s *GetPolicyVersionInput) SetPolicyName(v string) *GetPolicyVersionInput {
39528	s.PolicyName = &v
39529	return s
39530}
39531
39532// SetPolicyVersionId sets the PolicyVersionId field's value.
39533func (s *GetPolicyVersionInput) SetPolicyVersionId(v string) *GetPolicyVersionInput {
39534	s.PolicyVersionId = &v
39535	return s
39536}
39537
39538// The output from the GetPolicyVersion operation.
39539type GetPolicyVersionOutput struct {
39540	_ struct{} `type:"structure"`
39541
39542	// The date the policy was created.
39543	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
39544
39545	// The generation ID of the policy version.
39546	GenerationId *string `locationName:"generationId" type:"string"`
39547
39548	// Specifies whether the policy version is the default.
39549	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
39550
39551	// The date the policy was last modified.
39552	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
39553
39554	// The policy ARN.
39555	PolicyArn *string `locationName:"policyArn" type:"string"`
39556
39557	// The JSON document that describes the policy.
39558	PolicyDocument *string `locationName:"policyDocument" type:"string"`
39559
39560	// The policy name.
39561	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
39562
39563	// The policy version ID.
39564	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
39565}
39566
39567// String returns the string representation
39568func (s GetPolicyVersionOutput) String() string {
39569	return awsutil.Prettify(s)
39570}
39571
39572// GoString returns the string representation
39573func (s GetPolicyVersionOutput) GoString() string {
39574	return s.String()
39575}
39576
39577// SetCreationDate sets the CreationDate field's value.
39578func (s *GetPolicyVersionOutput) SetCreationDate(v time.Time) *GetPolicyVersionOutput {
39579	s.CreationDate = &v
39580	return s
39581}
39582
39583// SetGenerationId sets the GenerationId field's value.
39584func (s *GetPolicyVersionOutput) SetGenerationId(v string) *GetPolicyVersionOutput {
39585	s.GenerationId = &v
39586	return s
39587}
39588
39589// SetIsDefaultVersion sets the IsDefaultVersion field's value.
39590func (s *GetPolicyVersionOutput) SetIsDefaultVersion(v bool) *GetPolicyVersionOutput {
39591	s.IsDefaultVersion = &v
39592	return s
39593}
39594
39595// SetLastModifiedDate sets the LastModifiedDate field's value.
39596func (s *GetPolicyVersionOutput) SetLastModifiedDate(v time.Time) *GetPolicyVersionOutput {
39597	s.LastModifiedDate = &v
39598	return s
39599}
39600
39601// SetPolicyArn sets the PolicyArn field's value.
39602func (s *GetPolicyVersionOutput) SetPolicyArn(v string) *GetPolicyVersionOutput {
39603	s.PolicyArn = &v
39604	return s
39605}
39606
39607// SetPolicyDocument sets the PolicyDocument field's value.
39608func (s *GetPolicyVersionOutput) SetPolicyDocument(v string) *GetPolicyVersionOutput {
39609	s.PolicyDocument = &v
39610	return s
39611}
39612
39613// SetPolicyName sets the PolicyName field's value.
39614func (s *GetPolicyVersionOutput) SetPolicyName(v string) *GetPolicyVersionOutput {
39615	s.PolicyName = &v
39616	return s
39617}
39618
39619// SetPolicyVersionId sets the PolicyVersionId field's value.
39620func (s *GetPolicyVersionOutput) SetPolicyVersionId(v string) *GetPolicyVersionOutput {
39621	s.PolicyVersionId = &v
39622	return s
39623}
39624
39625// The input to the GetRegistrationCode operation.
39626type GetRegistrationCodeInput struct {
39627	_ struct{} `type:"structure"`
39628}
39629
39630// String returns the string representation
39631func (s GetRegistrationCodeInput) String() string {
39632	return awsutil.Prettify(s)
39633}
39634
39635// GoString returns the string representation
39636func (s GetRegistrationCodeInput) GoString() string {
39637	return s.String()
39638}
39639
39640// The output from the GetRegistrationCode operation.
39641type GetRegistrationCodeOutput struct {
39642	_ struct{} `type:"structure"`
39643
39644	// The CA certificate registration code.
39645	RegistrationCode *string `locationName:"registrationCode" min:"64" type:"string"`
39646}
39647
39648// String returns the string representation
39649func (s GetRegistrationCodeOutput) String() string {
39650	return awsutil.Prettify(s)
39651}
39652
39653// GoString returns the string representation
39654func (s GetRegistrationCodeOutput) GoString() string {
39655	return s.String()
39656}
39657
39658// SetRegistrationCode sets the RegistrationCode field's value.
39659func (s *GetRegistrationCodeOutput) SetRegistrationCode(v string) *GetRegistrationCodeOutput {
39660	s.RegistrationCode = &v
39661	return s
39662}
39663
39664type GetStatisticsInput struct {
39665	_ struct{} `type:"structure"`
39666
39667	// The aggregation field name.
39668	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
39669
39670	// The name of the index to search. The default value is AWS_Things.
39671	IndexName *string `locationName:"indexName" min:"1" type:"string"`
39672
39673	// The query used to search. You can specify "*" for the query string to get
39674	// the count of all indexed things in your AWS account.
39675	//
39676	// QueryString is a required field
39677	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
39678
39679	// The version of the query used to search.
39680	QueryVersion *string `locationName:"queryVersion" type:"string"`
39681}
39682
39683// String returns the string representation
39684func (s GetStatisticsInput) String() string {
39685	return awsutil.Prettify(s)
39686}
39687
39688// GoString returns the string representation
39689func (s GetStatisticsInput) GoString() string {
39690	return s.String()
39691}
39692
39693// Validate inspects the fields of the type to determine if they are valid.
39694func (s *GetStatisticsInput) Validate() error {
39695	invalidParams := request.ErrInvalidParams{Context: "GetStatisticsInput"}
39696	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
39697		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
39698	}
39699	if s.IndexName != nil && len(*s.IndexName) < 1 {
39700		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
39701	}
39702	if s.QueryString == nil {
39703		invalidParams.Add(request.NewErrParamRequired("QueryString"))
39704	}
39705	if s.QueryString != nil && len(*s.QueryString) < 1 {
39706		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
39707	}
39708
39709	if invalidParams.Len() > 0 {
39710		return invalidParams
39711	}
39712	return nil
39713}
39714
39715// SetAggregationField sets the AggregationField field's value.
39716func (s *GetStatisticsInput) SetAggregationField(v string) *GetStatisticsInput {
39717	s.AggregationField = &v
39718	return s
39719}
39720
39721// SetIndexName sets the IndexName field's value.
39722func (s *GetStatisticsInput) SetIndexName(v string) *GetStatisticsInput {
39723	s.IndexName = &v
39724	return s
39725}
39726
39727// SetQueryString sets the QueryString field's value.
39728func (s *GetStatisticsInput) SetQueryString(v string) *GetStatisticsInput {
39729	s.QueryString = &v
39730	return s
39731}
39732
39733// SetQueryVersion sets the QueryVersion field's value.
39734func (s *GetStatisticsInput) SetQueryVersion(v string) *GetStatisticsInput {
39735	s.QueryVersion = &v
39736	return s
39737}
39738
39739type GetStatisticsOutput struct {
39740	_ struct{} `type:"structure"`
39741
39742	// The statistics returned by the Fleet Indexing service based on the query
39743	// and aggregation field.
39744	Statistics *Statistics `locationName:"statistics" type:"structure"`
39745}
39746
39747// String returns the string representation
39748func (s GetStatisticsOutput) String() string {
39749	return awsutil.Prettify(s)
39750}
39751
39752// GoString returns the string representation
39753func (s GetStatisticsOutput) GoString() string {
39754	return s.String()
39755}
39756
39757// SetStatistics sets the Statistics field's value.
39758func (s *GetStatisticsOutput) SetStatistics(v *Statistics) *GetStatisticsOutput {
39759	s.Statistics = v
39760	return s
39761}
39762
39763type GetTopicRuleDestinationInput struct {
39764	_ struct{} `type:"structure"`
39765
39766	// The ARN of the topic rule destination.
39767	//
39768	// Arn is a required field
39769	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
39770}
39771
39772// String returns the string representation
39773func (s GetTopicRuleDestinationInput) String() string {
39774	return awsutil.Prettify(s)
39775}
39776
39777// GoString returns the string representation
39778func (s GetTopicRuleDestinationInput) GoString() string {
39779	return s.String()
39780}
39781
39782// Validate inspects the fields of the type to determine if they are valid.
39783func (s *GetTopicRuleDestinationInput) Validate() error {
39784	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleDestinationInput"}
39785	if s.Arn == nil {
39786		invalidParams.Add(request.NewErrParamRequired("Arn"))
39787	}
39788	if s.Arn != nil && len(*s.Arn) < 1 {
39789		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
39790	}
39791
39792	if invalidParams.Len() > 0 {
39793		return invalidParams
39794	}
39795	return nil
39796}
39797
39798// SetArn sets the Arn field's value.
39799func (s *GetTopicRuleDestinationInput) SetArn(v string) *GetTopicRuleDestinationInput {
39800	s.Arn = &v
39801	return s
39802}
39803
39804type GetTopicRuleDestinationOutput struct {
39805	_ struct{} `type:"structure"`
39806
39807	// The topic rule destination.
39808	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
39809}
39810
39811// String returns the string representation
39812func (s GetTopicRuleDestinationOutput) String() string {
39813	return awsutil.Prettify(s)
39814}
39815
39816// GoString returns the string representation
39817func (s GetTopicRuleDestinationOutput) GoString() string {
39818	return s.String()
39819}
39820
39821// SetTopicRuleDestination sets the TopicRuleDestination field's value.
39822func (s *GetTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *GetTopicRuleDestinationOutput {
39823	s.TopicRuleDestination = v
39824	return s
39825}
39826
39827// The input for the GetTopicRule operation.
39828type GetTopicRuleInput struct {
39829	_ struct{} `type:"structure"`
39830
39831	// The name of the rule.
39832	//
39833	// RuleName is a required field
39834	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
39835}
39836
39837// String returns the string representation
39838func (s GetTopicRuleInput) String() string {
39839	return awsutil.Prettify(s)
39840}
39841
39842// GoString returns the string representation
39843func (s GetTopicRuleInput) GoString() string {
39844	return s.String()
39845}
39846
39847// Validate inspects the fields of the type to determine if they are valid.
39848func (s *GetTopicRuleInput) Validate() error {
39849	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleInput"}
39850	if s.RuleName == nil {
39851		invalidParams.Add(request.NewErrParamRequired("RuleName"))
39852	}
39853	if s.RuleName != nil && len(*s.RuleName) < 1 {
39854		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
39855	}
39856
39857	if invalidParams.Len() > 0 {
39858		return invalidParams
39859	}
39860	return nil
39861}
39862
39863// SetRuleName sets the RuleName field's value.
39864func (s *GetTopicRuleInput) SetRuleName(v string) *GetTopicRuleInput {
39865	s.RuleName = &v
39866	return s
39867}
39868
39869// The output from the GetTopicRule operation.
39870type GetTopicRuleOutput struct {
39871	_ struct{} `type:"structure"`
39872
39873	// The rule.
39874	Rule *TopicRule `locationName:"rule" type:"structure"`
39875
39876	// The rule ARN.
39877	RuleArn *string `locationName:"ruleArn" type:"string"`
39878}
39879
39880// String returns the string representation
39881func (s GetTopicRuleOutput) String() string {
39882	return awsutil.Prettify(s)
39883}
39884
39885// GoString returns the string representation
39886func (s GetTopicRuleOutput) GoString() string {
39887	return s.String()
39888}
39889
39890// SetRule sets the Rule field's value.
39891func (s *GetTopicRuleOutput) SetRule(v *TopicRule) *GetTopicRuleOutput {
39892	s.Rule = v
39893	return s
39894}
39895
39896// SetRuleArn sets the RuleArn field's value.
39897func (s *GetTopicRuleOutput) SetRuleArn(v string) *GetTopicRuleOutput {
39898	s.RuleArn = &v
39899	return s
39900}
39901
39902type GetV2LoggingOptionsInput struct {
39903	_ struct{} `type:"structure"`
39904}
39905
39906// String returns the string representation
39907func (s GetV2LoggingOptionsInput) String() string {
39908	return awsutil.Prettify(s)
39909}
39910
39911// GoString returns the string representation
39912func (s GetV2LoggingOptionsInput) GoString() string {
39913	return s.String()
39914}
39915
39916type GetV2LoggingOptionsOutput struct {
39917	_ struct{} `type:"structure"`
39918
39919	// The default log level.
39920	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
39921
39922	// Disables all logs.
39923	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
39924
39925	// The IAM role ARN AWS IoT uses to write to your CloudWatch logs.
39926	RoleArn *string `locationName:"roleArn" type:"string"`
39927}
39928
39929// String returns the string representation
39930func (s GetV2LoggingOptionsOutput) String() string {
39931	return awsutil.Prettify(s)
39932}
39933
39934// GoString returns the string representation
39935func (s GetV2LoggingOptionsOutput) GoString() string {
39936	return s.String()
39937}
39938
39939// SetDefaultLogLevel sets the DefaultLogLevel field's value.
39940func (s *GetV2LoggingOptionsOutput) SetDefaultLogLevel(v string) *GetV2LoggingOptionsOutput {
39941	s.DefaultLogLevel = &v
39942	return s
39943}
39944
39945// SetDisableAllLogs sets the DisableAllLogs field's value.
39946func (s *GetV2LoggingOptionsOutput) SetDisableAllLogs(v bool) *GetV2LoggingOptionsOutput {
39947	s.DisableAllLogs = &v
39948	return s
39949}
39950
39951// SetRoleArn sets the RoleArn field's value.
39952func (s *GetV2LoggingOptionsOutput) SetRoleArn(v string) *GetV2LoggingOptionsOutput {
39953	s.RoleArn = &v
39954	return s
39955}
39956
39957// The name and ARN of a group.
39958type GroupNameAndArn struct {
39959	_ struct{} `type:"structure"`
39960
39961	// The group ARN.
39962	GroupArn *string `locationName:"groupArn" type:"string"`
39963
39964	// The group name.
39965	GroupName *string `locationName:"groupName" min:"1" type:"string"`
39966}
39967
39968// String returns the string representation
39969func (s GroupNameAndArn) String() string {
39970	return awsutil.Prettify(s)
39971}
39972
39973// GoString returns the string representation
39974func (s GroupNameAndArn) GoString() string {
39975	return s.String()
39976}
39977
39978// SetGroupArn sets the GroupArn field's value.
39979func (s *GroupNameAndArn) SetGroupArn(v string) *GroupNameAndArn {
39980	s.GroupArn = &v
39981	return s
39982}
39983
39984// SetGroupName sets the GroupName field's value.
39985func (s *GroupNameAndArn) SetGroupName(v string) *GroupNameAndArn {
39986	s.GroupName = &v
39987	return s
39988}
39989
39990// Send data to an HTTPS endpoint.
39991type HttpAction struct {
39992	_ struct{} `type:"structure"`
39993
39994	// The authentication method to use when sending data to an HTTPS endpoint.
39995	Auth *HttpAuthorization `locationName:"auth" type:"structure"`
39996
39997	// The URL to which AWS IoT sends a confirmation message. The value of the confirmation
39998	// URL must be a prefix of the endpoint URL. If you do not specify a confirmation
39999	// URL AWS IoT uses the endpoint URL as the confirmation URL. If you use substitution
40000	// templates in the confirmationUrl, you must create and enable topic rule destinations
40001	// that match each possible value of the substitution template before traffic
40002	// is allowed to your endpoint URL.
40003	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
40004
40005	// The HTTP headers to send with the message data.
40006	Headers []*HttpActionHeader `locationName:"headers" type:"list"`
40007
40008	// The endpoint URL. If substitution templates are used in the URL, you must
40009	// also specify a confirmationUrl. If this is a new destination, a new TopicRuleDestination
40010	// is created if possible.
40011	//
40012	// Url is a required field
40013	Url *string `locationName:"url" type:"string" required:"true"`
40014}
40015
40016// String returns the string representation
40017func (s HttpAction) String() string {
40018	return awsutil.Prettify(s)
40019}
40020
40021// GoString returns the string representation
40022func (s HttpAction) GoString() string {
40023	return s.String()
40024}
40025
40026// Validate inspects the fields of the type to determine if they are valid.
40027func (s *HttpAction) Validate() error {
40028	invalidParams := request.ErrInvalidParams{Context: "HttpAction"}
40029	if s.Url == nil {
40030		invalidParams.Add(request.NewErrParamRequired("Url"))
40031	}
40032	if s.Auth != nil {
40033		if err := s.Auth.Validate(); err != nil {
40034			invalidParams.AddNested("Auth", err.(request.ErrInvalidParams))
40035		}
40036	}
40037	if s.Headers != nil {
40038		for i, v := range s.Headers {
40039			if v == nil {
40040				continue
40041			}
40042			if err := v.Validate(); err != nil {
40043				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Headers", i), err.(request.ErrInvalidParams))
40044			}
40045		}
40046	}
40047
40048	if invalidParams.Len() > 0 {
40049		return invalidParams
40050	}
40051	return nil
40052}
40053
40054// SetAuth sets the Auth field's value.
40055func (s *HttpAction) SetAuth(v *HttpAuthorization) *HttpAction {
40056	s.Auth = v
40057	return s
40058}
40059
40060// SetConfirmationUrl sets the ConfirmationUrl field's value.
40061func (s *HttpAction) SetConfirmationUrl(v string) *HttpAction {
40062	s.ConfirmationUrl = &v
40063	return s
40064}
40065
40066// SetHeaders sets the Headers field's value.
40067func (s *HttpAction) SetHeaders(v []*HttpActionHeader) *HttpAction {
40068	s.Headers = v
40069	return s
40070}
40071
40072// SetUrl sets the Url field's value.
40073func (s *HttpAction) SetUrl(v string) *HttpAction {
40074	s.Url = &v
40075	return s
40076}
40077
40078// The HTTP action header.
40079type HttpActionHeader struct {
40080	_ struct{} `type:"structure"`
40081
40082	// The HTTP header key.
40083	//
40084	// Key is a required field
40085	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
40086
40087	// The HTTP header value. Substitution templates are supported.
40088	//
40089	// Value is a required field
40090	Value *string `locationName:"value" type:"string" required:"true"`
40091}
40092
40093// String returns the string representation
40094func (s HttpActionHeader) String() string {
40095	return awsutil.Prettify(s)
40096}
40097
40098// GoString returns the string representation
40099func (s HttpActionHeader) GoString() string {
40100	return s.String()
40101}
40102
40103// Validate inspects the fields of the type to determine if they are valid.
40104func (s *HttpActionHeader) Validate() error {
40105	invalidParams := request.ErrInvalidParams{Context: "HttpActionHeader"}
40106	if s.Key == nil {
40107		invalidParams.Add(request.NewErrParamRequired("Key"))
40108	}
40109	if s.Key != nil && len(*s.Key) < 1 {
40110		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
40111	}
40112	if s.Value == nil {
40113		invalidParams.Add(request.NewErrParamRequired("Value"))
40114	}
40115
40116	if invalidParams.Len() > 0 {
40117		return invalidParams
40118	}
40119	return nil
40120}
40121
40122// SetKey sets the Key field's value.
40123func (s *HttpActionHeader) SetKey(v string) *HttpActionHeader {
40124	s.Key = &v
40125	return s
40126}
40127
40128// SetValue sets the Value field's value.
40129func (s *HttpActionHeader) SetValue(v string) *HttpActionHeader {
40130	s.Value = &v
40131	return s
40132}
40133
40134// The authorization method used to send messages.
40135type HttpAuthorization struct {
40136	_ struct{} `type:"structure"`
40137
40138	// Use Sig V4 authorization. For more information, see Signature Version 4 Signing
40139	// Process (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
40140	Sigv4 *SigV4Authorization `locationName:"sigv4" type:"structure"`
40141}
40142
40143// String returns the string representation
40144func (s HttpAuthorization) String() string {
40145	return awsutil.Prettify(s)
40146}
40147
40148// GoString returns the string representation
40149func (s HttpAuthorization) GoString() string {
40150	return s.String()
40151}
40152
40153// Validate inspects the fields of the type to determine if they are valid.
40154func (s *HttpAuthorization) Validate() error {
40155	invalidParams := request.ErrInvalidParams{Context: "HttpAuthorization"}
40156	if s.Sigv4 != nil {
40157		if err := s.Sigv4.Validate(); err != nil {
40158			invalidParams.AddNested("Sigv4", err.(request.ErrInvalidParams))
40159		}
40160	}
40161
40162	if invalidParams.Len() > 0 {
40163		return invalidParams
40164	}
40165	return nil
40166}
40167
40168// SetSigv4 sets the Sigv4 field's value.
40169func (s *HttpAuthorization) SetSigv4(v *SigV4Authorization) *HttpAuthorization {
40170	s.Sigv4 = v
40171	return s
40172}
40173
40174// Specifies the HTTP context to use for the test authorizer request.
40175type HttpContext struct {
40176	_ struct{} `type:"structure"`
40177
40178	// The header keys and values in an HTTP authorization request.
40179	Headers map[string]*string `locationName:"headers" type:"map"`
40180
40181	// The query string keys and values in an HTTP authorization request.
40182	QueryString *string `locationName:"queryString" min:"1" type:"string"`
40183}
40184
40185// String returns the string representation
40186func (s HttpContext) String() string {
40187	return awsutil.Prettify(s)
40188}
40189
40190// GoString returns the string representation
40191func (s HttpContext) GoString() string {
40192	return s.String()
40193}
40194
40195// Validate inspects the fields of the type to determine if they are valid.
40196func (s *HttpContext) Validate() error {
40197	invalidParams := request.ErrInvalidParams{Context: "HttpContext"}
40198	if s.QueryString != nil && len(*s.QueryString) < 1 {
40199		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
40200	}
40201
40202	if invalidParams.Len() > 0 {
40203		return invalidParams
40204	}
40205	return nil
40206}
40207
40208// SetHeaders sets the Headers field's value.
40209func (s *HttpContext) SetHeaders(v map[string]*string) *HttpContext {
40210	s.Headers = v
40211	return s
40212}
40213
40214// SetQueryString sets the QueryString field's value.
40215func (s *HttpContext) SetQueryString(v string) *HttpContext {
40216	s.QueryString = &v
40217	return s
40218}
40219
40220// HTTP URL destination configuration used by the topic rule's HTTP action.
40221type HttpUrlDestinationConfiguration struct {
40222	_ struct{} `type:"structure"`
40223
40224	// The URL AWS IoT uses to confirm ownership of or access to the topic rule
40225	// destination URL.
40226	//
40227	// ConfirmationUrl is a required field
40228	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string" required:"true"`
40229}
40230
40231// String returns the string representation
40232func (s HttpUrlDestinationConfiguration) String() string {
40233	return awsutil.Prettify(s)
40234}
40235
40236// GoString returns the string representation
40237func (s HttpUrlDestinationConfiguration) GoString() string {
40238	return s.String()
40239}
40240
40241// Validate inspects the fields of the type to determine if they are valid.
40242func (s *HttpUrlDestinationConfiguration) Validate() error {
40243	invalidParams := request.ErrInvalidParams{Context: "HttpUrlDestinationConfiguration"}
40244	if s.ConfirmationUrl == nil {
40245		invalidParams.Add(request.NewErrParamRequired("ConfirmationUrl"))
40246	}
40247
40248	if invalidParams.Len() > 0 {
40249		return invalidParams
40250	}
40251	return nil
40252}
40253
40254// SetConfirmationUrl sets the ConfirmationUrl field's value.
40255func (s *HttpUrlDestinationConfiguration) SetConfirmationUrl(v string) *HttpUrlDestinationConfiguration {
40256	s.ConfirmationUrl = &v
40257	return s
40258}
40259
40260// HTTP URL destination properties.
40261type HttpUrlDestinationProperties struct {
40262	_ struct{} `type:"structure"`
40263
40264	// The URL used to confirm the HTTP topic rule destination URL.
40265	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
40266}
40267
40268// String returns the string representation
40269func (s HttpUrlDestinationProperties) String() string {
40270	return awsutil.Prettify(s)
40271}
40272
40273// GoString returns the string representation
40274func (s HttpUrlDestinationProperties) GoString() string {
40275	return s.String()
40276}
40277
40278// SetConfirmationUrl sets the ConfirmationUrl field's value.
40279func (s *HttpUrlDestinationProperties) SetConfirmationUrl(v string) *HttpUrlDestinationProperties {
40280	s.ConfirmationUrl = &v
40281	return s
40282}
40283
40284// Information about an HTTP URL destination.
40285type HttpUrlDestinationSummary struct {
40286	_ struct{} `type:"structure"`
40287
40288	// The URL used to confirm ownership of or access to the HTTP topic rule destination
40289	// URL.
40290	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
40291}
40292
40293// String returns the string representation
40294func (s HttpUrlDestinationSummary) String() string {
40295	return awsutil.Prettify(s)
40296}
40297
40298// GoString returns the string representation
40299func (s HttpUrlDestinationSummary) GoString() string {
40300	return s.String()
40301}
40302
40303// SetConfirmationUrl sets the ConfirmationUrl field's value.
40304func (s *HttpUrlDestinationSummary) SetConfirmationUrl(v string) *HttpUrlDestinationSummary {
40305	s.ConfirmationUrl = &v
40306	return s
40307}
40308
40309// Information that implicitly denies authorization. When policy doesn't explicitly
40310// deny or allow an action on a resource it is considered an implicit deny.
40311type ImplicitDeny struct {
40312	_ struct{} `type:"structure"`
40313
40314	// Policies that don't contain a matching allow or deny statement for the specified
40315	// action on the specified resource.
40316	Policies []*Policy `locationName:"policies" type:"list"`
40317}
40318
40319// String returns the string representation
40320func (s ImplicitDeny) String() string {
40321	return awsutil.Prettify(s)
40322}
40323
40324// GoString returns the string representation
40325func (s ImplicitDeny) GoString() string {
40326	return s.String()
40327}
40328
40329// SetPolicies sets the Policies field's value.
40330func (s *ImplicitDeny) SetPolicies(v []*Policy) *ImplicitDeny {
40331	s.Policies = v
40332	return s
40333}
40334
40335// The index is not ready.
40336type IndexNotReadyException struct {
40337	_            struct{}                  `type:"structure"`
40338	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40339
40340	// The message for the exception.
40341	Message_ *string `locationName:"message" type:"string"`
40342}
40343
40344// String returns the string representation
40345func (s IndexNotReadyException) String() string {
40346	return awsutil.Prettify(s)
40347}
40348
40349// GoString returns the string representation
40350func (s IndexNotReadyException) GoString() string {
40351	return s.String()
40352}
40353
40354func newErrorIndexNotReadyException(v protocol.ResponseMetadata) error {
40355	return &IndexNotReadyException{
40356		RespMetadata: v,
40357	}
40358}
40359
40360// Code returns the exception type name.
40361func (s *IndexNotReadyException) Code() string {
40362	return "IndexNotReadyException"
40363}
40364
40365// Message returns the exception's message.
40366func (s *IndexNotReadyException) Message() string {
40367	if s.Message_ != nil {
40368		return *s.Message_
40369	}
40370	return ""
40371}
40372
40373// OrigErr always returns nil, satisfies awserr.Error interface.
40374func (s *IndexNotReadyException) OrigErr() error {
40375	return nil
40376}
40377
40378func (s *IndexNotReadyException) Error() string {
40379	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40380}
40381
40382// Status code returns the HTTP status code for the request's response error.
40383func (s *IndexNotReadyException) StatusCode() int {
40384	return s.RespMetadata.StatusCode
40385}
40386
40387// RequestID returns the service's response RequestID for request.
40388func (s *IndexNotReadyException) RequestID() string {
40389	return s.RespMetadata.RequestID
40390}
40391
40392// An unexpected error has occurred.
40393type InternalException struct {
40394	_            struct{}                  `type:"structure"`
40395	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40396
40397	// The message for the exception.
40398	Message_ *string `locationName:"message" type:"string"`
40399}
40400
40401// String returns the string representation
40402func (s InternalException) String() string {
40403	return awsutil.Prettify(s)
40404}
40405
40406// GoString returns the string representation
40407func (s InternalException) GoString() string {
40408	return s.String()
40409}
40410
40411func newErrorInternalException(v protocol.ResponseMetadata) error {
40412	return &InternalException{
40413		RespMetadata: v,
40414	}
40415}
40416
40417// Code returns the exception type name.
40418func (s *InternalException) Code() string {
40419	return "InternalException"
40420}
40421
40422// Message returns the exception's message.
40423func (s *InternalException) Message() string {
40424	if s.Message_ != nil {
40425		return *s.Message_
40426	}
40427	return ""
40428}
40429
40430// OrigErr always returns nil, satisfies awserr.Error interface.
40431func (s *InternalException) OrigErr() error {
40432	return nil
40433}
40434
40435func (s *InternalException) Error() string {
40436	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40437}
40438
40439// Status code returns the HTTP status code for the request's response error.
40440func (s *InternalException) StatusCode() int {
40441	return s.RespMetadata.StatusCode
40442}
40443
40444// RequestID returns the service's response RequestID for request.
40445func (s *InternalException) RequestID() string {
40446	return s.RespMetadata.RequestID
40447}
40448
40449// An unexpected error has occurred.
40450type InternalFailureException struct {
40451	_            struct{}                  `type:"structure"`
40452	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40453
40454	// The message for the exception.
40455	Message_ *string `locationName:"message" type:"string"`
40456}
40457
40458// String returns the string representation
40459func (s InternalFailureException) String() string {
40460	return awsutil.Prettify(s)
40461}
40462
40463// GoString returns the string representation
40464func (s InternalFailureException) GoString() string {
40465	return s.String()
40466}
40467
40468func newErrorInternalFailureException(v protocol.ResponseMetadata) error {
40469	return &InternalFailureException{
40470		RespMetadata: v,
40471	}
40472}
40473
40474// Code returns the exception type name.
40475func (s *InternalFailureException) Code() string {
40476	return "InternalFailureException"
40477}
40478
40479// Message returns the exception's message.
40480func (s *InternalFailureException) Message() string {
40481	if s.Message_ != nil {
40482		return *s.Message_
40483	}
40484	return ""
40485}
40486
40487// OrigErr always returns nil, satisfies awserr.Error interface.
40488func (s *InternalFailureException) OrigErr() error {
40489	return nil
40490}
40491
40492func (s *InternalFailureException) Error() string {
40493	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40494}
40495
40496// Status code returns the HTTP status code for the request's response error.
40497func (s *InternalFailureException) StatusCode() int {
40498	return s.RespMetadata.StatusCode
40499}
40500
40501// RequestID returns the service's response RequestID for request.
40502func (s *InternalFailureException) RequestID() string {
40503	return s.RespMetadata.RequestID
40504}
40505
40506// The aggregation is invalid.
40507type InvalidAggregationException struct {
40508	_            struct{}                  `type:"structure"`
40509	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40510
40511	Message_ *string `locationName:"message" type:"string"`
40512}
40513
40514// String returns the string representation
40515func (s InvalidAggregationException) String() string {
40516	return awsutil.Prettify(s)
40517}
40518
40519// GoString returns the string representation
40520func (s InvalidAggregationException) GoString() string {
40521	return s.String()
40522}
40523
40524func newErrorInvalidAggregationException(v protocol.ResponseMetadata) error {
40525	return &InvalidAggregationException{
40526		RespMetadata: v,
40527	}
40528}
40529
40530// Code returns the exception type name.
40531func (s *InvalidAggregationException) Code() string {
40532	return "InvalidAggregationException"
40533}
40534
40535// Message returns the exception's message.
40536func (s *InvalidAggregationException) Message() string {
40537	if s.Message_ != nil {
40538		return *s.Message_
40539	}
40540	return ""
40541}
40542
40543// OrigErr always returns nil, satisfies awserr.Error interface.
40544func (s *InvalidAggregationException) OrigErr() error {
40545	return nil
40546}
40547
40548func (s *InvalidAggregationException) Error() string {
40549	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40550}
40551
40552// Status code returns the HTTP status code for the request's response error.
40553func (s *InvalidAggregationException) StatusCode() int {
40554	return s.RespMetadata.StatusCode
40555}
40556
40557// RequestID returns the service's response RequestID for request.
40558func (s *InvalidAggregationException) RequestID() string {
40559	return s.RespMetadata.RequestID
40560}
40561
40562// The query is invalid.
40563type InvalidQueryException struct {
40564	_            struct{}                  `type:"structure"`
40565	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40566
40567	// The message for the exception.
40568	Message_ *string `locationName:"message" type:"string"`
40569}
40570
40571// String returns the string representation
40572func (s InvalidQueryException) String() string {
40573	return awsutil.Prettify(s)
40574}
40575
40576// GoString returns the string representation
40577func (s InvalidQueryException) GoString() string {
40578	return s.String()
40579}
40580
40581func newErrorInvalidQueryException(v protocol.ResponseMetadata) error {
40582	return &InvalidQueryException{
40583		RespMetadata: v,
40584	}
40585}
40586
40587// Code returns the exception type name.
40588func (s *InvalidQueryException) Code() string {
40589	return "InvalidQueryException"
40590}
40591
40592// Message returns the exception's message.
40593func (s *InvalidQueryException) Message() string {
40594	if s.Message_ != nil {
40595		return *s.Message_
40596	}
40597	return ""
40598}
40599
40600// OrigErr always returns nil, satisfies awserr.Error interface.
40601func (s *InvalidQueryException) OrigErr() error {
40602	return nil
40603}
40604
40605func (s *InvalidQueryException) Error() string {
40606	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40607}
40608
40609// Status code returns the HTTP status code for the request's response error.
40610func (s *InvalidQueryException) StatusCode() int {
40611	return s.RespMetadata.StatusCode
40612}
40613
40614// RequestID returns the service's response RequestID for request.
40615func (s *InvalidQueryException) RequestID() string {
40616	return s.RespMetadata.RequestID
40617}
40618
40619// The request is not valid.
40620type InvalidRequestException struct {
40621	_            struct{}                  `type:"structure"`
40622	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40623
40624	// The message for the exception.
40625	Message_ *string `locationName:"message" type:"string"`
40626}
40627
40628// String returns the string representation
40629func (s InvalidRequestException) String() string {
40630	return awsutil.Prettify(s)
40631}
40632
40633// GoString returns the string representation
40634func (s InvalidRequestException) GoString() string {
40635	return s.String()
40636}
40637
40638func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
40639	return &InvalidRequestException{
40640		RespMetadata: v,
40641	}
40642}
40643
40644// Code returns the exception type name.
40645func (s *InvalidRequestException) Code() string {
40646	return "InvalidRequestException"
40647}
40648
40649// Message returns the exception's message.
40650func (s *InvalidRequestException) Message() string {
40651	if s.Message_ != nil {
40652		return *s.Message_
40653	}
40654	return ""
40655}
40656
40657// OrigErr always returns nil, satisfies awserr.Error interface.
40658func (s *InvalidRequestException) OrigErr() error {
40659	return nil
40660}
40661
40662func (s *InvalidRequestException) Error() string {
40663	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40664}
40665
40666// Status code returns the HTTP status code for the request's response error.
40667func (s *InvalidRequestException) StatusCode() int {
40668	return s.RespMetadata.StatusCode
40669}
40670
40671// RequestID returns the service's response RequestID for request.
40672func (s *InvalidRequestException) RequestID() string {
40673	return s.RespMetadata.RequestID
40674}
40675
40676// The response is invalid.
40677type InvalidResponseException struct {
40678	_            struct{}                  `type:"structure"`
40679	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40680
40681	// The message for the exception.
40682	Message_ *string `locationName:"message" type:"string"`
40683}
40684
40685// String returns the string representation
40686func (s InvalidResponseException) String() string {
40687	return awsutil.Prettify(s)
40688}
40689
40690// GoString returns the string representation
40691func (s InvalidResponseException) GoString() string {
40692	return s.String()
40693}
40694
40695func newErrorInvalidResponseException(v protocol.ResponseMetadata) error {
40696	return &InvalidResponseException{
40697		RespMetadata: v,
40698	}
40699}
40700
40701// Code returns the exception type name.
40702func (s *InvalidResponseException) Code() string {
40703	return "InvalidResponseException"
40704}
40705
40706// Message returns the exception's message.
40707func (s *InvalidResponseException) Message() string {
40708	if s.Message_ != nil {
40709		return *s.Message_
40710	}
40711	return ""
40712}
40713
40714// OrigErr always returns nil, satisfies awserr.Error interface.
40715func (s *InvalidResponseException) OrigErr() error {
40716	return nil
40717}
40718
40719func (s *InvalidResponseException) Error() string {
40720	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40721}
40722
40723// Status code returns the HTTP status code for the request's response error.
40724func (s *InvalidResponseException) StatusCode() int {
40725	return s.RespMetadata.StatusCode
40726}
40727
40728// RequestID returns the service's response RequestID for request.
40729func (s *InvalidResponseException) RequestID() string {
40730	return s.RespMetadata.RequestID
40731}
40732
40733// An attempt was made to change to an invalid state, for example by deleting
40734// a job or a job execution which is "IN_PROGRESS" without setting the force
40735// parameter.
40736type InvalidStateTransitionException struct {
40737	_            struct{}                  `type:"structure"`
40738	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
40739
40740	// The message for the exception.
40741	Message_ *string `locationName:"message" type:"string"`
40742}
40743
40744// String returns the string representation
40745func (s InvalidStateTransitionException) String() string {
40746	return awsutil.Prettify(s)
40747}
40748
40749// GoString returns the string representation
40750func (s InvalidStateTransitionException) GoString() string {
40751	return s.String()
40752}
40753
40754func newErrorInvalidStateTransitionException(v protocol.ResponseMetadata) error {
40755	return &InvalidStateTransitionException{
40756		RespMetadata: v,
40757	}
40758}
40759
40760// Code returns the exception type name.
40761func (s *InvalidStateTransitionException) Code() string {
40762	return "InvalidStateTransitionException"
40763}
40764
40765// Message returns the exception's message.
40766func (s *InvalidStateTransitionException) Message() string {
40767	if s.Message_ != nil {
40768		return *s.Message_
40769	}
40770	return ""
40771}
40772
40773// OrigErr always returns nil, satisfies awserr.Error interface.
40774func (s *InvalidStateTransitionException) OrigErr() error {
40775	return nil
40776}
40777
40778func (s *InvalidStateTransitionException) Error() string {
40779	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
40780}
40781
40782// Status code returns the HTTP status code for the request's response error.
40783func (s *InvalidStateTransitionException) StatusCode() int {
40784	return s.RespMetadata.StatusCode
40785}
40786
40787// RequestID returns the service's response RequestID for request.
40788func (s *InvalidStateTransitionException) RequestID() string {
40789	return s.RespMetadata.RequestID
40790}
40791
40792// Sends message data to an AWS IoT Analytics channel.
40793type IotAnalyticsAction struct {
40794	_ struct{} `type:"structure"`
40795
40796	// Whether to process the action as a batch. The default value is false.
40797	//
40798	// When batchMode is true and the rule SQL statement evaluates to an Array,
40799	// each Array element is delivered as a separate message when passed by BatchPutMessage
40800	// (https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html)
40801	// to the AWS IoT Analytics channel. The resulting array can't have more than
40802	// 100 messages.
40803	BatchMode *bool `locationName:"batchMode" type:"boolean"`
40804
40805	// (deprecated) The ARN of the IoT Analytics channel to which message data will
40806	// be sent.
40807	ChannelArn *string `locationName:"channelArn" type:"string"`
40808
40809	// The name of the IoT Analytics channel to which message data will be sent.
40810	ChannelName *string `locationName:"channelName" type:"string"`
40811
40812	// The ARN of the role which has a policy that grants IoT Analytics permission
40813	// to send message data via IoT Analytics (iotanalytics:BatchPutMessage).
40814	RoleArn *string `locationName:"roleArn" type:"string"`
40815}
40816
40817// String returns the string representation
40818func (s IotAnalyticsAction) String() string {
40819	return awsutil.Prettify(s)
40820}
40821
40822// GoString returns the string representation
40823func (s IotAnalyticsAction) GoString() string {
40824	return s.String()
40825}
40826
40827// SetBatchMode sets the BatchMode field's value.
40828func (s *IotAnalyticsAction) SetBatchMode(v bool) *IotAnalyticsAction {
40829	s.BatchMode = &v
40830	return s
40831}
40832
40833// SetChannelArn sets the ChannelArn field's value.
40834func (s *IotAnalyticsAction) SetChannelArn(v string) *IotAnalyticsAction {
40835	s.ChannelArn = &v
40836	return s
40837}
40838
40839// SetChannelName sets the ChannelName field's value.
40840func (s *IotAnalyticsAction) SetChannelName(v string) *IotAnalyticsAction {
40841	s.ChannelName = &v
40842	return s
40843}
40844
40845// SetRoleArn sets the RoleArn field's value.
40846func (s *IotAnalyticsAction) SetRoleArn(v string) *IotAnalyticsAction {
40847	s.RoleArn = &v
40848	return s
40849}
40850
40851// Sends an input to an AWS IoT Events detector.
40852type IotEventsAction struct {
40853	_ struct{} `type:"structure"`
40854
40855	// Whether to process the event actions as a batch. The default value is false.
40856	//
40857	// When batchMode is true, you can't specify a messageId.
40858	//
40859	// When batchMode is true and the rule SQL statement evaluates to an Array,
40860	// each Array element is treated as a separate message when it's sent to AWS
40861	// IoT Events by calling BatchPutMessage (https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html).
40862	// The resulting array can't have more than 10 messages.
40863	BatchMode *bool `locationName:"batchMode" type:"boolean"`
40864
40865	// The name of the AWS IoT Events input.
40866	//
40867	// InputName is a required field
40868	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
40869
40870	// The ID of the message. The default messageId is a new UUID value.
40871	//
40872	// When batchMode is true, you can't specify a messageId--a new UUID value will
40873	// be assigned.
40874	//
40875	// Assign a value to this property to ensure that only one input (message) with
40876	// a given messageId will be processed by an AWS IoT Events detector.
40877	MessageId *string `locationName:"messageId" type:"string"`
40878
40879	// The ARN of the role that grants AWS IoT permission to send an input to an
40880	// AWS IoT Events detector. ("Action":"iotevents:BatchPutMessage").
40881	//
40882	// RoleArn is a required field
40883	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
40884}
40885
40886// String returns the string representation
40887func (s IotEventsAction) String() string {
40888	return awsutil.Prettify(s)
40889}
40890
40891// GoString returns the string representation
40892func (s IotEventsAction) GoString() string {
40893	return s.String()
40894}
40895
40896// Validate inspects the fields of the type to determine if they are valid.
40897func (s *IotEventsAction) Validate() error {
40898	invalidParams := request.ErrInvalidParams{Context: "IotEventsAction"}
40899	if s.InputName == nil {
40900		invalidParams.Add(request.NewErrParamRequired("InputName"))
40901	}
40902	if s.InputName != nil && len(*s.InputName) < 1 {
40903		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
40904	}
40905	if s.RoleArn == nil {
40906		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
40907	}
40908
40909	if invalidParams.Len() > 0 {
40910		return invalidParams
40911	}
40912	return nil
40913}
40914
40915// SetBatchMode sets the BatchMode field's value.
40916func (s *IotEventsAction) SetBatchMode(v bool) *IotEventsAction {
40917	s.BatchMode = &v
40918	return s
40919}
40920
40921// SetInputName sets the InputName field's value.
40922func (s *IotEventsAction) SetInputName(v string) *IotEventsAction {
40923	s.InputName = &v
40924	return s
40925}
40926
40927// SetMessageId sets the MessageId field's value.
40928func (s *IotEventsAction) SetMessageId(v string) *IotEventsAction {
40929	s.MessageId = &v
40930	return s
40931}
40932
40933// SetRoleArn sets the RoleArn field's value.
40934func (s *IotEventsAction) SetRoleArn(v string) *IotEventsAction {
40935	s.RoleArn = &v
40936	return s
40937}
40938
40939// Describes an action to send data from an MQTT message that triggered the
40940// rule to AWS IoT SiteWise asset properties.
40941type IotSiteWiseAction struct {
40942	_ struct{} `type:"structure"`
40943
40944	// A list of asset property value entries.
40945	//
40946	// PutAssetPropertyValueEntries is a required field
40947	PutAssetPropertyValueEntries []*PutAssetPropertyValueEntry `locationName:"putAssetPropertyValueEntries" min:"1" type:"list" required:"true"`
40948
40949	// The ARN of the role that grants AWS IoT permission to send an asset property
40950	// value to AWS IoTSiteWise. ("Action": "iotsitewise:BatchPutAssetPropertyValue").
40951	// The trust policy can restrict access to specific asset hierarchy paths.
40952	//
40953	// RoleArn is a required field
40954	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
40955}
40956
40957// String returns the string representation
40958func (s IotSiteWiseAction) String() string {
40959	return awsutil.Prettify(s)
40960}
40961
40962// GoString returns the string representation
40963func (s IotSiteWiseAction) GoString() string {
40964	return s.String()
40965}
40966
40967// Validate inspects the fields of the type to determine if they are valid.
40968func (s *IotSiteWiseAction) Validate() error {
40969	invalidParams := request.ErrInvalidParams{Context: "IotSiteWiseAction"}
40970	if s.PutAssetPropertyValueEntries == nil {
40971		invalidParams.Add(request.NewErrParamRequired("PutAssetPropertyValueEntries"))
40972	}
40973	if s.PutAssetPropertyValueEntries != nil && len(s.PutAssetPropertyValueEntries) < 1 {
40974		invalidParams.Add(request.NewErrParamMinLen("PutAssetPropertyValueEntries", 1))
40975	}
40976	if s.RoleArn == nil {
40977		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
40978	}
40979	if s.PutAssetPropertyValueEntries != nil {
40980		for i, v := range s.PutAssetPropertyValueEntries {
40981			if v == nil {
40982				continue
40983			}
40984			if err := v.Validate(); err != nil {
40985				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PutAssetPropertyValueEntries", i), err.(request.ErrInvalidParams))
40986			}
40987		}
40988	}
40989
40990	if invalidParams.Len() > 0 {
40991		return invalidParams
40992	}
40993	return nil
40994}
40995
40996// SetPutAssetPropertyValueEntries sets the PutAssetPropertyValueEntries field's value.
40997func (s *IotSiteWiseAction) SetPutAssetPropertyValueEntries(v []*PutAssetPropertyValueEntry) *IotSiteWiseAction {
40998	s.PutAssetPropertyValueEntries = v
40999	return s
41000}
41001
41002// SetRoleArn sets the RoleArn field's value.
41003func (s *IotSiteWiseAction) SetRoleArn(v string) *IotSiteWiseAction {
41004	s.RoleArn = &v
41005	return s
41006}
41007
41008// The Job object contains details about a job.
41009type Job struct {
41010	_ struct{} `type:"structure"`
41011
41012	// Configuration for criteria to abort the job.
41013	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
41014
41015	// If the job was updated, describes the reason for the update.
41016	Comment *string `locationName:"comment" type:"string"`
41017
41018	// The time, in seconds since the epoch, when the job was completed.
41019	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
41020
41021	// The time, in seconds since the epoch, when the job was created.
41022	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
41023
41024	// A short text description of the job.
41025	Description *string `locationName:"description" type:"string"`
41026
41027	// Will be true if the job was canceled with the optional force parameter set
41028	// to true.
41029	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
41030
41031	// An ARN identifying the job with format "arn:aws:iot:region:account:job/jobId".
41032	JobArn *string `locationName:"jobArn" type:"string"`
41033
41034	// Allows you to create a staged rollout of a job.
41035	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
41036
41037	// The unique identifier you assigned to this job when it was created.
41038	JobId *string `locationName:"jobId" min:"1" type:"string"`
41039
41040	// Details about the job process.
41041	JobProcessDetails *JobProcessDetails `locationName:"jobProcessDetails" type:"structure"`
41042
41043	// The ARN of the job template used to create the job.
41044	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
41045
41046	// The time, in seconds since the epoch, when the job was last updated.
41047	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
41048
41049	// The namespace used to indicate that a job is a customer-managed job.
41050	//
41051	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
41052	// to MQTT topics that contain the value in the following format.
41053	//
41054	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
41055	//
41056	// The namespaceId feature is in public preview.
41057	NamespaceId *string `locationName:"namespaceId" min:"1" type:"string"`
41058
41059	// Configuration for pre-signed S3 URLs.
41060	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
41061
41062	// If the job was updated, provides the reason code for the update.
41063	ReasonCode *string `locationName:"reasonCode" type:"string"`
41064
41065	// The status of the job, one of IN_PROGRESS, CANCELED, DELETION_IN_PROGRESS
41066	// or COMPLETED.
41067	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
41068
41069	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
41070	// after all those things specified as targets have completed the job (SNAPSHOT).
41071	// If continuous, the job may also be run on a thing when a change is detected
41072	// in a target. For example, a job will run on a device when the thing representing
41073	// the device is added to a target group, even after the job was completed by
41074	// all things originally in the group.
41075	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
41076
41077	// A list of IoT things and thing groups to which the job should be sent.
41078	Targets []*string `locationName:"targets" min:"1" type:"list"`
41079
41080	// Specifies the amount of time each device has to finish its execution of the
41081	// job. A timer is started when the job execution status is set to IN_PROGRESS.
41082	// If the job execution status is not set to another terminal state before the
41083	// timer expires, it will be automatically set to TIMED_OUT.
41084	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
41085}
41086
41087// String returns the string representation
41088func (s Job) String() string {
41089	return awsutil.Prettify(s)
41090}
41091
41092// GoString returns the string representation
41093func (s Job) GoString() string {
41094	return s.String()
41095}
41096
41097// SetAbortConfig sets the AbortConfig field's value.
41098func (s *Job) SetAbortConfig(v *AbortConfig) *Job {
41099	s.AbortConfig = v
41100	return s
41101}
41102
41103// SetComment sets the Comment field's value.
41104func (s *Job) SetComment(v string) *Job {
41105	s.Comment = &v
41106	return s
41107}
41108
41109// SetCompletedAt sets the CompletedAt field's value.
41110func (s *Job) SetCompletedAt(v time.Time) *Job {
41111	s.CompletedAt = &v
41112	return s
41113}
41114
41115// SetCreatedAt sets the CreatedAt field's value.
41116func (s *Job) SetCreatedAt(v time.Time) *Job {
41117	s.CreatedAt = &v
41118	return s
41119}
41120
41121// SetDescription sets the Description field's value.
41122func (s *Job) SetDescription(v string) *Job {
41123	s.Description = &v
41124	return s
41125}
41126
41127// SetForceCanceled sets the ForceCanceled field's value.
41128func (s *Job) SetForceCanceled(v bool) *Job {
41129	s.ForceCanceled = &v
41130	return s
41131}
41132
41133// SetJobArn sets the JobArn field's value.
41134func (s *Job) SetJobArn(v string) *Job {
41135	s.JobArn = &v
41136	return s
41137}
41138
41139// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
41140func (s *Job) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *Job {
41141	s.JobExecutionsRolloutConfig = v
41142	return s
41143}
41144
41145// SetJobId sets the JobId field's value.
41146func (s *Job) SetJobId(v string) *Job {
41147	s.JobId = &v
41148	return s
41149}
41150
41151// SetJobProcessDetails sets the JobProcessDetails field's value.
41152func (s *Job) SetJobProcessDetails(v *JobProcessDetails) *Job {
41153	s.JobProcessDetails = v
41154	return s
41155}
41156
41157// SetJobTemplateArn sets the JobTemplateArn field's value.
41158func (s *Job) SetJobTemplateArn(v string) *Job {
41159	s.JobTemplateArn = &v
41160	return s
41161}
41162
41163// SetLastUpdatedAt sets the LastUpdatedAt field's value.
41164func (s *Job) SetLastUpdatedAt(v time.Time) *Job {
41165	s.LastUpdatedAt = &v
41166	return s
41167}
41168
41169// SetNamespaceId sets the NamespaceId field's value.
41170func (s *Job) SetNamespaceId(v string) *Job {
41171	s.NamespaceId = &v
41172	return s
41173}
41174
41175// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
41176func (s *Job) SetPresignedUrlConfig(v *PresignedUrlConfig) *Job {
41177	s.PresignedUrlConfig = v
41178	return s
41179}
41180
41181// SetReasonCode sets the ReasonCode field's value.
41182func (s *Job) SetReasonCode(v string) *Job {
41183	s.ReasonCode = &v
41184	return s
41185}
41186
41187// SetStatus sets the Status field's value.
41188func (s *Job) SetStatus(v string) *Job {
41189	s.Status = &v
41190	return s
41191}
41192
41193// SetTargetSelection sets the TargetSelection field's value.
41194func (s *Job) SetTargetSelection(v string) *Job {
41195	s.TargetSelection = &v
41196	return s
41197}
41198
41199// SetTargets sets the Targets field's value.
41200func (s *Job) SetTargets(v []*string) *Job {
41201	s.Targets = v
41202	return s
41203}
41204
41205// SetTimeoutConfig sets the TimeoutConfig field's value.
41206func (s *Job) SetTimeoutConfig(v *TimeoutConfig) *Job {
41207	s.TimeoutConfig = v
41208	return s
41209}
41210
41211// The job execution object represents the execution of a job on a particular
41212// device.
41213type JobExecution struct {
41214	_ struct{} `type:"structure"`
41215
41216	// The estimated number of seconds that remain before the job execution status
41217	// will be changed to TIMED_OUT. The timeout interval can be anywhere between
41218	// 1 minute and 7 days (1 to 10080 minutes). The actual job execution timeout
41219	// can occur up to 60 seconds later than the estimated duration. This value
41220	// will not be included if the job execution has reached a terminal status.
41221	ApproximateSecondsBeforeTimedOut *int64 `locationName:"approximateSecondsBeforeTimedOut" type:"long"`
41222
41223	// A string (consisting of the digits "0" through "9") which identifies this
41224	// particular job execution on this particular device. It can be used in commands
41225	// which return or update job execution information.
41226	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
41227
41228	// Will be true if the job execution was canceled with the optional force parameter
41229	// set to true.
41230	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
41231
41232	// The unique identifier you assigned to the job when it was created.
41233	JobId *string `locationName:"jobId" min:"1" type:"string"`
41234
41235	// The time, in seconds since the epoch, when the job execution was last updated.
41236	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
41237
41238	// The time, in seconds since the epoch, when the job execution was queued.
41239	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
41240
41241	// The time, in seconds since the epoch, when the job execution started.
41242	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
41243
41244	// The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCEEDED,
41245	// TIMED_OUT, CANCELED, or REJECTED).
41246	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
41247
41248	// A collection of name/value pairs that describe the status of the job execution.
41249	StatusDetails *JobExecutionStatusDetails `locationName:"statusDetails" type:"structure"`
41250
41251	// The ARN of the thing on which the job execution is running.
41252	ThingArn *string `locationName:"thingArn" type:"string"`
41253
41254	// The version of the job execution. Job execution versions are incremented
41255	// each time they are updated by a device.
41256	VersionNumber *int64 `locationName:"versionNumber" type:"long"`
41257}
41258
41259// String returns the string representation
41260func (s JobExecution) String() string {
41261	return awsutil.Prettify(s)
41262}
41263
41264// GoString returns the string representation
41265func (s JobExecution) GoString() string {
41266	return s.String()
41267}
41268
41269// SetApproximateSecondsBeforeTimedOut sets the ApproximateSecondsBeforeTimedOut field's value.
41270func (s *JobExecution) SetApproximateSecondsBeforeTimedOut(v int64) *JobExecution {
41271	s.ApproximateSecondsBeforeTimedOut = &v
41272	return s
41273}
41274
41275// SetExecutionNumber sets the ExecutionNumber field's value.
41276func (s *JobExecution) SetExecutionNumber(v int64) *JobExecution {
41277	s.ExecutionNumber = &v
41278	return s
41279}
41280
41281// SetForceCanceled sets the ForceCanceled field's value.
41282func (s *JobExecution) SetForceCanceled(v bool) *JobExecution {
41283	s.ForceCanceled = &v
41284	return s
41285}
41286
41287// SetJobId sets the JobId field's value.
41288func (s *JobExecution) SetJobId(v string) *JobExecution {
41289	s.JobId = &v
41290	return s
41291}
41292
41293// SetLastUpdatedAt sets the LastUpdatedAt field's value.
41294func (s *JobExecution) SetLastUpdatedAt(v time.Time) *JobExecution {
41295	s.LastUpdatedAt = &v
41296	return s
41297}
41298
41299// SetQueuedAt sets the QueuedAt field's value.
41300func (s *JobExecution) SetQueuedAt(v time.Time) *JobExecution {
41301	s.QueuedAt = &v
41302	return s
41303}
41304
41305// SetStartedAt sets the StartedAt field's value.
41306func (s *JobExecution) SetStartedAt(v time.Time) *JobExecution {
41307	s.StartedAt = &v
41308	return s
41309}
41310
41311// SetStatus sets the Status field's value.
41312func (s *JobExecution) SetStatus(v string) *JobExecution {
41313	s.Status = &v
41314	return s
41315}
41316
41317// SetStatusDetails sets the StatusDetails field's value.
41318func (s *JobExecution) SetStatusDetails(v *JobExecutionStatusDetails) *JobExecution {
41319	s.StatusDetails = v
41320	return s
41321}
41322
41323// SetThingArn sets the ThingArn field's value.
41324func (s *JobExecution) SetThingArn(v string) *JobExecution {
41325	s.ThingArn = &v
41326	return s
41327}
41328
41329// SetVersionNumber sets the VersionNumber field's value.
41330func (s *JobExecution) SetVersionNumber(v int64) *JobExecution {
41331	s.VersionNumber = &v
41332	return s
41333}
41334
41335// Details of the job execution status.
41336type JobExecutionStatusDetails struct {
41337	_ struct{} `type:"structure"`
41338
41339	// The job execution status.
41340	DetailsMap map[string]*string `locationName:"detailsMap" type:"map"`
41341}
41342
41343// String returns the string representation
41344func (s JobExecutionStatusDetails) String() string {
41345	return awsutil.Prettify(s)
41346}
41347
41348// GoString returns the string representation
41349func (s JobExecutionStatusDetails) GoString() string {
41350	return s.String()
41351}
41352
41353// SetDetailsMap sets the DetailsMap field's value.
41354func (s *JobExecutionStatusDetails) SetDetailsMap(v map[string]*string) *JobExecutionStatusDetails {
41355	s.DetailsMap = v
41356	return s
41357}
41358
41359// The job execution summary.
41360type JobExecutionSummary struct {
41361	_ struct{} `type:"structure"`
41362
41363	// A string (consisting of the digits "0" through "9") which identifies this
41364	// particular job execution on this particular device. It can be used later
41365	// in commands which return or update job execution information.
41366	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
41367
41368	// The time, in seconds since the epoch, when the job execution was last updated.
41369	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
41370
41371	// The time, in seconds since the epoch, when the job execution was queued.
41372	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
41373
41374	// The time, in seconds since the epoch, when the job execution started.
41375	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
41376
41377	// The status of the job execution.
41378	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
41379}
41380
41381// String returns the string representation
41382func (s JobExecutionSummary) String() string {
41383	return awsutil.Prettify(s)
41384}
41385
41386// GoString returns the string representation
41387func (s JobExecutionSummary) GoString() string {
41388	return s.String()
41389}
41390
41391// SetExecutionNumber sets the ExecutionNumber field's value.
41392func (s *JobExecutionSummary) SetExecutionNumber(v int64) *JobExecutionSummary {
41393	s.ExecutionNumber = &v
41394	return s
41395}
41396
41397// SetLastUpdatedAt sets the LastUpdatedAt field's value.
41398func (s *JobExecutionSummary) SetLastUpdatedAt(v time.Time) *JobExecutionSummary {
41399	s.LastUpdatedAt = &v
41400	return s
41401}
41402
41403// SetQueuedAt sets the QueuedAt field's value.
41404func (s *JobExecutionSummary) SetQueuedAt(v time.Time) *JobExecutionSummary {
41405	s.QueuedAt = &v
41406	return s
41407}
41408
41409// SetStartedAt sets the StartedAt field's value.
41410func (s *JobExecutionSummary) SetStartedAt(v time.Time) *JobExecutionSummary {
41411	s.StartedAt = &v
41412	return s
41413}
41414
41415// SetStatus sets the Status field's value.
41416func (s *JobExecutionSummary) SetStatus(v string) *JobExecutionSummary {
41417	s.Status = &v
41418	return s
41419}
41420
41421// Contains a summary of information about job executions for a specific job.
41422type JobExecutionSummaryForJob struct {
41423	_ struct{} `type:"structure"`
41424
41425	// Contains a subset of information about a job execution.
41426	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
41427
41428	// The ARN of the thing on which the job execution is running.
41429	ThingArn *string `locationName:"thingArn" type:"string"`
41430}
41431
41432// String returns the string representation
41433func (s JobExecutionSummaryForJob) String() string {
41434	return awsutil.Prettify(s)
41435}
41436
41437// GoString returns the string representation
41438func (s JobExecutionSummaryForJob) GoString() string {
41439	return s.String()
41440}
41441
41442// SetJobExecutionSummary sets the JobExecutionSummary field's value.
41443func (s *JobExecutionSummaryForJob) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForJob {
41444	s.JobExecutionSummary = v
41445	return s
41446}
41447
41448// SetThingArn sets the ThingArn field's value.
41449func (s *JobExecutionSummaryForJob) SetThingArn(v string) *JobExecutionSummaryForJob {
41450	s.ThingArn = &v
41451	return s
41452}
41453
41454// The job execution summary for a thing.
41455type JobExecutionSummaryForThing struct {
41456	_ struct{} `type:"structure"`
41457
41458	// Contains a subset of information about a job execution.
41459	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
41460
41461	// The unique identifier you assigned to this job when it was created.
41462	JobId *string `locationName:"jobId" min:"1" type:"string"`
41463}
41464
41465// String returns the string representation
41466func (s JobExecutionSummaryForThing) String() string {
41467	return awsutil.Prettify(s)
41468}
41469
41470// GoString returns the string representation
41471func (s JobExecutionSummaryForThing) GoString() string {
41472	return s.String()
41473}
41474
41475// SetJobExecutionSummary sets the JobExecutionSummary field's value.
41476func (s *JobExecutionSummaryForThing) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForThing {
41477	s.JobExecutionSummary = v
41478	return s
41479}
41480
41481// SetJobId sets the JobId field's value.
41482func (s *JobExecutionSummaryForThing) SetJobId(v string) *JobExecutionSummaryForThing {
41483	s.JobId = &v
41484	return s
41485}
41486
41487// Allows you to create a staged rollout of a job.
41488type JobExecutionsRolloutConfig struct {
41489	_ struct{} `type:"structure"`
41490
41491	// The rate of increase for a job rollout. This parameter allows you to define
41492	// an exponential rate for a job rollout.
41493	ExponentialRate *ExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
41494
41495	// The maximum number of things that will be notified of a pending job, per
41496	// minute. This parameter allows you to create a staged rollout.
41497	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
41498}
41499
41500// String returns the string representation
41501func (s JobExecutionsRolloutConfig) String() string {
41502	return awsutil.Prettify(s)
41503}
41504
41505// GoString returns the string representation
41506func (s JobExecutionsRolloutConfig) GoString() string {
41507	return s.String()
41508}
41509
41510// Validate inspects the fields of the type to determine if they are valid.
41511func (s *JobExecutionsRolloutConfig) Validate() error {
41512	invalidParams := request.ErrInvalidParams{Context: "JobExecutionsRolloutConfig"}
41513	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
41514		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
41515	}
41516	if s.ExponentialRate != nil {
41517		if err := s.ExponentialRate.Validate(); err != nil {
41518			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
41519		}
41520	}
41521
41522	if invalidParams.Len() > 0 {
41523		return invalidParams
41524	}
41525	return nil
41526}
41527
41528// SetExponentialRate sets the ExponentialRate field's value.
41529func (s *JobExecutionsRolloutConfig) SetExponentialRate(v *ExponentialRolloutRate) *JobExecutionsRolloutConfig {
41530	s.ExponentialRate = v
41531	return s
41532}
41533
41534// SetMaximumPerMinute sets the MaximumPerMinute field's value.
41535func (s *JobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *JobExecutionsRolloutConfig {
41536	s.MaximumPerMinute = &v
41537	return s
41538}
41539
41540// The job process details.
41541type JobProcessDetails struct {
41542	_ struct{} `type:"structure"`
41543
41544	// The number of things that cancelled the job.
41545	NumberOfCanceledThings *int64 `locationName:"numberOfCanceledThings" type:"integer"`
41546
41547	// The number of things that failed executing the job.
41548	NumberOfFailedThings *int64 `locationName:"numberOfFailedThings" type:"integer"`
41549
41550	// The number of things currently executing the job.
41551	NumberOfInProgressThings *int64 `locationName:"numberOfInProgressThings" type:"integer"`
41552
41553	// The number of things that are awaiting execution of the job.
41554	NumberOfQueuedThings *int64 `locationName:"numberOfQueuedThings" type:"integer"`
41555
41556	// The number of things that rejected the job.
41557	NumberOfRejectedThings *int64 `locationName:"numberOfRejectedThings" type:"integer"`
41558
41559	// The number of things that are no longer scheduled to execute the job because
41560	// they have been deleted or have been removed from the group that was a target
41561	// of the job.
41562	NumberOfRemovedThings *int64 `locationName:"numberOfRemovedThings" type:"integer"`
41563
41564	// The number of things which successfully completed the job.
41565	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" type:"integer"`
41566
41567	// The number of things whose job execution status is TIMED_OUT.
41568	NumberOfTimedOutThings *int64 `locationName:"numberOfTimedOutThings" type:"integer"`
41569
41570	// The target devices to which the job execution is being rolled out. This value
41571	// will be null after the job execution has finished rolling out to all the
41572	// target devices.
41573	ProcessingTargets []*string `locationName:"processingTargets" type:"list"`
41574}
41575
41576// String returns the string representation
41577func (s JobProcessDetails) String() string {
41578	return awsutil.Prettify(s)
41579}
41580
41581// GoString returns the string representation
41582func (s JobProcessDetails) GoString() string {
41583	return s.String()
41584}
41585
41586// SetNumberOfCanceledThings sets the NumberOfCanceledThings field's value.
41587func (s *JobProcessDetails) SetNumberOfCanceledThings(v int64) *JobProcessDetails {
41588	s.NumberOfCanceledThings = &v
41589	return s
41590}
41591
41592// SetNumberOfFailedThings sets the NumberOfFailedThings field's value.
41593func (s *JobProcessDetails) SetNumberOfFailedThings(v int64) *JobProcessDetails {
41594	s.NumberOfFailedThings = &v
41595	return s
41596}
41597
41598// SetNumberOfInProgressThings sets the NumberOfInProgressThings field's value.
41599func (s *JobProcessDetails) SetNumberOfInProgressThings(v int64) *JobProcessDetails {
41600	s.NumberOfInProgressThings = &v
41601	return s
41602}
41603
41604// SetNumberOfQueuedThings sets the NumberOfQueuedThings field's value.
41605func (s *JobProcessDetails) SetNumberOfQueuedThings(v int64) *JobProcessDetails {
41606	s.NumberOfQueuedThings = &v
41607	return s
41608}
41609
41610// SetNumberOfRejectedThings sets the NumberOfRejectedThings field's value.
41611func (s *JobProcessDetails) SetNumberOfRejectedThings(v int64) *JobProcessDetails {
41612	s.NumberOfRejectedThings = &v
41613	return s
41614}
41615
41616// SetNumberOfRemovedThings sets the NumberOfRemovedThings field's value.
41617func (s *JobProcessDetails) SetNumberOfRemovedThings(v int64) *JobProcessDetails {
41618	s.NumberOfRemovedThings = &v
41619	return s
41620}
41621
41622// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
41623func (s *JobProcessDetails) SetNumberOfSucceededThings(v int64) *JobProcessDetails {
41624	s.NumberOfSucceededThings = &v
41625	return s
41626}
41627
41628// SetNumberOfTimedOutThings sets the NumberOfTimedOutThings field's value.
41629func (s *JobProcessDetails) SetNumberOfTimedOutThings(v int64) *JobProcessDetails {
41630	s.NumberOfTimedOutThings = &v
41631	return s
41632}
41633
41634// SetProcessingTargets sets the ProcessingTargets field's value.
41635func (s *JobProcessDetails) SetProcessingTargets(v []*string) *JobProcessDetails {
41636	s.ProcessingTargets = v
41637	return s
41638}
41639
41640// The job summary.
41641type JobSummary struct {
41642	_ struct{} `type:"structure"`
41643
41644	// The time, in seconds since the epoch, when the job completed.
41645	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
41646
41647	// The time, in seconds since the epoch, when the job was created.
41648	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
41649
41650	// The job ARN.
41651	JobArn *string `locationName:"jobArn" type:"string"`
41652
41653	// The unique identifier you assigned to this job when it was created.
41654	JobId *string `locationName:"jobId" min:"1" type:"string"`
41655
41656	// The time, in seconds since the epoch, when the job was last updated.
41657	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
41658
41659	// The job summary status.
41660	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
41661
41662	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
41663	// after all those things specified as targets have completed the job (SNAPSHOT).
41664	// If continuous, the job may also be run on a thing when a change is detected
41665	// in a target. For example, a job will run on a thing when the thing is added
41666	// to a target group, even after the job was completed by all things originally
41667	// in the group.
41668	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
41669
41670	// The ID of the thing group.
41671	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
41672}
41673
41674// String returns the string representation
41675func (s JobSummary) String() string {
41676	return awsutil.Prettify(s)
41677}
41678
41679// GoString returns the string representation
41680func (s JobSummary) GoString() string {
41681	return s.String()
41682}
41683
41684// SetCompletedAt sets the CompletedAt field's value.
41685func (s *JobSummary) SetCompletedAt(v time.Time) *JobSummary {
41686	s.CompletedAt = &v
41687	return s
41688}
41689
41690// SetCreatedAt sets the CreatedAt field's value.
41691func (s *JobSummary) SetCreatedAt(v time.Time) *JobSummary {
41692	s.CreatedAt = &v
41693	return s
41694}
41695
41696// SetJobArn sets the JobArn field's value.
41697func (s *JobSummary) SetJobArn(v string) *JobSummary {
41698	s.JobArn = &v
41699	return s
41700}
41701
41702// SetJobId sets the JobId field's value.
41703func (s *JobSummary) SetJobId(v string) *JobSummary {
41704	s.JobId = &v
41705	return s
41706}
41707
41708// SetLastUpdatedAt sets the LastUpdatedAt field's value.
41709func (s *JobSummary) SetLastUpdatedAt(v time.Time) *JobSummary {
41710	s.LastUpdatedAt = &v
41711	return s
41712}
41713
41714// SetStatus sets the Status field's value.
41715func (s *JobSummary) SetStatus(v string) *JobSummary {
41716	s.Status = &v
41717	return s
41718}
41719
41720// SetTargetSelection sets the TargetSelection field's value.
41721func (s *JobSummary) SetTargetSelection(v string) *JobSummary {
41722	s.TargetSelection = &v
41723	return s
41724}
41725
41726// SetThingGroupId sets the ThingGroupId field's value.
41727func (s *JobSummary) SetThingGroupId(v string) *JobSummary {
41728	s.ThingGroupId = &v
41729	return s
41730}
41731
41732// An object that contains information about the job template.
41733type JobTemplateSummary struct {
41734	_ struct{} `type:"structure"`
41735
41736	// The time, in seconds since the epoch, when the job template was created.
41737	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
41738
41739	// A description of the job template.
41740	Description *string `locationName:"description" type:"string"`
41741
41742	// The ARN of the job template.
41743	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
41744
41745	// The unique identifier of the job template.
41746	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
41747}
41748
41749// String returns the string representation
41750func (s JobTemplateSummary) String() string {
41751	return awsutil.Prettify(s)
41752}
41753
41754// GoString returns the string representation
41755func (s JobTemplateSummary) GoString() string {
41756	return s.String()
41757}
41758
41759// SetCreatedAt sets the CreatedAt field's value.
41760func (s *JobTemplateSummary) SetCreatedAt(v time.Time) *JobTemplateSummary {
41761	s.CreatedAt = &v
41762	return s
41763}
41764
41765// SetDescription sets the Description field's value.
41766func (s *JobTemplateSummary) SetDescription(v string) *JobTemplateSummary {
41767	s.Description = &v
41768	return s
41769}
41770
41771// SetJobTemplateArn sets the JobTemplateArn field's value.
41772func (s *JobTemplateSummary) SetJobTemplateArn(v string) *JobTemplateSummary {
41773	s.JobTemplateArn = &v
41774	return s
41775}
41776
41777// SetJobTemplateId sets the JobTemplateId field's value.
41778func (s *JobTemplateSummary) SetJobTemplateId(v string) *JobTemplateSummary {
41779	s.JobTemplateId = &v
41780	return s
41781}
41782
41783// Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK)
41784// or self-managed Apache Kafka cluster.
41785type KafkaAction struct {
41786	_ struct{} `type:"structure"`
41787
41788	// Properties of the Apache Kafka producer client.
41789	//
41790	// ClientProperties is a required field
41791	ClientProperties map[string]*string `locationName:"clientProperties" type:"map" required:"true"`
41792
41793	// The ARN of Kafka action's VPC TopicRuleDestination.
41794	//
41795	// DestinationArn is a required field
41796	DestinationArn *string `locationName:"destinationArn" type:"string" required:"true"`
41797
41798	// The Kafka message key.
41799	Key *string `locationName:"key" type:"string"`
41800
41801	// The Kafka message partition.
41802	Partition *string `locationName:"partition" type:"string"`
41803
41804	// The Kafka topic for messages to be sent to the Kafka broker.
41805	//
41806	// Topic is a required field
41807	Topic *string `locationName:"topic" type:"string" required:"true"`
41808}
41809
41810// String returns the string representation
41811func (s KafkaAction) String() string {
41812	return awsutil.Prettify(s)
41813}
41814
41815// GoString returns the string representation
41816func (s KafkaAction) GoString() string {
41817	return s.String()
41818}
41819
41820// Validate inspects the fields of the type to determine if they are valid.
41821func (s *KafkaAction) Validate() error {
41822	invalidParams := request.ErrInvalidParams{Context: "KafkaAction"}
41823	if s.ClientProperties == nil {
41824		invalidParams.Add(request.NewErrParamRequired("ClientProperties"))
41825	}
41826	if s.DestinationArn == nil {
41827		invalidParams.Add(request.NewErrParamRequired("DestinationArn"))
41828	}
41829	if s.Topic == nil {
41830		invalidParams.Add(request.NewErrParamRequired("Topic"))
41831	}
41832
41833	if invalidParams.Len() > 0 {
41834		return invalidParams
41835	}
41836	return nil
41837}
41838
41839// SetClientProperties sets the ClientProperties field's value.
41840func (s *KafkaAction) SetClientProperties(v map[string]*string) *KafkaAction {
41841	s.ClientProperties = v
41842	return s
41843}
41844
41845// SetDestinationArn sets the DestinationArn field's value.
41846func (s *KafkaAction) SetDestinationArn(v string) *KafkaAction {
41847	s.DestinationArn = &v
41848	return s
41849}
41850
41851// SetKey sets the Key field's value.
41852func (s *KafkaAction) SetKey(v string) *KafkaAction {
41853	s.Key = &v
41854	return s
41855}
41856
41857// SetPartition sets the Partition field's value.
41858func (s *KafkaAction) SetPartition(v string) *KafkaAction {
41859	s.Partition = &v
41860	return s
41861}
41862
41863// SetTopic sets the Topic field's value.
41864func (s *KafkaAction) SetTopic(v string) *KafkaAction {
41865	s.Topic = &v
41866	return s
41867}
41868
41869// Describes a key pair.
41870type KeyPair struct {
41871	_ struct{} `type:"structure"`
41872
41873	// The private key.
41874	PrivateKey *string `min:"1" type:"string" sensitive:"true"`
41875
41876	// The public key.
41877	PublicKey *string `min:"1" type:"string"`
41878}
41879
41880// String returns the string representation
41881func (s KeyPair) String() string {
41882	return awsutil.Prettify(s)
41883}
41884
41885// GoString returns the string representation
41886func (s KeyPair) GoString() string {
41887	return s.String()
41888}
41889
41890// SetPrivateKey sets the PrivateKey field's value.
41891func (s *KeyPair) SetPrivateKey(v string) *KeyPair {
41892	s.PrivateKey = &v
41893	return s
41894}
41895
41896// SetPublicKey sets the PublicKey field's value.
41897func (s *KeyPair) SetPublicKey(v string) *KeyPair {
41898	s.PublicKey = &v
41899	return s
41900}
41901
41902// Describes an action to write data to an Amazon Kinesis stream.
41903type KinesisAction struct {
41904	_ struct{} `type:"structure"`
41905
41906	// The partition key.
41907	PartitionKey *string `locationName:"partitionKey" type:"string"`
41908
41909	// The ARN of the IAM role that grants access to the Amazon Kinesis stream.
41910	//
41911	// RoleArn is a required field
41912	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
41913
41914	// The name of the Amazon Kinesis stream.
41915	//
41916	// StreamName is a required field
41917	StreamName *string `locationName:"streamName" type:"string" required:"true"`
41918}
41919
41920// String returns the string representation
41921func (s KinesisAction) String() string {
41922	return awsutil.Prettify(s)
41923}
41924
41925// GoString returns the string representation
41926func (s KinesisAction) GoString() string {
41927	return s.String()
41928}
41929
41930// Validate inspects the fields of the type to determine if they are valid.
41931func (s *KinesisAction) Validate() error {
41932	invalidParams := request.ErrInvalidParams{Context: "KinesisAction"}
41933	if s.RoleArn == nil {
41934		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
41935	}
41936	if s.StreamName == nil {
41937		invalidParams.Add(request.NewErrParamRequired("StreamName"))
41938	}
41939
41940	if invalidParams.Len() > 0 {
41941		return invalidParams
41942	}
41943	return nil
41944}
41945
41946// SetPartitionKey sets the PartitionKey field's value.
41947func (s *KinesisAction) SetPartitionKey(v string) *KinesisAction {
41948	s.PartitionKey = &v
41949	return s
41950}
41951
41952// SetRoleArn sets the RoleArn field's value.
41953func (s *KinesisAction) SetRoleArn(v string) *KinesisAction {
41954	s.RoleArn = &v
41955	return s
41956}
41957
41958// SetStreamName sets the StreamName field's value.
41959func (s *KinesisAction) SetStreamName(v string) *KinesisAction {
41960	s.StreamName = &v
41961	return s
41962}
41963
41964// Describes an action to invoke a Lambda function.
41965type LambdaAction struct {
41966	_ struct{} `type:"structure"`
41967
41968	// The ARN of the Lambda function.
41969	//
41970	// FunctionArn is a required field
41971	FunctionArn *string `locationName:"functionArn" type:"string" required:"true"`
41972}
41973
41974// String returns the string representation
41975func (s LambdaAction) String() string {
41976	return awsutil.Prettify(s)
41977}
41978
41979// GoString returns the string representation
41980func (s LambdaAction) GoString() string {
41981	return s.String()
41982}
41983
41984// Validate inspects the fields of the type to determine if they are valid.
41985func (s *LambdaAction) Validate() error {
41986	invalidParams := request.ErrInvalidParams{Context: "LambdaAction"}
41987	if s.FunctionArn == nil {
41988		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
41989	}
41990
41991	if invalidParams.Len() > 0 {
41992		return invalidParams
41993	}
41994	return nil
41995}
41996
41997// SetFunctionArn sets the FunctionArn field's value.
41998func (s *LambdaAction) SetFunctionArn(v string) *LambdaAction {
41999	s.FunctionArn = &v
42000	return s
42001}
42002
42003// A limit has been exceeded.
42004type LimitExceededException struct {
42005	_            struct{}                  `type:"structure"`
42006	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
42007
42008	// The message for the exception.
42009	Message_ *string `locationName:"message" type:"string"`
42010}
42011
42012// String returns the string representation
42013func (s LimitExceededException) String() string {
42014	return awsutil.Prettify(s)
42015}
42016
42017// GoString returns the string representation
42018func (s LimitExceededException) GoString() string {
42019	return s.String()
42020}
42021
42022func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
42023	return &LimitExceededException{
42024		RespMetadata: v,
42025	}
42026}
42027
42028// Code returns the exception type name.
42029func (s *LimitExceededException) Code() string {
42030	return "LimitExceededException"
42031}
42032
42033// Message returns the exception's message.
42034func (s *LimitExceededException) Message() string {
42035	if s.Message_ != nil {
42036		return *s.Message_
42037	}
42038	return ""
42039}
42040
42041// OrigErr always returns nil, satisfies awserr.Error interface.
42042func (s *LimitExceededException) OrigErr() error {
42043	return nil
42044}
42045
42046func (s *LimitExceededException) Error() string {
42047	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
42048}
42049
42050// Status code returns the HTTP status code for the request's response error.
42051func (s *LimitExceededException) StatusCode() int {
42052	return s.RespMetadata.StatusCode
42053}
42054
42055// RequestID returns the service's response RequestID for request.
42056func (s *LimitExceededException) RequestID() string {
42057	return s.RespMetadata.RequestID
42058}
42059
42060type ListActiveViolationsInput struct {
42061	_ struct{} `type:"structure"`
42062
42063	// The criteria for a behavior.
42064	BehaviorCriteriaType *string `location:"querystring" locationName:"behaviorCriteriaType" type:"string" enum:"BehaviorCriteriaType"`
42065
42066	// A list of all suppressed alerts.
42067	ListSuppressedAlerts *bool `location:"querystring" locationName:"listSuppressedAlerts" type:"boolean"`
42068
42069	// The maximum number of results to return at one time.
42070	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
42071
42072	// The token for the next set of results.
42073	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
42074
42075	// The name of the Device Defender security profile for which violations are
42076	// listed.
42077	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
42078
42079	// The name of the thing whose active violations are listed.
42080	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
42081}
42082
42083// String returns the string representation
42084func (s ListActiveViolationsInput) String() string {
42085	return awsutil.Prettify(s)
42086}
42087
42088// GoString returns the string representation
42089func (s ListActiveViolationsInput) GoString() string {
42090	return s.String()
42091}
42092
42093// Validate inspects the fields of the type to determine if they are valid.
42094func (s *ListActiveViolationsInput) Validate() error {
42095	invalidParams := request.ErrInvalidParams{Context: "ListActiveViolationsInput"}
42096	if s.MaxResults != nil && *s.MaxResults < 1 {
42097		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42098	}
42099	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
42100		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
42101	}
42102	if s.ThingName != nil && len(*s.ThingName) < 1 {
42103		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
42104	}
42105
42106	if invalidParams.Len() > 0 {
42107		return invalidParams
42108	}
42109	return nil
42110}
42111
42112// SetBehaviorCriteriaType sets the BehaviorCriteriaType field's value.
42113func (s *ListActiveViolationsInput) SetBehaviorCriteriaType(v string) *ListActiveViolationsInput {
42114	s.BehaviorCriteriaType = &v
42115	return s
42116}
42117
42118// SetListSuppressedAlerts sets the ListSuppressedAlerts field's value.
42119func (s *ListActiveViolationsInput) SetListSuppressedAlerts(v bool) *ListActiveViolationsInput {
42120	s.ListSuppressedAlerts = &v
42121	return s
42122}
42123
42124// SetMaxResults sets the MaxResults field's value.
42125func (s *ListActiveViolationsInput) SetMaxResults(v int64) *ListActiveViolationsInput {
42126	s.MaxResults = &v
42127	return s
42128}
42129
42130// SetNextToken sets the NextToken field's value.
42131func (s *ListActiveViolationsInput) SetNextToken(v string) *ListActiveViolationsInput {
42132	s.NextToken = &v
42133	return s
42134}
42135
42136// SetSecurityProfileName sets the SecurityProfileName field's value.
42137func (s *ListActiveViolationsInput) SetSecurityProfileName(v string) *ListActiveViolationsInput {
42138	s.SecurityProfileName = &v
42139	return s
42140}
42141
42142// SetThingName sets the ThingName field's value.
42143func (s *ListActiveViolationsInput) SetThingName(v string) *ListActiveViolationsInput {
42144	s.ThingName = &v
42145	return s
42146}
42147
42148type ListActiveViolationsOutput struct {
42149	_ struct{} `type:"structure"`
42150
42151	// The list of active violations.
42152	ActiveViolations []*ActiveViolation `locationName:"activeViolations" type:"list"`
42153
42154	// A token that can be used to retrieve the next set of results, or null if
42155	// there are no additional results.
42156	NextToken *string `locationName:"nextToken" type:"string"`
42157}
42158
42159// String returns the string representation
42160func (s ListActiveViolationsOutput) String() string {
42161	return awsutil.Prettify(s)
42162}
42163
42164// GoString returns the string representation
42165func (s ListActiveViolationsOutput) GoString() string {
42166	return s.String()
42167}
42168
42169// SetActiveViolations sets the ActiveViolations field's value.
42170func (s *ListActiveViolationsOutput) SetActiveViolations(v []*ActiveViolation) *ListActiveViolationsOutput {
42171	s.ActiveViolations = v
42172	return s
42173}
42174
42175// SetNextToken sets the NextToken field's value.
42176func (s *ListActiveViolationsOutput) SetNextToken(v string) *ListActiveViolationsOutput {
42177	s.NextToken = &v
42178	return s
42179}
42180
42181type ListAttachedPoliciesInput struct {
42182	_ struct{} `type:"structure"`
42183
42184	// The token to retrieve the next set of results.
42185	Marker *string `location:"querystring" locationName:"marker" type:"string"`
42186
42187	// The maximum number of results to be returned per request.
42188	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
42189
42190	// When true, recursively list attached policies.
42191	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
42192
42193	// The group or principal for which the policies will be listed. Valid principals
42194	// are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId), thingGroupArn
42195	// (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId (region:id).
42196	//
42197	// Target is a required field
42198	Target *string `location:"uri" locationName:"target" type:"string" required:"true"`
42199}
42200
42201// String returns the string representation
42202func (s ListAttachedPoliciesInput) String() string {
42203	return awsutil.Prettify(s)
42204}
42205
42206// GoString returns the string representation
42207func (s ListAttachedPoliciesInput) GoString() string {
42208	return s.String()
42209}
42210
42211// Validate inspects the fields of the type to determine if they are valid.
42212func (s *ListAttachedPoliciesInput) Validate() error {
42213	invalidParams := request.ErrInvalidParams{Context: "ListAttachedPoliciesInput"}
42214	if s.PageSize != nil && *s.PageSize < 1 {
42215		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
42216	}
42217	if s.Target == nil {
42218		invalidParams.Add(request.NewErrParamRequired("Target"))
42219	}
42220	if s.Target != nil && len(*s.Target) < 1 {
42221		invalidParams.Add(request.NewErrParamMinLen("Target", 1))
42222	}
42223
42224	if invalidParams.Len() > 0 {
42225		return invalidParams
42226	}
42227	return nil
42228}
42229
42230// SetMarker sets the Marker field's value.
42231func (s *ListAttachedPoliciesInput) SetMarker(v string) *ListAttachedPoliciesInput {
42232	s.Marker = &v
42233	return s
42234}
42235
42236// SetPageSize sets the PageSize field's value.
42237func (s *ListAttachedPoliciesInput) SetPageSize(v int64) *ListAttachedPoliciesInput {
42238	s.PageSize = &v
42239	return s
42240}
42241
42242// SetRecursive sets the Recursive field's value.
42243func (s *ListAttachedPoliciesInput) SetRecursive(v bool) *ListAttachedPoliciesInput {
42244	s.Recursive = &v
42245	return s
42246}
42247
42248// SetTarget sets the Target field's value.
42249func (s *ListAttachedPoliciesInput) SetTarget(v string) *ListAttachedPoliciesInput {
42250	s.Target = &v
42251	return s
42252}
42253
42254type ListAttachedPoliciesOutput struct {
42255	_ struct{} `type:"structure"`
42256
42257	// The token to retrieve the next set of results, or ``null`` if there are no
42258	// more results.
42259	NextMarker *string `locationName:"nextMarker" type:"string"`
42260
42261	// The policies.
42262	Policies []*Policy `locationName:"policies" type:"list"`
42263}
42264
42265// String returns the string representation
42266func (s ListAttachedPoliciesOutput) String() string {
42267	return awsutil.Prettify(s)
42268}
42269
42270// GoString returns the string representation
42271func (s ListAttachedPoliciesOutput) GoString() string {
42272	return s.String()
42273}
42274
42275// SetNextMarker sets the NextMarker field's value.
42276func (s *ListAttachedPoliciesOutput) SetNextMarker(v string) *ListAttachedPoliciesOutput {
42277	s.NextMarker = &v
42278	return s
42279}
42280
42281// SetPolicies sets the Policies field's value.
42282func (s *ListAttachedPoliciesOutput) SetPolicies(v []*Policy) *ListAttachedPoliciesOutput {
42283	s.Policies = v
42284	return s
42285}
42286
42287type ListAuditFindingsInput struct {
42288	_ struct{} `type:"structure"`
42289
42290	// A filter to limit results to the findings for the specified audit check.
42291	CheckName *string `locationName:"checkName" type:"string"`
42292
42293	// A filter to limit results to those found before the specified time. You must
42294	// specify either the startTime and endTime or the taskId, but not both.
42295	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
42296
42297	// Boolean flag indicating whether only the suppressed findings or the unsuppressed
42298	// findings should be listed. If this parameter isn't provided, the response
42299	// will list both suppressed and unsuppressed findings.
42300	ListSuppressedFindings *bool `locationName:"listSuppressedFindings" type:"boolean"`
42301
42302	// The maximum number of results to return at one time. The default is 25.
42303	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
42304
42305	// The token for the next set of results.
42306	NextToken *string `locationName:"nextToken" type:"string"`
42307
42308	// Information identifying the noncompliant resource.
42309	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
42310
42311	// A filter to limit results to those found after the specified time. You must
42312	// specify either the startTime and endTime or the taskId, but not both.
42313	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
42314
42315	// A filter to limit results to the audit with the specified ID. You must specify
42316	// either the taskId or the startTime and endTime, but not both.
42317	TaskId *string `locationName:"taskId" min:"1" type:"string"`
42318}
42319
42320// String returns the string representation
42321func (s ListAuditFindingsInput) String() string {
42322	return awsutil.Prettify(s)
42323}
42324
42325// GoString returns the string representation
42326func (s ListAuditFindingsInput) GoString() string {
42327	return s.String()
42328}
42329
42330// Validate inspects the fields of the type to determine if they are valid.
42331func (s *ListAuditFindingsInput) Validate() error {
42332	invalidParams := request.ErrInvalidParams{Context: "ListAuditFindingsInput"}
42333	if s.MaxResults != nil && *s.MaxResults < 1 {
42334		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42335	}
42336	if s.TaskId != nil && len(*s.TaskId) < 1 {
42337		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
42338	}
42339	if s.ResourceIdentifier != nil {
42340		if err := s.ResourceIdentifier.Validate(); err != nil {
42341			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
42342		}
42343	}
42344
42345	if invalidParams.Len() > 0 {
42346		return invalidParams
42347	}
42348	return nil
42349}
42350
42351// SetCheckName sets the CheckName field's value.
42352func (s *ListAuditFindingsInput) SetCheckName(v string) *ListAuditFindingsInput {
42353	s.CheckName = &v
42354	return s
42355}
42356
42357// SetEndTime sets the EndTime field's value.
42358func (s *ListAuditFindingsInput) SetEndTime(v time.Time) *ListAuditFindingsInput {
42359	s.EndTime = &v
42360	return s
42361}
42362
42363// SetListSuppressedFindings sets the ListSuppressedFindings field's value.
42364func (s *ListAuditFindingsInput) SetListSuppressedFindings(v bool) *ListAuditFindingsInput {
42365	s.ListSuppressedFindings = &v
42366	return s
42367}
42368
42369// SetMaxResults sets the MaxResults field's value.
42370func (s *ListAuditFindingsInput) SetMaxResults(v int64) *ListAuditFindingsInput {
42371	s.MaxResults = &v
42372	return s
42373}
42374
42375// SetNextToken sets the NextToken field's value.
42376func (s *ListAuditFindingsInput) SetNextToken(v string) *ListAuditFindingsInput {
42377	s.NextToken = &v
42378	return s
42379}
42380
42381// SetResourceIdentifier sets the ResourceIdentifier field's value.
42382func (s *ListAuditFindingsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditFindingsInput {
42383	s.ResourceIdentifier = v
42384	return s
42385}
42386
42387// SetStartTime sets the StartTime field's value.
42388func (s *ListAuditFindingsInput) SetStartTime(v time.Time) *ListAuditFindingsInput {
42389	s.StartTime = &v
42390	return s
42391}
42392
42393// SetTaskId sets the TaskId field's value.
42394func (s *ListAuditFindingsInput) SetTaskId(v string) *ListAuditFindingsInput {
42395	s.TaskId = &v
42396	return s
42397}
42398
42399type ListAuditFindingsOutput struct {
42400	_ struct{} `type:"structure"`
42401
42402	// The findings (results) of the audit.
42403	Findings []*AuditFinding `locationName:"findings" type:"list"`
42404
42405	// A token that can be used to retrieve the next set of results, or null if
42406	// there are no additional results.
42407	NextToken *string `locationName:"nextToken" type:"string"`
42408}
42409
42410// String returns the string representation
42411func (s ListAuditFindingsOutput) String() string {
42412	return awsutil.Prettify(s)
42413}
42414
42415// GoString returns the string representation
42416func (s ListAuditFindingsOutput) GoString() string {
42417	return s.String()
42418}
42419
42420// SetFindings sets the Findings field's value.
42421func (s *ListAuditFindingsOutput) SetFindings(v []*AuditFinding) *ListAuditFindingsOutput {
42422	s.Findings = v
42423	return s
42424}
42425
42426// SetNextToken sets the NextToken field's value.
42427func (s *ListAuditFindingsOutput) SetNextToken(v string) *ListAuditFindingsOutput {
42428	s.NextToken = &v
42429	return s
42430}
42431
42432type ListAuditMitigationActionsExecutionsInput struct {
42433	_ struct{} `type:"structure"`
42434
42435	// Specify this filter to limit results to those with a specific status.
42436	ActionStatus *string `location:"querystring" locationName:"actionStatus" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
42437
42438	// Specify this filter to limit results to those that were applied to a specific
42439	// audit finding.
42440	//
42441	// FindingId is a required field
42442	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string" required:"true"`
42443
42444	// The maximum number of results to return at one time. The default is 25.
42445	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
42446
42447	// The token for the next set of results.
42448	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
42449
42450	// Specify this filter to limit results to actions for a specific audit mitigation
42451	// actions task.
42452	//
42453	// TaskId is a required field
42454	TaskId *string `location:"querystring" locationName:"taskId" min:"1" type:"string" required:"true"`
42455}
42456
42457// String returns the string representation
42458func (s ListAuditMitigationActionsExecutionsInput) String() string {
42459	return awsutil.Prettify(s)
42460}
42461
42462// GoString returns the string representation
42463func (s ListAuditMitigationActionsExecutionsInput) GoString() string {
42464	return s.String()
42465}
42466
42467// Validate inspects the fields of the type to determine if they are valid.
42468func (s *ListAuditMitigationActionsExecutionsInput) Validate() error {
42469	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsExecutionsInput"}
42470	if s.FindingId == nil {
42471		invalidParams.Add(request.NewErrParamRequired("FindingId"))
42472	}
42473	if s.FindingId != nil && len(*s.FindingId) < 1 {
42474		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
42475	}
42476	if s.MaxResults != nil && *s.MaxResults < 1 {
42477		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42478	}
42479	if s.TaskId == nil {
42480		invalidParams.Add(request.NewErrParamRequired("TaskId"))
42481	}
42482	if s.TaskId != nil && len(*s.TaskId) < 1 {
42483		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
42484	}
42485
42486	if invalidParams.Len() > 0 {
42487		return invalidParams
42488	}
42489	return nil
42490}
42491
42492// SetActionStatus sets the ActionStatus field's value.
42493func (s *ListAuditMitigationActionsExecutionsInput) SetActionStatus(v string) *ListAuditMitigationActionsExecutionsInput {
42494	s.ActionStatus = &v
42495	return s
42496}
42497
42498// SetFindingId sets the FindingId field's value.
42499func (s *ListAuditMitigationActionsExecutionsInput) SetFindingId(v string) *ListAuditMitigationActionsExecutionsInput {
42500	s.FindingId = &v
42501	return s
42502}
42503
42504// SetMaxResults sets the MaxResults field's value.
42505func (s *ListAuditMitigationActionsExecutionsInput) SetMaxResults(v int64) *ListAuditMitigationActionsExecutionsInput {
42506	s.MaxResults = &v
42507	return s
42508}
42509
42510// SetNextToken sets the NextToken field's value.
42511func (s *ListAuditMitigationActionsExecutionsInput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsInput {
42512	s.NextToken = &v
42513	return s
42514}
42515
42516// SetTaskId sets the TaskId field's value.
42517func (s *ListAuditMitigationActionsExecutionsInput) SetTaskId(v string) *ListAuditMitigationActionsExecutionsInput {
42518	s.TaskId = &v
42519	return s
42520}
42521
42522type ListAuditMitigationActionsExecutionsOutput struct {
42523	_ struct{} `type:"structure"`
42524
42525	// A set of task execution results based on the input parameters. Details include
42526	// the mitigation action applied, start time, and task status.
42527	ActionsExecutions []*AuditMitigationActionExecutionMetadata `locationName:"actionsExecutions" type:"list"`
42528
42529	// The token for the next set of results.
42530	NextToken *string `locationName:"nextToken" type:"string"`
42531}
42532
42533// String returns the string representation
42534func (s ListAuditMitigationActionsExecutionsOutput) String() string {
42535	return awsutil.Prettify(s)
42536}
42537
42538// GoString returns the string representation
42539func (s ListAuditMitigationActionsExecutionsOutput) GoString() string {
42540	return s.String()
42541}
42542
42543// SetActionsExecutions sets the ActionsExecutions field's value.
42544func (s *ListAuditMitigationActionsExecutionsOutput) SetActionsExecutions(v []*AuditMitigationActionExecutionMetadata) *ListAuditMitigationActionsExecutionsOutput {
42545	s.ActionsExecutions = v
42546	return s
42547}
42548
42549// SetNextToken sets the NextToken field's value.
42550func (s *ListAuditMitigationActionsExecutionsOutput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsOutput {
42551	s.NextToken = &v
42552	return s
42553}
42554
42555type ListAuditMitigationActionsTasksInput struct {
42556	_ struct{} `type:"structure"`
42557
42558	// Specify this filter to limit results to tasks that were applied to results
42559	// for a specific audit.
42560	AuditTaskId *string `location:"querystring" locationName:"auditTaskId" min:"1" type:"string"`
42561
42562	// Specify this filter to limit results to tasks that were completed or canceled
42563	// on or before a specific date and time.
42564	//
42565	// EndTime is a required field
42566	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
42567
42568	// Specify this filter to limit results to tasks that were applied to a specific
42569	// audit finding.
42570	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string"`
42571
42572	// The maximum number of results to return at one time. The default is 25.
42573	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
42574
42575	// The token for the next set of results.
42576	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
42577
42578	// Specify this filter to limit results to tasks that began on or after a specific
42579	// date and time.
42580	//
42581	// StartTime is a required field
42582	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
42583
42584	// Specify this filter to limit results to tasks that are in a specific state.
42585	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
42586}
42587
42588// String returns the string representation
42589func (s ListAuditMitigationActionsTasksInput) String() string {
42590	return awsutil.Prettify(s)
42591}
42592
42593// GoString returns the string representation
42594func (s ListAuditMitigationActionsTasksInput) GoString() string {
42595	return s.String()
42596}
42597
42598// Validate inspects the fields of the type to determine if they are valid.
42599func (s *ListAuditMitigationActionsTasksInput) Validate() error {
42600	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsTasksInput"}
42601	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
42602		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
42603	}
42604	if s.EndTime == nil {
42605		invalidParams.Add(request.NewErrParamRequired("EndTime"))
42606	}
42607	if s.FindingId != nil && len(*s.FindingId) < 1 {
42608		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
42609	}
42610	if s.MaxResults != nil && *s.MaxResults < 1 {
42611		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42612	}
42613	if s.StartTime == nil {
42614		invalidParams.Add(request.NewErrParamRequired("StartTime"))
42615	}
42616
42617	if invalidParams.Len() > 0 {
42618		return invalidParams
42619	}
42620	return nil
42621}
42622
42623// SetAuditTaskId sets the AuditTaskId field's value.
42624func (s *ListAuditMitigationActionsTasksInput) SetAuditTaskId(v string) *ListAuditMitigationActionsTasksInput {
42625	s.AuditTaskId = &v
42626	return s
42627}
42628
42629// SetEndTime sets the EndTime field's value.
42630func (s *ListAuditMitigationActionsTasksInput) SetEndTime(v time.Time) *ListAuditMitigationActionsTasksInput {
42631	s.EndTime = &v
42632	return s
42633}
42634
42635// SetFindingId sets the FindingId field's value.
42636func (s *ListAuditMitigationActionsTasksInput) SetFindingId(v string) *ListAuditMitigationActionsTasksInput {
42637	s.FindingId = &v
42638	return s
42639}
42640
42641// SetMaxResults sets the MaxResults field's value.
42642func (s *ListAuditMitigationActionsTasksInput) SetMaxResults(v int64) *ListAuditMitigationActionsTasksInput {
42643	s.MaxResults = &v
42644	return s
42645}
42646
42647// SetNextToken sets the NextToken field's value.
42648func (s *ListAuditMitigationActionsTasksInput) SetNextToken(v string) *ListAuditMitigationActionsTasksInput {
42649	s.NextToken = &v
42650	return s
42651}
42652
42653// SetStartTime sets the StartTime field's value.
42654func (s *ListAuditMitigationActionsTasksInput) SetStartTime(v time.Time) *ListAuditMitigationActionsTasksInput {
42655	s.StartTime = &v
42656	return s
42657}
42658
42659// SetTaskStatus sets the TaskStatus field's value.
42660func (s *ListAuditMitigationActionsTasksInput) SetTaskStatus(v string) *ListAuditMitigationActionsTasksInput {
42661	s.TaskStatus = &v
42662	return s
42663}
42664
42665type ListAuditMitigationActionsTasksOutput struct {
42666	_ struct{} `type:"structure"`
42667
42668	// The token for the next set of results.
42669	NextToken *string `locationName:"nextToken" type:"string"`
42670
42671	// The collection of audit mitigation tasks that matched the filter criteria.
42672	Tasks []*AuditMitigationActionsTaskMetadata `locationName:"tasks" type:"list"`
42673}
42674
42675// String returns the string representation
42676func (s ListAuditMitigationActionsTasksOutput) String() string {
42677	return awsutil.Prettify(s)
42678}
42679
42680// GoString returns the string representation
42681func (s ListAuditMitigationActionsTasksOutput) GoString() string {
42682	return s.String()
42683}
42684
42685// SetNextToken sets the NextToken field's value.
42686func (s *ListAuditMitigationActionsTasksOutput) SetNextToken(v string) *ListAuditMitigationActionsTasksOutput {
42687	s.NextToken = &v
42688	return s
42689}
42690
42691// SetTasks sets the Tasks field's value.
42692func (s *ListAuditMitigationActionsTasksOutput) SetTasks(v []*AuditMitigationActionsTaskMetadata) *ListAuditMitigationActionsTasksOutput {
42693	s.Tasks = v
42694	return s
42695}
42696
42697type ListAuditSuppressionsInput struct {
42698	_ struct{} `type:"structure"`
42699
42700	// Determines whether suppressions are listed in ascending order by expiration
42701	// date or not. If parameter isn't provided, ascendingOrder=true.
42702	AscendingOrder *bool `locationName:"ascendingOrder" type:"boolean"`
42703
42704	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
42705	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
42706	// to select which checks are enabled.)
42707	CheckName *string `locationName:"checkName" type:"string"`
42708
42709	// The maximum number of results to return at one time. The default is 25.
42710	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
42711
42712	// The token for the next set of results.
42713	NextToken *string `locationName:"nextToken" type:"string"`
42714
42715	// Information that identifies the noncompliant resource.
42716	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
42717}
42718
42719// String returns the string representation
42720func (s ListAuditSuppressionsInput) String() string {
42721	return awsutil.Prettify(s)
42722}
42723
42724// GoString returns the string representation
42725func (s ListAuditSuppressionsInput) GoString() string {
42726	return s.String()
42727}
42728
42729// Validate inspects the fields of the type to determine if they are valid.
42730func (s *ListAuditSuppressionsInput) Validate() error {
42731	invalidParams := request.ErrInvalidParams{Context: "ListAuditSuppressionsInput"}
42732	if s.MaxResults != nil && *s.MaxResults < 1 {
42733		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42734	}
42735	if s.ResourceIdentifier != nil {
42736		if err := s.ResourceIdentifier.Validate(); err != nil {
42737			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
42738		}
42739	}
42740
42741	if invalidParams.Len() > 0 {
42742		return invalidParams
42743	}
42744	return nil
42745}
42746
42747// SetAscendingOrder sets the AscendingOrder field's value.
42748func (s *ListAuditSuppressionsInput) SetAscendingOrder(v bool) *ListAuditSuppressionsInput {
42749	s.AscendingOrder = &v
42750	return s
42751}
42752
42753// SetCheckName sets the CheckName field's value.
42754func (s *ListAuditSuppressionsInput) SetCheckName(v string) *ListAuditSuppressionsInput {
42755	s.CheckName = &v
42756	return s
42757}
42758
42759// SetMaxResults sets the MaxResults field's value.
42760func (s *ListAuditSuppressionsInput) SetMaxResults(v int64) *ListAuditSuppressionsInput {
42761	s.MaxResults = &v
42762	return s
42763}
42764
42765// SetNextToken sets the NextToken field's value.
42766func (s *ListAuditSuppressionsInput) SetNextToken(v string) *ListAuditSuppressionsInput {
42767	s.NextToken = &v
42768	return s
42769}
42770
42771// SetResourceIdentifier sets the ResourceIdentifier field's value.
42772func (s *ListAuditSuppressionsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditSuppressionsInput {
42773	s.ResourceIdentifier = v
42774	return s
42775}
42776
42777type ListAuditSuppressionsOutput struct {
42778	_ struct{} `type:"structure"`
42779
42780	// A token that can be used to retrieve the next set of results, or null if
42781	// there are no additional results.
42782	NextToken *string `locationName:"nextToken" type:"string"`
42783
42784	// List of audit suppressions.
42785	Suppressions []*AuditSuppression `locationName:"suppressions" type:"list"`
42786}
42787
42788// String returns the string representation
42789func (s ListAuditSuppressionsOutput) String() string {
42790	return awsutil.Prettify(s)
42791}
42792
42793// GoString returns the string representation
42794func (s ListAuditSuppressionsOutput) GoString() string {
42795	return s.String()
42796}
42797
42798// SetNextToken sets the NextToken field's value.
42799func (s *ListAuditSuppressionsOutput) SetNextToken(v string) *ListAuditSuppressionsOutput {
42800	s.NextToken = &v
42801	return s
42802}
42803
42804// SetSuppressions sets the Suppressions field's value.
42805func (s *ListAuditSuppressionsOutput) SetSuppressions(v []*AuditSuppression) *ListAuditSuppressionsOutput {
42806	s.Suppressions = v
42807	return s
42808}
42809
42810type ListAuditTasksInput struct {
42811	_ struct{} `type:"structure"`
42812
42813	// The end of the time period.
42814	//
42815	// EndTime is a required field
42816	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
42817
42818	// The maximum number of results to return at one time. The default is 25.
42819	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
42820
42821	// The token for the next set of results.
42822	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
42823
42824	// The beginning of the time period. Audit information is retained for a limited
42825	// time (90 days). Requesting a start time prior to what is retained results
42826	// in an "InvalidRequestException".
42827	//
42828	// StartTime is a required field
42829	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
42830
42831	// A filter to limit the output to audits with the specified completion status:
42832	// can be one of "IN_PROGRESS", "COMPLETED", "FAILED", or "CANCELED".
42833	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
42834
42835	// A filter to limit the output to the specified type of audit: can be one of
42836	// "ON_DEMAND_AUDIT_TASK" or "SCHEDULED__AUDIT_TASK".
42837	TaskType *string `location:"querystring" locationName:"taskType" type:"string" enum:"AuditTaskType"`
42838}
42839
42840// String returns the string representation
42841func (s ListAuditTasksInput) String() string {
42842	return awsutil.Prettify(s)
42843}
42844
42845// GoString returns the string representation
42846func (s ListAuditTasksInput) GoString() string {
42847	return s.String()
42848}
42849
42850// Validate inspects the fields of the type to determine if they are valid.
42851func (s *ListAuditTasksInput) Validate() error {
42852	invalidParams := request.ErrInvalidParams{Context: "ListAuditTasksInput"}
42853	if s.EndTime == nil {
42854		invalidParams.Add(request.NewErrParamRequired("EndTime"))
42855	}
42856	if s.MaxResults != nil && *s.MaxResults < 1 {
42857		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
42858	}
42859	if s.StartTime == nil {
42860		invalidParams.Add(request.NewErrParamRequired("StartTime"))
42861	}
42862
42863	if invalidParams.Len() > 0 {
42864		return invalidParams
42865	}
42866	return nil
42867}
42868
42869// SetEndTime sets the EndTime field's value.
42870func (s *ListAuditTasksInput) SetEndTime(v time.Time) *ListAuditTasksInput {
42871	s.EndTime = &v
42872	return s
42873}
42874
42875// SetMaxResults sets the MaxResults field's value.
42876func (s *ListAuditTasksInput) SetMaxResults(v int64) *ListAuditTasksInput {
42877	s.MaxResults = &v
42878	return s
42879}
42880
42881// SetNextToken sets the NextToken field's value.
42882func (s *ListAuditTasksInput) SetNextToken(v string) *ListAuditTasksInput {
42883	s.NextToken = &v
42884	return s
42885}
42886
42887// SetStartTime sets the StartTime field's value.
42888func (s *ListAuditTasksInput) SetStartTime(v time.Time) *ListAuditTasksInput {
42889	s.StartTime = &v
42890	return s
42891}
42892
42893// SetTaskStatus sets the TaskStatus field's value.
42894func (s *ListAuditTasksInput) SetTaskStatus(v string) *ListAuditTasksInput {
42895	s.TaskStatus = &v
42896	return s
42897}
42898
42899// SetTaskType sets the TaskType field's value.
42900func (s *ListAuditTasksInput) SetTaskType(v string) *ListAuditTasksInput {
42901	s.TaskType = &v
42902	return s
42903}
42904
42905type ListAuditTasksOutput struct {
42906	_ struct{} `type:"structure"`
42907
42908	// A token that can be used to retrieve the next set of results, or null if
42909	// there are no additional results.
42910	NextToken *string `locationName:"nextToken" type:"string"`
42911
42912	// The audits that were performed during the specified time period.
42913	Tasks []*AuditTaskMetadata `locationName:"tasks" type:"list"`
42914}
42915
42916// String returns the string representation
42917func (s ListAuditTasksOutput) String() string {
42918	return awsutil.Prettify(s)
42919}
42920
42921// GoString returns the string representation
42922func (s ListAuditTasksOutput) GoString() string {
42923	return s.String()
42924}
42925
42926// SetNextToken sets the NextToken field's value.
42927func (s *ListAuditTasksOutput) SetNextToken(v string) *ListAuditTasksOutput {
42928	s.NextToken = &v
42929	return s
42930}
42931
42932// SetTasks sets the Tasks field's value.
42933func (s *ListAuditTasksOutput) SetTasks(v []*AuditTaskMetadata) *ListAuditTasksOutput {
42934	s.Tasks = v
42935	return s
42936}
42937
42938type ListAuthorizersInput struct {
42939	_ struct{} `type:"structure"`
42940
42941	// Return the list of authorizers in ascending alphabetical order.
42942	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
42943
42944	// A marker used to get the next set of results.
42945	Marker *string `location:"querystring" locationName:"marker" type:"string"`
42946
42947	// The maximum number of results to return at one time.
42948	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
42949
42950	// The status of the list authorizers request.
42951	Status *string `location:"querystring" locationName:"status" type:"string" enum:"AuthorizerStatus"`
42952}
42953
42954// String returns the string representation
42955func (s ListAuthorizersInput) String() string {
42956	return awsutil.Prettify(s)
42957}
42958
42959// GoString returns the string representation
42960func (s ListAuthorizersInput) GoString() string {
42961	return s.String()
42962}
42963
42964// Validate inspects the fields of the type to determine if they are valid.
42965func (s *ListAuthorizersInput) Validate() error {
42966	invalidParams := request.ErrInvalidParams{Context: "ListAuthorizersInput"}
42967	if s.PageSize != nil && *s.PageSize < 1 {
42968		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
42969	}
42970
42971	if invalidParams.Len() > 0 {
42972		return invalidParams
42973	}
42974	return nil
42975}
42976
42977// SetAscendingOrder sets the AscendingOrder field's value.
42978func (s *ListAuthorizersInput) SetAscendingOrder(v bool) *ListAuthorizersInput {
42979	s.AscendingOrder = &v
42980	return s
42981}
42982
42983// SetMarker sets the Marker field's value.
42984func (s *ListAuthorizersInput) SetMarker(v string) *ListAuthorizersInput {
42985	s.Marker = &v
42986	return s
42987}
42988
42989// SetPageSize sets the PageSize field's value.
42990func (s *ListAuthorizersInput) SetPageSize(v int64) *ListAuthorizersInput {
42991	s.PageSize = &v
42992	return s
42993}
42994
42995// SetStatus sets the Status field's value.
42996func (s *ListAuthorizersInput) SetStatus(v string) *ListAuthorizersInput {
42997	s.Status = &v
42998	return s
42999}
43000
43001type ListAuthorizersOutput struct {
43002	_ struct{} `type:"structure"`
43003
43004	// The authorizers.
43005	Authorizers []*AuthorizerSummary `locationName:"authorizers" type:"list"`
43006
43007	// A marker used to get the next set of results.
43008	NextMarker *string `locationName:"nextMarker" type:"string"`
43009}
43010
43011// String returns the string representation
43012func (s ListAuthorizersOutput) String() string {
43013	return awsutil.Prettify(s)
43014}
43015
43016// GoString returns the string representation
43017func (s ListAuthorizersOutput) GoString() string {
43018	return s.String()
43019}
43020
43021// SetAuthorizers sets the Authorizers field's value.
43022func (s *ListAuthorizersOutput) SetAuthorizers(v []*AuthorizerSummary) *ListAuthorizersOutput {
43023	s.Authorizers = v
43024	return s
43025}
43026
43027// SetNextMarker sets the NextMarker field's value.
43028func (s *ListAuthorizersOutput) SetNextMarker(v string) *ListAuthorizersOutput {
43029	s.NextMarker = &v
43030	return s
43031}
43032
43033type ListBillingGroupsInput struct {
43034	_ struct{} `type:"structure"`
43035
43036	// The maximum number of results to return per request.
43037	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43038
43039	// Limit the results to billing groups whose names have the given prefix.
43040	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
43041
43042	// To retrieve the next set of results, the nextToken value from a previous
43043	// response; otherwise null to receive the first set of results.
43044	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43045}
43046
43047// String returns the string representation
43048func (s ListBillingGroupsInput) String() string {
43049	return awsutil.Prettify(s)
43050}
43051
43052// GoString returns the string representation
43053func (s ListBillingGroupsInput) GoString() string {
43054	return s.String()
43055}
43056
43057// Validate inspects the fields of the type to determine if they are valid.
43058func (s *ListBillingGroupsInput) Validate() error {
43059	invalidParams := request.ErrInvalidParams{Context: "ListBillingGroupsInput"}
43060	if s.MaxResults != nil && *s.MaxResults < 1 {
43061		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43062	}
43063	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
43064		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
43065	}
43066
43067	if invalidParams.Len() > 0 {
43068		return invalidParams
43069	}
43070	return nil
43071}
43072
43073// SetMaxResults sets the MaxResults field's value.
43074func (s *ListBillingGroupsInput) SetMaxResults(v int64) *ListBillingGroupsInput {
43075	s.MaxResults = &v
43076	return s
43077}
43078
43079// SetNamePrefixFilter sets the NamePrefixFilter field's value.
43080func (s *ListBillingGroupsInput) SetNamePrefixFilter(v string) *ListBillingGroupsInput {
43081	s.NamePrefixFilter = &v
43082	return s
43083}
43084
43085// SetNextToken sets the NextToken field's value.
43086func (s *ListBillingGroupsInput) SetNextToken(v string) *ListBillingGroupsInput {
43087	s.NextToken = &v
43088	return s
43089}
43090
43091type ListBillingGroupsOutput struct {
43092	_ struct{} `type:"structure"`
43093
43094	// The list of billing groups.
43095	BillingGroups []*GroupNameAndArn `locationName:"billingGroups" type:"list"`
43096
43097	// The token to use to get the next set of results, or null if there are no
43098	// additional results.
43099	NextToken *string `locationName:"nextToken" type:"string"`
43100}
43101
43102// String returns the string representation
43103func (s ListBillingGroupsOutput) String() string {
43104	return awsutil.Prettify(s)
43105}
43106
43107// GoString returns the string representation
43108func (s ListBillingGroupsOutput) GoString() string {
43109	return s.String()
43110}
43111
43112// SetBillingGroups sets the BillingGroups field's value.
43113func (s *ListBillingGroupsOutput) SetBillingGroups(v []*GroupNameAndArn) *ListBillingGroupsOutput {
43114	s.BillingGroups = v
43115	return s
43116}
43117
43118// SetNextToken sets the NextToken field's value.
43119func (s *ListBillingGroupsOutput) SetNextToken(v string) *ListBillingGroupsOutput {
43120	s.NextToken = &v
43121	return s
43122}
43123
43124// Input for the ListCACertificates operation.
43125type ListCACertificatesInput struct {
43126	_ struct{} `type:"structure"`
43127
43128	// Determines the order of the results.
43129	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
43130
43131	// The marker for the next set of results.
43132	Marker *string `location:"querystring" locationName:"marker" type:"string"`
43133
43134	// The result page size.
43135	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
43136}
43137
43138// String returns the string representation
43139func (s ListCACertificatesInput) String() string {
43140	return awsutil.Prettify(s)
43141}
43142
43143// GoString returns the string representation
43144func (s ListCACertificatesInput) GoString() string {
43145	return s.String()
43146}
43147
43148// Validate inspects the fields of the type to determine if they are valid.
43149func (s *ListCACertificatesInput) Validate() error {
43150	invalidParams := request.ErrInvalidParams{Context: "ListCACertificatesInput"}
43151	if s.PageSize != nil && *s.PageSize < 1 {
43152		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
43153	}
43154
43155	if invalidParams.Len() > 0 {
43156		return invalidParams
43157	}
43158	return nil
43159}
43160
43161// SetAscendingOrder sets the AscendingOrder field's value.
43162func (s *ListCACertificatesInput) SetAscendingOrder(v bool) *ListCACertificatesInput {
43163	s.AscendingOrder = &v
43164	return s
43165}
43166
43167// SetMarker sets the Marker field's value.
43168func (s *ListCACertificatesInput) SetMarker(v string) *ListCACertificatesInput {
43169	s.Marker = &v
43170	return s
43171}
43172
43173// SetPageSize sets the PageSize field's value.
43174func (s *ListCACertificatesInput) SetPageSize(v int64) *ListCACertificatesInput {
43175	s.PageSize = &v
43176	return s
43177}
43178
43179// The output from the ListCACertificates operation.
43180type ListCACertificatesOutput struct {
43181	_ struct{} `type:"structure"`
43182
43183	// The CA certificates registered in your AWS account.
43184	Certificates []*CACertificate `locationName:"certificates" type:"list"`
43185
43186	// The current position within the list of CA certificates.
43187	NextMarker *string `locationName:"nextMarker" type:"string"`
43188}
43189
43190// String returns the string representation
43191func (s ListCACertificatesOutput) String() string {
43192	return awsutil.Prettify(s)
43193}
43194
43195// GoString returns the string representation
43196func (s ListCACertificatesOutput) GoString() string {
43197	return s.String()
43198}
43199
43200// SetCertificates sets the Certificates field's value.
43201func (s *ListCACertificatesOutput) SetCertificates(v []*CACertificate) *ListCACertificatesOutput {
43202	s.Certificates = v
43203	return s
43204}
43205
43206// SetNextMarker sets the NextMarker field's value.
43207func (s *ListCACertificatesOutput) SetNextMarker(v string) *ListCACertificatesOutput {
43208	s.NextMarker = &v
43209	return s
43210}
43211
43212// The input to the ListCertificatesByCA operation.
43213type ListCertificatesByCAInput struct {
43214	_ struct{} `type:"structure"`
43215
43216	// Specifies the order for results. If True, the results are returned in ascending
43217	// order, based on the creation date.
43218	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
43219
43220	// The ID of the CA certificate. This operation will list all registered device
43221	// certificate that were signed by this CA certificate.
43222	//
43223	// CaCertificateId is a required field
43224	CaCertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
43225
43226	// The marker for the next set of results.
43227	Marker *string `location:"querystring" locationName:"marker" type:"string"`
43228
43229	// The result page size.
43230	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
43231}
43232
43233// String returns the string representation
43234func (s ListCertificatesByCAInput) String() string {
43235	return awsutil.Prettify(s)
43236}
43237
43238// GoString returns the string representation
43239func (s ListCertificatesByCAInput) GoString() string {
43240	return s.String()
43241}
43242
43243// Validate inspects the fields of the type to determine if they are valid.
43244func (s *ListCertificatesByCAInput) Validate() error {
43245	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesByCAInput"}
43246	if s.CaCertificateId == nil {
43247		invalidParams.Add(request.NewErrParamRequired("CaCertificateId"))
43248	}
43249	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
43250		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
43251	}
43252	if s.PageSize != nil && *s.PageSize < 1 {
43253		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
43254	}
43255
43256	if invalidParams.Len() > 0 {
43257		return invalidParams
43258	}
43259	return nil
43260}
43261
43262// SetAscendingOrder sets the AscendingOrder field's value.
43263func (s *ListCertificatesByCAInput) SetAscendingOrder(v bool) *ListCertificatesByCAInput {
43264	s.AscendingOrder = &v
43265	return s
43266}
43267
43268// SetCaCertificateId sets the CaCertificateId field's value.
43269func (s *ListCertificatesByCAInput) SetCaCertificateId(v string) *ListCertificatesByCAInput {
43270	s.CaCertificateId = &v
43271	return s
43272}
43273
43274// SetMarker sets the Marker field's value.
43275func (s *ListCertificatesByCAInput) SetMarker(v string) *ListCertificatesByCAInput {
43276	s.Marker = &v
43277	return s
43278}
43279
43280// SetPageSize sets the PageSize field's value.
43281func (s *ListCertificatesByCAInput) SetPageSize(v int64) *ListCertificatesByCAInput {
43282	s.PageSize = &v
43283	return s
43284}
43285
43286// The output of the ListCertificatesByCA operation.
43287type ListCertificatesByCAOutput struct {
43288	_ struct{} `type:"structure"`
43289
43290	// The device certificates signed by the specified CA certificate.
43291	Certificates []*Certificate `locationName:"certificates" type:"list"`
43292
43293	// The marker for the next set of results, or null if there are no additional
43294	// results.
43295	NextMarker *string `locationName:"nextMarker" type:"string"`
43296}
43297
43298// String returns the string representation
43299func (s ListCertificatesByCAOutput) String() string {
43300	return awsutil.Prettify(s)
43301}
43302
43303// GoString returns the string representation
43304func (s ListCertificatesByCAOutput) GoString() string {
43305	return s.String()
43306}
43307
43308// SetCertificates sets the Certificates field's value.
43309func (s *ListCertificatesByCAOutput) SetCertificates(v []*Certificate) *ListCertificatesByCAOutput {
43310	s.Certificates = v
43311	return s
43312}
43313
43314// SetNextMarker sets the NextMarker field's value.
43315func (s *ListCertificatesByCAOutput) SetNextMarker(v string) *ListCertificatesByCAOutput {
43316	s.NextMarker = &v
43317	return s
43318}
43319
43320// The input for the ListCertificates operation.
43321type ListCertificatesInput struct {
43322	_ struct{} `type:"structure"`
43323
43324	// Specifies the order for results. If True, the results are returned in ascending
43325	// order, based on the creation date.
43326	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
43327
43328	// The marker for the next set of results.
43329	Marker *string `location:"querystring" locationName:"marker" type:"string"`
43330
43331	// The result page size.
43332	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
43333}
43334
43335// String returns the string representation
43336func (s ListCertificatesInput) String() string {
43337	return awsutil.Prettify(s)
43338}
43339
43340// GoString returns the string representation
43341func (s ListCertificatesInput) GoString() string {
43342	return s.String()
43343}
43344
43345// Validate inspects the fields of the type to determine if they are valid.
43346func (s *ListCertificatesInput) Validate() error {
43347	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesInput"}
43348	if s.PageSize != nil && *s.PageSize < 1 {
43349		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
43350	}
43351
43352	if invalidParams.Len() > 0 {
43353		return invalidParams
43354	}
43355	return nil
43356}
43357
43358// SetAscendingOrder sets the AscendingOrder field's value.
43359func (s *ListCertificatesInput) SetAscendingOrder(v bool) *ListCertificatesInput {
43360	s.AscendingOrder = &v
43361	return s
43362}
43363
43364// SetMarker sets the Marker field's value.
43365func (s *ListCertificatesInput) SetMarker(v string) *ListCertificatesInput {
43366	s.Marker = &v
43367	return s
43368}
43369
43370// SetPageSize sets the PageSize field's value.
43371func (s *ListCertificatesInput) SetPageSize(v int64) *ListCertificatesInput {
43372	s.PageSize = &v
43373	return s
43374}
43375
43376// The output of the ListCertificates operation.
43377type ListCertificatesOutput struct {
43378	_ struct{} `type:"structure"`
43379
43380	// The descriptions of the certificates.
43381	Certificates []*Certificate `locationName:"certificates" type:"list"`
43382
43383	// The marker for the next set of results, or null if there are no additional
43384	// results.
43385	NextMarker *string `locationName:"nextMarker" type:"string"`
43386}
43387
43388// String returns the string representation
43389func (s ListCertificatesOutput) String() string {
43390	return awsutil.Prettify(s)
43391}
43392
43393// GoString returns the string representation
43394func (s ListCertificatesOutput) GoString() string {
43395	return s.String()
43396}
43397
43398// SetCertificates sets the Certificates field's value.
43399func (s *ListCertificatesOutput) SetCertificates(v []*Certificate) *ListCertificatesOutput {
43400	s.Certificates = v
43401	return s
43402}
43403
43404// SetNextMarker sets the NextMarker field's value.
43405func (s *ListCertificatesOutput) SetNextMarker(v string) *ListCertificatesOutput {
43406	s.NextMarker = &v
43407	return s
43408}
43409
43410type ListCustomMetricsInput struct {
43411	_ struct{} `type:"structure"`
43412
43413	// The maximum number of results to return at one time. The default is 25.
43414	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43415
43416	// The token for the next set of results.
43417	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43418}
43419
43420// String returns the string representation
43421func (s ListCustomMetricsInput) String() string {
43422	return awsutil.Prettify(s)
43423}
43424
43425// GoString returns the string representation
43426func (s ListCustomMetricsInput) GoString() string {
43427	return s.String()
43428}
43429
43430// Validate inspects the fields of the type to determine if they are valid.
43431func (s *ListCustomMetricsInput) Validate() error {
43432	invalidParams := request.ErrInvalidParams{Context: "ListCustomMetricsInput"}
43433	if s.MaxResults != nil && *s.MaxResults < 1 {
43434		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43435	}
43436
43437	if invalidParams.Len() > 0 {
43438		return invalidParams
43439	}
43440	return nil
43441}
43442
43443// SetMaxResults sets the MaxResults field's value.
43444func (s *ListCustomMetricsInput) SetMaxResults(v int64) *ListCustomMetricsInput {
43445	s.MaxResults = &v
43446	return s
43447}
43448
43449// SetNextToken sets the NextToken field's value.
43450func (s *ListCustomMetricsInput) SetNextToken(v string) *ListCustomMetricsInput {
43451	s.NextToken = &v
43452	return s
43453}
43454
43455type ListCustomMetricsOutput struct {
43456	_ struct{} `type:"structure"`
43457
43458	// The name of the custom metric.
43459	MetricNames []*string `locationName:"metricNames" type:"list"`
43460
43461	// A token that can be used to retrieve the next set of results, or null if
43462	// there are no additional results.
43463	NextToken *string `locationName:"nextToken" type:"string"`
43464}
43465
43466// String returns the string representation
43467func (s ListCustomMetricsOutput) String() string {
43468	return awsutil.Prettify(s)
43469}
43470
43471// GoString returns the string representation
43472func (s ListCustomMetricsOutput) GoString() string {
43473	return s.String()
43474}
43475
43476// SetMetricNames sets the MetricNames field's value.
43477func (s *ListCustomMetricsOutput) SetMetricNames(v []*string) *ListCustomMetricsOutput {
43478	s.MetricNames = v
43479	return s
43480}
43481
43482// SetNextToken sets the NextToken field's value.
43483func (s *ListCustomMetricsOutput) SetNextToken(v string) *ListCustomMetricsOutput {
43484	s.NextToken = &v
43485	return s
43486}
43487
43488type ListDetectMitigationActionsExecutionsInput struct {
43489	_ struct{} `type:"structure"`
43490
43491	// The end of the time period for which ML Detect mitigation actions executions
43492	// are returned.
43493	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp"`
43494
43495	// The maximum number of results to return at one time. The default is 25.
43496	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43497
43498	// The token for the next set of results.
43499	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43500
43501	// A filter to limit results to those found after the specified time. You must
43502	// specify either the startTime and endTime or the taskId, but not both.
43503	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp"`
43504
43505	// The unique identifier of the task.
43506	TaskId *string `location:"querystring" locationName:"taskId" min:"1" type:"string"`
43507
43508	// The name of the thing whose mitigation actions are listed.
43509	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
43510
43511	// The unique identifier of the violation.
43512	ViolationId *string `location:"querystring" locationName:"violationId" min:"1" type:"string"`
43513}
43514
43515// String returns the string representation
43516func (s ListDetectMitigationActionsExecutionsInput) String() string {
43517	return awsutil.Prettify(s)
43518}
43519
43520// GoString returns the string representation
43521func (s ListDetectMitigationActionsExecutionsInput) GoString() string {
43522	return s.String()
43523}
43524
43525// Validate inspects the fields of the type to determine if they are valid.
43526func (s *ListDetectMitigationActionsExecutionsInput) Validate() error {
43527	invalidParams := request.ErrInvalidParams{Context: "ListDetectMitigationActionsExecutionsInput"}
43528	if s.MaxResults != nil && *s.MaxResults < 1 {
43529		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43530	}
43531	if s.TaskId != nil && len(*s.TaskId) < 1 {
43532		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
43533	}
43534	if s.ThingName != nil && len(*s.ThingName) < 1 {
43535		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
43536	}
43537	if s.ViolationId != nil && len(*s.ViolationId) < 1 {
43538		invalidParams.Add(request.NewErrParamMinLen("ViolationId", 1))
43539	}
43540
43541	if invalidParams.Len() > 0 {
43542		return invalidParams
43543	}
43544	return nil
43545}
43546
43547// SetEndTime sets the EndTime field's value.
43548func (s *ListDetectMitigationActionsExecutionsInput) SetEndTime(v time.Time) *ListDetectMitigationActionsExecutionsInput {
43549	s.EndTime = &v
43550	return s
43551}
43552
43553// SetMaxResults sets the MaxResults field's value.
43554func (s *ListDetectMitigationActionsExecutionsInput) SetMaxResults(v int64) *ListDetectMitigationActionsExecutionsInput {
43555	s.MaxResults = &v
43556	return s
43557}
43558
43559// SetNextToken sets the NextToken field's value.
43560func (s *ListDetectMitigationActionsExecutionsInput) SetNextToken(v string) *ListDetectMitigationActionsExecutionsInput {
43561	s.NextToken = &v
43562	return s
43563}
43564
43565// SetStartTime sets the StartTime field's value.
43566func (s *ListDetectMitigationActionsExecutionsInput) SetStartTime(v time.Time) *ListDetectMitigationActionsExecutionsInput {
43567	s.StartTime = &v
43568	return s
43569}
43570
43571// SetTaskId sets the TaskId field's value.
43572func (s *ListDetectMitigationActionsExecutionsInput) SetTaskId(v string) *ListDetectMitigationActionsExecutionsInput {
43573	s.TaskId = &v
43574	return s
43575}
43576
43577// SetThingName sets the ThingName field's value.
43578func (s *ListDetectMitigationActionsExecutionsInput) SetThingName(v string) *ListDetectMitigationActionsExecutionsInput {
43579	s.ThingName = &v
43580	return s
43581}
43582
43583// SetViolationId sets the ViolationId field's value.
43584func (s *ListDetectMitigationActionsExecutionsInput) SetViolationId(v string) *ListDetectMitigationActionsExecutionsInput {
43585	s.ViolationId = &v
43586	return s
43587}
43588
43589type ListDetectMitigationActionsExecutionsOutput struct {
43590	_ struct{} `type:"structure"`
43591
43592	// List of actions executions.
43593	ActionsExecutions []*DetectMitigationActionExecution `locationName:"actionsExecutions" type:"list"`
43594
43595	// A token that can be used to retrieve the next set of results, or null if
43596	// there are no additional results.
43597	NextToken *string `locationName:"nextToken" type:"string"`
43598}
43599
43600// String returns the string representation
43601func (s ListDetectMitigationActionsExecutionsOutput) String() string {
43602	return awsutil.Prettify(s)
43603}
43604
43605// GoString returns the string representation
43606func (s ListDetectMitigationActionsExecutionsOutput) GoString() string {
43607	return s.String()
43608}
43609
43610// SetActionsExecutions sets the ActionsExecutions field's value.
43611func (s *ListDetectMitigationActionsExecutionsOutput) SetActionsExecutions(v []*DetectMitigationActionExecution) *ListDetectMitigationActionsExecutionsOutput {
43612	s.ActionsExecutions = v
43613	return s
43614}
43615
43616// SetNextToken sets the NextToken field's value.
43617func (s *ListDetectMitigationActionsExecutionsOutput) SetNextToken(v string) *ListDetectMitigationActionsExecutionsOutput {
43618	s.NextToken = &v
43619	return s
43620}
43621
43622type ListDetectMitigationActionsTasksInput struct {
43623	_ struct{} `type:"structure"`
43624
43625	// The end of the time period for which ML Detect mitigation actions tasks are
43626	// returned.
43627	//
43628	// EndTime is a required field
43629	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
43630
43631	// The maximum number of results to return at one time. The default is 25.
43632	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43633
43634	// The token for the next set of results.
43635	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43636
43637	// A filter to limit results to those found after the specified time. You must
43638	// specify either the startTime and endTime or the taskId, but not both.
43639	//
43640	// StartTime is a required field
43641	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
43642}
43643
43644// String returns the string representation
43645func (s ListDetectMitigationActionsTasksInput) String() string {
43646	return awsutil.Prettify(s)
43647}
43648
43649// GoString returns the string representation
43650func (s ListDetectMitigationActionsTasksInput) GoString() string {
43651	return s.String()
43652}
43653
43654// Validate inspects the fields of the type to determine if they are valid.
43655func (s *ListDetectMitigationActionsTasksInput) Validate() error {
43656	invalidParams := request.ErrInvalidParams{Context: "ListDetectMitigationActionsTasksInput"}
43657	if s.EndTime == nil {
43658		invalidParams.Add(request.NewErrParamRequired("EndTime"))
43659	}
43660	if s.MaxResults != nil && *s.MaxResults < 1 {
43661		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43662	}
43663	if s.StartTime == nil {
43664		invalidParams.Add(request.NewErrParamRequired("StartTime"))
43665	}
43666
43667	if invalidParams.Len() > 0 {
43668		return invalidParams
43669	}
43670	return nil
43671}
43672
43673// SetEndTime sets the EndTime field's value.
43674func (s *ListDetectMitigationActionsTasksInput) SetEndTime(v time.Time) *ListDetectMitigationActionsTasksInput {
43675	s.EndTime = &v
43676	return s
43677}
43678
43679// SetMaxResults sets the MaxResults field's value.
43680func (s *ListDetectMitigationActionsTasksInput) SetMaxResults(v int64) *ListDetectMitigationActionsTasksInput {
43681	s.MaxResults = &v
43682	return s
43683}
43684
43685// SetNextToken sets the NextToken field's value.
43686func (s *ListDetectMitigationActionsTasksInput) SetNextToken(v string) *ListDetectMitigationActionsTasksInput {
43687	s.NextToken = &v
43688	return s
43689}
43690
43691// SetStartTime sets the StartTime field's value.
43692func (s *ListDetectMitigationActionsTasksInput) SetStartTime(v time.Time) *ListDetectMitigationActionsTasksInput {
43693	s.StartTime = &v
43694	return s
43695}
43696
43697type ListDetectMitigationActionsTasksOutput struct {
43698	_ struct{} `type:"structure"`
43699
43700	// A token that can be used to retrieve the next set of results, or null if
43701	// there are no additional results.
43702	NextToken *string `locationName:"nextToken" type:"string"`
43703
43704	// The collection of ML Detect mitigation tasks that matched the filter criteria.
43705	Tasks []*DetectMitigationActionsTaskSummary `locationName:"tasks" type:"list"`
43706}
43707
43708// String returns the string representation
43709func (s ListDetectMitigationActionsTasksOutput) String() string {
43710	return awsutil.Prettify(s)
43711}
43712
43713// GoString returns the string representation
43714func (s ListDetectMitigationActionsTasksOutput) GoString() string {
43715	return s.String()
43716}
43717
43718// SetNextToken sets the NextToken field's value.
43719func (s *ListDetectMitigationActionsTasksOutput) SetNextToken(v string) *ListDetectMitigationActionsTasksOutput {
43720	s.NextToken = &v
43721	return s
43722}
43723
43724// SetTasks sets the Tasks field's value.
43725func (s *ListDetectMitigationActionsTasksOutput) SetTasks(v []*DetectMitigationActionsTaskSummary) *ListDetectMitigationActionsTasksOutput {
43726	s.Tasks = v
43727	return s
43728}
43729
43730type ListDimensionsInput struct {
43731	_ struct{} `type:"structure"`
43732
43733	// The maximum number of results to retrieve at one time.
43734	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43735
43736	// The token for the next set of results.
43737	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43738}
43739
43740// String returns the string representation
43741func (s ListDimensionsInput) String() string {
43742	return awsutil.Prettify(s)
43743}
43744
43745// GoString returns the string representation
43746func (s ListDimensionsInput) GoString() string {
43747	return s.String()
43748}
43749
43750// Validate inspects the fields of the type to determine if they are valid.
43751func (s *ListDimensionsInput) Validate() error {
43752	invalidParams := request.ErrInvalidParams{Context: "ListDimensionsInput"}
43753	if s.MaxResults != nil && *s.MaxResults < 1 {
43754		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43755	}
43756
43757	if invalidParams.Len() > 0 {
43758		return invalidParams
43759	}
43760	return nil
43761}
43762
43763// SetMaxResults sets the MaxResults field's value.
43764func (s *ListDimensionsInput) SetMaxResults(v int64) *ListDimensionsInput {
43765	s.MaxResults = &v
43766	return s
43767}
43768
43769// SetNextToken sets the NextToken field's value.
43770func (s *ListDimensionsInput) SetNextToken(v string) *ListDimensionsInput {
43771	s.NextToken = &v
43772	return s
43773}
43774
43775type ListDimensionsOutput struct {
43776	_ struct{} `type:"structure"`
43777
43778	// A list of the names of the defined dimensions. Use DescribeDimension to get
43779	// details for a dimension.
43780	DimensionNames []*string `locationName:"dimensionNames" type:"list"`
43781
43782	// A token that can be used to retrieve the next set of results, or null if
43783	// there are no additional results.
43784	NextToken *string `locationName:"nextToken" type:"string"`
43785}
43786
43787// String returns the string representation
43788func (s ListDimensionsOutput) String() string {
43789	return awsutil.Prettify(s)
43790}
43791
43792// GoString returns the string representation
43793func (s ListDimensionsOutput) GoString() string {
43794	return s.String()
43795}
43796
43797// SetDimensionNames sets the DimensionNames field's value.
43798func (s *ListDimensionsOutput) SetDimensionNames(v []*string) *ListDimensionsOutput {
43799	s.DimensionNames = v
43800	return s
43801}
43802
43803// SetNextToken sets the NextToken field's value.
43804func (s *ListDimensionsOutput) SetNextToken(v string) *ListDimensionsOutput {
43805	s.NextToken = &v
43806	return s
43807}
43808
43809type ListDomainConfigurationsInput struct {
43810	_ struct{} `type:"structure"`
43811
43812	// The marker for the next set of results.
43813	Marker *string `location:"querystring" locationName:"marker" type:"string"`
43814
43815	// The result page size.
43816	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
43817
43818	// The type of service delivered by the endpoint.
43819	ServiceType *string `location:"querystring" locationName:"serviceType" type:"string" enum:"ServiceType"`
43820}
43821
43822// String returns the string representation
43823func (s ListDomainConfigurationsInput) String() string {
43824	return awsutil.Prettify(s)
43825}
43826
43827// GoString returns the string representation
43828func (s ListDomainConfigurationsInput) GoString() string {
43829	return s.String()
43830}
43831
43832// Validate inspects the fields of the type to determine if they are valid.
43833func (s *ListDomainConfigurationsInput) Validate() error {
43834	invalidParams := request.ErrInvalidParams{Context: "ListDomainConfigurationsInput"}
43835	if s.PageSize != nil && *s.PageSize < 1 {
43836		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
43837	}
43838
43839	if invalidParams.Len() > 0 {
43840		return invalidParams
43841	}
43842	return nil
43843}
43844
43845// SetMarker sets the Marker field's value.
43846func (s *ListDomainConfigurationsInput) SetMarker(v string) *ListDomainConfigurationsInput {
43847	s.Marker = &v
43848	return s
43849}
43850
43851// SetPageSize sets the PageSize field's value.
43852func (s *ListDomainConfigurationsInput) SetPageSize(v int64) *ListDomainConfigurationsInput {
43853	s.PageSize = &v
43854	return s
43855}
43856
43857// SetServiceType sets the ServiceType field's value.
43858func (s *ListDomainConfigurationsInput) SetServiceType(v string) *ListDomainConfigurationsInput {
43859	s.ServiceType = &v
43860	return s
43861}
43862
43863type ListDomainConfigurationsOutput struct {
43864	_ struct{} `type:"structure"`
43865
43866	// A list of objects that contain summary information about the user's domain
43867	// configurations.
43868	DomainConfigurations []*DomainConfigurationSummary `locationName:"domainConfigurations" type:"list"`
43869
43870	// The marker for the next set of results.
43871	NextMarker *string `locationName:"nextMarker" type:"string"`
43872}
43873
43874// String returns the string representation
43875func (s ListDomainConfigurationsOutput) String() string {
43876	return awsutil.Prettify(s)
43877}
43878
43879// GoString returns the string representation
43880func (s ListDomainConfigurationsOutput) GoString() string {
43881	return s.String()
43882}
43883
43884// SetDomainConfigurations sets the DomainConfigurations field's value.
43885func (s *ListDomainConfigurationsOutput) SetDomainConfigurations(v []*DomainConfigurationSummary) *ListDomainConfigurationsOutput {
43886	s.DomainConfigurations = v
43887	return s
43888}
43889
43890// SetNextMarker sets the NextMarker field's value.
43891func (s *ListDomainConfigurationsOutput) SetNextMarker(v string) *ListDomainConfigurationsOutput {
43892	s.NextMarker = &v
43893	return s
43894}
43895
43896type ListIndicesInput struct {
43897	_ struct{} `type:"structure"`
43898
43899	// The maximum number of results to return at one time.
43900	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43901
43902	// The token used to get the next set of results, or null if there are no additional
43903	// results.
43904	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43905}
43906
43907// String returns the string representation
43908func (s ListIndicesInput) String() string {
43909	return awsutil.Prettify(s)
43910}
43911
43912// GoString returns the string representation
43913func (s ListIndicesInput) GoString() string {
43914	return s.String()
43915}
43916
43917// Validate inspects the fields of the type to determine if they are valid.
43918func (s *ListIndicesInput) Validate() error {
43919	invalidParams := request.ErrInvalidParams{Context: "ListIndicesInput"}
43920	if s.MaxResults != nil && *s.MaxResults < 1 {
43921		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43922	}
43923
43924	if invalidParams.Len() > 0 {
43925		return invalidParams
43926	}
43927	return nil
43928}
43929
43930// SetMaxResults sets the MaxResults field's value.
43931func (s *ListIndicesInput) SetMaxResults(v int64) *ListIndicesInput {
43932	s.MaxResults = &v
43933	return s
43934}
43935
43936// SetNextToken sets the NextToken field's value.
43937func (s *ListIndicesInput) SetNextToken(v string) *ListIndicesInput {
43938	s.NextToken = &v
43939	return s
43940}
43941
43942type ListIndicesOutput struct {
43943	_ struct{} `type:"structure"`
43944
43945	// The index names.
43946	IndexNames []*string `locationName:"indexNames" type:"list"`
43947
43948	// The token used to get the next set of results, or null if there are no additional
43949	// results.
43950	NextToken *string `locationName:"nextToken" type:"string"`
43951}
43952
43953// String returns the string representation
43954func (s ListIndicesOutput) String() string {
43955	return awsutil.Prettify(s)
43956}
43957
43958// GoString returns the string representation
43959func (s ListIndicesOutput) GoString() string {
43960	return s.String()
43961}
43962
43963// SetIndexNames sets the IndexNames field's value.
43964func (s *ListIndicesOutput) SetIndexNames(v []*string) *ListIndicesOutput {
43965	s.IndexNames = v
43966	return s
43967}
43968
43969// SetNextToken sets the NextToken field's value.
43970func (s *ListIndicesOutput) SetNextToken(v string) *ListIndicesOutput {
43971	s.NextToken = &v
43972	return s
43973}
43974
43975type ListJobExecutionsForJobInput struct {
43976	_ struct{} `type:"structure"`
43977
43978	// The unique identifier you assigned to this job when it was created.
43979	//
43980	// JobId is a required field
43981	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
43982
43983	// The maximum number of results to be returned per request.
43984	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43985
43986	// The token to retrieve the next set of results.
43987	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43988
43989	// The status of the job.
43990	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
43991}
43992
43993// String returns the string representation
43994func (s ListJobExecutionsForJobInput) String() string {
43995	return awsutil.Prettify(s)
43996}
43997
43998// GoString returns the string representation
43999func (s ListJobExecutionsForJobInput) GoString() string {
44000	return s.String()
44001}
44002
44003// Validate inspects the fields of the type to determine if they are valid.
44004func (s *ListJobExecutionsForJobInput) Validate() error {
44005	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForJobInput"}
44006	if s.JobId == nil {
44007		invalidParams.Add(request.NewErrParamRequired("JobId"))
44008	}
44009	if s.JobId != nil && len(*s.JobId) < 1 {
44010		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
44011	}
44012	if s.MaxResults != nil && *s.MaxResults < 1 {
44013		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44014	}
44015
44016	if invalidParams.Len() > 0 {
44017		return invalidParams
44018	}
44019	return nil
44020}
44021
44022// SetJobId sets the JobId field's value.
44023func (s *ListJobExecutionsForJobInput) SetJobId(v string) *ListJobExecutionsForJobInput {
44024	s.JobId = &v
44025	return s
44026}
44027
44028// SetMaxResults sets the MaxResults field's value.
44029func (s *ListJobExecutionsForJobInput) SetMaxResults(v int64) *ListJobExecutionsForJobInput {
44030	s.MaxResults = &v
44031	return s
44032}
44033
44034// SetNextToken sets the NextToken field's value.
44035func (s *ListJobExecutionsForJobInput) SetNextToken(v string) *ListJobExecutionsForJobInput {
44036	s.NextToken = &v
44037	return s
44038}
44039
44040// SetStatus sets the Status field's value.
44041func (s *ListJobExecutionsForJobInput) SetStatus(v string) *ListJobExecutionsForJobInput {
44042	s.Status = &v
44043	return s
44044}
44045
44046type ListJobExecutionsForJobOutput struct {
44047	_ struct{} `type:"structure"`
44048
44049	// A list of job execution summaries.
44050	ExecutionSummaries []*JobExecutionSummaryForJob `locationName:"executionSummaries" type:"list"`
44051
44052	// The token for the next set of results, or null if there are no additional
44053	// results.
44054	NextToken *string `locationName:"nextToken" type:"string"`
44055}
44056
44057// String returns the string representation
44058func (s ListJobExecutionsForJobOutput) String() string {
44059	return awsutil.Prettify(s)
44060}
44061
44062// GoString returns the string representation
44063func (s ListJobExecutionsForJobOutput) GoString() string {
44064	return s.String()
44065}
44066
44067// SetExecutionSummaries sets the ExecutionSummaries field's value.
44068func (s *ListJobExecutionsForJobOutput) SetExecutionSummaries(v []*JobExecutionSummaryForJob) *ListJobExecutionsForJobOutput {
44069	s.ExecutionSummaries = v
44070	return s
44071}
44072
44073// SetNextToken sets the NextToken field's value.
44074func (s *ListJobExecutionsForJobOutput) SetNextToken(v string) *ListJobExecutionsForJobOutput {
44075	s.NextToken = &v
44076	return s
44077}
44078
44079type ListJobExecutionsForThingInput struct {
44080	_ struct{} `type:"structure"`
44081
44082	// The maximum number of results to be returned per request.
44083	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44084
44085	// The namespace used to indicate that a job is a customer-managed job.
44086	//
44087	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
44088	// to MQTT topics that contain the value in the following format.
44089	//
44090	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
44091	//
44092	// The namespaceId feature is in public preview.
44093	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
44094
44095	// The token to retrieve the next set of results.
44096	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44097
44098	// An optional filter that lets you search for jobs that have the specified
44099	// status.
44100	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
44101
44102	// The thing name.
44103	//
44104	// ThingName is a required field
44105	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
44106}
44107
44108// String returns the string representation
44109func (s ListJobExecutionsForThingInput) String() string {
44110	return awsutil.Prettify(s)
44111}
44112
44113// GoString returns the string representation
44114func (s ListJobExecutionsForThingInput) GoString() string {
44115	return s.String()
44116}
44117
44118// Validate inspects the fields of the type to determine if they are valid.
44119func (s *ListJobExecutionsForThingInput) Validate() error {
44120	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForThingInput"}
44121	if s.MaxResults != nil && *s.MaxResults < 1 {
44122		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44123	}
44124	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
44125		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
44126	}
44127	if s.ThingName == nil {
44128		invalidParams.Add(request.NewErrParamRequired("ThingName"))
44129	}
44130	if s.ThingName != nil && len(*s.ThingName) < 1 {
44131		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
44132	}
44133
44134	if invalidParams.Len() > 0 {
44135		return invalidParams
44136	}
44137	return nil
44138}
44139
44140// SetMaxResults sets the MaxResults field's value.
44141func (s *ListJobExecutionsForThingInput) SetMaxResults(v int64) *ListJobExecutionsForThingInput {
44142	s.MaxResults = &v
44143	return s
44144}
44145
44146// SetNamespaceId sets the NamespaceId field's value.
44147func (s *ListJobExecutionsForThingInput) SetNamespaceId(v string) *ListJobExecutionsForThingInput {
44148	s.NamespaceId = &v
44149	return s
44150}
44151
44152// SetNextToken sets the NextToken field's value.
44153func (s *ListJobExecutionsForThingInput) SetNextToken(v string) *ListJobExecutionsForThingInput {
44154	s.NextToken = &v
44155	return s
44156}
44157
44158// SetStatus sets the Status field's value.
44159func (s *ListJobExecutionsForThingInput) SetStatus(v string) *ListJobExecutionsForThingInput {
44160	s.Status = &v
44161	return s
44162}
44163
44164// SetThingName sets the ThingName field's value.
44165func (s *ListJobExecutionsForThingInput) SetThingName(v string) *ListJobExecutionsForThingInput {
44166	s.ThingName = &v
44167	return s
44168}
44169
44170type ListJobExecutionsForThingOutput struct {
44171	_ struct{} `type:"structure"`
44172
44173	// A list of job execution summaries.
44174	ExecutionSummaries []*JobExecutionSummaryForThing `locationName:"executionSummaries" type:"list"`
44175
44176	// The token for the next set of results, or null if there are no additional
44177	// results.
44178	NextToken *string `locationName:"nextToken" type:"string"`
44179}
44180
44181// String returns the string representation
44182func (s ListJobExecutionsForThingOutput) String() string {
44183	return awsutil.Prettify(s)
44184}
44185
44186// GoString returns the string representation
44187func (s ListJobExecutionsForThingOutput) GoString() string {
44188	return s.String()
44189}
44190
44191// SetExecutionSummaries sets the ExecutionSummaries field's value.
44192func (s *ListJobExecutionsForThingOutput) SetExecutionSummaries(v []*JobExecutionSummaryForThing) *ListJobExecutionsForThingOutput {
44193	s.ExecutionSummaries = v
44194	return s
44195}
44196
44197// SetNextToken sets the NextToken field's value.
44198func (s *ListJobExecutionsForThingOutput) SetNextToken(v string) *ListJobExecutionsForThingOutput {
44199	s.NextToken = &v
44200	return s
44201}
44202
44203type ListJobTemplatesInput struct {
44204	_ struct{} `type:"structure"`
44205
44206	// The maximum number of results to return in the list.
44207	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44208
44209	// The token to use to return the next set of results in the list.
44210	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44211}
44212
44213// String returns the string representation
44214func (s ListJobTemplatesInput) String() string {
44215	return awsutil.Prettify(s)
44216}
44217
44218// GoString returns the string representation
44219func (s ListJobTemplatesInput) GoString() string {
44220	return s.String()
44221}
44222
44223// Validate inspects the fields of the type to determine if they are valid.
44224func (s *ListJobTemplatesInput) Validate() error {
44225	invalidParams := request.ErrInvalidParams{Context: "ListJobTemplatesInput"}
44226	if s.MaxResults != nil && *s.MaxResults < 1 {
44227		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44228	}
44229
44230	if invalidParams.Len() > 0 {
44231		return invalidParams
44232	}
44233	return nil
44234}
44235
44236// SetMaxResults sets the MaxResults field's value.
44237func (s *ListJobTemplatesInput) SetMaxResults(v int64) *ListJobTemplatesInput {
44238	s.MaxResults = &v
44239	return s
44240}
44241
44242// SetNextToken sets the NextToken field's value.
44243func (s *ListJobTemplatesInput) SetNextToken(v string) *ListJobTemplatesInput {
44244	s.NextToken = &v
44245	return s
44246}
44247
44248type ListJobTemplatesOutput struct {
44249	_ struct{} `type:"structure"`
44250
44251	// A list of objects that contain information about the job templates.
44252	JobTemplates []*JobTemplateSummary `locationName:"jobTemplates" type:"list"`
44253
44254	// The token for the next set of results, or null if there are no additional
44255	// results.
44256	NextToken *string `locationName:"nextToken" type:"string"`
44257}
44258
44259// String returns the string representation
44260func (s ListJobTemplatesOutput) String() string {
44261	return awsutil.Prettify(s)
44262}
44263
44264// GoString returns the string representation
44265func (s ListJobTemplatesOutput) GoString() string {
44266	return s.String()
44267}
44268
44269// SetJobTemplates sets the JobTemplates field's value.
44270func (s *ListJobTemplatesOutput) SetJobTemplates(v []*JobTemplateSummary) *ListJobTemplatesOutput {
44271	s.JobTemplates = v
44272	return s
44273}
44274
44275// SetNextToken sets the NextToken field's value.
44276func (s *ListJobTemplatesOutput) SetNextToken(v string) *ListJobTemplatesOutput {
44277	s.NextToken = &v
44278	return s
44279}
44280
44281type ListJobsInput struct {
44282	_ struct{} `type:"structure"`
44283
44284	// The maximum number of results to return per request.
44285	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44286
44287	// The namespace used to indicate that a job is a customer-managed job.
44288	//
44289	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
44290	// to MQTT topics that contain the value in the following format.
44291	//
44292	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
44293	//
44294	// The namespaceId feature is in public preview.
44295	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
44296
44297	// The token to retrieve the next set of results.
44298	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44299
44300	// An optional filter that lets you search for jobs that have the specified
44301	// status.
44302	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobStatus"`
44303
44304	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
44305	// after all those things specified as targets have completed the job (SNAPSHOT).
44306	// If continuous, the job may also be run on a thing when a change is detected
44307	// in a target. For example, a job will run on a thing when the thing is added
44308	// to a target group, even after the job was completed by all things originally
44309	// in the group.
44310	TargetSelection *string `location:"querystring" locationName:"targetSelection" type:"string" enum:"TargetSelection"`
44311
44312	// A filter that limits the returned jobs to those for the specified group.
44313	ThingGroupId *string `location:"querystring" locationName:"thingGroupId" min:"1" type:"string"`
44314
44315	// A filter that limits the returned jobs to those for the specified group.
44316	ThingGroupName *string `location:"querystring" locationName:"thingGroupName" min:"1" type:"string"`
44317}
44318
44319// String returns the string representation
44320func (s ListJobsInput) String() string {
44321	return awsutil.Prettify(s)
44322}
44323
44324// GoString returns the string representation
44325func (s ListJobsInput) GoString() string {
44326	return s.String()
44327}
44328
44329// Validate inspects the fields of the type to determine if they are valid.
44330func (s *ListJobsInput) Validate() error {
44331	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
44332	if s.MaxResults != nil && *s.MaxResults < 1 {
44333		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44334	}
44335	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
44336		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
44337	}
44338	if s.ThingGroupId != nil && len(*s.ThingGroupId) < 1 {
44339		invalidParams.Add(request.NewErrParamMinLen("ThingGroupId", 1))
44340	}
44341	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
44342		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
44343	}
44344
44345	if invalidParams.Len() > 0 {
44346		return invalidParams
44347	}
44348	return nil
44349}
44350
44351// SetMaxResults sets the MaxResults field's value.
44352func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
44353	s.MaxResults = &v
44354	return s
44355}
44356
44357// SetNamespaceId sets the NamespaceId field's value.
44358func (s *ListJobsInput) SetNamespaceId(v string) *ListJobsInput {
44359	s.NamespaceId = &v
44360	return s
44361}
44362
44363// SetNextToken sets the NextToken field's value.
44364func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
44365	s.NextToken = &v
44366	return s
44367}
44368
44369// SetStatus sets the Status field's value.
44370func (s *ListJobsInput) SetStatus(v string) *ListJobsInput {
44371	s.Status = &v
44372	return s
44373}
44374
44375// SetTargetSelection sets the TargetSelection field's value.
44376func (s *ListJobsInput) SetTargetSelection(v string) *ListJobsInput {
44377	s.TargetSelection = &v
44378	return s
44379}
44380
44381// SetThingGroupId sets the ThingGroupId field's value.
44382func (s *ListJobsInput) SetThingGroupId(v string) *ListJobsInput {
44383	s.ThingGroupId = &v
44384	return s
44385}
44386
44387// SetThingGroupName sets the ThingGroupName field's value.
44388func (s *ListJobsInput) SetThingGroupName(v string) *ListJobsInput {
44389	s.ThingGroupName = &v
44390	return s
44391}
44392
44393type ListJobsOutput struct {
44394	_ struct{} `type:"structure"`
44395
44396	// A list of jobs.
44397	Jobs []*JobSummary `locationName:"jobs" type:"list"`
44398
44399	// The token for the next set of results, or null if there are no additional
44400	// results.
44401	NextToken *string `locationName:"nextToken" type:"string"`
44402}
44403
44404// String returns the string representation
44405func (s ListJobsOutput) String() string {
44406	return awsutil.Prettify(s)
44407}
44408
44409// GoString returns the string representation
44410func (s ListJobsOutput) GoString() string {
44411	return s.String()
44412}
44413
44414// SetJobs sets the Jobs field's value.
44415func (s *ListJobsOutput) SetJobs(v []*JobSummary) *ListJobsOutput {
44416	s.Jobs = v
44417	return s
44418}
44419
44420// SetNextToken sets the NextToken field's value.
44421func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
44422	s.NextToken = &v
44423	return s
44424}
44425
44426type ListMitigationActionsInput struct {
44427	_ struct{} `type:"structure"`
44428
44429	// Specify a value to limit the result to mitigation actions with a specific
44430	// action type.
44431	ActionType *string `location:"querystring" locationName:"actionType" type:"string" enum:"MitigationActionType"`
44432
44433	// The maximum number of results to return at one time. The default is 25.
44434	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44435
44436	// The token for the next set of results.
44437	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44438}
44439
44440// String returns the string representation
44441func (s ListMitigationActionsInput) String() string {
44442	return awsutil.Prettify(s)
44443}
44444
44445// GoString returns the string representation
44446func (s ListMitigationActionsInput) GoString() string {
44447	return s.String()
44448}
44449
44450// Validate inspects the fields of the type to determine if they are valid.
44451func (s *ListMitigationActionsInput) Validate() error {
44452	invalidParams := request.ErrInvalidParams{Context: "ListMitigationActionsInput"}
44453	if s.MaxResults != nil && *s.MaxResults < 1 {
44454		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44455	}
44456
44457	if invalidParams.Len() > 0 {
44458		return invalidParams
44459	}
44460	return nil
44461}
44462
44463// SetActionType sets the ActionType field's value.
44464func (s *ListMitigationActionsInput) SetActionType(v string) *ListMitigationActionsInput {
44465	s.ActionType = &v
44466	return s
44467}
44468
44469// SetMaxResults sets the MaxResults field's value.
44470func (s *ListMitigationActionsInput) SetMaxResults(v int64) *ListMitigationActionsInput {
44471	s.MaxResults = &v
44472	return s
44473}
44474
44475// SetNextToken sets the NextToken field's value.
44476func (s *ListMitigationActionsInput) SetNextToken(v string) *ListMitigationActionsInput {
44477	s.NextToken = &v
44478	return s
44479}
44480
44481type ListMitigationActionsOutput struct {
44482	_ struct{} `type:"structure"`
44483
44484	// A set of actions that matched the specified filter criteria.
44485	ActionIdentifiers []*MitigationActionIdentifier `locationName:"actionIdentifiers" type:"list"`
44486
44487	// The token for the next set of results.
44488	NextToken *string `locationName:"nextToken" type:"string"`
44489}
44490
44491// String returns the string representation
44492func (s ListMitigationActionsOutput) String() string {
44493	return awsutil.Prettify(s)
44494}
44495
44496// GoString returns the string representation
44497func (s ListMitigationActionsOutput) GoString() string {
44498	return s.String()
44499}
44500
44501// SetActionIdentifiers sets the ActionIdentifiers field's value.
44502func (s *ListMitigationActionsOutput) SetActionIdentifiers(v []*MitigationActionIdentifier) *ListMitigationActionsOutput {
44503	s.ActionIdentifiers = v
44504	return s
44505}
44506
44507// SetNextToken sets the NextToken field's value.
44508func (s *ListMitigationActionsOutput) SetNextToken(v string) *ListMitigationActionsOutput {
44509	s.NextToken = &v
44510	return s
44511}
44512
44513type ListOTAUpdatesInput struct {
44514	_ struct{} `type:"structure"`
44515
44516	// The maximum number of results to return at one time.
44517	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44518
44519	// A token used to retrieve the next set of results.
44520	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44521
44522	// The OTA update job status.
44523	OtaUpdateStatus *string `location:"querystring" locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
44524}
44525
44526// String returns the string representation
44527func (s ListOTAUpdatesInput) String() string {
44528	return awsutil.Prettify(s)
44529}
44530
44531// GoString returns the string representation
44532func (s ListOTAUpdatesInput) GoString() string {
44533	return s.String()
44534}
44535
44536// Validate inspects the fields of the type to determine if they are valid.
44537func (s *ListOTAUpdatesInput) Validate() error {
44538	invalidParams := request.ErrInvalidParams{Context: "ListOTAUpdatesInput"}
44539	if s.MaxResults != nil && *s.MaxResults < 1 {
44540		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44541	}
44542
44543	if invalidParams.Len() > 0 {
44544		return invalidParams
44545	}
44546	return nil
44547}
44548
44549// SetMaxResults sets the MaxResults field's value.
44550func (s *ListOTAUpdatesInput) SetMaxResults(v int64) *ListOTAUpdatesInput {
44551	s.MaxResults = &v
44552	return s
44553}
44554
44555// SetNextToken sets the NextToken field's value.
44556func (s *ListOTAUpdatesInput) SetNextToken(v string) *ListOTAUpdatesInput {
44557	s.NextToken = &v
44558	return s
44559}
44560
44561// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
44562func (s *ListOTAUpdatesInput) SetOtaUpdateStatus(v string) *ListOTAUpdatesInput {
44563	s.OtaUpdateStatus = &v
44564	return s
44565}
44566
44567type ListOTAUpdatesOutput struct {
44568	_ struct{} `type:"structure"`
44569
44570	// A token to use to get the next set of results.
44571	NextToken *string `locationName:"nextToken" type:"string"`
44572
44573	// A list of OTA update jobs.
44574	OtaUpdates []*OTAUpdateSummary `locationName:"otaUpdates" type:"list"`
44575}
44576
44577// String returns the string representation
44578func (s ListOTAUpdatesOutput) String() string {
44579	return awsutil.Prettify(s)
44580}
44581
44582// GoString returns the string representation
44583func (s ListOTAUpdatesOutput) GoString() string {
44584	return s.String()
44585}
44586
44587// SetNextToken sets the NextToken field's value.
44588func (s *ListOTAUpdatesOutput) SetNextToken(v string) *ListOTAUpdatesOutput {
44589	s.NextToken = &v
44590	return s
44591}
44592
44593// SetOtaUpdates sets the OtaUpdates field's value.
44594func (s *ListOTAUpdatesOutput) SetOtaUpdates(v []*OTAUpdateSummary) *ListOTAUpdatesOutput {
44595	s.OtaUpdates = v
44596	return s
44597}
44598
44599// The input to the ListOutgoingCertificates operation.
44600type ListOutgoingCertificatesInput struct {
44601	_ struct{} `type:"structure"`
44602
44603	// Specifies the order for results. If True, the results are returned in ascending
44604	// order, based on the creation date.
44605	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
44606
44607	// The marker for the next set of results.
44608	Marker *string `location:"querystring" locationName:"marker" type:"string"`
44609
44610	// The result page size.
44611	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
44612}
44613
44614// String returns the string representation
44615func (s ListOutgoingCertificatesInput) String() string {
44616	return awsutil.Prettify(s)
44617}
44618
44619// GoString returns the string representation
44620func (s ListOutgoingCertificatesInput) GoString() string {
44621	return s.String()
44622}
44623
44624// Validate inspects the fields of the type to determine if they are valid.
44625func (s *ListOutgoingCertificatesInput) Validate() error {
44626	invalidParams := request.ErrInvalidParams{Context: "ListOutgoingCertificatesInput"}
44627	if s.PageSize != nil && *s.PageSize < 1 {
44628		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
44629	}
44630
44631	if invalidParams.Len() > 0 {
44632		return invalidParams
44633	}
44634	return nil
44635}
44636
44637// SetAscendingOrder sets the AscendingOrder field's value.
44638func (s *ListOutgoingCertificatesInput) SetAscendingOrder(v bool) *ListOutgoingCertificatesInput {
44639	s.AscendingOrder = &v
44640	return s
44641}
44642
44643// SetMarker sets the Marker field's value.
44644func (s *ListOutgoingCertificatesInput) SetMarker(v string) *ListOutgoingCertificatesInput {
44645	s.Marker = &v
44646	return s
44647}
44648
44649// SetPageSize sets the PageSize field's value.
44650func (s *ListOutgoingCertificatesInput) SetPageSize(v int64) *ListOutgoingCertificatesInput {
44651	s.PageSize = &v
44652	return s
44653}
44654
44655// The output from the ListOutgoingCertificates operation.
44656type ListOutgoingCertificatesOutput struct {
44657	_ struct{} `type:"structure"`
44658
44659	// The marker for the next set of results.
44660	NextMarker *string `locationName:"nextMarker" type:"string"`
44661
44662	// The certificates that are being transferred but not yet accepted.
44663	OutgoingCertificates []*OutgoingCertificate `locationName:"outgoingCertificates" type:"list"`
44664}
44665
44666// String returns the string representation
44667func (s ListOutgoingCertificatesOutput) String() string {
44668	return awsutil.Prettify(s)
44669}
44670
44671// GoString returns the string representation
44672func (s ListOutgoingCertificatesOutput) GoString() string {
44673	return s.String()
44674}
44675
44676// SetNextMarker sets the NextMarker field's value.
44677func (s *ListOutgoingCertificatesOutput) SetNextMarker(v string) *ListOutgoingCertificatesOutput {
44678	s.NextMarker = &v
44679	return s
44680}
44681
44682// SetOutgoingCertificates sets the OutgoingCertificates field's value.
44683func (s *ListOutgoingCertificatesOutput) SetOutgoingCertificates(v []*OutgoingCertificate) *ListOutgoingCertificatesOutput {
44684	s.OutgoingCertificates = v
44685	return s
44686}
44687
44688// The input for the ListPolicies operation.
44689type ListPoliciesInput struct {
44690	_ struct{} `type:"structure"`
44691
44692	// Specifies the order for results. If true, the results are returned in ascending
44693	// creation order.
44694	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
44695
44696	// The marker for the next set of results.
44697	Marker *string `location:"querystring" locationName:"marker" type:"string"`
44698
44699	// The result page size.
44700	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
44701}
44702
44703// String returns the string representation
44704func (s ListPoliciesInput) String() string {
44705	return awsutil.Prettify(s)
44706}
44707
44708// GoString returns the string representation
44709func (s ListPoliciesInput) GoString() string {
44710	return s.String()
44711}
44712
44713// Validate inspects the fields of the type to determine if they are valid.
44714func (s *ListPoliciesInput) Validate() error {
44715	invalidParams := request.ErrInvalidParams{Context: "ListPoliciesInput"}
44716	if s.PageSize != nil && *s.PageSize < 1 {
44717		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
44718	}
44719
44720	if invalidParams.Len() > 0 {
44721		return invalidParams
44722	}
44723	return nil
44724}
44725
44726// SetAscendingOrder sets the AscendingOrder field's value.
44727func (s *ListPoliciesInput) SetAscendingOrder(v bool) *ListPoliciesInput {
44728	s.AscendingOrder = &v
44729	return s
44730}
44731
44732// SetMarker sets the Marker field's value.
44733func (s *ListPoliciesInput) SetMarker(v string) *ListPoliciesInput {
44734	s.Marker = &v
44735	return s
44736}
44737
44738// SetPageSize sets the PageSize field's value.
44739func (s *ListPoliciesInput) SetPageSize(v int64) *ListPoliciesInput {
44740	s.PageSize = &v
44741	return s
44742}
44743
44744// The output from the ListPolicies operation.
44745type ListPoliciesOutput struct {
44746	_ struct{} `type:"structure"`
44747
44748	// The marker for the next set of results, or null if there are no additional
44749	// results.
44750	NextMarker *string `locationName:"nextMarker" type:"string"`
44751
44752	// The descriptions of the policies.
44753	Policies []*Policy `locationName:"policies" type:"list"`
44754}
44755
44756// String returns the string representation
44757func (s ListPoliciesOutput) String() string {
44758	return awsutil.Prettify(s)
44759}
44760
44761// GoString returns the string representation
44762func (s ListPoliciesOutput) GoString() string {
44763	return s.String()
44764}
44765
44766// SetNextMarker sets the NextMarker field's value.
44767func (s *ListPoliciesOutput) SetNextMarker(v string) *ListPoliciesOutput {
44768	s.NextMarker = &v
44769	return s
44770}
44771
44772// SetPolicies sets the Policies field's value.
44773func (s *ListPoliciesOutput) SetPolicies(v []*Policy) *ListPoliciesOutput {
44774	s.Policies = v
44775	return s
44776}
44777
44778// The input for the ListPolicyPrincipals operation.
44779type ListPolicyPrincipalsInput struct {
44780	_ struct{} `type:"structure"`
44781
44782	// Specifies the order for results. If true, the results are returned in ascending
44783	// creation order.
44784	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
44785
44786	// The marker for the next set of results.
44787	Marker *string `location:"querystring" locationName:"marker" type:"string"`
44788
44789	// The result page size.
44790	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
44791
44792	// The policy name.
44793	//
44794	// PolicyName is a required field
44795	PolicyName *string `location:"header" locationName:"x-amzn-iot-policy" min:"1" type:"string" required:"true"`
44796}
44797
44798// String returns the string representation
44799func (s ListPolicyPrincipalsInput) String() string {
44800	return awsutil.Prettify(s)
44801}
44802
44803// GoString returns the string representation
44804func (s ListPolicyPrincipalsInput) GoString() string {
44805	return s.String()
44806}
44807
44808// Validate inspects the fields of the type to determine if they are valid.
44809func (s *ListPolicyPrincipalsInput) Validate() error {
44810	invalidParams := request.ErrInvalidParams{Context: "ListPolicyPrincipalsInput"}
44811	if s.PageSize != nil && *s.PageSize < 1 {
44812		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
44813	}
44814	if s.PolicyName == nil {
44815		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
44816	}
44817	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
44818		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
44819	}
44820
44821	if invalidParams.Len() > 0 {
44822		return invalidParams
44823	}
44824	return nil
44825}
44826
44827// SetAscendingOrder sets the AscendingOrder field's value.
44828func (s *ListPolicyPrincipalsInput) SetAscendingOrder(v bool) *ListPolicyPrincipalsInput {
44829	s.AscendingOrder = &v
44830	return s
44831}
44832
44833// SetMarker sets the Marker field's value.
44834func (s *ListPolicyPrincipalsInput) SetMarker(v string) *ListPolicyPrincipalsInput {
44835	s.Marker = &v
44836	return s
44837}
44838
44839// SetPageSize sets the PageSize field's value.
44840func (s *ListPolicyPrincipalsInput) SetPageSize(v int64) *ListPolicyPrincipalsInput {
44841	s.PageSize = &v
44842	return s
44843}
44844
44845// SetPolicyName sets the PolicyName field's value.
44846func (s *ListPolicyPrincipalsInput) SetPolicyName(v string) *ListPolicyPrincipalsInput {
44847	s.PolicyName = &v
44848	return s
44849}
44850
44851// The output from the ListPolicyPrincipals operation.
44852type ListPolicyPrincipalsOutput struct {
44853	_ struct{} `type:"structure"`
44854
44855	// The marker for the next set of results, or null if there are no additional
44856	// results.
44857	NextMarker *string `locationName:"nextMarker" type:"string"`
44858
44859	// The descriptions of the principals.
44860	Principals []*string `locationName:"principals" type:"list"`
44861}
44862
44863// String returns the string representation
44864func (s ListPolicyPrincipalsOutput) String() string {
44865	return awsutil.Prettify(s)
44866}
44867
44868// GoString returns the string representation
44869func (s ListPolicyPrincipalsOutput) GoString() string {
44870	return s.String()
44871}
44872
44873// SetNextMarker sets the NextMarker field's value.
44874func (s *ListPolicyPrincipalsOutput) SetNextMarker(v string) *ListPolicyPrincipalsOutput {
44875	s.NextMarker = &v
44876	return s
44877}
44878
44879// SetPrincipals sets the Principals field's value.
44880func (s *ListPolicyPrincipalsOutput) SetPrincipals(v []*string) *ListPolicyPrincipalsOutput {
44881	s.Principals = v
44882	return s
44883}
44884
44885// The input for the ListPolicyVersions operation.
44886type ListPolicyVersionsInput struct {
44887	_ struct{} `type:"structure"`
44888
44889	// The policy name.
44890	//
44891	// PolicyName is a required field
44892	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
44893}
44894
44895// String returns the string representation
44896func (s ListPolicyVersionsInput) String() string {
44897	return awsutil.Prettify(s)
44898}
44899
44900// GoString returns the string representation
44901func (s ListPolicyVersionsInput) GoString() string {
44902	return s.String()
44903}
44904
44905// Validate inspects the fields of the type to determine if they are valid.
44906func (s *ListPolicyVersionsInput) Validate() error {
44907	invalidParams := request.ErrInvalidParams{Context: "ListPolicyVersionsInput"}
44908	if s.PolicyName == nil {
44909		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
44910	}
44911	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
44912		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
44913	}
44914
44915	if invalidParams.Len() > 0 {
44916		return invalidParams
44917	}
44918	return nil
44919}
44920
44921// SetPolicyName sets the PolicyName field's value.
44922func (s *ListPolicyVersionsInput) SetPolicyName(v string) *ListPolicyVersionsInput {
44923	s.PolicyName = &v
44924	return s
44925}
44926
44927// The output from the ListPolicyVersions operation.
44928type ListPolicyVersionsOutput struct {
44929	_ struct{} `type:"structure"`
44930
44931	// The policy versions.
44932	PolicyVersions []*PolicyVersion `locationName:"policyVersions" type:"list"`
44933}
44934
44935// String returns the string representation
44936func (s ListPolicyVersionsOutput) String() string {
44937	return awsutil.Prettify(s)
44938}
44939
44940// GoString returns the string representation
44941func (s ListPolicyVersionsOutput) GoString() string {
44942	return s.String()
44943}
44944
44945// SetPolicyVersions sets the PolicyVersions field's value.
44946func (s *ListPolicyVersionsOutput) SetPolicyVersions(v []*PolicyVersion) *ListPolicyVersionsOutput {
44947	s.PolicyVersions = v
44948	return s
44949}
44950
44951// The input for the ListPrincipalPolicies operation.
44952type ListPrincipalPoliciesInput struct {
44953	_ struct{} `type:"structure"`
44954
44955	// Specifies the order for results. If true, results are returned in ascending
44956	// creation order.
44957	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
44958
44959	// The marker for the next set of results.
44960	Marker *string `location:"querystring" locationName:"marker" type:"string"`
44961
44962	// The result page size.
44963	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
44964
44965	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
44966	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
44967	// (region:id).
44968	//
44969	// Principal is a required field
44970	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
44971}
44972
44973// String returns the string representation
44974func (s ListPrincipalPoliciesInput) String() string {
44975	return awsutil.Prettify(s)
44976}
44977
44978// GoString returns the string representation
44979func (s ListPrincipalPoliciesInput) GoString() string {
44980	return s.String()
44981}
44982
44983// Validate inspects the fields of the type to determine if they are valid.
44984func (s *ListPrincipalPoliciesInput) Validate() error {
44985	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalPoliciesInput"}
44986	if s.PageSize != nil && *s.PageSize < 1 {
44987		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
44988	}
44989	if s.Principal == nil {
44990		invalidParams.Add(request.NewErrParamRequired("Principal"))
44991	}
44992
44993	if invalidParams.Len() > 0 {
44994		return invalidParams
44995	}
44996	return nil
44997}
44998
44999// SetAscendingOrder sets the AscendingOrder field's value.
45000func (s *ListPrincipalPoliciesInput) SetAscendingOrder(v bool) *ListPrincipalPoliciesInput {
45001	s.AscendingOrder = &v
45002	return s
45003}
45004
45005// SetMarker sets the Marker field's value.
45006func (s *ListPrincipalPoliciesInput) SetMarker(v string) *ListPrincipalPoliciesInput {
45007	s.Marker = &v
45008	return s
45009}
45010
45011// SetPageSize sets the PageSize field's value.
45012func (s *ListPrincipalPoliciesInput) SetPageSize(v int64) *ListPrincipalPoliciesInput {
45013	s.PageSize = &v
45014	return s
45015}
45016
45017// SetPrincipal sets the Principal field's value.
45018func (s *ListPrincipalPoliciesInput) SetPrincipal(v string) *ListPrincipalPoliciesInput {
45019	s.Principal = &v
45020	return s
45021}
45022
45023// The output from the ListPrincipalPolicies operation.
45024type ListPrincipalPoliciesOutput struct {
45025	_ struct{} `type:"structure"`
45026
45027	// The marker for the next set of results, or null if there are no additional
45028	// results.
45029	NextMarker *string `locationName:"nextMarker" type:"string"`
45030
45031	// The policies.
45032	Policies []*Policy `locationName:"policies" type:"list"`
45033}
45034
45035// String returns the string representation
45036func (s ListPrincipalPoliciesOutput) String() string {
45037	return awsutil.Prettify(s)
45038}
45039
45040// GoString returns the string representation
45041func (s ListPrincipalPoliciesOutput) GoString() string {
45042	return s.String()
45043}
45044
45045// SetNextMarker sets the NextMarker field's value.
45046func (s *ListPrincipalPoliciesOutput) SetNextMarker(v string) *ListPrincipalPoliciesOutput {
45047	s.NextMarker = &v
45048	return s
45049}
45050
45051// SetPolicies sets the Policies field's value.
45052func (s *ListPrincipalPoliciesOutput) SetPolicies(v []*Policy) *ListPrincipalPoliciesOutput {
45053	s.Policies = v
45054	return s
45055}
45056
45057// The input for the ListPrincipalThings operation.
45058type ListPrincipalThingsInput struct {
45059	_ struct{} `type:"structure"`
45060
45061	// The maximum number of results to return in this operation.
45062	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45063
45064	// To retrieve the next set of results, the nextToken value from a previous
45065	// response; otherwise null to receive the first set of results.
45066	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45067
45068	// The principal.
45069	//
45070	// Principal is a required field
45071	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
45072}
45073
45074// String returns the string representation
45075func (s ListPrincipalThingsInput) String() string {
45076	return awsutil.Prettify(s)
45077}
45078
45079// GoString returns the string representation
45080func (s ListPrincipalThingsInput) GoString() string {
45081	return s.String()
45082}
45083
45084// Validate inspects the fields of the type to determine if they are valid.
45085func (s *ListPrincipalThingsInput) Validate() error {
45086	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalThingsInput"}
45087	if s.MaxResults != nil && *s.MaxResults < 1 {
45088		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45089	}
45090	if s.Principal == nil {
45091		invalidParams.Add(request.NewErrParamRequired("Principal"))
45092	}
45093
45094	if invalidParams.Len() > 0 {
45095		return invalidParams
45096	}
45097	return nil
45098}
45099
45100// SetMaxResults sets the MaxResults field's value.
45101func (s *ListPrincipalThingsInput) SetMaxResults(v int64) *ListPrincipalThingsInput {
45102	s.MaxResults = &v
45103	return s
45104}
45105
45106// SetNextToken sets the NextToken field's value.
45107func (s *ListPrincipalThingsInput) SetNextToken(v string) *ListPrincipalThingsInput {
45108	s.NextToken = &v
45109	return s
45110}
45111
45112// SetPrincipal sets the Principal field's value.
45113func (s *ListPrincipalThingsInput) SetPrincipal(v string) *ListPrincipalThingsInput {
45114	s.Principal = &v
45115	return s
45116}
45117
45118// The output from the ListPrincipalThings operation.
45119type ListPrincipalThingsOutput struct {
45120	_ struct{} `type:"structure"`
45121
45122	// The token to use to get the next set of results, or null if there are no
45123	// additional results.
45124	NextToken *string `locationName:"nextToken" type:"string"`
45125
45126	// The things.
45127	Things []*string `locationName:"things" type:"list"`
45128}
45129
45130// String returns the string representation
45131func (s ListPrincipalThingsOutput) String() string {
45132	return awsutil.Prettify(s)
45133}
45134
45135// GoString returns the string representation
45136func (s ListPrincipalThingsOutput) GoString() string {
45137	return s.String()
45138}
45139
45140// SetNextToken sets the NextToken field's value.
45141func (s *ListPrincipalThingsOutput) SetNextToken(v string) *ListPrincipalThingsOutput {
45142	s.NextToken = &v
45143	return s
45144}
45145
45146// SetThings sets the Things field's value.
45147func (s *ListPrincipalThingsOutput) SetThings(v []*string) *ListPrincipalThingsOutput {
45148	s.Things = v
45149	return s
45150}
45151
45152type ListProvisioningTemplateVersionsInput struct {
45153	_ struct{} `type:"structure"`
45154
45155	// The maximum number of results to return at one time.
45156	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45157
45158	// A token to retrieve the next set of results.
45159	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45160
45161	// The name of the fleet provisioning template.
45162	//
45163	// TemplateName is a required field
45164	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
45165}
45166
45167// String returns the string representation
45168func (s ListProvisioningTemplateVersionsInput) String() string {
45169	return awsutil.Prettify(s)
45170}
45171
45172// GoString returns the string representation
45173func (s ListProvisioningTemplateVersionsInput) GoString() string {
45174	return s.String()
45175}
45176
45177// Validate inspects the fields of the type to determine if they are valid.
45178func (s *ListProvisioningTemplateVersionsInput) Validate() error {
45179	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplateVersionsInput"}
45180	if s.MaxResults != nil && *s.MaxResults < 1 {
45181		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45182	}
45183	if s.TemplateName == nil {
45184		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
45185	}
45186	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
45187		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
45188	}
45189
45190	if invalidParams.Len() > 0 {
45191		return invalidParams
45192	}
45193	return nil
45194}
45195
45196// SetMaxResults sets the MaxResults field's value.
45197func (s *ListProvisioningTemplateVersionsInput) SetMaxResults(v int64) *ListProvisioningTemplateVersionsInput {
45198	s.MaxResults = &v
45199	return s
45200}
45201
45202// SetNextToken sets the NextToken field's value.
45203func (s *ListProvisioningTemplateVersionsInput) SetNextToken(v string) *ListProvisioningTemplateVersionsInput {
45204	s.NextToken = &v
45205	return s
45206}
45207
45208// SetTemplateName sets the TemplateName field's value.
45209func (s *ListProvisioningTemplateVersionsInput) SetTemplateName(v string) *ListProvisioningTemplateVersionsInput {
45210	s.TemplateName = &v
45211	return s
45212}
45213
45214type ListProvisioningTemplateVersionsOutput struct {
45215	_ struct{} `type:"structure"`
45216
45217	// A token to retrieve the next set of results.
45218	NextToken *string `locationName:"nextToken" type:"string"`
45219
45220	// The list of fleet provisioning template versions.
45221	Versions []*ProvisioningTemplateVersionSummary `locationName:"versions" type:"list"`
45222}
45223
45224// String returns the string representation
45225func (s ListProvisioningTemplateVersionsOutput) String() string {
45226	return awsutil.Prettify(s)
45227}
45228
45229// GoString returns the string representation
45230func (s ListProvisioningTemplateVersionsOutput) GoString() string {
45231	return s.String()
45232}
45233
45234// SetNextToken sets the NextToken field's value.
45235func (s *ListProvisioningTemplateVersionsOutput) SetNextToken(v string) *ListProvisioningTemplateVersionsOutput {
45236	s.NextToken = &v
45237	return s
45238}
45239
45240// SetVersions sets the Versions field's value.
45241func (s *ListProvisioningTemplateVersionsOutput) SetVersions(v []*ProvisioningTemplateVersionSummary) *ListProvisioningTemplateVersionsOutput {
45242	s.Versions = v
45243	return s
45244}
45245
45246type ListProvisioningTemplatesInput struct {
45247	_ struct{} `type:"structure"`
45248
45249	// The maximum number of results to return at one time.
45250	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45251
45252	// A token to retrieve the next set of results.
45253	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45254}
45255
45256// String returns the string representation
45257func (s ListProvisioningTemplatesInput) String() string {
45258	return awsutil.Prettify(s)
45259}
45260
45261// GoString returns the string representation
45262func (s ListProvisioningTemplatesInput) GoString() string {
45263	return s.String()
45264}
45265
45266// Validate inspects the fields of the type to determine if they are valid.
45267func (s *ListProvisioningTemplatesInput) Validate() error {
45268	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplatesInput"}
45269	if s.MaxResults != nil && *s.MaxResults < 1 {
45270		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45271	}
45272
45273	if invalidParams.Len() > 0 {
45274		return invalidParams
45275	}
45276	return nil
45277}
45278
45279// SetMaxResults sets the MaxResults field's value.
45280func (s *ListProvisioningTemplatesInput) SetMaxResults(v int64) *ListProvisioningTemplatesInput {
45281	s.MaxResults = &v
45282	return s
45283}
45284
45285// SetNextToken sets the NextToken field's value.
45286func (s *ListProvisioningTemplatesInput) SetNextToken(v string) *ListProvisioningTemplatesInput {
45287	s.NextToken = &v
45288	return s
45289}
45290
45291type ListProvisioningTemplatesOutput struct {
45292	_ struct{} `type:"structure"`
45293
45294	// A token to retrieve the next set of results.
45295	NextToken *string `locationName:"nextToken" type:"string"`
45296
45297	// A list of fleet provisioning templates
45298	Templates []*ProvisioningTemplateSummary `locationName:"templates" type:"list"`
45299}
45300
45301// String returns the string representation
45302func (s ListProvisioningTemplatesOutput) String() string {
45303	return awsutil.Prettify(s)
45304}
45305
45306// GoString returns the string representation
45307func (s ListProvisioningTemplatesOutput) GoString() string {
45308	return s.String()
45309}
45310
45311// SetNextToken sets the NextToken field's value.
45312func (s *ListProvisioningTemplatesOutput) SetNextToken(v string) *ListProvisioningTemplatesOutput {
45313	s.NextToken = &v
45314	return s
45315}
45316
45317// SetTemplates sets the Templates field's value.
45318func (s *ListProvisioningTemplatesOutput) SetTemplates(v []*ProvisioningTemplateSummary) *ListProvisioningTemplatesOutput {
45319	s.Templates = v
45320	return s
45321}
45322
45323type ListRoleAliasesInput struct {
45324	_ struct{} `type:"structure"`
45325
45326	// Return the list of role aliases in ascending alphabetical order.
45327	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
45328
45329	// A marker used to get the next set of results.
45330	Marker *string `location:"querystring" locationName:"marker" type:"string"`
45331
45332	// The maximum number of results to return at one time.
45333	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
45334}
45335
45336// String returns the string representation
45337func (s ListRoleAliasesInput) String() string {
45338	return awsutil.Prettify(s)
45339}
45340
45341// GoString returns the string representation
45342func (s ListRoleAliasesInput) GoString() string {
45343	return s.String()
45344}
45345
45346// Validate inspects the fields of the type to determine if they are valid.
45347func (s *ListRoleAliasesInput) Validate() error {
45348	invalidParams := request.ErrInvalidParams{Context: "ListRoleAliasesInput"}
45349	if s.PageSize != nil && *s.PageSize < 1 {
45350		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
45351	}
45352
45353	if invalidParams.Len() > 0 {
45354		return invalidParams
45355	}
45356	return nil
45357}
45358
45359// SetAscendingOrder sets the AscendingOrder field's value.
45360func (s *ListRoleAliasesInput) SetAscendingOrder(v bool) *ListRoleAliasesInput {
45361	s.AscendingOrder = &v
45362	return s
45363}
45364
45365// SetMarker sets the Marker field's value.
45366func (s *ListRoleAliasesInput) SetMarker(v string) *ListRoleAliasesInput {
45367	s.Marker = &v
45368	return s
45369}
45370
45371// SetPageSize sets the PageSize field's value.
45372func (s *ListRoleAliasesInput) SetPageSize(v int64) *ListRoleAliasesInput {
45373	s.PageSize = &v
45374	return s
45375}
45376
45377type ListRoleAliasesOutput struct {
45378	_ struct{} `type:"structure"`
45379
45380	// A marker used to get the next set of results.
45381	NextMarker *string `locationName:"nextMarker" type:"string"`
45382
45383	// The role aliases.
45384	RoleAliases []*string `locationName:"roleAliases" type:"list"`
45385}
45386
45387// String returns the string representation
45388func (s ListRoleAliasesOutput) String() string {
45389	return awsutil.Prettify(s)
45390}
45391
45392// GoString returns the string representation
45393func (s ListRoleAliasesOutput) GoString() string {
45394	return s.String()
45395}
45396
45397// SetNextMarker sets the NextMarker field's value.
45398func (s *ListRoleAliasesOutput) SetNextMarker(v string) *ListRoleAliasesOutput {
45399	s.NextMarker = &v
45400	return s
45401}
45402
45403// SetRoleAliases sets the RoleAliases field's value.
45404func (s *ListRoleAliasesOutput) SetRoleAliases(v []*string) *ListRoleAliasesOutput {
45405	s.RoleAliases = v
45406	return s
45407}
45408
45409type ListScheduledAuditsInput struct {
45410	_ struct{} `type:"structure"`
45411
45412	// The maximum number of results to return at one time. The default is 25.
45413	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45414
45415	// The token for the next set of results.
45416	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45417}
45418
45419// String returns the string representation
45420func (s ListScheduledAuditsInput) String() string {
45421	return awsutil.Prettify(s)
45422}
45423
45424// GoString returns the string representation
45425func (s ListScheduledAuditsInput) GoString() string {
45426	return s.String()
45427}
45428
45429// Validate inspects the fields of the type to determine if they are valid.
45430func (s *ListScheduledAuditsInput) Validate() error {
45431	invalidParams := request.ErrInvalidParams{Context: "ListScheduledAuditsInput"}
45432	if s.MaxResults != nil && *s.MaxResults < 1 {
45433		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45434	}
45435
45436	if invalidParams.Len() > 0 {
45437		return invalidParams
45438	}
45439	return nil
45440}
45441
45442// SetMaxResults sets the MaxResults field's value.
45443func (s *ListScheduledAuditsInput) SetMaxResults(v int64) *ListScheduledAuditsInput {
45444	s.MaxResults = &v
45445	return s
45446}
45447
45448// SetNextToken sets the NextToken field's value.
45449func (s *ListScheduledAuditsInput) SetNextToken(v string) *ListScheduledAuditsInput {
45450	s.NextToken = &v
45451	return s
45452}
45453
45454type ListScheduledAuditsOutput struct {
45455	_ struct{} `type:"structure"`
45456
45457	// A token that can be used to retrieve the next set of results, or null if
45458	// there are no additional results.
45459	NextToken *string `locationName:"nextToken" type:"string"`
45460
45461	// The list of scheduled audits.
45462	ScheduledAudits []*ScheduledAuditMetadata `locationName:"scheduledAudits" type:"list"`
45463}
45464
45465// String returns the string representation
45466func (s ListScheduledAuditsOutput) String() string {
45467	return awsutil.Prettify(s)
45468}
45469
45470// GoString returns the string representation
45471func (s ListScheduledAuditsOutput) GoString() string {
45472	return s.String()
45473}
45474
45475// SetNextToken sets the NextToken field's value.
45476func (s *ListScheduledAuditsOutput) SetNextToken(v string) *ListScheduledAuditsOutput {
45477	s.NextToken = &v
45478	return s
45479}
45480
45481// SetScheduledAudits sets the ScheduledAudits field's value.
45482func (s *ListScheduledAuditsOutput) SetScheduledAudits(v []*ScheduledAuditMetadata) *ListScheduledAuditsOutput {
45483	s.ScheduledAudits = v
45484	return s
45485}
45486
45487type ListSecurityProfilesForTargetInput struct {
45488	_ struct{} `type:"structure"`
45489
45490	// The maximum number of results to return at one time.
45491	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45492
45493	// The token for the next set of results.
45494	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45495
45496	// If true, return child groups too.
45497	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
45498
45499	// The ARN of the target (thing group) whose attached security profiles you
45500	// want to get.
45501	//
45502	// SecurityProfileTargetArn is a required field
45503	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
45504}
45505
45506// String returns the string representation
45507func (s ListSecurityProfilesForTargetInput) String() string {
45508	return awsutil.Prettify(s)
45509}
45510
45511// GoString returns the string representation
45512func (s ListSecurityProfilesForTargetInput) GoString() string {
45513	return s.String()
45514}
45515
45516// Validate inspects the fields of the type to determine if they are valid.
45517func (s *ListSecurityProfilesForTargetInput) Validate() error {
45518	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesForTargetInput"}
45519	if s.MaxResults != nil && *s.MaxResults < 1 {
45520		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45521	}
45522	if s.SecurityProfileTargetArn == nil {
45523		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
45524	}
45525
45526	if invalidParams.Len() > 0 {
45527		return invalidParams
45528	}
45529	return nil
45530}
45531
45532// SetMaxResults sets the MaxResults field's value.
45533func (s *ListSecurityProfilesForTargetInput) SetMaxResults(v int64) *ListSecurityProfilesForTargetInput {
45534	s.MaxResults = &v
45535	return s
45536}
45537
45538// SetNextToken sets the NextToken field's value.
45539func (s *ListSecurityProfilesForTargetInput) SetNextToken(v string) *ListSecurityProfilesForTargetInput {
45540	s.NextToken = &v
45541	return s
45542}
45543
45544// SetRecursive sets the Recursive field's value.
45545func (s *ListSecurityProfilesForTargetInput) SetRecursive(v bool) *ListSecurityProfilesForTargetInput {
45546	s.Recursive = &v
45547	return s
45548}
45549
45550// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
45551func (s *ListSecurityProfilesForTargetInput) SetSecurityProfileTargetArn(v string) *ListSecurityProfilesForTargetInput {
45552	s.SecurityProfileTargetArn = &v
45553	return s
45554}
45555
45556type ListSecurityProfilesForTargetOutput struct {
45557	_ struct{} `type:"structure"`
45558
45559	// A token that can be used to retrieve the next set of results, or null if
45560	// there are no additional results.
45561	NextToken *string `locationName:"nextToken" type:"string"`
45562
45563	// A list of security profiles and their associated targets.
45564	SecurityProfileTargetMappings []*SecurityProfileTargetMapping `locationName:"securityProfileTargetMappings" type:"list"`
45565}
45566
45567// String returns the string representation
45568func (s ListSecurityProfilesForTargetOutput) String() string {
45569	return awsutil.Prettify(s)
45570}
45571
45572// GoString returns the string representation
45573func (s ListSecurityProfilesForTargetOutput) GoString() string {
45574	return s.String()
45575}
45576
45577// SetNextToken sets the NextToken field's value.
45578func (s *ListSecurityProfilesForTargetOutput) SetNextToken(v string) *ListSecurityProfilesForTargetOutput {
45579	s.NextToken = &v
45580	return s
45581}
45582
45583// SetSecurityProfileTargetMappings sets the SecurityProfileTargetMappings field's value.
45584func (s *ListSecurityProfilesForTargetOutput) SetSecurityProfileTargetMappings(v []*SecurityProfileTargetMapping) *ListSecurityProfilesForTargetOutput {
45585	s.SecurityProfileTargetMappings = v
45586	return s
45587}
45588
45589type ListSecurityProfilesInput struct {
45590	_ struct{} `type:"structure"`
45591
45592	// A filter to limit results to the security profiles that use the defined dimension.
45593	// Cannot be used with metricName
45594	DimensionName *string `location:"querystring" locationName:"dimensionName" min:"1" type:"string"`
45595
45596	// The maximum number of results to return at one time.
45597	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45598
45599	// The name of the custom metric. Cannot be used with dimensionName.
45600	MetricName *string `location:"querystring" locationName:"metricName" min:"1" type:"string"`
45601
45602	// The token for the next set of results.
45603	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45604}
45605
45606// String returns the string representation
45607func (s ListSecurityProfilesInput) String() string {
45608	return awsutil.Prettify(s)
45609}
45610
45611// GoString returns the string representation
45612func (s ListSecurityProfilesInput) GoString() string {
45613	return s.String()
45614}
45615
45616// Validate inspects the fields of the type to determine if they are valid.
45617func (s *ListSecurityProfilesInput) Validate() error {
45618	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesInput"}
45619	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
45620		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
45621	}
45622	if s.MaxResults != nil && *s.MaxResults < 1 {
45623		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45624	}
45625	if s.MetricName != nil && len(*s.MetricName) < 1 {
45626		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
45627	}
45628
45629	if invalidParams.Len() > 0 {
45630		return invalidParams
45631	}
45632	return nil
45633}
45634
45635// SetDimensionName sets the DimensionName field's value.
45636func (s *ListSecurityProfilesInput) SetDimensionName(v string) *ListSecurityProfilesInput {
45637	s.DimensionName = &v
45638	return s
45639}
45640
45641// SetMaxResults sets the MaxResults field's value.
45642func (s *ListSecurityProfilesInput) SetMaxResults(v int64) *ListSecurityProfilesInput {
45643	s.MaxResults = &v
45644	return s
45645}
45646
45647// SetMetricName sets the MetricName field's value.
45648func (s *ListSecurityProfilesInput) SetMetricName(v string) *ListSecurityProfilesInput {
45649	s.MetricName = &v
45650	return s
45651}
45652
45653// SetNextToken sets the NextToken field's value.
45654func (s *ListSecurityProfilesInput) SetNextToken(v string) *ListSecurityProfilesInput {
45655	s.NextToken = &v
45656	return s
45657}
45658
45659type ListSecurityProfilesOutput struct {
45660	_ struct{} `type:"structure"`
45661
45662	// A token that can be used to retrieve the next set of results, or null if
45663	// there are no additional results.
45664	NextToken *string `locationName:"nextToken" type:"string"`
45665
45666	// A list of security profile identifiers (names and ARNs).
45667	SecurityProfileIdentifiers []*SecurityProfileIdentifier `locationName:"securityProfileIdentifiers" type:"list"`
45668}
45669
45670// String returns the string representation
45671func (s ListSecurityProfilesOutput) String() string {
45672	return awsutil.Prettify(s)
45673}
45674
45675// GoString returns the string representation
45676func (s ListSecurityProfilesOutput) GoString() string {
45677	return s.String()
45678}
45679
45680// SetNextToken sets the NextToken field's value.
45681func (s *ListSecurityProfilesOutput) SetNextToken(v string) *ListSecurityProfilesOutput {
45682	s.NextToken = &v
45683	return s
45684}
45685
45686// SetSecurityProfileIdentifiers sets the SecurityProfileIdentifiers field's value.
45687func (s *ListSecurityProfilesOutput) SetSecurityProfileIdentifiers(v []*SecurityProfileIdentifier) *ListSecurityProfilesOutput {
45688	s.SecurityProfileIdentifiers = v
45689	return s
45690}
45691
45692type ListStreamsInput struct {
45693	_ struct{} `type:"structure"`
45694
45695	// Set to true to return the list of streams in ascending order.
45696	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
45697
45698	// The maximum number of results to return at a time.
45699	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45700
45701	// A token used to get the next set of results.
45702	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45703}
45704
45705// String returns the string representation
45706func (s ListStreamsInput) String() string {
45707	return awsutil.Prettify(s)
45708}
45709
45710// GoString returns the string representation
45711func (s ListStreamsInput) GoString() string {
45712	return s.String()
45713}
45714
45715// Validate inspects the fields of the type to determine if they are valid.
45716func (s *ListStreamsInput) Validate() error {
45717	invalidParams := request.ErrInvalidParams{Context: "ListStreamsInput"}
45718	if s.MaxResults != nil && *s.MaxResults < 1 {
45719		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45720	}
45721
45722	if invalidParams.Len() > 0 {
45723		return invalidParams
45724	}
45725	return nil
45726}
45727
45728// SetAscendingOrder sets the AscendingOrder field's value.
45729func (s *ListStreamsInput) SetAscendingOrder(v bool) *ListStreamsInput {
45730	s.AscendingOrder = &v
45731	return s
45732}
45733
45734// SetMaxResults sets the MaxResults field's value.
45735func (s *ListStreamsInput) SetMaxResults(v int64) *ListStreamsInput {
45736	s.MaxResults = &v
45737	return s
45738}
45739
45740// SetNextToken sets the NextToken field's value.
45741func (s *ListStreamsInput) SetNextToken(v string) *ListStreamsInput {
45742	s.NextToken = &v
45743	return s
45744}
45745
45746type ListStreamsOutput struct {
45747	_ struct{} `type:"structure"`
45748
45749	// A token used to get the next set of results.
45750	NextToken *string `locationName:"nextToken" type:"string"`
45751
45752	// A list of streams.
45753	Streams []*StreamSummary `locationName:"streams" type:"list"`
45754}
45755
45756// String returns the string representation
45757func (s ListStreamsOutput) String() string {
45758	return awsutil.Prettify(s)
45759}
45760
45761// GoString returns the string representation
45762func (s ListStreamsOutput) GoString() string {
45763	return s.String()
45764}
45765
45766// SetNextToken sets the NextToken field's value.
45767func (s *ListStreamsOutput) SetNextToken(v string) *ListStreamsOutput {
45768	s.NextToken = &v
45769	return s
45770}
45771
45772// SetStreams sets the Streams field's value.
45773func (s *ListStreamsOutput) SetStreams(v []*StreamSummary) *ListStreamsOutput {
45774	s.Streams = v
45775	return s
45776}
45777
45778type ListTagsForResourceInput struct {
45779	_ struct{} `type:"structure"`
45780
45781	// To retrieve the next set of results, the nextToken value from a previous
45782	// response; otherwise null to receive the first set of results.
45783	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45784
45785	// The ARN of the resource.
45786	//
45787	// ResourceArn is a required field
45788	ResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string" required:"true"`
45789}
45790
45791// String returns the string representation
45792func (s ListTagsForResourceInput) String() string {
45793	return awsutil.Prettify(s)
45794}
45795
45796// GoString returns the string representation
45797func (s ListTagsForResourceInput) GoString() string {
45798	return s.String()
45799}
45800
45801// Validate inspects the fields of the type to determine if they are valid.
45802func (s *ListTagsForResourceInput) Validate() error {
45803	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
45804	if s.ResourceArn == nil {
45805		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
45806	}
45807
45808	if invalidParams.Len() > 0 {
45809		return invalidParams
45810	}
45811	return nil
45812}
45813
45814// SetNextToken sets the NextToken field's value.
45815func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
45816	s.NextToken = &v
45817	return s
45818}
45819
45820// SetResourceArn sets the ResourceArn field's value.
45821func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
45822	s.ResourceArn = &v
45823	return s
45824}
45825
45826type ListTagsForResourceOutput struct {
45827	_ struct{} `type:"structure"`
45828
45829	// The token to use to get the next set of results, or null if there are no
45830	// additional results.
45831	NextToken *string `locationName:"nextToken" type:"string"`
45832
45833	// The list of tags assigned to the resource.
45834	Tags []*Tag `locationName:"tags" type:"list"`
45835}
45836
45837// String returns the string representation
45838func (s ListTagsForResourceOutput) String() string {
45839	return awsutil.Prettify(s)
45840}
45841
45842// GoString returns the string representation
45843func (s ListTagsForResourceOutput) GoString() string {
45844	return s.String()
45845}
45846
45847// SetNextToken sets the NextToken field's value.
45848func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
45849	s.NextToken = &v
45850	return s
45851}
45852
45853// SetTags sets the Tags field's value.
45854func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
45855	s.Tags = v
45856	return s
45857}
45858
45859type ListTargetsForPolicyInput struct {
45860	_ struct{} `type:"structure"`
45861
45862	// A marker used to get the next set of results.
45863	Marker *string `location:"querystring" locationName:"marker" type:"string"`
45864
45865	// The maximum number of results to return at one time.
45866	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
45867
45868	// The policy name.
45869	//
45870	// PolicyName is a required field
45871	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
45872}
45873
45874// String returns the string representation
45875func (s ListTargetsForPolicyInput) String() string {
45876	return awsutil.Prettify(s)
45877}
45878
45879// GoString returns the string representation
45880func (s ListTargetsForPolicyInput) GoString() string {
45881	return s.String()
45882}
45883
45884// Validate inspects the fields of the type to determine if they are valid.
45885func (s *ListTargetsForPolicyInput) Validate() error {
45886	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForPolicyInput"}
45887	if s.PageSize != nil && *s.PageSize < 1 {
45888		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
45889	}
45890	if s.PolicyName == nil {
45891		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
45892	}
45893	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
45894		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
45895	}
45896
45897	if invalidParams.Len() > 0 {
45898		return invalidParams
45899	}
45900	return nil
45901}
45902
45903// SetMarker sets the Marker field's value.
45904func (s *ListTargetsForPolicyInput) SetMarker(v string) *ListTargetsForPolicyInput {
45905	s.Marker = &v
45906	return s
45907}
45908
45909// SetPageSize sets the PageSize field's value.
45910func (s *ListTargetsForPolicyInput) SetPageSize(v int64) *ListTargetsForPolicyInput {
45911	s.PageSize = &v
45912	return s
45913}
45914
45915// SetPolicyName sets the PolicyName field's value.
45916func (s *ListTargetsForPolicyInput) SetPolicyName(v string) *ListTargetsForPolicyInput {
45917	s.PolicyName = &v
45918	return s
45919}
45920
45921type ListTargetsForPolicyOutput struct {
45922	_ struct{} `type:"structure"`
45923
45924	// A marker used to get the next set of results.
45925	NextMarker *string `locationName:"nextMarker" type:"string"`
45926
45927	// The policy targets.
45928	Targets []*string `locationName:"targets" type:"list"`
45929}
45930
45931// String returns the string representation
45932func (s ListTargetsForPolicyOutput) String() string {
45933	return awsutil.Prettify(s)
45934}
45935
45936// GoString returns the string representation
45937func (s ListTargetsForPolicyOutput) GoString() string {
45938	return s.String()
45939}
45940
45941// SetNextMarker sets the NextMarker field's value.
45942func (s *ListTargetsForPolicyOutput) SetNextMarker(v string) *ListTargetsForPolicyOutput {
45943	s.NextMarker = &v
45944	return s
45945}
45946
45947// SetTargets sets the Targets field's value.
45948func (s *ListTargetsForPolicyOutput) SetTargets(v []*string) *ListTargetsForPolicyOutput {
45949	s.Targets = v
45950	return s
45951}
45952
45953type ListTargetsForSecurityProfileInput struct {
45954	_ struct{} `type:"structure"`
45955
45956	// The maximum number of results to return at one time.
45957	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45958
45959	// The token for the next set of results.
45960	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45961
45962	// The security profile.
45963	//
45964	// SecurityProfileName is a required field
45965	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
45966}
45967
45968// String returns the string representation
45969func (s ListTargetsForSecurityProfileInput) String() string {
45970	return awsutil.Prettify(s)
45971}
45972
45973// GoString returns the string representation
45974func (s ListTargetsForSecurityProfileInput) GoString() string {
45975	return s.String()
45976}
45977
45978// Validate inspects the fields of the type to determine if they are valid.
45979func (s *ListTargetsForSecurityProfileInput) Validate() error {
45980	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForSecurityProfileInput"}
45981	if s.MaxResults != nil && *s.MaxResults < 1 {
45982		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45983	}
45984	if s.SecurityProfileName == nil {
45985		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
45986	}
45987	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
45988		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
45989	}
45990
45991	if invalidParams.Len() > 0 {
45992		return invalidParams
45993	}
45994	return nil
45995}
45996
45997// SetMaxResults sets the MaxResults field's value.
45998func (s *ListTargetsForSecurityProfileInput) SetMaxResults(v int64) *ListTargetsForSecurityProfileInput {
45999	s.MaxResults = &v
46000	return s
46001}
46002
46003// SetNextToken sets the NextToken field's value.
46004func (s *ListTargetsForSecurityProfileInput) SetNextToken(v string) *ListTargetsForSecurityProfileInput {
46005	s.NextToken = &v
46006	return s
46007}
46008
46009// SetSecurityProfileName sets the SecurityProfileName field's value.
46010func (s *ListTargetsForSecurityProfileInput) SetSecurityProfileName(v string) *ListTargetsForSecurityProfileInput {
46011	s.SecurityProfileName = &v
46012	return s
46013}
46014
46015type ListTargetsForSecurityProfileOutput struct {
46016	_ struct{} `type:"structure"`
46017
46018	// A token that can be used to retrieve the next set of results, or null if
46019	// there are no additional results.
46020	NextToken *string `locationName:"nextToken" type:"string"`
46021
46022	// The thing groups to which the security profile is attached.
46023	SecurityProfileTargets []*SecurityProfileTarget `locationName:"securityProfileTargets" type:"list"`
46024}
46025
46026// String returns the string representation
46027func (s ListTargetsForSecurityProfileOutput) String() string {
46028	return awsutil.Prettify(s)
46029}
46030
46031// GoString returns the string representation
46032func (s ListTargetsForSecurityProfileOutput) GoString() string {
46033	return s.String()
46034}
46035
46036// SetNextToken sets the NextToken field's value.
46037func (s *ListTargetsForSecurityProfileOutput) SetNextToken(v string) *ListTargetsForSecurityProfileOutput {
46038	s.NextToken = &v
46039	return s
46040}
46041
46042// SetSecurityProfileTargets sets the SecurityProfileTargets field's value.
46043func (s *ListTargetsForSecurityProfileOutput) SetSecurityProfileTargets(v []*SecurityProfileTarget) *ListTargetsForSecurityProfileOutput {
46044	s.SecurityProfileTargets = v
46045	return s
46046}
46047
46048type ListThingGroupsForThingInput struct {
46049	_ struct{} `type:"structure"`
46050
46051	// The maximum number of results to return at one time.
46052	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46053
46054	// To retrieve the next set of results, the nextToken value from a previous
46055	// response; otherwise null to receive the first set of results.
46056	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46057
46058	// The thing name.
46059	//
46060	// ThingName is a required field
46061	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
46062}
46063
46064// String returns the string representation
46065func (s ListThingGroupsForThingInput) String() string {
46066	return awsutil.Prettify(s)
46067}
46068
46069// GoString returns the string representation
46070func (s ListThingGroupsForThingInput) GoString() string {
46071	return s.String()
46072}
46073
46074// Validate inspects the fields of the type to determine if they are valid.
46075func (s *ListThingGroupsForThingInput) Validate() error {
46076	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsForThingInput"}
46077	if s.MaxResults != nil && *s.MaxResults < 1 {
46078		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46079	}
46080	if s.ThingName == nil {
46081		invalidParams.Add(request.NewErrParamRequired("ThingName"))
46082	}
46083	if s.ThingName != nil && len(*s.ThingName) < 1 {
46084		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
46085	}
46086
46087	if invalidParams.Len() > 0 {
46088		return invalidParams
46089	}
46090	return nil
46091}
46092
46093// SetMaxResults sets the MaxResults field's value.
46094func (s *ListThingGroupsForThingInput) SetMaxResults(v int64) *ListThingGroupsForThingInput {
46095	s.MaxResults = &v
46096	return s
46097}
46098
46099// SetNextToken sets the NextToken field's value.
46100func (s *ListThingGroupsForThingInput) SetNextToken(v string) *ListThingGroupsForThingInput {
46101	s.NextToken = &v
46102	return s
46103}
46104
46105// SetThingName sets the ThingName field's value.
46106func (s *ListThingGroupsForThingInput) SetThingName(v string) *ListThingGroupsForThingInput {
46107	s.ThingName = &v
46108	return s
46109}
46110
46111type ListThingGroupsForThingOutput struct {
46112	_ struct{} `type:"structure"`
46113
46114	// The token to use to get the next set of results, or null if there are no
46115	// additional results.
46116	NextToken *string `locationName:"nextToken" type:"string"`
46117
46118	// The thing groups.
46119	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
46120}
46121
46122// String returns the string representation
46123func (s ListThingGroupsForThingOutput) String() string {
46124	return awsutil.Prettify(s)
46125}
46126
46127// GoString returns the string representation
46128func (s ListThingGroupsForThingOutput) GoString() string {
46129	return s.String()
46130}
46131
46132// SetNextToken sets the NextToken field's value.
46133func (s *ListThingGroupsForThingOutput) SetNextToken(v string) *ListThingGroupsForThingOutput {
46134	s.NextToken = &v
46135	return s
46136}
46137
46138// SetThingGroups sets the ThingGroups field's value.
46139func (s *ListThingGroupsForThingOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsForThingOutput {
46140	s.ThingGroups = v
46141	return s
46142}
46143
46144type ListThingGroupsInput struct {
46145	_ struct{} `type:"structure"`
46146
46147	// The maximum number of results to return at one time.
46148	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46149
46150	// A filter that limits the results to those with the specified name prefix.
46151	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
46152
46153	// To retrieve the next set of results, the nextToken value from a previous
46154	// response; otherwise null to receive the first set of results.
46155	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46156
46157	// A filter that limits the results to those with the specified parent group.
46158	ParentGroup *string `location:"querystring" locationName:"parentGroup" min:"1" type:"string"`
46159
46160	// If true, return child groups as well.
46161	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
46162}
46163
46164// String returns the string representation
46165func (s ListThingGroupsInput) String() string {
46166	return awsutil.Prettify(s)
46167}
46168
46169// GoString returns the string representation
46170func (s ListThingGroupsInput) GoString() string {
46171	return s.String()
46172}
46173
46174// Validate inspects the fields of the type to determine if they are valid.
46175func (s *ListThingGroupsInput) Validate() error {
46176	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsInput"}
46177	if s.MaxResults != nil && *s.MaxResults < 1 {
46178		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46179	}
46180	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
46181		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
46182	}
46183	if s.ParentGroup != nil && len(*s.ParentGroup) < 1 {
46184		invalidParams.Add(request.NewErrParamMinLen("ParentGroup", 1))
46185	}
46186
46187	if invalidParams.Len() > 0 {
46188		return invalidParams
46189	}
46190	return nil
46191}
46192
46193// SetMaxResults sets the MaxResults field's value.
46194func (s *ListThingGroupsInput) SetMaxResults(v int64) *ListThingGroupsInput {
46195	s.MaxResults = &v
46196	return s
46197}
46198
46199// SetNamePrefixFilter sets the NamePrefixFilter field's value.
46200func (s *ListThingGroupsInput) SetNamePrefixFilter(v string) *ListThingGroupsInput {
46201	s.NamePrefixFilter = &v
46202	return s
46203}
46204
46205// SetNextToken sets the NextToken field's value.
46206func (s *ListThingGroupsInput) SetNextToken(v string) *ListThingGroupsInput {
46207	s.NextToken = &v
46208	return s
46209}
46210
46211// SetParentGroup sets the ParentGroup field's value.
46212func (s *ListThingGroupsInput) SetParentGroup(v string) *ListThingGroupsInput {
46213	s.ParentGroup = &v
46214	return s
46215}
46216
46217// SetRecursive sets the Recursive field's value.
46218func (s *ListThingGroupsInput) SetRecursive(v bool) *ListThingGroupsInput {
46219	s.Recursive = &v
46220	return s
46221}
46222
46223type ListThingGroupsOutput struct {
46224	_ struct{} `type:"structure"`
46225
46226	// The token to use to get the next set of results. Will not be returned if
46227	// operation has returned all results.
46228	NextToken *string `locationName:"nextToken" type:"string"`
46229
46230	// The thing groups.
46231	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
46232}
46233
46234// String returns the string representation
46235func (s ListThingGroupsOutput) String() string {
46236	return awsutil.Prettify(s)
46237}
46238
46239// GoString returns the string representation
46240func (s ListThingGroupsOutput) GoString() string {
46241	return s.String()
46242}
46243
46244// SetNextToken sets the NextToken field's value.
46245func (s *ListThingGroupsOutput) SetNextToken(v string) *ListThingGroupsOutput {
46246	s.NextToken = &v
46247	return s
46248}
46249
46250// SetThingGroups sets the ThingGroups field's value.
46251func (s *ListThingGroupsOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsOutput {
46252	s.ThingGroups = v
46253	return s
46254}
46255
46256// The input for the ListThingPrincipal operation.
46257type ListThingPrincipalsInput struct {
46258	_ struct{} `type:"structure"`
46259
46260	// The maximum number of results to return in this operation.
46261	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46262
46263	// To retrieve the next set of results, the nextToken value from a previous
46264	// response; otherwise null to receive the first set of results.
46265	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46266
46267	// The name of the thing.
46268	//
46269	// ThingName is a required field
46270	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
46271}
46272
46273// String returns the string representation
46274func (s ListThingPrincipalsInput) String() string {
46275	return awsutil.Prettify(s)
46276}
46277
46278// GoString returns the string representation
46279func (s ListThingPrincipalsInput) GoString() string {
46280	return s.String()
46281}
46282
46283// Validate inspects the fields of the type to determine if they are valid.
46284func (s *ListThingPrincipalsInput) Validate() error {
46285	invalidParams := request.ErrInvalidParams{Context: "ListThingPrincipalsInput"}
46286	if s.MaxResults != nil && *s.MaxResults < 1 {
46287		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46288	}
46289	if s.ThingName == nil {
46290		invalidParams.Add(request.NewErrParamRequired("ThingName"))
46291	}
46292	if s.ThingName != nil && len(*s.ThingName) < 1 {
46293		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
46294	}
46295
46296	if invalidParams.Len() > 0 {
46297		return invalidParams
46298	}
46299	return nil
46300}
46301
46302// SetMaxResults sets the MaxResults field's value.
46303func (s *ListThingPrincipalsInput) SetMaxResults(v int64) *ListThingPrincipalsInput {
46304	s.MaxResults = &v
46305	return s
46306}
46307
46308// SetNextToken sets the NextToken field's value.
46309func (s *ListThingPrincipalsInput) SetNextToken(v string) *ListThingPrincipalsInput {
46310	s.NextToken = &v
46311	return s
46312}
46313
46314// SetThingName sets the ThingName field's value.
46315func (s *ListThingPrincipalsInput) SetThingName(v string) *ListThingPrincipalsInput {
46316	s.ThingName = &v
46317	return s
46318}
46319
46320// The output from the ListThingPrincipals operation.
46321type ListThingPrincipalsOutput struct {
46322	_ struct{} `type:"structure"`
46323
46324	// The token to use to get the next set of results, or null if there are no
46325	// additional results.
46326	NextToken *string `locationName:"nextToken" type:"string"`
46327
46328	// The principals associated with the thing.
46329	Principals []*string `locationName:"principals" type:"list"`
46330}
46331
46332// String returns the string representation
46333func (s ListThingPrincipalsOutput) String() string {
46334	return awsutil.Prettify(s)
46335}
46336
46337// GoString returns the string representation
46338func (s ListThingPrincipalsOutput) GoString() string {
46339	return s.String()
46340}
46341
46342// SetNextToken sets the NextToken field's value.
46343func (s *ListThingPrincipalsOutput) SetNextToken(v string) *ListThingPrincipalsOutput {
46344	s.NextToken = &v
46345	return s
46346}
46347
46348// SetPrincipals sets the Principals field's value.
46349func (s *ListThingPrincipalsOutput) SetPrincipals(v []*string) *ListThingPrincipalsOutput {
46350	s.Principals = v
46351	return s
46352}
46353
46354type ListThingRegistrationTaskReportsInput struct {
46355	_ struct{} `type:"structure"`
46356
46357	// The maximum number of results to return per request.
46358	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46359
46360	// To retrieve the next set of results, the nextToken value from a previous
46361	// response; otherwise null to receive the first set of results.
46362	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46363
46364	// The type of task report.
46365	//
46366	// ReportType is a required field
46367	ReportType *string `location:"querystring" locationName:"reportType" type:"string" required:"true" enum:"ReportType"`
46368
46369	// The id of the task.
46370	//
46371	// TaskId is a required field
46372	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
46373}
46374
46375// String returns the string representation
46376func (s ListThingRegistrationTaskReportsInput) String() string {
46377	return awsutil.Prettify(s)
46378}
46379
46380// GoString returns the string representation
46381func (s ListThingRegistrationTaskReportsInput) GoString() string {
46382	return s.String()
46383}
46384
46385// Validate inspects the fields of the type to determine if they are valid.
46386func (s *ListThingRegistrationTaskReportsInput) Validate() error {
46387	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTaskReportsInput"}
46388	if s.MaxResults != nil && *s.MaxResults < 1 {
46389		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46390	}
46391	if s.ReportType == nil {
46392		invalidParams.Add(request.NewErrParamRequired("ReportType"))
46393	}
46394	if s.TaskId == nil {
46395		invalidParams.Add(request.NewErrParamRequired("TaskId"))
46396	}
46397	if s.TaskId != nil && len(*s.TaskId) < 1 {
46398		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
46399	}
46400
46401	if invalidParams.Len() > 0 {
46402		return invalidParams
46403	}
46404	return nil
46405}
46406
46407// SetMaxResults sets the MaxResults field's value.
46408func (s *ListThingRegistrationTaskReportsInput) SetMaxResults(v int64) *ListThingRegistrationTaskReportsInput {
46409	s.MaxResults = &v
46410	return s
46411}
46412
46413// SetNextToken sets the NextToken field's value.
46414func (s *ListThingRegistrationTaskReportsInput) SetNextToken(v string) *ListThingRegistrationTaskReportsInput {
46415	s.NextToken = &v
46416	return s
46417}
46418
46419// SetReportType sets the ReportType field's value.
46420func (s *ListThingRegistrationTaskReportsInput) SetReportType(v string) *ListThingRegistrationTaskReportsInput {
46421	s.ReportType = &v
46422	return s
46423}
46424
46425// SetTaskId sets the TaskId field's value.
46426func (s *ListThingRegistrationTaskReportsInput) SetTaskId(v string) *ListThingRegistrationTaskReportsInput {
46427	s.TaskId = &v
46428	return s
46429}
46430
46431type ListThingRegistrationTaskReportsOutput struct {
46432	_ struct{} `type:"structure"`
46433
46434	// The token to use to get the next set of results, or null if there are no
46435	// additional results.
46436	NextToken *string `locationName:"nextToken" type:"string"`
46437
46438	// The type of task report.
46439	ReportType *string `locationName:"reportType" type:"string" enum:"ReportType"`
46440
46441	// Links to the task resources.
46442	ResourceLinks []*string `locationName:"resourceLinks" type:"list"`
46443}
46444
46445// String returns the string representation
46446func (s ListThingRegistrationTaskReportsOutput) String() string {
46447	return awsutil.Prettify(s)
46448}
46449
46450// GoString returns the string representation
46451func (s ListThingRegistrationTaskReportsOutput) GoString() string {
46452	return s.String()
46453}
46454
46455// SetNextToken sets the NextToken field's value.
46456func (s *ListThingRegistrationTaskReportsOutput) SetNextToken(v string) *ListThingRegistrationTaskReportsOutput {
46457	s.NextToken = &v
46458	return s
46459}
46460
46461// SetReportType sets the ReportType field's value.
46462func (s *ListThingRegistrationTaskReportsOutput) SetReportType(v string) *ListThingRegistrationTaskReportsOutput {
46463	s.ReportType = &v
46464	return s
46465}
46466
46467// SetResourceLinks sets the ResourceLinks field's value.
46468func (s *ListThingRegistrationTaskReportsOutput) SetResourceLinks(v []*string) *ListThingRegistrationTaskReportsOutput {
46469	s.ResourceLinks = v
46470	return s
46471}
46472
46473type ListThingRegistrationTasksInput struct {
46474	_ struct{} `type:"structure"`
46475
46476	// The maximum number of results to return at one time.
46477	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46478
46479	// To retrieve the next set of results, the nextToken value from a previous
46480	// response; otherwise null to receive the first set of results.
46481	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46482
46483	// The status of the bulk thing provisioning task.
46484	Status *string `location:"querystring" locationName:"status" type:"string" enum:"Status"`
46485}
46486
46487// String returns the string representation
46488func (s ListThingRegistrationTasksInput) String() string {
46489	return awsutil.Prettify(s)
46490}
46491
46492// GoString returns the string representation
46493func (s ListThingRegistrationTasksInput) GoString() string {
46494	return s.String()
46495}
46496
46497// Validate inspects the fields of the type to determine if they are valid.
46498func (s *ListThingRegistrationTasksInput) Validate() error {
46499	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTasksInput"}
46500	if s.MaxResults != nil && *s.MaxResults < 1 {
46501		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46502	}
46503
46504	if invalidParams.Len() > 0 {
46505		return invalidParams
46506	}
46507	return nil
46508}
46509
46510// SetMaxResults sets the MaxResults field's value.
46511func (s *ListThingRegistrationTasksInput) SetMaxResults(v int64) *ListThingRegistrationTasksInput {
46512	s.MaxResults = &v
46513	return s
46514}
46515
46516// SetNextToken sets the NextToken field's value.
46517func (s *ListThingRegistrationTasksInput) SetNextToken(v string) *ListThingRegistrationTasksInput {
46518	s.NextToken = &v
46519	return s
46520}
46521
46522// SetStatus sets the Status field's value.
46523func (s *ListThingRegistrationTasksInput) SetStatus(v string) *ListThingRegistrationTasksInput {
46524	s.Status = &v
46525	return s
46526}
46527
46528type ListThingRegistrationTasksOutput struct {
46529	_ struct{} `type:"structure"`
46530
46531	// The token to use to get the next set of results, or null if there are no
46532	// additional results.
46533	NextToken *string `locationName:"nextToken" type:"string"`
46534
46535	// A list of bulk thing provisioning task IDs.
46536	TaskIds []*string `locationName:"taskIds" type:"list"`
46537}
46538
46539// String returns the string representation
46540func (s ListThingRegistrationTasksOutput) String() string {
46541	return awsutil.Prettify(s)
46542}
46543
46544// GoString returns the string representation
46545func (s ListThingRegistrationTasksOutput) GoString() string {
46546	return s.String()
46547}
46548
46549// SetNextToken sets the NextToken field's value.
46550func (s *ListThingRegistrationTasksOutput) SetNextToken(v string) *ListThingRegistrationTasksOutput {
46551	s.NextToken = &v
46552	return s
46553}
46554
46555// SetTaskIds sets the TaskIds field's value.
46556func (s *ListThingRegistrationTasksOutput) SetTaskIds(v []*string) *ListThingRegistrationTasksOutput {
46557	s.TaskIds = v
46558	return s
46559}
46560
46561// The input for the ListThingTypes operation.
46562type ListThingTypesInput struct {
46563	_ struct{} `type:"structure"`
46564
46565	// The maximum number of results to return in this operation.
46566	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46567
46568	// To retrieve the next set of results, the nextToken value from a previous
46569	// response; otherwise null to receive the first set of results.
46570	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46571
46572	// The name of the thing type.
46573	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
46574}
46575
46576// String returns the string representation
46577func (s ListThingTypesInput) String() string {
46578	return awsutil.Prettify(s)
46579}
46580
46581// GoString returns the string representation
46582func (s ListThingTypesInput) GoString() string {
46583	return s.String()
46584}
46585
46586// Validate inspects the fields of the type to determine if they are valid.
46587func (s *ListThingTypesInput) Validate() error {
46588	invalidParams := request.ErrInvalidParams{Context: "ListThingTypesInput"}
46589	if s.MaxResults != nil && *s.MaxResults < 1 {
46590		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46591	}
46592	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
46593		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
46594	}
46595
46596	if invalidParams.Len() > 0 {
46597		return invalidParams
46598	}
46599	return nil
46600}
46601
46602// SetMaxResults sets the MaxResults field's value.
46603func (s *ListThingTypesInput) SetMaxResults(v int64) *ListThingTypesInput {
46604	s.MaxResults = &v
46605	return s
46606}
46607
46608// SetNextToken sets the NextToken field's value.
46609func (s *ListThingTypesInput) SetNextToken(v string) *ListThingTypesInput {
46610	s.NextToken = &v
46611	return s
46612}
46613
46614// SetThingTypeName sets the ThingTypeName field's value.
46615func (s *ListThingTypesInput) SetThingTypeName(v string) *ListThingTypesInput {
46616	s.ThingTypeName = &v
46617	return s
46618}
46619
46620// The output for the ListThingTypes operation.
46621type ListThingTypesOutput struct {
46622	_ struct{} `type:"structure"`
46623
46624	// The token for the next set of results. Will not be returned if operation
46625	// has returned all results.
46626	NextToken *string `locationName:"nextToken" type:"string"`
46627
46628	// The thing types.
46629	ThingTypes []*ThingTypeDefinition `locationName:"thingTypes" type:"list"`
46630}
46631
46632// String returns the string representation
46633func (s ListThingTypesOutput) String() string {
46634	return awsutil.Prettify(s)
46635}
46636
46637// GoString returns the string representation
46638func (s ListThingTypesOutput) GoString() string {
46639	return s.String()
46640}
46641
46642// SetNextToken sets the NextToken field's value.
46643func (s *ListThingTypesOutput) SetNextToken(v string) *ListThingTypesOutput {
46644	s.NextToken = &v
46645	return s
46646}
46647
46648// SetThingTypes sets the ThingTypes field's value.
46649func (s *ListThingTypesOutput) SetThingTypes(v []*ThingTypeDefinition) *ListThingTypesOutput {
46650	s.ThingTypes = v
46651	return s
46652}
46653
46654type ListThingsInBillingGroupInput struct {
46655	_ struct{} `type:"structure"`
46656
46657	// The name of the billing group.
46658	//
46659	// BillingGroupName is a required field
46660	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
46661
46662	// The maximum number of results to return per request.
46663	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46664
46665	// To retrieve the next set of results, the nextToken value from a previous
46666	// response; otherwise null to receive the first set of results.
46667	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46668}
46669
46670// String returns the string representation
46671func (s ListThingsInBillingGroupInput) String() string {
46672	return awsutil.Prettify(s)
46673}
46674
46675// GoString returns the string representation
46676func (s ListThingsInBillingGroupInput) GoString() string {
46677	return s.String()
46678}
46679
46680// Validate inspects the fields of the type to determine if they are valid.
46681func (s *ListThingsInBillingGroupInput) Validate() error {
46682	invalidParams := request.ErrInvalidParams{Context: "ListThingsInBillingGroupInput"}
46683	if s.BillingGroupName == nil {
46684		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
46685	}
46686	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
46687		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
46688	}
46689	if s.MaxResults != nil && *s.MaxResults < 1 {
46690		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46691	}
46692
46693	if invalidParams.Len() > 0 {
46694		return invalidParams
46695	}
46696	return nil
46697}
46698
46699// SetBillingGroupName sets the BillingGroupName field's value.
46700func (s *ListThingsInBillingGroupInput) SetBillingGroupName(v string) *ListThingsInBillingGroupInput {
46701	s.BillingGroupName = &v
46702	return s
46703}
46704
46705// SetMaxResults sets the MaxResults field's value.
46706func (s *ListThingsInBillingGroupInput) SetMaxResults(v int64) *ListThingsInBillingGroupInput {
46707	s.MaxResults = &v
46708	return s
46709}
46710
46711// SetNextToken sets the NextToken field's value.
46712func (s *ListThingsInBillingGroupInput) SetNextToken(v string) *ListThingsInBillingGroupInput {
46713	s.NextToken = &v
46714	return s
46715}
46716
46717type ListThingsInBillingGroupOutput struct {
46718	_ struct{} `type:"structure"`
46719
46720	// The token to use to get the next set of results. Will not be returned if
46721	// operation has returned all results.
46722	NextToken *string `locationName:"nextToken" type:"string"`
46723
46724	// A list of things in the billing group.
46725	Things []*string `locationName:"things" type:"list"`
46726}
46727
46728// String returns the string representation
46729func (s ListThingsInBillingGroupOutput) String() string {
46730	return awsutil.Prettify(s)
46731}
46732
46733// GoString returns the string representation
46734func (s ListThingsInBillingGroupOutput) GoString() string {
46735	return s.String()
46736}
46737
46738// SetNextToken sets the NextToken field's value.
46739func (s *ListThingsInBillingGroupOutput) SetNextToken(v string) *ListThingsInBillingGroupOutput {
46740	s.NextToken = &v
46741	return s
46742}
46743
46744// SetThings sets the Things field's value.
46745func (s *ListThingsInBillingGroupOutput) SetThings(v []*string) *ListThingsInBillingGroupOutput {
46746	s.Things = v
46747	return s
46748}
46749
46750type ListThingsInThingGroupInput struct {
46751	_ struct{} `type:"structure"`
46752
46753	// The maximum number of results to return at one time.
46754	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46755
46756	// To retrieve the next set of results, the nextToken value from a previous
46757	// response; otherwise null to receive the first set of results.
46758	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46759
46760	// When true, list things in this thing group and in all child groups as well.
46761	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
46762
46763	// The thing group name.
46764	//
46765	// ThingGroupName is a required field
46766	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
46767}
46768
46769// String returns the string representation
46770func (s ListThingsInThingGroupInput) String() string {
46771	return awsutil.Prettify(s)
46772}
46773
46774// GoString returns the string representation
46775func (s ListThingsInThingGroupInput) GoString() string {
46776	return s.String()
46777}
46778
46779// Validate inspects the fields of the type to determine if they are valid.
46780func (s *ListThingsInThingGroupInput) Validate() error {
46781	invalidParams := request.ErrInvalidParams{Context: "ListThingsInThingGroupInput"}
46782	if s.MaxResults != nil && *s.MaxResults < 1 {
46783		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46784	}
46785	if s.ThingGroupName == nil {
46786		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
46787	}
46788	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
46789		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
46790	}
46791
46792	if invalidParams.Len() > 0 {
46793		return invalidParams
46794	}
46795	return nil
46796}
46797
46798// SetMaxResults sets the MaxResults field's value.
46799func (s *ListThingsInThingGroupInput) SetMaxResults(v int64) *ListThingsInThingGroupInput {
46800	s.MaxResults = &v
46801	return s
46802}
46803
46804// SetNextToken sets the NextToken field's value.
46805func (s *ListThingsInThingGroupInput) SetNextToken(v string) *ListThingsInThingGroupInput {
46806	s.NextToken = &v
46807	return s
46808}
46809
46810// SetRecursive sets the Recursive field's value.
46811func (s *ListThingsInThingGroupInput) SetRecursive(v bool) *ListThingsInThingGroupInput {
46812	s.Recursive = &v
46813	return s
46814}
46815
46816// SetThingGroupName sets the ThingGroupName field's value.
46817func (s *ListThingsInThingGroupInput) SetThingGroupName(v string) *ListThingsInThingGroupInput {
46818	s.ThingGroupName = &v
46819	return s
46820}
46821
46822type ListThingsInThingGroupOutput struct {
46823	_ struct{} `type:"structure"`
46824
46825	// The token to use to get the next set of results, or null if there are no
46826	// additional results.
46827	NextToken *string `locationName:"nextToken" type:"string"`
46828
46829	// The things in the specified thing group.
46830	Things []*string `locationName:"things" type:"list"`
46831}
46832
46833// String returns the string representation
46834func (s ListThingsInThingGroupOutput) String() string {
46835	return awsutil.Prettify(s)
46836}
46837
46838// GoString returns the string representation
46839func (s ListThingsInThingGroupOutput) GoString() string {
46840	return s.String()
46841}
46842
46843// SetNextToken sets the NextToken field's value.
46844func (s *ListThingsInThingGroupOutput) SetNextToken(v string) *ListThingsInThingGroupOutput {
46845	s.NextToken = &v
46846	return s
46847}
46848
46849// SetThings sets the Things field's value.
46850func (s *ListThingsInThingGroupOutput) SetThings(v []*string) *ListThingsInThingGroupOutput {
46851	s.Things = v
46852	return s
46853}
46854
46855// The input for the ListThings operation.
46856type ListThingsInput struct {
46857	_ struct{} `type:"structure"`
46858
46859	// The attribute name used to search for things.
46860	AttributeName *string `location:"querystring" locationName:"attributeName" type:"string"`
46861
46862	// The attribute value used to search for things.
46863	AttributeValue *string `location:"querystring" locationName:"attributeValue" type:"string"`
46864
46865	// The maximum number of results to return in this operation.
46866	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46867
46868	// To retrieve the next set of results, the nextToken value from a previous
46869	// response; otherwise null to receive the first set of results.
46870	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46871
46872	// The name of the thing type used to search for things.
46873	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
46874
46875	// When true, the action returns the thing resources with attribute values that
46876	// start with the attributeValue provided.
46877	//
46878	// When false, or not present, the action returns only the thing resources with
46879	// attribute values that match the entire attributeValue provided.
46880	UsePrefixAttributeValue *bool `location:"querystring" locationName:"usePrefixAttributeValue" type:"boolean"`
46881}
46882
46883// String returns the string representation
46884func (s ListThingsInput) String() string {
46885	return awsutil.Prettify(s)
46886}
46887
46888// GoString returns the string representation
46889func (s ListThingsInput) GoString() string {
46890	return s.String()
46891}
46892
46893// Validate inspects the fields of the type to determine if they are valid.
46894func (s *ListThingsInput) Validate() error {
46895	invalidParams := request.ErrInvalidParams{Context: "ListThingsInput"}
46896	if s.MaxResults != nil && *s.MaxResults < 1 {
46897		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46898	}
46899	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
46900		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
46901	}
46902
46903	if invalidParams.Len() > 0 {
46904		return invalidParams
46905	}
46906	return nil
46907}
46908
46909// SetAttributeName sets the AttributeName field's value.
46910func (s *ListThingsInput) SetAttributeName(v string) *ListThingsInput {
46911	s.AttributeName = &v
46912	return s
46913}
46914
46915// SetAttributeValue sets the AttributeValue field's value.
46916func (s *ListThingsInput) SetAttributeValue(v string) *ListThingsInput {
46917	s.AttributeValue = &v
46918	return s
46919}
46920
46921// SetMaxResults sets the MaxResults field's value.
46922func (s *ListThingsInput) SetMaxResults(v int64) *ListThingsInput {
46923	s.MaxResults = &v
46924	return s
46925}
46926
46927// SetNextToken sets the NextToken field's value.
46928func (s *ListThingsInput) SetNextToken(v string) *ListThingsInput {
46929	s.NextToken = &v
46930	return s
46931}
46932
46933// SetThingTypeName sets the ThingTypeName field's value.
46934func (s *ListThingsInput) SetThingTypeName(v string) *ListThingsInput {
46935	s.ThingTypeName = &v
46936	return s
46937}
46938
46939// SetUsePrefixAttributeValue sets the UsePrefixAttributeValue field's value.
46940func (s *ListThingsInput) SetUsePrefixAttributeValue(v bool) *ListThingsInput {
46941	s.UsePrefixAttributeValue = &v
46942	return s
46943}
46944
46945// The output from the ListThings operation.
46946type ListThingsOutput struct {
46947	_ struct{} `type:"structure"`
46948
46949	// The token to use to get the next set of results. Will not be returned if
46950	// operation has returned all results.
46951	NextToken *string `locationName:"nextToken" type:"string"`
46952
46953	// The things.
46954	Things []*ThingAttribute `locationName:"things" type:"list"`
46955}
46956
46957// String returns the string representation
46958func (s ListThingsOutput) String() string {
46959	return awsutil.Prettify(s)
46960}
46961
46962// GoString returns the string representation
46963func (s ListThingsOutput) GoString() string {
46964	return s.String()
46965}
46966
46967// SetNextToken sets the NextToken field's value.
46968func (s *ListThingsOutput) SetNextToken(v string) *ListThingsOutput {
46969	s.NextToken = &v
46970	return s
46971}
46972
46973// SetThings sets the Things field's value.
46974func (s *ListThingsOutput) SetThings(v []*ThingAttribute) *ListThingsOutput {
46975	s.Things = v
46976	return s
46977}
46978
46979type ListTopicRuleDestinationsInput struct {
46980	_ struct{} `type:"structure"`
46981
46982	// The maximum number of results to return at one time.
46983	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46984
46985	// To retrieve the next set of results, the nextToken value from a previous
46986	// response; otherwise null to receive the first set of results.
46987	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46988}
46989
46990// String returns the string representation
46991func (s ListTopicRuleDestinationsInput) String() string {
46992	return awsutil.Prettify(s)
46993}
46994
46995// GoString returns the string representation
46996func (s ListTopicRuleDestinationsInput) GoString() string {
46997	return s.String()
46998}
46999
47000// Validate inspects the fields of the type to determine if they are valid.
47001func (s *ListTopicRuleDestinationsInput) Validate() error {
47002	invalidParams := request.ErrInvalidParams{Context: "ListTopicRuleDestinationsInput"}
47003	if s.MaxResults != nil && *s.MaxResults < 1 {
47004		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47005	}
47006
47007	if invalidParams.Len() > 0 {
47008		return invalidParams
47009	}
47010	return nil
47011}
47012
47013// SetMaxResults sets the MaxResults field's value.
47014func (s *ListTopicRuleDestinationsInput) SetMaxResults(v int64) *ListTopicRuleDestinationsInput {
47015	s.MaxResults = &v
47016	return s
47017}
47018
47019// SetNextToken sets the NextToken field's value.
47020func (s *ListTopicRuleDestinationsInput) SetNextToken(v string) *ListTopicRuleDestinationsInput {
47021	s.NextToken = &v
47022	return s
47023}
47024
47025type ListTopicRuleDestinationsOutput struct {
47026	_ struct{} `type:"structure"`
47027
47028	// Information about a topic rule destination.
47029	DestinationSummaries []*TopicRuleDestinationSummary `locationName:"destinationSummaries" type:"list"`
47030
47031	// The token to use to get the next set of results, or null if there are no
47032	// additional results.
47033	NextToken *string `locationName:"nextToken" type:"string"`
47034}
47035
47036// String returns the string representation
47037func (s ListTopicRuleDestinationsOutput) String() string {
47038	return awsutil.Prettify(s)
47039}
47040
47041// GoString returns the string representation
47042func (s ListTopicRuleDestinationsOutput) GoString() string {
47043	return s.String()
47044}
47045
47046// SetDestinationSummaries sets the DestinationSummaries field's value.
47047func (s *ListTopicRuleDestinationsOutput) SetDestinationSummaries(v []*TopicRuleDestinationSummary) *ListTopicRuleDestinationsOutput {
47048	s.DestinationSummaries = v
47049	return s
47050}
47051
47052// SetNextToken sets the NextToken field's value.
47053func (s *ListTopicRuleDestinationsOutput) SetNextToken(v string) *ListTopicRuleDestinationsOutput {
47054	s.NextToken = &v
47055	return s
47056}
47057
47058// The input for the ListTopicRules operation.
47059type ListTopicRulesInput struct {
47060	_ struct{} `type:"structure"`
47061
47062	// The maximum number of results to return.
47063	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47064
47065	// To retrieve the next set of results, the nextToken value from a previous
47066	// response; otherwise null to receive the first set of results.
47067	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47068
47069	// Specifies whether the rule is disabled.
47070	RuleDisabled *bool `location:"querystring" locationName:"ruleDisabled" type:"boolean"`
47071
47072	// The topic.
47073	Topic *string `location:"querystring" locationName:"topic" type:"string"`
47074}
47075
47076// String returns the string representation
47077func (s ListTopicRulesInput) String() string {
47078	return awsutil.Prettify(s)
47079}
47080
47081// GoString returns the string representation
47082func (s ListTopicRulesInput) GoString() string {
47083	return s.String()
47084}
47085
47086// Validate inspects the fields of the type to determine if they are valid.
47087func (s *ListTopicRulesInput) Validate() error {
47088	invalidParams := request.ErrInvalidParams{Context: "ListTopicRulesInput"}
47089	if s.MaxResults != nil && *s.MaxResults < 1 {
47090		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47091	}
47092
47093	if invalidParams.Len() > 0 {
47094		return invalidParams
47095	}
47096	return nil
47097}
47098
47099// SetMaxResults sets the MaxResults field's value.
47100func (s *ListTopicRulesInput) SetMaxResults(v int64) *ListTopicRulesInput {
47101	s.MaxResults = &v
47102	return s
47103}
47104
47105// SetNextToken sets the NextToken field's value.
47106func (s *ListTopicRulesInput) SetNextToken(v string) *ListTopicRulesInput {
47107	s.NextToken = &v
47108	return s
47109}
47110
47111// SetRuleDisabled sets the RuleDisabled field's value.
47112func (s *ListTopicRulesInput) SetRuleDisabled(v bool) *ListTopicRulesInput {
47113	s.RuleDisabled = &v
47114	return s
47115}
47116
47117// SetTopic sets the Topic field's value.
47118func (s *ListTopicRulesInput) SetTopic(v string) *ListTopicRulesInput {
47119	s.Topic = &v
47120	return s
47121}
47122
47123// The output from the ListTopicRules operation.
47124type ListTopicRulesOutput struct {
47125	_ struct{} `type:"structure"`
47126
47127	// The token to use to get the next set of results, or null if there are no
47128	// additional results.
47129	NextToken *string `locationName:"nextToken" type:"string"`
47130
47131	// The rules.
47132	Rules []*TopicRuleListItem `locationName:"rules" type:"list"`
47133}
47134
47135// String returns the string representation
47136func (s ListTopicRulesOutput) String() string {
47137	return awsutil.Prettify(s)
47138}
47139
47140// GoString returns the string representation
47141func (s ListTopicRulesOutput) GoString() string {
47142	return s.String()
47143}
47144
47145// SetNextToken sets the NextToken field's value.
47146func (s *ListTopicRulesOutput) SetNextToken(v string) *ListTopicRulesOutput {
47147	s.NextToken = &v
47148	return s
47149}
47150
47151// SetRules sets the Rules field's value.
47152func (s *ListTopicRulesOutput) SetRules(v []*TopicRuleListItem) *ListTopicRulesOutput {
47153	s.Rules = v
47154	return s
47155}
47156
47157type ListV2LoggingLevelsInput struct {
47158	_ struct{} `type:"structure"`
47159
47160	// The maximum number of results to return at one time.
47161	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47162
47163	// To retrieve the next set of results, the nextToken value from a previous
47164	// response; otherwise null to receive the first set of results.
47165	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47166
47167	// The type of resource for which you are configuring logging. Must be THING_Group.
47168	TargetType *string `location:"querystring" locationName:"targetType" type:"string" enum:"LogTargetType"`
47169}
47170
47171// String returns the string representation
47172func (s ListV2LoggingLevelsInput) String() string {
47173	return awsutil.Prettify(s)
47174}
47175
47176// GoString returns the string representation
47177func (s ListV2LoggingLevelsInput) GoString() string {
47178	return s.String()
47179}
47180
47181// Validate inspects the fields of the type to determine if they are valid.
47182func (s *ListV2LoggingLevelsInput) Validate() error {
47183	invalidParams := request.ErrInvalidParams{Context: "ListV2LoggingLevelsInput"}
47184	if s.MaxResults != nil && *s.MaxResults < 1 {
47185		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47186	}
47187
47188	if invalidParams.Len() > 0 {
47189		return invalidParams
47190	}
47191	return nil
47192}
47193
47194// SetMaxResults sets the MaxResults field's value.
47195func (s *ListV2LoggingLevelsInput) SetMaxResults(v int64) *ListV2LoggingLevelsInput {
47196	s.MaxResults = &v
47197	return s
47198}
47199
47200// SetNextToken sets the NextToken field's value.
47201func (s *ListV2LoggingLevelsInput) SetNextToken(v string) *ListV2LoggingLevelsInput {
47202	s.NextToken = &v
47203	return s
47204}
47205
47206// SetTargetType sets the TargetType field's value.
47207func (s *ListV2LoggingLevelsInput) SetTargetType(v string) *ListV2LoggingLevelsInput {
47208	s.TargetType = &v
47209	return s
47210}
47211
47212type ListV2LoggingLevelsOutput struct {
47213	_ struct{} `type:"structure"`
47214
47215	// The logging configuration for a target.
47216	LogTargetConfigurations []*LogTargetConfiguration `locationName:"logTargetConfigurations" type:"list"`
47217
47218	// The token to use to get the next set of results, or null if there are no
47219	// additional results.
47220	NextToken *string `locationName:"nextToken" type:"string"`
47221}
47222
47223// String returns the string representation
47224func (s ListV2LoggingLevelsOutput) String() string {
47225	return awsutil.Prettify(s)
47226}
47227
47228// GoString returns the string representation
47229func (s ListV2LoggingLevelsOutput) GoString() string {
47230	return s.String()
47231}
47232
47233// SetLogTargetConfigurations sets the LogTargetConfigurations field's value.
47234func (s *ListV2LoggingLevelsOutput) SetLogTargetConfigurations(v []*LogTargetConfiguration) *ListV2LoggingLevelsOutput {
47235	s.LogTargetConfigurations = v
47236	return s
47237}
47238
47239// SetNextToken sets the NextToken field's value.
47240func (s *ListV2LoggingLevelsOutput) SetNextToken(v string) *ListV2LoggingLevelsOutput {
47241	s.NextToken = &v
47242	return s
47243}
47244
47245type ListViolationEventsInput struct {
47246	_ struct{} `type:"structure"`
47247
47248	// The criteria for a behavior.
47249	BehaviorCriteriaType *string `location:"querystring" locationName:"behaviorCriteriaType" type:"string" enum:"BehaviorCriteriaType"`
47250
47251	// The end time for the alerts to be listed.
47252	//
47253	// EndTime is a required field
47254	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
47255
47256	// A list of all suppressed alerts.
47257	ListSuppressedAlerts *bool `location:"querystring" locationName:"listSuppressedAlerts" type:"boolean"`
47258
47259	// The maximum number of results to return at one time.
47260	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47261
47262	// The token for the next set of results.
47263	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47264
47265	// A filter to limit results to those alerts generated by the specified security
47266	// profile.
47267	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
47268
47269	// The start time for the alerts to be listed.
47270	//
47271	// StartTime is a required field
47272	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
47273
47274	// A filter to limit results to those alerts caused by the specified thing.
47275	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
47276}
47277
47278// String returns the string representation
47279func (s ListViolationEventsInput) String() string {
47280	return awsutil.Prettify(s)
47281}
47282
47283// GoString returns the string representation
47284func (s ListViolationEventsInput) GoString() string {
47285	return s.String()
47286}
47287
47288// Validate inspects the fields of the type to determine if they are valid.
47289func (s *ListViolationEventsInput) Validate() error {
47290	invalidParams := request.ErrInvalidParams{Context: "ListViolationEventsInput"}
47291	if s.EndTime == nil {
47292		invalidParams.Add(request.NewErrParamRequired("EndTime"))
47293	}
47294	if s.MaxResults != nil && *s.MaxResults < 1 {
47295		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47296	}
47297	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
47298		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
47299	}
47300	if s.StartTime == nil {
47301		invalidParams.Add(request.NewErrParamRequired("StartTime"))
47302	}
47303	if s.ThingName != nil && len(*s.ThingName) < 1 {
47304		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
47305	}
47306
47307	if invalidParams.Len() > 0 {
47308		return invalidParams
47309	}
47310	return nil
47311}
47312
47313// SetBehaviorCriteriaType sets the BehaviorCriteriaType field's value.
47314func (s *ListViolationEventsInput) SetBehaviorCriteriaType(v string) *ListViolationEventsInput {
47315	s.BehaviorCriteriaType = &v
47316	return s
47317}
47318
47319// SetEndTime sets the EndTime field's value.
47320func (s *ListViolationEventsInput) SetEndTime(v time.Time) *ListViolationEventsInput {
47321	s.EndTime = &v
47322	return s
47323}
47324
47325// SetListSuppressedAlerts sets the ListSuppressedAlerts field's value.
47326func (s *ListViolationEventsInput) SetListSuppressedAlerts(v bool) *ListViolationEventsInput {
47327	s.ListSuppressedAlerts = &v
47328	return s
47329}
47330
47331// SetMaxResults sets the MaxResults field's value.
47332func (s *ListViolationEventsInput) SetMaxResults(v int64) *ListViolationEventsInput {
47333	s.MaxResults = &v
47334	return s
47335}
47336
47337// SetNextToken sets the NextToken field's value.
47338func (s *ListViolationEventsInput) SetNextToken(v string) *ListViolationEventsInput {
47339	s.NextToken = &v
47340	return s
47341}
47342
47343// SetSecurityProfileName sets the SecurityProfileName field's value.
47344func (s *ListViolationEventsInput) SetSecurityProfileName(v string) *ListViolationEventsInput {
47345	s.SecurityProfileName = &v
47346	return s
47347}
47348
47349// SetStartTime sets the StartTime field's value.
47350func (s *ListViolationEventsInput) SetStartTime(v time.Time) *ListViolationEventsInput {
47351	s.StartTime = &v
47352	return s
47353}
47354
47355// SetThingName sets the ThingName field's value.
47356func (s *ListViolationEventsInput) SetThingName(v string) *ListViolationEventsInput {
47357	s.ThingName = &v
47358	return s
47359}
47360
47361type ListViolationEventsOutput struct {
47362	_ struct{} `type:"structure"`
47363
47364	// A token that can be used to retrieve the next set of results, or null if
47365	// there are no additional results.
47366	NextToken *string `locationName:"nextToken" type:"string"`
47367
47368	// The security profile violation alerts issued for this account during the
47369	// given time period, potentially filtered by security profile, behavior violated,
47370	// or thing (device) violating.
47371	ViolationEvents []*ViolationEvent `locationName:"violationEvents" type:"list"`
47372}
47373
47374// String returns the string representation
47375func (s ListViolationEventsOutput) String() string {
47376	return awsutil.Prettify(s)
47377}
47378
47379// GoString returns the string representation
47380func (s ListViolationEventsOutput) GoString() string {
47381	return s.String()
47382}
47383
47384// SetNextToken sets the NextToken field's value.
47385func (s *ListViolationEventsOutput) SetNextToken(v string) *ListViolationEventsOutput {
47386	s.NextToken = &v
47387	return s
47388}
47389
47390// SetViolationEvents sets the ViolationEvents field's value.
47391func (s *ListViolationEventsOutput) SetViolationEvents(v []*ViolationEvent) *ListViolationEventsOutput {
47392	s.ViolationEvents = v
47393	return s
47394}
47395
47396// A log target.
47397type LogTarget struct {
47398	_ struct{} `type:"structure"`
47399
47400	// The target name.
47401	TargetName *string `locationName:"targetName" type:"string"`
47402
47403	// The target type.
47404	//
47405	// TargetType is a required field
47406	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
47407}
47408
47409// String returns the string representation
47410func (s LogTarget) String() string {
47411	return awsutil.Prettify(s)
47412}
47413
47414// GoString returns the string representation
47415func (s LogTarget) GoString() string {
47416	return s.String()
47417}
47418
47419// Validate inspects the fields of the type to determine if they are valid.
47420func (s *LogTarget) Validate() error {
47421	invalidParams := request.ErrInvalidParams{Context: "LogTarget"}
47422	if s.TargetType == nil {
47423		invalidParams.Add(request.NewErrParamRequired("TargetType"))
47424	}
47425
47426	if invalidParams.Len() > 0 {
47427		return invalidParams
47428	}
47429	return nil
47430}
47431
47432// SetTargetName sets the TargetName field's value.
47433func (s *LogTarget) SetTargetName(v string) *LogTarget {
47434	s.TargetName = &v
47435	return s
47436}
47437
47438// SetTargetType sets the TargetType field's value.
47439func (s *LogTarget) SetTargetType(v string) *LogTarget {
47440	s.TargetType = &v
47441	return s
47442}
47443
47444// The target configuration.
47445type LogTargetConfiguration struct {
47446	_ struct{} `type:"structure"`
47447
47448	// The logging level.
47449	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
47450
47451	// A log target
47452	LogTarget *LogTarget `locationName:"logTarget" type:"structure"`
47453}
47454
47455// String returns the string representation
47456func (s LogTargetConfiguration) String() string {
47457	return awsutil.Prettify(s)
47458}
47459
47460// GoString returns the string representation
47461func (s LogTargetConfiguration) GoString() string {
47462	return s.String()
47463}
47464
47465// SetLogLevel sets the LogLevel field's value.
47466func (s *LogTargetConfiguration) SetLogLevel(v string) *LogTargetConfiguration {
47467	s.LogLevel = &v
47468	return s
47469}
47470
47471// SetLogTarget sets the LogTarget field's value.
47472func (s *LogTargetConfiguration) SetLogTarget(v *LogTarget) *LogTargetConfiguration {
47473	s.LogTarget = v
47474	return s
47475}
47476
47477// Describes the logging options payload.
47478type LoggingOptionsPayload struct {
47479	_ struct{} `type:"structure"`
47480
47481	// The log level.
47482	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
47483
47484	// The ARN of the IAM role that grants access.
47485	//
47486	// RoleArn is a required field
47487	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
47488}
47489
47490// String returns the string representation
47491func (s LoggingOptionsPayload) String() string {
47492	return awsutil.Prettify(s)
47493}
47494
47495// GoString returns the string representation
47496func (s LoggingOptionsPayload) GoString() string {
47497	return s.String()
47498}
47499
47500// Validate inspects the fields of the type to determine if they are valid.
47501func (s *LoggingOptionsPayload) Validate() error {
47502	invalidParams := request.ErrInvalidParams{Context: "LoggingOptionsPayload"}
47503	if s.RoleArn == nil {
47504		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
47505	}
47506
47507	if invalidParams.Len() > 0 {
47508		return invalidParams
47509	}
47510	return nil
47511}
47512
47513// SetLogLevel sets the LogLevel field's value.
47514func (s *LoggingOptionsPayload) SetLogLevel(v string) *LoggingOptionsPayload {
47515	s.LogLevel = &v
47516	return s
47517}
47518
47519// SetRoleArn sets the RoleArn field's value.
47520func (s *LoggingOptionsPayload) SetRoleArn(v string) *LoggingOptionsPayload {
47521	s.RoleArn = &v
47522	return s
47523}
47524
47525// The configuration of an ML Detect Security Profile.
47526type MachineLearningDetectionConfig struct {
47527	_ struct{} `type:"structure"`
47528
47529	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or
47530	// High.
47531	//
47532	// ConfidenceLevel is a required field
47533	ConfidenceLevel *string `locationName:"confidenceLevel" type:"string" required:"true" enum:"ConfidenceLevel"`
47534}
47535
47536// String returns the string representation
47537func (s MachineLearningDetectionConfig) String() string {
47538	return awsutil.Prettify(s)
47539}
47540
47541// GoString returns the string representation
47542func (s MachineLearningDetectionConfig) GoString() string {
47543	return s.String()
47544}
47545
47546// Validate inspects the fields of the type to determine if they are valid.
47547func (s *MachineLearningDetectionConfig) Validate() error {
47548	invalidParams := request.ErrInvalidParams{Context: "MachineLearningDetectionConfig"}
47549	if s.ConfidenceLevel == nil {
47550		invalidParams.Add(request.NewErrParamRequired("ConfidenceLevel"))
47551	}
47552
47553	if invalidParams.Len() > 0 {
47554		return invalidParams
47555	}
47556	return nil
47557}
47558
47559// SetConfidenceLevel sets the ConfidenceLevel field's value.
47560func (s *MachineLearningDetectionConfig) SetConfidenceLevel(v string) *MachineLearningDetectionConfig {
47561	s.ConfidenceLevel = &v
47562	return s
47563}
47564
47565// The policy documentation is not valid.
47566type MalformedPolicyException struct {
47567	_            struct{}                  `type:"structure"`
47568	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
47569
47570	// The message for the exception.
47571	Message_ *string `locationName:"message" type:"string"`
47572}
47573
47574// String returns the string representation
47575func (s MalformedPolicyException) String() string {
47576	return awsutil.Prettify(s)
47577}
47578
47579// GoString returns the string representation
47580func (s MalformedPolicyException) GoString() string {
47581	return s.String()
47582}
47583
47584func newErrorMalformedPolicyException(v protocol.ResponseMetadata) error {
47585	return &MalformedPolicyException{
47586		RespMetadata: v,
47587	}
47588}
47589
47590// Code returns the exception type name.
47591func (s *MalformedPolicyException) Code() string {
47592	return "MalformedPolicyException"
47593}
47594
47595// Message returns the exception's message.
47596func (s *MalformedPolicyException) Message() string {
47597	if s.Message_ != nil {
47598		return *s.Message_
47599	}
47600	return ""
47601}
47602
47603// OrigErr always returns nil, satisfies awserr.Error interface.
47604func (s *MalformedPolicyException) OrigErr() error {
47605	return nil
47606}
47607
47608func (s *MalformedPolicyException) Error() string {
47609	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
47610}
47611
47612// Status code returns the HTTP status code for the request's response error.
47613func (s *MalformedPolicyException) StatusCode() int {
47614	return s.RespMetadata.StatusCode
47615}
47616
47617// RequestID returns the service's response RequestID for request.
47618func (s *MalformedPolicyException) RequestID() string {
47619	return s.RespMetadata.RequestID
47620}
47621
47622// The dimension of a metric.
47623type MetricDimension struct {
47624	_ struct{} `type:"structure"`
47625
47626	// A unique identifier for the dimension.
47627	//
47628	// DimensionName is a required field
47629	DimensionName *string `locationName:"dimensionName" min:"1" type:"string" required:"true"`
47630
47631	// Defines how the dimensionValues of a dimension are interpreted. For example,
47632	// for dimension type TOPIC_FILTER, the IN operator, a message will be counted
47633	// only if its topic matches one of the topic filters. With NOT_IN operator,
47634	// a message will be counted only if it doesn't match any of the topic filters.
47635	// The operator is optional: if it's not provided (is null), it will be interpreted
47636	// as IN.
47637	Operator *string `locationName:"operator" type:"string" enum:"DimensionValueOperator"`
47638}
47639
47640// String returns the string representation
47641func (s MetricDimension) String() string {
47642	return awsutil.Prettify(s)
47643}
47644
47645// GoString returns the string representation
47646func (s MetricDimension) GoString() string {
47647	return s.String()
47648}
47649
47650// Validate inspects the fields of the type to determine if they are valid.
47651func (s *MetricDimension) Validate() error {
47652	invalidParams := request.ErrInvalidParams{Context: "MetricDimension"}
47653	if s.DimensionName == nil {
47654		invalidParams.Add(request.NewErrParamRequired("DimensionName"))
47655	}
47656	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
47657		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
47658	}
47659
47660	if invalidParams.Len() > 0 {
47661		return invalidParams
47662	}
47663	return nil
47664}
47665
47666// SetDimensionName sets the DimensionName field's value.
47667func (s *MetricDimension) SetDimensionName(v string) *MetricDimension {
47668	s.DimensionName = &v
47669	return s
47670}
47671
47672// SetOperator sets the Operator field's value.
47673func (s *MetricDimension) SetOperator(v string) *MetricDimension {
47674	s.Operator = &v
47675	return s
47676}
47677
47678// The metric you want to retain. Dimensions are optional.
47679type MetricToRetain struct {
47680	_ struct{} `type:"structure"`
47681
47682	// What is measured by the behavior.
47683	//
47684	// Metric is a required field
47685	Metric *string `locationName:"metric" type:"string" required:"true"`
47686
47687	// The dimension of a metric. This can't be used with custom metrics.
47688	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
47689}
47690
47691// String returns the string representation
47692func (s MetricToRetain) String() string {
47693	return awsutil.Prettify(s)
47694}
47695
47696// GoString returns the string representation
47697func (s MetricToRetain) GoString() string {
47698	return s.String()
47699}
47700
47701// Validate inspects the fields of the type to determine if they are valid.
47702func (s *MetricToRetain) Validate() error {
47703	invalidParams := request.ErrInvalidParams{Context: "MetricToRetain"}
47704	if s.Metric == nil {
47705		invalidParams.Add(request.NewErrParamRequired("Metric"))
47706	}
47707	if s.MetricDimension != nil {
47708		if err := s.MetricDimension.Validate(); err != nil {
47709			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
47710		}
47711	}
47712
47713	if invalidParams.Len() > 0 {
47714		return invalidParams
47715	}
47716	return nil
47717}
47718
47719// SetMetric sets the Metric field's value.
47720func (s *MetricToRetain) SetMetric(v string) *MetricToRetain {
47721	s.Metric = &v
47722	return s
47723}
47724
47725// SetMetricDimension sets the MetricDimension field's value.
47726func (s *MetricToRetain) SetMetricDimension(v *MetricDimension) *MetricToRetain {
47727	s.MetricDimension = v
47728	return s
47729}
47730
47731// The value to be compared with the metric.
47732type MetricValue struct {
47733	_ struct{} `type:"structure"`
47734
47735	// If the comparisonOperator calls for a set of CIDRs, use this to specify that
47736	// set to be compared with the metric.
47737	Cidrs []*string `locationName:"cidrs" type:"list"`
47738
47739	// If the comparisonOperator calls for a numeric value, use this to specify
47740	// that numeric value to be compared with the metric.
47741	Count *int64 `locationName:"count" type:"long"`
47742
47743	// The numeral value of a metric.
47744	Number *float64 `locationName:"number" type:"double"`
47745
47746	// The numeral values of a metric.
47747	Numbers []*float64 `locationName:"numbers" type:"list"`
47748
47749	// If the comparisonOperator calls for a set of ports, use this to specify that
47750	// set to be compared with the metric.
47751	Ports []*int64 `locationName:"ports" type:"list"`
47752
47753	// The string values of a metric.
47754	Strings []*string `locationName:"strings" type:"list"`
47755}
47756
47757// String returns the string representation
47758func (s MetricValue) String() string {
47759	return awsutil.Prettify(s)
47760}
47761
47762// GoString returns the string representation
47763func (s MetricValue) GoString() string {
47764	return s.String()
47765}
47766
47767// SetCidrs sets the Cidrs field's value.
47768func (s *MetricValue) SetCidrs(v []*string) *MetricValue {
47769	s.Cidrs = v
47770	return s
47771}
47772
47773// SetCount sets the Count field's value.
47774func (s *MetricValue) SetCount(v int64) *MetricValue {
47775	s.Count = &v
47776	return s
47777}
47778
47779// SetNumber sets the Number field's value.
47780func (s *MetricValue) SetNumber(v float64) *MetricValue {
47781	s.Number = &v
47782	return s
47783}
47784
47785// SetNumbers sets the Numbers field's value.
47786func (s *MetricValue) SetNumbers(v []*float64) *MetricValue {
47787	s.Numbers = v
47788	return s
47789}
47790
47791// SetPorts sets the Ports field's value.
47792func (s *MetricValue) SetPorts(v []*int64) *MetricValue {
47793	s.Ports = v
47794	return s
47795}
47796
47797// SetStrings sets the Strings field's value.
47798func (s *MetricValue) SetStrings(v []*string) *MetricValue {
47799	s.Strings = v
47800	return s
47801}
47802
47803// Describes which changes should be applied as part of a mitigation action.
47804type MitigationAction struct {
47805	_ struct{} `type:"structure"`
47806
47807	// The set of parameters for this mitigation action. The parameters vary, depending
47808	// on the kind of action you apply.
47809	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
47810
47811	// A unique identifier for the mitigation action.
47812	Id *string `locationName:"id" type:"string"`
47813
47814	// A user-friendly name for the mitigation action.
47815	Name *string `locationName:"name" type:"string"`
47816
47817	// The IAM role ARN used to apply this mitigation action.
47818	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
47819}
47820
47821// String returns the string representation
47822func (s MitigationAction) String() string {
47823	return awsutil.Prettify(s)
47824}
47825
47826// GoString returns the string representation
47827func (s MitigationAction) GoString() string {
47828	return s.String()
47829}
47830
47831// SetActionParams sets the ActionParams field's value.
47832func (s *MitigationAction) SetActionParams(v *MitigationActionParams) *MitigationAction {
47833	s.ActionParams = v
47834	return s
47835}
47836
47837// SetId sets the Id field's value.
47838func (s *MitigationAction) SetId(v string) *MitigationAction {
47839	s.Id = &v
47840	return s
47841}
47842
47843// SetName sets the Name field's value.
47844func (s *MitigationAction) SetName(v string) *MitigationAction {
47845	s.Name = &v
47846	return s
47847}
47848
47849// SetRoleArn sets the RoleArn field's value.
47850func (s *MitigationAction) SetRoleArn(v string) *MitigationAction {
47851	s.RoleArn = &v
47852	return s
47853}
47854
47855// Information that identifies a mitigation action. This information is returned
47856// by ListMitigationActions.
47857type MitigationActionIdentifier struct {
47858	_ struct{} `type:"structure"`
47859
47860	// The IAM role ARN used to apply this mitigation action.
47861	ActionArn *string `locationName:"actionArn" type:"string"`
47862
47863	// The friendly name of the mitigation action.
47864	ActionName *string `locationName:"actionName" type:"string"`
47865
47866	// The date when this mitigation action was created.
47867	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
47868}
47869
47870// String returns the string representation
47871func (s MitigationActionIdentifier) String() string {
47872	return awsutil.Prettify(s)
47873}
47874
47875// GoString returns the string representation
47876func (s MitigationActionIdentifier) GoString() string {
47877	return s.String()
47878}
47879
47880// SetActionArn sets the ActionArn field's value.
47881func (s *MitigationActionIdentifier) SetActionArn(v string) *MitigationActionIdentifier {
47882	s.ActionArn = &v
47883	return s
47884}
47885
47886// SetActionName sets the ActionName field's value.
47887func (s *MitigationActionIdentifier) SetActionName(v string) *MitigationActionIdentifier {
47888	s.ActionName = &v
47889	return s
47890}
47891
47892// SetCreationDate sets the CreationDate field's value.
47893func (s *MitigationActionIdentifier) SetCreationDate(v time.Time) *MitigationActionIdentifier {
47894	s.CreationDate = &v
47895	return s
47896}
47897
47898// The set of parameters for this mitigation action. You can specify only one
47899// type of parameter (in other words, you can apply only one action for each
47900// defined mitigation action).
47901type MitigationActionParams struct {
47902	_ struct{} `type:"structure"`
47903
47904	// Parameters to define a mitigation action that moves devices associated with
47905	// a certificate to one or more specified thing groups, typically for quarantine.
47906	AddThingsToThingGroupParams *AddThingsToThingGroupParams `locationName:"addThingsToThingGroupParams" type:"structure"`
47907
47908	// Parameters to define a mitigation action that enables AWS IoT logging at
47909	// a specified level of detail.
47910	EnableIoTLoggingParams *EnableIoTLoggingParams `locationName:"enableIoTLoggingParams" type:"structure"`
47911
47912	// Parameters to define a mitigation action that publishes findings to Amazon
47913	// Simple Notification Service (Amazon SNS. You can implement your own custom
47914	// actions in response to the Amazon SNS messages.
47915	PublishFindingToSnsParams *PublishFindingToSnsParams `locationName:"publishFindingToSnsParams" type:"structure"`
47916
47917	// Parameters to define a mitigation action that adds a blank policy to restrict
47918	// permissions.
47919	ReplaceDefaultPolicyVersionParams *ReplaceDefaultPolicyVersionParams `locationName:"replaceDefaultPolicyVersionParams" type:"structure"`
47920
47921	// Parameters to define a mitigation action that changes the state of the CA
47922	// certificate to inactive.
47923	UpdateCACertificateParams *UpdateCACertificateParams `locationName:"updateCACertificateParams" type:"structure"`
47924
47925	// Parameters to define a mitigation action that changes the state of the device
47926	// certificate to inactive.
47927	UpdateDeviceCertificateParams *UpdateDeviceCertificateParams `locationName:"updateDeviceCertificateParams" type:"structure"`
47928}
47929
47930// String returns the string representation
47931func (s MitigationActionParams) String() string {
47932	return awsutil.Prettify(s)
47933}
47934
47935// GoString returns the string representation
47936func (s MitigationActionParams) GoString() string {
47937	return s.String()
47938}
47939
47940// Validate inspects the fields of the type to determine if they are valid.
47941func (s *MitigationActionParams) Validate() error {
47942	invalidParams := request.ErrInvalidParams{Context: "MitigationActionParams"}
47943	if s.AddThingsToThingGroupParams != nil {
47944		if err := s.AddThingsToThingGroupParams.Validate(); err != nil {
47945			invalidParams.AddNested("AddThingsToThingGroupParams", err.(request.ErrInvalidParams))
47946		}
47947	}
47948	if s.EnableIoTLoggingParams != nil {
47949		if err := s.EnableIoTLoggingParams.Validate(); err != nil {
47950			invalidParams.AddNested("EnableIoTLoggingParams", err.(request.ErrInvalidParams))
47951		}
47952	}
47953	if s.PublishFindingToSnsParams != nil {
47954		if err := s.PublishFindingToSnsParams.Validate(); err != nil {
47955			invalidParams.AddNested("PublishFindingToSnsParams", err.(request.ErrInvalidParams))
47956		}
47957	}
47958	if s.ReplaceDefaultPolicyVersionParams != nil {
47959		if err := s.ReplaceDefaultPolicyVersionParams.Validate(); err != nil {
47960			invalidParams.AddNested("ReplaceDefaultPolicyVersionParams", err.(request.ErrInvalidParams))
47961		}
47962	}
47963	if s.UpdateCACertificateParams != nil {
47964		if err := s.UpdateCACertificateParams.Validate(); err != nil {
47965			invalidParams.AddNested("UpdateCACertificateParams", err.(request.ErrInvalidParams))
47966		}
47967	}
47968	if s.UpdateDeviceCertificateParams != nil {
47969		if err := s.UpdateDeviceCertificateParams.Validate(); err != nil {
47970			invalidParams.AddNested("UpdateDeviceCertificateParams", err.(request.ErrInvalidParams))
47971		}
47972	}
47973
47974	if invalidParams.Len() > 0 {
47975		return invalidParams
47976	}
47977	return nil
47978}
47979
47980// SetAddThingsToThingGroupParams sets the AddThingsToThingGroupParams field's value.
47981func (s *MitigationActionParams) SetAddThingsToThingGroupParams(v *AddThingsToThingGroupParams) *MitigationActionParams {
47982	s.AddThingsToThingGroupParams = v
47983	return s
47984}
47985
47986// SetEnableIoTLoggingParams sets the EnableIoTLoggingParams field's value.
47987func (s *MitigationActionParams) SetEnableIoTLoggingParams(v *EnableIoTLoggingParams) *MitigationActionParams {
47988	s.EnableIoTLoggingParams = v
47989	return s
47990}
47991
47992// SetPublishFindingToSnsParams sets the PublishFindingToSnsParams field's value.
47993func (s *MitigationActionParams) SetPublishFindingToSnsParams(v *PublishFindingToSnsParams) *MitigationActionParams {
47994	s.PublishFindingToSnsParams = v
47995	return s
47996}
47997
47998// SetReplaceDefaultPolicyVersionParams sets the ReplaceDefaultPolicyVersionParams field's value.
47999func (s *MitigationActionParams) SetReplaceDefaultPolicyVersionParams(v *ReplaceDefaultPolicyVersionParams) *MitigationActionParams {
48000	s.ReplaceDefaultPolicyVersionParams = v
48001	return s
48002}
48003
48004// SetUpdateCACertificateParams sets the UpdateCACertificateParams field's value.
48005func (s *MitigationActionParams) SetUpdateCACertificateParams(v *UpdateCACertificateParams) *MitigationActionParams {
48006	s.UpdateCACertificateParams = v
48007	return s
48008}
48009
48010// SetUpdateDeviceCertificateParams sets the UpdateDeviceCertificateParams field's value.
48011func (s *MitigationActionParams) SetUpdateDeviceCertificateParams(v *UpdateDeviceCertificateParams) *MitigationActionParams {
48012	s.UpdateDeviceCertificateParams = v
48013	return s
48014}
48015
48016// Specifies the MQTT context to use for the test authorizer request
48017type MqttContext struct {
48018	_ struct{} `type:"structure"`
48019
48020	// The value of the clientId key in an MQTT authorization request.
48021	ClientId *string `locationName:"clientId" min:"1" type:"string"`
48022
48023	// The value of the password key in an MQTT authorization request.
48024	//
48025	// Password is automatically base64 encoded/decoded by the SDK.
48026	Password []byte `locationName:"password" min:"1" type:"blob"`
48027
48028	// The value of the username key in an MQTT authorization request.
48029	Username *string `locationName:"username" min:"1" type:"string"`
48030}
48031
48032// String returns the string representation
48033func (s MqttContext) String() string {
48034	return awsutil.Prettify(s)
48035}
48036
48037// GoString returns the string representation
48038func (s MqttContext) GoString() string {
48039	return s.String()
48040}
48041
48042// Validate inspects the fields of the type to determine if they are valid.
48043func (s *MqttContext) Validate() error {
48044	invalidParams := request.ErrInvalidParams{Context: "MqttContext"}
48045	if s.ClientId != nil && len(*s.ClientId) < 1 {
48046		invalidParams.Add(request.NewErrParamMinLen("ClientId", 1))
48047	}
48048	if s.Password != nil && len(s.Password) < 1 {
48049		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
48050	}
48051	if s.Username != nil && len(*s.Username) < 1 {
48052		invalidParams.Add(request.NewErrParamMinLen("Username", 1))
48053	}
48054
48055	if invalidParams.Len() > 0 {
48056		return invalidParams
48057	}
48058	return nil
48059}
48060
48061// SetClientId sets the ClientId field's value.
48062func (s *MqttContext) SetClientId(v string) *MqttContext {
48063	s.ClientId = &v
48064	return s
48065}
48066
48067// SetPassword sets the Password field's value.
48068func (s *MqttContext) SetPassword(v []byte) *MqttContext {
48069	s.Password = v
48070	return s
48071}
48072
48073// SetUsername sets the Username field's value.
48074func (s *MqttContext) SetUsername(v string) *MqttContext {
48075	s.Username = &v
48076	return s
48077}
48078
48079// Information about the resource that was noncompliant with the audit check.
48080type NonCompliantResource struct {
48081	_ struct{} `type:"structure"`
48082
48083	// Other information about the noncompliant resource.
48084	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
48085
48086	// Information that identifies the noncompliant resource.
48087	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
48088
48089	// The type of the noncompliant resource.
48090	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
48091}
48092
48093// String returns the string representation
48094func (s NonCompliantResource) String() string {
48095	return awsutil.Prettify(s)
48096}
48097
48098// GoString returns the string representation
48099func (s NonCompliantResource) GoString() string {
48100	return s.String()
48101}
48102
48103// SetAdditionalInfo sets the AdditionalInfo field's value.
48104func (s *NonCompliantResource) SetAdditionalInfo(v map[string]*string) *NonCompliantResource {
48105	s.AdditionalInfo = v
48106	return s
48107}
48108
48109// SetResourceIdentifier sets the ResourceIdentifier field's value.
48110func (s *NonCompliantResource) SetResourceIdentifier(v *ResourceIdentifier) *NonCompliantResource {
48111	s.ResourceIdentifier = v
48112	return s
48113}
48114
48115// SetResourceType sets the ResourceType field's value.
48116func (s *NonCompliantResource) SetResourceType(v string) *NonCompliantResource {
48117	s.ResourceType = &v
48118	return s
48119}
48120
48121// The resource is not configured.
48122type NotConfiguredException struct {
48123	_            struct{}                  `type:"structure"`
48124	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
48125
48126	// The message for the exception.
48127	Message_ *string `locationName:"message" type:"string"`
48128}
48129
48130// String returns the string representation
48131func (s NotConfiguredException) String() string {
48132	return awsutil.Prettify(s)
48133}
48134
48135// GoString returns the string representation
48136func (s NotConfiguredException) GoString() string {
48137	return s.String()
48138}
48139
48140func newErrorNotConfiguredException(v protocol.ResponseMetadata) error {
48141	return &NotConfiguredException{
48142		RespMetadata: v,
48143	}
48144}
48145
48146// Code returns the exception type name.
48147func (s *NotConfiguredException) Code() string {
48148	return "NotConfiguredException"
48149}
48150
48151// Message returns the exception's message.
48152func (s *NotConfiguredException) Message() string {
48153	if s.Message_ != nil {
48154		return *s.Message_
48155	}
48156	return ""
48157}
48158
48159// OrigErr always returns nil, satisfies awserr.Error interface.
48160func (s *NotConfiguredException) OrigErr() error {
48161	return nil
48162}
48163
48164func (s *NotConfiguredException) Error() string {
48165	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
48166}
48167
48168// Status code returns the HTTP status code for the request's response error.
48169func (s *NotConfiguredException) StatusCode() int {
48170	return s.RespMetadata.StatusCode
48171}
48172
48173// RequestID returns the service's response RequestID for request.
48174func (s *NotConfiguredException) RequestID() string {
48175	return s.RespMetadata.RequestID
48176}
48177
48178// Describes a file to be associated with an OTA update.
48179type OTAUpdateFile struct {
48180	_ struct{} `type:"structure"`
48181
48182	// A list of name/attribute pairs.
48183	Attributes map[string]*string `locationName:"attributes" type:"map"`
48184
48185	// The code signing method of the file.
48186	CodeSigning *CodeSigning `locationName:"codeSigning" type:"structure"`
48187
48188	// The location of the updated firmware.
48189	FileLocation *FileLocation `locationName:"fileLocation" type:"structure"`
48190
48191	// The name of the file.
48192	FileName *string `locationName:"fileName" type:"string"`
48193
48194	// An integer value you can include in the job document to allow your devices
48195	// to identify the type of file received from the cloud.
48196	FileType *int64 `locationName:"fileType" type:"integer"`
48197
48198	// The file version.
48199	FileVersion *string `locationName:"fileVersion" type:"string"`
48200}
48201
48202// String returns the string representation
48203func (s OTAUpdateFile) String() string {
48204	return awsutil.Prettify(s)
48205}
48206
48207// GoString returns the string representation
48208func (s OTAUpdateFile) GoString() string {
48209	return s.String()
48210}
48211
48212// Validate inspects the fields of the type to determine if they are valid.
48213func (s *OTAUpdateFile) Validate() error {
48214	invalidParams := request.ErrInvalidParams{Context: "OTAUpdateFile"}
48215	if s.CodeSigning != nil {
48216		if err := s.CodeSigning.Validate(); err != nil {
48217			invalidParams.AddNested("CodeSigning", err.(request.ErrInvalidParams))
48218		}
48219	}
48220	if s.FileLocation != nil {
48221		if err := s.FileLocation.Validate(); err != nil {
48222			invalidParams.AddNested("FileLocation", err.(request.ErrInvalidParams))
48223		}
48224	}
48225
48226	if invalidParams.Len() > 0 {
48227		return invalidParams
48228	}
48229	return nil
48230}
48231
48232// SetAttributes sets the Attributes field's value.
48233func (s *OTAUpdateFile) SetAttributes(v map[string]*string) *OTAUpdateFile {
48234	s.Attributes = v
48235	return s
48236}
48237
48238// SetCodeSigning sets the CodeSigning field's value.
48239func (s *OTAUpdateFile) SetCodeSigning(v *CodeSigning) *OTAUpdateFile {
48240	s.CodeSigning = v
48241	return s
48242}
48243
48244// SetFileLocation sets the FileLocation field's value.
48245func (s *OTAUpdateFile) SetFileLocation(v *FileLocation) *OTAUpdateFile {
48246	s.FileLocation = v
48247	return s
48248}
48249
48250// SetFileName sets the FileName field's value.
48251func (s *OTAUpdateFile) SetFileName(v string) *OTAUpdateFile {
48252	s.FileName = &v
48253	return s
48254}
48255
48256// SetFileType sets the FileType field's value.
48257func (s *OTAUpdateFile) SetFileType(v int64) *OTAUpdateFile {
48258	s.FileType = &v
48259	return s
48260}
48261
48262// SetFileVersion sets the FileVersion field's value.
48263func (s *OTAUpdateFile) SetFileVersion(v string) *OTAUpdateFile {
48264	s.FileVersion = &v
48265	return s
48266}
48267
48268// Information about an OTA update.
48269type OTAUpdateInfo struct {
48270	_ struct{} `type:"structure"`
48271
48272	// A collection of name/value pairs
48273	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
48274
48275	// The AWS IoT job ARN associated with the OTA update.
48276	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
48277
48278	// The AWS IoT job ID associated with the OTA update.
48279	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
48280
48281	// Configuration for the rollout of OTA updates.
48282	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
48283
48284	// Configuration information for pre-signed URLs. Valid when protocols contains
48285	// HTTP.
48286	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
48287
48288	// The date when the OTA update was created.
48289	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
48290
48291	// A description of the OTA update.
48292	Description *string `locationName:"description" type:"string"`
48293
48294	// Error information associated with the OTA update.
48295	ErrorInfo *ErrorInfo `locationName:"errorInfo" type:"structure"`
48296
48297	// The date when the OTA update was last updated.
48298	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
48299
48300	// The OTA update ARN.
48301	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
48302
48303	// A list of files associated with the OTA update.
48304	OtaUpdateFiles []*OTAUpdateFile `locationName:"otaUpdateFiles" min:"1" type:"list"`
48305
48306	// The OTA update ID.
48307	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
48308
48309	// The status of the OTA update.
48310	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
48311
48312	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
48313	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
48314	// can choose the protocol.
48315	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
48316
48317	// Specifies whether the OTA update will continue to run (CONTINUOUS), or will
48318	// be complete after all those things specified as targets have completed the
48319	// OTA update (SNAPSHOT). If continuous, the OTA update may also be run on a
48320	// thing when a change is detected in a target. For example, an OTA update will
48321	// run on a thing when the thing is added to a target group, even after the
48322	// OTA update was completed by all things originally in the group.
48323	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
48324
48325	// The targets of the OTA update.
48326	Targets []*string `locationName:"targets" min:"1" type:"list"`
48327}
48328
48329// String returns the string representation
48330func (s OTAUpdateInfo) String() string {
48331	return awsutil.Prettify(s)
48332}
48333
48334// GoString returns the string representation
48335func (s OTAUpdateInfo) GoString() string {
48336	return s.String()
48337}
48338
48339// SetAdditionalParameters sets the AdditionalParameters field's value.
48340func (s *OTAUpdateInfo) SetAdditionalParameters(v map[string]*string) *OTAUpdateInfo {
48341	s.AdditionalParameters = v
48342	return s
48343}
48344
48345// SetAwsIotJobArn sets the AwsIotJobArn field's value.
48346func (s *OTAUpdateInfo) SetAwsIotJobArn(v string) *OTAUpdateInfo {
48347	s.AwsIotJobArn = &v
48348	return s
48349}
48350
48351// SetAwsIotJobId sets the AwsIotJobId field's value.
48352func (s *OTAUpdateInfo) SetAwsIotJobId(v string) *OTAUpdateInfo {
48353	s.AwsIotJobId = &v
48354	return s
48355}
48356
48357// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
48358func (s *OTAUpdateInfo) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *OTAUpdateInfo {
48359	s.AwsJobExecutionsRolloutConfig = v
48360	return s
48361}
48362
48363// SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
48364func (s *OTAUpdateInfo) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *OTAUpdateInfo {
48365	s.AwsJobPresignedUrlConfig = v
48366	return s
48367}
48368
48369// SetCreationDate sets the CreationDate field's value.
48370func (s *OTAUpdateInfo) SetCreationDate(v time.Time) *OTAUpdateInfo {
48371	s.CreationDate = &v
48372	return s
48373}
48374
48375// SetDescription sets the Description field's value.
48376func (s *OTAUpdateInfo) SetDescription(v string) *OTAUpdateInfo {
48377	s.Description = &v
48378	return s
48379}
48380
48381// SetErrorInfo sets the ErrorInfo field's value.
48382func (s *OTAUpdateInfo) SetErrorInfo(v *ErrorInfo) *OTAUpdateInfo {
48383	s.ErrorInfo = v
48384	return s
48385}
48386
48387// SetLastModifiedDate sets the LastModifiedDate field's value.
48388func (s *OTAUpdateInfo) SetLastModifiedDate(v time.Time) *OTAUpdateInfo {
48389	s.LastModifiedDate = &v
48390	return s
48391}
48392
48393// SetOtaUpdateArn sets the OtaUpdateArn field's value.
48394func (s *OTAUpdateInfo) SetOtaUpdateArn(v string) *OTAUpdateInfo {
48395	s.OtaUpdateArn = &v
48396	return s
48397}
48398
48399// SetOtaUpdateFiles sets the OtaUpdateFiles field's value.
48400func (s *OTAUpdateInfo) SetOtaUpdateFiles(v []*OTAUpdateFile) *OTAUpdateInfo {
48401	s.OtaUpdateFiles = v
48402	return s
48403}
48404
48405// SetOtaUpdateId sets the OtaUpdateId field's value.
48406func (s *OTAUpdateInfo) SetOtaUpdateId(v string) *OTAUpdateInfo {
48407	s.OtaUpdateId = &v
48408	return s
48409}
48410
48411// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
48412func (s *OTAUpdateInfo) SetOtaUpdateStatus(v string) *OTAUpdateInfo {
48413	s.OtaUpdateStatus = &v
48414	return s
48415}
48416
48417// SetProtocols sets the Protocols field's value.
48418func (s *OTAUpdateInfo) SetProtocols(v []*string) *OTAUpdateInfo {
48419	s.Protocols = v
48420	return s
48421}
48422
48423// SetTargetSelection sets the TargetSelection field's value.
48424func (s *OTAUpdateInfo) SetTargetSelection(v string) *OTAUpdateInfo {
48425	s.TargetSelection = &v
48426	return s
48427}
48428
48429// SetTargets sets the Targets field's value.
48430func (s *OTAUpdateInfo) SetTargets(v []*string) *OTAUpdateInfo {
48431	s.Targets = v
48432	return s
48433}
48434
48435// An OTA update summary.
48436type OTAUpdateSummary struct {
48437	_ struct{} `type:"structure"`
48438
48439	// The date when the OTA update was created.
48440	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
48441
48442	// The OTA update ARN.
48443	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
48444
48445	// The OTA update ID.
48446	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
48447}
48448
48449// String returns the string representation
48450func (s OTAUpdateSummary) String() string {
48451	return awsutil.Prettify(s)
48452}
48453
48454// GoString returns the string representation
48455func (s OTAUpdateSummary) GoString() string {
48456	return s.String()
48457}
48458
48459// SetCreationDate sets the CreationDate field's value.
48460func (s *OTAUpdateSummary) SetCreationDate(v time.Time) *OTAUpdateSummary {
48461	s.CreationDate = &v
48462	return s
48463}
48464
48465// SetOtaUpdateArn sets the OtaUpdateArn field's value.
48466func (s *OTAUpdateSummary) SetOtaUpdateArn(v string) *OTAUpdateSummary {
48467	s.OtaUpdateArn = &v
48468	return s
48469}
48470
48471// SetOtaUpdateId sets the OtaUpdateId field's value.
48472func (s *OTAUpdateSummary) SetOtaUpdateId(v string) *OTAUpdateSummary {
48473	s.OtaUpdateId = &v
48474	return s
48475}
48476
48477// A certificate that has been transferred but not yet accepted.
48478type OutgoingCertificate struct {
48479	_ struct{} `type:"structure"`
48480
48481	// The certificate ARN.
48482	CertificateArn *string `locationName:"certificateArn" type:"string"`
48483
48484	// The certificate ID.
48485	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
48486
48487	// The certificate creation date.
48488	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
48489
48490	// The date the transfer was initiated.
48491	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
48492
48493	// The transfer message.
48494	TransferMessage *string `locationName:"transferMessage" type:"string"`
48495
48496	// The AWS account to which the transfer was made.
48497	TransferredTo *string `locationName:"transferredTo" min:"12" type:"string"`
48498}
48499
48500// String returns the string representation
48501func (s OutgoingCertificate) String() string {
48502	return awsutil.Prettify(s)
48503}
48504
48505// GoString returns the string representation
48506func (s OutgoingCertificate) GoString() string {
48507	return s.String()
48508}
48509
48510// SetCertificateArn sets the CertificateArn field's value.
48511func (s *OutgoingCertificate) SetCertificateArn(v string) *OutgoingCertificate {
48512	s.CertificateArn = &v
48513	return s
48514}
48515
48516// SetCertificateId sets the CertificateId field's value.
48517func (s *OutgoingCertificate) SetCertificateId(v string) *OutgoingCertificate {
48518	s.CertificateId = &v
48519	return s
48520}
48521
48522// SetCreationDate sets the CreationDate field's value.
48523func (s *OutgoingCertificate) SetCreationDate(v time.Time) *OutgoingCertificate {
48524	s.CreationDate = &v
48525	return s
48526}
48527
48528// SetTransferDate sets the TransferDate field's value.
48529func (s *OutgoingCertificate) SetTransferDate(v time.Time) *OutgoingCertificate {
48530	s.TransferDate = &v
48531	return s
48532}
48533
48534// SetTransferMessage sets the TransferMessage field's value.
48535func (s *OutgoingCertificate) SetTransferMessage(v string) *OutgoingCertificate {
48536	s.TransferMessage = &v
48537	return s
48538}
48539
48540// SetTransferredTo sets the TransferredTo field's value.
48541func (s *OutgoingCertificate) SetTransferredTo(v string) *OutgoingCertificate {
48542	s.TransferredTo = &v
48543	return s
48544}
48545
48546// Describes the percentile and percentile value.
48547type PercentPair struct {
48548	_ struct{} `type:"structure"`
48549
48550	// The percentile.
48551	Percent *float64 `locationName:"percent" type:"double"`
48552
48553	// The value of the percentile.
48554	Value *float64 `locationName:"value" type:"double"`
48555}
48556
48557// String returns the string representation
48558func (s PercentPair) String() string {
48559	return awsutil.Prettify(s)
48560}
48561
48562// GoString returns the string representation
48563func (s PercentPair) GoString() string {
48564	return s.String()
48565}
48566
48567// SetPercent sets the Percent field's value.
48568func (s *PercentPair) SetPercent(v float64) *PercentPair {
48569	s.Percent = &v
48570	return s
48571}
48572
48573// SetValue sets the Value field's value.
48574func (s *PercentPair) SetValue(v float64) *PercentPair {
48575	s.Value = &v
48576	return s
48577}
48578
48579// Describes an AWS IoT policy.
48580type Policy struct {
48581	_ struct{} `type:"structure"`
48582
48583	// The policy ARN.
48584	PolicyArn *string `locationName:"policyArn" type:"string"`
48585
48586	// The policy name.
48587	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
48588}
48589
48590// String returns the string representation
48591func (s Policy) String() string {
48592	return awsutil.Prettify(s)
48593}
48594
48595// GoString returns the string representation
48596func (s Policy) GoString() string {
48597	return s.String()
48598}
48599
48600// SetPolicyArn sets the PolicyArn field's value.
48601func (s *Policy) SetPolicyArn(v string) *Policy {
48602	s.PolicyArn = &v
48603	return s
48604}
48605
48606// SetPolicyName sets the PolicyName field's value.
48607func (s *Policy) SetPolicyName(v string) *Policy {
48608	s.PolicyName = &v
48609	return s
48610}
48611
48612// Describes a policy version.
48613type PolicyVersion struct {
48614	_ struct{} `type:"structure"`
48615
48616	// The date and time the policy was created.
48617	CreateDate *time.Time `locationName:"createDate" type:"timestamp"`
48618
48619	// Specifies whether the policy version is the default.
48620	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
48621
48622	// The policy version ID.
48623	VersionId *string `locationName:"versionId" type:"string"`
48624}
48625
48626// String returns the string representation
48627func (s PolicyVersion) String() string {
48628	return awsutil.Prettify(s)
48629}
48630
48631// GoString returns the string representation
48632func (s PolicyVersion) GoString() string {
48633	return s.String()
48634}
48635
48636// SetCreateDate sets the CreateDate field's value.
48637func (s *PolicyVersion) SetCreateDate(v time.Time) *PolicyVersion {
48638	s.CreateDate = &v
48639	return s
48640}
48641
48642// SetIsDefaultVersion sets the IsDefaultVersion field's value.
48643func (s *PolicyVersion) SetIsDefaultVersion(v bool) *PolicyVersion {
48644	s.IsDefaultVersion = &v
48645	return s
48646}
48647
48648// SetVersionId sets the VersionId field's value.
48649func (s *PolicyVersion) SetVersionId(v string) *PolicyVersion {
48650	s.VersionId = &v
48651	return s
48652}
48653
48654// Information about the version of the policy associated with the resource.
48655type PolicyVersionIdentifier struct {
48656	_ struct{} `type:"structure"`
48657
48658	// The name of the policy.
48659	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
48660
48661	// The ID of the version of the policy associated with the resource.
48662	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
48663}
48664
48665// String returns the string representation
48666func (s PolicyVersionIdentifier) String() string {
48667	return awsutil.Prettify(s)
48668}
48669
48670// GoString returns the string representation
48671func (s PolicyVersionIdentifier) GoString() string {
48672	return s.String()
48673}
48674
48675// Validate inspects the fields of the type to determine if they are valid.
48676func (s *PolicyVersionIdentifier) Validate() error {
48677	invalidParams := request.ErrInvalidParams{Context: "PolicyVersionIdentifier"}
48678	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
48679		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
48680	}
48681
48682	if invalidParams.Len() > 0 {
48683		return invalidParams
48684	}
48685	return nil
48686}
48687
48688// SetPolicyName sets the PolicyName field's value.
48689func (s *PolicyVersionIdentifier) SetPolicyName(v string) *PolicyVersionIdentifier {
48690	s.PolicyName = &v
48691	return s
48692}
48693
48694// SetPolicyVersionId sets the PolicyVersionId field's value.
48695func (s *PolicyVersionIdentifier) SetPolicyVersionId(v string) *PolicyVersionIdentifier {
48696	s.PolicyVersionId = &v
48697	return s
48698}
48699
48700// Configuration for pre-signed S3 URLs.
48701type PresignedUrlConfig struct {
48702	_ struct{} `type:"structure"`
48703
48704	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
48705	// the default value is 3600 seconds. Pre-signed URLs are generated when Jobs
48706	// receives an MQTT request for the job document.
48707	ExpiresInSec *int64 `locationName:"expiresInSec" min:"60" type:"long"`
48708
48709	// The ARN of an IAM role that grants grants permission to download files from
48710	// the S3 bucket where the job data/updates are stored. The role must also grant
48711	// permission for IoT to download the files.
48712	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
48713}
48714
48715// String returns the string representation
48716func (s PresignedUrlConfig) String() string {
48717	return awsutil.Prettify(s)
48718}
48719
48720// GoString returns the string representation
48721func (s PresignedUrlConfig) GoString() string {
48722	return s.String()
48723}
48724
48725// Validate inspects the fields of the type to determine if they are valid.
48726func (s *PresignedUrlConfig) Validate() error {
48727	invalidParams := request.ErrInvalidParams{Context: "PresignedUrlConfig"}
48728	if s.ExpiresInSec != nil && *s.ExpiresInSec < 60 {
48729		invalidParams.Add(request.NewErrParamMinValue("ExpiresInSec", 60))
48730	}
48731	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
48732		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
48733	}
48734
48735	if invalidParams.Len() > 0 {
48736		return invalidParams
48737	}
48738	return nil
48739}
48740
48741// SetExpiresInSec sets the ExpiresInSec field's value.
48742func (s *PresignedUrlConfig) SetExpiresInSec(v int64) *PresignedUrlConfig {
48743	s.ExpiresInSec = &v
48744	return s
48745}
48746
48747// SetRoleArn sets the RoleArn field's value.
48748func (s *PresignedUrlConfig) SetRoleArn(v string) *PresignedUrlConfig {
48749	s.RoleArn = &v
48750	return s
48751}
48752
48753// Structure that contains payloadVersion and targetArn.
48754type ProvisioningHook struct {
48755	_ struct{} `type:"structure"`
48756
48757	// The payload that was sent to the target function.
48758	//
48759	// Note: Only Lambda functions are currently supported.
48760	PayloadVersion *string `locationName:"payloadVersion" min:"10" type:"string"`
48761
48762	// The ARN of the target function.
48763	//
48764	// Note: Only Lambda functions are currently supported.
48765	//
48766	// TargetArn is a required field
48767	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
48768}
48769
48770// String returns the string representation
48771func (s ProvisioningHook) String() string {
48772	return awsutil.Prettify(s)
48773}
48774
48775// GoString returns the string representation
48776func (s ProvisioningHook) GoString() string {
48777	return s.String()
48778}
48779
48780// Validate inspects the fields of the type to determine if they are valid.
48781func (s *ProvisioningHook) Validate() error {
48782	invalidParams := request.ErrInvalidParams{Context: "ProvisioningHook"}
48783	if s.PayloadVersion != nil && len(*s.PayloadVersion) < 10 {
48784		invalidParams.Add(request.NewErrParamMinLen("PayloadVersion", 10))
48785	}
48786	if s.TargetArn == nil {
48787		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
48788	}
48789
48790	if invalidParams.Len() > 0 {
48791		return invalidParams
48792	}
48793	return nil
48794}
48795
48796// SetPayloadVersion sets the PayloadVersion field's value.
48797func (s *ProvisioningHook) SetPayloadVersion(v string) *ProvisioningHook {
48798	s.PayloadVersion = &v
48799	return s
48800}
48801
48802// SetTargetArn sets the TargetArn field's value.
48803func (s *ProvisioningHook) SetTargetArn(v string) *ProvisioningHook {
48804	s.TargetArn = &v
48805	return s
48806}
48807
48808// A summary of information about a fleet provisioning template.
48809type ProvisioningTemplateSummary struct {
48810	_ struct{} `type:"structure"`
48811
48812	// The date when the fleet provisioning template summary was created.
48813	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
48814
48815	// The description of the fleet provisioning template.
48816	Description *string `locationName:"description" type:"string"`
48817
48818	// True if the fleet provision template is enabled, otherwise false.
48819	Enabled *bool `locationName:"enabled" type:"boolean"`
48820
48821	// The date when the fleet provisioning template summary was last modified.
48822	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
48823
48824	// The ARN of the fleet provisioning template.
48825	TemplateArn *string `locationName:"templateArn" type:"string"`
48826
48827	// The name of the fleet provisioning template.
48828	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
48829}
48830
48831// String returns the string representation
48832func (s ProvisioningTemplateSummary) String() string {
48833	return awsutil.Prettify(s)
48834}
48835
48836// GoString returns the string representation
48837func (s ProvisioningTemplateSummary) GoString() string {
48838	return s.String()
48839}
48840
48841// SetCreationDate sets the CreationDate field's value.
48842func (s *ProvisioningTemplateSummary) SetCreationDate(v time.Time) *ProvisioningTemplateSummary {
48843	s.CreationDate = &v
48844	return s
48845}
48846
48847// SetDescription sets the Description field's value.
48848func (s *ProvisioningTemplateSummary) SetDescription(v string) *ProvisioningTemplateSummary {
48849	s.Description = &v
48850	return s
48851}
48852
48853// SetEnabled sets the Enabled field's value.
48854func (s *ProvisioningTemplateSummary) SetEnabled(v bool) *ProvisioningTemplateSummary {
48855	s.Enabled = &v
48856	return s
48857}
48858
48859// SetLastModifiedDate sets the LastModifiedDate field's value.
48860func (s *ProvisioningTemplateSummary) SetLastModifiedDate(v time.Time) *ProvisioningTemplateSummary {
48861	s.LastModifiedDate = &v
48862	return s
48863}
48864
48865// SetTemplateArn sets the TemplateArn field's value.
48866func (s *ProvisioningTemplateSummary) SetTemplateArn(v string) *ProvisioningTemplateSummary {
48867	s.TemplateArn = &v
48868	return s
48869}
48870
48871// SetTemplateName sets the TemplateName field's value.
48872func (s *ProvisioningTemplateSummary) SetTemplateName(v string) *ProvisioningTemplateSummary {
48873	s.TemplateName = &v
48874	return s
48875}
48876
48877// A summary of information about a fleet provision template version.
48878type ProvisioningTemplateVersionSummary struct {
48879	_ struct{} `type:"structure"`
48880
48881	// The date when the fleet provisioning template version was created
48882	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
48883
48884	// True if the fleet provisioning template version is the default version, otherwise
48885	// false.
48886	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
48887
48888	// The ID of the fleet privisioning template version.
48889	VersionId *int64 `locationName:"versionId" type:"integer"`
48890}
48891
48892// String returns the string representation
48893func (s ProvisioningTemplateVersionSummary) String() string {
48894	return awsutil.Prettify(s)
48895}
48896
48897// GoString returns the string representation
48898func (s ProvisioningTemplateVersionSummary) GoString() string {
48899	return s.String()
48900}
48901
48902// SetCreationDate sets the CreationDate field's value.
48903func (s *ProvisioningTemplateVersionSummary) SetCreationDate(v time.Time) *ProvisioningTemplateVersionSummary {
48904	s.CreationDate = &v
48905	return s
48906}
48907
48908// SetIsDefaultVersion sets the IsDefaultVersion field's value.
48909func (s *ProvisioningTemplateVersionSummary) SetIsDefaultVersion(v bool) *ProvisioningTemplateVersionSummary {
48910	s.IsDefaultVersion = &v
48911	return s
48912}
48913
48914// SetVersionId sets the VersionId field's value.
48915func (s *ProvisioningTemplateVersionSummary) SetVersionId(v int64) *ProvisioningTemplateVersionSummary {
48916	s.VersionId = &v
48917	return s
48918}
48919
48920// Parameters to define a mitigation action that publishes findings to Amazon
48921// SNS. You can implement your own custom actions in response to the Amazon
48922// SNS messages.
48923type PublishFindingToSnsParams struct {
48924	_ struct{} `type:"structure"`
48925
48926	// The ARN of the topic to which you want to publish the findings.
48927	//
48928	// TopicArn is a required field
48929	TopicArn *string `locationName:"topicArn" type:"string" required:"true"`
48930}
48931
48932// String returns the string representation
48933func (s PublishFindingToSnsParams) String() string {
48934	return awsutil.Prettify(s)
48935}
48936
48937// GoString returns the string representation
48938func (s PublishFindingToSnsParams) GoString() string {
48939	return s.String()
48940}
48941
48942// Validate inspects the fields of the type to determine if they are valid.
48943func (s *PublishFindingToSnsParams) Validate() error {
48944	invalidParams := request.ErrInvalidParams{Context: "PublishFindingToSnsParams"}
48945	if s.TopicArn == nil {
48946		invalidParams.Add(request.NewErrParamRequired("TopicArn"))
48947	}
48948
48949	if invalidParams.Len() > 0 {
48950		return invalidParams
48951	}
48952	return nil
48953}
48954
48955// SetTopicArn sets the TopicArn field's value.
48956func (s *PublishFindingToSnsParams) SetTopicArn(v string) *PublishFindingToSnsParams {
48957	s.TopicArn = &v
48958	return s
48959}
48960
48961// An asset property value entry containing the following information.
48962type PutAssetPropertyValueEntry struct {
48963	_ struct{} `type:"structure"`
48964
48965	// The ID of the AWS IoT SiteWise asset. You must specify either a propertyAlias
48966	// or both an aliasId and a propertyId. Accepts substitution templates.
48967	AssetId *string `locationName:"assetId" type:"string"`
48968
48969	// Optional. A unique identifier for this entry that you can define to better
48970	// track which message caused an error in case of failure. Accepts substitution
48971	// templates. Defaults to a new UUID.
48972	EntryId *string `locationName:"entryId" type:"string"`
48973
48974	// The name of the property alias associated with your asset property. You must
48975	// specify either a propertyAlias or both an aliasId and a propertyId. Accepts
48976	// substitution templates.
48977	PropertyAlias *string `locationName:"propertyAlias" min:"1" type:"string"`
48978
48979	// The ID of the asset's property. You must specify either a propertyAlias or
48980	// both an aliasId and a propertyId. Accepts substitution templates.
48981	PropertyId *string `locationName:"propertyId" type:"string"`
48982
48983	// A list of property values to insert that each contain timestamp, quality,
48984	// and value (TQV) information.
48985	//
48986	// PropertyValues is a required field
48987	PropertyValues []*AssetPropertyValue `locationName:"propertyValues" min:"1" type:"list" required:"true"`
48988}
48989
48990// String returns the string representation
48991func (s PutAssetPropertyValueEntry) String() string {
48992	return awsutil.Prettify(s)
48993}
48994
48995// GoString returns the string representation
48996func (s PutAssetPropertyValueEntry) GoString() string {
48997	return s.String()
48998}
48999
49000// Validate inspects the fields of the type to determine if they are valid.
49001func (s *PutAssetPropertyValueEntry) Validate() error {
49002	invalidParams := request.ErrInvalidParams{Context: "PutAssetPropertyValueEntry"}
49003	if s.PropertyAlias != nil && len(*s.PropertyAlias) < 1 {
49004		invalidParams.Add(request.NewErrParamMinLen("PropertyAlias", 1))
49005	}
49006	if s.PropertyValues == nil {
49007		invalidParams.Add(request.NewErrParamRequired("PropertyValues"))
49008	}
49009	if s.PropertyValues != nil && len(s.PropertyValues) < 1 {
49010		invalidParams.Add(request.NewErrParamMinLen("PropertyValues", 1))
49011	}
49012	if s.PropertyValues != nil {
49013		for i, v := range s.PropertyValues {
49014			if v == nil {
49015				continue
49016			}
49017			if err := v.Validate(); err != nil {
49018				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PropertyValues", i), err.(request.ErrInvalidParams))
49019			}
49020		}
49021	}
49022
49023	if invalidParams.Len() > 0 {
49024		return invalidParams
49025	}
49026	return nil
49027}
49028
49029// SetAssetId sets the AssetId field's value.
49030func (s *PutAssetPropertyValueEntry) SetAssetId(v string) *PutAssetPropertyValueEntry {
49031	s.AssetId = &v
49032	return s
49033}
49034
49035// SetEntryId sets the EntryId field's value.
49036func (s *PutAssetPropertyValueEntry) SetEntryId(v string) *PutAssetPropertyValueEntry {
49037	s.EntryId = &v
49038	return s
49039}
49040
49041// SetPropertyAlias sets the PropertyAlias field's value.
49042func (s *PutAssetPropertyValueEntry) SetPropertyAlias(v string) *PutAssetPropertyValueEntry {
49043	s.PropertyAlias = &v
49044	return s
49045}
49046
49047// SetPropertyId sets the PropertyId field's value.
49048func (s *PutAssetPropertyValueEntry) SetPropertyId(v string) *PutAssetPropertyValueEntry {
49049	s.PropertyId = &v
49050	return s
49051}
49052
49053// SetPropertyValues sets the PropertyValues field's value.
49054func (s *PutAssetPropertyValueEntry) SetPropertyValues(v []*AssetPropertyValue) *PutAssetPropertyValueEntry {
49055	s.PropertyValues = v
49056	return s
49057}
49058
49059// The input for the DynamoActionVS action that specifies the DynamoDB table
49060// to which the message data will be written.
49061type PutItemInput struct {
49062	_ struct{} `type:"structure"`
49063
49064	// The table where the message data will be written.
49065	//
49066	// TableName is a required field
49067	TableName *string `locationName:"tableName" type:"string" required:"true"`
49068}
49069
49070// String returns the string representation
49071func (s PutItemInput) String() string {
49072	return awsutil.Prettify(s)
49073}
49074
49075// GoString returns the string representation
49076func (s PutItemInput) GoString() string {
49077	return s.String()
49078}
49079
49080// Validate inspects the fields of the type to determine if they are valid.
49081func (s *PutItemInput) Validate() error {
49082	invalidParams := request.ErrInvalidParams{Context: "PutItemInput"}
49083	if s.TableName == nil {
49084		invalidParams.Add(request.NewErrParamRequired("TableName"))
49085	}
49086
49087	if invalidParams.Len() > 0 {
49088		return invalidParams
49089	}
49090	return nil
49091}
49092
49093// SetTableName sets the TableName field's value.
49094func (s *PutItemInput) SetTableName(v string) *PutItemInput {
49095	s.TableName = &v
49096	return s
49097}
49098
49099// Allows you to define a criteria to initiate the increase in rate of rollout
49100// for a job.
49101type RateIncreaseCriteria struct {
49102	_ struct{} `type:"structure"`
49103
49104	// The threshold for number of notified things that will initiate the increase
49105	// in rate of rollout.
49106	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
49107
49108	// The threshold for number of succeeded things that will initiate the increase
49109	// in rate of rollout.
49110	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
49111}
49112
49113// String returns the string representation
49114func (s RateIncreaseCriteria) String() string {
49115	return awsutil.Prettify(s)
49116}
49117
49118// GoString returns the string representation
49119func (s RateIncreaseCriteria) GoString() string {
49120	return s.String()
49121}
49122
49123// Validate inspects the fields of the type to determine if they are valid.
49124func (s *RateIncreaseCriteria) Validate() error {
49125	invalidParams := request.ErrInvalidParams{Context: "RateIncreaseCriteria"}
49126	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
49127		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
49128	}
49129	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
49130		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
49131	}
49132
49133	if invalidParams.Len() > 0 {
49134		return invalidParams
49135	}
49136	return nil
49137}
49138
49139// SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
49140func (s *RateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *RateIncreaseCriteria {
49141	s.NumberOfNotifiedThings = &v
49142	return s
49143}
49144
49145// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
49146func (s *RateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *RateIncreaseCriteria {
49147	s.NumberOfSucceededThings = &v
49148	return s
49149}
49150
49151// The input to the RegisterCACertificate operation.
49152type RegisterCACertificateInput struct {
49153	_ struct{} `type:"structure"`
49154
49155	// Allows this CA certificate to be used for auto registration of device certificates.
49156	AllowAutoRegistration *bool `location:"querystring" locationName:"allowAutoRegistration" type:"boolean"`
49157
49158	// The CA certificate.
49159	//
49160	// CaCertificate is a required field
49161	CaCertificate *string `locationName:"caCertificate" min:"1" type:"string" required:"true"`
49162
49163	// Information about the registration configuration.
49164	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
49165
49166	// A boolean value that specifies if the CA certificate is set to active.
49167	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
49168
49169	// Metadata which can be used to manage the CA certificate.
49170	//
49171	// For URI Request parameters use format: ...key1=value1&key2=value2...
49172	//
49173	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
49174	//
49175	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
49176	Tags []*Tag `locationName:"tags" type:"list"`
49177
49178	// The private key verification certificate.
49179	//
49180	// VerificationCertificate is a required field
49181	VerificationCertificate *string `locationName:"verificationCertificate" min:"1" type:"string" required:"true"`
49182}
49183
49184// String returns the string representation
49185func (s RegisterCACertificateInput) String() string {
49186	return awsutil.Prettify(s)
49187}
49188
49189// GoString returns the string representation
49190func (s RegisterCACertificateInput) GoString() string {
49191	return s.String()
49192}
49193
49194// Validate inspects the fields of the type to determine if they are valid.
49195func (s *RegisterCACertificateInput) Validate() error {
49196	invalidParams := request.ErrInvalidParams{Context: "RegisterCACertificateInput"}
49197	if s.CaCertificate == nil {
49198		invalidParams.Add(request.NewErrParamRequired("CaCertificate"))
49199	}
49200	if s.CaCertificate != nil && len(*s.CaCertificate) < 1 {
49201		invalidParams.Add(request.NewErrParamMinLen("CaCertificate", 1))
49202	}
49203	if s.VerificationCertificate == nil {
49204		invalidParams.Add(request.NewErrParamRequired("VerificationCertificate"))
49205	}
49206	if s.VerificationCertificate != nil && len(*s.VerificationCertificate) < 1 {
49207		invalidParams.Add(request.NewErrParamMinLen("VerificationCertificate", 1))
49208	}
49209	if s.RegistrationConfig != nil {
49210		if err := s.RegistrationConfig.Validate(); err != nil {
49211			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
49212		}
49213	}
49214	if s.Tags != nil {
49215		for i, v := range s.Tags {
49216			if v == nil {
49217				continue
49218			}
49219			if err := v.Validate(); err != nil {
49220				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
49221			}
49222		}
49223	}
49224
49225	if invalidParams.Len() > 0 {
49226		return invalidParams
49227	}
49228	return nil
49229}
49230
49231// SetAllowAutoRegistration sets the AllowAutoRegistration field's value.
49232func (s *RegisterCACertificateInput) SetAllowAutoRegistration(v bool) *RegisterCACertificateInput {
49233	s.AllowAutoRegistration = &v
49234	return s
49235}
49236
49237// SetCaCertificate sets the CaCertificate field's value.
49238func (s *RegisterCACertificateInput) SetCaCertificate(v string) *RegisterCACertificateInput {
49239	s.CaCertificate = &v
49240	return s
49241}
49242
49243// SetRegistrationConfig sets the RegistrationConfig field's value.
49244func (s *RegisterCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *RegisterCACertificateInput {
49245	s.RegistrationConfig = v
49246	return s
49247}
49248
49249// SetSetAsActive sets the SetAsActive field's value.
49250func (s *RegisterCACertificateInput) SetSetAsActive(v bool) *RegisterCACertificateInput {
49251	s.SetAsActive = &v
49252	return s
49253}
49254
49255// SetTags sets the Tags field's value.
49256func (s *RegisterCACertificateInput) SetTags(v []*Tag) *RegisterCACertificateInput {
49257	s.Tags = v
49258	return s
49259}
49260
49261// SetVerificationCertificate sets the VerificationCertificate field's value.
49262func (s *RegisterCACertificateInput) SetVerificationCertificate(v string) *RegisterCACertificateInput {
49263	s.VerificationCertificate = &v
49264	return s
49265}
49266
49267// The output from the RegisterCACertificateResponse operation.
49268type RegisterCACertificateOutput struct {
49269	_ struct{} `type:"structure"`
49270
49271	// The CA certificate ARN.
49272	CertificateArn *string `locationName:"certificateArn" type:"string"`
49273
49274	// The CA certificate identifier.
49275	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
49276}
49277
49278// String returns the string representation
49279func (s RegisterCACertificateOutput) String() string {
49280	return awsutil.Prettify(s)
49281}
49282
49283// GoString returns the string representation
49284func (s RegisterCACertificateOutput) GoString() string {
49285	return s.String()
49286}
49287
49288// SetCertificateArn sets the CertificateArn field's value.
49289func (s *RegisterCACertificateOutput) SetCertificateArn(v string) *RegisterCACertificateOutput {
49290	s.CertificateArn = &v
49291	return s
49292}
49293
49294// SetCertificateId sets the CertificateId field's value.
49295func (s *RegisterCACertificateOutput) SetCertificateId(v string) *RegisterCACertificateOutput {
49296	s.CertificateId = &v
49297	return s
49298}
49299
49300// The input to the RegisterCertificate operation.
49301type RegisterCertificateInput struct {
49302	_ struct{} `type:"structure"`
49303
49304	// The CA certificate used to sign the device certificate being registered.
49305	CaCertificatePem *string `locationName:"caCertificatePem" min:"1" type:"string"`
49306
49307	// The certificate data, in PEM format.
49308	//
49309	// CertificatePem is a required field
49310	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
49311
49312	// A boolean value that specifies if the certificate is set to active.
49313	//
49314	// Deprecated: SetAsActive has been deprecated
49315	SetAsActive *bool `location:"querystring" locationName:"setAsActive" deprecated:"true" type:"boolean"`
49316
49317	// The status of the register certificate request.
49318	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
49319}
49320
49321// String returns the string representation
49322func (s RegisterCertificateInput) String() string {
49323	return awsutil.Prettify(s)
49324}
49325
49326// GoString returns the string representation
49327func (s RegisterCertificateInput) GoString() string {
49328	return s.String()
49329}
49330
49331// Validate inspects the fields of the type to determine if they are valid.
49332func (s *RegisterCertificateInput) Validate() error {
49333	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateInput"}
49334	if s.CaCertificatePem != nil && len(*s.CaCertificatePem) < 1 {
49335		invalidParams.Add(request.NewErrParamMinLen("CaCertificatePem", 1))
49336	}
49337	if s.CertificatePem == nil {
49338		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
49339	}
49340	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
49341		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
49342	}
49343
49344	if invalidParams.Len() > 0 {
49345		return invalidParams
49346	}
49347	return nil
49348}
49349
49350// SetCaCertificatePem sets the CaCertificatePem field's value.
49351func (s *RegisterCertificateInput) SetCaCertificatePem(v string) *RegisterCertificateInput {
49352	s.CaCertificatePem = &v
49353	return s
49354}
49355
49356// SetCertificatePem sets the CertificatePem field's value.
49357func (s *RegisterCertificateInput) SetCertificatePem(v string) *RegisterCertificateInput {
49358	s.CertificatePem = &v
49359	return s
49360}
49361
49362// SetSetAsActive sets the SetAsActive field's value.
49363func (s *RegisterCertificateInput) SetSetAsActive(v bool) *RegisterCertificateInput {
49364	s.SetAsActive = &v
49365	return s
49366}
49367
49368// SetStatus sets the Status field's value.
49369func (s *RegisterCertificateInput) SetStatus(v string) *RegisterCertificateInput {
49370	s.Status = &v
49371	return s
49372}
49373
49374// The output from the RegisterCertificate operation.
49375type RegisterCertificateOutput struct {
49376	_ struct{} `type:"structure"`
49377
49378	// The certificate ARN.
49379	CertificateArn *string `locationName:"certificateArn" type:"string"`
49380
49381	// The certificate identifier.
49382	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
49383}
49384
49385// String returns the string representation
49386func (s RegisterCertificateOutput) String() string {
49387	return awsutil.Prettify(s)
49388}
49389
49390// GoString returns the string representation
49391func (s RegisterCertificateOutput) GoString() string {
49392	return s.String()
49393}
49394
49395// SetCertificateArn sets the CertificateArn field's value.
49396func (s *RegisterCertificateOutput) SetCertificateArn(v string) *RegisterCertificateOutput {
49397	s.CertificateArn = &v
49398	return s
49399}
49400
49401// SetCertificateId sets the CertificateId field's value.
49402func (s *RegisterCertificateOutput) SetCertificateId(v string) *RegisterCertificateOutput {
49403	s.CertificateId = &v
49404	return s
49405}
49406
49407type RegisterCertificateWithoutCAInput struct {
49408	_ struct{} `type:"structure"`
49409
49410	// The certificate data, in PEM format.
49411	//
49412	// CertificatePem is a required field
49413	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
49414
49415	// The status of the register certificate request.
49416	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
49417}
49418
49419// String returns the string representation
49420func (s RegisterCertificateWithoutCAInput) String() string {
49421	return awsutil.Prettify(s)
49422}
49423
49424// GoString returns the string representation
49425func (s RegisterCertificateWithoutCAInput) GoString() string {
49426	return s.String()
49427}
49428
49429// Validate inspects the fields of the type to determine if they are valid.
49430func (s *RegisterCertificateWithoutCAInput) Validate() error {
49431	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateWithoutCAInput"}
49432	if s.CertificatePem == nil {
49433		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
49434	}
49435	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
49436		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
49437	}
49438
49439	if invalidParams.Len() > 0 {
49440		return invalidParams
49441	}
49442	return nil
49443}
49444
49445// SetCertificatePem sets the CertificatePem field's value.
49446func (s *RegisterCertificateWithoutCAInput) SetCertificatePem(v string) *RegisterCertificateWithoutCAInput {
49447	s.CertificatePem = &v
49448	return s
49449}
49450
49451// SetStatus sets the Status field's value.
49452func (s *RegisterCertificateWithoutCAInput) SetStatus(v string) *RegisterCertificateWithoutCAInput {
49453	s.Status = &v
49454	return s
49455}
49456
49457type RegisterCertificateWithoutCAOutput struct {
49458	_ struct{} `type:"structure"`
49459
49460	// The Amazon Resource Name (ARN) of the registered certificate.
49461	CertificateArn *string `locationName:"certificateArn" type:"string"`
49462
49463	// The ID of the registered certificate. (The last part of the certificate ARN
49464	// contains the certificate ID.
49465	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
49466}
49467
49468// String returns the string representation
49469func (s RegisterCertificateWithoutCAOutput) String() string {
49470	return awsutil.Prettify(s)
49471}
49472
49473// GoString returns the string representation
49474func (s RegisterCertificateWithoutCAOutput) GoString() string {
49475	return s.String()
49476}
49477
49478// SetCertificateArn sets the CertificateArn field's value.
49479func (s *RegisterCertificateWithoutCAOutput) SetCertificateArn(v string) *RegisterCertificateWithoutCAOutput {
49480	s.CertificateArn = &v
49481	return s
49482}
49483
49484// SetCertificateId sets the CertificateId field's value.
49485func (s *RegisterCertificateWithoutCAOutput) SetCertificateId(v string) *RegisterCertificateWithoutCAOutput {
49486	s.CertificateId = &v
49487	return s
49488}
49489
49490type RegisterThingInput struct {
49491	_ struct{} `type:"structure"`
49492
49493	// The parameters for provisioning a thing. See Provisioning Templates (https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html)
49494	// for more information.
49495	Parameters map[string]*string `locationName:"parameters" type:"map"`
49496
49497	// The provisioning template. See Provisioning Devices That Have Device Certificates
49498	// (https://docs.aws.amazon.com/iot/latest/developerguide/provision-w-cert.html)
49499	// for more information.
49500	//
49501	// TemplateBody is a required field
49502	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
49503}
49504
49505// String returns the string representation
49506func (s RegisterThingInput) String() string {
49507	return awsutil.Prettify(s)
49508}
49509
49510// GoString returns the string representation
49511func (s RegisterThingInput) GoString() string {
49512	return s.String()
49513}
49514
49515// Validate inspects the fields of the type to determine if they are valid.
49516func (s *RegisterThingInput) Validate() error {
49517	invalidParams := request.ErrInvalidParams{Context: "RegisterThingInput"}
49518	if s.TemplateBody == nil {
49519		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
49520	}
49521
49522	if invalidParams.Len() > 0 {
49523		return invalidParams
49524	}
49525	return nil
49526}
49527
49528// SetParameters sets the Parameters field's value.
49529func (s *RegisterThingInput) SetParameters(v map[string]*string) *RegisterThingInput {
49530	s.Parameters = v
49531	return s
49532}
49533
49534// SetTemplateBody sets the TemplateBody field's value.
49535func (s *RegisterThingInput) SetTemplateBody(v string) *RegisterThingInput {
49536	s.TemplateBody = &v
49537	return s
49538}
49539
49540type RegisterThingOutput struct {
49541	_ struct{} `type:"structure"`
49542
49543	// The certificate data, in PEM format.
49544	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
49545
49546	// ARNs for the generated resources.
49547	ResourceArns map[string]*string `locationName:"resourceArns" type:"map"`
49548}
49549
49550// String returns the string representation
49551func (s RegisterThingOutput) String() string {
49552	return awsutil.Prettify(s)
49553}
49554
49555// GoString returns the string representation
49556func (s RegisterThingOutput) GoString() string {
49557	return s.String()
49558}
49559
49560// SetCertificatePem sets the CertificatePem field's value.
49561func (s *RegisterThingOutput) SetCertificatePem(v string) *RegisterThingOutput {
49562	s.CertificatePem = &v
49563	return s
49564}
49565
49566// SetResourceArns sets the ResourceArns field's value.
49567func (s *RegisterThingOutput) SetResourceArns(v map[string]*string) *RegisterThingOutput {
49568	s.ResourceArns = v
49569	return s
49570}
49571
49572// The registration code is invalid.
49573type RegistrationCodeValidationException struct {
49574	_            struct{}                  `type:"structure"`
49575	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
49576
49577	// Additional information about the exception.
49578	Message_ *string `locationName:"message" type:"string"`
49579}
49580
49581// String returns the string representation
49582func (s RegistrationCodeValidationException) String() string {
49583	return awsutil.Prettify(s)
49584}
49585
49586// GoString returns the string representation
49587func (s RegistrationCodeValidationException) GoString() string {
49588	return s.String()
49589}
49590
49591func newErrorRegistrationCodeValidationException(v protocol.ResponseMetadata) error {
49592	return &RegistrationCodeValidationException{
49593		RespMetadata: v,
49594	}
49595}
49596
49597// Code returns the exception type name.
49598func (s *RegistrationCodeValidationException) Code() string {
49599	return "RegistrationCodeValidationException"
49600}
49601
49602// Message returns the exception's message.
49603func (s *RegistrationCodeValidationException) Message() string {
49604	if s.Message_ != nil {
49605		return *s.Message_
49606	}
49607	return ""
49608}
49609
49610// OrigErr always returns nil, satisfies awserr.Error interface.
49611func (s *RegistrationCodeValidationException) OrigErr() error {
49612	return nil
49613}
49614
49615func (s *RegistrationCodeValidationException) Error() string {
49616	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
49617}
49618
49619// Status code returns the HTTP status code for the request's response error.
49620func (s *RegistrationCodeValidationException) StatusCode() int {
49621	return s.RespMetadata.StatusCode
49622}
49623
49624// RequestID returns the service's response RequestID for request.
49625func (s *RegistrationCodeValidationException) RequestID() string {
49626	return s.RespMetadata.RequestID
49627}
49628
49629// The registration configuration.
49630type RegistrationConfig struct {
49631	_ struct{} `type:"structure"`
49632
49633	// The ARN of the role.
49634	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
49635
49636	// The template body.
49637	TemplateBody *string `locationName:"templateBody" type:"string"`
49638}
49639
49640// String returns the string representation
49641func (s RegistrationConfig) String() string {
49642	return awsutil.Prettify(s)
49643}
49644
49645// GoString returns the string representation
49646func (s RegistrationConfig) GoString() string {
49647	return s.String()
49648}
49649
49650// Validate inspects the fields of the type to determine if they are valid.
49651func (s *RegistrationConfig) Validate() error {
49652	invalidParams := request.ErrInvalidParams{Context: "RegistrationConfig"}
49653	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
49654		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
49655	}
49656
49657	if invalidParams.Len() > 0 {
49658		return invalidParams
49659	}
49660	return nil
49661}
49662
49663// SetRoleArn sets the RoleArn field's value.
49664func (s *RegistrationConfig) SetRoleArn(v string) *RegistrationConfig {
49665	s.RoleArn = &v
49666	return s
49667}
49668
49669// SetTemplateBody sets the TemplateBody field's value.
49670func (s *RegistrationConfig) SetTemplateBody(v string) *RegistrationConfig {
49671	s.TemplateBody = &v
49672	return s
49673}
49674
49675// The input for the RejectCertificateTransfer operation.
49676type RejectCertificateTransferInput struct {
49677	_ struct{} `type:"structure"`
49678
49679	// The ID of the certificate. (The last part of the certificate ARN contains
49680	// the certificate ID.)
49681	//
49682	// CertificateId is a required field
49683	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
49684
49685	// The reason the certificate transfer was rejected.
49686	RejectReason *string `locationName:"rejectReason" type:"string"`
49687}
49688
49689// String returns the string representation
49690func (s RejectCertificateTransferInput) String() string {
49691	return awsutil.Prettify(s)
49692}
49693
49694// GoString returns the string representation
49695func (s RejectCertificateTransferInput) GoString() string {
49696	return s.String()
49697}
49698
49699// Validate inspects the fields of the type to determine if they are valid.
49700func (s *RejectCertificateTransferInput) Validate() error {
49701	invalidParams := request.ErrInvalidParams{Context: "RejectCertificateTransferInput"}
49702	if s.CertificateId == nil {
49703		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
49704	}
49705	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
49706		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
49707	}
49708
49709	if invalidParams.Len() > 0 {
49710		return invalidParams
49711	}
49712	return nil
49713}
49714
49715// SetCertificateId sets the CertificateId field's value.
49716func (s *RejectCertificateTransferInput) SetCertificateId(v string) *RejectCertificateTransferInput {
49717	s.CertificateId = &v
49718	return s
49719}
49720
49721// SetRejectReason sets the RejectReason field's value.
49722func (s *RejectCertificateTransferInput) SetRejectReason(v string) *RejectCertificateTransferInput {
49723	s.RejectReason = &v
49724	return s
49725}
49726
49727type RejectCertificateTransferOutput struct {
49728	_ struct{} `type:"structure"`
49729}
49730
49731// String returns the string representation
49732func (s RejectCertificateTransferOutput) String() string {
49733	return awsutil.Prettify(s)
49734}
49735
49736// GoString returns the string representation
49737func (s RejectCertificateTransferOutput) GoString() string {
49738	return s.String()
49739}
49740
49741// Information about a related resource.
49742type RelatedResource struct {
49743	_ struct{} `type:"structure"`
49744
49745	// Other information about the resource.
49746	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
49747
49748	// Information that identifies the resource.
49749	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
49750
49751	// The type of resource.
49752	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
49753}
49754
49755// String returns the string representation
49756func (s RelatedResource) String() string {
49757	return awsutil.Prettify(s)
49758}
49759
49760// GoString returns the string representation
49761func (s RelatedResource) GoString() string {
49762	return s.String()
49763}
49764
49765// SetAdditionalInfo sets the AdditionalInfo field's value.
49766func (s *RelatedResource) SetAdditionalInfo(v map[string]*string) *RelatedResource {
49767	s.AdditionalInfo = v
49768	return s
49769}
49770
49771// SetResourceIdentifier sets the ResourceIdentifier field's value.
49772func (s *RelatedResource) SetResourceIdentifier(v *ResourceIdentifier) *RelatedResource {
49773	s.ResourceIdentifier = v
49774	return s
49775}
49776
49777// SetResourceType sets the ResourceType field's value.
49778func (s *RelatedResource) SetResourceType(v string) *RelatedResource {
49779	s.ResourceType = &v
49780	return s
49781}
49782
49783type RemoveThingFromBillingGroupInput struct {
49784	_ struct{} `type:"structure"`
49785
49786	// The ARN of the billing group.
49787	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
49788
49789	// The name of the billing group.
49790	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
49791
49792	// The ARN of the thing to be removed from the billing group.
49793	ThingArn *string `locationName:"thingArn" type:"string"`
49794
49795	// The name of the thing to be removed from the billing group.
49796	ThingName *string `locationName:"thingName" min:"1" type:"string"`
49797}
49798
49799// String returns the string representation
49800func (s RemoveThingFromBillingGroupInput) String() string {
49801	return awsutil.Prettify(s)
49802}
49803
49804// GoString returns the string representation
49805func (s RemoveThingFromBillingGroupInput) GoString() string {
49806	return s.String()
49807}
49808
49809// Validate inspects the fields of the type to determine if they are valid.
49810func (s *RemoveThingFromBillingGroupInput) Validate() error {
49811	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromBillingGroupInput"}
49812	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
49813		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
49814	}
49815	if s.ThingName != nil && len(*s.ThingName) < 1 {
49816		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
49817	}
49818
49819	if invalidParams.Len() > 0 {
49820		return invalidParams
49821	}
49822	return nil
49823}
49824
49825// SetBillingGroupArn sets the BillingGroupArn field's value.
49826func (s *RemoveThingFromBillingGroupInput) SetBillingGroupArn(v string) *RemoveThingFromBillingGroupInput {
49827	s.BillingGroupArn = &v
49828	return s
49829}
49830
49831// SetBillingGroupName sets the BillingGroupName field's value.
49832func (s *RemoveThingFromBillingGroupInput) SetBillingGroupName(v string) *RemoveThingFromBillingGroupInput {
49833	s.BillingGroupName = &v
49834	return s
49835}
49836
49837// SetThingArn sets the ThingArn field's value.
49838func (s *RemoveThingFromBillingGroupInput) SetThingArn(v string) *RemoveThingFromBillingGroupInput {
49839	s.ThingArn = &v
49840	return s
49841}
49842
49843// SetThingName sets the ThingName field's value.
49844func (s *RemoveThingFromBillingGroupInput) SetThingName(v string) *RemoveThingFromBillingGroupInput {
49845	s.ThingName = &v
49846	return s
49847}
49848
49849type RemoveThingFromBillingGroupOutput struct {
49850	_ struct{} `type:"structure"`
49851}
49852
49853// String returns the string representation
49854func (s RemoveThingFromBillingGroupOutput) String() string {
49855	return awsutil.Prettify(s)
49856}
49857
49858// GoString returns the string representation
49859func (s RemoveThingFromBillingGroupOutput) GoString() string {
49860	return s.String()
49861}
49862
49863type RemoveThingFromThingGroupInput struct {
49864	_ struct{} `type:"structure"`
49865
49866	// The ARN of the thing to remove from the group.
49867	ThingArn *string `locationName:"thingArn" type:"string"`
49868
49869	// The group ARN.
49870	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
49871
49872	// The group name.
49873	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
49874
49875	// The name of the thing to remove from the group.
49876	ThingName *string `locationName:"thingName" min:"1" type:"string"`
49877}
49878
49879// String returns the string representation
49880func (s RemoveThingFromThingGroupInput) String() string {
49881	return awsutil.Prettify(s)
49882}
49883
49884// GoString returns the string representation
49885func (s RemoveThingFromThingGroupInput) GoString() string {
49886	return s.String()
49887}
49888
49889// Validate inspects the fields of the type to determine if they are valid.
49890func (s *RemoveThingFromThingGroupInput) Validate() error {
49891	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromThingGroupInput"}
49892	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
49893		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
49894	}
49895	if s.ThingName != nil && len(*s.ThingName) < 1 {
49896		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
49897	}
49898
49899	if invalidParams.Len() > 0 {
49900		return invalidParams
49901	}
49902	return nil
49903}
49904
49905// SetThingArn sets the ThingArn field's value.
49906func (s *RemoveThingFromThingGroupInput) SetThingArn(v string) *RemoveThingFromThingGroupInput {
49907	s.ThingArn = &v
49908	return s
49909}
49910
49911// SetThingGroupArn sets the ThingGroupArn field's value.
49912func (s *RemoveThingFromThingGroupInput) SetThingGroupArn(v string) *RemoveThingFromThingGroupInput {
49913	s.ThingGroupArn = &v
49914	return s
49915}
49916
49917// SetThingGroupName sets the ThingGroupName field's value.
49918func (s *RemoveThingFromThingGroupInput) SetThingGroupName(v string) *RemoveThingFromThingGroupInput {
49919	s.ThingGroupName = &v
49920	return s
49921}
49922
49923// SetThingName sets the ThingName field's value.
49924func (s *RemoveThingFromThingGroupInput) SetThingName(v string) *RemoveThingFromThingGroupInput {
49925	s.ThingName = &v
49926	return s
49927}
49928
49929type RemoveThingFromThingGroupOutput struct {
49930	_ struct{} `type:"structure"`
49931}
49932
49933// String returns the string representation
49934func (s RemoveThingFromThingGroupOutput) String() string {
49935	return awsutil.Prettify(s)
49936}
49937
49938// GoString returns the string representation
49939func (s RemoveThingFromThingGroupOutput) GoString() string {
49940	return s.String()
49941}
49942
49943// Parameters to define a mitigation action that adds a blank policy to restrict
49944// permissions.
49945type ReplaceDefaultPolicyVersionParams struct {
49946	_ struct{} `type:"structure"`
49947
49948	// The name of the template to be applied. The only supported value is BLANK_POLICY.
49949	//
49950	// TemplateName is a required field
49951	TemplateName *string `locationName:"templateName" type:"string" required:"true" enum:"PolicyTemplateName"`
49952}
49953
49954// String returns the string representation
49955func (s ReplaceDefaultPolicyVersionParams) String() string {
49956	return awsutil.Prettify(s)
49957}
49958
49959// GoString returns the string representation
49960func (s ReplaceDefaultPolicyVersionParams) GoString() string {
49961	return s.String()
49962}
49963
49964// Validate inspects the fields of the type to determine if they are valid.
49965func (s *ReplaceDefaultPolicyVersionParams) Validate() error {
49966	invalidParams := request.ErrInvalidParams{Context: "ReplaceDefaultPolicyVersionParams"}
49967	if s.TemplateName == nil {
49968		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
49969	}
49970
49971	if invalidParams.Len() > 0 {
49972		return invalidParams
49973	}
49974	return nil
49975}
49976
49977// SetTemplateName sets the TemplateName field's value.
49978func (s *ReplaceDefaultPolicyVersionParams) SetTemplateName(v string) *ReplaceDefaultPolicyVersionParams {
49979	s.TemplateName = &v
49980	return s
49981}
49982
49983// The input for the ReplaceTopicRule operation.
49984type ReplaceTopicRuleInput struct {
49985	_ struct{} `type:"structure" payload:"TopicRulePayload"`
49986
49987	// The name of the rule.
49988	//
49989	// RuleName is a required field
49990	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
49991
49992	// The rule payload.
49993	//
49994	// TopicRulePayload is a required field
49995	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
49996}
49997
49998// String returns the string representation
49999func (s ReplaceTopicRuleInput) String() string {
50000	return awsutil.Prettify(s)
50001}
50002
50003// GoString returns the string representation
50004func (s ReplaceTopicRuleInput) GoString() string {
50005	return s.String()
50006}
50007
50008// Validate inspects the fields of the type to determine if they are valid.
50009func (s *ReplaceTopicRuleInput) Validate() error {
50010	invalidParams := request.ErrInvalidParams{Context: "ReplaceTopicRuleInput"}
50011	if s.RuleName == nil {
50012		invalidParams.Add(request.NewErrParamRequired("RuleName"))
50013	}
50014	if s.RuleName != nil && len(*s.RuleName) < 1 {
50015		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
50016	}
50017	if s.TopicRulePayload == nil {
50018		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
50019	}
50020	if s.TopicRulePayload != nil {
50021		if err := s.TopicRulePayload.Validate(); err != nil {
50022			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
50023		}
50024	}
50025
50026	if invalidParams.Len() > 0 {
50027		return invalidParams
50028	}
50029	return nil
50030}
50031
50032// SetRuleName sets the RuleName field's value.
50033func (s *ReplaceTopicRuleInput) SetRuleName(v string) *ReplaceTopicRuleInput {
50034	s.RuleName = &v
50035	return s
50036}
50037
50038// SetTopicRulePayload sets the TopicRulePayload field's value.
50039func (s *ReplaceTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *ReplaceTopicRuleInput {
50040	s.TopicRulePayload = v
50041	return s
50042}
50043
50044type ReplaceTopicRuleOutput struct {
50045	_ struct{} `type:"structure"`
50046}
50047
50048// String returns the string representation
50049func (s ReplaceTopicRuleOutput) String() string {
50050	return awsutil.Prettify(s)
50051}
50052
50053// GoString returns the string representation
50054func (s ReplaceTopicRuleOutput) GoString() string {
50055	return s.String()
50056}
50057
50058// Describes an action to republish to another topic.
50059type RepublishAction struct {
50060	_ struct{} `type:"structure"`
50061
50062	// The Quality of Service (QoS) level to use when republishing messages. The
50063	// default value is 0.
50064	Qos *int64 `locationName:"qos" type:"integer"`
50065
50066	// The ARN of the IAM role that grants access.
50067	//
50068	// RoleArn is a required field
50069	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
50070
50071	// The name of the MQTT topic.
50072	//
50073	// Topic is a required field
50074	Topic *string `locationName:"topic" type:"string" required:"true"`
50075}
50076
50077// String returns the string representation
50078func (s RepublishAction) String() string {
50079	return awsutil.Prettify(s)
50080}
50081
50082// GoString returns the string representation
50083func (s RepublishAction) GoString() string {
50084	return s.String()
50085}
50086
50087// Validate inspects the fields of the type to determine if they are valid.
50088func (s *RepublishAction) Validate() error {
50089	invalidParams := request.ErrInvalidParams{Context: "RepublishAction"}
50090	if s.RoleArn == nil {
50091		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
50092	}
50093	if s.Topic == nil {
50094		invalidParams.Add(request.NewErrParamRequired("Topic"))
50095	}
50096
50097	if invalidParams.Len() > 0 {
50098		return invalidParams
50099	}
50100	return nil
50101}
50102
50103// SetQos sets the Qos field's value.
50104func (s *RepublishAction) SetQos(v int64) *RepublishAction {
50105	s.Qos = &v
50106	return s
50107}
50108
50109// SetRoleArn sets the RoleArn field's value.
50110func (s *RepublishAction) SetRoleArn(v string) *RepublishAction {
50111	s.RoleArn = &v
50112	return s
50113}
50114
50115// SetTopic sets the Topic field's value.
50116func (s *RepublishAction) SetTopic(v string) *RepublishAction {
50117	s.Topic = &v
50118	return s
50119}
50120
50121// The resource already exists.
50122type ResourceAlreadyExistsException struct {
50123	_            struct{}                  `type:"structure"`
50124	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
50125
50126	// The message for the exception.
50127	Message_ *string `locationName:"message" type:"string"`
50128
50129	// The ARN of the resource that caused the exception.
50130	ResourceArn *string `locationName:"resourceArn" type:"string"`
50131
50132	// The ID of the resource that caused the exception.
50133	ResourceId *string `locationName:"resourceId" type:"string"`
50134}
50135
50136// String returns the string representation
50137func (s ResourceAlreadyExistsException) String() string {
50138	return awsutil.Prettify(s)
50139}
50140
50141// GoString returns the string representation
50142func (s ResourceAlreadyExistsException) GoString() string {
50143	return s.String()
50144}
50145
50146func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
50147	return &ResourceAlreadyExistsException{
50148		RespMetadata: v,
50149	}
50150}
50151
50152// Code returns the exception type name.
50153func (s *ResourceAlreadyExistsException) Code() string {
50154	return "ResourceAlreadyExistsException"
50155}
50156
50157// Message returns the exception's message.
50158func (s *ResourceAlreadyExistsException) Message() string {
50159	if s.Message_ != nil {
50160		return *s.Message_
50161	}
50162	return ""
50163}
50164
50165// OrigErr always returns nil, satisfies awserr.Error interface.
50166func (s *ResourceAlreadyExistsException) OrigErr() error {
50167	return nil
50168}
50169
50170func (s *ResourceAlreadyExistsException) Error() string {
50171	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
50172}
50173
50174// Status code returns the HTTP status code for the request's response error.
50175func (s *ResourceAlreadyExistsException) StatusCode() int {
50176	return s.RespMetadata.StatusCode
50177}
50178
50179// RequestID returns the service's response RequestID for request.
50180func (s *ResourceAlreadyExistsException) RequestID() string {
50181	return s.RespMetadata.RequestID
50182}
50183
50184// Information that identifies the noncompliant resource.
50185type ResourceIdentifier struct {
50186	_ struct{} `type:"structure"`
50187
50188	// The account with which the resource is associated.
50189	Account *string `locationName:"account" min:"12" type:"string"`
50190
50191	// The ID of the CA certificate used to authorize the certificate.
50192	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
50193
50194	// The client ID.
50195	ClientId *string `locationName:"clientId" type:"string"`
50196
50197	// The ID of the Amazon Cognito identity pool.
50198	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
50199
50200	// The ID of the certificate attached to the resource.
50201	DeviceCertificateId *string `locationName:"deviceCertificateId" min:"64" type:"string"`
50202
50203	// The ARN of the IAM role that has overly permissive actions.
50204	IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string"`
50205
50206	// The version of the policy associated with the resource.
50207	PolicyVersionIdentifier *PolicyVersionIdentifier `locationName:"policyVersionIdentifier" type:"structure"`
50208
50209	// The ARN of the role alias that has overly permissive actions.
50210	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
50211}
50212
50213// String returns the string representation
50214func (s ResourceIdentifier) String() string {
50215	return awsutil.Prettify(s)
50216}
50217
50218// GoString returns the string representation
50219func (s ResourceIdentifier) GoString() string {
50220	return s.String()
50221}
50222
50223// Validate inspects the fields of the type to determine if they are valid.
50224func (s *ResourceIdentifier) Validate() error {
50225	invalidParams := request.ErrInvalidParams{Context: "ResourceIdentifier"}
50226	if s.Account != nil && len(*s.Account) < 12 {
50227		invalidParams.Add(request.NewErrParamMinLen("Account", 12))
50228	}
50229	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
50230		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
50231	}
50232	if s.DeviceCertificateId != nil && len(*s.DeviceCertificateId) < 64 {
50233		invalidParams.Add(request.NewErrParamMinLen("DeviceCertificateId", 64))
50234	}
50235	if s.IamRoleArn != nil && len(*s.IamRoleArn) < 20 {
50236		invalidParams.Add(request.NewErrParamMinLen("IamRoleArn", 20))
50237	}
50238	if s.RoleAliasArn != nil && len(*s.RoleAliasArn) < 1 {
50239		invalidParams.Add(request.NewErrParamMinLen("RoleAliasArn", 1))
50240	}
50241	if s.PolicyVersionIdentifier != nil {
50242		if err := s.PolicyVersionIdentifier.Validate(); err != nil {
50243			invalidParams.AddNested("PolicyVersionIdentifier", err.(request.ErrInvalidParams))
50244		}
50245	}
50246
50247	if invalidParams.Len() > 0 {
50248		return invalidParams
50249	}
50250	return nil
50251}
50252
50253// SetAccount sets the Account field's value.
50254func (s *ResourceIdentifier) SetAccount(v string) *ResourceIdentifier {
50255	s.Account = &v
50256	return s
50257}
50258
50259// SetCaCertificateId sets the CaCertificateId field's value.
50260func (s *ResourceIdentifier) SetCaCertificateId(v string) *ResourceIdentifier {
50261	s.CaCertificateId = &v
50262	return s
50263}
50264
50265// SetClientId sets the ClientId field's value.
50266func (s *ResourceIdentifier) SetClientId(v string) *ResourceIdentifier {
50267	s.ClientId = &v
50268	return s
50269}
50270
50271// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
50272func (s *ResourceIdentifier) SetCognitoIdentityPoolId(v string) *ResourceIdentifier {
50273	s.CognitoIdentityPoolId = &v
50274	return s
50275}
50276
50277// SetDeviceCertificateId sets the DeviceCertificateId field's value.
50278func (s *ResourceIdentifier) SetDeviceCertificateId(v string) *ResourceIdentifier {
50279	s.DeviceCertificateId = &v
50280	return s
50281}
50282
50283// SetIamRoleArn sets the IamRoleArn field's value.
50284func (s *ResourceIdentifier) SetIamRoleArn(v string) *ResourceIdentifier {
50285	s.IamRoleArn = &v
50286	return s
50287}
50288
50289// SetPolicyVersionIdentifier sets the PolicyVersionIdentifier field's value.
50290func (s *ResourceIdentifier) SetPolicyVersionIdentifier(v *PolicyVersionIdentifier) *ResourceIdentifier {
50291	s.PolicyVersionIdentifier = v
50292	return s
50293}
50294
50295// SetRoleAliasArn sets the RoleAliasArn field's value.
50296func (s *ResourceIdentifier) SetRoleAliasArn(v string) *ResourceIdentifier {
50297	s.RoleAliasArn = &v
50298	return s
50299}
50300
50301// The specified resource does not exist.
50302type ResourceNotFoundException struct {
50303	_            struct{}                  `type:"structure"`
50304	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
50305
50306	// The message for the exception.
50307	Message_ *string `locationName:"message" type:"string"`
50308}
50309
50310// String returns the string representation
50311func (s ResourceNotFoundException) String() string {
50312	return awsutil.Prettify(s)
50313}
50314
50315// GoString returns the string representation
50316func (s ResourceNotFoundException) GoString() string {
50317	return s.String()
50318}
50319
50320func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
50321	return &ResourceNotFoundException{
50322		RespMetadata: v,
50323	}
50324}
50325
50326// Code returns the exception type name.
50327func (s *ResourceNotFoundException) Code() string {
50328	return "ResourceNotFoundException"
50329}
50330
50331// Message returns the exception's message.
50332func (s *ResourceNotFoundException) Message() string {
50333	if s.Message_ != nil {
50334		return *s.Message_
50335	}
50336	return ""
50337}
50338
50339// OrigErr always returns nil, satisfies awserr.Error interface.
50340func (s *ResourceNotFoundException) OrigErr() error {
50341	return nil
50342}
50343
50344func (s *ResourceNotFoundException) Error() string {
50345	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
50346}
50347
50348// Status code returns the HTTP status code for the request's response error.
50349func (s *ResourceNotFoundException) StatusCode() int {
50350	return s.RespMetadata.StatusCode
50351}
50352
50353// RequestID returns the service's response RequestID for request.
50354func (s *ResourceNotFoundException) RequestID() string {
50355	return s.RespMetadata.RequestID
50356}
50357
50358// The resource registration failed.
50359type ResourceRegistrationFailureException struct {
50360	_            struct{}                  `type:"structure"`
50361	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
50362
50363	// The message for the exception.
50364	Message_ *string `locationName:"message" type:"string"`
50365}
50366
50367// String returns the string representation
50368func (s ResourceRegistrationFailureException) String() string {
50369	return awsutil.Prettify(s)
50370}
50371
50372// GoString returns the string representation
50373func (s ResourceRegistrationFailureException) GoString() string {
50374	return s.String()
50375}
50376
50377func newErrorResourceRegistrationFailureException(v protocol.ResponseMetadata) error {
50378	return &ResourceRegistrationFailureException{
50379		RespMetadata: v,
50380	}
50381}
50382
50383// Code returns the exception type name.
50384func (s *ResourceRegistrationFailureException) Code() string {
50385	return "ResourceRegistrationFailureException"
50386}
50387
50388// Message returns the exception's message.
50389func (s *ResourceRegistrationFailureException) Message() string {
50390	if s.Message_ != nil {
50391		return *s.Message_
50392	}
50393	return ""
50394}
50395
50396// OrigErr always returns nil, satisfies awserr.Error interface.
50397func (s *ResourceRegistrationFailureException) OrigErr() error {
50398	return nil
50399}
50400
50401func (s *ResourceRegistrationFailureException) Error() string {
50402	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
50403}
50404
50405// Status code returns the HTTP status code for the request's response error.
50406func (s *ResourceRegistrationFailureException) StatusCode() int {
50407	return s.RespMetadata.StatusCode
50408}
50409
50410// RequestID returns the service's response RequestID for request.
50411func (s *ResourceRegistrationFailureException) RequestID() string {
50412	return s.RespMetadata.RequestID
50413}
50414
50415// Role alias description.
50416type RoleAliasDescription struct {
50417	_ struct{} `type:"structure"`
50418
50419	// The UNIX timestamp of when the role alias was created.
50420	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
50421
50422	// The number of seconds for which the credential is valid.
50423	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
50424
50425	// The UNIX timestamp of when the role alias was last modified.
50426	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
50427
50428	// The role alias owner.
50429	Owner *string `locationName:"owner" min:"12" type:"string"`
50430
50431	// The role alias.
50432	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
50433
50434	// The ARN of the role alias.
50435	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
50436
50437	// The role ARN.
50438	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
50439}
50440
50441// String returns the string representation
50442func (s RoleAliasDescription) String() string {
50443	return awsutil.Prettify(s)
50444}
50445
50446// GoString returns the string representation
50447func (s RoleAliasDescription) GoString() string {
50448	return s.String()
50449}
50450
50451// SetCreationDate sets the CreationDate field's value.
50452func (s *RoleAliasDescription) SetCreationDate(v time.Time) *RoleAliasDescription {
50453	s.CreationDate = &v
50454	return s
50455}
50456
50457// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
50458func (s *RoleAliasDescription) SetCredentialDurationSeconds(v int64) *RoleAliasDescription {
50459	s.CredentialDurationSeconds = &v
50460	return s
50461}
50462
50463// SetLastModifiedDate sets the LastModifiedDate field's value.
50464func (s *RoleAliasDescription) SetLastModifiedDate(v time.Time) *RoleAliasDescription {
50465	s.LastModifiedDate = &v
50466	return s
50467}
50468
50469// SetOwner sets the Owner field's value.
50470func (s *RoleAliasDescription) SetOwner(v string) *RoleAliasDescription {
50471	s.Owner = &v
50472	return s
50473}
50474
50475// SetRoleAlias sets the RoleAlias field's value.
50476func (s *RoleAliasDescription) SetRoleAlias(v string) *RoleAliasDescription {
50477	s.RoleAlias = &v
50478	return s
50479}
50480
50481// SetRoleAliasArn sets the RoleAliasArn field's value.
50482func (s *RoleAliasDescription) SetRoleAliasArn(v string) *RoleAliasDescription {
50483	s.RoleAliasArn = &v
50484	return s
50485}
50486
50487// SetRoleArn sets the RoleArn field's value.
50488func (s *RoleAliasDescription) SetRoleArn(v string) *RoleAliasDescription {
50489	s.RoleArn = &v
50490	return s
50491}
50492
50493// Describes an action to write data to an Amazon S3 bucket.
50494type S3Action struct {
50495	_ struct{} `type:"structure"`
50496
50497	// The Amazon S3 bucket.
50498	//
50499	// BucketName is a required field
50500	BucketName *string `locationName:"bucketName" type:"string" required:"true"`
50501
50502	// The Amazon S3 canned ACL that controls access to the object identified by
50503	// the object key. For more information, see S3 canned ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl).
50504	CannedAcl *string `locationName:"cannedAcl" type:"string" enum:"CannedAccessControlList"`
50505
50506	// The object key. For more information, see Actions, resources, and condition
50507	// keys for Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html).
50508	//
50509	// Key is a required field
50510	Key *string `locationName:"key" type:"string" required:"true"`
50511
50512	// The ARN of the IAM role that grants access.
50513	//
50514	// RoleArn is a required field
50515	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
50516}
50517
50518// String returns the string representation
50519func (s S3Action) String() string {
50520	return awsutil.Prettify(s)
50521}
50522
50523// GoString returns the string representation
50524func (s S3Action) GoString() string {
50525	return s.String()
50526}
50527
50528// Validate inspects the fields of the type to determine if they are valid.
50529func (s *S3Action) Validate() error {
50530	invalidParams := request.ErrInvalidParams{Context: "S3Action"}
50531	if s.BucketName == nil {
50532		invalidParams.Add(request.NewErrParamRequired("BucketName"))
50533	}
50534	if s.Key == nil {
50535		invalidParams.Add(request.NewErrParamRequired("Key"))
50536	}
50537	if s.RoleArn == nil {
50538		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
50539	}
50540
50541	if invalidParams.Len() > 0 {
50542		return invalidParams
50543	}
50544	return nil
50545}
50546
50547// SetBucketName sets the BucketName field's value.
50548func (s *S3Action) SetBucketName(v string) *S3Action {
50549	s.BucketName = &v
50550	return s
50551}
50552
50553// SetCannedAcl sets the CannedAcl field's value.
50554func (s *S3Action) SetCannedAcl(v string) *S3Action {
50555	s.CannedAcl = &v
50556	return s
50557}
50558
50559// SetKey sets the Key field's value.
50560func (s *S3Action) SetKey(v string) *S3Action {
50561	s.Key = &v
50562	return s
50563}
50564
50565// SetRoleArn sets the RoleArn field's value.
50566func (s *S3Action) SetRoleArn(v string) *S3Action {
50567	s.RoleArn = &v
50568	return s
50569}
50570
50571// Describes the location of updated firmware in S3.
50572type S3Destination struct {
50573	_ struct{} `type:"structure"`
50574
50575	// The S3 bucket that contains the updated firmware.
50576	Bucket *string `locationName:"bucket" min:"1" type:"string"`
50577
50578	// The S3 prefix.
50579	Prefix *string `locationName:"prefix" type:"string"`
50580}
50581
50582// String returns the string representation
50583func (s S3Destination) String() string {
50584	return awsutil.Prettify(s)
50585}
50586
50587// GoString returns the string representation
50588func (s S3Destination) GoString() string {
50589	return s.String()
50590}
50591
50592// Validate inspects the fields of the type to determine if they are valid.
50593func (s *S3Destination) Validate() error {
50594	invalidParams := request.ErrInvalidParams{Context: "S3Destination"}
50595	if s.Bucket != nil && len(*s.Bucket) < 1 {
50596		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
50597	}
50598
50599	if invalidParams.Len() > 0 {
50600		return invalidParams
50601	}
50602	return nil
50603}
50604
50605// SetBucket sets the Bucket field's value.
50606func (s *S3Destination) SetBucket(v string) *S3Destination {
50607	s.Bucket = &v
50608	return s
50609}
50610
50611// SetPrefix sets the Prefix field's value.
50612func (s *S3Destination) SetPrefix(v string) *S3Destination {
50613	s.Prefix = &v
50614	return s
50615}
50616
50617// The S3 location.
50618type S3Location struct {
50619	_ struct{} `type:"structure"`
50620
50621	// The S3 bucket.
50622	Bucket *string `locationName:"bucket" min:"1" type:"string"`
50623
50624	// The S3 key.
50625	Key *string `locationName:"key" min:"1" type:"string"`
50626
50627	// The S3 bucket version.
50628	Version *string `locationName:"version" type:"string"`
50629}
50630
50631// String returns the string representation
50632func (s S3Location) String() string {
50633	return awsutil.Prettify(s)
50634}
50635
50636// GoString returns the string representation
50637func (s S3Location) GoString() string {
50638	return s.String()
50639}
50640
50641// Validate inspects the fields of the type to determine if they are valid.
50642func (s *S3Location) Validate() error {
50643	invalidParams := request.ErrInvalidParams{Context: "S3Location"}
50644	if s.Bucket != nil && len(*s.Bucket) < 1 {
50645		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
50646	}
50647	if s.Key != nil && len(*s.Key) < 1 {
50648		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
50649	}
50650
50651	if invalidParams.Len() > 0 {
50652		return invalidParams
50653	}
50654	return nil
50655}
50656
50657// SetBucket sets the Bucket field's value.
50658func (s *S3Location) SetBucket(v string) *S3Location {
50659	s.Bucket = &v
50660	return s
50661}
50662
50663// SetKey sets the Key field's value.
50664func (s *S3Location) SetKey(v string) *S3Location {
50665	s.Key = &v
50666	return s
50667}
50668
50669// SetVersion sets the Version field's value.
50670func (s *S3Location) SetVersion(v string) *S3Location {
50671	s.Version = &v
50672	return s
50673}
50674
50675// Describes an action to write a message to a Salesforce IoT Cloud Input Stream.
50676type SalesforceAction struct {
50677	_ struct{} `type:"structure"`
50678
50679	// The token used to authenticate access to the Salesforce IoT Cloud Input Stream.
50680	// The token is available from the Salesforce IoT Cloud platform after creation
50681	// of the Input Stream.
50682	//
50683	// Token is a required field
50684	Token *string `locationName:"token" min:"40" type:"string" required:"true"`
50685
50686	// The URL exposed by the Salesforce IoT Cloud Input Stream. The URL is available
50687	// from the Salesforce IoT Cloud platform after creation of the Input Stream.
50688	//
50689	// Url is a required field
50690	Url *string `locationName:"url" type:"string" required:"true"`
50691}
50692
50693// String returns the string representation
50694func (s SalesforceAction) String() string {
50695	return awsutil.Prettify(s)
50696}
50697
50698// GoString returns the string representation
50699func (s SalesforceAction) GoString() string {
50700	return s.String()
50701}
50702
50703// Validate inspects the fields of the type to determine if they are valid.
50704func (s *SalesforceAction) Validate() error {
50705	invalidParams := request.ErrInvalidParams{Context: "SalesforceAction"}
50706	if s.Token == nil {
50707		invalidParams.Add(request.NewErrParamRequired("Token"))
50708	}
50709	if s.Token != nil && len(*s.Token) < 40 {
50710		invalidParams.Add(request.NewErrParamMinLen("Token", 40))
50711	}
50712	if s.Url == nil {
50713		invalidParams.Add(request.NewErrParamRequired("Url"))
50714	}
50715
50716	if invalidParams.Len() > 0 {
50717		return invalidParams
50718	}
50719	return nil
50720}
50721
50722// SetToken sets the Token field's value.
50723func (s *SalesforceAction) SetToken(v string) *SalesforceAction {
50724	s.Token = &v
50725	return s
50726}
50727
50728// SetUrl sets the Url field's value.
50729func (s *SalesforceAction) SetUrl(v string) *SalesforceAction {
50730	s.Url = &v
50731	return s
50732}
50733
50734// Information about the scheduled audit.
50735type ScheduledAuditMetadata struct {
50736	_ struct{} `type:"structure"`
50737
50738	// The day of the month on which the scheduled audit is run (if the frequency
50739	// is "MONTHLY"). If days 29-31 are specified, and the month does not have that
50740	// many days, the audit takes place on the "LAST" day of the month.
50741	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
50742
50743	// The day of the week on which the scheduled audit is run (if the frequency
50744	// is "WEEKLY" or "BIWEEKLY").
50745	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
50746
50747	// How often the scheduled audit occurs.
50748	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
50749
50750	// The ARN of the scheduled audit.
50751	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
50752
50753	// The name of the scheduled audit.
50754	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
50755}
50756
50757// String returns the string representation
50758func (s ScheduledAuditMetadata) String() string {
50759	return awsutil.Prettify(s)
50760}
50761
50762// GoString returns the string representation
50763func (s ScheduledAuditMetadata) GoString() string {
50764	return s.String()
50765}
50766
50767// SetDayOfMonth sets the DayOfMonth field's value.
50768func (s *ScheduledAuditMetadata) SetDayOfMonth(v string) *ScheduledAuditMetadata {
50769	s.DayOfMonth = &v
50770	return s
50771}
50772
50773// SetDayOfWeek sets the DayOfWeek field's value.
50774func (s *ScheduledAuditMetadata) SetDayOfWeek(v string) *ScheduledAuditMetadata {
50775	s.DayOfWeek = &v
50776	return s
50777}
50778
50779// SetFrequency sets the Frequency field's value.
50780func (s *ScheduledAuditMetadata) SetFrequency(v string) *ScheduledAuditMetadata {
50781	s.Frequency = &v
50782	return s
50783}
50784
50785// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
50786func (s *ScheduledAuditMetadata) SetScheduledAuditArn(v string) *ScheduledAuditMetadata {
50787	s.ScheduledAuditArn = &v
50788	return s
50789}
50790
50791// SetScheduledAuditName sets the ScheduledAuditName field's value.
50792func (s *ScheduledAuditMetadata) SetScheduledAuditName(v string) *ScheduledAuditMetadata {
50793	s.ScheduledAuditName = &v
50794	return s
50795}
50796
50797type SearchIndexInput struct {
50798	_ struct{} `type:"structure"`
50799
50800	// The search index name.
50801	IndexName *string `locationName:"indexName" min:"1" type:"string"`
50802
50803	// The maximum number of results to return at one time.
50804	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
50805
50806	// The token used to get the next set of results, or null if there are no additional
50807	// results.
50808	NextToken *string `locationName:"nextToken" type:"string"`
50809
50810	// The search query string.
50811	//
50812	// QueryString is a required field
50813	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
50814
50815	// The query version.
50816	QueryVersion *string `locationName:"queryVersion" type:"string"`
50817}
50818
50819// String returns the string representation
50820func (s SearchIndexInput) String() string {
50821	return awsutil.Prettify(s)
50822}
50823
50824// GoString returns the string representation
50825func (s SearchIndexInput) GoString() string {
50826	return s.String()
50827}
50828
50829// Validate inspects the fields of the type to determine if they are valid.
50830func (s *SearchIndexInput) Validate() error {
50831	invalidParams := request.ErrInvalidParams{Context: "SearchIndexInput"}
50832	if s.IndexName != nil && len(*s.IndexName) < 1 {
50833		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
50834	}
50835	if s.MaxResults != nil && *s.MaxResults < 1 {
50836		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
50837	}
50838	if s.QueryString == nil {
50839		invalidParams.Add(request.NewErrParamRequired("QueryString"))
50840	}
50841	if s.QueryString != nil && len(*s.QueryString) < 1 {
50842		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
50843	}
50844
50845	if invalidParams.Len() > 0 {
50846		return invalidParams
50847	}
50848	return nil
50849}
50850
50851// SetIndexName sets the IndexName field's value.
50852func (s *SearchIndexInput) SetIndexName(v string) *SearchIndexInput {
50853	s.IndexName = &v
50854	return s
50855}
50856
50857// SetMaxResults sets the MaxResults field's value.
50858func (s *SearchIndexInput) SetMaxResults(v int64) *SearchIndexInput {
50859	s.MaxResults = &v
50860	return s
50861}
50862
50863// SetNextToken sets the NextToken field's value.
50864func (s *SearchIndexInput) SetNextToken(v string) *SearchIndexInput {
50865	s.NextToken = &v
50866	return s
50867}
50868
50869// SetQueryString sets the QueryString field's value.
50870func (s *SearchIndexInput) SetQueryString(v string) *SearchIndexInput {
50871	s.QueryString = &v
50872	return s
50873}
50874
50875// SetQueryVersion sets the QueryVersion field's value.
50876func (s *SearchIndexInput) SetQueryVersion(v string) *SearchIndexInput {
50877	s.QueryVersion = &v
50878	return s
50879}
50880
50881type SearchIndexOutput struct {
50882	_ struct{} `type:"structure"`
50883
50884	// The token used to get the next set of results, or null if there are no additional
50885	// results.
50886	NextToken *string `locationName:"nextToken" type:"string"`
50887
50888	// The thing groups that match the search query.
50889	ThingGroups []*ThingGroupDocument `locationName:"thingGroups" type:"list"`
50890
50891	// The things that match the search query.
50892	Things []*ThingDocument `locationName:"things" type:"list"`
50893}
50894
50895// String returns the string representation
50896func (s SearchIndexOutput) String() string {
50897	return awsutil.Prettify(s)
50898}
50899
50900// GoString returns the string representation
50901func (s SearchIndexOutput) GoString() string {
50902	return s.String()
50903}
50904
50905// SetNextToken sets the NextToken field's value.
50906func (s *SearchIndexOutput) SetNextToken(v string) *SearchIndexOutput {
50907	s.NextToken = &v
50908	return s
50909}
50910
50911// SetThingGroups sets the ThingGroups field's value.
50912func (s *SearchIndexOutput) SetThingGroups(v []*ThingGroupDocument) *SearchIndexOutput {
50913	s.ThingGroups = v
50914	return s
50915}
50916
50917// SetThings sets the Things field's value.
50918func (s *SearchIndexOutput) SetThings(v []*ThingDocument) *SearchIndexOutput {
50919	s.Things = v
50920	return s
50921}
50922
50923// Identifying information for a Device Defender security profile.
50924type SecurityProfileIdentifier struct {
50925	_ struct{} `type:"structure"`
50926
50927	// The ARN of the security profile.
50928	//
50929	// Arn is a required field
50930	Arn *string `locationName:"arn" type:"string" required:"true"`
50931
50932	// The name you've given to the security profile.
50933	//
50934	// Name is a required field
50935	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
50936}
50937
50938// String returns the string representation
50939func (s SecurityProfileIdentifier) String() string {
50940	return awsutil.Prettify(s)
50941}
50942
50943// GoString returns the string representation
50944func (s SecurityProfileIdentifier) GoString() string {
50945	return s.String()
50946}
50947
50948// SetArn sets the Arn field's value.
50949func (s *SecurityProfileIdentifier) SetArn(v string) *SecurityProfileIdentifier {
50950	s.Arn = &v
50951	return s
50952}
50953
50954// SetName sets the Name field's value.
50955func (s *SecurityProfileIdentifier) SetName(v string) *SecurityProfileIdentifier {
50956	s.Name = &v
50957	return s
50958}
50959
50960// A target to which an alert is sent when a security profile behavior is violated.
50961type SecurityProfileTarget struct {
50962	_ struct{} `type:"structure"`
50963
50964	// The ARN of the security profile.
50965	//
50966	// Arn is a required field
50967	Arn *string `locationName:"arn" type:"string" required:"true"`
50968}
50969
50970// String returns the string representation
50971func (s SecurityProfileTarget) String() string {
50972	return awsutil.Prettify(s)
50973}
50974
50975// GoString returns the string representation
50976func (s SecurityProfileTarget) GoString() string {
50977	return s.String()
50978}
50979
50980// SetArn sets the Arn field's value.
50981func (s *SecurityProfileTarget) SetArn(v string) *SecurityProfileTarget {
50982	s.Arn = &v
50983	return s
50984}
50985
50986// Information about a security profile and the target associated with it.
50987type SecurityProfileTargetMapping struct {
50988	_ struct{} `type:"structure"`
50989
50990	// Information that identifies the security profile.
50991	SecurityProfileIdentifier *SecurityProfileIdentifier `locationName:"securityProfileIdentifier" type:"structure"`
50992
50993	// Information about the target (thing group) associated with the security profile.
50994	Target *SecurityProfileTarget `locationName:"target" type:"structure"`
50995}
50996
50997// String returns the string representation
50998func (s SecurityProfileTargetMapping) String() string {
50999	return awsutil.Prettify(s)
51000}
51001
51002// GoString returns the string representation
51003func (s SecurityProfileTargetMapping) GoString() string {
51004	return s.String()
51005}
51006
51007// SetSecurityProfileIdentifier sets the SecurityProfileIdentifier field's value.
51008func (s *SecurityProfileTargetMapping) SetSecurityProfileIdentifier(v *SecurityProfileIdentifier) *SecurityProfileTargetMapping {
51009	s.SecurityProfileIdentifier = v
51010	return s
51011}
51012
51013// SetTarget sets the Target field's value.
51014func (s *SecurityProfileTargetMapping) SetTarget(v *SecurityProfileTarget) *SecurityProfileTargetMapping {
51015	s.Target = v
51016	return s
51017}
51018
51019// An object that contains information about a server certificate.
51020type ServerCertificateSummary struct {
51021	_ struct{} `type:"structure"`
51022
51023	// The ARN of the server certificate.
51024	ServerCertificateArn *string `locationName:"serverCertificateArn" min:"1" type:"string"`
51025
51026	// The status of the server certificate.
51027	ServerCertificateStatus *string `locationName:"serverCertificateStatus" type:"string" enum:"ServerCertificateStatus"`
51028
51029	// Details that explain the status of the server certificate.
51030	ServerCertificateStatusDetail *string `locationName:"serverCertificateStatusDetail" type:"string"`
51031}
51032
51033// String returns the string representation
51034func (s ServerCertificateSummary) String() string {
51035	return awsutil.Prettify(s)
51036}
51037
51038// GoString returns the string representation
51039func (s ServerCertificateSummary) GoString() string {
51040	return s.String()
51041}
51042
51043// SetServerCertificateArn sets the ServerCertificateArn field's value.
51044func (s *ServerCertificateSummary) SetServerCertificateArn(v string) *ServerCertificateSummary {
51045	s.ServerCertificateArn = &v
51046	return s
51047}
51048
51049// SetServerCertificateStatus sets the ServerCertificateStatus field's value.
51050func (s *ServerCertificateSummary) SetServerCertificateStatus(v string) *ServerCertificateSummary {
51051	s.ServerCertificateStatus = &v
51052	return s
51053}
51054
51055// SetServerCertificateStatusDetail sets the ServerCertificateStatusDetail field's value.
51056func (s *ServerCertificateSummary) SetServerCertificateStatusDetail(v string) *ServerCertificateSummary {
51057	s.ServerCertificateStatusDetail = &v
51058	return s
51059}
51060
51061// The service is temporarily unavailable.
51062type ServiceUnavailableException struct {
51063	_            struct{}                  `type:"structure"`
51064	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
51065
51066	// The message for the exception.
51067	Message_ *string `locationName:"message" type:"string"`
51068}
51069
51070// String returns the string representation
51071func (s ServiceUnavailableException) String() string {
51072	return awsutil.Prettify(s)
51073}
51074
51075// GoString returns the string representation
51076func (s ServiceUnavailableException) GoString() string {
51077	return s.String()
51078}
51079
51080func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
51081	return &ServiceUnavailableException{
51082		RespMetadata: v,
51083	}
51084}
51085
51086// Code returns the exception type name.
51087func (s *ServiceUnavailableException) Code() string {
51088	return "ServiceUnavailableException"
51089}
51090
51091// Message returns the exception's message.
51092func (s *ServiceUnavailableException) Message() string {
51093	if s.Message_ != nil {
51094		return *s.Message_
51095	}
51096	return ""
51097}
51098
51099// OrigErr always returns nil, satisfies awserr.Error interface.
51100func (s *ServiceUnavailableException) OrigErr() error {
51101	return nil
51102}
51103
51104func (s *ServiceUnavailableException) Error() string {
51105	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
51106}
51107
51108// Status code returns the HTTP status code for the request's response error.
51109func (s *ServiceUnavailableException) StatusCode() int {
51110	return s.RespMetadata.StatusCode
51111}
51112
51113// RequestID returns the service's response RequestID for request.
51114func (s *ServiceUnavailableException) RequestID() string {
51115	return s.RespMetadata.RequestID
51116}
51117
51118type SetDefaultAuthorizerInput struct {
51119	_ struct{} `type:"structure"`
51120
51121	// The authorizer name.
51122	//
51123	// AuthorizerName is a required field
51124	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string" required:"true"`
51125}
51126
51127// String returns the string representation
51128func (s SetDefaultAuthorizerInput) String() string {
51129	return awsutil.Prettify(s)
51130}
51131
51132// GoString returns the string representation
51133func (s SetDefaultAuthorizerInput) GoString() string {
51134	return s.String()
51135}
51136
51137// Validate inspects the fields of the type to determine if they are valid.
51138func (s *SetDefaultAuthorizerInput) Validate() error {
51139	invalidParams := request.ErrInvalidParams{Context: "SetDefaultAuthorizerInput"}
51140	if s.AuthorizerName == nil {
51141		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
51142	}
51143	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
51144		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
51145	}
51146
51147	if invalidParams.Len() > 0 {
51148		return invalidParams
51149	}
51150	return nil
51151}
51152
51153// SetAuthorizerName sets the AuthorizerName field's value.
51154func (s *SetDefaultAuthorizerInput) SetAuthorizerName(v string) *SetDefaultAuthorizerInput {
51155	s.AuthorizerName = &v
51156	return s
51157}
51158
51159type SetDefaultAuthorizerOutput struct {
51160	_ struct{} `type:"structure"`
51161
51162	// The authorizer ARN.
51163	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
51164
51165	// The authorizer name.
51166	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
51167}
51168
51169// String returns the string representation
51170func (s SetDefaultAuthorizerOutput) String() string {
51171	return awsutil.Prettify(s)
51172}
51173
51174// GoString returns the string representation
51175func (s SetDefaultAuthorizerOutput) GoString() string {
51176	return s.String()
51177}
51178
51179// SetAuthorizerArn sets the AuthorizerArn field's value.
51180func (s *SetDefaultAuthorizerOutput) SetAuthorizerArn(v string) *SetDefaultAuthorizerOutput {
51181	s.AuthorizerArn = &v
51182	return s
51183}
51184
51185// SetAuthorizerName sets the AuthorizerName field's value.
51186func (s *SetDefaultAuthorizerOutput) SetAuthorizerName(v string) *SetDefaultAuthorizerOutput {
51187	s.AuthorizerName = &v
51188	return s
51189}
51190
51191// The input for the SetDefaultPolicyVersion operation.
51192type SetDefaultPolicyVersionInput struct {
51193	_ struct{} `type:"structure"`
51194
51195	// The policy name.
51196	//
51197	// PolicyName is a required field
51198	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
51199
51200	// The policy version ID.
51201	//
51202	// PolicyVersionId is a required field
51203	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
51204}
51205
51206// String returns the string representation
51207func (s SetDefaultPolicyVersionInput) String() string {
51208	return awsutil.Prettify(s)
51209}
51210
51211// GoString returns the string representation
51212func (s SetDefaultPolicyVersionInput) GoString() string {
51213	return s.String()
51214}
51215
51216// Validate inspects the fields of the type to determine if they are valid.
51217func (s *SetDefaultPolicyVersionInput) Validate() error {
51218	invalidParams := request.ErrInvalidParams{Context: "SetDefaultPolicyVersionInput"}
51219	if s.PolicyName == nil {
51220		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
51221	}
51222	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
51223		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
51224	}
51225	if s.PolicyVersionId == nil {
51226		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
51227	}
51228	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
51229		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
51230	}
51231
51232	if invalidParams.Len() > 0 {
51233		return invalidParams
51234	}
51235	return nil
51236}
51237
51238// SetPolicyName sets the PolicyName field's value.
51239func (s *SetDefaultPolicyVersionInput) SetPolicyName(v string) *SetDefaultPolicyVersionInput {
51240	s.PolicyName = &v
51241	return s
51242}
51243
51244// SetPolicyVersionId sets the PolicyVersionId field's value.
51245func (s *SetDefaultPolicyVersionInput) SetPolicyVersionId(v string) *SetDefaultPolicyVersionInput {
51246	s.PolicyVersionId = &v
51247	return s
51248}
51249
51250type SetDefaultPolicyVersionOutput struct {
51251	_ struct{} `type:"structure"`
51252}
51253
51254// String returns the string representation
51255func (s SetDefaultPolicyVersionOutput) String() string {
51256	return awsutil.Prettify(s)
51257}
51258
51259// GoString returns the string representation
51260func (s SetDefaultPolicyVersionOutput) GoString() string {
51261	return s.String()
51262}
51263
51264// The input for the SetLoggingOptions operation.
51265type SetLoggingOptionsInput struct {
51266	_ struct{} `type:"structure" payload:"LoggingOptionsPayload"`
51267
51268	// The logging options payload.
51269	//
51270	// LoggingOptionsPayload is a required field
51271	LoggingOptionsPayload *LoggingOptionsPayload `locationName:"loggingOptionsPayload" type:"structure" required:"true"`
51272}
51273
51274// String returns the string representation
51275func (s SetLoggingOptionsInput) String() string {
51276	return awsutil.Prettify(s)
51277}
51278
51279// GoString returns the string representation
51280func (s SetLoggingOptionsInput) GoString() string {
51281	return s.String()
51282}
51283
51284// Validate inspects the fields of the type to determine if they are valid.
51285func (s *SetLoggingOptionsInput) Validate() error {
51286	invalidParams := request.ErrInvalidParams{Context: "SetLoggingOptionsInput"}
51287	if s.LoggingOptionsPayload == nil {
51288		invalidParams.Add(request.NewErrParamRequired("LoggingOptionsPayload"))
51289	}
51290	if s.LoggingOptionsPayload != nil {
51291		if err := s.LoggingOptionsPayload.Validate(); err != nil {
51292			invalidParams.AddNested("LoggingOptionsPayload", err.(request.ErrInvalidParams))
51293		}
51294	}
51295
51296	if invalidParams.Len() > 0 {
51297		return invalidParams
51298	}
51299	return nil
51300}
51301
51302// SetLoggingOptionsPayload sets the LoggingOptionsPayload field's value.
51303func (s *SetLoggingOptionsInput) SetLoggingOptionsPayload(v *LoggingOptionsPayload) *SetLoggingOptionsInput {
51304	s.LoggingOptionsPayload = v
51305	return s
51306}
51307
51308type SetLoggingOptionsOutput struct {
51309	_ struct{} `type:"structure"`
51310}
51311
51312// String returns the string representation
51313func (s SetLoggingOptionsOutput) String() string {
51314	return awsutil.Prettify(s)
51315}
51316
51317// GoString returns the string representation
51318func (s SetLoggingOptionsOutput) GoString() string {
51319	return s.String()
51320}
51321
51322type SetV2LoggingLevelInput struct {
51323	_ struct{} `type:"structure"`
51324
51325	// The log level.
51326	//
51327	// LogLevel is a required field
51328	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
51329
51330	// The log target.
51331	//
51332	// LogTarget is a required field
51333	LogTarget *LogTarget `locationName:"logTarget" type:"structure" required:"true"`
51334}
51335
51336// String returns the string representation
51337func (s SetV2LoggingLevelInput) String() string {
51338	return awsutil.Prettify(s)
51339}
51340
51341// GoString returns the string representation
51342func (s SetV2LoggingLevelInput) GoString() string {
51343	return s.String()
51344}
51345
51346// Validate inspects the fields of the type to determine if they are valid.
51347func (s *SetV2LoggingLevelInput) Validate() error {
51348	invalidParams := request.ErrInvalidParams{Context: "SetV2LoggingLevelInput"}
51349	if s.LogLevel == nil {
51350		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
51351	}
51352	if s.LogTarget == nil {
51353		invalidParams.Add(request.NewErrParamRequired("LogTarget"))
51354	}
51355	if s.LogTarget != nil {
51356		if err := s.LogTarget.Validate(); err != nil {
51357			invalidParams.AddNested("LogTarget", err.(request.ErrInvalidParams))
51358		}
51359	}
51360
51361	if invalidParams.Len() > 0 {
51362		return invalidParams
51363	}
51364	return nil
51365}
51366
51367// SetLogLevel sets the LogLevel field's value.
51368func (s *SetV2LoggingLevelInput) SetLogLevel(v string) *SetV2LoggingLevelInput {
51369	s.LogLevel = &v
51370	return s
51371}
51372
51373// SetLogTarget sets the LogTarget field's value.
51374func (s *SetV2LoggingLevelInput) SetLogTarget(v *LogTarget) *SetV2LoggingLevelInput {
51375	s.LogTarget = v
51376	return s
51377}
51378
51379type SetV2LoggingLevelOutput struct {
51380	_ struct{} `type:"structure"`
51381}
51382
51383// String returns the string representation
51384func (s SetV2LoggingLevelOutput) String() string {
51385	return awsutil.Prettify(s)
51386}
51387
51388// GoString returns the string representation
51389func (s SetV2LoggingLevelOutput) GoString() string {
51390	return s.String()
51391}
51392
51393type SetV2LoggingOptionsInput struct {
51394	_ struct{} `type:"structure"`
51395
51396	// The default logging level.
51397	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
51398
51399	// If true all logs are disabled. The default is false.
51400	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
51401
51402	// The ARN of the role that allows IoT to write to Cloudwatch logs.
51403	RoleArn *string `locationName:"roleArn" type:"string"`
51404}
51405
51406// String returns the string representation
51407func (s SetV2LoggingOptionsInput) String() string {
51408	return awsutil.Prettify(s)
51409}
51410
51411// GoString returns the string representation
51412func (s SetV2LoggingOptionsInput) GoString() string {
51413	return s.String()
51414}
51415
51416// SetDefaultLogLevel sets the DefaultLogLevel field's value.
51417func (s *SetV2LoggingOptionsInput) SetDefaultLogLevel(v string) *SetV2LoggingOptionsInput {
51418	s.DefaultLogLevel = &v
51419	return s
51420}
51421
51422// SetDisableAllLogs sets the DisableAllLogs field's value.
51423func (s *SetV2LoggingOptionsInput) SetDisableAllLogs(v bool) *SetV2LoggingOptionsInput {
51424	s.DisableAllLogs = &v
51425	return s
51426}
51427
51428// SetRoleArn sets the RoleArn field's value.
51429func (s *SetV2LoggingOptionsInput) SetRoleArn(v string) *SetV2LoggingOptionsInput {
51430	s.RoleArn = &v
51431	return s
51432}
51433
51434type SetV2LoggingOptionsOutput struct {
51435	_ struct{} `type:"structure"`
51436}
51437
51438// String returns the string representation
51439func (s SetV2LoggingOptionsOutput) String() string {
51440	return awsutil.Prettify(s)
51441}
51442
51443// GoString returns the string representation
51444func (s SetV2LoggingOptionsOutput) GoString() string {
51445	return s.String()
51446}
51447
51448// For more information, see Signature Version 4 signing process (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
51449type SigV4Authorization struct {
51450	_ struct{} `type:"structure"`
51451
51452	// The ARN of the signing role.
51453	//
51454	// RoleArn is a required field
51455	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
51456
51457	// The service name to use while signing with Sig V4.
51458	//
51459	// ServiceName is a required field
51460	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
51461
51462	// The signing region.
51463	//
51464	// SigningRegion is a required field
51465	SigningRegion *string `locationName:"signingRegion" type:"string" required:"true"`
51466}
51467
51468// String returns the string representation
51469func (s SigV4Authorization) String() string {
51470	return awsutil.Prettify(s)
51471}
51472
51473// GoString returns the string representation
51474func (s SigV4Authorization) GoString() string {
51475	return s.String()
51476}
51477
51478// Validate inspects the fields of the type to determine if they are valid.
51479func (s *SigV4Authorization) Validate() error {
51480	invalidParams := request.ErrInvalidParams{Context: "SigV4Authorization"}
51481	if s.RoleArn == nil {
51482		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
51483	}
51484	if s.ServiceName == nil {
51485		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
51486	}
51487	if s.SigningRegion == nil {
51488		invalidParams.Add(request.NewErrParamRequired("SigningRegion"))
51489	}
51490
51491	if invalidParams.Len() > 0 {
51492		return invalidParams
51493	}
51494	return nil
51495}
51496
51497// SetRoleArn sets the RoleArn field's value.
51498func (s *SigV4Authorization) SetRoleArn(v string) *SigV4Authorization {
51499	s.RoleArn = &v
51500	return s
51501}
51502
51503// SetServiceName sets the ServiceName field's value.
51504func (s *SigV4Authorization) SetServiceName(v string) *SigV4Authorization {
51505	s.ServiceName = &v
51506	return s
51507}
51508
51509// SetSigningRegion sets the SigningRegion field's value.
51510func (s *SigV4Authorization) SetSigningRegion(v string) *SigV4Authorization {
51511	s.SigningRegion = &v
51512	return s
51513}
51514
51515// Describes the code-signing profile.
51516type SigningProfileParameter struct {
51517	_ struct{} `type:"structure"`
51518
51519	// Certificate ARN.
51520	CertificateArn *string `locationName:"certificateArn" type:"string"`
51521
51522	// The location of the code-signing certificate on your device.
51523	CertificatePathOnDevice *string `locationName:"certificatePathOnDevice" type:"string"`
51524
51525	// The hardware platform of your device.
51526	Platform *string `locationName:"platform" type:"string"`
51527}
51528
51529// String returns the string representation
51530func (s SigningProfileParameter) String() string {
51531	return awsutil.Prettify(s)
51532}
51533
51534// GoString returns the string representation
51535func (s SigningProfileParameter) GoString() string {
51536	return s.String()
51537}
51538
51539// SetCertificateArn sets the CertificateArn field's value.
51540func (s *SigningProfileParameter) SetCertificateArn(v string) *SigningProfileParameter {
51541	s.CertificateArn = &v
51542	return s
51543}
51544
51545// SetCertificatePathOnDevice sets the CertificatePathOnDevice field's value.
51546func (s *SigningProfileParameter) SetCertificatePathOnDevice(v string) *SigningProfileParameter {
51547	s.CertificatePathOnDevice = &v
51548	return s
51549}
51550
51551// SetPlatform sets the Platform field's value.
51552func (s *SigningProfileParameter) SetPlatform(v string) *SigningProfileParameter {
51553	s.Platform = &v
51554	return s
51555}
51556
51557// Describes an action to publish to an Amazon SNS topic.
51558type SnsAction struct {
51559	_ struct{} `type:"structure"`
51560
51561	// (Optional) The message format of the message to publish. Accepted values
51562	// are "JSON" and "RAW". The default value of the attribute is "RAW". SNS uses
51563	// this setting to determine if the payload should be parsed and relevant platform-specific
51564	// bits of the payload should be extracted. To read more about SNS message formats,
51565	// see https://docs.aws.amazon.com/sns/latest/dg/json-formats.html (https://docs.aws.amazon.com/sns/latest/dg/json-formats.html)
51566	// refer to their official documentation.
51567	MessageFormat *string `locationName:"messageFormat" type:"string" enum:"MessageFormat"`
51568
51569	// The ARN of the IAM role that grants access.
51570	//
51571	// RoleArn is a required field
51572	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
51573
51574	// The ARN of the SNS topic.
51575	//
51576	// TargetArn is a required field
51577	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
51578}
51579
51580// String returns the string representation
51581func (s SnsAction) String() string {
51582	return awsutil.Prettify(s)
51583}
51584
51585// GoString returns the string representation
51586func (s SnsAction) GoString() string {
51587	return s.String()
51588}
51589
51590// Validate inspects the fields of the type to determine if they are valid.
51591func (s *SnsAction) Validate() error {
51592	invalidParams := request.ErrInvalidParams{Context: "SnsAction"}
51593	if s.RoleArn == nil {
51594		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
51595	}
51596	if s.TargetArn == nil {
51597		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
51598	}
51599
51600	if invalidParams.Len() > 0 {
51601		return invalidParams
51602	}
51603	return nil
51604}
51605
51606// SetMessageFormat sets the MessageFormat field's value.
51607func (s *SnsAction) SetMessageFormat(v string) *SnsAction {
51608	s.MessageFormat = &v
51609	return s
51610}
51611
51612// SetRoleArn sets the RoleArn field's value.
51613func (s *SnsAction) SetRoleArn(v string) *SnsAction {
51614	s.RoleArn = &v
51615	return s
51616}
51617
51618// SetTargetArn sets the TargetArn field's value.
51619func (s *SnsAction) SetTargetArn(v string) *SnsAction {
51620	s.TargetArn = &v
51621	return s
51622}
51623
51624// The Rule-SQL expression can't be parsed correctly.
51625type SqlParseException struct {
51626	_            struct{}                  `type:"structure"`
51627	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
51628
51629	// The message for the exception.
51630	Message_ *string `locationName:"message" type:"string"`
51631}
51632
51633// String returns the string representation
51634func (s SqlParseException) String() string {
51635	return awsutil.Prettify(s)
51636}
51637
51638// GoString returns the string representation
51639func (s SqlParseException) GoString() string {
51640	return s.String()
51641}
51642
51643func newErrorSqlParseException(v protocol.ResponseMetadata) error {
51644	return &SqlParseException{
51645		RespMetadata: v,
51646	}
51647}
51648
51649// Code returns the exception type name.
51650func (s *SqlParseException) Code() string {
51651	return "SqlParseException"
51652}
51653
51654// Message returns the exception's message.
51655func (s *SqlParseException) Message() string {
51656	if s.Message_ != nil {
51657		return *s.Message_
51658	}
51659	return ""
51660}
51661
51662// OrigErr always returns nil, satisfies awserr.Error interface.
51663func (s *SqlParseException) OrigErr() error {
51664	return nil
51665}
51666
51667func (s *SqlParseException) Error() string {
51668	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
51669}
51670
51671// Status code returns the HTTP status code for the request's response error.
51672func (s *SqlParseException) StatusCode() int {
51673	return s.RespMetadata.StatusCode
51674}
51675
51676// RequestID returns the service's response RequestID for request.
51677func (s *SqlParseException) RequestID() string {
51678	return s.RespMetadata.RequestID
51679}
51680
51681// Describes an action to publish data to an Amazon SQS queue.
51682type SqsAction struct {
51683	_ struct{} `type:"structure"`
51684
51685	// The URL of the Amazon SQS queue.
51686	//
51687	// QueueUrl is a required field
51688	QueueUrl *string `locationName:"queueUrl" type:"string" required:"true"`
51689
51690	// The ARN of the IAM role that grants access.
51691	//
51692	// RoleArn is a required field
51693	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
51694
51695	// Specifies whether to use Base64 encoding.
51696	UseBase64 *bool `locationName:"useBase64" type:"boolean"`
51697}
51698
51699// String returns the string representation
51700func (s SqsAction) String() string {
51701	return awsutil.Prettify(s)
51702}
51703
51704// GoString returns the string representation
51705func (s SqsAction) GoString() string {
51706	return s.String()
51707}
51708
51709// Validate inspects the fields of the type to determine if they are valid.
51710func (s *SqsAction) Validate() error {
51711	invalidParams := request.ErrInvalidParams{Context: "SqsAction"}
51712	if s.QueueUrl == nil {
51713		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
51714	}
51715	if s.RoleArn == nil {
51716		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
51717	}
51718
51719	if invalidParams.Len() > 0 {
51720		return invalidParams
51721	}
51722	return nil
51723}
51724
51725// SetQueueUrl sets the QueueUrl field's value.
51726func (s *SqsAction) SetQueueUrl(v string) *SqsAction {
51727	s.QueueUrl = &v
51728	return s
51729}
51730
51731// SetRoleArn sets the RoleArn field's value.
51732func (s *SqsAction) SetRoleArn(v string) *SqsAction {
51733	s.RoleArn = &v
51734	return s
51735}
51736
51737// SetUseBase64 sets the UseBase64 field's value.
51738func (s *SqsAction) SetUseBase64(v bool) *SqsAction {
51739	s.UseBase64 = &v
51740	return s
51741}
51742
51743type StartAuditMitigationActionsTaskInput struct {
51744	_ struct{} `type:"structure"`
51745
51746	// For an audit check, specifies which mitigation actions to apply. Those actions
51747	// must be defined in your AWS account.
51748	//
51749	// AuditCheckToActionsMapping is a required field
51750	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map" required:"true"`
51751
51752	// Each audit mitigation task must have a unique client request token. If you
51753	// try to start a new task with the same token as a task that already exists,
51754	// an exception occurs. If you omit this value, a unique client request token
51755	// is generated automatically.
51756	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
51757
51758	// Specifies the audit findings to which the mitigation actions are applied.
51759	// You can apply them to a type of audit check, to all findings from an audit,
51760	// or to a specific set of findings.
51761	//
51762	// Target is a required field
51763	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure" required:"true"`
51764
51765	// A unique identifier for the task. You can use this identifier to check the
51766	// status of the task or to cancel it.
51767	//
51768	// TaskId is a required field
51769	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
51770}
51771
51772// String returns the string representation
51773func (s StartAuditMitigationActionsTaskInput) String() string {
51774	return awsutil.Prettify(s)
51775}
51776
51777// GoString returns the string representation
51778func (s StartAuditMitigationActionsTaskInput) GoString() string {
51779	return s.String()
51780}
51781
51782// Validate inspects the fields of the type to determine if they are valid.
51783func (s *StartAuditMitigationActionsTaskInput) Validate() error {
51784	invalidParams := request.ErrInvalidParams{Context: "StartAuditMitigationActionsTaskInput"}
51785	if s.AuditCheckToActionsMapping == nil {
51786		invalidParams.Add(request.NewErrParamRequired("AuditCheckToActionsMapping"))
51787	}
51788	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
51789		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
51790	}
51791	if s.Target == nil {
51792		invalidParams.Add(request.NewErrParamRequired("Target"))
51793	}
51794	if s.TaskId == nil {
51795		invalidParams.Add(request.NewErrParamRequired("TaskId"))
51796	}
51797	if s.TaskId != nil && len(*s.TaskId) < 1 {
51798		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
51799	}
51800	if s.Target != nil {
51801		if err := s.Target.Validate(); err != nil {
51802			invalidParams.AddNested("Target", err.(request.ErrInvalidParams))
51803		}
51804	}
51805
51806	if invalidParams.Len() > 0 {
51807		return invalidParams
51808	}
51809	return nil
51810}
51811
51812// SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
51813func (s *StartAuditMitigationActionsTaskInput) SetAuditCheckToActionsMapping(v map[string][]*string) *StartAuditMitigationActionsTaskInput {
51814	s.AuditCheckToActionsMapping = v
51815	return s
51816}
51817
51818// SetClientRequestToken sets the ClientRequestToken field's value.
51819func (s *StartAuditMitigationActionsTaskInput) SetClientRequestToken(v string) *StartAuditMitigationActionsTaskInput {
51820	s.ClientRequestToken = &v
51821	return s
51822}
51823
51824// SetTarget sets the Target field's value.
51825func (s *StartAuditMitigationActionsTaskInput) SetTarget(v *AuditMitigationActionsTaskTarget) *StartAuditMitigationActionsTaskInput {
51826	s.Target = v
51827	return s
51828}
51829
51830// SetTaskId sets the TaskId field's value.
51831func (s *StartAuditMitigationActionsTaskInput) SetTaskId(v string) *StartAuditMitigationActionsTaskInput {
51832	s.TaskId = &v
51833	return s
51834}
51835
51836type StartAuditMitigationActionsTaskOutput struct {
51837	_ struct{} `type:"structure"`
51838
51839	// The unique identifier for the audit mitigation task. This matches the taskId
51840	// that you specified in the request.
51841	TaskId *string `locationName:"taskId" min:"1" type:"string"`
51842}
51843
51844// String returns the string representation
51845func (s StartAuditMitigationActionsTaskOutput) String() string {
51846	return awsutil.Prettify(s)
51847}
51848
51849// GoString returns the string representation
51850func (s StartAuditMitigationActionsTaskOutput) GoString() string {
51851	return s.String()
51852}
51853
51854// SetTaskId sets the TaskId field's value.
51855func (s *StartAuditMitigationActionsTaskOutput) SetTaskId(v string) *StartAuditMitigationActionsTaskOutput {
51856	s.TaskId = &v
51857	return s
51858}
51859
51860type StartDetectMitigationActionsTaskInput struct {
51861	_ struct{} `type:"structure"`
51862
51863	// The actions to be performed when a device has unexpected behavior.
51864	//
51865	// Actions is a required field
51866	Actions []*string `locationName:"actions" min:"1" type:"list" required:"true"`
51867
51868	// Each mitigation action task must have a unique client request token. If you
51869	// try to create a new task with the same token as a task that already exists,
51870	// an exception occurs. If you omit this value, AWS SDKs will automatically
51871	// generate a unique client request.
51872	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
51873
51874	// Specifies to list only active violations.
51875	IncludeOnlyActiveViolations *bool `locationName:"includeOnlyActiveViolations" type:"boolean"`
51876
51877	// Specifies to include suppressed alerts.
51878	IncludeSuppressedAlerts *bool `locationName:"includeSuppressedAlerts" type:"boolean"`
51879
51880	// Specifies the ML Detect findings to which the mitigation actions are applied.
51881	//
51882	// Target is a required field
51883	Target *DetectMitigationActionsTaskTarget `locationName:"target" type:"structure" required:"true"`
51884
51885	// The unique identifier of the task.
51886	//
51887	// TaskId is a required field
51888	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
51889
51890	// Specifies the time period of which violation events occurred between.
51891	ViolationEventOccurrenceRange *ViolationEventOccurrenceRange `locationName:"violationEventOccurrenceRange" type:"structure"`
51892}
51893
51894// String returns the string representation
51895func (s StartDetectMitigationActionsTaskInput) String() string {
51896	return awsutil.Prettify(s)
51897}
51898
51899// GoString returns the string representation
51900func (s StartDetectMitigationActionsTaskInput) GoString() string {
51901	return s.String()
51902}
51903
51904// Validate inspects the fields of the type to determine if they are valid.
51905func (s *StartDetectMitigationActionsTaskInput) Validate() error {
51906	invalidParams := request.ErrInvalidParams{Context: "StartDetectMitigationActionsTaskInput"}
51907	if s.Actions == nil {
51908		invalidParams.Add(request.NewErrParamRequired("Actions"))
51909	}
51910	if s.Actions != nil && len(s.Actions) < 1 {
51911		invalidParams.Add(request.NewErrParamMinLen("Actions", 1))
51912	}
51913	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
51914		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
51915	}
51916	if s.Target == nil {
51917		invalidParams.Add(request.NewErrParamRequired("Target"))
51918	}
51919	if s.TaskId == nil {
51920		invalidParams.Add(request.NewErrParamRequired("TaskId"))
51921	}
51922	if s.TaskId != nil && len(*s.TaskId) < 1 {
51923		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
51924	}
51925	if s.Target != nil {
51926		if err := s.Target.Validate(); err != nil {
51927			invalidParams.AddNested("Target", err.(request.ErrInvalidParams))
51928		}
51929	}
51930	if s.ViolationEventOccurrenceRange != nil {
51931		if err := s.ViolationEventOccurrenceRange.Validate(); err != nil {
51932			invalidParams.AddNested("ViolationEventOccurrenceRange", err.(request.ErrInvalidParams))
51933		}
51934	}
51935
51936	if invalidParams.Len() > 0 {
51937		return invalidParams
51938	}
51939	return nil
51940}
51941
51942// SetActions sets the Actions field's value.
51943func (s *StartDetectMitigationActionsTaskInput) SetActions(v []*string) *StartDetectMitigationActionsTaskInput {
51944	s.Actions = v
51945	return s
51946}
51947
51948// SetClientRequestToken sets the ClientRequestToken field's value.
51949func (s *StartDetectMitigationActionsTaskInput) SetClientRequestToken(v string) *StartDetectMitigationActionsTaskInput {
51950	s.ClientRequestToken = &v
51951	return s
51952}
51953
51954// SetIncludeOnlyActiveViolations sets the IncludeOnlyActiveViolations field's value.
51955func (s *StartDetectMitigationActionsTaskInput) SetIncludeOnlyActiveViolations(v bool) *StartDetectMitigationActionsTaskInput {
51956	s.IncludeOnlyActiveViolations = &v
51957	return s
51958}
51959
51960// SetIncludeSuppressedAlerts sets the IncludeSuppressedAlerts field's value.
51961func (s *StartDetectMitigationActionsTaskInput) SetIncludeSuppressedAlerts(v bool) *StartDetectMitigationActionsTaskInput {
51962	s.IncludeSuppressedAlerts = &v
51963	return s
51964}
51965
51966// SetTarget sets the Target field's value.
51967func (s *StartDetectMitigationActionsTaskInput) SetTarget(v *DetectMitigationActionsTaskTarget) *StartDetectMitigationActionsTaskInput {
51968	s.Target = v
51969	return s
51970}
51971
51972// SetTaskId sets the TaskId field's value.
51973func (s *StartDetectMitigationActionsTaskInput) SetTaskId(v string) *StartDetectMitigationActionsTaskInput {
51974	s.TaskId = &v
51975	return s
51976}
51977
51978// SetViolationEventOccurrenceRange sets the ViolationEventOccurrenceRange field's value.
51979func (s *StartDetectMitigationActionsTaskInput) SetViolationEventOccurrenceRange(v *ViolationEventOccurrenceRange) *StartDetectMitigationActionsTaskInput {
51980	s.ViolationEventOccurrenceRange = v
51981	return s
51982}
51983
51984type StartDetectMitigationActionsTaskOutput struct {
51985	_ struct{} `type:"structure"`
51986
51987	// The unique identifier of the task.
51988	TaskId *string `locationName:"taskId" min:"1" type:"string"`
51989}
51990
51991// String returns the string representation
51992func (s StartDetectMitigationActionsTaskOutput) String() string {
51993	return awsutil.Prettify(s)
51994}
51995
51996// GoString returns the string representation
51997func (s StartDetectMitigationActionsTaskOutput) GoString() string {
51998	return s.String()
51999}
52000
52001// SetTaskId sets the TaskId field's value.
52002func (s *StartDetectMitigationActionsTaskOutput) SetTaskId(v string) *StartDetectMitigationActionsTaskOutput {
52003	s.TaskId = &v
52004	return s
52005}
52006
52007type StartOnDemandAuditTaskInput struct {
52008	_ struct{} `type:"structure"`
52009
52010	// Which checks are performed during the audit. The checks you specify must
52011	// be enabled for your account or an exception occurs. Use DescribeAccountAuditConfiguration
52012	// to see the list of all checks, including those that are enabled or UpdateAccountAuditConfiguration
52013	// to select which checks are enabled.
52014	//
52015	// TargetCheckNames is a required field
52016	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
52017}
52018
52019// String returns the string representation
52020func (s StartOnDemandAuditTaskInput) String() string {
52021	return awsutil.Prettify(s)
52022}
52023
52024// GoString returns the string representation
52025func (s StartOnDemandAuditTaskInput) GoString() string {
52026	return s.String()
52027}
52028
52029// Validate inspects the fields of the type to determine if they are valid.
52030func (s *StartOnDemandAuditTaskInput) Validate() error {
52031	invalidParams := request.ErrInvalidParams{Context: "StartOnDemandAuditTaskInput"}
52032	if s.TargetCheckNames == nil {
52033		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
52034	}
52035
52036	if invalidParams.Len() > 0 {
52037		return invalidParams
52038	}
52039	return nil
52040}
52041
52042// SetTargetCheckNames sets the TargetCheckNames field's value.
52043func (s *StartOnDemandAuditTaskInput) SetTargetCheckNames(v []*string) *StartOnDemandAuditTaskInput {
52044	s.TargetCheckNames = v
52045	return s
52046}
52047
52048type StartOnDemandAuditTaskOutput struct {
52049	_ struct{} `type:"structure"`
52050
52051	// The ID of the on-demand audit you started.
52052	TaskId *string `locationName:"taskId" min:"1" type:"string"`
52053}
52054
52055// String returns the string representation
52056func (s StartOnDemandAuditTaskOutput) String() string {
52057	return awsutil.Prettify(s)
52058}
52059
52060// GoString returns the string representation
52061func (s StartOnDemandAuditTaskOutput) GoString() string {
52062	return s.String()
52063}
52064
52065// SetTaskId sets the TaskId field's value.
52066func (s *StartOnDemandAuditTaskOutput) SetTaskId(v string) *StartOnDemandAuditTaskOutput {
52067	s.TaskId = &v
52068	return s
52069}
52070
52071// Information required to start a signing job.
52072type StartSigningJobParameter struct {
52073	_ struct{} `type:"structure"`
52074
52075	// The location to write the code-signed file.
52076	Destination *Destination `locationName:"destination" type:"structure"`
52077
52078	// The code-signing profile name.
52079	SigningProfileName *string `locationName:"signingProfileName" type:"string"`
52080
52081	// Describes the code-signing profile.
52082	SigningProfileParameter *SigningProfileParameter `locationName:"signingProfileParameter" type:"structure"`
52083}
52084
52085// String returns the string representation
52086func (s StartSigningJobParameter) String() string {
52087	return awsutil.Prettify(s)
52088}
52089
52090// GoString returns the string representation
52091func (s StartSigningJobParameter) GoString() string {
52092	return s.String()
52093}
52094
52095// Validate inspects the fields of the type to determine if they are valid.
52096func (s *StartSigningJobParameter) Validate() error {
52097	invalidParams := request.ErrInvalidParams{Context: "StartSigningJobParameter"}
52098	if s.Destination != nil {
52099		if err := s.Destination.Validate(); err != nil {
52100			invalidParams.AddNested("Destination", err.(request.ErrInvalidParams))
52101		}
52102	}
52103
52104	if invalidParams.Len() > 0 {
52105		return invalidParams
52106	}
52107	return nil
52108}
52109
52110// SetDestination sets the Destination field's value.
52111func (s *StartSigningJobParameter) SetDestination(v *Destination) *StartSigningJobParameter {
52112	s.Destination = v
52113	return s
52114}
52115
52116// SetSigningProfileName sets the SigningProfileName field's value.
52117func (s *StartSigningJobParameter) SetSigningProfileName(v string) *StartSigningJobParameter {
52118	s.SigningProfileName = &v
52119	return s
52120}
52121
52122// SetSigningProfileParameter sets the SigningProfileParameter field's value.
52123func (s *StartSigningJobParameter) SetSigningProfileParameter(v *SigningProfileParameter) *StartSigningJobParameter {
52124	s.SigningProfileParameter = v
52125	return s
52126}
52127
52128type StartThingRegistrationTaskInput struct {
52129	_ struct{} `type:"structure"`
52130
52131	// The S3 bucket that contains the input file.
52132	//
52133	// InputFileBucket is a required field
52134	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string" required:"true"`
52135
52136	// The name of input file within the S3 bucket. This file contains a newline
52137	// delimited JSON file. Each line contains the parameter values to provision
52138	// one device (thing).
52139	//
52140	// InputFileKey is a required field
52141	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string" required:"true"`
52142
52143	// The IAM role ARN that grants permission the input file.
52144	//
52145	// RoleArn is a required field
52146	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
52147
52148	// The provisioning template.
52149	//
52150	// TemplateBody is a required field
52151	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
52152}
52153
52154// String returns the string representation
52155func (s StartThingRegistrationTaskInput) String() string {
52156	return awsutil.Prettify(s)
52157}
52158
52159// GoString returns the string representation
52160func (s StartThingRegistrationTaskInput) GoString() string {
52161	return s.String()
52162}
52163
52164// Validate inspects the fields of the type to determine if they are valid.
52165func (s *StartThingRegistrationTaskInput) Validate() error {
52166	invalidParams := request.ErrInvalidParams{Context: "StartThingRegistrationTaskInput"}
52167	if s.InputFileBucket == nil {
52168		invalidParams.Add(request.NewErrParamRequired("InputFileBucket"))
52169	}
52170	if s.InputFileBucket != nil && len(*s.InputFileBucket) < 3 {
52171		invalidParams.Add(request.NewErrParamMinLen("InputFileBucket", 3))
52172	}
52173	if s.InputFileKey == nil {
52174		invalidParams.Add(request.NewErrParamRequired("InputFileKey"))
52175	}
52176	if s.InputFileKey != nil && len(*s.InputFileKey) < 1 {
52177		invalidParams.Add(request.NewErrParamMinLen("InputFileKey", 1))
52178	}
52179	if s.RoleArn == nil {
52180		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
52181	}
52182	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
52183		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
52184	}
52185	if s.TemplateBody == nil {
52186		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
52187	}
52188
52189	if invalidParams.Len() > 0 {
52190		return invalidParams
52191	}
52192	return nil
52193}
52194
52195// SetInputFileBucket sets the InputFileBucket field's value.
52196func (s *StartThingRegistrationTaskInput) SetInputFileBucket(v string) *StartThingRegistrationTaskInput {
52197	s.InputFileBucket = &v
52198	return s
52199}
52200
52201// SetInputFileKey sets the InputFileKey field's value.
52202func (s *StartThingRegistrationTaskInput) SetInputFileKey(v string) *StartThingRegistrationTaskInput {
52203	s.InputFileKey = &v
52204	return s
52205}
52206
52207// SetRoleArn sets the RoleArn field's value.
52208func (s *StartThingRegistrationTaskInput) SetRoleArn(v string) *StartThingRegistrationTaskInput {
52209	s.RoleArn = &v
52210	return s
52211}
52212
52213// SetTemplateBody sets the TemplateBody field's value.
52214func (s *StartThingRegistrationTaskInput) SetTemplateBody(v string) *StartThingRegistrationTaskInput {
52215	s.TemplateBody = &v
52216	return s
52217}
52218
52219type StartThingRegistrationTaskOutput struct {
52220	_ struct{} `type:"structure"`
52221
52222	// The bulk thing provisioning task ID.
52223	TaskId *string `locationName:"taskId" type:"string"`
52224}
52225
52226// String returns the string representation
52227func (s StartThingRegistrationTaskOutput) String() string {
52228	return awsutil.Prettify(s)
52229}
52230
52231// GoString returns the string representation
52232func (s StartThingRegistrationTaskOutput) GoString() string {
52233	return s.String()
52234}
52235
52236// SetTaskId sets the TaskId field's value.
52237func (s *StartThingRegistrationTaskOutput) SetTaskId(v string) *StartThingRegistrationTaskOutput {
52238	s.TaskId = &v
52239	return s
52240}
52241
52242// A statistical ranking (percentile) that indicates a threshold value by which
52243// a behavior is determined to be in compliance or in violation of the behavior.
52244type StatisticalThreshold struct {
52245	_ struct{} `type:"structure"`
52246
52247	// The percentile that resolves to a threshold value by which compliance with
52248	// a behavior is determined. Metrics are collected over the specified period
52249	// (durationSeconds) from all reporting devices in your account and statistical
52250	// ranks are calculated. Then, the measurements from a device are collected
52251	// over the same period. If the accumulated measurements from the device fall
52252	// above or below (comparisonOperator) the value associated with the percentile
52253	// specified, then the device is considered to be in compliance with the behavior,
52254	// otherwise a violation occurs.
52255	Statistic *string `locationName:"statistic" type:"string"`
52256}
52257
52258// String returns the string representation
52259func (s StatisticalThreshold) String() string {
52260	return awsutil.Prettify(s)
52261}
52262
52263// GoString returns the string representation
52264func (s StatisticalThreshold) GoString() string {
52265	return s.String()
52266}
52267
52268// SetStatistic sets the Statistic field's value.
52269func (s *StatisticalThreshold) SetStatistic(v string) *StatisticalThreshold {
52270	s.Statistic = &v
52271	return s
52272}
52273
52274// A map of key-value pairs for all supported statistics. Currently, only count
52275// is supported.
52276type Statistics struct {
52277	_ struct{} `type:"structure"`
52278
52279	// The average of the aggregated field values.
52280	Average *float64 `locationName:"average" type:"double"`
52281
52282	// The count of things that match the query.
52283	Count *int64 `locationName:"count" type:"integer"`
52284
52285	// The maximum aggregated field value.
52286	Maximum *float64 `locationName:"maximum" type:"double"`
52287
52288	// The minimum aggregated field value.
52289	Minimum *float64 `locationName:"minimum" type:"double"`
52290
52291	// The standard deviation of the aggregated field values.
52292	StdDeviation *float64 `locationName:"stdDeviation" type:"double"`
52293
52294	// The sum of the aggregated field values.
52295	Sum *float64 `locationName:"sum" type:"double"`
52296
52297	// The sum of the squares of the aggregated field values.
52298	SumOfSquares *float64 `locationName:"sumOfSquares" type:"double"`
52299
52300	// The variance of the aggregated field values.
52301	Variance *float64 `locationName:"variance" type:"double"`
52302}
52303
52304// String returns the string representation
52305func (s Statistics) String() string {
52306	return awsutil.Prettify(s)
52307}
52308
52309// GoString returns the string representation
52310func (s Statistics) GoString() string {
52311	return s.String()
52312}
52313
52314// SetAverage sets the Average field's value.
52315func (s *Statistics) SetAverage(v float64) *Statistics {
52316	s.Average = &v
52317	return s
52318}
52319
52320// SetCount sets the Count field's value.
52321func (s *Statistics) SetCount(v int64) *Statistics {
52322	s.Count = &v
52323	return s
52324}
52325
52326// SetMaximum sets the Maximum field's value.
52327func (s *Statistics) SetMaximum(v float64) *Statistics {
52328	s.Maximum = &v
52329	return s
52330}
52331
52332// SetMinimum sets the Minimum field's value.
52333func (s *Statistics) SetMinimum(v float64) *Statistics {
52334	s.Minimum = &v
52335	return s
52336}
52337
52338// SetStdDeviation sets the StdDeviation field's value.
52339func (s *Statistics) SetStdDeviation(v float64) *Statistics {
52340	s.StdDeviation = &v
52341	return s
52342}
52343
52344// SetSum sets the Sum field's value.
52345func (s *Statistics) SetSum(v float64) *Statistics {
52346	s.Sum = &v
52347	return s
52348}
52349
52350// SetSumOfSquares sets the SumOfSquares field's value.
52351func (s *Statistics) SetSumOfSquares(v float64) *Statistics {
52352	s.SumOfSquares = &v
52353	return s
52354}
52355
52356// SetVariance sets the Variance field's value.
52357func (s *Statistics) SetVariance(v float64) *Statistics {
52358	s.Variance = &v
52359	return s
52360}
52361
52362// Starts execution of a Step Functions state machine.
52363type StepFunctionsAction struct {
52364	_ struct{} `type:"structure"`
52365
52366	// (Optional) A name will be given to the state machine execution consisting
52367	// of this prefix followed by a UUID. Step Functions automatically creates a
52368	// unique name for each state machine execution if one is not provided.
52369	ExecutionNamePrefix *string `locationName:"executionNamePrefix" type:"string"`
52370
52371	// The ARN of the role that grants IoT permission to start execution of a state
52372	// machine ("Action":"states:StartExecution").
52373	//
52374	// RoleArn is a required field
52375	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
52376
52377	// The name of the Step Functions state machine whose execution will be started.
52378	//
52379	// StateMachineName is a required field
52380	StateMachineName *string `locationName:"stateMachineName" type:"string" required:"true"`
52381}
52382
52383// String returns the string representation
52384func (s StepFunctionsAction) String() string {
52385	return awsutil.Prettify(s)
52386}
52387
52388// GoString returns the string representation
52389func (s StepFunctionsAction) GoString() string {
52390	return s.String()
52391}
52392
52393// Validate inspects the fields of the type to determine if they are valid.
52394func (s *StepFunctionsAction) Validate() error {
52395	invalidParams := request.ErrInvalidParams{Context: "StepFunctionsAction"}
52396	if s.RoleArn == nil {
52397		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
52398	}
52399	if s.StateMachineName == nil {
52400		invalidParams.Add(request.NewErrParamRequired("StateMachineName"))
52401	}
52402
52403	if invalidParams.Len() > 0 {
52404		return invalidParams
52405	}
52406	return nil
52407}
52408
52409// SetExecutionNamePrefix sets the ExecutionNamePrefix field's value.
52410func (s *StepFunctionsAction) SetExecutionNamePrefix(v string) *StepFunctionsAction {
52411	s.ExecutionNamePrefix = &v
52412	return s
52413}
52414
52415// SetRoleArn sets the RoleArn field's value.
52416func (s *StepFunctionsAction) SetRoleArn(v string) *StepFunctionsAction {
52417	s.RoleArn = &v
52418	return s
52419}
52420
52421// SetStateMachineName sets the StateMachineName field's value.
52422func (s *StepFunctionsAction) SetStateMachineName(v string) *StepFunctionsAction {
52423	s.StateMachineName = &v
52424	return s
52425}
52426
52427type StopThingRegistrationTaskInput struct {
52428	_ struct{} `type:"structure"`
52429
52430	// The bulk thing provisioning task ID.
52431	//
52432	// TaskId is a required field
52433	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
52434}
52435
52436// String returns the string representation
52437func (s StopThingRegistrationTaskInput) String() string {
52438	return awsutil.Prettify(s)
52439}
52440
52441// GoString returns the string representation
52442func (s StopThingRegistrationTaskInput) GoString() string {
52443	return s.String()
52444}
52445
52446// Validate inspects the fields of the type to determine if they are valid.
52447func (s *StopThingRegistrationTaskInput) Validate() error {
52448	invalidParams := request.ErrInvalidParams{Context: "StopThingRegistrationTaskInput"}
52449	if s.TaskId == nil {
52450		invalidParams.Add(request.NewErrParamRequired("TaskId"))
52451	}
52452	if s.TaskId != nil && len(*s.TaskId) < 1 {
52453		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
52454	}
52455
52456	if invalidParams.Len() > 0 {
52457		return invalidParams
52458	}
52459	return nil
52460}
52461
52462// SetTaskId sets the TaskId field's value.
52463func (s *StopThingRegistrationTaskInput) SetTaskId(v string) *StopThingRegistrationTaskInput {
52464	s.TaskId = &v
52465	return s
52466}
52467
52468type StopThingRegistrationTaskOutput struct {
52469	_ struct{} `type:"structure"`
52470}
52471
52472// String returns the string representation
52473func (s StopThingRegistrationTaskOutput) String() string {
52474	return awsutil.Prettify(s)
52475}
52476
52477// GoString returns the string representation
52478func (s StopThingRegistrationTaskOutput) GoString() string {
52479	return s.String()
52480}
52481
52482// Describes a group of files that can be streamed.
52483type Stream struct {
52484	_ struct{} `type:"structure"`
52485
52486	// The ID of a file associated with a stream.
52487	FileId *int64 `locationName:"fileId" type:"integer"`
52488
52489	// The stream ID.
52490	StreamId *string `locationName:"streamId" min:"1" type:"string"`
52491}
52492
52493// String returns the string representation
52494func (s Stream) String() string {
52495	return awsutil.Prettify(s)
52496}
52497
52498// GoString returns the string representation
52499func (s Stream) GoString() string {
52500	return s.String()
52501}
52502
52503// Validate inspects the fields of the type to determine if they are valid.
52504func (s *Stream) Validate() error {
52505	invalidParams := request.ErrInvalidParams{Context: "Stream"}
52506	if s.StreamId != nil && len(*s.StreamId) < 1 {
52507		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
52508	}
52509
52510	if invalidParams.Len() > 0 {
52511		return invalidParams
52512	}
52513	return nil
52514}
52515
52516// SetFileId sets the FileId field's value.
52517func (s *Stream) SetFileId(v int64) *Stream {
52518	s.FileId = &v
52519	return s
52520}
52521
52522// SetStreamId sets the StreamId field's value.
52523func (s *Stream) SetStreamId(v string) *Stream {
52524	s.StreamId = &v
52525	return s
52526}
52527
52528// Represents a file to stream.
52529type StreamFile struct {
52530	_ struct{} `type:"structure"`
52531
52532	// The file ID.
52533	FileId *int64 `locationName:"fileId" type:"integer"`
52534
52535	// The location of the file in S3.
52536	S3Location *S3Location `locationName:"s3Location" type:"structure"`
52537}
52538
52539// String returns the string representation
52540func (s StreamFile) String() string {
52541	return awsutil.Prettify(s)
52542}
52543
52544// GoString returns the string representation
52545func (s StreamFile) GoString() string {
52546	return s.String()
52547}
52548
52549// Validate inspects the fields of the type to determine if they are valid.
52550func (s *StreamFile) Validate() error {
52551	invalidParams := request.ErrInvalidParams{Context: "StreamFile"}
52552	if s.S3Location != nil {
52553		if err := s.S3Location.Validate(); err != nil {
52554			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
52555		}
52556	}
52557
52558	if invalidParams.Len() > 0 {
52559		return invalidParams
52560	}
52561	return nil
52562}
52563
52564// SetFileId sets the FileId field's value.
52565func (s *StreamFile) SetFileId(v int64) *StreamFile {
52566	s.FileId = &v
52567	return s
52568}
52569
52570// SetS3Location sets the S3Location field's value.
52571func (s *StreamFile) SetS3Location(v *S3Location) *StreamFile {
52572	s.S3Location = v
52573	return s
52574}
52575
52576// Information about a stream.
52577type StreamInfo struct {
52578	_ struct{} `type:"structure"`
52579
52580	// The date when the stream was created.
52581	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
52582
52583	// The description of the stream.
52584	Description *string `locationName:"description" type:"string"`
52585
52586	// The files to stream.
52587	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
52588
52589	// The date when the stream was last updated.
52590	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
52591
52592	// An IAM role AWS IoT assumes to access your S3 files.
52593	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
52594
52595	// The stream ARN.
52596	StreamArn *string `locationName:"streamArn" type:"string"`
52597
52598	// The stream ID.
52599	StreamId *string `locationName:"streamId" min:"1" type:"string"`
52600
52601	// The stream version.
52602	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
52603}
52604
52605// String returns the string representation
52606func (s StreamInfo) String() string {
52607	return awsutil.Prettify(s)
52608}
52609
52610// GoString returns the string representation
52611func (s StreamInfo) GoString() string {
52612	return s.String()
52613}
52614
52615// SetCreatedAt sets the CreatedAt field's value.
52616func (s *StreamInfo) SetCreatedAt(v time.Time) *StreamInfo {
52617	s.CreatedAt = &v
52618	return s
52619}
52620
52621// SetDescription sets the Description field's value.
52622func (s *StreamInfo) SetDescription(v string) *StreamInfo {
52623	s.Description = &v
52624	return s
52625}
52626
52627// SetFiles sets the Files field's value.
52628func (s *StreamInfo) SetFiles(v []*StreamFile) *StreamInfo {
52629	s.Files = v
52630	return s
52631}
52632
52633// SetLastUpdatedAt sets the LastUpdatedAt field's value.
52634func (s *StreamInfo) SetLastUpdatedAt(v time.Time) *StreamInfo {
52635	s.LastUpdatedAt = &v
52636	return s
52637}
52638
52639// SetRoleArn sets the RoleArn field's value.
52640func (s *StreamInfo) SetRoleArn(v string) *StreamInfo {
52641	s.RoleArn = &v
52642	return s
52643}
52644
52645// SetStreamArn sets the StreamArn field's value.
52646func (s *StreamInfo) SetStreamArn(v string) *StreamInfo {
52647	s.StreamArn = &v
52648	return s
52649}
52650
52651// SetStreamId sets the StreamId field's value.
52652func (s *StreamInfo) SetStreamId(v string) *StreamInfo {
52653	s.StreamId = &v
52654	return s
52655}
52656
52657// SetStreamVersion sets the StreamVersion field's value.
52658func (s *StreamInfo) SetStreamVersion(v int64) *StreamInfo {
52659	s.StreamVersion = &v
52660	return s
52661}
52662
52663// A summary of a stream.
52664type StreamSummary struct {
52665	_ struct{} `type:"structure"`
52666
52667	// A description of the stream.
52668	Description *string `locationName:"description" type:"string"`
52669
52670	// The stream ARN.
52671	StreamArn *string `locationName:"streamArn" type:"string"`
52672
52673	// The stream ID.
52674	StreamId *string `locationName:"streamId" min:"1" type:"string"`
52675
52676	// The stream version.
52677	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
52678}
52679
52680// String returns the string representation
52681func (s StreamSummary) String() string {
52682	return awsutil.Prettify(s)
52683}
52684
52685// GoString returns the string representation
52686func (s StreamSummary) GoString() string {
52687	return s.String()
52688}
52689
52690// SetDescription sets the Description field's value.
52691func (s *StreamSummary) SetDescription(v string) *StreamSummary {
52692	s.Description = &v
52693	return s
52694}
52695
52696// SetStreamArn sets the StreamArn field's value.
52697func (s *StreamSummary) SetStreamArn(v string) *StreamSummary {
52698	s.StreamArn = &v
52699	return s
52700}
52701
52702// SetStreamId sets the StreamId field's value.
52703func (s *StreamSummary) SetStreamId(v string) *StreamSummary {
52704	s.StreamId = &v
52705	return s
52706}
52707
52708// SetStreamVersion sets the StreamVersion field's value.
52709func (s *StreamSummary) SetStreamVersion(v int64) *StreamSummary {
52710	s.StreamVersion = &v
52711	return s
52712}
52713
52714// A set of key/value pairs that are used to manage the resource.
52715type Tag struct {
52716	_ struct{} `type:"structure"`
52717
52718	// The tag's key.
52719	//
52720	// Key is a required field
52721	Key *string `min:"1" type:"string" required:"true"`
52722
52723	// The tag's value.
52724	Value *string `min:"1" type:"string"`
52725}
52726
52727// String returns the string representation
52728func (s Tag) String() string {
52729	return awsutil.Prettify(s)
52730}
52731
52732// GoString returns the string representation
52733func (s Tag) GoString() string {
52734	return s.String()
52735}
52736
52737// Validate inspects the fields of the type to determine if they are valid.
52738func (s *Tag) Validate() error {
52739	invalidParams := request.ErrInvalidParams{Context: "Tag"}
52740	if s.Key == nil {
52741		invalidParams.Add(request.NewErrParamRequired("Key"))
52742	}
52743	if s.Key != nil && len(*s.Key) < 1 {
52744		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
52745	}
52746	if s.Value != nil && len(*s.Value) < 1 {
52747		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
52748	}
52749
52750	if invalidParams.Len() > 0 {
52751		return invalidParams
52752	}
52753	return nil
52754}
52755
52756// SetKey sets the Key field's value.
52757func (s *Tag) SetKey(v string) *Tag {
52758	s.Key = &v
52759	return s
52760}
52761
52762// SetValue sets the Value field's value.
52763func (s *Tag) SetValue(v string) *Tag {
52764	s.Value = &v
52765	return s
52766}
52767
52768type TagResourceInput struct {
52769	_ struct{} `type:"structure"`
52770
52771	// The ARN of the resource.
52772	//
52773	// ResourceArn is a required field
52774	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
52775
52776	// The new or modified tags for the resource.
52777	//
52778	// Tags is a required field
52779	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
52780}
52781
52782// String returns the string representation
52783func (s TagResourceInput) String() string {
52784	return awsutil.Prettify(s)
52785}
52786
52787// GoString returns the string representation
52788func (s TagResourceInput) GoString() string {
52789	return s.String()
52790}
52791
52792// Validate inspects the fields of the type to determine if they are valid.
52793func (s *TagResourceInput) Validate() error {
52794	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
52795	if s.ResourceArn == nil {
52796		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
52797	}
52798	if s.Tags == nil {
52799		invalidParams.Add(request.NewErrParamRequired("Tags"))
52800	}
52801	if s.Tags != nil {
52802		for i, v := range s.Tags {
52803			if v == nil {
52804				continue
52805			}
52806			if err := v.Validate(); err != nil {
52807				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
52808			}
52809		}
52810	}
52811
52812	if invalidParams.Len() > 0 {
52813		return invalidParams
52814	}
52815	return nil
52816}
52817
52818// SetResourceArn sets the ResourceArn field's value.
52819func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
52820	s.ResourceArn = &v
52821	return s
52822}
52823
52824// SetTags sets the Tags field's value.
52825func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
52826	s.Tags = v
52827	return s
52828}
52829
52830type TagResourceOutput struct {
52831	_ struct{} `type:"structure"`
52832}
52833
52834// String returns the string representation
52835func (s TagResourceOutput) String() string {
52836	return awsutil.Prettify(s)
52837}
52838
52839// GoString returns the string representation
52840func (s TagResourceOutput) GoString() string {
52841	return s.String()
52842}
52843
52844// This exception occurs if you attempt to start a task with the same task-id
52845// as an existing task but with a different clientRequestToken.
52846type TaskAlreadyExistsException struct {
52847	_            struct{}                  `type:"structure"`
52848	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
52849
52850	Message_ *string `locationName:"message" type:"string"`
52851}
52852
52853// String returns the string representation
52854func (s TaskAlreadyExistsException) String() string {
52855	return awsutil.Prettify(s)
52856}
52857
52858// GoString returns the string representation
52859func (s TaskAlreadyExistsException) GoString() string {
52860	return s.String()
52861}
52862
52863func newErrorTaskAlreadyExistsException(v protocol.ResponseMetadata) error {
52864	return &TaskAlreadyExistsException{
52865		RespMetadata: v,
52866	}
52867}
52868
52869// Code returns the exception type name.
52870func (s *TaskAlreadyExistsException) Code() string {
52871	return "TaskAlreadyExistsException"
52872}
52873
52874// Message returns the exception's message.
52875func (s *TaskAlreadyExistsException) Message() string {
52876	if s.Message_ != nil {
52877		return *s.Message_
52878	}
52879	return ""
52880}
52881
52882// OrigErr always returns nil, satisfies awserr.Error interface.
52883func (s *TaskAlreadyExistsException) OrigErr() error {
52884	return nil
52885}
52886
52887func (s *TaskAlreadyExistsException) Error() string {
52888	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
52889}
52890
52891// Status code returns the HTTP status code for the request's response error.
52892func (s *TaskAlreadyExistsException) StatusCode() int {
52893	return s.RespMetadata.StatusCode
52894}
52895
52896// RequestID returns the service's response RequestID for request.
52897func (s *TaskAlreadyExistsException) RequestID() string {
52898	return s.RespMetadata.RequestID
52899}
52900
52901// Statistics for the checks performed during the audit.
52902type TaskStatistics struct {
52903	_ struct{} `type:"structure"`
52904
52905	// The number of checks that did not run because the audit was canceled.
52906	CanceledChecks *int64 `locationName:"canceledChecks" type:"integer"`
52907
52908	// The number of checks that found compliant resources.
52909	CompliantChecks *int64 `locationName:"compliantChecks" type:"integer"`
52910
52911	// The number of checks.
52912	FailedChecks *int64 `locationName:"failedChecks" type:"integer"`
52913
52914	// The number of checks in progress.
52915	InProgressChecks *int64 `locationName:"inProgressChecks" type:"integer"`
52916
52917	// The number of checks that found noncompliant resources.
52918	NonCompliantChecks *int64 `locationName:"nonCompliantChecks" type:"integer"`
52919
52920	// The number of checks in this audit.
52921	TotalChecks *int64 `locationName:"totalChecks" type:"integer"`
52922
52923	// The number of checks waiting for data collection.
52924	WaitingForDataCollectionChecks *int64 `locationName:"waitingForDataCollectionChecks" type:"integer"`
52925}
52926
52927// String returns the string representation
52928func (s TaskStatistics) String() string {
52929	return awsutil.Prettify(s)
52930}
52931
52932// GoString returns the string representation
52933func (s TaskStatistics) GoString() string {
52934	return s.String()
52935}
52936
52937// SetCanceledChecks sets the CanceledChecks field's value.
52938func (s *TaskStatistics) SetCanceledChecks(v int64) *TaskStatistics {
52939	s.CanceledChecks = &v
52940	return s
52941}
52942
52943// SetCompliantChecks sets the CompliantChecks field's value.
52944func (s *TaskStatistics) SetCompliantChecks(v int64) *TaskStatistics {
52945	s.CompliantChecks = &v
52946	return s
52947}
52948
52949// SetFailedChecks sets the FailedChecks field's value.
52950func (s *TaskStatistics) SetFailedChecks(v int64) *TaskStatistics {
52951	s.FailedChecks = &v
52952	return s
52953}
52954
52955// SetInProgressChecks sets the InProgressChecks field's value.
52956func (s *TaskStatistics) SetInProgressChecks(v int64) *TaskStatistics {
52957	s.InProgressChecks = &v
52958	return s
52959}
52960
52961// SetNonCompliantChecks sets the NonCompliantChecks field's value.
52962func (s *TaskStatistics) SetNonCompliantChecks(v int64) *TaskStatistics {
52963	s.NonCompliantChecks = &v
52964	return s
52965}
52966
52967// SetTotalChecks sets the TotalChecks field's value.
52968func (s *TaskStatistics) SetTotalChecks(v int64) *TaskStatistics {
52969	s.TotalChecks = &v
52970	return s
52971}
52972
52973// SetWaitingForDataCollectionChecks sets the WaitingForDataCollectionChecks field's value.
52974func (s *TaskStatistics) SetWaitingForDataCollectionChecks(v int64) *TaskStatistics {
52975	s.WaitingForDataCollectionChecks = &v
52976	return s
52977}
52978
52979// Provides summary counts of how many tasks for findings are in a particular
52980// state. This information is included in the response from DescribeAuditMitigationActionsTask.
52981type TaskStatisticsForAuditCheck struct {
52982	_ struct{} `type:"structure"`
52983
52984	// The number of findings to which the mitigation action task was canceled when
52985	// applied.
52986	CanceledFindingsCount *int64 `locationName:"canceledFindingsCount" type:"long"`
52987
52988	// The number of findings for which at least one of the actions failed when
52989	// applied.
52990	FailedFindingsCount *int64 `locationName:"failedFindingsCount" type:"long"`
52991
52992	// The number of findings skipped because of filter conditions provided in the
52993	// parameters to the command.
52994	SkippedFindingsCount *int64 `locationName:"skippedFindingsCount" type:"long"`
52995
52996	// The number of findings for which all mitigation actions succeeded when applied.
52997	SucceededFindingsCount *int64 `locationName:"succeededFindingsCount" type:"long"`
52998
52999	// The total number of findings to which a task is being applied.
53000	TotalFindingsCount *int64 `locationName:"totalFindingsCount" type:"long"`
53001}
53002
53003// String returns the string representation
53004func (s TaskStatisticsForAuditCheck) String() string {
53005	return awsutil.Prettify(s)
53006}
53007
53008// GoString returns the string representation
53009func (s TaskStatisticsForAuditCheck) GoString() string {
53010	return s.String()
53011}
53012
53013// SetCanceledFindingsCount sets the CanceledFindingsCount field's value.
53014func (s *TaskStatisticsForAuditCheck) SetCanceledFindingsCount(v int64) *TaskStatisticsForAuditCheck {
53015	s.CanceledFindingsCount = &v
53016	return s
53017}
53018
53019// SetFailedFindingsCount sets the FailedFindingsCount field's value.
53020func (s *TaskStatisticsForAuditCheck) SetFailedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
53021	s.FailedFindingsCount = &v
53022	return s
53023}
53024
53025// SetSkippedFindingsCount sets the SkippedFindingsCount field's value.
53026func (s *TaskStatisticsForAuditCheck) SetSkippedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
53027	s.SkippedFindingsCount = &v
53028	return s
53029}
53030
53031// SetSucceededFindingsCount sets the SucceededFindingsCount field's value.
53032func (s *TaskStatisticsForAuditCheck) SetSucceededFindingsCount(v int64) *TaskStatisticsForAuditCheck {
53033	s.SucceededFindingsCount = &v
53034	return s
53035}
53036
53037// SetTotalFindingsCount sets the TotalFindingsCount field's value.
53038func (s *TaskStatisticsForAuditCheck) SetTotalFindingsCount(v int64) *TaskStatisticsForAuditCheck {
53039	s.TotalFindingsCount = &v
53040	return s
53041}
53042
53043type TestAuthorizationInput struct {
53044	_ struct{} `type:"structure"`
53045
53046	// A list of authorization info objects. Simulating authorization will create
53047	// a response for each authInfo object in the list.
53048	//
53049	// AuthInfos is a required field
53050	AuthInfos []*AuthInfo `locationName:"authInfos" min:"1" type:"list" required:"true"`
53051
53052	// The MQTT client ID.
53053	ClientId *string `location:"querystring" locationName:"clientId" type:"string"`
53054
53055	// The Cognito identity pool ID.
53056	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
53057
53058	// When testing custom authorization, the policies specified here are treated
53059	// as if they are attached to the principal being authorized.
53060	PolicyNamesToAdd []*string `locationName:"policyNamesToAdd" type:"list"`
53061
53062	// When testing custom authorization, the policies specified here are treated
53063	// as if they are not attached to the principal being authorized.
53064	PolicyNamesToSkip []*string `locationName:"policyNamesToSkip" type:"list"`
53065
53066	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
53067	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
53068	// (region:id).
53069	Principal *string `locationName:"principal" type:"string"`
53070}
53071
53072// String returns the string representation
53073func (s TestAuthorizationInput) String() string {
53074	return awsutil.Prettify(s)
53075}
53076
53077// GoString returns the string representation
53078func (s TestAuthorizationInput) GoString() string {
53079	return s.String()
53080}
53081
53082// Validate inspects the fields of the type to determine if they are valid.
53083func (s *TestAuthorizationInput) Validate() error {
53084	invalidParams := request.ErrInvalidParams{Context: "TestAuthorizationInput"}
53085	if s.AuthInfos == nil {
53086		invalidParams.Add(request.NewErrParamRequired("AuthInfos"))
53087	}
53088	if s.AuthInfos != nil && len(s.AuthInfos) < 1 {
53089		invalidParams.Add(request.NewErrParamMinLen("AuthInfos", 1))
53090	}
53091	if s.AuthInfos != nil {
53092		for i, v := range s.AuthInfos {
53093			if v == nil {
53094				continue
53095			}
53096			if err := v.Validate(); err != nil {
53097				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuthInfos", i), err.(request.ErrInvalidParams))
53098			}
53099		}
53100	}
53101
53102	if invalidParams.Len() > 0 {
53103		return invalidParams
53104	}
53105	return nil
53106}
53107
53108// SetAuthInfos sets the AuthInfos field's value.
53109func (s *TestAuthorizationInput) SetAuthInfos(v []*AuthInfo) *TestAuthorizationInput {
53110	s.AuthInfos = v
53111	return s
53112}
53113
53114// SetClientId sets the ClientId field's value.
53115func (s *TestAuthorizationInput) SetClientId(v string) *TestAuthorizationInput {
53116	s.ClientId = &v
53117	return s
53118}
53119
53120// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
53121func (s *TestAuthorizationInput) SetCognitoIdentityPoolId(v string) *TestAuthorizationInput {
53122	s.CognitoIdentityPoolId = &v
53123	return s
53124}
53125
53126// SetPolicyNamesToAdd sets the PolicyNamesToAdd field's value.
53127func (s *TestAuthorizationInput) SetPolicyNamesToAdd(v []*string) *TestAuthorizationInput {
53128	s.PolicyNamesToAdd = v
53129	return s
53130}
53131
53132// SetPolicyNamesToSkip sets the PolicyNamesToSkip field's value.
53133func (s *TestAuthorizationInput) SetPolicyNamesToSkip(v []*string) *TestAuthorizationInput {
53134	s.PolicyNamesToSkip = v
53135	return s
53136}
53137
53138// SetPrincipal sets the Principal field's value.
53139func (s *TestAuthorizationInput) SetPrincipal(v string) *TestAuthorizationInput {
53140	s.Principal = &v
53141	return s
53142}
53143
53144type TestAuthorizationOutput struct {
53145	_ struct{} `type:"structure"`
53146
53147	// The authentication results.
53148	AuthResults []*AuthResult `locationName:"authResults" type:"list"`
53149}
53150
53151// String returns the string representation
53152func (s TestAuthorizationOutput) String() string {
53153	return awsutil.Prettify(s)
53154}
53155
53156// GoString returns the string representation
53157func (s TestAuthorizationOutput) GoString() string {
53158	return s.String()
53159}
53160
53161// SetAuthResults sets the AuthResults field's value.
53162func (s *TestAuthorizationOutput) SetAuthResults(v []*AuthResult) *TestAuthorizationOutput {
53163	s.AuthResults = v
53164	return s
53165}
53166
53167type TestInvokeAuthorizerInput struct {
53168	_ struct{} `type:"structure"`
53169
53170	// The custom authorizer name.
53171	//
53172	// AuthorizerName is a required field
53173	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
53174
53175	// Specifies a test HTTP authorization request.
53176	HttpContext *HttpContext `locationName:"httpContext" type:"structure"`
53177
53178	// Specifies a test MQTT authorization request.
53179	MqttContext *MqttContext `locationName:"mqttContext" type:"structure"`
53180
53181	// Specifies a test TLS authorization request.
53182	TlsContext *TlsContext `locationName:"tlsContext" type:"structure"`
53183
53184	// The token returned by your custom authentication service.
53185	Token *string `locationName:"token" min:"1" type:"string"`
53186
53187	// The signature made with the token and your custom authentication service's
53188	// private key. This value must be Base-64-encoded.
53189	TokenSignature *string `locationName:"tokenSignature" min:"1" type:"string"`
53190}
53191
53192// String returns the string representation
53193func (s TestInvokeAuthorizerInput) String() string {
53194	return awsutil.Prettify(s)
53195}
53196
53197// GoString returns the string representation
53198func (s TestInvokeAuthorizerInput) GoString() string {
53199	return s.String()
53200}
53201
53202// Validate inspects the fields of the type to determine if they are valid.
53203func (s *TestInvokeAuthorizerInput) Validate() error {
53204	invalidParams := request.ErrInvalidParams{Context: "TestInvokeAuthorizerInput"}
53205	if s.AuthorizerName == nil {
53206		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
53207	}
53208	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
53209		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
53210	}
53211	if s.Token != nil && len(*s.Token) < 1 {
53212		invalidParams.Add(request.NewErrParamMinLen("Token", 1))
53213	}
53214	if s.TokenSignature != nil && len(*s.TokenSignature) < 1 {
53215		invalidParams.Add(request.NewErrParamMinLen("TokenSignature", 1))
53216	}
53217	if s.HttpContext != nil {
53218		if err := s.HttpContext.Validate(); err != nil {
53219			invalidParams.AddNested("HttpContext", err.(request.ErrInvalidParams))
53220		}
53221	}
53222	if s.MqttContext != nil {
53223		if err := s.MqttContext.Validate(); err != nil {
53224			invalidParams.AddNested("MqttContext", err.(request.ErrInvalidParams))
53225		}
53226	}
53227	if s.TlsContext != nil {
53228		if err := s.TlsContext.Validate(); err != nil {
53229			invalidParams.AddNested("TlsContext", err.(request.ErrInvalidParams))
53230		}
53231	}
53232
53233	if invalidParams.Len() > 0 {
53234		return invalidParams
53235	}
53236	return nil
53237}
53238
53239// SetAuthorizerName sets the AuthorizerName field's value.
53240func (s *TestInvokeAuthorizerInput) SetAuthorizerName(v string) *TestInvokeAuthorizerInput {
53241	s.AuthorizerName = &v
53242	return s
53243}
53244
53245// SetHttpContext sets the HttpContext field's value.
53246func (s *TestInvokeAuthorizerInput) SetHttpContext(v *HttpContext) *TestInvokeAuthorizerInput {
53247	s.HttpContext = v
53248	return s
53249}
53250
53251// SetMqttContext sets the MqttContext field's value.
53252func (s *TestInvokeAuthorizerInput) SetMqttContext(v *MqttContext) *TestInvokeAuthorizerInput {
53253	s.MqttContext = v
53254	return s
53255}
53256
53257// SetTlsContext sets the TlsContext field's value.
53258func (s *TestInvokeAuthorizerInput) SetTlsContext(v *TlsContext) *TestInvokeAuthorizerInput {
53259	s.TlsContext = v
53260	return s
53261}
53262
53263// SetToken sets the Token field's value.
53264func (s *TestInvokeAuthorizerInput) SetToken(v string) *TestInvokeAuthorizerInput {
53265	s.Token = &v
53266	return s
53267}
53268
53269// SetTokenSignature sets the TokenSignature field's value.
53270func (s *TestInvokeAuthorizerInput) SetTokenSignature(v string) *TestInvokeAuthorizerInput {
53271	s.TokenSignature = &v
53272	return s
53273}
53274
53275type TestInvokeAuthorizerOutput struct {
53276	_ struct{} `type:"structure"`
53277
53278	// The number of seconds after which the connection is terminated.
53279	DisconnectAfterInSeconds *int64 `locationName:"disconnectAfterInSeconds" type:"integer"`
53280
53281	// True if the token is authenticated, otherwise false.
53282	IsAuthenticated *bool `locationName:"isAuthenticated" type:"boolean"`
53283
53284	// IAM policy documents.
53285	PolicyDocuments []*string `locationName:"policyDocuments" type:"list"`
53286
53287	// The principal ID.
53288	PrincipalId *string `locationName:"principalId" min:"1" type:"string"`
53289
53290	// The number of seconds after which the temporary credentials are refreshed.
53291	RefreshAfterInSeconds *int64 `locationName:"refreshAfterInSeconds" type:"integer"`
53292}
53293
53294// String returns the string representation
53295func (s TestInvokeAuthorizerOutput) String() string {
53296	return awsutil.Prettify(s)
53297}
53298
53299// GoString returns the string representation
53300func (s TestInvokeAuthorizerOutput) GoString() string {
53301	return s.String()
53302}
53303
53304// SetDisconnectAfterInSeconds sets the DisconnectAfterInSeconds field's value.
53305func (s *TestInvokeAuthorizerOutput) SetDisconnectAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
53306	s.DisconnectAfterInSeconds = &v
53307	return s
53308}
53309
53310// SetIsAuthenticated sets the IsAuthenticated field's value.
53311func (s *TestInvokeAuthorizerOutput) SetIsAuthenticated(v bool) *TestInvokeAuthorizerOutput {
53312	s.IsAuthenticated = &v
53313	return s
53314}
53315
53316// SetPolicyDocuments sets the PolicyDocuments field's value.
53317func (s *TestInvokeAuthorizerOutput) SetPolicyDocuments(v []*string) *TestInvokeAuthorizerOutput {
53318	s.PolicyDocuments = v
53319	return s
53320}
53321
53322// SetPrincipalId sets the PrincipalId field's value.
53323func (s *TestInvokeAuthorizerOutput) SetPrincipalId(v string) *TestInvokeAuthorizerOutput {
53324	s.PrincipalId = &v
53325	return s
53326}
53327
53328// SetRefreshAfterInSeconds sets the RefreshAfterInSeconds field's value.
53329func (s *TestInvokeAuthorizerOutput) SetRefreshAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
53330	s.RefreshAfterInSeconds = &v
53331	return s
53332}
53333
53334// The properties of the thing, including thing name, thing type name, and a
53335// list of thing attributes.
53336type ThingAttribute struct {
53337	_ struct{} `type:"structure"`
53338
53339	// A list of thing attributes which are name-value pairs.
53340	Attributes map[string]*string `locationName:"attributes" type:"map"`
53341
53342	// The thing ARN.
53343	ThingArn *string `locationName:"thingArn" type:"string"`
53344
53345	// The name of the thing.
53346	ThingName *string `locationName:"thingName" min:"1" type:"string"`
53347
53348	// The name of the thing type, if the thing has been associated with a type.
53349	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
53350
53351	// The version of the thing record in the registry.
53352	Version *int64 `locationName:"version" type:"long"`
53353}
53354
53355// String returns the string representation
53356func (s ThingAttribute) String() string {
53357	return awsutil.Prettify(s)
53358}
53359
53360// GoString returns the string representation
53361func (s ThingAttribute) GoString() string {
53362	return s.String()
53363}
53364
53365// SetAttributes sets the Attributes field's value.
53366func (s *ThingAttribute) SetAttributes(v map[string]*string) *ThingAttribute {
53367	s.Attributes = v
53368	return s
53369}
53370
53371// SetThingArn sets the ThingArn field's value.
53372func (s *ThingAttribute) SetThingArn(v string) *ThingAttribute {
53373	s.ThingArn = &v
53374	return s
53375}
53376
53377// SetThingName sets the ThingName field's value.
53378func (s *ThingAttribute) SetThingName(v string) *ThingAttribute {
53379	s.ThingName = &v
53380	return s
53381}
53382
53383// SetThingTypeName sets the ThingTypeName field's value.
53384func (s *ThingAttribute) SetThingTypeName(v string) *ThingAttribute {
53385	s.ThingTypeName = &v
53386	return s
53387}
53388
53389// SetVersion sets the Version field's value.
53390func (s *ThingAttribute) SetVersion(v int64) *ThingAttribute {
53391	s.Version = &v
53392	return s
53393}
53394
53395// The connectivity status of the thing.
53396type ThingConnectivity struct {
53397	_ struct{} `type:"structure"`
53398
53399	// True if the thing is connected to the AWS IoT service; false if it is not
53400	// connected.
53401	Connected *bool `locationName:"connected" type:"boolean"`
53402
53403	// The epoch time (in milliseconds) when the thing last connected or disconnected.
53404	// If the thing has been disconnected for more than a few weeks, the time value
53405	// might be missing.
53406	Timestamp *int64 `locationName:"timestamp" type:"long"`
53407}
53408
53409// String returns the string representation
53410func (s ThingConnectivity) String() string {
53411	return awsutil.Prettify(s)
53412}
53413
53414// GoString returns the string representation
53415func (s ThingConnectivity) GoString() string {
53416	return s.String()
53417}
53418
53419// SetConnected sets the Connected field's value.
53420func (s *ThingConnectivity) SetConnected(v bool) *ThingConnectivity {
53421	s.Connected = &v
53422	return s
53423}
53424
53425// SetTimestamp sets the Timestamp field's value.
53426func (s *ThingConnectivity) SetTimestamp(v int64) *ThingConnectivity {
53427	s.Timestamp = &v
53428	return s
53429}
53430
53431// The thing search index document.
53432type ThingDocument struct {
53433	_ struct{} `type:"structure"`
53434
53435	// The attributes.
53436	Attributes map[string]*string `locationName:"attributes" type:"map"`
53437
53438	// Indicates whether the thing is connected to the AWS IoT service.
53439	Connectivity *ThingConnectivity `locationName:"connectivity" type:"structure"`
53440
53441	// The shadow.
53442	Shadow *string `locationName:"shadow" type:"string"`
53443
53444	// Thing group names.
53445	ThingGroupNames []*string `locationName:"thingGroupNames" type:"list"`
53446
53447	// The thing ID.
53448	ThingId *string `locationName:"thingId" type:"string"`
53449
53450	// The thing name.
53451	ThingName *string `locationName:"thingName" min:"1" type:"string"`
53452
53453	// The thing type name.
53454	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
53455}
53456
53457// String returns the string representation
53458func (s ThingDocument) String() string {
53459	return awsutil.Prettify(s)
53460}
53461
53462// GoString returns the string representation
53463func (s ThingDocument) GoString() string {
53464	return s.String()
53465}
53466
53467// SetAttributes sets the Attributes field's value.
53468func (s *ThingDocument) SetAttributes(v map[string]*string) *ThingDocument {
53469	s.Attributes = v
53470	return s
53471}
53472
53473// SetConnectivity sets the Connectivity field's value.
53474func (s *ThingDocument) SetConnectivity(v *ThingConnectivity) *ThingDocument {
53475	s.Connectivity = v
53476	return s
53477}
53478
53479// SetShadow sets the Shadow field's value.
53480func (s *ThingDocument) SetShadow(v string) *ThingDocument {
53481	s.Shadow = &v
53482	return s
53483}
53484
53485// SetThingGroupNames sets the ThingGroupNames field's value.
53486func (s *ThingDocument) SetThingGroupNames(v []*string) *ThingDocument {
53487	s.ThingGroupNames = v
53488	return s
53489}
53490
53491// SetThingId sets the ThingId field's value.
53492func (s *ThingDocument) SetThingId(v string) *ThingDocument {
53493	s.ThingId = &v
53494	return s
53495}
53496
53497// SetThingName sets the ThingName field's value.
53498func (s *ThingDocument) SetThingName(v string) *ThingDocument {
53499	s.ThingName = &v
53500	return s
53501}
53502
53503// SetThingTypeName sets the ThingTypeName field's value.
53504func (s *ThingDocument) SetThingTypeName(v string) *ThingDocument {
53505	s.ThingTypeName = &v
53506	return s
53507}
53508
53509// The thing group search index document.
53510type ThingGroupDocument struct {
53511	_ struct{} `type:"structure"`
53512
53513	// The thing group attributes.
53514	Attributes map[string]*string `locationName:"attributes" type:"map"`
53515
53516	// Parent group names.
53517	ParentGroupNames []*string `locationName:"parentGroupNames" type:"list"`
53518
53519	// The thing group description.
53520	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
53521
53522	// The thing group ID.
53523	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
53524
53525	// The thing group name.
53526	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
53527}
53528
53529// String returns the string representation
53530func (s ThingGroupDocument) String() string {
53531	return awsutil.Prettify(s)
53532}
53533
53534// GoString returns the string representation
53535func (s ThingGroupDocument) GoString() string {
53536	return s.String()
53537}
53538
53539// SetAttributes sets the Attributes field's value.
53540func (s *ThingGroupDocument) SetAttributes(v map[string]*string) *ThingGroupDocument {
53541	s.Attributes = v
53542	return s
53543}
53544
53545// SetParentGroupNames sets the ParentGroupNames field's value.
53546func (s *ThingGroupDocument) SetParentGroupNames(v []*string) *ThingGroupDocument {
53547	s.ParentGroupNames = v
53548	return s
53549}
53550
53551// SetThingGroupDescription sets the ThingGroupDescription field's value.
53552func (s *ThingGroupDocument) SetThingGroupDescription(v string) *ThingGroupDocument {
53553	s.ThingGroupDescription = &v
53554	return s
53555}
53556
53557// SetThingGroupId sets the ThingGroupId field's value.
53558func (s *ThingGroupDocument) SetThingGroupId(v string) *ThingGroupDocument {
53559	s.ThingGroupId = &v
53560	return s
53561}
53562
53563// SetThingGroupName sets the ThingGroupName field's value.
53564func (s *ThingGroupDocument) SetThingGroupName(v string) *ThingGroupDocument {
53565	s.ThingGroupName = &v
53566	return s
53567}
53568
53569// Thing group indexing configuration.
53570type ThingGroupIndexingConfiguration struct {
53571	_ struct{} `type:"structure"`
53572
53573	// A list of thing group fields to index. This list cannot contain any managed
53574	// fields. Use the GetIndexingConfiguration API to get a list of managed fields.
53575	//
53576	// Contains custom field names and their data type.
53577	CustomFields []*Field `locationName:"customFields" type:"list"`
53578
53579	// Contains fields that are indexed and whose types are already known by the
53580	// Fleet Indexing service.
53581	ManagedFields []*Field `locationName:"managedFields" type:"list"`
53582
53583	// Thing group indexing mode.
53584	//
53585	// ThingGroupIndexingMode is a required field
53586	ThingGroupIndexingMode *string `locationName:"thingGroupIndexingMode" type:"string" required:"true" enum:"ThingGroupIndexingMode"`
53587}
53588
53589// String returns the string representation
53590func (s ThingGroupIndexingConfiguration) String() string {
53591	return awsutil.Prettify(s)
53592}
53593
53594// GoString returns the string representation
53595func (s ThingGroupIndexingConfiguration) GoString() string {
53596	return s.String()
53597}
53598
53599// Validate inspects the fields of the type to determine if they are valid.
53600func (s *ThingGroupIndexingConfiguration) Validate() error {
53601	invalidParams := request.ErrInvalidParams{Context: "ThingGroupIndexingConfiguration"}
53602	if s.ThingGroupIndexingMode == nil {
53603		invalidParams.Add(request.NewErrParamRequired("ThingGroupIndexingMode"))
53604	}
53605
53606	if invalidParams.Len() > 0 {
53607		return invalidParams
53608	}
53609	return nil
53610}
53611
53612// SetCustomFields sets the CustomFields field's value.
53613func (s *ThingGroupIndexingConfiguration) SetCustomFields(v []*Field) *ThingGroupIndexingConfiguration {
53614	s.CustomFields = v
53615	return s
53616}
53617
53618// SetManagedFields sets the ManagedFields field's value.
53619func (s *ThingGroupIndexingConfiguration) SetManagedFields(v []*Field) *ThingGroupIndexingConfiguration {
53620	s.ManagedFields = v
53621	return s
53622}
53623
53624// SetThingGroupIndexingMode sets the ThingGroupIndexingMode field's value.
53625func (s *ThingGroupIndexingConfiguration) SetThingGroupIndexingMode(v string) *ThingGroupIndexingConfiguration {
53626	s.ThingGroupIndexingMode = &v
53627	return s
53628}
53629
53630// Thing group metadata.
53631type ThingGroupMetadata struct {
53632	_ struct{} `type:"structure"`
53633
53634	// The UNIX timestamp of when the thing group was created.
53635	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
53636
53637	// The parent thing group name.
53638	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
53639
53640	// The root parent thing group.
53641	RootToParentThingGroups []*GroupNameAndArn `locationName:"rootToParentThingGroups" type:"list"`
53642}
53643
53644// String returns the string representation
53645func (s ThingGroupMetadata) String() string {
53646	return awsutil.Prettify(s)
53647}
53648
53649// GoString returns the string representation
53650func (s ThingGroupMetadata) GoString() string {
53651	return s.String()
53652}
53653
53654// SetCreationDate sets the CreationDate field's value.
53655func (s *ThingGroupMetadata) SetCreationDate(v time.Time) *ThingGroupMetadata {
53656	s.CreationDate = &v
53657	return s
53658}
53659
53660// SetParentGroupName sets the ParentGroupName field's value.
53661func (s *ThingGroupMetadata) SetParentGroupName(v string) *ThingGroupMetadata {
53662	s.ParentGroupName = &v
53663	return s
53664}
53665
53666// SetRootToParentThingGroups sets the RootToParentThingGroups field's value.
53667func (s *ThingGroupMetadata) SetRootToParentThingGroups(v []*GroupNameAndArn) *ThingGroupMetadata {
53668	s.RootToParentThingGroups = v
53669	return s
53670}
53671
53672// Thing group properties.
53673type ThingGroupProperties struct {
53674	_ struct{} `type:"structure"`
53675
53676	// The thing group attributes in JSON format.
53677	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
53678
53679	// The thing group description.
53680	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
53681}
53682
53683// String returns the string representation
53684func (s ThingGroupProperties) String() string {
53685	return awsutil.Prettify(s)
53686}
53687
53688// GoString returns the string representation
53689func (s ThingGroupProperties) GoString() string {
53690	return s.String()
53691}
53692
53693// SetAttributePayload sets the AttributePayload field's value.
53694func (s *ThingGroupProperties) SetAttributePayload(v *AttributePayload) *ThingGroupProperties {
53695	s.AttributePayload = v
53696	return s
53697}
53698
53699// SetThingGroupDescription sets the ThingGroupDescription field's value.
53700func (s *ThingGroupProperties) SetThingGroupDescription(v string) *ThingGroupProperties {
53701	s.ThingGroupDescription = &v
53702	return s
53703}
53704
53705// The thing indexing configuration. For more information, see Managing Thing
53706// Indexing (https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html).
53707type ThingIndexingConfiguration struct {
53708	_ struct{} `type:"structure"`
53709
53710	// Contains custom field names and their data type.
53711	CustomFields []*Field `locationName:"customFields" type:"list"`
53712
53713	// Contains fields that are indexed and whose types are already known by the
53714	// Fleet Indexing service.
53715	ManagedFields []*Field `locationName:"managedFields" type:"list"`
53716
53717	// Thing connectivity indexing mode. Valid values are:
53718	//
53719	//    * STATUS – Your thing index contains connectivity status. To enable
53720	//    thing connectivity indexing, thingIndexMode must not be set to OFF.
53721	//
53722	//    * OFF - Thing connectivity status indexing is disabled.
53723	ThingConnectivityIndexingMode *string `locationName:"thingConnectivityIndexingMode" type:"string" enum:"ThingConnectivityIndexingMode"`
53724
53725	// Thing indexing mode. Valid values are:
53726	//
53727	//    * REGISTRY – Your thing index contains registry data only.
53728	//
53729	//    * REGISTRY_AND_SHADOW - Your thing index contains registry and shadow
53730	//    data.
53731	//
53732	//    * OFF - Thing indexing is disabled.
53733	//
53734	// ThingIndexingMode is a required field
53735	ThingIndexingMode *string `locationName:"thingIndexingMode" type:"string" required:"true" enum:"ThingIndexingMode"`
53736}
53737
53738// String returns the string representation
53739func (s ThingIndexingConfiguration) String() string {
53740	return awsutil.Prettify(s)
53741}
53742
53743// GoString returns the string representation
53744func (s ThingIndexingConfiguration) GoString() string {
53745	return s.String()
53746}
53747
53748// Validate inspects the fields of the type to determine if they are valid.
53749func (s *ThingIndexingConfiguration) Validate() error {
53750	invalidParams := request.ErrInvalidParams{Context: "ThingIndexingConfiguration"}
53751	if s.ThingIndexingMode == nil {
53752		invalidParams.Add(request.NewErrParamRequired("ThingIndexingMode"))
53753	}
53754
53755	if invalidParams.Len() > 0 {
53756		return invalidParams
53757	}
53758	return nil
53759}
53760
53761// SetCustomFields sets the CustomFields field's value.
53762func (s *ThingIndexingConfiguration) SetCustomFields(v []*Field) *ThingIndexingConfiguration {
53763	s.CustomFields = v
53764	return s
53765}
53766
53767// SetManagedFields sets the ManagedFields field's value.
53768func (s *ThingIndexingConfiguration) SetManagedFields(v []*Field) *ThingIndexingConfiguration {
53769	s.ManagedFields = v
53770	return s
53771}
53772
53773// SetThingConnectivityIndexingMode sets the ThingConnectivityIndexingMode field's value.
53774func (s *ThingIndexingConfiguration) SetThingConnectivityIndexingMode(v string) *ThingIndexingConfiguration {
53775	s.ThingConnectivityIndexingMode = &v
53776	return s
53777}
53778
53779// SetThingIndexingMode sets the ThingIndexingMode field's value.
53780func (s *ThingIndexingConfiguration) SetThingIndexingMode(v string) *ThingIndexingConfiguration {
53781	s.ThingIndexingMode = &v
53782	return s
53783}
53784
53785// The definition of the thing type, including thing type name and description.
53786type ThingTypeDefinition struct {
53787	_ struct{} `type:"structure"`
53788
53789	// The thing type ARN.
53790	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
53791
53792	// The ThingTypeMetadata contains additional information about the thing type
53793	// including: creation date and time, a value indicating whether the thing type
53794	// is deprecated, and a date and time when it was deprecated.
53795	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
53796
53797	// The name of the thing type.
53798	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
53799
53800	// The ThingTypeProperties for the thing type.
53801	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
53802}
53803
53804// String returns the string representation
53805func (s ThingTypeDefinition) String() string {
53806	return awsutil.Prettify(s)
53807}
53808
53809// GoString returns the string representation
53810func (s ThingTypeDefinition) GoString() string {
53811	return s.String()
53812}
53813
53814// SetThingTypeArn sets the ThingTypeArn field's value.
53815func (s *ThingTypeDefinition) SetThingTypeArn(v string) *ThingTypeDefinition {
53816	s.ThingTypeArn = &v
53817	return s
53818}
53819
53820// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
53821func (s *ThingTypeDefinition) SetThingTypeMetadata(v *ThingTypeMetadata) *ThingTypeDefinition {
53822	s.ThingTypeMetadata = v
53823	return s
53824}
53825
53826// SetThingTypeName sets the ThingTypeName field's value.
53827func (s *ThingTypeDefinition) SetThingTypeName(v string) *ThingTypeDefinition {
53828	s.ThingTypeName = &v
53829	return s
53830}
53831
53832// SetThingTypeProperties sets the ThingTypeProperties field's value.
53833func (s *ThingTypeDefinition) SetThingTypeProperties(v *ThingTypeProperties) *ThingTypeDefinition {
53834	s.ThingTypeProperties = v
53835	return s
53836}
53837
53838// The ThingTypeMetadata contains additional information about the thing type
53839// including: creation date and time, a value indicating whether the thing type
53840// is deprecated, and a date and time when time was deprecated.
53841type ThingTypeMetadata struct {
53842	_ struct{} `type:"structure"`
53843
53844	// The date and time when the thing type was created.
53845	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
53846
53847	// Whether the thing type is deprecated. If true, no new things could be associated
53848	// with this type.
53849	Deprecated *bool `locationName:"deprecated" type:"boolean"`
53850
53851	// The date and time when the thing type was deprecated.
53852	DeprecationDate *time.Time `locationName:"deprecationDate" type:"timestamp"`
53853}
53854
53855// String returns the string representation
53856func (s ThingTypeMetadata) String() string {
53857	return awsutil.Prettify(s)
53858}
53859
53860// GoString returns the string representation
53861func (s ThingTypeMetadata) GoString() string {
53862	return s.String()
53863}
53864
53865// SetCreationDate sets the CreationDate field's value.
53866func (s *ThingTypeMetadata) SetCreationDate(v time.Time) *ThingTypeMetadata {
53867	s.CreationDate = &v
53868	return s
53869}
53870
53871// SetDeprecated sets the Deprecated field's value.
53872func (s *ThingTypeMetadata) SetDeprecated(v bool) *ThingTypeMetadata {
53873	s.Deprecated = &v
53874	return s
53875}
53876
53877// SetDeprecationDate sets the DeprecationDate field's value.
53878func (s *ThingTypeMetadata) SetDeprecationDate(v time.Time) *ThingTypeMetadata {
53879	s.DeprecationDate = &v
53880	return s
53881}
53882
53883// The ThingTypeProperties contains information about the thing type including:
53884// a thing type description, and a list of searchable thing attribute names.
53885type ThingTypeProperties struct {
53886	_ struct{} `type:"structure"`
53887
53888	// A list of searchable thing attribute names.
53889	SearchableAttributes []*string `locationName:"searchableAttributes" type:"list"`
53890
53891	// The description of the thing type.
53892	ThingTypeDescription *string `locationName:"thingTypeDescription" type:"string"`
53893}
53894
53895// String returns the string representation
53896func (s ThingTypeProperties) String() string {
53897	return awsutil.Prettify(s)
53898}
53899
53900// GoString returns the string representation
53901func (s ThingTypeProperties) GoString() string {
53902	return s.String()
53903}
53904
53905// SetSearchableAttributes sets the SearchableAttributes field's value.
53906func (s *ThingTypeProperties) SetSearchableAttributes(v []*string) *ThingTypeProperties {
53907	s.SearchableAttributes = v
53908	return s
53909}
53910
53911// SetThingTypeDescription sets the ThingTypeDescription field's value.
53912func (s *ThingTypeProperties) SetThingTypeDescription(v string) *ThingTypeProperties {
53913	s.ThingTypeDescription = &v
53914	return s
53915}
53916
53917// The rate exceeds the limit.
53918type ThrottlingException struct {
53919	_            struct{}                  `type:"structure"`
53920	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
53921
53922	// The message for the exception.
53923	Message_ *string `locationName:"message" type:"string"`
53924}
53925
53926// String returns the string representation
53927func (s ThrottlingException) String() string {
53928	return awsutil.Prettify(s)
53929}
53930
53931// GoString returns the string representation
53932func (s ThrottlingException) GoString() string {
53933	return s.String()
53934}
53935
53936func newErrorThrottlingException(v protocol.ResponseMetadata) error {
53937	return &ThrottlingException{
53938		RespMetadata: v,
53939	}
53940}
53941
53942// Code returns the exception type name.
53943func (s *ThrottlingException) Code() string {
53944	return "ThrottlingException"
53945}
53946
53947// Message returns the exception's message.
53948func (s *ThrottlingException) Message() string {
53949	if s.Message_ != nil {
53950		return *s.Message_
53951	}
53952	return ""
53953}
53954
53955// OrigErr always returns nil, satisfies awserr.Error interface.
53956func (s *ThrottlingException) OrigErr() error {
53957	return nil
53958}
53959
53960func (s *ThrottlingException) Error() string {
53961	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
53962}
53963
53964// Status code returns the HTTP status code for the request's response error.
53965func (s *ThrottlingException) StatusCode() int {
53966	return s.RespMetadata.StatusCode
53967}
53968
53969// RequestID returns the service's response RequestID for request.
53970func (s *ThrottlingException) RequestID() string {
53971	return s.RespMetadata.RequestID
53972}
53973
53974// Specifies the amount of time each device has to finish its execution of the
53975// job. A timer is started when the job execution status is set to IN_PROGRESS.
53976// If the job execution status is not set to another terminal state before the
53977// timer expires, it will be automatically set to TIMED_OUT.
53978type TimeoutConfig struct {
53979	_ struct{} `type:"structure"`
53980
53981	// Specifies the amount of time, in minutes, this device has to finish execution
53982	// of this job. The timeout interval can be anywhere between 1 minute and 7
53983	// days (1 to 10080 minutes). The in progress timer can't be updated and will
53984	// apply to all job executions for the job. Whenever a job execution remains
53985	// in the IN_PROGRESS status for longer than this interval, the job execution
53986	// will fail and switch to the terminal TIMED_OUT status.
53987	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
53988}
53989
53990// String returns the string representation
53991func (s TimeoutConfig) String() string {
53992	return awsutil.Prettify(s)
53993}
53994
53995// GoString returns the string representation
53996func (s TimeoutConfig) GoString() string {
53997	return s.String()
53998}
53999
54000// SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
54001func (s *TimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *TimeoutConfig {
54002	s.InProgressTimeoutInMinutes = &v
54003	return s
54004}
54005
54006// The Timestream rule action writes attributes (measures) from an MQTT message
54007// into an Amazon Timestream table. For more information, see the Timestream
54008// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
54009// topic rule action documentation.
54010type TimestreamAction struct {
54011	_ struct{} `type:"structure"`
54012
54013	// The name of an Amazon Timestream database.
54014	//
54015	// DatabaseName is a required field
54016	DatabaseName *string `locationName:"databaseName" type:"string" required:"true"`
54017
54018	// Metadata attributes of the time series that are written in each measure record.
54019	//
54020	// Dimensions is a required field
54021	Dimensions []*TimestreamDimension `locationName:"dimensions" min:"1" type:"list" required:"true"`
54022
54023	// The ARN of the role that grants permission to write to the Amazon Timestream
54024	// database table.
54025	//
54026	// RoleArn is a required field
54027	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
54028
54029	// The name of the database table into which to write the measure records.
54030	//
54031	// TableName is a required field
54032	TableName *string `locationName:"tableName" type:"string" required:"true"`
54033
54034	// Specifies an application-defined value to replace the default value assigned
54035	// to the Timestream record's timestamp in the time column.
54036	//
54037	// You can use this property to specify the value and the precision of the Timestream
54038	// record's timestamp. You can specify a value from the message payload or a
54039	// value computed by a substitution template.
54040	//
54041	// If omitted, the topic rule action assigns the timestamp, in milliseconds,
54042	// at the time it processed the rule.
54043	Timestamp *TimestreamTimestamp `locationName:"timestamp" type:"structure"`
54044}
54045
54046// String returns the string representation
54047func (s TimestreamAction) String() string {
54048	return awsutil.Prettify(s)
54049}
54050
54051// GoString returns the string representation
54052func (s TimestreamAction) GoString() string {
54053	return s.String()
54054}
54055
54056// Validate inspects the fields of the type to determine if they are valid.
54057func (s *TimestreamAction) Validate() error {
54058	invalidParams := request.ErrInvalidParams{Context: "TimestreamAction"}
54059	if s.DatabaseName == nil {
54060		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
54061	}
54062	if s.Dimensions == nil {
54063		invalidParams.Add(request.NewErrParamRequired("Dimensions"))
54064	}
54065	if s.Dimensions != nil && len(s.Dimensions) < 1 {
54066		invalidParams.Add(request.NewErrParamMinLen("Dimensions", 1))
54067	}
54068	if s.RoleArn == nil {
54069		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
54070	}
54071	if s.TableName == nil {
54072		invalidParams.Add(request.NewErrParamRequired("TableName"))
54073	}
54074	if s.Dimensions != nil {
54075		for i, v := range s.Dimensions {
54076			if v == nil {
54077				continue
54078			}
54079			if err := v.Validate(); err != nil {
54080				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
54081			}
54082		}
54083	}
54084	if s.Timestamp != nil {
54085		if err := s.Timestamp.Validate(); err != nil {
54086			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
54087		}
54088	}
54089
54090	if invalidParams.Len() > 0 {
54091		return invalidParams
54092	}
54093	return nil
54094}
54095
54096// SetDatabaseName sets the DatabaseName field's value.
54097func (s *TimestreamAction) SetDatabaseName(v string) *TimestreamAction {
54098	s.DatabaseName = &v
54099	return s
54100}
54101
54102// SetDimensions sets the Dimensions field's value.
54103func (s *TimestreamAction) SetDimensions(v []*TimestreamDimension) *TimestreamAction {
54104	s.Dimensions = v
54105	return s
54106}
54107
54108// SetRoleArn sets the RoleArn field's value.
54109func (s *TimestreamAction) SetRoleArn(v string) *TimestreamAction {
54110	s.RoleArn = &v
54111	return s
54112}
54113
54114// SetTableName sets the TableName field's value.
54115func (s *TimestreamAction) SetTableName(v string) *TimestreamAction {
54116	s.TableName = &v
54117	return s
54118}
54119
54120// SetTimestamp sets the Timestamp field's value.
54121func (s *TimestreamAction) SetTimestamp(v *TimestreamTimestamp) *TimestreamAction {
54122	s.Timestamp = v
54123	return s
54124}
54125
54126// Metadata attributes of the time series that are written in each measure record.
54127type TimestreamDimension struct {
54128	_ struct{} `type:"structure"`
54129
54130	// The metadata dimension name. This is the name of the column in the Amazon
54131	// Timestream database table record.
54132	//
54133	// Dimensions cannot be named: measure_name, measure_value, or time. These names
54134	// are reserved. Dimension names cannot start with ts_ or measure_value and
54135	// they cannot contain the colon (:) character.
54136	//
54137	// Name is a required field
54138	Name *string `locationName:"name" type:"string" required:"true"`
54139
54140	// The value to write in this column of the database record.
54141	//
54142	// Value is a required field
54143	Value *string `locationName:"value" type:"string" required:"true"`
54144}
54145
54146// String returns the string representation
54147func (s TimestreamDimension) String() string {
54148	return awsutil.Prettify(s)
54149}
54150
54151// GoString returns the string representation
54152func (s TimestreamDimension) GoString() string {
54153	return s.String()
54154}
54155
54156// Validate inspects the fields of the type to determine if they are valid.
54157func (s *TimestreamDimension) Validate() error {
54158	invalidParams := request.ErrInvalidParams{Context: "TimestreamDimension"}
54159	if s.Name == nil {
54160		invalidParams.Add(request.NewErrParamRequired("Name"))
54161	}
54162	if s.Value == nil {
54163		invalidParams.Add(request.NewErrParamRequired("Value"))
54164	}
54165
54166	if invalidParams.Len() > 0 {
54167		return invalidParams
54168	}
54169	return nil
54170}
54171
54172// SetName sets the Name field's value.
54173func (s *TimestreamDimension) SetName(v string) *TimestreamDimension {
54174	s.Name = &v
54175	return s
54176}
54177
54178// SetValue sets the Value field's value.
54179func (s *TimestreamDimension) SetValue(v string) *TimestreamDimension {
54180	s.Value = &v
54181	return s
54182}
54183
54184// Describes how to interpret an application-defined timestamp value from an
54185// MQTT message payload and the precision of that value.
54186type TimestreamTimestamp struct {
54187	_ struct{} `type:"structure"`
54188
54189	// The precision of the timestamp value that results from the expression described
54190	// in value.
54191	//
54192	// Valid values: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. The default
54193	// is MILLISECONDS.
54194	//
54195	// Unit is a required field
54196	Unit *string `locationName:"unit" type:"string" required:"true"`
54197
54198	// An expression that returns a long epoch time value.
54199	//
54200	// Value is a required field
54201	Value *string `locationName:"value" type:"string" required:"true"`
54202}
54203
54204// String returns the string representation
54205func (s TimestreamTimestamp) String() string {
54206	return awsutil.Prettify(s)
54207}
54208
54209// GoString returns the string representation
54210func (s TimestreamTimestamp) GoString() string {
54211	return s.String()
54212}
54213
54214// Validate inspects the fields of the type to determine if they are valid.
54215func (s *TimestreamTimestamp) Validate() error {
54216	invalidParams := request.ErrInvalidParams{Context: "TimestreamTimestamp"}
54217	if s.Unit == nil {
54218		invalidParams.Add(request.NewErrParamRequired("Unit"))
54219	}
54220	if s.Value == nil {
54221		invalidParams.Add(request.NewErrParamRequired("Value"))
54222	}
54223
54224	if invalidParams.Len() > 0 {
54225		return invalidParams
54226	}
54227	return nil
54228}
54229
54230// SetUnit sets the Unit field's value.
54231func (s *TimestreamTimestamp) SetUnit(v string) *TimestreamTimestamp {
54232	s.Unit = &v
54233	return s
54234}
54235
54236// SetValue sets the Value field's value.
54237func (s *TimestreamTimestamp) SetValue(v string) *TimestreamTimestamp {
54238	s.Value = &v
54239	return s
54240}
54241
54242// Specifies the TLS context to use for the test authorizer request.
54243type TlsContext struct {
54244	_ struct{} `type:"structure"`
54245
54246	// The value of the serverName key in a TLS authorization request.
54247	ServerName *string `locationName:"serverName" min:"1" type:"string"`
54248}
54249
54250// String returns the string representation
54251func (s TlsContext) String() string {
54252	return awsutil.Prettify(s)
54253}
54254
54255// GoString returns the string representation
54256func (s TlsContext) GoString() string {
54257	return s.String()
54258}
54259
54260// Validate inspects the fields of the type to determine if they are valid.
54261func (s *TlsContext) Validate() error {
54262	invalidParams := request.ErrInvalidParams{Context: "TlsContext"}
54263	if s.ServerName != nil && len(*s.ServerName) < 1 {
54264		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
54265	}
54266
54267	if invalidParams.Len() > 0 {
54268		return invalidParams
54269	}
54270	return nil
54271}
54272
54273// SetServerName sets the ServerName field's value.
54274func (s *TlsContext) SetServerName(v string) *TlsContext {
54275	s.ServerName = &v
54276	return s
54277}
54278
54279// Describes a rule.
54280type TopicRule struct {
54281	_ struct{} `type:"structure"`
54282
54283	// The actions associated with the rule.
54284	Actions []*Action `locationName:"actions" type:"list"`
54285
54286	// The version of the SQL rules engine to use when evaluating the rule.
54287	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
54288
54289	// The date and time the rule was created.
54290	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
54291
54292	// The description of the rule.
54293	Description *string `locationName:"description" type:"string"`
54294
54295	// The action to perform when an error occurs.
54296	ErrorAction *Action `locationName:"errorAction" type:"structure"`
54297
54298	// Specifies whether the rule is disabled.
54299	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
54300
54301	// The name of the rule.
54302	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
54303
54304	// The SQL statement used to query the topic. When using a SQL query with multiple
54305	// lines, be sure to escape the newline characters.
54306	Sql *string `locationName:"sql" type:"string"`
54307}
54308
54309// String returns the string representation
54310func (s TopicRule) String() string {
54311	return awsutil.Prettify(s)
54312}
54313
54314// GoString returns the string representation
54315func (s TopicRule) GoString() string {
54316	return s.String()
54317}
54318
54319// SetActions sets the Actions field's value.
54320func (s *TopicRule) SetActions(v []*Action) *TopicRule {
54321	s.Actions = v
54322	return s
54323}
54324
54325// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
54326func (s *TopicRule) SetAwsIotSqlVersion(v string) *TopicRule {
54327	s.AwsIotSqlVersion = &v
54328	return s
54329}
54330
54331// SetCreatedAt sets the CreatedAt field's value.
54332func (s *TopicRule) SetCreatedAt(v time.Time) *TopicRule {
54333	s.CreatedAt = &v
54334	return s
54335}
54336
54337// SetDescription sets the Description field's value.
54338func (s *TopicRule) SetDescription(v string) *TopicRule {
54339	s.Description = &v
54340	return s
54341}
54342
54343// SetErrorAction sets the ErrorAction field's value.
54344func (s *TopicRule) SetErrorAction(v *Action) *TopicRule {
54345	s.ErrorAction = v
54346	return s
54347}
54348
54349// SetRuleDisabled sets the RuleDisabled field's value.
54350func (s *TopicRule) SetRuleDisabled(v bool) *TopicRule {
54351	s.RuleDisabled = &v
54352	return s
54353}
54354
54355// SetRuleName sets the RuleName field's value.
54356func (s *TopicRule) SetRuleName(v string) *TopicRule {
54357	s.RuleName = &v
54358	return s
54359}
54360
54361// SetSql sets the Sql field's value.
54362func (s *TopicRule) SetSql(v string) *TopicRule {
54363	s.Sql = &v
54364	return s
54365}
54366
54367// A topic rule destination.
54368type TopicRuleDestination struct {
54369	_ struct{} `type:"structure"`
54370
54371	// The topic rule destination URL.
54372	Arn *string `locationName:"arn" type:"string"`
54373
54374	// The date and time when the topic rule destination was created.
54375	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
54376
54377	// Properties of the HTTP URL.
54378	HttpUrlProperties *HttpUrlDestinationProperties `locationName:"httpUrlProperties" type:"structure"`
54379
54380	// The date and time when the topic rule destination was last updated.
54381	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
54382
54383	// The status of the topic rule destination. Valid values are:
54384	//
54385	// IN_PROGRESS
54386	//
54387	// A topic rule destination was created but has not been confirmed. You can
54388	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
54389	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
54390	// to your confirmation endpoint.
54391	//
54392	// ENABLED
54393	//
54394	// Confirmation was completed, and traffic to this destination is allowed. You
54395	// can set status to DISABLED by calling UpdateTopicRuleDestination.
54396	//
54397	// DISABLED
54398	//
54399	// Confirmation was completed, and traffic to this destination is not allowed.
54400	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
54401	//
54402	// ERROR
54403	//
54404	// Confirmation could not be completed, for example if the confirmation timed
54405	// out. You can call GetTopicRuleDestination for details about the error. You
54406	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
54407	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
54408	// to your confirmation endpoint.
54409	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
54410
54411	// Additional details or reason why the topic rule destination is in the current
54412	// status.
54413	StatusReason *string `locationName:"statusReason" type:"string"`
54414
54415	// Properties of the virtual private cloud (VPC) connection.
54416	VpcProperties *VpcDestinationProperties `locationName:"vpcProperties" type:"structure"`
54417}
54418
54419// String returns the string representation
54420func (s TopicRuleDestination) String() string {
54421	return awsutil.Prettify(s)
54422}
54423
54424// GoString returns the string representation
54425func (s TopicRuleDestination) GoString() string {
54426	return s.String()
54427}
54428
54429// SetArn sets the Arn field's value.
54430func (s *TopicRuleDestination) SetArn(v string) *TopicRuleDestination {
54431	s.Arn = &v
54432	return s
54433}
54434
54435// SetCreatedAt sets the CreatedAt field's value.
54436func (s *TopicRuleDestination) SetCreatedAt(v time.Time) *TopicRuleDestination {
54437	s.CreatedAt = &v
54438	return s
54439}
54440
54441// SetHttpUrlProperties sets the HttpUrlProperties field's value.
54442func (s *TopicRuleDestination) SetHttpUrlProperties(v *HttpUrlDestinationProperties) *TopicRuleDestination {
54443	s.HttpUrlProperties = v
54444	return s
54445}
54446
54447// SetLastUpdatedAt sets the LastUpdatedAt field's value.
54448func (s *TopicRuleDestination) SetLastUpdatedAt(v time.Time) *TopicRuleDestination {
54449	s.LastUpdatedAt = &v
54450	return s
54451}
54452
54453// SetStatus sets the Status field's value.
54454func (s *TopicRuleDestination) SetStatus(v string) *TopicRuleDestination {
54455	s.Status = &v
54456	return s
54457}
54458
54459// SetStatusReason sets the StatusReason field's value.
54460func (s *TopicRuleDestination) SetStatusReason(v string) *TopicRuleDestination {
54461	s.StatusReason = &v
54462	return s
54463}
54464
54465// SetVpcProperties sets the VpcProperties field's value.
54466func (s *TopicRuleDestination) SetVpcProperties(v *VpcDestinationProperties) *TopicRuleDestination {
54467	s.VpcProperties = v
54468	return s
54469}
54470
54471// Configuration of the topic rule destination.
54472type TopicRuleDestinationConfiguration struct {
54473	_ struct{} `type:"structure"`
54474
54475	// Configuration of the HTTP URL.
54476	HttpUrlConfiguration *HttpUrlDestinationConfiguration `locationName:"httpUrlConfiguration" type:"structure"`
54477
54478	// Configuration of the virtual private cloud (VPC) connection.
54479	VpcConfiguration *VpcDestinationConfiguration `locationName:"vpcConfiguration" type:"structure"`
54480}
54481
54482// String returns the string representation
54483func (s TopicRuleDestinationConfiguration) String() string {
54484	return awsutil.Prettify(s)
54485}
54486
54487// GoString returns the string representation
54488func (s TopicRuleDestinationConfiguration) GoString() string {
54489	return s.String()
54490}
54491
54492// Validate inspects the fields of the type to determine if they are valid.
54493func (s *TopicRuleDestinationConfiguration) Validate() error {
54494	invalidParams := request.ErrInvalidParams{Context: "TopicRuleDestinationConfiguration"}
54495	if s.HttpUrlConfiguration != nil {
54496		if err := s.HttpUrlConfiguration.Validate(); err != nil {
54497			invalidParams.AddNested("HttpUrlConfiguration", err.(request.ErrInvalidParams))
54498		}
54499	}
54500	if s.VpcConfiguration != nil {
54501		if err := s.VpcConfiguration.Validate(); err != nil {
54502			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
54503		}
54504	}
54505
54506	if invalidParams.Len() > 0 {
54507		return invalidParams
54508	}
54509	return nil
54510}
54511
54512// SetHttpUrlConfiguration sets the HttpUrlConfiguration field's value.
54513func (s *TopicRuleDestinationConfiguration) SetHttpUrlConfiguration(v *HttpUrlDestinationConfiguration) *TopicRuleDestinationConfiguration {
54514	s.HttpUrlConfiguration = v
54515	return s
54516}
54517
54518// SetVpcConfiguration sets the VpcConfiguration field's value.
54519func (s *TopicRuleDestinationConfiguration) SetVpcConfiguration(v *VpcDestinationConfiguration) *TopicRuleDestinationConfiguration {
54520	s.VpcConfiguration = v
54521	return s
54522}
54523
54524// Information about the topic rule destination.
54525type TopicRuleDestinationSummary struct {
54526	_ struct{} `type:"structure"`
54527
54528	// The topic rule destination ARN.
54529	Arn *string `locationName:"arn" type:"string"`
54530
54531	// The date and time when the topic rule destination was created.
54532	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
54533
54534	// Information about the HTTP URL.
54535	HttpUrlSummary *HttpUrlDestinationSummary `locationName:"httpUrlSummary" type:"structure"`
54536
54537	// The date and time when the topic rule destination was last updated.
54538	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
54539
54540	// The status of the topic rule destination. Valid values are:
54541	//
54542	// IN_PROGRESS
54543	//
54544	// A topic rule destination was created but has not been confirmed. You can
54545	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
54546	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
54547	// to your confirmation endpoint.
54548	//
54549	// ENABLED
54550	//
54551	// Confirmation was completed, and traffic to this destination is allowed. You
54552	// can set status to DISABLED by calling UpdateTopicRuleDestination.
54553	//
54554	// DISABLED
54555	//
54556	// Confirmation was completed, and traffic to this destination is not allowed.
54557	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
54558	//
54559	// ERROR
54560	//
54561	// Confirmation could not be completed, for example if the confirmation timed
54562	// out. You can call GetTopicRuleDestination for details about the error. You
54563	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
54564	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
54565	// to your confirmation endpoint.
54566	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
54567
54568	// The reason the topic rule destination is in the current status.
54569	StatusReason *string `locationName:"statusReason" type:"string"`
54570
54571	// Information about the virtual private cloud (VPC) connection.
54572	VpcDestinationSummary *VpcDestinationSummary `locationName:"vpcDestinationSummary" type:"structure"`
54573}
54574
54575// String returns the string representation
54576func (s TopicRuleDestinationSummary) String() string {
54577	return awsutil.Prettify(s)
54578}
54579
54580// GoString returns the string representation
54581func (s TopicRuleDestinationSummary) GoString() string {
54582	return s.String()
54583}
54584
54585// SetArn sets the Arn field's value.
54586func (s *TopicRuleDestinationSummary) SetArn(v string) *TopicRuleDestinationSummary {
54587	s.Arn = &v
54588	return s
54589}
54590
54591// SetCreatedAt sets the CreatedAt field's value.
54592func (s *TopicRuleDestinationSummary) SetCreatedAt(v time.Time) *TopicRuleDestinationSummary {
54593	s.CreatedAt = &v
54594	return s
54595}
54596
54597// SetHttpUrlSummary sets the HttpUrlSummary field's value.
54598func (s *TopicRuleDestinationSummary) SetHttpUrlSummary(v *HttpUrlDestinationSummary) *TopicRuleDestinationSummary {
54599	s.HttpUrlSummary = v
54600	return s
54601}
54602
54603// SetLastUpdatedAt sets the LastUpdatedAt field's value.
54604func (s *TopicRuleDestinationSummary) SetLastUpdatedAt(v time.Time) *TopicRuleDestinationSummary {
54605	s.LastUpdatedAt = &v
54606	return s
54607}
54608
54609// SetStatus sets the Status field's value.
54610func (s *TopicRuleDestinationSummary) SetStatus(v string) *TopicRuleDestinationSummary {
54611	s.Status = &v
54612	return s
54613}
54614
54615// SetStatusReason sets the StatusReason field's value.
54616func (s *TopicRuleDestinationSummary) SetStatusReason(v string) *TopicRuleDestinationSummary {
54617	s.StatusReason = &v
54618	return s
54619}
54620
54621// SetVpcDestinationSummary sets the VpcDestinationSummary field's value.
54622func (s *TopicRuleDestinationSummary) SetVpcDestinationSummary(v *VpcDestinationSummary) *TopicRuleDestinationSummary {
54623	s.VpcDestinationSummary = v
54624	return s
54625}
54626
54627// Describes a rule.
54628type TopicRuleListItem struct {
54629	_ struct{} `type:"structure"`
54630
54631	// The date and time the rule was created.
54632	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
54633
54634	// The rule ARN.
54635	RuleArn *string `locationName:"ruleArn" type:"string"`
54636
54637	// Specifies whether the rule is disabled.
54638	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
54639
54640	// The name of the rule.
54641	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
54642
54643	// The pattern for the topic names that apply.
54644	TopicPattern *string `locationName:"topicPattern" type:"string"`
54645}
54646
54647// String returns the string representation
54648func (s TopicRuleListItem) String() string {
54649	return awsutil.Prettify(s)
54650}
54651
54652// GoString returns the string representation
54653func (s TopicRuleListItem) GoString() string {
54654	return s.String()
54655}
54656
54657// SetCreatedAt sets the CreatedAt field's value.
54658func (s *TopicRuleListItem) SetCreatedAt(v time.Time) *TopicRuleListItem {
54659	s.CreatedAt = &v
54660	return s
54661}
54662
54663// SetRuleArn sets the RuleArn field's value.
54664func (s *TopicRuleListItem) SetRuleArn(v string) *TopicRuleListItem {
54665	s.RuleArn = &v
54666	return s
54667}
54668
54669// SetRuleDisabled sets the RuleDisabled field's value.
54670func (s *TopicRuleListItem) SetRuleDisabled(v bool) *TopicRuleListItem {
54671	s.RuleDisabled = &v
54672	return s
54673}
54674
54675// SetRuleName sets the RuleName field's value.
54676func (s *TopicRuleListItem) SetRuleName(v string) *TopicRuleListItem {
54677	s.RuleName = &v
54678	return s
54679}
54680
54681// SetTopicPattern sets the TopicPattern field's value.
54682func (s *TopicRuleListItem) SetTopicPattern(v string) *TopicRuleListItem {
54683	s.TopicPattern = &v
54684	return s
54685}
54686
54687// Describes a rule.
54688type TopicRulePayload struct {
54689	_ struct{} `type:"structure"`
54690
54691	// The actions associated with the rule.
54692	//
54693	// Actions is a required field
54694	Actions []*Action `locationName:"actions" type:"list" required:"true"`
54695
54696	// The version of the SQL rules engine to use when evaluating the rule.
54697	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
54698
54699	// The description of the rule.
54700	Description *string `locationName:"description" type:"string"`
54701
54702	// The action to take when an error occurs.
54703	ErrorAction *Action `locationName:"errorAction" type:"structure"`
54704
54705	// Specifies whether the rule is disabled.
54706	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
54707
54708	// The SQL statement used to query the topic. For more information, see AWS
54709	// IoT SQL Reference (https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html)
54710	// in the AWS IoT Developer Guide.
54711	//
54712	// Sql is a required field
54713	Sql *string `locationName:"sql" type:"string" required:"true"`
54714}
54715
54716// String returns the string representation
54717func (s TopicRulePayload) String() string {
54718	return awsutil.Prettify(s)
54719}
54720
54721// GoString returns the string representation
54722func (s TopicRulePayload) GoString() string {
54723	return s.String()
54724}
54725
54726// Validate inspects the fields of the type to determine if they are valid.
54727func (s *TopicRulePayload) Validate() error {
54728	invalidParams := request.ErrInvalidParams{Context: "TopicRulePayload"}
54729	if s.Actions == nil {
54730		invalidParams.Add(request.NewErrParamRequired("Actions"))
54731	}
54732	if s.Sql == nil {
54733		invalidParams.Add(request.NewErrParamRequired("Sql"))
54734	}
54735	if s.Actions != nil {
54736		for i, v := range s.Actions {
54737			if v == nil {
54738				continue
54739			}
54740			if err := v.Validate(); err != nil {
54741				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
54742			}
54743		}
54744	}
54745	if s.ErrorAction != nil {
54746		if err := s.ErrorAction.Validate(); err != nil {
54747			invalidParams.AddNested("ErrorAction", err.(request.ErrInvalidParams))
54748		}
54749	}
54750
54751	if invalidParams.Len() > 0 {
54752		return invalidParams
54753	}
54754	return nil
54755}
54756
54757// SetActions sets the Actions field's value.
54758func (s *TopicRulePayload) SetActions(v []*Action) *TopicRulePayload {
54759	s.Actions = v
54760	return s
54761}
54762
54763// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
54764func (s *TopicRulePayload) SetAwsIotSqlVersion(v string) *TopicRulePayload {
54765	s.AwsIotSqlVersion = &v
54766	return s
54767}
54768
54769// SetDescription sets the Description field's value.
54770func (s *TopicRulePayload) SetDescription(v string) *TopicRulePayload {
54771	s.Description = &v
54772	return s
54773}
54774
54775// SetErrorAction sets the ErrorAction field's value.
54776func (s *TopicRulePayload) SetErrorAction(v *Action) *TopicRulePayload {
54777	s.ErrorAction = v
54778	return s
54779}
54780
54781// SetRuleDisabled sets the RuleDisabled field's value.
54782func (s *TopicRulePayload) SetRuleDisabled(v bool) *TopicRulePayload {
54783	s.RuleDisabled = &v
54784	return s
54785}
54786
54787// SetSql sets the Sql field's value.
54788func (s *TopicRulePayload) SetSql(v string) *TopicRulePayload {
54789	s.Sql = &v
54790	return s
54791}
54792
54793// You can't revert the certificate transfer because the transfer is already
54794// complete.
54795type TransferAlreadyCompletedException struct {
54796	_            struct{}                  `type:"structure"`
54797	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
54798
54799	// The message for the exception.
54800	Message_ *string `locationName:"message" type:"string"`
54801}
54802
54803// String returns the string representation
54804func (s TransferAlreadyCompletedException) String() string {
54805	return awsutil.Prettify(s)
54806}
54807
54808// GoString returns the string representation
54809func (s TransferAlreadyCompletedException) GoString() string {
54810	return s.String()
54811}
54812
54813func newErrorTransferAlreadyCompletedException(v protocol.ResponseMetadata) error {
54814	return &TransferAlreadyCompletedException{
54815		RespMetadata: v,
54816	}
54817}
54818
54819// Code returns the exception type name.
54820func (s *TransferAlreadyCompletedException) Code() string {
54821	return "TransferAlreadyCompletedException"
54822}
54823
54824// Message returns the exception's message.
54825func (s *TransferAlreadyCompletedException) Message() string {
54826	if s.Message_ != nil {
54827		return *s.Message_
54828	}
54829	return ""
54830}
54831
54832// OrigErr always returns nil, satisfies awserr.Error interface.
54833func (s *TransferAlreadyCompletedException) OrigErr() error {
54834	return nil
54835}
54836
54837func (s *TransferAlreadyCompletedException) Error() string {
54838	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
54839}
54840
54841// Status code returns the HTTP status code for the request's response error.
54842func (s *TransferAlreadyCompletedException) StatusCode() int {
54843	return s.RespMetadata.StatusCode
54844}
54845
54846// RequestID returns the service's response RequestID for request.
54847func (s *TransferAlreadyCompletedException) RequestID() string {
54848	return s.RespMetadata.RequestID
54849}
54850
54851// The input for the TransferCertificate operation.
54852type TransferCertificateInput struct {
54853	_ struct{} `type:"structure"`
54854
54855	// The ID of the certificate. (The last part of the certificate ARN contains
54856	// the certificate ID.)
54857	//
54858	// CertificateId is a required field
54859	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
54860
54861	// The AWS account.
54862	//
54863	// TargetAwsAccount is a required field
54864	TargetAwsAccount *string `location:"querystring" locationName:"targetAwsAccount" min:"12" type:"string" required:"true"`
54865
54866	// The transfer message.
54867	TransferMessage *string `locationName:"transferMessage" type:"string"`
54868}
54869
54870// String returns the string representation
54871func (s TransferCertificateInput) String() string {
54872	return awsutil.Prettify(s)
54873}
54874
54875// GoString returns the string representation
54876func (s TransferCertificateInput) GoString() string {
54877	return s.String()
54878}
54879
54880// Validate inspects the fields of the type to determine if they are valid.
54881func (s *TransferCertificateInput) Validate() error {
54882	invalidParams := request.ErrInvalidParams{Context: "TransferCertificateInput"}
54883	if s.CertificateId == nil {
54884		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
54885	}
54886	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
54887		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
54888	}
54889	if s.TargetAwsAccount == nil {
54890		invalidParams.Add(request.NewErrParamRequired("TargetAwsAccount"))
54891	}
54892	if s.TargetAwsAccount != nil && len(*s.TargetAwsAccount) < 12 {
54893		invalidParams.Add(request.NewErrParamMinLen("TargetAwsAccount", 12))
54894	}
54895
54896	if invalidParams.Len() > 0 {
54897		return invalidParams
54898	}
54899	return nil
54900}
54901
54902// SetCertificateId sets the CertificateId field's value.
54903func (s *TransferCertificateInput) SetCertificateId(v string) *TransferCertificateInput {
54904	s.CertificateId = &v
54905	return s
54906}
54907
54908// SetTargetAwsAccount sets the TargetAwsAccount field's value.
54909func (s *TransferCertificateInput) SetTargetAwsAccount(v string) *TransferCertificateInput {
54910	s.TargetAwsAccount = &v
54911	return s
54912}
54913
54914// SetTransferMessage sets the TransferMessage field's value.
54915func (s *TransferCertificateInput) SetTransferMessage(v string) *TransferCertificateInput {
54916	s.TransferMessage = &v
54917	return s
54918}
54919
54920// The output from the TransferCertificate operation.
54921type TransferCertificateOutput struct {
54922	_ struct{} `type:"structure"`
54923
54924	// The ARN of the certificate.
54925	TransferredCertificateArn *string `locationName:"transferredCertificateArn" type:"string"`
54926}
54927
54928// String returns the string representation
54929func (s TransferCertificateOutput) String() string {
54930	return awsutil.Prettify(s)
54931}
54932
54933// GoString returns the string representation
54934func (s TransferCertificateOutput) GoString() string {
54935	return s.String()
54936}
54937
54938// SetTransferredCertificateArn sets the TransferredCertificateArn field's value.
54939func (s *TransferCertificateOutput) SetTransferredCertificateArn(v string) *TransferCertificateOutput {
54940	s.TransferredCertificateArn = &v
54941	return s
54942}
54943
54944// You can't transfer the certificate because authorization policies are still
54945// attached.
54946type TransferConflictException struct {
54947	_            struct{}                  `type:"structure"`
54948	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
54949
54950	// The message for the exception.
54951	Message_ *string `locationName:"message" type:"string"`
54952}
54953
54954// String returns the string representation
54955func (s TransferConflictException) String() string {
54956	return awsutil.Prettify(s)
54957}
54958
54959// GoString returns the string representation
54960func (s TransferConflictException) GoString() string {
54961	return s.String()
54962}
54963
54964func newErrorTransferConflictException(v protocol.ResponseMetadata) error {
54965	return &TransferConflictException{
54966		RespMetadata: v,
54967	}
54968}
54969
54970// Code returns the exception type name.
54971func (s *TransferConflictException) Code() string {
54972	return "TransferConflictException"
54973}
54974
54975// Message returns the exception's message.
54976func (s *TransferConflictException) Message() string {
54977	if s.Message_ != nil {
54978		return *s.Message_
54979	}
54980	return ""
54981}
54982
54983// OrigErr always returns nil, satisfies awserr.Error interface.
54984func (s *TransferConflictException) OrigErr() error {
54985	return nil
54986}
54987
54988func (s *TransferConflictException) Error() string {
54989	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
54990}
54991
54992// Status code returns the HTTP status code for the request's response error.
54993func (s *TransferConflictException) StatusCode() int {
54994	return s.RespMetadata.StatusCode
54995}
54996
54997// RequestID returns the service's response RequestID for request.
54998func (s *TransferConflictException) RequestID() string {
54999	return s.RespMetadata.RequestID
55000}
55001
55002// Data used to transfer a certificate to an AWS account.
55003type TransferData struct {
55004	_ struct{} `type:"structure"`
55005
55006	// The date the transfer was accepted.
55007	AcceptDate *time.Time `locationName:"acceptDate" type:"timestamp"`
55008
55009	// The date the transfer was rejected.
55010	RejectDate *time.Time `locationName:"rejectDate" type:"timestamp"`
55011
55012	// The reason why the transfer was rejected.
55013	RejectReason *string `locationName:"rejectReason" type:"string"`
55014
55015	// The date the transfer took place.
55016	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
55017
55018	// The transfer message.
55019	TransferMessage *string `locationName:"transferMessage" type:"string"`
55020}
55021
55022// String returns the string representation
55023func (s TransferData) String() string {
55024	return awsutil.Prettify(s)
55025}
55026
55027// GoString returns the string representation
55028func (s TransferData) GoString() string {
55029	return s.String()
55030}
55031
55032// SetAcceptDate sets the AcceptDate field's value.
55033func (s *TransferData) SetAcceptDate(v time.Time) *TransferData {
55034	s.AcceptDate = &v
55035	return s
55036}
55037
55038// SetRejectDate sets the RejectDate field's value.
55039func (s *TransferData) SetRejectDate(v time.Time) *TransferData {
55040	s.RejectDate = &v
55041	return s
55042}
55043
55044// SetRejectReason sets the RejectReason field's value.
55045func (s *TransferData) SetRejectReason(v string) *TransferData {
55046	s.RejectReason = &v
55047	return s
55048}
55049
55050// SetTransferDate sets the TransferDate field's value.
55051func (s *TransferData) SetTransferDate(v time.Time) *TransferData {
55052	s.TransferDate = &v
55053	return s
55054}
55055
55056// SetTransferMessage sets the TransferMessage field's value.
55057func (s *TransferData) SetTransferMessage(v string) *TransferData {
55058	s.TransferMessage = &v
55059	return s
55060}
55061
55062// You are not authorized to perform this operation.
55063type UnauthorizedException struct {
55064	_            struct{}                  `type:"structure"`
55065	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
55066
55067	// The message for the exception.
55068	Message_ *string `locationName:"message" type:"string"`
55069}
55070
55071// String returns the string representation
55072func (s UnauthorizedException) String() string {
55073	return awsutil.Prettify(s)
55074}
55075
55076// GoString returns the string representation
55077func (s UnauthorizedException) GoString() string {
55078	return s.String()
55079}
55080
55081func newErrorUnauthorizedException(v protocol.ResponseMetadata) error {
55082	return &UnauthorizedException{
55083		RespMetadata: v,
55084	}
55085}
55086
55087// Code returns the exception type name.
55088func (s *UnauthorizedException) Code() string {
55089	return "UnauthorizedException"
55090}
55091
55092// Message returns the exception's message.
55093func (s *UnauthorizedException) Message() string {
55094	if s.Message_ != nil {
55095		return *s.Message_
55096	}
55097	return ""
55098}
55099
55100// OrigErr always returns nil, satisfies awserr.Error interface.
55101func (s *UnauthorizedException) OrigErr() error {
55102	return nil
55103}
55104
55105func (s *UnauthorizedException) Error() string {
55106	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
55107}
55108
55109// Status code returns the HTTP status code for the request's response error.
55110func (s *UnauthorizedException) StatusCode() int {
55111	return s.RespMetadata.StatusCode
55112}
55113
55114// RequestID returns the service's response RequestID for request.
55115func (s *UnauthorizedException) RequestID() string {
55116	return s.RespMetadata.RequestID
55117}
55118
55119type UntagResourceInput struct {
55120	_ struct{} `type:"structure"`
55121
55122	// The ARN of the resource.
55123	//
55124	// ResourceArn is a required field
55125	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
55126
55127	// A list of the keys of the tags to be removed from the resource.
55128	//
55129	// TagKeys is a required field
55130	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
55131}
55132
55133// String returns the string representation
55134func (s UntagResourceInput) String() string {
55135	return awsutil.Prettify(s)
55136}
55137
55138// GoString returns the string representation
55139func (s UntagResourceInput) GoString() string {
55140	return s.String()
55141}
55142
55143// Validate inspects the fields of the type to determine if they are valid.
55144func (s *UntagResourceInput) Validate() error {
55145	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
55146	if s.ResourceArn == nil {
55147		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
55148	}
55149	if s.TagKeys == nil {
55150		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
55151	}
55152
55153	if invalidParams.Len() > 0 {
55154		return invalidParams
55155	}
55156	return nil
55157}
55158
55159// SetResourceArn sets the ResourceArn field's value.
55160func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
55161	s.ResourceArn = &v
55162	return s
55163}
55164
55165// SetTagKeys sets the TagKeys field's value.
55166func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
55167	s.TagKeys = v
55168	return s
55169}
55170
55171type UntagResourceOutput struct {
55172	_ struct{} `type:"structure"`
55173}
55174
55175// String returns the string representation
55176func (s UntagResourceOutput) String() string {
55177	return awsutil.Prettify(s)
55178}
55179
55180// GoString returns the string representation
55181func (s UntagResourceOutput) GoString() string {
55182	return s.String()
55183}
55184
55185type UpdateAccountAuditConfigurationInput struct {
55186	_ struct{} `type:"structure"`
55187
55188	// Specifies which audit checks are enabled and disabled for this account. Use
55189	// DescribeAccountAuditConfiguration to see the list of all checks, including
55190	// those that are currently enabled.
55191	//
55192	// Some data collection might start immediately when certain checks are enabled.
55193	// When a check is disabled, any data collected so far in relation to the check
55194	// is deleted.
55195	//
55196	// You cannot disable a check if it's used by any scheduled audit. You must
55197	// first delete the check from the scheduled audit or delete the scheduled audit
55198	// itself.
55199	//
55200	// On the first call to UpdateAccountAuditConfiguration, this parameter is required
55201	// and must specify at least one enabled check.
55202	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
55203
55204	// Information about the targets to which audit notifications are sent.
55205	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
55206
55207	// The Amazon Resource Name (ARN) of the role that grants permission to AWS
55208	// IoT to access information about your devices, policies, certificates, and
55209	// other items as required when performing an audit.
55210	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
55211}
55212
55213// String returns the string representation
55214func (s UpdateAccountAuditConfigurationInput) String() string {
55215	return awsutil.Prettify(s)
55216}
55217
55218// GoString returns the string representation
55219func (s UpdateAccountAuditConfigurationInput) GoString() string {
55220	return s.String()
55221}
55222
55223// Validate inspects the fields of the type to determine if they are valid.
55224func (s *UpdateAccountAuditConfigurationInput) Validate() error {
55225	invalidParams := request.ErrInvalidParams{Context: "UpdateAccountAuditConfigurationInput"}
55226	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
55227		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
55228	}
55229	if s.AuditNotificationTargetConfigurations != nil {
55230		for i, v := range s.AuditNotificationTargetConfigurations {
55231			if v == nil {
55232				continue
55233			}
55234			if err := v.Validate(); err != nil {
55235				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuditNotificationTargetConfigurations", i), err.(request.ErrInvalidParams))
55236			}
55237		}
55238	}
55239
55240	if invalidParams.Len() > 0 {
55241		return invalidParams
55242	}
55243	return nil
55244}
55245
55246// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
55247func (s *UpdateAccountAuditConfigurationInput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *UpdateAccountAuditConfigurationInput {
55248	s.AuditCheckConfigurations = v
55249	return s
55250}
55251
55252// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
55253func (s *UpdateAccountAuditConfigurationInput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *UpdateAccountAuditConfigurationInput {
55254	s.AuditNotificationTargetConfigurations = v
55255	return s
55256}
55257
55258// SetRoleArn sets the RoleArn field's value.
55259func (s *UpdateAccountAuditConfigurationInput) SetRoleArn(v string) *UpdateAccountAuditConfigurationInput {
55260	s.RoleArn = &v
55261	return s
55262}
55263
55264type UpdateAccountAuditConfigurationOutput struct {
55265	_ struct{} `type:"structure"`
55266}
55267
55268// String returns the string representation
55269func (s UpdateAccountAuditConfigurationOutput) String() string {
55270	return awsutil.Prettify(s)
55271}
55272
55273// GoString returns the string representation
55274func (s UpdateAccountAuditConfigurationOutput) GoString() string {
55275	return s.String()
55276}
55277
55278type UpdateAuditSuppressionInput struct {
55279	_ struct{} `type:"structure"`
55280
55281	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
55282	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
55283	// to select which checks are enabled.)
55284	//
55285	// CheckName is a required field
55286	CheckName *string `locationName:"checkName" type:"string" required:"true"`
55287
55288	// The description of the audit suppression.
55289	Description *string `locationName:"description" type:"string"`
55290
55291	// The expiration date (epoch timestamp in seconds) that you want the suppression
55292	// to adhere to.
55293	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
55294
55295	// Information that identifies the noncompliant resource.
55296	//
55297	// ResourceIdentifier is a required field
55298	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
55299
55300	// Indicates whether a suppression should exist indefinitely or not.
55301	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
55302}
55303
55304// String returns the string representation
55305func (s UpdateAuditSuppressionInput) String() string {
55306	return awsutil.Prettify(s)
55307}
55308
55309// GoString returns the string representation
55310func (s UpdateAuditSuppressionInput) GoString() string {
55311	return s.String()
55312}
55313
55314// Validate inspects the fields of the type to determine if they are valid.
55315func (s *UpdateAuditSuppressionInput) Validate() error {
55316	invalidParams := request.ErrInvalidParams{Context: "UpdateAuditSuppressionInput"}
55317	if s.CheckName == nil {
55318		invalidParams.Add(request.NewErrParamRequired("CheckName"))
55319	}
55320	if s.ResourceIdentifier == nil {
55321		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
55322	}
55323	if s.ResourceIdentifier != nil {
55324		if err := s.ResourceIdentifier.Validate(); err != nil {
55325			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
55326		}
55327	}
55328
55329	if invalidParams.Len() > 0 {
55330		return invalidParams
55331	}
55332	return nil
55333}
55334
55335// SetCheckName sets the CheckName field's value.
55336func (s *UpdateAuditSuppressionInput) SetCheckName(v string) *UpdateAuditSuppressionInput {
55337	s.CheckName = &v
55338	return s
55339}
55340
55341// SetDescription sets the Description field's value.
55342func (s *UpdateAuditSuppressionInput) SetDescription(v string) *UpdateAuditSuppressionInput {
55343	s.Description = &v
55344	return s
55345}
55346
55347// SetExpirationDate sets the ExpirationDate field's value.
55348func (s *UpdateAuditSuppressionInput) SetExpirationDate(v time.Time) *UpdateAuditSuppressionInput {
55349	s.ExpirationDate = &v
55350	return s
55351}
55352
55353// SetResourceIdentifier sets the ResourceIdentifier field's value.
55354func (s *UpdateAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *UpdateAuditSuppressionInput {
55355	s.ResourceIdentifier = v
55356	return s
55357}
55358
55359// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
55360func (s *UpdateAuditSuppressionInput) SetSuppressIndefinitely(v bool) *UpdateAuditSuppressionInput {
55361	s.SuppressIndefinitely = &v
55362	return s
55363}
55364
55365type UpdateAuditSuppressionOutput struct {
55366	_ struct{} `type:"structure"`
55367}
55368
55369// String returns the string representation
55370func (s UpdateAuditSuppressionOutput) String() string {
55371	return awsutil.Prettify(s)
55372}
55373
55374// GoString returns the string representation
55375func (s UpdateAuditSuppressionOutput) GoString() string {
55376	return s.String()
55377}
55378
55379type UpdateAuthorizerInput struct {
55380	_ struct{} `type:"structure"`
55381
55382	// The ARN of the authorizer's Lambda function.
55383	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
55384
55385	// The authorizer name.
55386	//
55387	// AuthorizerName is a required field
55388	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
55389
55390	// The status of the update authorizer request.
55391	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
55392
55393	// The key used to extract the token from the HTTP headers.
55394	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
55395
55396	// The public keys used to verify the token signature.
55397	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
55398}
55399
55400// String returns the string representation
55401func (s UpdateAuthorizerInput) String() string {
55402	return awsutil.Prettify(s)
55403}
55404
55405// GoString returns the string representation
55406func (s UpdateAuthorizerInput) GoString() string {
55407	return s.String()
55408}
55409
55410// Validate inspects the fields of the type to determine if they are valid.
55411func (s *UpdateAuthorizerInput) Validate() error {
55412	invalidParams := request.ErrInvalidParams{Context: "UpdateAuthorizerInput"}
55413	if s.AuthorizerName == nil {
55414		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
55415	}
55416	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
55417		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
55418	}
55419	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
55420		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
55421	}
55422
55423	if invalidParams.Len() > 0 {
55424		return invalidParams
55425	}
55426	return nil
55427}
55428
55429// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
55430func (s *UpdateAuthorizerInput) SetAuthorizerFunctionArn(v string) *UpdateAuthorizerInput {
55431	s.AuthorizerFunctionArn = &v
55432	return s
55433}
55434
55435// SetAuthorizerName sets the AuthorizerName field's value.
55436func (s *UpdateAuthorizerInput) SetAuthorizerName(v string) *UpdateAuthorizerInput {
55437	s.AuthorizerName = &v
55438	return s
55439}
55440
55441// SetStatus sets the Status field's value.
55442func (s *UpdateAuthorizerInput) SetStatus(v string) *UpdateAuthorizerInput {
55443	s.Status = &v
55444	return s
55445}
55446
55447// SetTokenKeyName sets the TokenKeyName field's value.
55448func (s *UpdateAuthorizerInput) SetTokenKeyName(v string) *UpdateAuthorizerInput {
55449	s.TokenKeyName = &v
55450	return s
55451}
55452
55453// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
55454func (s *UpdateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *UpdateAuthorizerInput {
55455	s.TokenSigningPublicKeys = v
55456	return s
55457}
55458
55459type UpdateAuthorizerOutput struct {
55460	_ struct{} `type:"structure"`
55461
55462	// The authorizer ARN.
55463	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
55464
55465	// The authorizer name.
55466	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
55467}
55468
55469// String returns the string representation
55470func (s UpdateAuthorizerOutput) String() string {
55471	return awsutil.Prettify(s)
55472}
55473
55474// GoString returns the string representation
55475func (s UpdateAuthorizerOutput) GoString() string {
55476	return s.String()
55477}
55478
55479// SetAuthorizerArn sets the AuthorizerArn field's value.
55480func (s *UpdateAuthorizerOutput) SetAuthorizerArn(v string) *UpdateAuthorizerOutput {
55481	s.AuthorizerArn = &v
55482	return s
55483}
55484
55485// SetAuthorizerName sets the AuthorizerName field's value.
55486func (s *UpdateAuthorizerOutput) SetAuthorizerName(v string) *UpdateAuthorizerOutput {
55487	s.AuthorizerName = &v
55488	return s
55489}
55490
55491type UpdateBillingGroupInput struct {
55492	_ struct{} `type:"structure"`
55493
55494	// The name of the billing group.
55495	//
55496	// BillingGroupName is a required field
55497	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
55498
55499	// The properties of the billing group.
55500	//
55501	// BillingGroupProperties is a required field
55502	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure" required:"true"`
55503
55504	// The expected version of the billing group. If the version of the billing
55505	// group does not match the expected version specified in the request, the UpdateBillingGroup
55506	// request is rejected with a VersionConflictException.
55507	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
55508}
55509
55510// String returns the string representation
55511func (s UpdateBillingGroupInput) String() string {
55512	return awsutil.Prettify(s)
55513}
55514
55515// GoString returns the string representation
55516func (s UpdateBillingGroupInput) GoString() string {
55517	return s.String()
55518}
55519
55520// Validate inspects the fields of the type to determine if they are valid.
55521func (s *UpdateBillingGroupInput) Validate() error {
55522	invalidParams := request.ErrInvalidParams{Context: "UpdateBillingGroupInput"}
55523	if s.BillingGroupName == nil {
55524		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
55525	}
55526	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
55527		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
55528	}
55529	if s.BillingGroupProperties == nil {
55530		invalidParams.Add(request.NewErrParamRequired("BillingGroupProperties"))
55531	}
55532
55533	if invalidParams.Len() > 0 {
55534		return invalidParams
55535	}
55536	return nil
55537}
55538
55539// SetBillingGroupName sets the BillingGroupName field's value.
55540func (s *UpdateBillingGroupInput) SetBillingGroupName(v string) *UpdateBillingGroupInput {
55541	s.BillingGroupName = &v
55542	return s
55543}
55544
55545// SetBillingGroupProperties sets the BillingGroupProperties field's value.
55546func (s *UpdateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *UpdateBillingGroupInput {
55547	s.BillingGroupProperties = v
55548	return s
55549}
55550
55551// SetExpectedVersion sets the ExpectedVersion field's value.
55552func (s *UpdateBillingGroupInput) SetExpectedVersion(v int64) *UpdateBillingGroupInput {
55553	s.ExpectedVersion = &v
55554	return s
55555}
55556
55557type UpdateBillingGroupOutput struct {
55558	_ struct{} `type:"structure"`
55559
55560	// The latest version of the billing group.
55561	Version *int64 `locationName:"version" type:"long"`
55562}
55563
55564// String returns the string representation
55565func (s UpdateBillingGroupOutput) String() string {
55566	return awsutil.Prettify(s)
55567}
55568
55569// GoString returns the string representation
55570func (s UpdateBillingGroupOutput) GoString() string {
55571	return s.String()
55572}
55573
55574// SetVersion sets the Version field's value.
55575func (s *UpdateBillingGroupOutput) SetVersion(v int64) *UpdateBillingGroupOutput {
55576	s.Version = &v
55577	return s
55578}
55579
55580// The input to the UpdateCACertificate operation.
55581type UpdateCACertificateInput struct {
55582	_ struct{} `type:"structure"`
55583
55584	// The CA certificate identifier.
55585	//
55586	// CertificateId is a required field
55587	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
55588
55589	// The new value for the auto registration status. Valid values are: "ENABLE"
55590	// or "DISABLE".
55591	NewAutoRegistrationStatus *string `location:"querystring" locationName:"newAutoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
55592
55593	// The updated status of the CA certificate.
55594	//
55595	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
55596	// used.
55597	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" enum:"CACertificateStatus"`
55598
55599	// Information about the registration configuration.
55600	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
55601
55602	// If true, removes auto registration.
55603	RemoveAutoRegistration *bool `locationName:"removeAutoRegistration" type:"boolean"`
55604}
55605
55606// String returns the string representation
55607func (s UpdateCACertificateInput) String() string {
55608	return awsutil.Prettify(s)
55609}
55610
55611// GoString returns the string representation
55612func (s UpdateCACertificateInput) GoString() string {
55613	return s.String()
55614}
55615
55616// Validate inspects the fields of the type to determine if they are valid.
55617func (s *UpdateCACertificateInput) Validate() error {
55618	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateInput"}
55619	if s.CertificateId == nil {
55620		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
55621	}
55622	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
55623		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
55624	}
55625	if s.RegistrationConfig != nil {
55626		if err := s.RegistrationConfig.Validate(); err != nil {
55627			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
55628		}
55629	}
55630
55631	if invalidParams.Len() > 0 {
55632		return invalidParams
55633	}
55634	return nil
55635}
55636
55637// SetCertificateId sets the CertificateId field's value.
55638func (s *UpdateCACertificateInput) SetCertificateId(v string) *UpdateCACertificateInput {
55639	s.CertificateId = &v
55640	return s
55641}
55642
55643// SetNewAutoRegistrationStatus sets the NewAutoRegistrationStatus field's value.
55644func (s *UpdateCACertificateInput) SetNewAutoRegistrationStatus(v string) *UpdateCACertificateInput {
55645	s.NewAutoRegistrationStatus = &v
55646	return s
55647}
55648
55649// SetNewStatus sets the NewStatus field's value.
55650func (s *UpdateCACertificateInput) SetNewStatus(v string) *UpdateCACertificateInput {
55651	s.NewStatus = &v
55652	return s
55653}
55654
55655// SetRegistrationConfig sets the RegistrationConfig field's value.
55656func (s *UpdateCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *UpdateCACertificateInput {
55657	s.RegistrationConfig = v
55658	return s
55659}
55660
55661// SetRemoveAutoRegistration sets the RemoveAutoRegistration field's value.
55662func (s *UpdateCACertificateInput) SetRemoveAutoRegistration(v bool) *UpdateCACertificateInput {
55663	s.RemoveAutoRegistration = &v
55664	return s
55665}
55666
55667type UpdateCACertificateOutput struct {
55668	_ struct{} `type:"structure"`
55669}
55670
55671// String returns the string representation
55672func (s UpdateCACertificateOutput) String() string {
55673	return awsutil.Prettify(s)
55674}
55675
55676// GoString returns the string representation
55677func (s UpdateCACertificateOutput) GoString() string {
55678	return s.String()
55679}
55680
55681// Parameters to define a mitigation action that changes the state of the CA
55682// certificate to inactive.
55683type UpdateCACertificateParams struct {
55684	_ struct{} `type:"structure"`
55685
55686	// The action that you want to apply to the CA certificate. The only supported
55687	// value is DEACTIVATE.
55688	//
55689	// Action is a required field
55690	Action *string `locationName:"action" type:"string" required:"true" enum:"CACertificateUpdateAction"`
55691}
55692
55693// String returns the string representation
55694func (s UpdateCACertificateParams) String() string {
55695	return awsutil.Prettify(s)
55696}
55697
55698// GoString returns the string representation
55699func (s UpdateCACertificateParams) GoString() string {
55700	return s.String()
55701}
55702
55703// Validate inspects the fields of the type to determine if they are valid.
55704func (s *UpdateCACertificateParams) Validate() error {
55705	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateParams"}
55706	if s.Action == nil {
55707		invalidParams.Add(request.NewErrParamRequired("Action"))
55708	}
55709
55710	if invalidParams.Len() > 0 {
55711		return invalidParams
55712	}
55713	return nil
55714}
55715
55716// SetAction sets the Action field's value.
55717func (s *UpdateCACertificateParams) SetAction(v string) *UpdateCACertificateParams {
55718	s.Action = &v
55719	return s
55720}
55721
55722// The input for the UpdateCertificate operation.
55723type UpdateCertificateInput struct {
55724	_ struct{} `type:"structure"`
55725
55726	// The ID of the certificate. (The last part of the certificate ARN contains
55727	// the certificate ID.)
55728	//
55729	// CertificateId is a required field
55730	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
55731
55732	// The new status.
55733	//
55734	// Note: Setting the status to PENDING_TRANSFER or PENDING_ACTIVATION will result
55735	// in an exception being thrown. PENDING_TRANSFER and PENDING_ACTIVATION are
55736	// statuses used internally by AWS IoT. They are not intended for developer
55737	// use.
55738	//
55739	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
55740	// used.
55741	//
55742	// NewStatus is a required field
55743	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" required:"true" enum:"CertificateStatus"`
55744}
55745
55746// String returns the string representation
55747func (s UpdateCertificateInput) String() string {
55748	return awsutil.Prettify(s)
55749}
55750
55751// GoString returns the string representation
55752func (s UpdateCertificateInput) GoString() string {
55753	return s.String()
55754}
55755
55756// Validate inspects the fields of the type to determine if they are valid.
55757func (s *UpdateCertificateInput) Validate() error {
55758	invalidParams := request.ErrInvalidParams{Context: "UpdateCertificateInput"}
55759	if s.CertificateId == nil {
55760		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
55761	}
55762	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
55763		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
55764	}
55765	if s.NewStatus == nil {
55766		invalidParams.Add(request.NewErrParamRequired("NewStatus"))
55767	}
55768
55769	if invalidParams.Len() > 0 {
55770		return invalidParams
55771	}
55772	return nil
55773}
55774
55775// SetCertificateId sets the CertificateId field's value.
55776func (s *UpdateCertificateInput) SetCertificateId(v string) *UpdateCertificateInput {
55777	s.CertificateId = &v
55778	return s
55779}
55780
55781// SetNewStatus sets the NewStatus field's value.
55782func (s *UpdateCertificateInput) SetNewStatus(v string) *UpdateCertificateInput {
55783	s.NewStatus = &v
55784	return s
55785}
55786
55787type UpdateCertificateOutput struct {
55788	_ struct{} `type:"structure"`
55789}
55790
55791// String returns the string representation
55792func (s UpdateCertificateOutput) String() string {
55793	return awsutil.Prettify(s)
55794}
55795
55796// GoString returns the string representation
55797func (s UpdateCertificateOutput) GoString() string {
55798	return s.String()
55799}
55800
55801type UpdateCustomMetricInput struct {
55802	_ struct{} `type:"structure"`
55803
55804	// Field represents a friendly name in the console for the custom metric, it
55805	// doesn't have to be unique. Don't use this name as the metric identifier in
55806	// the device metric report. Can be updated.
55807	//
55808	// DisplayName is a required field
55809	DisplayName *string `locationName:"displayName" type:"string" required:"true"`
55810
55811	// The name of the custom metric. Cannot be updated.
55812	//
55813	// MetricName is a required field
55814	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
55815}
55816
55817// String returns the string representation
55818func (s UpdateCustomMetricInput) String() string {
55819	return awsutil.Prettify(s)
55820}
55821
55822// GoString returns the string representation
55823func (s UpdateCustomMetricInput) GoString() string {
55824	return s.String()
55825}
55826
55827// Validate inspects the fields of the type to determine if they are valid.
55828func (s *UpdateCustomMetricInput) Validate() error {
55829	invalidParams := request.ErrInvalidParams{Context: "UpdateCustomMetricInput"}
55830	if s.DisplayName == nil {
55831		invalidParams.Add(request.NewErrParamRequired("DisplayName"))
55832	}
55833	if s.MetricName == nil {
55834		invalidParams.Add(request.NewErrParamRequired("MetricName"))
55835	}
55836	if s.MetricName != nil && len(*s.MetricName) < 1 {
55837		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
55838	}
55839
55840	if invalidParams.Len() > 0 {
55841		return invalidParams
55842	}
55843	return nil
55844}
55845
55846// SetDisplayName sets the DisplayName field's value.
55847func (s *UpdateCustomMetricInput) SetDisplayName(v string) *UpdateCustomMetricInput {
55848	s.DisplayName = &v
55849	return s
55850}
55851
55852// SetMetricName sets the MetricName field's value.
55853func (s *UpdateCustomMetricInput) SetMetricName(v string) *UpdateCustomMetricInput {
55854	s.MetricName = &v
55855	return s
55856}
55857
55858type UpdateCustomMetricOutput struct {
55859	_ struct{} `type:"structure"`
55860
55861	// The creation date of the custom metric in milliseconds since epoch.
55862	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
55863
55864	// A friendly name in the console for the custom metric
55865	DisplayName *string `locationName:"displayName" type:"string"`
55866
55867	// The time the custom metric was last modified in milliseconds since epoch.
55868	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
55869
55870	// The Amazon Resource Number (ARN) of the custom metric.
55871	MetricArn *string `locationName:"metricArn" type:"string"`
55872
55873	// The name of the custom metric.
55874	MetricName *string `locationName:"metricName" min:"1" type:"string"`
55875
55876	// The type of the custom metric. Types include string-list, ip-address-list,
55877	// number-list, and number.
55878	MetricType *string `locationName:"metricType" type:"string" enum:"CustomMetricType"`
55879}
55880
55881// String returns the string representation
55882func (s UpdateCustomMetricOutput) String() string {
55883	return awsutil.Prettify(s)
55884}
55885
55886// GoString returns the string representation
55887func (s UpdateCustomMetricOutput) GoString() string {
55888	return s.String()
55889}
55890
55891// SetCreationDate sets the CreationDate field's value.
55892func (s *UpdateCustomMetricOutput) SetCreationDate(v time.Time) *UpdateCustomMetricOutput {
55893	s.CreationDate = &v
55894	return s
55895}
55896
55897// SetDisplayName sets the DisplayName field's value.
55898func (s *UpdateCustomMetricOutput) SetDisplayName(v string) *UpdateCustomMetricOutput {
55899	s.DisplayName = &v
55900	return s
55901}
55902
55903// SetLastModifiedDate sets the LastModifiedDate field's value.
55904func (s *UpdateCustomMetricOutput) SetLastModifiedDate(v time.Time) *UpdateCustomMetricOutput {
55905	s.LastModifiedDate = &v
55906	return s
55907}
55908
55909// SetMetricArn sets the MetricArn field's value.
55910func (s *UpdateCustomMetricOutput) SetMetricArn(v string) *UpdateCustomMetricOutput {
55911	s.MetricArn = &v
55912	return s
55913}
55914
55915// SetMetricName sets the MetricName field's value.
55916func (s *UpdateCustomMetricOutput) SetMetricName(v string) *UpdateCustomMetricOutput {
55917	s.MetricName = &v
55918	return s
55919}
55920
55921// SetMetricType sets the MetricType field's value.
55922func (s *UpdateCustomMetricOutput) SetMetricType(v string) *UpdateCustomMetricOutput {
55923	s.MetricType = &v
55924	return s
55925}
55926
55927// Parameters to define a mitigation action that changes the state of the device
55928// certificate to inactive.
55929type UpdateDeviceCertificateParams struct {
55930	_ struct{} `type:"structure"`
55931
55932	// The action that you want to apply to the device certificate. The only supported
55933	// value is DEACTIVATE.
55934	//
55935	// Action is a required field
55936	Action *string `locationName:"action" type:"string" required:"true" enum:"DeviceCertificateUpdateAction"`
55937}
55938
55939// String returns the string representation
55940func (s UpdateDeviceCertificateParams) String() string {
55941	return awsutil.Prettify(s)
55942}
55943
55944// GoString returns the string representation
55945func (s UpdateDeviceCertificateParams) GoString() string {
55946	return s.String()
55947}
55948
55949// Validate inspects the fields of the type to determine if they are valid.
55950func (s *UpdateDeviceCertificateParams) Validate() error {
55951	invalidParams := request.ErrInvalidParams{Context: "UpdateDeviceCertificateParams"}
55952	if s.Action == nil {
55953		invalidParams.Add(request.NewErrParamRequired("Action"))
55954	}
55955
55956	if invalidParams.Len() > 0 {
55957		return invalidParams
55958	}
55959	return nil
55960}
55961
55962// SetAction sets the Action field's value.
55963func (s *UpdateDeviceCertificateParams) SetAction(v string) *UpdateDeviceCertificateParams {
55964	s.Action = &v
55965	return s
55966}
55967
55968type UpdateDimensionInput struct {
55969	_ struct{} `type:"structure"`
55970
55971	// A unique identifier for the dimension. Choose something that describes the
55972	// type and value to make it easy to remember what it does.
55973	//
55974	// Name is a required field
55975	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
55976
55977	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
55978	// dimensions, this is a pattern used to match the MQTT topic (for example,
55979	// "admin/#").
55980	//
55981	// StringValues is a required field
55982	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
55983}
55984
55985// String returns the string representation
55986func (s UpdateDimensionInput) String() string {
55987	return awsutil.Prettify(s)
55988}
55989
55990// GoString returns the string representation
55991func (s UpdateDimensionInput) GoString() string {
55992	return s.String()
55993}
55994
55995// Validate inspects the fields of the type to determine if they are valid.
55996func (s *UpdateDimensionInput) Validate() error {
55997	invalidParams := request.ErrInvalidParams{Context: "UpdateDimensionInput"}
55998	if s.Name == nil {
55999		invalidParams.Add(request.NewErrParamRequired("Name"))
56000	}
56001	if s.Name != nil && len(*s.Name) < 1 {
56002		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
56003	}
56004	if s.StringValues == nil {
56005		invalidParams.Add(request.NewErrParamRequired("StringValues"))
56006	}
56007	if s.StringValues != nil && len(s.StringValues) < 1 {
56008		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
56009	}
56010
56011	if invalidParams.Len() > 0 {
56012		return invalidParams
56013	}
56014	return nil
56015}
56016
56017// SetName sets the Name field's value.
56018func (s *UpdateDimensionInput) SetName(v string) *UpdateDimensionInput {
56019	s.Name = &v
56020	return s
56021}
56022
56023// SetStringValues sets the StringValues field's value.
56024func (s *UpdateDimensionInput) SetStringValues(v []*string) *UpdateDimensionInput {
56025	s.StringValues = v
56026	return s
56027}
56028
56029type UpdateDimensionOutput struct {
56030	_ struct{} `type:"structure"`
56031
56032	// The Amazon Resource Name (ARN)of the created dimension.
56033	Arn *string `locationName:"arn" type:"string"`
56034
56035	// The date and time, in milliseconds since epoch, when the dimension was initially
56036	// created.
56037	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
56038
56039	// The date and time, in milliseconds since epoch, when the dimension was most
56040	// recently updated.
56041	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
56042
56043	// A unique identifier for the dimension.
56044	Name *string `locationName:"name" min:"1" type:"string"`
56045
56046	// The value or list of values used to scope the dimension. For example, for
56047	// topic filters, this is the pattern used to match the MQTT topic name.
56048	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
56049
56050	// The type of the dimension.
56051	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
56052}
56053
56054// String returns the string representation
56055func (s UpdateDimensionOutput) String() string {
56056	return awsutil.Prettify(s)
56057}
56058
56059// GoString returns the string representation
56060func (s UpdateDimensionOutput) GoString() string {
56061	return s.String()
56062}
56063
56064// SetArn sets the Arn field's value.
56065func (s *UpdateDimensionOutput) SetArn(v string) *UpdateDimensionOutput {
56066	s.Arn = &v
56067	return s
56068}
56069
56070// SetCreationDate sets the CreationDate field's value.
56071func (s *UpdateDimensionOutput) SetCreationDate(v time.Time) *UpdateDimensionOutput {
56072	s.CreationDate = &v
56073	return s
56074}
56075
56076// SetLastModifiedDate sets the LastModifiedDate field's value.
56077func (s *UpdateDimensionOutput) SetLastModifiedDate(v time.Time) *UpdateDimensionOutput {
56078	s.LastModifiedDate = &v
56079	return s
56080}
56081
56082// SetName sets the Name field's value.
56083func (s *UpdateDimensionOutput) SetName(v string) *UpdateDimensionOutput {
56084	s.Name = &v
56085	return s
56086}
56087
56088// SetStringValues sets the StringValues field's value.
56089func (s *UpdateDimensionOutput) SetStringValues(v []*string) *UpdateDimensionOutput {
56090	s.StringValues = v
56091	return s
56092}
56093
56094// SetType sets the Type field's value.
56095func (s *UpdateDimensionOutput) SetType(v string) *UpdateDimensionOutput {
56096	s.Type = &v
56097	return s
56098}
56099
56100type UpdateDomainConfigurationInput struct {
56101	_ struct{} `type:"structure"`
56102
56103	// An object that specifies the authorization service for a domain.
56104	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
56105
56106	// The name of the domain configuration to be updated.
56107	//
56108	// DomainConfigurationName is a required field
56109	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
56110
56111	// The status to which the domain configuration should be updated.
56112	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
56113
56114	// Removes the authorization configuration from a domain.
56115	RemoveAuthorizerConfig *bool `locationName:"removeAuthorizerConfig" type:"boolean"`
56116}
56117
56118// String returns the string representation
56119func (s UpdateDomainConfigurationInput) String() string {
56120	return awsutil.Prettify(s)
56121}
56122
56123// GoString returns the string representation
56124func (s UpdateDomainConfigurationInput) GoString() string {
56125	return s.String()
56126}
56127
56128// Validate inspects the fields of the type to determine if they are valid.
56129func (s *UpdateDomainConfigurationInput) Validate() error {
56130	invalidParams := request.ErrInvalidParams{Context: "UpdateDomainConfigurationInput"}
56131	if s.DomainConfigurationName == nil {
56132		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
56133	}
56134	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
56135		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
56136	}
56137	if s.AuthorizerConfig != nil {
56138		if err := s.AuthorizerConfig.Validate(); err != nil {
56139			invalidParams.AddNested("AuthorizerConfig", err.(request.ErrInvalidParams))
56140		}
56141	}
56142
56143	if invalidParams.Len() > 0 {
56144		return invalidParams
56145	}
56146	return nil
56147}
56148
56149// SetAuthorizerConfig sets the AuthorizerConfig field's value.
56150func (s *UpdateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *UpdateDomainConfigurationInput {
56151	s.AuthorizerConfig = v
56152	return s
56153}
56154
56155// SetDomainConfigurationName sets the DomainConfigurationName field's value.
56156func (s *UpdateDomainConfigurationInput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationInput {
56157	s.DomainConfigurationName = &v
56158	return s
56159}
56160
56161// SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
56162func (s *UpdateDomainConfigurationInput) SetDomainConfigurationStatus(v string) *UpdateDomainConfigurationInput {
56163	s.DomainConfigurationStatus = &v
56164	return s
56165}
56166
56167// SetRemoveAuthorizerConfig sets the RemoveAuthorizerConfig field's value.
56168func (s *UpdateDomainConfigurationInput) SetRemoveAuthorizerConfig(v bool) *UpdateDomainConfigurationInput {
56169	s.RemoveAuthorizerConfig = &v
56170	return s
56171}
56172
56173type UpdateDomainConfigurationOutput struct {
56174	_ struct{} `type:"structure"`
56175
56176	// The ARN of the domain configuration that was updated.
56177	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
56178
56179	// The name of the domain configuration that was updated.
56180	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
56181}
56182
56183// String returns the string representation
56184func (s UpdateDomainConfigurationOutput) String() string {
56185	return awsutil.Prettify(s)
56186}
56187
56188// GoString returns the string representation
56189func (s UpdateDomainConfigurationOutput) GoString() string {
56190	return s.String()
56191}
56192
56193// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
56194func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *UpdateDomainConfigurationOutput {
56195	s.DomainConfigurationArn = &v
56196	return s
56197}
56198
56199// SetDomainConfigurationName sets the DomainConfigurationName field's value.
56200func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationOutput {
56201	s.DomainConfigurationName = &v
56202	return s
56203}
56204
56205type UpdateDynamicThingGroupInput struct {
56206	_ struct{} `type:"structure"`
56207
56208	// The expected version of the dynamic thing group to update.
56209	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
56210
56211	// The dynamic thing group index to update.
56212	//
56213	// Currently one index is supported: 'AWS_Things'.
56214	IndexName *string `locationName:"indexName" min:"1" type:"string"`
56215
56216	// The dynamic thing group search query string to update.
56217	QueryString *string `locationName:"queryString" min:"1" type:"string"`
56218
56219	// The dynamic thing group query version to update.
56220	//
56221	// Currently one query version is supported: "2017-09-30". If not specified,
56222	// the query version defaults to this value.
56223	QueryVersion *string `locationName:"queryVersion" type:"string"`
56224
56225	// The name of the dynamic thing group to update.
56226	//
56227	// ThingGroupName is a required field
56228	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
56229
56230	// The dynamic thing group properties to update.
56231	//
56232	// ThingGroupProperties is a required field
56233	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
56234}
56235
56236// String returns the string representation
56237func (s UpdateDynamicThingGroupInput) String() string {
56238	return awsutil.Prettify(s)
56239}
56240
56241// GoString returns the string representation
56242func (s UpdateDynamicThingGroupInput) GoString() string {
56243	return s.String()
56244}
56245
56246// Validate inspects the fields of the type to determine if they are valid.
56247func (s *UpdateDynamicThingGroupInput) Validate() error {
56248	invalidParams := request.ErrInvalidParams{Context: "UpdateDynamicThingGroupInput"}
56249	if s.IndexName != nil && len(*s.IndexName) < 1 {
56250		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
56251	}
56252	if s.QueryString != nil && len(*s.QueryString) < 1 {
56253		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
56254	}
56255	if s.ThingGroupName == nil {
56256		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
56257	}
56258	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
56259		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
56260	}
56261	if s.ThingGroupProperties == nil {
56262		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
56263	}
56264
56265	if invalidParams.Len() > 0 {
56266		return invalidParams
56267	}
56268	return nil
56269}
56270
56271// SetExpectedVersion sets the ExpectedVersion field's value.
56272func (s *UpdateDynamicThingGroupInput) SetExpectedVersion(v int64) *UpdateDynamicThingGroupInput {
56273	s.ExpectedVersion = &v
56274	return s
56275}
56276
56277// SetIndexName sets the IndexName field's value.
56278func (s *UpdateDynamicThingGroupInput) SetIndexName(v string) *UpdateDynamicThingGroupInput {
56279	s.IndexName = &v
56280	return s
56281}
56282
56283// SetQueryString sets the QueryString field's value.
56284func (s *UpdateDynamicThingGroupInput) SetQueryString(v string) *UpdateDynamicThingGroupInput {
56285	s.QueryString = &v
56286	return s
56287}
56288
56289// SetQueryVersion sets the QueryVersion field's value.
56290func (s *UpdateDynamicThingGroupInput) SetQueryVersion(v string) *UpdateDynamicThingGroupInput {
56291	s.QueryVersion = &v
56292	return s
56293}
56294
56295// SetThingGroupName sets the ThingGroupName field's value.
56296func (s *UpdateDynamicThingGroupInput) SetThingGroupName(v string) *UpdateDynamicThingGroupInput {
56297	s.ThingGroupName = &v
56298	return s
56299}
56300
56301// SetThingGroupProperties sets the ThingGroupProperties field's value.
56302func (s *UpdateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateDynamicThingGroupInput {
56303	s.ThingGroupProperties = v
56304	return s
56305}
56306
56307type UpdateDynamicThingGroupOutput struct {
56308	_ struct{} `type:"structure"`
56309
56310	// The dynamic thing group version.
56311	Version *int64 `locationName:"version" type:"long"`
56312}
56313
56314// String returns the string representation
56315func (s UpdateDynamicThingGroupOutput) String() string {
56316	return awsutil.Prettify(s)
56317}
56318
56319// GoString returns the string representation
56320func (s UpdateDynamicThingGroupOutput) GoString() string {
56321	return s.String()
56322}
56323
56324// SetVersion sets the Version field's value.
56325func (s *UpdateDynamicThingGroupOutput) SetVersion(v int64) *UpdateDynamicThingGroupOutput {
56326	s.Version = &v
56327	return s
56328}
56329
56330type UpdateEventConfigurationsInput struct {
56331	_ struct{} `type:"structure"`
56332
56333	// The new event configuration values.
56334	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
56335}
56336
56337// String returns the string representation
56338func (s UpdateEventConfigurationsInput) String() string {
56339	return awsutil.Prettify(s)
56340}
56341
56342// GoString returns the string representation
56343func (s UpdateEventConfigurationsInput) GoString() string {
56344	return s.String()
56345}
56346
56347// SetEventConfigurations sets the EventConfigurations field's value.
56348func (s *UpdateEventConfigurationsInput) SetEventConfigurations(v map[string]*Configuration) *UpdateEventConfigurationsInput {
56349	s.EventConfigurations = v
56350	return s
56351}
56352
56353type UpdateEventConfigurationsOutput struct {
56354	_ struct{} `type:"structure"`
56355}
56356
56357// String returns the string representation
56358func (s UpdateEventConfigurationsOutput) String() string {
56359	return awsutil.Prettify(s)
56360}
56361
56362// GoString returns the string representation
56363func (s UpdateEventConfigurationsOutput) GoString() string {
56364	return s.String()
56365}
56366
56367type UpdateIndexingConfigurationInput struct {
56368	_ struct{} `type:"structure"`
56369
56370	// Thing group indexing configuration.
56371	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
56372
56373	// Thing indexing configuration.
56374	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
56375}
56376
56377// String returns the string representation
56378func (s UpdateIndexingConfigurationInput) String() string {
56379	return awsutil.Prettify(s)
56380}
56381
56382// GoString returns the string representation
56383func (s UpdateIndexingConfigurationInput) GoString() string {
56384	return s.String()
56385}
56386
56387// Validate inspects the fields of the type to determine if they are valid.
56388func (s *UpdateIndexingConfigurationInput) Validate() error {
56389	invalidParams := request.ErrInvalidParams{Context: "UpdateIndexingConfigurationInput"}
56390	if s.ThingGroupIndexingConfiguration != nil {
56391		if err := s.ThingGroupIndexingConfiguration.Validate(); err != nil {
56392			invalidParams.AddNested("ThingGroupIndexingConfiguration", err.(request.ErrInvalidParams))
56393		}
56394	}
56395	if s.ThingIndexingConfiguration != nil {
56396		if err := s.ThingIndexingConfiguration.Validate(); err != nil {
56397			invalidParams.AddNested("ThingIndexingConfiguration", err.(request.ErrInvalidParams))
56398		}
56399	}
56400
56401	if invalidParams.Len() > 0 {
56402		return invalidParams
56403	}
56404	return nil
56405}
56406
56407// SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
56408func (s *UpdateIndexingConfigurationInput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *UpdateIndexingConfigurationInput {
56409	s.ThingGroupIndexingConfiguration = v
56410	return s
56411}
56412
56413// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
56414func (s *UpdateIndexingConfigurationInput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *UpdateIndexingConfigurationInput {
56415	s.ThingIndexingConfiguration = v
56416	return s
56417}
56418
56419type UpdateIndexingConfigurationOutput struct {
56420	_ struct{} `type:"structure"`
56421}
56422
56423// String returns the string representation
56424func (s UpdateIndexingConfigurationOutput) String() string {
56425	return awsutil.Prettify(s)
56426}
56427
56428// GoString returns the string representation
56429func (s UpdateIndexingConfigurationOutput) GoString() string {
56430	return s.String()
56431}
56432
56433type UpdateJobInput struct {
56434	_ struct{} `type:"structure"`
56435
56436	// Allows you to create criteria to abort a job.
56437	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
56438
56439	// A short text description of the job.
56440	Description *string `locationName:"description" type:"string"`
56441
56442	// Allows you to create a staged rollout of the job.
56443	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
56444
56445	// The ID of the job to be updated.
56446	//
56447	// JobId is a required field
56448	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
56449
56450	// The namespace used to indicate that a job is a customer-managed job.
56451	//
56452	// When you specify a value for this parameter, AWS IoT Core sends jobs notifications
56453	// to MQTT topics that contain the value in the following format.
56454	//
56455	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
56456	//
56457	// The namespaceId feature is in public preview.
56458	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
56459
56460	// Configuration information for pre-signed S3 URLs.
56461	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
56462
56463	// Specifies the amount of time each device has to finish its execution of the
56464	// job. The timer is started when the job execution status is set to IN_PROGRESS.
56465	// If the job execution status is not set to another terminal state before the
56466	// time expires, it will be automatically set to TIMED_OUT.
56467	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
56468}
56469
56470// String returns the string representation
56471func (s UpdateJobInput) String() string {
56472	return awsutil.Prettify(s)
56473}
56474
56475// GoString returns the string representation
56476func (s UpdateJobInput) GoString() string {
56477	return s.String()
56478}
56479
56480// Validate inspects the fields of the type to determine if they are valid.
56481func (s *UpdateJobInput) Validate() error {
56482	invalidParams := request.ErrInvalidParams{Context: "UpdateJobInput"}
56483	if s.JobId == nil {
56484		invalidParams.Add(request.NewErrParamRequired("JobId"))
56485	}
56486	if s.JobId != nil && len(*s.JobId) < 1 {
56487		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
56488	}
56489	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
56490		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
56491	}
56492	if s.AbortConfig != nil {
56493		if err := s.AbortConfig.Validate(); err != nil {
56494			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
56495		}
56496	}
56497	if s.JobExecutionsRolloutConfig != nil {
56498		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
56499			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
56500		}
56501	}
56502	if s.PresignedUrlConfig != nil {
56503		if err := s.PresignedUrlConfig.Validate(); err != nil {
56504			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
56505		}
56506	}
56507
56508	if invalidParams.Len() > 0 {
56509		return invalidParams
56510	}
56511	return nil
56512}
56513
56514// SetAbortConfig sets the AbortConfig field's value.
56515func (s *UpdateJobInput) SetAbortConfig(v *AbortConfig) *UpdateJobInput {
56516	s.AbortConfig = v
56517	return s
56518}
56519
56520// SetDescription sets the Description field's value.
56521func (s *UpdateJobInput) SetDescription(v string) *UpdateJobInput {
56522	s.Description = &v
56523	return s
56524}
56525
56526// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
56527func (s *UpdateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *UpdateJobInput {
56528	s.JobExecutionsRolloutConfig = v
56529	return s
56530}
56531
56532// SetJobId sets the JobId field's value.
56533func (s *UpdateJobInput) SetJobId(v string) *UpdateJobInput {
56534	s.JobId = &v
56535	return s
56536}
56537
56538// SetNamespaceId sets the NamespaceId field's value.
56539func (s *UpdateJobInput) SetNamespaceId(v string) *UpdateJobInput {
56540	s.NamespaceId = &v
56541	return s
56542}
56543
56544// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
56545func (s *UpdateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *UpdateJobInput {
56546	s.PresignedUrlConfig = v
56547	return s
56548}
56549
56550// SetTimeoutConfig sets the TimeoutConfig field's value.
56551func (s *UpdateJobInput) SetTimeoutConfig(v *TimeoutConfig) *UpdateJobInput {
56552	s.TimeoutConfig = v
56553	return s
56554}
56555
56556type UpdateJobOutput struct {
56557	_ struct{} `type:"structure"`
56558}
56559
56560// String returns the string representation
56561func (s UpdateJobOutput) String() string {
56562	return awsutil.Prettify(s)
56563}
56564
56565// GoString returns the string representation
56566func (s UpdateJobOutput) GoString() string {
56567	return s.String()
56568}
56569
56570type UpdateMitigationActionInput struct {
56571	_ struct{} `type:"structure"`
56572
56573	// The friendly name for the mitigation action. You cannot change the name by
56574	// using UpdateMitigationAction. Instead, you must delete and recreate the mitigation
56575	// action with the new name.
56576	//
56577	// ActionName is a required field
56578	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
56579
56580	// Defines the type of action and the parameters for that action.
56581	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
56582
56583	// The ARN of the IAM role that is used to apply the mitigation action.
56584	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
56585}
56586
56587// String returns the string representation
56588func (s UpdateMitigationActionInput) String() string {
56589	return awsutil.Prettify(s)
56590}
56591
56592// GoString returns the string representation
56593func (s UpdateMitigationActionInput) GoString() string {
56594	return s.String()
56595}
56596
56597// Validate inspects the fields of the type to determine if they are valid.
56598func (s *UpdateMitigationActionInput) Validate() error {
56599	invalidParams := request.ErrInvalidParams{Context: "UpdateMitigationActionInput"}
56600	if s.ActionName == nil {
56601		invalidParams.Add(request.NewErrParamRequired("ActionName"))
56602	}
56603	if s.ActionName != nil && len(*s.ActionName) < 1 {
56604		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
56605	}
56606	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
56607		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
56608	}
56609	if s.ActionParams != nil {
56610		if err := s.ActionParams.Validate(); err != nil {
56611			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
56612		}
56613	}
56614
56615	if invalidParams.Len() > 0 {
56616		return invalidParams
56617	}
56618	return nil
56619}
56620
56621// SetActionName sets the ActionName field's value.
56622func (s *UpdateMitigationActionInput) SetActionName(v string) *UpdateMitigationActionInput {
56623	s.ActionName = &v
56624	return s
56625}
56626
56627// SetActionParams sets the ActionParams field's value.
56628func (s *UpdateMitigationActionInput) SetActionParams(v *MitigationActionParams) *UpdateMitigationActionInput {
56629	s.ActionParams = v
56630	return s
56631}
56632
56633// SetRoleArn sets the RoleArn field's value.
56634func (s *UpdateMitigationActionInput) SetRoleArn(v string) *UpdateMitigationActionInput {
56635	s.RoleArn = &v
56636	return s
56637}
56638
56639type UpdateMitigationActionOutput struct {
56640	_ struct{} `type:"structure"`
56641
56642	// The ARN for the new mitigation action.
56643	ActionArn *string `locationName:"actionArn" type:"string"`
56644
56645	// A unique identifier for the mitigation action.
56646	ActionId *string `locationName:"actionId" type:"string"`
56647}
56648
56649// String returns the string representation
56650func (s UpdateMitigationActionOutput) String() string {
56651	return awsutil.Prettify(s)
56652}
56653
56654// GoString returns the string representation
56655func (s UpdateMitigationActionOutput) GoString() string {
56656	return s.String()
56657}
56658
56659// SetActionArn sets the ActionArn field's value.
56660func (s *UpdateMitigationActionOutput) SetActionArn(v string) *UpdateMitigationActionOutput {
56661	s.ActionArn = &v
56662	return s
56663}
56664
56665// SetActionId sets the ActionId field's value.
56666func (s *UpdateMitigationActionOutput) SetActionId(v string) *UpdateMitigationActionOutput {
56667	s.ActionId = &v
56668	return s
56669}
56670
56671type UpdateProvisioningTemplateInput struct {
56672	_ struct{} `type:"structure"`
56673
56674	// The ID of the default provisioning template version.
56675	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
56676
56677	// The description of the fleet provisioning template.
56678	Description *string `locationName:"description" type:"string"`
56679
56680	// True to enable the fleet provisioning template, otherwise false.
56681	Enabled *bool `locationName:"enabled" type:"boolean"`
56682
56683	// Updates the pre-provisioning hook template.
56684	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
56685
56686	// The ARN of the role associated with the provisioning template. This IoT role
56687	// grants permission to provision a device.
56688	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
56689
56690	// Removes pre-provisioning hook template.
56691	RemovePreProvisioningHook *bool `locationName:"removePreProvisioningHook" type:"boolean"`
56692
56693	// The name of the fleet provisioning template.
56694	//
56695	// TemplateName is a required field
56696	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
56697}
56698
56699// String returns the string representation
56700func (s UpdateProvisioningTemplateInput) String() string {
56701	return awsutil.Prettify(s)
56702}
56703
56704// GoString returns the string representation
56705func (s UpdateProvisioningTemplateInput) GoString() string {
56706	return s.String()
56707}
56708
56709// Validate inspects the fields of the type to determine if they are valid.
56710func (s *UpdateProvisioningTemplateInput) Validate() error {
56711	invalidParams := request.ErrInvalidParams{Context: "UpdateProvisioningTemplateInput"}
56712	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
56713		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
56714	}
56715	if s.TemplateName == nil {
56716		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
56717	}
56718	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
56719		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
56720	}
56721	if s.PreProvisioningHook != nil {
56722		if err := s.PreProvisioningHook.Validate(); err != nil {
56723			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
56724		}
56725	}
56726
56727	if invalidParams.Len() > 0 {
56728		return invalidParams
56729	}
56730	return nil
56731}
56732
56733// SetDefaultVersionId sets the DefaultVersionId field's value.
56734func (s *UpdateProvisioningTemplateInput) SetDefaultVersionId(v int64) *UpdateProvisioningTemplateInput {
56735	s.DefaultVersionId = &v
56736	return s
56737}
56738
56739// SetDescription sets the Description field's value.
56740func (s *UpdateProvisioningTemplateInput) SetDescription(v string) *UpdateProvisioningTemplateInput {
56741	s.Description = &v
56742	return s
56743}
56744
56745// SetEnabled sets the Enabled field's value.
56746func (s *UpdateProvisioningTemplateInput) SetEnabled(v bool) *UpdateProvisioningTemplateInput {
56747	s.Enabled = &v
56748	return s
56749}
56750
56751// SetPreProvisioningHook sets the PreProvisioningHook field's value.
56752func (s *UpdateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *UpdateProvisioningTemplateInput {
56753	s.PreProvisioningHook = v
56754	return s
56755}
56756
56757// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
56758func (s *UpdateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *UpdateProvisioningTemplateInput {
56759	s.ProvisioningRoleArn = &v
56760	return s
56761}
56762
56763// SetRemovePreProvisioningHook sets the RemovePreProvisioningHook field's value.
56764func (s *UpdateProvisioningTemplateInput) SetRemovePreProvisioningHook(v bool) *UpdateProvisioningTemplateInput {
56765	s.RemovePreProvisioningHook = &v
56766	return s
56767}
56768
56769// SetTemplateName sets the TemplateName field's value.
56770func (s *UpdateProvisioningTemplateInput) SetTemplateName(v string) *UpdateProvisioningTemplateInput {
56771	s.TemplateName = &v
56772	return s
56773}
56774
56775type UpdateProvisioningTemplateOutput struct {
56776	_ struct{} `type:"structure"`
56777}
56778
56779// String returns the string representation
56780func (s UpdateProvisioningTemplateOutput) String() string {
56781	return awsutil.Prettify(s)
56782}
56783
56784// GoString returns the string representation
56785func (s UpdateProvisioningTemplateOutput) GoString() string {
56786	return s.String()
56787}
56788
56789type UpdateRoleAliasInput struct {
56790	_ struct{} `type:"structure"`
56791
56792	// The number of seconds the credential will be valid.
56793	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
56794
56795	// The role alias to update.
56796	//
56797	// RoleAlias is a required field
56798	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
56799
56800	// The role ARN.
56801	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
56802}
56803
56804// String returns the string representation
56805func (s UpdateRoleAliasInput) String() string {
56806	return awsutil.Prettify(s)
56807}
56808
56809// GoString returns the string representation
56810func (s UpdateRoleAliasInput) GoString() string {
56811	return s.String()
56812}
56813
56814// Validate inspects the fields of the type to determine if they are valid.
56815func (s *UpdateRoleAliasInput) Validate() error {
56816	invalidParams := request.ErrInvalidParams{Context: "UpdateRoleAliasInput"}
56817	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
56818		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
56819	}
56820	if s.RoleAlias == nil {
56821		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
56822	}
56823	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
56824		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
56825	}
56826	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
56827		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
56828	}
56829
56830	if invalidParams.Len() > 0 {
56831		return invalidParams
56832	}
56833	return nil
56834}
56835
56836// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
56837func (s *UpdateRoleAliasInput) SetCredentialDurationSeconds(v int64) *UpdateRoleAliasInput {
56838	s.CredentialDurationSeconds = &v
56839	return s
56840}
56841
56842// SetRoleAlias sets the RoleAlias field's value.
56843func (s *UpdateRoleAliasInput) SetRoleAlias(v string) *UpdateRoleAliasInput {
56844	s.RoleAlias = &v
56845	return s
56846}
56847
56848// SetRoleArn sets the RoleArn field's value.
56849func (s *UpdateRoleAliasInput) SetRoleArn(v string) *UpdateRoleAliasInput {
56850	s.RoleArn = &v
56851	return s
56852}
56853
56854type UpdateRoleAliasOutput struct {
56855	_ struct{} `type:"structure"`
56856
56857	// The role alias.
56858	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
56859
56860	// The role alias ARN.
56861	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
56862}
56863
56864// String returns the string representation
56865func (s UpdateRoleAliasOutput) String() string {
56866	return awsutil.Prettify(s)
56867}
56868
56869// GoString returns the string representation
56870func (s UpdateRoleAliasOutput) GoString() string {
56871	return s.String()
56872}
56873
56874// SetRoleAlias sets the RoleAlias field's value.
56875func (s *UpdateRoleAliasOutput) SetRoleAlias(v string) *UpdateRoleAliasOutput {
56876	s.RoleAlias = &v
56877	return s
56878}
56879
56880// SetRoleAliasArn sets the RoleAliasArn field's value.
56881func (s *UpdateRoleAliasOutput) SetRoleAliasArn(v string) *UpdateRoleAliasOutput {
56882	s.RoleAliasArn = &v
56883	return s
56884}
56885
56886type UpdateScheduledAuditInput struct {
56887	_ struct{} `type:"structure"`
56888
56889	// The day of the month on which the scheduled audit takes place. This can be
56890	// 1 through 31 or LAST. This field is required if the frequency parameter is
56891	// set to MONTHLY. If days 29-31 are specified, and the month does not have
56892	// that many days, the audit takes place on the "LAST" day of the month.
56893	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
56894
56895	// The day of the week on which the scheduled audit takes place. This can be
56896	// one of SUN, MON, TUE, WED, THU, FRI, or SAT. This field is required if the
56897	// "frequency" parameter is set to WEEKLY or BIWEEKLY.
56898	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
56899
56900	// How often the scheduled audit takes place, either DAILY, WEEKLY, BIWEEKLY,
56901	// or MONTHLY. The start time of each audit is determined by the system.
56902	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
56903
56904	// The name of the scheduled audit. (Max. 128 chars)
56905	//
56906	// ScheduledAuditName is a required field
56907	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
56908
56909	// Which checks are performed during the scheduled audit. Checks must be enabled
56910	// for your account. (Use DescribeAccountAuditConfiguration to see the list
56911	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
56912	// to select which checks are enabled.)
56913	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
56914}
56915
56916// String returns the string representation
56917func (s UpdateScheduledAuditInput) String() string {
56918	return awsutil.Prettify(s)
56919}
56920
56921// GoString returns the string representation
56922func (s UpdateScheduledAuditInput) GoString() string {
56923	return s.String()
56924}
56925
56926// Validate inspects the fields of the type to determine if they are valid.
56927func (s *UpdateScheduledAuditInput) Validate() error {
56928	invalidParams := request.ErrInvalidParams{Context: "UpdateScheduledAuditInput"}
56929	if s.ScheduledAuditName == nil {
56930		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
56931	}
56932	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
56933		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
56934	}
56935
56936	if invalidParams.Len() > 0 {
56937		return invalidParams
56938	}
56939	return nil
56940}
56941
56942// SetDayOfMonth sets the DayOfMonth field's value.
56943func (s *UpdateScheduledAuditInput) SetDayOfMonth(v string) *UpdateScheduledAuditInput {
56944	s.DayOfMonth = &v
56945	return s
56946}
56947
56948// SetDayOfWeek sets the DayOfWeek field's value.
56949func (s *UpdateScheduledAuditInput) SetDayOfWeek(v string) *UpdateScheduledAuditInput {
56950	s.DayOfWeek = &v
56951	return s
56952}
56953
56954// SetFrequency sets the Frequency field's value.
56955func (s *UpdateScheduledAuditInput) SetFrequency(v string) *UpdateScheduledAuditInput {
56956	s.Frequency = &v
56957	return s
56958}
56959
56960// SetScheduledAuditName sets the ScheduledAuditName field's value.
56961func (s *UpdateScheduledAuditInput) SetScheduledAuditName(v string) *UpdateScheduledAuditInput {
56962	s.ScheduledAuditName = &v
56963	return s
56964}
56965
56966// SetTargetCheckNames sets the TargetCheckNames field's value.
56967func (s *UpdateScheduledAuditInput) SetTargetCheckNames(v []*string) *UpdateScheduledAuditInput {
56968	s.TargetCheckNames = v
56969	return s
56970}
56971
56972type UpdateScheduledAuditOutput struct {
56973	_ struct{} `type:"structure"`
56974
56975	// The ARN of the scheduled audit.
56976	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
56977}
56978
56979// String returns the string representation
56980func (s UpdateScheduledAuditOutput) String() string {
56981	return awsutil.Prettify(s)
56982}
56983
56984// GoString returns the string representation
56985func (s UpdateScheduledAuditOutput) GoString() string {
56986	return s.String()
56987}
56988
56989// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
56990func (s *UpdateScheduledAuditOutput) SetScheduledAuditArn(v string) *UpdateScheduledAuditOutput {
56991	s.ScheduledAuditArn = &v
56992	return s
56993}
56994
56995type UpdateSecurityProfileInput struct {
56996	_ struct{} `type:"structure"`
56997
56998	// Please use UpdateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
56999	//
57000	// A list of metrics whose data is retained (stored). By default, data is retained
57001	// for any metric used in the profile's behaviors, but it is also retained for
57002	// any metric specified here. Can be used with custom metrics; cannot be used
57003	// with dimensions.
57004	//
57005	// Deprecated: Use additionalMetricsToRetainV2.
57006	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
57007
57008	// A list of metrics whose data is retained (stored). By default, data is retained
57009	// for any metric used in the profile's behaviors, but it is also retained for
57010	// any metric specified here. Can be used with custom metrics; cannot be used
57011	// with dimensions.
57012	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
57013
57014	// Where the alerts are sent. (Alerts are always sent to the console.)
57015	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
57016
57017	// Specifies the behaviors that, when violated by a device (thing), cause an
57018	// alert.
57019	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
57020
57021	// If true, delete all additionalMetricsToRetain defined for this security profile.
57022	// If any additionalMetricsToRetain are defined in the current invocation, an
57023	// exception occurs.
57024	DeleteAdditionalMetricsToRetain *bool `locationName:"deleteAdditionalMetricsToRetain" type:"boolean"`
57025
57026	// If true, delete all alertTargets defined for this security profile. If any
57027	// alertTargets are defined in the current invocation, an exception occurs.
57028	DeleteAlertTargets *bool `locationName:"deleteAlertTargets" type:"boolean"`
57029
57030	// If true, delete all behaviors defined for this security profile. If any behaviors
57031	// are defined in the current invocation, an exception occurs.
57032	DeleteBehaviors *bool `locationName:"deleteBehaviors" type:"boolean"`
57033
57034	// The expected version of the security profile. A new version is generated
57035	// whenever the security profile is updated. If you specify a value that is
57036	// different from the actual version, a VersionConflictException is thrown.
57037	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
57038
57039	// A description of the security profile.
57040	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
57041
57042	// The name of the security profile you want to update.
57043	//
57044	// SecurityProfileName is a required field
57045	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
57046}
57047
57048// String returns the string representation
57049func (s UpdateSecurityProfileInput) String() string {
57050	return awsutil.Prettify(s)
57051}
57052
57053// GoString returns the string representation
57054func (s UpdateSecurityProfileInput) GoString() string {
57055	return s.String()
57056}
57057
57058// Validate inspects the fields of the type to determine if they are valid.
57059func (s *UpdateSecurityProfileInput) Validate() error {
57060	invalidParams := request.ErrInvalidParams{Context: "UpdateSecurityProfileInput"}
57061	if s.SecurityProfileName == nil {
57062		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
57063	}
57064	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
57065		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
57066	}
57067	if s.AdditionalMetricsToRetainV2 != nil {
57068		for i, v := range s.AdditionalMetricsToRetainV2 {
57069			if v == nil {
57070				continue
57071			}
57072			if err := v.Validate(); err != nil {
57073				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
57074			}
57075		}
57076	}
57077	if s.AlertTargets != nil {
57078		for i, v := range s.AlertTargets {
57079			if v == nil {
57080				continue
57081			}
57082			if err := v.Validate(); err != nil {
57083				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
57084			}
57085		}
57086	}
57087	if s.Behaviors != nil {
57088		for i, v := range s.Behaviors {
57089			if v == nil {
57090				continue
57091			}
57092			if err := v.Validate(); err != nil {
57093				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
57094			}
57095		}
57096	}
57097
57098	if invalidParams.Len() > 0 {
57099		return invalidParams
57100	}
57101	return nil
57102}
57103
57104// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
57105func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileInput {
57106	s.AdditionalMetricsToRetain = v
57107	return s
57108}
57109
57110// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
57111func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileInput {
57112	s.AdditionalMetricsToRetainV2 = v
57113	return s
57114}
57115
57116// SetAlertTargets sets the AlertTargets field's value.
57117func (s *UpdateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileInput {
57118	s.AlertTargets = v
57119	return s
57120}
57121
57122// SetBehaviors sets the Behaviors field's value.
57123func (s *UpdateSecurityProfileInput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileInput {
57124	s.Behaviors = v
57125	return s
57126}
57127
57128// SetDeleteAdditionalMetricsToRetain sets the DeleteAdditionalMetricsToRetain field's value.
57129func (s *UpdateSecurityProfileInput) SetDeleteAdditionalMetricsToRetain(v bool) *UpdateSecurityProfileInput {
57130	s.DeleteAdditionalMetricsToRetain = &v
57131	return s
57132}
57133
57134// SetDeleteAlertTargets sets the DeleteAlertTargets field's value.
57135func (s *UpdateSecurityProfileInput) SetDeleteAlertTargets(v bool) *UpdateSecurityProfileInput {
57136	s.DeleteAlertTargets = &v
57137	return s
57138}
57139
57140// SetDeleteBehaviors sets the DeleteBehaviors field's value.
57141func (s *UpdateSecurityProfileInput) SetDeleteBehaviors(v bool) *UpdateSecurityProfileInput {
57142	s.DeleteBehaviors = &v
57143	return s
57144}
57145
57146// SetExpectedVersion sets the ExpectedVersion field's value.
57147func (s *UpdateSecurityProfileInput) SetExpectedVersion(v int64) *UpdateSecurityProfileInput {
57148	s.ExpectedVersion = &v
57149	return s
57150}
57151
57152// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
57153func (s *UpdateSecurityProfileInput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileInput {
57154	s.SecurityProfileDescription = &v
57155	return s
57156}
57157
57158// SetSecurityProfileName sets the SecurityProfileName field's value.
57159func (s *UpdateSecurityProfileInput) SetSecurityProfileName(v string) *UpdateSecurityProfileInput {
57160	s.SecurityProfileName = &v
57161	return s
57162}
57163
57164type UpdateSecurityProfileOutput struct {
57165	_ struct{} `type:"structure"`
57166
57167	// Please use UpdateSecurityProfileResponse$additionalMetricsToRetainV2 instead.
57168	//
57169	// A list of metrics whose data is retained (stored). By default, data is retained
57170	// for any metric used in the security profile's behaviors, but it is also retained
57171	// for any metric specified here.
57172	//
57173	// Deprecated: Use additionalMetricsToRetainV2.
57174	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
57175
57176	// A list of metrics whose data is retained (stored). By default, data is retained
57177	// for any metric used in the profile's behaviors, but it is also retained for
57178	// any metric specified here. Can be used with custom metrics; cannot be used
57179	// with dimensions.
57180	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
57181
57182	// Where the alerts are sent. (Alerts are always sent to the console.)
57183	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
57184
57185	// Specifies the behaviors that, when violated by a device (thing), cause an
57186	// alert.
57187	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
57188
57189	// The time the security profile was created.
57190	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
57191
57192	// The time the security profile was last modified.
57193	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
57194
57195	// The ARN of the security profile that was updated.
57196	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
57197
57198	// The description of the security profile.
57199	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
57200
57201	// The name of the security profile that was updated.
57202	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
57203
57204	// The updated version of the security profile.
57205	Version *int64 `locationName:"version" type:"long"`
57206}
57207
57208// String returns the string representation
57209func (s UpdateSecurityProfileOutput) String() string {
57210	return awsutil.Prettify(s)
57211}
57212
57213// GoString returns the string representation
57214func (s UpdateSecurityProfileOutput) GoString() string {
57215	return s.String()
57216}
57217
57218// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
57219func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileOutput {
57220	s.AdditionalMetricsToRetain = v
57221	return s
57222}
57223
57224// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
57225func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileOutput {
57226	s.AdditionalMetricsToRetainV2 = v
57227	return s
57228}
57229
57230// SetAlertTargets sets the AlertTargets field's value.
57231func (s *UpdateSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileOutput {
57232	s.AlertTargets = v
57233	return s
57234}
57235
57236// SetBehaviors sets the Behaviors field's value.
57237func (s *UpdateSecurityProfileOutput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileOutput {
57238	s.Behaviors = v
57239	return s
57240}
57241
57242// SetCreationDate sets the CreationDate field's value.
57243func (s *UpdateSecurityProfileOutput) SetCreationDate(v time.Time) *UpdateSecurityProfileOutput {
57244	s.CreationDate = &v
57245	return s
57246}
57247
57248// SetLastModifiedDate sets the LastModifiedDate field's value.
57249func (s *UpdateSecurityProfileOutput) SetLastModifiedDate(v time.Time) *UpdateSecurityProfileOutput {
57250	s.LastModifiedDate = &v
57251	return s
57252}
57253
57254// SetSecurityProfileArn sets the SecurityProfileArn field's value.
57255func (s *UpdateSecurityProfileOutput) SetSecurityProfileArn(v string) *UpdateSecurityProfileOutput {
57256	s.SecurityProfileArn = &v
57257	return s
57258}
57259
57260// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
57261func (s *UpdateSecurityProfileOutput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileOutput {
57262	s.SecurityProfileDescription = &v
57263	return s
57264}
57265
57266// SetSecurityProfileName sets the SecurityProfileName field's value.
57267func (s *UpdateSecurityProfileOutput) SetSecurityProfileName(v string) *UpdateSecurityProfileOutput {
57268	s.SecurityProfileName = &v
57269	return s
57270}
57271
57272// SetVersion sets the Version field's value.
57273func (s *UpdateSecurityProfileOutput) SetVersion(v int64) *UpdateSecurityProfileOutput {
57274	s.Version = &v
57275	return s
57276}
57277
57278type UpdateStreamInput struct {
57279	_ struct{} `type:"structure"`
57280
57281	// The description of the stream.
57282	Description *string `locationName:"description" type:"string"`
57283
57284	// The files associated with the stream.
57285	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
57286
57287	// An IAM role that allows the IoT service principal assumes to access your
57288	// S3 files.
57289	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
57290
57291	// The stream ID.
57292	//
57293	// StreamId is a required field
57294	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
57295}
57296
57297// String returns the string representation
57298func (s UpdateStreamInput) String() string {
57299	return awsutil.Prettify(s)
57300}
57301
57302// GoString returns the string representation
57303func (s UpdateStreamInput) GoString() string {
57304	return s.String()
57305}
57306
57307// Validate inspects the fields of the type to determine if they are valid.
57308func (s *UpdateStreamInput) Validate() error {
57309	invalidParams := request.ErrInvalidParams{Context: "UpdateStreamInput"}
57310	if s.Files != nil && len(s.Files) < 1 {
57311		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
57312	}
57313	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
57314		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
57315	}
57316	if s.StreamId == nil {
57317		invalidParams.Add(request.NewErrParamRequired("StreamId"))
57318	}
57319	if s.StreamId != nil && len(*s.StreamId) < 1 {
57320		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
57321	}
57322	if s.Files != nil {
57323		for i, v := range s.Files {
57324			if v == nil {
57325				continue
57326			}
57327			if err := v.Validate(); err != nil {
57328				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
57329			}
57330		}
57331	}
57332
57333	if invalidParams.Len() > 0 {
57334		return invalidParams
57335	}
57336	return nil
57337}
57338
57339// SetDescription sets the Description field's value.
57340func (s *UpdateStreamInput) SetDescription(v string) *UpdateStreamInput {
57341	s.Description = &v
57342	return s
57343}
57344
57345// SetFiles sets the Files field's value.
57346func (s *UpdateStreamInput) SetFiles(v []*StreamFile) *UpdateStreamInput {
57347	s.Files = v
57348	return s
57349}
57350
57351// SetRoleArn sets the RoleArn field's value.
57352func (s *UpdateStreamInput) SetRoleArn(v string) *UpdateStreamInput {
57353	s.RoleArn = &v
57354	return s
57355}
57356
57357// SetStreamId sets the StreamId field's value.
57358func (s *UpdateStreamInput) SetStreamId(v string) *UpdateStreamInput {
57359	s.StreamId = &v
57360	return s
57361}
57362
57363type UpdateStreamOutput struct {
57364	_ struct{} `type:"structure"`
57365
57366	// A description of the stream.
57367	Description *string `locationName:"description" type:"string"`
57368
57369	// The stream ARN.
57370	StreamArn *string `locationName:"streamArn" type:"string"`
57371
57372	// The stream ID.
57373	StreamId *string `locationName:"streamId" min:"1" type:"string"`
57374
57375	// The stream version.
57376	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
57377}
57378
57379// String returns the string representation
57380func (s UpdateStreamOutput) String() string {
57381	return awsutil.Prettify(s)
57382}
57383
57384// GoString returns the string representation
57385func (s UpdateStreamOutput) GoString() string {
57386	return s.String()
57387}
57388
57389// SetDescription sets the Description field's value.
57390func (s *UpdateStreamOutput) SetDescription(v string) *UpdateStreamOutput {
57391	s.Description = &v
57392	return s
57393}
57394
57395// SetStreamArn sets the StreamArn field's value.
57396func (s *UpdateStreamOutput) SetStreamArn(v string) *UpdateStreamOutput {
57397	s.StreamArn = &v
57398	return s
57399}
57400
57401// SetStreamId sets the StreamId field's value.
57402func (s *UpdateStreamOutput) SetStreamId(v string) *UpdateStreamOutput {
57403	s.StreamId = &v
57404	return s
57405}
57406
57407// SetStreamVersion sets the StreamVersion field's value.
57408func (s *UpdateStreamOutput) SetStreamVersion(v int64) *UpdateStreamOutput {
57409	s.StreamVersion = &v
57410	return s
57411}
57412
57413type UpdateThingGroupInput struct {
57414	_ struct{} `type:"structure"`
57415
57416	// The expected version of the thing group. If this does not match the version
57417	// of the thing group being updated, the update will fail.
57418	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
57419
57420	// The thing group to update.
57421	//
57422	// ThingGroupName is a required field
57423	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
57424
57425	// The thing group properties.
57426	//
57427	// ThingGroupProperties is a required field
57428	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
57429}
57430
57431// String returns the string representation
57432func (s UpdateThingGroupInput) String() string {
57433	return awsutil.Prettify(s)
57434}
57435
57436// GoString returns the string representation
57437func (s UpdateThingGroupInput) GoString() string {
57438	return s.String()
57439}
57440
57441// Validate inspects the fields of the type to determine if they are valid.
57442func (s *UpdateThingGroupInput) Validate() error {
57443	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupInput"}
57444	if s.ThingGroupName == nil {
57445		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
57446	}
57447	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
57448		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
57449	}
57450	if s.ThingGroupProperties == nil {
57451		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
57452	}
57453
57454	if invalidParams.Len() > 0 {
57455		return invalidParams
57456	}
57457	return nil
57458}
57459
57460// SetExpectedVersion sets the ExpectedVersion field's value.
57461func (s *UpdateThingGroupInput) SetExpectedVersion(v int64) *UpdateThingGroupInput {
57462	s.ExpectedVersion = &v
57463	return s
57464}
57465
57466// SetThingGroupName sets the ThingGroupName field's value.
57467func (s *UpdateThingGroupInput) SetThingGroupName(v string) *UpdateThingGroupInput {
57468	s.ThingGroupName = &v
57469	return s
57470}
57471
57472// SetThingGroupProperties sets the ThingGroupProperties field's value.
57473func (s *UpdateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateThingGroupInput {
57474	s.ThingGroupProperties = v
57475	return s
57476}
57477
57478type UpdateThingGroupOutput struct {
57479	_ struct{} `type:"structure"`
57480
57481	// The version of the updated thing group.
57482	Version *int64 `locationName:"version" type:"long"`
57483}
57484
57485// String returns the string representation
57486func (s UpdateThingGroupOutput) String() string {
57487	return awsutil.Prettify(s)
57488}
57489
57490// GoString returns the string representation
57491func (s UpdateThingGroupOutput) GoString() string {
57492	return s.String()
57493}
57494
57495// SetVersion sets the Version field's value.
57496func (s *UpdateThingGroupOutput) SetVersion(v int64) *UpdateThingGroupOutput {
57497	s.Version = &v
57498	return s
57499}
57500
57501type UpdateThingGroupsForThingInput struct {
57502	_ struct{} `type:"structure"`
57503
57504	// Override dynamic thing groups with static thing groups when 10-group limit
57505	// is reached. If a thing belongs to 10 thing groups, and one or more of those
57506	// groups are dynamic thing groups, adding a thing to a static group removes
57507	// the thing from the last dynamic group.
57508	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
57509
57510	// The groups to which the thing will be added.
57511	ThingGroupsToAdd []*string `locationName:"thingGroupsToAdd" type:"list"`
57512
57513	// The groups from which the thing will be removed.
57514	ThingGroupsToRemove []*string `locationName:"thingGroupsToRemove" type:"list"`
57515
57516	// The thing whose group memberships will be updated.
57517	ThingName *string `locationName:"thingName" min:"1" type:"string"`
57518}
57519
57520// String returns the string representation
57521func (s UpdateThingGroupsForThingInput) String() string {
57522	return awsutil.Prettify(s)
57523}
57524
57525// GoString returns the string representation
57526func (s UpdateThingGroupsForThingInput) GoString() string {
57527	return s.String()
57528}
57529
57530// Validate inspects the fields of the type to determine if they are valid.
57531func (s *UpdateThingGroupsForThingInput) Validate() error {
57532	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupsForThingInput"}
57533	if s.ThingName != nil && len(*s.ThingName) < 1 {
57534		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
57535	}
57536
57537	if invalidParams.Len() > 0 {
57538		return invalidParams
57539	}
57540	return nil
57541}
57542
57543// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
57544func (s *UpdateThingGroupsForThingInput) SetOverrideDynamicGroups(v bool) *UpdateThingGroupsForThingInput {
57545	s.OverrideDynamicGroups = &v
57546	return s
57547}
57548
57549// SetThingGroupsToAdd sets the ThingGroupsToAdd field's value.
57550func (s *UpdateThingGroupsForThingInput) SetThingGroupsToAdd(v []*string) *UpdateThingGroupsForThingInput {
57551	s.ThingGroupsToAdd = v
57552	return s
57553}
57554
57555// SetThingGroupsToRemove sets the ThingGroupsToRemove field's value.
57556func (s *UpdateThingGroupsForThingInput) SetThingGroupsToRemove(v []*string) *UpdateThingGroupsForThingInput {
57557	s.ThingGroupsToRemove = v
57558	return s
57559}
57560
57561// SetThingName sets the ThingName field's value.
57562func (s *UpdateThingGroupsForThingInput) SetThingName(v string) *UpdateThingGroupsForThingInput {
57563	s.ThingName = &v
57564	return s
57565}
57566
57567type UpdateThingGroupsForThingOutput struct {
57568	_ struct{} `type:"structure"`
57569}
57570
57571// String returns the string representation
57572func (s UpdateThingGroupsForThingOutput) String() string {
57573	return awsutil.Prettify(s)
57574}
57575
57576// GoString returns the string representation
57577func (s UpdateThingGroupsForThingOutput) GoString() string {
57578	return s.String()
57579}
57580
57581// The input for the UpdateThing operation.
57582type UpdateThingInput struct {
57583	_ struct{} `type:"structure"`
57584
57585	// A list of thing attributes, a JSON string containing name-value pairs. For
57586	// example:
57587	//
57588	// {\"attributes\":{\"name1\":\"value2\"}}
57589	//
57590	// This data is used to add new attributes or update existing attributes.
57591	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
57592
57593	// The expected version of the thing record in the registry. If the version
57594	// of the record in the registry does not match the expected version specified
57595	// in the request, the UpdateThing request is rejected with a VersionConflictException.
57596	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
57597
57598	// Remove a thing type association. If true, the association is removed.
57599	RemoveThingType *bool `locationName:"removeThingType" type:"boolean"`
57600
57601	// The name of the thing to update.
57602	//
57603	// You can't change a thing's name. To change a thing's name, you must create
57604	// a new thing, give it the new name, and then delete the old thing.
57605	//
57606	// ThingName is a required field
57607	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
57608
57609	// The name of the thing type.
57610	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
57611}
57612
57613// String returns the string representation
57614func (s UpdateThingInput) String() string {
57615	return awsutil.Prettify(s)
57616}
57617
57618// GoString returns the string representation
57619func (s UpdateThingInput) GoString() string {
57620	return s.String()
57621}
57622
57623// Validate inspects the fields of the type to determine if they are valid.
57624func (s *UpdateThingInput) Validate() error {
57625	invalidParams := request.ErrInvalidParams{Context: "UpdateThingInput"}
57626	if s.ThingName == nil {
57627		invalidParams.Add(request.NewErrParamRequired("ThingName"))
57628	}
57629	if s.ThingName != nil && len(*s.ThingName) < 1 {
57630		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
57631	}
57632	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
57633		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
57634	}
57635
57636	if invalidParams.Len() > 0 {
57637		return invalidParams
57638	}
57639	return nil
57640}
57641
57642// SetAttributePayload sets the AttributePayload field's value.
57643func (s *UpdateThingInput) SetAttributePayload(v *AttributePayload) *UpdateThingInput {
57644	s.AttributePayload = v
57645	return s
57646}
57647
57648// SetExpectedVersion sets the ExpectedVersion field's value.
57649func (s *UpdateThingInput) SetExpectedVersion(v int64) *UpdateThingInput {
57650	s.ExpectedVersion = &v
57651	return s
57652}
57653
57654// SetRemoveThingType sets the RemoveThingType field's value.
57655func (s *UpdateThingInput) SetRemoveThingType(v bool) *UpdateThingInput {
57656	s.RemoveThingType = &v
57657	return s
57658}
57659
57660// SetThingName sets the ThingName field's value.
57661func (s *UpdateThingInput) SetThingName(v string) *UpdateThingInput {
57662	s.ThingName = &v
57663	return s
57664}
57665
57666// SetThingTypeName sets the ThingTypeName field's value.
57667func (s *UpdateThingInput) SetThingTypeName(v string) *UpdateThingInput {
57668	s.ThingTypeName = &v
57669	return s
57670}
57671
57672// The output from the UpdateThing operation.
57673type UpdateThingOutput struct {
57674	_ struct{} `type:"structure"`
57675}
57676
57677// String returns the string representation
57678func (s UpdateThingOutput) String() string {
57679	return awsutil.Prettify(s)
57680}
57681
57682// GoString returns the string representation
57683func (s UpdateThingOutput) GoString() string {
57684	return s.String()
57685}
57686
57687type UpdateTopicRuleDestinationInput struct {
57688	_ struct{} `type:"structure"`
57689
57690	// The ARN of the topic rule destination.
57691	//
57692	// Arn is a required field
57693	Arn *string `locationName:"arn" type:"string" required:"true"`
57694
57695	// The status of the topic rule destination. Valid values are:
57696	//
57697	// IN_PROGRESS
57698	//
57699	// A topic rule destination was created but has not been confirmed. You can
57700	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
57701	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
57702	// to your confirmation endpoint.
57703	//
57704	// ENABLED
57705	//
57706	// Confirmation was completed, and traffic to this destination is allowed. You
57707	// can set status to DISABLED by calling UpdateTopicRuleDestination.
57708	//
57709	// DISABLED
57710	//
57711	// Confirmation was completed, and traffic to this destination is not allowed.
57712	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
57713	//
57714	// ERROR
57715	//
57716	// Confirmation could not be completed, for example if the confirmation timed
57717	// out. You can call GetTopicRuleDestination for details about the error. You
57718	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
57719	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
57720	// to your confirmation endpoint.
57721	//
57722	// Status is a required field
57723	Status *string `locationName:"status" type:"string" required:"true" enum:"TopicRuleDestinationStatus"`
57724}
57725
57726// String returns the string representation
57727func (s UpdateTopicRuleDestinationInput) String() string {
57728	return awsutil.Prettify(s)
57729}
57730
57731// GoString returns the string representation
57732func (s UpdateTopicRuleDestinationInput) GoString() string {
57733	return s.String()
57734}
57735
57736// Validate inspects the fields of the type to determine if they are valid.
57737func (s *UpdateTopicRuleDestinationInput) Validate() error {
57738	invalidParams := request.ErrInvalidParams{Context: "UpdateTopicRuleDestinationInput"}
57739	if s.Arn == nil {
57740		invalidParams.Add(request.NewErrParamRequired("Arn"))
57741	}
57742	if s.Status == nil {
57743		invalidParams.Add(request.NewErrParamRequired("Status"))
57744	}
57745
57746	if invalidParams.Len() > 0 {
57747		return invalidParams
57748	}
57749	return nil
57750}
57751
57752// SetArn sets the Arn field's value.
57753func (s *UpdateTopicRuleDestinationInput) SetArn(v string) *UpdateTopicRuleDestinationInput {
57754	s.Arn = &v
57755	return s
57756}
57757
57758// SetStatus sets the Status field's value.
57759func (s *UpdateTopicRuleDestinationInput) SetStatus(v string) *UpdateTopicRuleDestinationInput {
57760	s.Status = &v
57761	return s
57762}
57763
57764type UpdateTopicRuleDestinationOutput struct {
57765	_ struct{} `type:"structure"`
57766}
57767
57768// String returns the string representation
57769func (s UpdateTopicRuleDestinationOutput) String() string {
57770	return awsutil.Prettify(s)
57771}
57772
57773// GoString returns the string representation
57774func (s UpdateTopicRuleDestinationOutput) GoString() string {
57775	return s.String()
57776}
57777
57778type ValidateSecurityProfileBehaviorsInput struct {
57779	_ struct{} `type:"structure"`
57780
57781	// Specifies the behaviors that, when violated by a device (thing), cause an
57782	// alert.
57783	//
57784	// Behaviors is a required field
57785	Behaviors []*Behavior `locationName:"behaviors" type:"list" required:"true"`
57786}
57787
57788// String returns the string representation
57789func (s ValidateSecurityProfileBehaviorsInput) String() string {
57790	return awsutil.Prettify(s)
57791}
57792
57793// GoString returns the string representation
57794func (s ValidateSecurityProfileBehaviorsInput) GoString() string {
57795	return s.String()
57796}
57797
57798// Validate inspects the fields of the type to determine if they are valid.
57799func (s *ValidateSecurityProfileBehaviorsInput) Validate() error {
57800	invalidParams := request.ErrInvalidParams{Context: "ValidateSecurityProfileBehaviorsInput"}
57801	if s.Behaviors == nil {
57802		invalidParams.Add(request.NewErrParamRequired("Behaviors"))
57803	}
57804	if s.Behaviors != nil {
57805		for i, v := range s.Behaviors {
57806			if v == nil {
57807				continue
57808			}
57809			if err := v.Validate(); err != nil {
57810				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
57811			}
57812		}
57813	}
57814
57815	if invalidParams.Len() > 0 {
57816		return invalidParams
57817	}
57818	return nil
57819}
57820
57821// SetBehaviors sets the Behaviors field's value.
57822func (s *ValidateSecurityProfileBehaviorsInput) SetBehaviors(v []*Behavior) *ValidateSecurityProfileBehaviorsInput {
57823	s.Behaviors = v
57824	return s
57825}
57826
57827type ValidateSecurityProfileBehaviorsOutput struct {
57828	_ struct{} `type:"structure"`
57829
57830	// True if the behaviors were valid.
57831	Valid *bool `locationName:"valid" type:"boolean"`
57832
57833	// The list of any errors found in the behaviors.
57834	ValidationErrors []*ValidationError `locationName:"validationErrors" type:"list"`
57835}
57836
57837// String returns the string representation
57838func (s ValidateSecurityProfileBehaviorsOutput) String() string {
57839	return awsutil.Prettify(s)
57840}
57841
57842// GoString returns the string representation
57843func (s ValidateSecurityProfileBehaviorsOutput) GoString() string {
57844	return s.String()
57845}
57846
57847// SetValid sets the Valid field's value.
57848func (s *ValidateSecurityProfileBehaviorsOutput) SetValid(v bool) *ValidateSecurityProfileBehaviorsOutput {
57849	s.Valid = &v
57850	return s
57851}
57852
57853// SetValidationErrors sets the ValidationErrors field's value.
57854func (s *ValidateSecurityProfileBehaviorsOutput) SetValidationErrors(v []*ValidationError) *ValidateSecurityProfileBehaviorsOutput {
57855	s.ValidationErrors = v
57856	return s
57857}
57858
57859// Information about an error found in a behavior specification.
57860type ValidationError struct {
57861	_ struct{} `type:"structure"`
57862
57863	// The description of an error found in the behaviors.
57864	ErrorMessage *string `locationName:"errorMessage" type:"string"`
57865}
57866
57867// String returns the string representation
57868func (s ValidationError) String() string {
57869	return awsutil.Prettify(s)
57870}
57871
57872// GoString returns the string representation
57873func (s ValidationError) GoString() string {
57874	return s.String()
57875}
57876
57877// SetErrorMessage sets the ErrorMessage field's value.
57878func (s *ValidationError) SetErrorMessage(v string) *ValidationError {
57879	s.ErrorMessage = &v
57880	return s
57881}
57882
57883// An exception thrown when the version of an entity specified with the expectedVersion
57884// parameter does not match the latest version in the system.
57885type VersionConflictException struct {
57886	_            struct{}                  `type:"structure"`
57887	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
57888
57889	// The message for the exception.
57890	Message_ *string `locationName:"message" type:"string"`
57891}
57892
57893// String returns the string representation
57894func (s VersionConflictException) String() string {
57895	return awsutil.Prettify(s)
57896}
57897
57898// GoString returns the string representation
57899func (s VersionConflictException) GoString() string {
57900	return s.String()
57901}
57902
57903func newErrorVersionConflictException(v protocol.ResponseMetadata) error {
57904	return &VersionConflictException{
57905		RespMetadata: v,
57906	}
57907}
57908
57909// Code returns the exception type name.
57910func (s *VersionConflictException) Code() string {
57911	return "VersionConflictException"
57912}
57913
57914// Message returns the exception's message.
57915func (s *VersionConflictException) Message() string {
57916	if s.Message_ != nil {
57917		return *s.Message_
57918	}
57919	return ""
57920}
57921
57922// OrigErr always returns nil, satisfies awserr.Error interface.
57923func (s *VersionConflictException) OrigErr() error {
57924	return nil
57925}
57926
57927func (s *VersionConflictException) Error() string {
57928	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
57929}
57930
57931// Status code returns the HTTP status code for the request's response error.
57932func (s *VersionConflictException) StatusCode() int {
57933	return s.RespMetadata.StatusCode
57934}
57935
57936// RequestID returns the service's response RequestID for request.
57937func (s *VersionConflictException) RequestID() string {
57938	return s.RespMetadata.RequestID
57939}
57940
57941// The number of policy versions exceeds the limit.
57942type VersionsLimitExceededException struct {
57943	_            struct{}                  `type:"structure"`
57944	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
57945
57946	// The message for the exception.
57947	Message_ *string `locationName:"message" type:"string"`
57948}
57949
57950// String returns the string representation
57951func (s VersionsLimitExceededException) String() string {
57952	return awsutil.Prettify(s)
57953}
57954
57955// GoString returns the string representation
57956func (s VersionsLimitExceededException) GoString() string {
57957	return s.String()
57958}
57959
57960func newErrorVersionsLimitExceededException(v protocol.ResponseMetadata) error {
57961	return &VersionsLimitExceededException{
57962		RespMetadata: v,
57963	}
57964}
57965
57966// Code returns the exception type name.
57967func (s *VersionsLimitExceededException) Code() string {
57968	return "VersionsLimitExceededException"
57969}
57970
57971// Message returns the exception's message.
57972func (s *VersionsLimitExceededException) Message() string {
57973	if s.Message_ != nil {
57974		return *s.Message_
57975	}
57976	return ""
57977}
57978
57979// OrigErr always returns nil, satisfies awserr.Error interface.
57980func (s *VersionsLimitExceededException) OrigErr() error {
57981	return nil
57982}
57983
57984func (s *VersionsLimitExceededException) Error() string {
57985	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
57986}
57987
57988// Status code returns the HTTP status code for the request's response error.
57989func (s *VersionsLimitExceededException) StatusCode() int {
57990	return s.RespMetadata.StatusCode
57991}
57992
57993// RequestID returns the service's response RequestID for request.
57994func (s *VersionsLimitExceededException) RequestID() string {
57995	return s.RespMetadata.RequestID
57996}
57997
57998// Information about a Device Defender security profile behavior violation.
57999type ViolationEvent struct {
58000	_ struct{} `type:"structure"`
58001
58002	// The behavior that was violated.
58003	Behavior *Behavior `locationName:"behavior" type:"structure"`
58004
58005	// The value of the metric (the measurement).
58006	MetricValue *MetricValue `locationName:"metricValue" type:"structure"`
58007
58008	// The name of the security profile whose behavior was violated.
58009	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
58010
58011	// The name of the thing responsible for the violation event.
58012	ThingName *string `locationName:"thingName" min:"1" type:"string"`
58013
58014	// The details of a violation event.
58015	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo `locationName:"violationEventAdditionalInfo" type:"structure"`
58016
58017	// The time the violation event occurred.
58018	ViolationEventTime *time.Time `locationName:"violationEventTime" type:"timestamp"`
58019
58020	// The type of violation event.
58021	ViolationEventType *string `locationName:"violationEventType" type:"string" enum:"ViolationEventType"`
58022
58023	// The ID of the violation event.
58024	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
58025}
58026
58027// String returns the string representation
58028func (s ViolationEvent) String() string {
58029	return awsutil.Prettify(s)
58030}
58031
58032// GoString returns the string representation
58033func (s ViolationEvent) GoString() string {
58034	return s.String()
58035}
58036
58037// SetBehavior sets the Behavior field's value.
58038func (s *ViolationEvent) SetBehavior(v *Behavior) *ViolationEvent {
58039	s.Behavior = v
58040	return s
58041}
58042
58043// SetMetricValue sets the MetricValue field's value.
58044func (s *ViolationEvent) SetMetricValue(v *MetricValue) *ViolationEvent {
58045	s.MetricValue = v
58046	return s
58047}
58048
58049// SetSecurityProfileName sets the SecurityProfileName field's value.
58050func (s *ViolationEvent) SetSecurityProfileName(v string) *ViolationEvent {
58051	s.SecurityProfileName = &v
58052	return s
58053}
58054
58055// SetThingName sets the ThingName field's value.
58056func (s *ViolationEvent) SetThingName(v string) *ViolationEvent {
58057	s.ThingName = &v
58058	return s
58059}
58060
58061// SetViolationEventAdditionalInfo sets the ViolationEventAdditionalInfo field's value.
58062func (s *ViolationEvent) SetViolationEventAdditionalInfo(v *ViolationEventAdditionalInfo) *ViolationEvent {
58063	s.ViolationEventAdditionalInfo = v
58064	return s
58065}
58066
58067// SetViolationEventTime sets the ViolationEventTime field's value.
58068func (s *ViolationEvent) SetViolationEventTime(v time.Time) *ViolationEvent {
58069	s.ViolationEventTime = &v
58070	return s
58071}
58072
58073// SetViolationEventType sets the ViolationEventType field's value.
58074func (s *ViolationEvent) SetViolationEventType(v string) *ViolationEvent {
58075	s.ViolationEventType = &v
58076	return s
58077}
58078
58079// SetViolationId sets the ViolationId field's value.
58080func (s *ViolationEvent) SetViolationId(v string) *ViolationEvent {
58081	s.ViolationId = &v
58082	return s
58083}
58084
58085// The details of a violation event.
58086type ViolationEventAdditionalInfo struct {
58087	_ struct{} `type:"structure"`
58088
58089	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or
58090	// High.
58091	ConfidenceLevel *string `locationName:"confidenceLevel" type:"string" enum:"ConfidenceLevel"`
58092}
58093
58094// String returns the string representation
58095func (s ViolationEventAdditionalInfo) String() string {
58096	return awsutil.Prettify(s)
58097}
58098
58099// GoString returns the string representation
58100func (s ViolationEventAdditionalInfo) GoString() string {
58101	return s.String()
58102}
58103
58104// SetConfidenceLevel sets the ConfidenceLevel field's value.
58105func (s *ViolationEventAdditionalInfo) SetConfidenceLevel(v string) *ViolationEventAdditionalInfo {
58106	s.ConfidenceLevel = &v
58107	return s
58108}
58109
58110// Specifies the time period of which violation events occurred between.
58111type ViolationEventOccurrenceRange struct {
58112	_ struct{} `type:"structure"`
58113
58114	// The end date and time of a time period in which violation events occurred.
58115	//
58116	// EndTime is a required field
58117	EndTime *time.Time `locationName:"endTime" type:"timestamp" required:"true"`
58118
58119	// The start date and time of a time period in which violation events occurred.
58120	//
58121	// StartTime is a required field
58122	StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
58123}
58124
58125// String returns the string representation
58126func (s ViolationEventOccurrenceRange) String() string {
58127	return awsutil.Prettify(s)
58128}
58129
58130// GoString returns the string representation
58131func (s ViolationEventOccurrenceRange) GoString() string {
58132	return s.String()
58133}
58134
58135// Validate inspects the fields of the type to determine if they are valid.
58136func (s *ViolationEventOccurrenceRange) Validate() error {
58137	invalidParams := request.ErrInvalidParams{Context: "ViolationEventOccurrenceRange"}
58138	if s.EndTime == nil {
58139		invalidParams.Add(request.NewErrParamRequired("EndTime"))
58140	}
58141	if s.StartTime == nil {
58142		invalidParams.Add(request.NewErrParamRequired("StartTime"))
58143	}
58144
58145	if invalidParams.Len() > 0 {
58146		return invalidParams
58147	}
58148	return nil
58149}
58150
58151// SetEndTime sets the EndTime field's value.
58152func (s *ViolationEventOccurrenceRange) SetEndTime(v time.Time) *ViolationEventOccurrenceRange {
58153	s.EndTime = &v
58154	return s
58155}
58156
58157// SetStartTime sets the StartTime field's value.
58158func (s *ViolationEventOccurrenceRange) SetStartTime(v time.Time) *ViolationEventOccurrenceRange {
58159	s.StartTime = &v
58160	return s
58161}
58162
58163// The configuration information for a virtual private cloud (VPC) destination.
58164type VpcDestinationConfiguration struct {
58165	_ struct{} `type:"structure"`
58166
58167	// The ARN of a role that has permission to create and attach to elastic network
58168	// interfaces (ENIs).
58169	//
58170	// RoleArn is a required field
58171	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
58172
58173	// The security groups of the VPC destination.
58174	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
58175
58176	// The subnet IDs of the VPC destination.
58177	//
58178	// SubnetIds is a required field
58179	SubnetIds []*string `locationName:"subnetIds" type:"list" required:"true"`
58180
58181	// The ID of the VPC.
58182	//
58183	// VpcId is a required field
58184	VpcId *string `locationName:"vpcId" type:"string" required:"true"`
58185}
58186
58187// String returns the string representation
58188func (s VpcDestinationConfiguration) String() string {
58189	return awsutil.Prettify(s)
58190}
58191
58192// GoString returns the string representation
58193func (s VpcDestinationConfiguration) GoString() string {
58194	return s.String()
58195}
58196
58197// Validate inspects the fields of the type to determine if they are valid.
58198func (s *VpcDestinationConfiguration) Validate() error {
58199	invalidParams := request.ErrInvalidParams{Context: "VpcDestinationConfiguration"}
58200	if s.RoleArn == nil {
58201		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
58202	}
58203	if s.SubnetIds == nil {
58204		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
58205	}
58206	if s.VpcId == nil {
58207		invalidParams.Add(request.NewErrParamRequired("VpcId"))
58208	}
58209
58210	if invalidParams.Len() > 0 {
58211		return invalidParams
58212	}
58213	return nil
58214}
58215
58216// SetRoleArn sets the RoleArn field's value.
58217func (s *VpcDestinationConfiguration) SetRoleArn(v string) *VpcDestinationConfiguration {
58218	s.RoleArn = &v
58219	return s
58220}
58221
58222// SetSecurityGroups sets the SecurityGroups field's value.
58223func (s *VpcDestinationConfiguration) SetSecurityGroups(v []*string) *VpcDestinationConfiguration {
58224	s.SecurityGroups = v
58225	return s
58226}
58227
58228// SetSubnetIds sets the SubnetIds field's value.
58229func (s *VpcDestinationConfiguration) SetSubnetIds(v []*string) *VpcDestinationConfiguration {
58230	s.SubnetIds = v
58231	return s
58232}
58233
58234// SetVpcId sets the VpcId field's value.
58235func (s *VpcDestinationConfiguration) SetVpcId(v string) *VpcDestinationConfiguration {
58236	s.VpcId = &v
58237	return s
58238}
58239
58240// The properties of a virtual private cloud (VPC) destination.
58241type VpcDestinationProperties struct {
58242	_ struct{} `type:"structure"`
58243
58244	// The ARN of a role that has permission to create and attach to elastic network
58245	// interfaces (ENIs).
58246	RoleArn *string `locationName:"roleArn" type:"string"`
58247
58248	// The security groups of the VPC destination.
58249	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
58250
58251	// The subnet IDs of the VPC destination.
58252	SubnetIds []*string `locationName:"subnetIds" type:"list"`
58253
58254	// The ID of the VPC.
58255	VpcId *string `locationName:"vpcId" type:"string"`
58256}
58257
58258// String returns the string representation
58259func (s VpcDestinationProperties) String() string {
58260	return awsutil.Prettify(s)
58261}
58262
58263// GoString returns the string representation
58264func (s VpcDestinationProperties) GoString() string {
58265	return s.String()
58266}
58267
58268// SetRoleArn sets the RoleArn field's value.
58269func (s *VpcDestinationProperties) SetRoleArn(v string) *VpcDestinationProperties {
58270	s.RoleArn = &v
58271	return s
58272}
58273
58274// SetSecurityGroups sets the SecurityGroups field's value.
58275func (s *VpcDestinationProperties) SetSecurityGroups(v []*string) *VpcDestinationProperties {
58276	s.SecurityGroups = v
58277	return s
58278}
58279
58280// SetSubnetIds sets the SubnetIds field's value.
58281func (s *VpcDestinationProperties) SetSubnetIds(v []*string) *VpcDestinationProperties {
58282	s.SubnetIds = v
58283	return s
58284}
58285
58286// SetVpcId sets the VpcId field's value.
58287func (s *VpcDestinationProperties) SetVpcId(v string) *VpcDestinationProperties {
58288	s.VpcId = &v
58289	return s
58290}
58291
58292// The summary of a virtual private cloud (VPC) destination.
58293type VpcDestinationSummary struct {
58294	_ struct{} `type:"structure"`
58295
58296	// The ARN of a role that has permission to create and attach to elastic network
58297	// interfaces (ENIs).
58298	RoleArn *string `locationName:"roleArn" type:"string"`
58299
58300	// The security groups of the VPC destination.
58301	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
58302
58303	// The subnet IDs of the VPC destination.
58304	SubnetIds []*string `locationName:"subnetIds" type:"list"`
58305
58306	// The ID of the VPC.
58307	VpcId *string `locationName:"vpcId" type:"string"`
58308}
58309
58310// String returns the string representation
58311func (s VpcDestinationSummary) String() string {
58312	return awsutil.Prettify(s)
58313}
58314
58315// GoString returns the string representation
58316func (s VpcDestinationSummary) GoString() string {
58317	return s.String()
58318}
58319
58320// SetRoleArn sets the RoleArn field's value.
58321func (s *VpcDestinationSummary) SetRoleArn(v string) *VpcDestinationSummary {
58322	s.RoleArn = &v
58323	return s
58324}
58325
58326// SetSecurityGroups sets the SecurityGroups field's value.
58327func (s *VpcDestinationSummary) SetSecurityGroups(v []*string) *VpcDestinationSummary {
58328	s.SecurityGroups = v
58329	return s
58330}
58331
58332// SetSubnetIds sets the SubnetIds field's value.
58333func (s *VpcDestinationSummary) SetSubnetIds(v []*string) *VpcDestinationSummary {
58334	s.SubnetIds = v
58335	return s
58336}
58337
58338// SetVpcId sets the VpcId field's value.
58339func (s *VpcDestinationSummary) SetVpcId(v string) *VpcDestinationSummary {
58340	s.VpcId = &v
58341	return s
58342}
58343
58344const (
58345	// AbortActionCancel is a AbortAction enum value
58346	AbortActionCancel = "CANCEL"
58347)
58348
58349// AbortAction_Values returns all elements of the AbortAction enum
58350func AbortAction_Values() []string {
58351	return []string{
58352		AbortActionCancel,
58353	}
58354}
58355
58356const (
58357	// ActionTypePublish is a ActionType enum value
58358	ActionTypePublish = "PUBLISH"
58359
58360	// ActionTypeSubscribe is a ActionType enum value
58361	ActionTypeSubscribe = "SUBSCRIBE"
58362
58363	// ActionTypeReceive is a ActionType enum value
58364	ActionTypeReceive = "RECEIVE"
58365
58366	// ActionTypeConnect is a ActionType enum value
58367	ActionTypeConnect = "CONNECT"
58368)
58369
58370// ActionType_Values returns all elements of the ActionType enum
58371func ActionType_Values() []string {
58372	return []string{
58373		ActionTypePublish,
58374		ActionTypeSubscribe,
58375		ActionTypeReceive,
58376		ActionTypeConnect,
58377	}
58378}
58379
58380// The type of alert target: one of "SNS".
58381const (
58382	// AlertTargetTypeSns is a AlertTargetType enum value
58383	AlertTargetTypeSns = "SNS"
58384)
58385
58386// AlertTargetType_Values returns all elements of the AlertTargetType enum
58387func AlertTargetType_Values() []string {
58388	return []string{
58389		AlertTargetTypeSns,
58390	}
58391}
58392
58393const (
58394	// AuditCheckRunStatusInProgress is a AuditCheckRunStatus enum value
58395	AuditCheckRunStatusInProgress = "IN_PROGRESS"
58396
58397	// AuditCheckRunStatusWaitingForDataCollection is a AuditCheckRunStatus enum value
58398	AuditCheckRunStatusWaitingForDataCollection = "WAITING_FOR_DATA_COLLECTION"
58399
58400	// AuditCheckRunStatusCanceled is a AuditCheckRunStatus enum value
58401	AuditCheckRunStatusCanceled = "CANCELED"
58402
58403	// AuditCheckRunStatusCompletedCompliant is a AuditCheckRunStatus enum value
58404	AuditCheckRunStatusCompletedCompliant = "COMPLETED_COMPLIANT"
58405
58406	// AuditCheckRunStatusCompletedNonCompliant is a AuditCheckRunStatus enum value
58407	AuditCheckRunStatusCompletedNonCompliant = "COMPLETED_NON_COMPLIANT"
58408
58409	// AuditCheckRunStatusFailed is a AuditCheckRunStatus enum value
58410	AuditCheckRunStatusFailed = "FAILED"
58411)
58412
58413// AuditCheckRunStatus_Values returns all elements of the AuditCheckRunStatus enum
58414func AuditCheckRunStatus_Values() []string {
58415	return []string{
58416		AuditCheckRunStatusInProgress,
58417		AuditCheckRunStatusWaitingForDataCollection,
58418		AuditCheckRunStatusCanceled,
58419		AuditCheckRunStatusCompletedCompliant,
58420		AuditCheckRunStatusCompletedNonCompliant,
58421		AuditCheckRunStatusFailed,
58422	}
58423}
58424
58425const (
58426	// AuditFindingSeverityCritical is a AuditFindingSeverity enum value
58427	AuditFindingSeverityCritical = "CRITICAL"
58428
58429	// AuditFindingSeverityHigh is a AuditFindingSeverity enum value
58430	AuditFindingSeverityHigh = "HIGH"
58431
58432	// AuditFindingSeverityMedium is a AuditFindingSeverity enum value
58433	AuditFindingSeverityMedium = "MEDIUM"
58434
58435	// AuditFindingSeverityLow is a AuditFindingSeverity enum value
58436	AuditFindingSeverityLow = "LOW"
58437)
58438
58439// AuditFindingSeverity_Values returns all elements of the AuditFindingSeverity enum
58440func AuditFindingSeverity_Values() []string {
58441	return []string{
58442		AuditFindingSeverityCritical,
58443		AuditFindingSeverityHigh,
58444		AuditFindingSeverityMedium,
58445		AuditFindingSeverityLow,
58446	}
58447}
58448
58449const (
58450	// AuditFrequencyDaily is a AuditFrequency enum value
58451	AuditFrequencyDaily = "DAILY"
58452
58453	// AuditFrequencyWeekly is a AuditFrequency enum value
58454	AuditFrequencyWeekly = "WEEKLY"
58455
58456	// AuditFrequencyBiweekly is a AuditFrequency enum value
58457	AuditFrequencyBiweekly = "BIWEEKLY"
58458
58459	// AuditFrequencyMonthly is a AuditFrequency enum value
58460	AuditFrequencyMonthly = "MONTHLY"
58461)
58462
58463// AuditFrequency_Values returns all elements of the AuditFrequency enum
58464func AuditFrequency_Values() []string {
58465	return []string{
58466		AuditFrequencyDaily,
58467		AuditFrequencyWeekly,
58468		AuditFrequencyBiweekly,
58469		AuditFrequencyMonthly,
58470	}
58471}
58472
58473const (
58474	// AuditMitigationActionsExecutionStatusInProgress is a AuditMitigationActionsExecutionStatus enum value
58475	AuditMitigationActionsExecutionStatusInProgress = "IN_PROGRESS"
58476
58477	// AuditMitigationActionsExecutionStatusCompleted is a AuditMitigationActionsExecutionStatus enum value
58478	AuditMitigationActionsExecutionStatusCompleted = "COMPLETED"
58479
58480	// AuditMitigationActionsExecutionStatusFailed is a AuditMitigationActionsExecutionStatus enum value
58481	AuditMitigationActionsExecutionStatusFailed = "FAILED"
58482
58483	// AuditMitigationActionsExecutionStatusCanceled is a AuditMitigationActionsExecutionStatus enum value
58484	AuditMitigationActionsExecutionStatusCanceled = "CANCELED"
58485
58486	// AuditMitigationActionsExecutionStatusSkipped is a AuditMitigationActionsExecutionStatus enum value
58487	AuditMitigationActionsExecutionStatusSkipped = "SKIPPED"
58488
58489	// AuditMitigationActionsExecutionStatusPending is a AuditMitigationActionsExecutionStatus enum value
58490	AuditMitigationActionsExecutionStatusPending = "PENDING"
58491)
58492
58493// AuditMitigationActionsExecutionStatus_Values returns all elements of the AuditMitigationActionsExecutionStatus enum
58494func AuditMitigationActionsExecutionStatus_Values() []string {
58495	return []string{
58496		AuditMitigationActionsExecutionStatusInProgress,
58497		AuditMitigationActionsExecutionStatusCompleted,
58498		AuditMitigationActionsExecutionStatusFailed,
58499		AuditMitigationActionsExecutionStatusCanceled,
58500		AuditMitigationActionsExecutionStatusSkipped,
58501		AuditMitigationActionsExecutionStatusPending,
58502	}
58503}
58504
58505const (
58506	// AuditMitigationActionsTaskStatusInProgress is a AuditMitigationActionsTaskStatus enum value
58507	AuditMitigationActionsTaskStatusInProgress = "IN_PROGRESS"
58508
58509	// AuditMitigationActionsTaskStatusCompleted is a AuditMitigationActionsTaskStatus enum value
58510	AuditMitigationActionsTaskStatusCompleted = "COMPLETED"
58511
58512	// AuditMitigationActionsTaskStatusFailed is a AuditMitigationActionsTaskStatus enum value
58513	AuditMitigationActionsTaskStatusFailed = "FAILED"
58514
58515	// AuditMitigationActionsTaskStatusCanceled is a AuditMitigationActionsTaskStatus enum value
58516	AuditMitigationActionsTaskStatusCanceled = "CANCELED"
58517)
58518
58519// AuditMitigationActionsTaskStatus_Values returns all elements of the AuditMitigationActionsTaskStatus enum
58520func AuditMitigationActionsTaskStatus_Values() []string {
58521	return []string{
58522		AuditMitigationActionsTaskStatusInProgress,
58523		AuditMitigationActionsTaskStatusCompleted,
58524		AuditMitigationActionsTaskStatusFailed,
58525		AuditMitigationActionsTaskStatusCanceled,
58526	}
58527}
58528
58529const (
58530	// AuditNotificationTypeSns is a AuditNotificationType enum value
58531	AuditNotificationTypeSns = "SNS"
58532)
58533
58534// AuditNotificationType_Values returns all elements of the AuditNotificationType enum
58535func AuditNotificationType_Values() []string {
58536	return []string{
58537		AuditNotificationTypeSns,
58538	}
58539}
58540
58541const (
58542	// AuditTaskStatusInProgress is a AuditTaskStatus enum value
58543	AuditTaskStatusInProgress = "IN_PROGRESS"
58544
58545	// AuditTaskStatusCompleted is a AuditTaskStatus enum value
58546	AuditTaskStatusCompleted = "COMPLETED"
58547
58548	// AuditTaskStatusFailed is a AuditTaskStatus enum value
58549	AuditTaskStatusFailed = "FAILED"
58550
58551	// AuditTaskStatusCanceled is a AuditTaskStatus enum value
58552	AuditTaskStatusCanceled = "CANCELED"
58553)
58554
58555// AuditTaskStatus_Values returns all elements of the AuditTaskStatus enum
58556func AuditTaskStatus_Values() []string {
58557	return []string{
58558		AuditTaskStatusInProgress,
58559		AuditTaskStatusCompleted,
58560		AuditTaskStatusFailed,
58561		AuditTaskStatusCanceled,
58562	}
58563}
58564
58565const (
58566	// AuditTaskTypeOnDemandAuditTask is a AuditTaskType enum value
58567	AuditTaskTypeOnDemandAuditTask = "ON_DEMAND_AUDIT_TASK"
58568
58569	// AuditTaskTypeScheduledAuditTask is a AuditTaskType enum value
58570	AuditTaskTypeScheduledAuditTask = "SCHEDULED_AUDIT_TASK"
58571)
58572
58573// AuditTaskType_Values returns all elements of the AuditTaskType enum
58574func AuditTaskType_Values() []string {
58575	return []string{
58576		AuditTaskTypeOnDemandAuditTask,
58577		AuditTaskTypeScheduledAuditTask,
58578	}
58579}
58580
58581const (
58582	// AuthDecisionAllowed is a AuthDecision enum value
58583	AuthDecisionAllowed = "ALLOWED"
58584
58585	// AuthDecisionExplicitDeny is a AuthDecision enum value
58586	AuthDecisionExplicitDeny = "EXPLICIT_DENY"
58587
58588	// AuthDecisionImplicitDeny is a AuthDecision enum value
58589	AuthDecisionImplicitDeny = "IMPLICIT_DENY"
58590)
58591
58592// AuthDecision_Values returns all elements of the AuthDecision enum
58593func AuthDecision_Values() []string {
58594	return []string{
58595		AuthDecisionAllowed,
58596		AuthDecisionExplicitDeny,
58597		AuthDecisionImplicitDeny,
58598	}
58599}
58600
58601const (
58602	// AuthorizerStatusActive is a AuthorizerStatus enum value
58603	AuthorizerStatusActive = "ACTIVE"
58604
58605	// AuthorizerStatusInactive is a AuthorizerStatus enum value
58606	AuthorizerStatusInactive = "INACTIVE"
58607)
58608
58609// AuthorizerStatus_Values returns all elements of the AuthorizerStatus enum
58610func AuthorizerStatus_Values() []string {
58611	return []string{
58612		AuthorizerStatusActive,
58613		AuthorizerStatusInactive,
58614	}
58615}
58616
58617const (
58618	// AutoRegistrationStatusEnable is a AutoRegistrationStatus enum value
58619	AutoRegistrationStatusEnable = "ENABLE"
58620
58621	// AutoRegistrationStatusDisable is a AutoRegistrationStatus enum value
58622	AutoRegistrationStatusDisable = "DISABLE"
58623)
58624
58625// AutoRegistrationStatus_Values returns all elements of the AutoRegistrationStatus enum
58626func AutoRegistrationStatus_Values() []string {
58627	return []string{
58628		AutoRegistrationStatusEnable,
58629		AutoRegistrationStatusDisable,
58630	}
58631}
58632
58633const (
58634	// AwsJobAbortCriteriaAbortActionCancel is a AwsJobAbortCriteriaAbortAction enum value
58635	AwsJobAbortCriteriaAbortActionCancel = "CANCEL"
58636)
58637
58638// AwsJobAbortCriteriaAbortAction_Values returns all elements of the AwsJobAbortCriteriaAbortAction enum
58639func AwsJobAbortCriteriaAbortAction_Values() []string {
58640	return []string{
58641		AwsJobAbortCriteriaAbortActionCancel,
58642	}
58643}
58644
58645const (
58646	// AwsJobAbortCriteriaFailureTypeFailed is a AwsJobAbortCriteriaFailureType enum value
58647	AwsJobAbortCriteriaFailureTypeFailed = "FAILED"
58648
58649	// AwsJobAbortCriteriaFailureTypeRejected is a AwsJobAbortCriteriaFailureType enum value
58650	AwsJobAbortCriteriaFailureTypeRejected = "REJECTED"
58651
58652	// AwsJobAbortCriteriaFailureTypeTimedOut is a AwsJobAbortCriteriaFailureType enum value
58653	AwsJobAbortCriteriaFailureTypeTimedOut = "TIMED_OUT"
58654
58655	// AwsJobAbortCriteriaFailureTypeAll is a AwsJobAbortCriteriaFailureType enum value
58656	AwsJobAbortCriteriaFailureTypeAll = "ALL"
58657)
58658
58659// AwsJobAbortCriteriaFailureType_Values returns all elements of the AwsJobAbortCriteriaFailureType enum
58660func AwsJobAbortCriteriaFailureType_Values() []string {
58661	return []string{
58662		AwsJobAbortCriteriaFailureTypeFailed,
58663		AwsJobAbortCriteriaFailureTypeRejected,
58664		AwsJobAbortCriteriaFailureTypeTimedOut,
58665		AwsJobAbortCriteriaFailureTypeAll,
58666	}
58667}
58668
58669const (
58670	// BehaviorCriteriaTypeStatic is a BehaviorCriteriaType enum value
58671	BehaviorCriteriaTypeStatic = "STATIC"
58672
58673	// BehaviorCriteriaTypeStatistical is a BehaviorCriteriaType enum value
58674	BehaviorCriteriaTypeStatistical = "STATISTICAL"
58675
58676	// BehaviorCriteriaTypeMachineLearning is a BehaviorCriteriaType enum value
58677	BehaviorCriteriaTypeMachineLearning = "MACHINE_LEARNING"
58678)
58679
58680// BehaviorCriteriaType_Values returns all elements of the BehaviorCriteriaType enum
58681func BehaviorCriteriaType_Values() []string {
58682	return []string{
58683		BehaviorCriteriaTypeStatic,
58684		BehaviorCriteriaTypeStatistical,
58685		BehaviorCriteriaTypeMachineLearning,
58686	}
58687}
58688
58689const (
58690	// CACertificateStatusActive is a CACertificateStatus enum value
58691	CACertificateStatusActive = "ACTIVE"
58692
58693	// CACertificateStatusInactive is a CACertificateStatus enum value
58694	CACertificateStatusInactive = "INACTIVE"
58695)
58696
58697// CACertificateStatus_Values returns all elements of the CACertificateStatus enum
58698func CACertificateStatus_Values() []string {
58699	return []string{
58700		CACertificateStatusActive,
58701		CACertificateStatusInactive,
58702	}
58703}
58704
58705const (
58706	// CACertificateUpdateActionDeactivate is a CACertificateUpdateAction enum value
58707	CACertificateUpdateActionDeactivate = "DEACTIVATE"
58708)
58709
58710// CACertificateUpdateAction_Values returns all elements of the CACertificateUpdateAction enum
58711func CACertificateUpdateAction_Values() []string {
58712	return []string{
58713		CACertificateUpdateActionDeactivate,
58714	}
58715}
58716
58717const (
58718	// CannedAccessControlListPrivate is a CannedAccessControlList enum value
58719	CannedAccessControlListPrivate = "private"
58720
58721	// CannedAccessControlListPublicRead is a CannedAccessControlList enum value
58722	CannedAccessControlListPublicRead = "public-read"
58723
58724	// CannedAccessControlListPublicReadWrite is a CannedAccessControlList enum value
58725	CannedAccessControlListPublicReadWrite = "public-read-write"
58726
58727	// CannedAccessControlListAwsExecRead is a CannedAccessControlList enum value
58728	CannedAccessControlListAwsExecRead = "aws-exec-read"
58729
58730	// CannedAccessControlListAuthenticatedRead is a CannedAccessControlList enum value
58731	CannedAccessControlListAuthenticatedRead = "authenticated-read"
58732
58733	// CannedAccessControlListBucketOwnerRead is a CannedAccessControlList enum value
58734	CannedAccessControlListBucketOwnerRead = "bucket-owner-read"
58735
58736	// CannedAccessControlListBucketOwnerFullControl is a CannedAccessControlList enum value
58737	CannedAccessControlListBucketOwnerFullControl = "bucket-owner-full-control"
58738
58739	// CannedAccessControlListLogDeliveryWrite is a CannedAccessControlList enum value
58740	CannedAccessControlListLogDeliveryWrite = "log-delivery-write"
58741)
58742
58743// CannedAccessControlList_Values returns all elements of the CannedAccessControlList enum
58744func CannedAccessControlList_Values() []string {
58745	return []string{
58746		CannedAccessControlListPrivate,
58747		CannedAccessControlListPublicRead,
58748		CannedAccessControlListPublicReadWrite,
58749		CannedAccessControlListAwsExecRead,
58750		CannedAccessControlListAuthenticatedRead,
58751		CannedAccessControlListBucketOwnerRead,
58752		CannedAccessControlListBucketOwnerFullControl,
58753		CannedAccessControlListLogDeliveryWrite,
58754	}
58755}
58756
58757const (
58758	// CertificateModeDefault is a CertificateMode enum value
58759	CertificateModeDefault = "DEFAULT"
58760
58761	// CertificateModeSniOnly is a CertificateMode enum value
58762	CertificateModeSniOnly = "SNI_ONLY"
58763)
58764
58765// CertificateMode_Values returns all elements of the CertificateMode enum
58766func CertificateMode_Values() []string {
58767	return []string{
58768		CertificateModeDefault,
58769		CertificateModeSniOnly,
58770	}
58771}
58772
58773const (
58774	// CertificateStatusActive is a CertificateStatus enum value
58775	CertificateStatusActive = "ACTIVE"
58776
58777	// CertificateStatusInactive is a CertificateStatus enum value
58778	CertificateStatusInactive = "INACTIVE"
58779
58780	// CertificateStatusRevoked is a CertificateStatus enum value
58781	CertificateStatusRevoked = "REVOKED"
58782
58783	// CertificateStatusPendingTransfer is a CertificateStatus enum value
58784	CertificateStatusPendingTransfer = "PENDING_TRANSFER"
58785
58786	// CertificateStatusRegisterInactive is a CertificateStatus enum value
58787	CertificateStatusRegisterInactive = "REGISTER_INACTIVE"
58788
58789	// CertificateStatusPendingActivation is a CertificateStatus enum value
58790	CertificateStatusPendingActivation = "PENDING_ACTIVATION"
58791)
58792
58793// CertificateStatus_Values returns all elements of the CertificateStatus enum
58794func CertificateStatus_Values() []string {
58795	return []string{
58796		CertificateStatusActive,
58797		CertificateStatusInactive,
58798		CertificateStatusRevoked,
58799		CertificateStatusPendingTransfer,
58800		CertificateStatusRegisterInactive,
58801		CertificateStatusPendingActivation,
58802	}
58803}
58804
58805const (
58806	// ComparisonOperatorLessThan is a ComparisonOperator enum value
58807	ComparisonOperatorLessThan = "less-than"
58808
58809	// ComparisonOperatorLessThanEquals is a ComparisonOperator enum value
58810	ComparisonOperatorLessThanEquals = "less-than-equals"
58811
58812	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
58813	ComparisonOperatorGreaterThan = "greater-than"
58814
58815	// ComparisonOperatorGreaterThanEquals is a ComparisonOperator enum value
58816	ComparisonOperatorGreaterThanEquals = "greater-than-equals"
58817
58818	// ComparisonOperatorInCidrSet is a ComparisonOperator enum value
58819	ComparisonOperatorInCidrSet = "in-cidr-set"
58820
58821	// ComparisonOperatorNotInCidrSet is a ComparisonOperator enum value
58822	ComparisonOperatorNotInCidrSet = "not-in-cidr-set"
58823
58824	// ComparisonOperatorInPortSet is a ComparisonOperator enum value
58825	ComparisonOperatorInPortSet = "in-port-set"
58826
58827	// ComparisonOperatorNotInPortSet is a ComparisonOperator enum value
58828	ComparisonOperatorNotInPortSet = "not-in-port-set"
58829
58830	// ComparisonOperatorInSet is a ComparisonOperator enum value
58831	ComparisonOperatorInSet = "in-set"
58832
58833	// ComparisonOperatorNotInSet is a ComparisonOperator enum value
58834	ComparisonOperatorNotInSet = "not-in-set"
58835)
58836
58837// ComparisonOperator_Values returns all elements of the ComparisonOperator enum
58838func ComparisonOperator_Values() []string {
58839	return []string{
58840		ComparisonOperatorLessThan,
58841		ComparisonOperatorLessThanEquals,
58842		ComparisonOperatorGreaterThan,
58843		ComparisonOperatorGreaterThanEquals,
58844		ComparisonOperatorInCidrSet,
58845		ComparisonOperatorNotInCidrSet,
58846		ComparisonOperatorInPortSet,
58847		ComparisonOperatorNotInPortSet,
58848		ComparisonOperatorInSet,
58849		ComparisonOperatorNotInSet,
58850	}
58851}
58852
58853const (
58854	// ConfidenceLevelLow is a ConfidenceLevel enum value
58855	ConfidenceLevelLow = "LOW"
58856
58857	// ConfidenceLevelMedium is a ConfidenceLevel enum value
58858	ConfidenceLevelMedium = "MEDIUM"
58859
58860	// ConfidenceLevelHigh is a ConfidenceLevel enum value
58861	ConfidenceLevelHigh = "HIGH"
58862)
58863
58864// ConfidenceLevel_Values returns all elements of the ConfidenceLevel enum
58865func ConfidenceLevel_Values() []string {
58866	return []string{
58867		ConfidenceLevelLow,
58868		ConfidenceLevelMedium,
58869		ConfidenceLevelHigh,
58870	}
58871}
58872
58873const (
58874	// CustomMetricTypeStringList is a CustomMetricType enum value
58875	CustomMetricTypeStringList = "string-list"
58876
58877	// CustomMetricTypeIpAddressList is a CustomMetricType enum value
58878	CustomMetricTypeIpAddressList = "ip-address-list"
58879
58880	// CustomMetricTypeNumberList is a CustomMetricType enum value
58881	CustomMetricTypeNumberList = "number-list"
58882
58883	// CustomMetricTypeNumber is a CustomMetricType enum value
58884	CustomMetricTypeNumber = "number"
58885)
58886
58887// CustomMetricType_Values returns all elements of the CustomMetricType enum
58888func CustomMetricType_Values() []string {
58889	return []string{
58890		CustomMetricTypeStringList,
58891		CustomMetricTypeIpAddressList,
58892		CustomMetricTypeNumberList,
58893		CustomMetricTypeNumber,
58894	}
58895}
58896
58897const (
58898	// DayOfWeekSun is a DayOfWeek enum value
58899	DayOfWeekSun = "SUN"
58900
58901	// DayOfWeekMon is a DayOfWeek enum value
58902	DayOfWeekMon = "MON"
58903
58904	// DayOfWeekTue is a DayOfWeek enum value
58905	DayOfWeekTue = "TUE"
58906
58907	// DayOfWeekWed is a DayOfWeek enum value
58908	DayOfWeekWed = "WED"
58909
58910	// DayOfWeekThu is a DayOfWeek enum value
58911	DayOfWeekThu = "THU"
58912
58913	// DayOfWeekFri is a DayOfWeek enum value
58914	DayOfWeekFri = "FRI"
58915
58916	// DayOfWeekSat is a DayOfWeek enum value
58917	DayOfWeekSat = "SAT"
58918)
58919
58920// DayOfWeek_Values returns all elements of the DayOfWeek enum
58921func DayOfWeek_Values() []string {
58922	return []string{
58923		DayOfWeekSun,
58924		DayOfWeekMon,
58925		DayOfWeekTue,
58926		DayOfWeekWed,
58927		DayOfWeekThu,
58928		DayOfWeekFri,
58929		DayOfWeekSat,
58930	}
58931}
58932
58933const (
58934	// DetectMitigationActionExecutionStatusInProgress is a DetectMitigationActionExecutionStatus enum value
58935	DetectMitigationActionExecutionStatusInProgress = "IN_PROGRESS"
58936
58937	// DetectMitigationActionExecutionStatusSuccessful is a DetectMitigationActionExecutionStatus enum value
58938	DetectMitigationActionExecutionStatusSuccessful = "SUCCESSFUL"
58939
58940	// DetectMitigationActionExecutionStatusFailed is a DetectMitigationActionExecutionStatus enum value
58941	DetectMitigationActionExecutionStatusFailed = "FAILED"
58942
58943	// DetectMitigationActionExecutionStatusSkipped is a DetectMitigationActionExecutionStatus enum value
58944	DetectMitigationActionExecutionStatusSkipped = "SKIPPED"
58945)
58946
58947// DetectMitigationActionExecutionStatus_Values returns all elements of the DetectMitigationActionExecutionStatus enum
58948func DetectMitigationActionExecutionStatus_Values() []string {
58949	return []string{
58950		DetectMitigationActionExecutionStatusInProgress,
58951		DetectMitigationActionExecutionStatusSuccessful,
58952		DetectMitigationActionExecutionStatusFailed,
58953		DetectMitigationActionExecutionStatusSkipped,
58954	}
58955}
58956
58957const (
58958	// DetectMitigationActionsTaskStatusInProgress is a DetectMitigationActionsTaskStatus enum value
58959	DetectMitigationActionsTaskStatusInProgress = "IN_PROGRESS"
58960
58961	// DetectMitigationActionsTaskStatusSuccessful is a DetectMitigationActionsTaskStatus enum value
58962	DetectMitigationActionsTaskStatusSuccessful = "SUCCESSFUL"
58963
58964	// DetectMitigationActionsTaskStatusFailed is a DetectMitigationActionsTaskStatus enum value
58965	DetectMitigationActionsTaskStatusFailed = "FAILED"
58966
58967	// DetectMitigationActionsTaskStatusCanceled is a DetectMitigationActionsTaskStatus enum value
58968	DetectMitigationActionsTaskStatusCanceled = "CANCELED"
58969)
58970
58971// DetectMitigationActionsTaskStatus_Values returns all elements of the DetectMitigationActionsTaskStatus enum
58972func DetectMitigationActionsTaskStatus_Values() []string {
58973	return []string{
58974		DetectMitigationActionsTaskStatusInProgress,
58975		DetectMitigationActionsTaskStatusSuccessful,
58976		DetectMitigationActionsTaskStatusFailed,
58977		DetectMitigationActionsTaskStatusCanceled,
58978	}
58979}
58980
58981const (
58982	// DeviceCertificateUpdateActionDeactivate is a DeviceCertificateUpdateAction enum value
58983	DeviceCertificateUpdateActionDeactivate = "DEACTIVATE"
58984)
58985
58986// DeviceCertificateUpdateAction_Values returns all elements of the DeviceCertificateUpdateAction enum
58987func DeviceCertificateUpdateAction_Values() []string {
58988	return []string{
58989		DeviceCertificateUpdateActionDeactivate,
58990	}
58991}
58992
58993const (
58994	// DimensionTypeTopicFilter is a DimensionType enum value
58995	DimensionTypeTopicFilter = "TOPIC_FILTER"
58996)
58997
58998// DimensionType_Values returns all elements of the DimensionType enum
58999func DimensionType_Values() []string {
59000	return []string{
59001		DimensionTypeTopicFilter,
59002	}
59003}
59004
59005const (
59006	// DimensionValueOperatorIn is a DimensionValueOperator enum value
59007	DimensionValueOperatorIn = "IN"
59008
59009	// DimensionValueOperatorNotIn is a DimensionValueOperator enum value
59010	DimensionValueOperatorNotIn = "NOT_IN"
59011)
59012
59013// DimensionValueOperator_Values returns all elements of the DimensionValueOperator enum
59014func DimensionValueOperator_Values() []string {
59015	return []string{
59016		DimensionValueOperatorIn,
59017		DimensionValueOperatorNotIn,
59018	}
59019}
59020
59021const (
59022	// DomainConfigurationStatusEnabled is a DomainConfigurationStatus enum value
59023	DomainConfigurationStatusEnabled = "ENABLED"
59024
59025	// DomainConfigurationStatusDisabled is a DomainConfigurationStatus enum value
59026	DomainConfigurationStatusDisabled = "DISABLED"
59027)
59028
59029// DomainConfigurationStatus_Values returns all elements of the DomainConfigurationStatus enum
59030func DomainConfigurationStatus_Values() []string {
59031	return []string{
59032		DomainConfigurationStatusEnabled,
59033		DomainConfigurationStatusDisabled,
59034	}
59035}
59036
59037const (
59038	// DomainTypeEndpoint is a DomainType enum value
59039	DomainTypeEndpoint = "ENDPOINT"
59040
59041	// DomainTypeAwsManaged is a DomainType enum value
59042	DomainTypeAwsManaged = "AWS_MANAGED"
59043
59044	// DomainTypeCustomerManaged is a DomainType enum value
59045	DomainTypeCustomerManaged = "CUSTOMER_MANAGED"
59046)
59047
59048// DomainType_Values returns all elements of the DomainType enum
59049func DomainType_Values() []string {
59050	return []string{
59051		DomainTypeEndpoint,
59052		DomainTypeAwsManaged,
59053		DomainTypeCustomerManaged,
59054	}
59055}
59056
59057const (
59058	// DynamicGroupStatusActive is a DynamicGroupStatus enum value
59059	DynamicGroupStatusActive = "ACTIVE"
59060
59061	// DynamicGroupStatusBuilding is a DynamicGroupStatus enum value
59062	DynamicGroupStatusBuilding = "BUILDING"
59063
59064	// DynamicGroupStatusRebuilding is a DynamicGroupStatus enum value
59065	DynamicGroupStatusRebuilding = "REBUILDING"
59066)
59067
59068// DynamicGroupStatus_Values returns all elements of the DynamicGroupStatus enum
59069func DynamicGroupStatus_Values() []string {
59070	return []string{
59071		DynamicGroupStatusActive,
59072		DynamicGroupStatusBuilding,
59073		DynamicGroupStatusRebuilding,
59074	}
59075}
59076
59077const (
59078	// DynamoKeyTypeString is a DynamoKeyType enum value
59079	DynamoKeyTypeString = "STRING"
59080
59081	// DynamoKeyTypeNumber is a DynamoKeyType enum value
59082	DynamoKeyTypeNumber = "NUMBER"
59083)
59084
59085// DynamoKeyType_Values returns all elements of the DynamoKeyType enum
59086func DynamoKeyType_Values() []string {
59087	return []string{
59088		DynamoKeyTypeString,
59089		DynamoKeyTypeNumber,
59090	}
59091}
59092
59093const (
59094	// EventTypeThing is a EventType enum value
59095	EventTypeThing = "THING"
59096
59097	// EventTypeThingGroup is a EventType enum value
59098	EventTypeThingGroup = "THING_GROUP"
59099
59100	// EventTypeThingType is a EventType enum value
59101	EventTypeThingType = "THING_TYPE"
59102
59103	// EventTypeThingGroupMembership is a EventType enum value
59104	EventTypeThingGroupMembership = "THING_GROUP_MEMBERSHIP"
59105
59106	// EventTypeThingGroupHierarchy is a EventType enum value
59107	EventTypeThingGroupHierarchy = "THING_GROUP_HIERARCHY"
59108
59109	// EventTypeThingTypeAssociation is a EventType enum value
59110	EventTypeThingTypeAssociation = "THING_TYPE_ASSOCIATION"
59111
59112	// EventTypeJob is a EventType enum value
59113	EventTypeJob = "JOB"
59114
59115	// EventTypeJobExecution is a EventType enum value
59116	EventTypeJobExecution = "JOB_EXECUTION"
59117
59118	// EventTypePolicy is a EventType enum value
59119	EventTypePolicy = "POLICY"
59120
59121	// EventTypeCertificate is a EventType enum value
59122	EventTypeCertificate = "CERTIFICATE"
59123
59124	// EventTypeCaCertificate is a EventType enum value
59125	EventTypeCaCertificate = "CA_CERTIFICATE"
59126)
59127
59128// EventType_Values returns all elements of the EventType enum
59129func EventType_Values() []string {
59130	return []string{
59131		EventTypeThing,
59132		EventTypeThingGroup,
59133		EventTypeThingType,
59134		EventTypeThingGroupMembership,
59135		EventTypeThingGroupHierarchy,
59136		EventTypeThingTypeAssociation,
59137		EventTypeJob,
59138		EventTypeJobExecution,
59139		EventTypePolicy,
59140		EventTypeCertificate,
59141		EventTypeCaCertificate,
59142	}
59143}
59144
59145const (
59146	// FieldTypeNumber is a FieldType enum value
59147	FieldTypeNumber = "Number"
59148
59149	// FieldTypeString is a FieldType enum value
59150	FieldTypeString = "String"
59151
59152	// FieldTypeBoolean is a FieldType enum value
59153	FieldTypeBoolean = "Boolean"
59154)
59155
59156// FieldType_Values returns all elements of the FieldType enum
59157func FieldType_Values() []string {
59158	return []string{
59159		FieldTypeNumber,
59160		FieldTypeString,
59161		FieldTypeBoolean,
59162	}
59163}
59164
59165const (
59166	// IndexStatusActive is a IndexStatus enum value
59167	IndexStatusActive = "ACTIVE"
59168
59169	// IndexStatusBuilding is a IndexStatus enum value
59170	IndexStatusBuilding = "BUILDING"
59171
59172	// IndexStatusRebuilding is a IndexStatus enum value
59173	IndexStatusRebuilding = "REBUILDING"
59174)
59175
59176// IndexStatus_Values returns all elements of the IndexStatus enum
59177func IndexStatus_Values() []string {
59178	return []string{
59179		IndexStatusActive,
59180		IndexStatusBuilding,
59181		IndexStatusRebuilding,
59182	}
59183}
59184
59185const (
59186	// JobExecutionFailureTypeFailed is a JobExecutionFailureType enum value
59187	JobExecutionFailureTypeFailed = "FAILED"
59188
59189	// JobExecutionFailureTypeRejected is a JobExecutionFailureType enum value
59190	JobExecutionFailureTypeRejected = "REJECTED"
59191
59192	// JobExecutionFailureTypeTimedOut is a JobExecutionFailureType enum value
59193	JobExecutionFailureTypeTimedOut = "TIMED_OUT"
59194
59195	// JobExecutionFailureTypeAll is a JobExecutionFailureType enum value
59196	JobExecutionFailureTypeAll = "ALL"
59197)
59198
59199// JobExecutionFailureType_Values returns all elements of the JobExecutionFailureType enum
59200func JobExecutionFailureType_Values() []string {
59201	return []string{
59202		JobExecutionFailureTypeFailed,
59203		JobExecutionFailureTypeRejected,
59204		JobExecutionFailureTypeTimedOut,
59205		JobExecutionFailureTypeAll,
59206	}
59207}
59208
59209const (
59210	// JobExecutionStatusQueued is a JobExecutionStatus enum value
59211	JobExecutionStatusQueued = "QUEUED"
59212
59213	// JobExecutionStatusInProgress is a JobExecutionStatus enum value
59214	JobExecutionStatusInProgress = "IN_PROGRESS"
59215
59216	// JobExecutionStatusSucceeded is a JobExecutionStatus enum value
59217	JobExecutionStatusSucceeded = "SUCCEEDED"
59218
59219	// JobExecutionStatusFailed is a JobExecutionStatus enum value
59220	JobExecutionStatusFailed = "FAILED"
59221
59222	// JobExecutionStatusTimedOut is a JobExecutionStatus enum value
59223	JobExecutionStatusTimedOut = "TIMED_OUT"
59224
59225	// JobExecutionStatusRejected is a JobExecutionStatus enum value
59226	JobExecutionStatusRejected = "REJECTED"
59227
59228	// JobExecutionStatusRemoved is a JobExecutionStatus enum value
59229	JobExecutionStatusRemoved = "REMOVED"
59230
59231	// JobExecutionStatusCanceled is a JobExecutionStatus enum value
59232	JobExecutionStatusCanceled = "CANCELED"
59233)
59234
59235// JobExecutionStatus_Values returns all elements of the JobExecutionStatus enum
59236func JobExecutionStatus_Values() []string {
59237	return []string{
59238		JobExecutionStatusQueued,
59239		JobExecutionStatusInProgress,
59240		JobExecutionStatusSucceeded,
59241		JobExecutionStatusFailed,
59242		JobExecutionStatusTimedOut,
59243		JobExecutionStatusRejected,
59244		JobExecutionStatusRemoved,
59245		JobExecutionStatusCanceled,
59246	}
59247}
59248
59249const (
59250	// JobStatusInProgress is a JobStatus enum value
59251	JobStatusInProgress = "IN_PROGRESS"
59252
59253	// JobStatusCanceled is a JobStatus enum value
59254	JobStatusCanceled = "CANCELED"
59255
59256	// JobStatusCompleted is a JobStatus enum value
59257	JobStatusCompleted = "COMPLETED"
59258
59259	// JobStatusDeletionInProgress is a JobStatus enum value
59260	JobStatusDeletionInProgress = "DELETION_IN_PROGRESS"
59261)
59262
59263// JobStatus_Values returns all elements of the JobStatus enum
59264func JobStatus_Values() []string {
59265	return []string{
59266		JobStatusInProgress,
59267		JobStatusCanceled,
59268		JobStatusCompleted,
59269		JobStatusDeletionInProgress,
59270	}
59271}
59272
59273const (
59274	// LogLevelDebug is a LogLevel enum value
59275	LogLevelDebug = "DEBUG"
59276
59277	// LogLevelInfo is a LogLevel enum value
59278	LogLevelInfo = "INFO"
59279
59280	// LogLevelError is a LogLevel enum value
59281	LogLevelError = "ERROR"
59282
59283	// LogLevelWarn is a LogLevel enum value
59284	LogLevelWarn = "WARN"
59285
59286	// LogLevelDisabled is a LogLevel enum value
59287	LogLevelDisabled = "DISABLED"
59288)
59289
59290// LogLevel_Values returns all elements of the LogLevel enum
59291func LogLevel_Values() []string {
59292	return []string{
59293		LogLevelDebug,
59294		LogLevelInfo,
59295		LogLevelError,
59296		LogLevelWarn,
59297		LogLevelDisabled,
59298	}
59299}
59300
59301const (
59302	// LogTargetTypeDefault is a LogTargetType enum value
59303	LogTargetTypeDefault = "DEFAULT"
59304
59305	// LogTargetTypeThingGroup is a LogTargetType enum value
59306	LogTargetTypeThingGroup = "THING_GROUP"
59307)
59308
59309// LogTargetType_Values returns all elements of the LogTargetType enum
59310func LogTargetType_Values() []string {
59311	return []string{
59312		LogTargetTypeDefault,
59313		LogTargetTypeThingGroup,
59314	}
59315}
59316
59317const (
59318	// MessageFormatRaw is a MessageFormat enum value
59319	MessageFormatRaw = "RAW"
59320
59321	// MessageFormatJson is a MessageFormat enum value
59322	MessageFormatJson = "JSON"
59323)
59324
59325// MessageFormat_Values returns all elements of the MessageFormat enum
59326func MessageFormat_Values() []string {
59327	return []string{
59328		MessageFormatRaw,
59329		MessageFormatJson,
59330	}
59331}
59332
59333const (
59334	// MitigationActionTypeUpdateDeviceCertificate is a MitigationActionType enum value
59335	MitigationActionTypeUpdateDeviceCertificate = "UPDATE_DEVICE_CERTIFICATE"
59336
59337	// MitigationActionTypeUpdateCaCertificate is a MitigationActionType enum value
59338	MitigationActionTypeUpdateCaCertificate = "UPDATE_CA_CERTIFICATE"
59339
59340	// MitigationActionTypeAddThingsToThingGroup is a MitigationActionType enum value
59341	MitigationActionTypeAddThingsToThingGroup = "ADD_THINGS_TO_THING_GROUP"
59342
59343	// MitigationActionTypeReplaceDefaultPolicyVersion is a MitigationActionType enum value
59344	MitigationActionTypeReplaceDefaultPolicyVersion = "REPLACE_DEFAULT_POLICY_VERSION"
59345
59346	// MitigationActionTypeEnableIotLogging is a MitigationActionType enum value
59347	MitigationActionTypeEnableIotLogging = "ENABLE_IOT_LOGGING"
59348
59349	// MitigationActionTypePublishFindingToSns is a MitigationActionType enum value
59350	MitigationActionTypePublishFindingToSns = "PUBLISH_FINDING_TO_SNS"
59351)
59352
59353// MitigationActionType_Values returns all elements of the MitigationActionType enum
59354func MitigationActionType_Values() []string {
59355	return []string{
59356		MitigationActionTypeUpdateDeviceCertificate,
59357		MitigationActionTypeUpdateCaCertificate,
59358		MitigationActionTypeAddThingsToThingGroup,
59359		MitigationActionTypeReplaceDefaultPolicyVersion,
59360		MitigationActionTypeEnableIotLogging,
59361		MitigationActionTypePublishFindingToSns,
59362	}
59363}
59364
59365const (
59366	// ModelStatusPendingBuild is a ModelStatus enum value
59367	ModelStatusPendingBuild = "PENDING_BUILD"
59368
59369	// ModelStatusActive is a ModelStatus enum value
59370	ModelStatusActive = "ACTIVE"
59371
59372	// ModelStatusExpired is a ModelStatus enum value
59373	ModelStatusExpired = "EXPIRED"
59374)
59375
59376// ModelStatus_Values returns all elements of the ModelStatus enum
59377func ModelStatus_Values() []string {
59378	return []string{
59379		ModelStatusPendingBuild,
59380		ModelStatusActive,
59381		ModelStatusExpired,
59382	}
59383}
59384
59385const (
59386	// OTAUpdateStatusCreatePending is a OTAUpdateStatus enum value
59387	OTAUpdateStatusCreatePending = "CREATE_PENDING"
59388
59389	// OTAUpdateStatusCreateInProgress is a OTAUpdateStatus enum value
59390	OTAUpdateStatusCreateInProgress = "CREATE_IN_PROGRESS"
59391
59392	// OTAUpdateStatusCreateComplete is a OTAUpdateStatus enum value
59393	OTAUpdateStatusCreateComplete = "CREATE_COMPLETE"
59394
59395	// OTAUpdateStatusCreateFailed is a OTAUpdateStatus enum value
59396	OTAUpdateStatusCreateFailed = "CREATE_FAILED"
59397)
59398
59399// OTAUpdateStatus_Values returns all elements of the OTAUpdateStatus enum
59400func OTAUpdateStatus_Values() []string {
59401	return []string{
59402		OTAUpdateStatusCreatePending,
59403		OTAUpdateStatusCreateInProgress,
59404		OTAUpdateStatusCreateComplete,
59405		OTAUpdateStatusCreateFailed,
59406	}
59407}
59408
59409const (
59410	// PolicyTemplateNameBlankPolicy is a PolicyTemplateName enum value
59411	PolicyTemplateNameBlankPolicy = "BLANK_POLICY"
59412)
59413
59414// PolicyTemplateName_Values returns all elements of the PolicyTemplateName enum
59415func PolicyTemplateName_Values() []string {
59416	return []string{
59417		PolicyTemplateNameBlankPolicy,
59418	}
59419}
59420
59421const (
59422	// ProtocolMqtt is a Protocol enum value
59423	ProtocolMqtt = "MQTT"
59424
59425	// ProtocolHttp is a Protocol enum value
59426	ProtocolHttp = "HTTP"
59427)
59428
59429// Protocol_Values returns all elements of the Protocol enum
59430func Protocol_Values() []string {
59431	return []string{
59432		ProtocolMqtt,
59433		ProtocolHttp,
59434	}
59435}
59436
59437const (
59438	// ReportTypeErrors is a ReportType enum value
59439	ReportTypeErrors = "ERRORS"
59440
59441	// ReportTypeResults is a ReportType enum value
59442	ReportTypeResults = "RESULTS"
59443)
59444
59445// ReportType_Values returns all elements of the ReportType enum
59446func ReportType_Values() []string {
59447	return []string{
59448		ReportTypeErrors,
59449		ReportTypeResults,
59450	}
59451}
59452
59453const (
59454	// ResourceTypeDeviceCertificate is a ResourceType enum value
59455	ResourceTypeDeviceCertificate = "DEVICE_CERTIFICATE"
59456
59457	// ResourceTypeCaCertificate is a ResourceType enum value
59458	ResourceTypeCaCertificate = "CA_CERTIFICATE"
59459
59460	// ResourceTypeIotPolicy is a ResourceType enum value
59461	ResourceTypeIotPolicy = "IOT_POLICY"
59462
59463	// ResourceTypeCognitoIdentityPool is a ResourceType enum value
59464	ResourceTypeCognitoIdentityPool = "COGNITO_IDENTITY_POOL"
59465
59466	// ResourceTypeClientId is a ResourceType enum value
59467	ResourceTypeClientId = "CLIENT_ID"
59468
59469	// ResourceTypeAccountSettings is a ResourceType enum value
59470	ResourceTypeAccountSettings = "ACCOUNT_SETTINGS"
59471
59472	// ResourceTypeRoleAlias is a ResourceType enum value
59473	ResourceTypeRoleAlias = "ROLE_ALIAS"
59474
59475	// ResourceTypeIamRole is a ResourceType enum value
59476	ResourceTypeIamRole = "IAM_ROLE"
59477)
59478
59479// ResourceType_Values returns all elements of the ResourceType enum
59480func ResourceType_Values() []string {
59481	return []string{
59482		ResourceTypeDeviceCertificate,
59483		ResourceTypeCaCertificate,
59484		ResourceTypeIotPolicy,
59485		ResourceTypeCognitoIdentityPool,
59486		ResourceTypeClientId,
59487		ResourceTypeAccountSettings,
59488		ResourceTypeRoleAlias,
59489		ResourceTypeIamRole,
59490	}
59491}
59492
59493const (
59494	// ServerCertificateStatusInvalid is a ServerCertificateStatus enum value
59495	ServerCertificateStatusInvalid = "INVALID"
59496
59497	// ServerCertificateStatusValid is a ServerCertificateStatus enum value
59498	ServerCertificateStatusValid = "VALID"
59499)
59500
59501// ServerCertificateStatus_Values returns all elements of the ServerCertificateStatus enum
59502func ServerCertificateStatus_Values() []string {
59503	return []string{
59504		ServerCertificateStatusInvalid,
59505		ServerCertificateStatusValid,
59506	}
59507}
59508
59509const (
59510	// ServiceTypeData is a ServiceType enum value
59511	ServiceTypeData = "DATA"
59512
59513	// ServiceTypeCredentialProvider is a ServiceType enum value
59514	ServiceTypeCredentialProvider = "CREDENTIAL_PROVIDER"
59515
59516	// ServiceTypeJobs is a ServiceType enum value
59517	ServiceTypeJobs = "JOBS"
59518)
59519
59520// ServiceType_Values returns all elements of the ServiceType enum
59521func ServiceType_Values() []string {
59522	return []string{
59523		ServiceTypeData,
59524		ServiceTypeCredentialProvider,
59525		ServiceTypeJobs,
59526	}
59527}
59528
59529const (
59530	// StatusInProgress is a Status enum value
59531	StatusInProgress = "InProgress"
59532
59533	// StatusCompleted is a Status enum value
59534	StatusCompleted = "Completed"
59535
59536	// StatusFailed is a Status enum value
59537	StatusFailed = "Failed"
59538
59539	// StatusCancelled is a Status enum value
59540	StatusCancelled = "Cancelled"
59541
59542	// StatusCancelling is a Status enum value
59543	StatusCancelling = "Cancelling"
59544)
59545
59546// Status_Values returns all elements of the Status enum
59547func Status_Values() []string {
59548	return []string{
59549		StatusInProgress,
59550		StatusCompleted,
59551		StatusFailed,
59552		StatusCancelled,
59553		StatusCancelling,
59554	}
59555}
59556
59557const (
59558	// TargetSelectionContinuous is a TargetSelection enum value
59559	TargetSelectionContinuous = "CONTINUOUS"
59560
59561	// TargetSelectionSnapshot is a TargetSelection enum value
59562	TargetSelectionSnapshot = "SNAPSHOT"
59563)
59564
59565// TargetSelection_Values returns all elements of the TargetSelection enum
59566func TargetSelection_Values() []string {
59567	return []string{
59568		TargetSelectionContinuous,
59569		TargetSelectionSnapshot,
59570	}
59571}
59572
59573const (
59574	// ThingConnectivityIndexingModeOff is a ThingConnectivityIndexingMode enum value
59575	ThingConnectivityIndexingModeOff = "OFF"
59576
59577	// ThingConnectivityIndexingModeStatus is a ThingConnectivityIndexingMode enum value
59578	ThingConnectivityIndexingModeStatus = "STATUS"
59579)
59580
59581// ThingConnectivityIndexingMode_Values returns all elements of the ThingConnectivityIndexingMode enum
59582func ThingConnectivityIndexingMode_Values() []string {
59583	return []string{
59584		ThingConnectivityIndexingModeOff,
59585		ThingConnectivityIndexingModeStatus,
59586	}
59587}
59588
59589const (
59590	// ThingGroupIndexingModeOff is a ThingGroupIndexingMode enum value
59591	ThingGroupIndexingModeOff = "OFF"
59592
59593	// ThingGroupIndexingModeOn is a ThingGroupIndexingMode enum value
59594	ThingGroupIndexingModeOn = "ON"
59595)
59596
59597// ThingGroupIndexingMode_Values returns all elements of the ThingGroupIndexingMode enum
59598func ThingGroupIndexingMode_Values() []string {
59599	return []string{
59600		ThingGroupIndexingModeOff,
59601		ThingGroupIndexingModeOn,
59602	}
59603}
59604
59605const (
59606	// ThingIndexingModeOff is a ThingIndexingMode enum value
59607	ThingIndexingModeOff = "OFF"
59608
59609	// ThingIndexingModeRegistry is a ThingIndexingMode enum value
59610	ThingIndexingModeRegistry = "REGISTRY"
59611
59612	// ThingIndexingModeRegistryAndShadow is a ThingIndexingMode enum value
59613	ThingIndexingModeRegistryAndShadow = "REGISTRY_AND_SHADOW"
59614)
59615
59616// ThingIndexingMode_Values returns all elements of the ThingIndexingMode enum
59617func ThingIndexingMode_Values() []string {
59618	return []string{
59619		ThingIndexingModeOff,
59620		ThingIndexingModeRegistry,
59621		ThingIndexingModeRegistryAndShadow,
59622	}
59623}
59624
59625const (
59626	// TopicRuleDestinationStatusEnabled is a TopicRuleDestinationStatus enum value
59627	TopicRuleDestinationStatusEnabled = "ENABLED"
59628
59629	// TopicRuleDestinationStatusInProgress is a TopicRuleDestinationStatus enum value
59630	TopicRuleDestinationStatusInProgress = "IN_PROGRESS"
59631
59632	// TopicRuleDestinationStatusDisabled is a TopicRuleDestinationStatus enum value
59633	TopicRuleDestinationStatusDisabled = "DISABLED"
59634
59635	// TopicRuleDestinationStatusError is a TopicRuleDestinationStatus enum value
59636	TopicRuleDestinationStatusError = "ERROR"
59637
59638	// TopicRuleDestinationStatusDeleting is a TopicRuleDestinationStatus enum value
59639	TopicRuleDestinationStatusDeleting = "DELETING"
59640)
59641
59642// TopicRuleDestinationStatus_Values returns all elements of the TopicRuleDestinationStatus enum
59643func TopicRuleDestinationStatus_Values() []string {
59644	return []string{
59645		TopicRuleDestinationStatusEnabled,
59646		TopicRuleDestinationStatusInProgress,
59647		TopicRuleDestinationStatusDisabled,
59648		TopicRuleDestinationStatusError,
59649		TopicRuleDestinationStatusDeleting,
59650	}
59651}
59652
59653const (
59654	// ViolationEventTypeInAlarm is a ViolationEventType enum value
59655	ViolationEventTypeInAlarm = "in-alarm"
59656
59657	// ViolationEventTypeAlarmCleared is a ViolationEventType enum value
59658	ViolationEventTypeAlarmCleared = "alarm-cleared"
59659
59660	// ViolationEventTypeAlarmInvalidated is a ViolationEventType enum value
59661	ViolationEventTypeAlarmInvalidated = "alarm-invalidated"
59662)
59663
59664// ViolationEventType_Values returns all elements of the ViolationEventType enum
59665func ViolationEventType_Values() []string {
59666	return []string{
59667		ViolationEventTypeInAlarm,
59668		ViolationEventTypeAlarmCleared,
59669		ViolationEventTypeAlarmInvalidated,
59670	}
59671}
59672