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// Requires permission to access the AcceptCertificateTransfer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
66// action.
67//
68// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
69// with awserr.Error's Code and Message methods to get detailed information about
70// the error.
71//
72// See the AWS API reference guide for AWS IoT's
73// API operation AcceptCertificateTransfer for usage and error information.
74//
75// Returned Error Types:
76//   * ResourceNotFoundException
77//   The specified resource does not exist.
78//
79//   * TransferAlreadyCompletedException
80//   You can't revert the certificate transfer because the transfer is already
81//   complete.
82//
83//   * InvalidRequestException
84//   The request is not valid.
85//
86//   * ThrottlingException
87//   The rate exceeds the limit.
88//
89//   * UnauthorizedException
90//   You are not authorized to perform this operation.
91//
92//   * ServiceUnavailableException
93//   The service is temporarily unavailable.
94//
95//   * InternalFailureException
96//   An unexpected error has occurred.
97//
98func (c *IoT) AcceptCertificateTransfer(input *AcceptCertificateTransferInput) (*AcceptCertificateTransferOutput, error) {
99	req, out := c.AcceptCertificateTransferRequest(input)
100	return out, req.Send()
101}
102
103// AcceptCertificateTransferWithContext is the same as AcceptCertificateTransfer with the addition of
104// the ability to pass a context and additional request options.
105//
106// See AcceptCertificateTransfer for details on how to use this API operation.
107//
108// The context must be non-nil and will be used for request cancellation. If
109// the context is nil a panic will occur. In the future the SDK may create
110// sub-contexts for http.Requests. See https://golang.org/pkg/context/
111// for more information on using Contexts.
112func (c *IoT) AcceptCertificateTransferWithContext(ctx aws.Context, input *AcceptCertificateTransferInput, opts ...request.Option) (*AcceptCertificateTransferOutput, error) {
113	req, out := c.AcceptCertificateTransferRequest(input)
114	req.SetContext(ctx)
115	req.ApplyOptions(opts...)
116	return out, req.Send()
117}
118
119const opAddThingToBillingGroup = "AddThingToBillingGroup"
120
121// AddThingToBillingGroupRequest generates a "aws/request.Request" representing the
122// client's request for the AddThingToBillingGroup operation. The "output" return
123// value will be populated with the request's response once the request completes
124// successfully.
125//
126// Use "Send" method on the returned Request to send the API call to the service.
127// the "output" return value is not valid until after Send returns without error.
128//
129// See AddThingToBillingGroup for more information on using the AddThingToBillingGroup
130// API call, and error handling.
131//
132// This method is useful when you want to inject custom logic or configuration
133// into the SDK's request lifecycle. Such as custom headers, or retry logic.
134//
135//
136//    // Example sending a request using the AddThingToBillingGroupRequest method.
137//    req, resp := client.AddThingToBillingGroupRequest(params)
138//
139//    err := req.Send()
140//    if err == nil { // resp is now filled
141//        fmt.Println(resp)
142//    }
143func (c *IoT) AddThingToBillingGroupRequest(input *AddThingToBillingGroupInput) (req *request.Request, output *AddThingToBillingGroupOutput) {
144	op := &request.Operation{
145		Name:       opAddThingToBillingGroup,
146		HTTPMethod: "PUT",
147		HTTPPath:   "/billing-groups/addThingToBillingGroup",
148	}
149
150	if input == nil {
151		input = &AddThingToBillingGroupInput{}
152	}
153
154	output = &AddThingToBillingGroupOutput{}
155	req = c.newRequest(op, input, output)
156	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
157	return
158}
159
160// AddThingToBillingGroup API operation for AWS IoT.
161//
162// Adds a thing to a billing group.
163//
164// Requires permission to access the AddThingToBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
165// action.
166//
167// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
168// with awserr.Error's Code and Message methods to get detailed information about
169// the error.
170//
171// See the AWS API reference guide for AWS IoT's
172// API operation AddThingToBillingGroup for usage and error information.
173//
174// Returned Error Types:
175//   * InvalidRequestException
176//   The request is not valid.
177//
178//   * ThrottlingException
179//   The rate exceeds the limit.
180//
181//   * InternalFailureException
182//   An unexpected error has occurred.
183//
184//   * ResourceNotFoundException
185//   The specified resource does not exist.
186//
187func (c *IoT) AddThingToBillingGroup(input *AddThingToBillingGroupInput) (*AddThingToBillingGroupOutput, error) {
188	req, out := c.AddThingToBillingGroupRequest(input)
189	return out, req.Send()
190}
191
192// AddThingToBillingGroupWithContext is the same as AddThingToBillingGroup with the addition of
193// the ability to pass a context and additional request options.
194//
195// See AddThingToBillingGroup for details on how to use this API operation.
196//
197// The context must be non-nil and will be used for request cancellation. If
198// the context is nil a panic will occur. In the future the SDK may create
199// sub-contexts for http.Requests. See https://golang.org/pkg/context/
200// for more information on using Contexts.
201func (c *IoT) AddThingToBillingGroupWithContext(ctx aws.Context, input *AddThingToBillingGroupInput, opts ...request.Option) (*AddThingToBillingGroupOutput, error) {
202	req, out := c.AddThingToBillingGroupRequest(input)
203	req.SetContext(ctx)
204	req.ApplyOptions(opts...)
205	return out, req.Send()
206}
207
208const opAddThingToThingGroup = "AddThingToThingGroup"
209
210// AddThingToThingGroupRequest generates a "aws/request.Request" representing the
211// client's request for the AddThingToThingGroup operation. The "output" return
212// value will be populated with the request's response once the request completes
213// successfully.
214//
215// Use "Send" method on the returned Request to send the API call to the service.
216// the "output" return value is not valid until after Send returns without error.
217//
218// See AddThingToThingGroup for more information on using the AddThingToThingGroup
219// API call, and error handling.
220//
221// This method is useful when you want to inject custom logic or configuration
222// into the SDK's request lifecycle. Such as custom headers, or retry logic.
223//
224//
225//    // Example sending a request using the AddThingToThingGroupRequest method.
226//    req, resp := client.AddThingToThingGroupRequest(params)
227//
228//    err := req.Send()
229//    if err == nil { // resp is now filled
230//        fmt.Println(resp)
231//    }
232func (c *IoT) AddThingToThingGroupRequest(input *AddThingToThingGroupInput) (req *request.Request, output *AddThingToThingGroupOutput) {
233	op := &request.Operation{
234		Name:       opAddThingToThingGroup,
235		HTTPMethod: "PUT",
236		HTTPPath:   "/thing-groups/addThingToThingGroup",
237	}
238
239	if input == nil {
240		input = &AddThingToThingGroupInput{}
241	}
242
243	output = &AddThingToThingGroupOutput{}
244	req = c.newRequest(op, input, output)
245	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
246	return
247}
248
249// AddThingToThingGroup API operation for AWS IoT.
250//
251// Adds a thing to a thing group.
252//
253// Requires permission to access the AddThingToThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
254// action.
255//
256// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
257// with awserr.Error's Code and Message methods to get detailed information about
258// the error.
259//
260// See the AWS API reference guide for AWS IoT's
261// API operation AddThingToThingGroup for usage and error information.
262//
263// Returned Error Types:
264//   * InvalidRequestException
265//   The request is not valid.
266//
267//   * ThrottlingException
268//   The rate exceeds the limit.
269//
270//   * InternalFailureException
271//   An unexpected error has occurred.
272//
273//   * ResourceNotFoundException
274//   The specified resource does not exist.
275//
276func (c *IoT) AddThingToThingGroup(input *AddThingToThingGroupInput) (*AddThingToThingGroupOutput, error) {
277	req, out := c.AddThingToThingGroupRequest(input)
278	return out, req.Send()
279}
280
281// AddThingToThingGroupWithContext is the same as AddThingToThingGroup with the addition of
282// the ability to pass a context and additional request options.
283//
284// See AddThingToThingGroup for details on how to use this API operation.
285//
286// The context must be non-nil and will be used for request cancellation. If
287// the context is nil a panic will occur. In the future the SDK may create
288// sub-contexts for http.Requests. See https://golang.org/pkg/context/
289// for more information on using Contexts.
290func (c *IoT) AddThingToThingGroupWithContext(ctx aws.Context, input *AddThingToThingGroupInput, opts ...request.Option) (*AddThingToThingGroupOutput, error) {
291	req, out := c.AddThingToThingGroupRequest(input)
292	req.SetContext(ctx)
293	req.ApplyOptions(opts...)
294	return out, req.Send()
295}
296
297const opAssociateTargetsWithJob = "AssociateTargetsWithJob"
298
299// AssociateTargetsWithJobRequest generates a "aws/request.Request" representing the
300// client's request for the AssociateTargetsWithJob operation. The "output" return
301// value will be populated with the request's response once the request completes
302// successfully.
303//
304// Use "Send" method on the returned Request to send the API call to the service.
305// the "output" return value is not valid until after Send returns without error.
306//
307// See AssociateTargetsWithJob for more information on using the AssociateTargetsWithJob
308// API call, and error handling.
309//
310// This method is useful when you want to inject custom logic or configuration
311// into the SDK's request lifecycle. Such as custom headers, or retry logic.
312//
313//
314//    // Example sending a request using the AssociateTargetsWithJobRequest method.
315//    req, resp := client.AssociateTargetsWithJobRequest(params)
316//
317//    err := req.Send()
318//    if err == nil { // resp is now filled
319//        fmt.Println(resp)
320//    }
321func (c *IoT) AssociateTargetsWithJobRequest(input *AssociateTargetsWithJobInput) (req *request.Request, output *AssociateTargetsWithJobOutput) {
322	op := &request.Operation{
323		Name:       opAssociateTargetsWithJob,
324		HTTPMethod: "POST",
325		HTTPPath:   "/jobs/{jobId}/targets",
326	}
327
328	if input == nil {
329		input = &AssociateTargetsWithJobInput{}
330	}
331
332	output = &AssociateTargetsWithJobOutput{}
333	req = c.newRequest(op, input, output)
334	return
335}
336
337// AssociateTargetsWithJob API operation for AWS IoT.
338//
339// Associates a group with a continuous job. The following criteria must be
340// met:
341//
342//    * The job must have been created with the targetSelection field set to
343//    "CONTINUOUS".
344//
345//    * The job status must currently be "IN_PROGRESS".
346//
347//    * The total number of targets associated with a job must not exceed 100.
348//
349// Requires permission to access the AssociateTargetsWithJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
350// action.
351//
352// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
353// with awserr.Error's Code and Message methods to get detailed information about
354// the error.
355//
356// See the AWS API reference guide for AWS IoT's
357// API operation AssociateTargetsWithJob for usage and error information.
358//
359// Returned Error Types:
360//   * InvalidRequestException
361//   The request is not valid.
362//
363//   * ResourceNotFoundException
364//   The specified resource does not exist.
365//
366//   * LimitExceededException
367//   A limit has been exceeded.
368//
369//   * ThrottlingException
370//   The rate exceeds the limit.
371//
372//   * ServiceUnavailableException
373//   The service is temporarily unavailable.
374//
375func (c *IoT) AssociateTargetsWithJob(input *AssociateTargetsWithJobInput) (*AssociateTargetsWithJobOutput, error) {
376	req, out := c.AssociateTargetsWithJobRequest(input)
377	return out, req.Send()
378}
379
380// AssociateTargetsWithJobWithContext is the same as AssociateTargetsWithJob with the addition of
381// the ability to pass a context and additional request options.
382//
383// See AssociateTargetsWithJob for details on how to use this API operation.
384//
385// The context must be non-nil and will be used for request cancellation. If
386// the context is nil a panic will occur. In the future the SDK may create
387// sub-contexts for http.Requests. See https://golang.org/pkg/context/
388// for more information on using Contexts.
389func (c *IoT) AssociateTargetsWithJobWithContext(ctx aws.Context, input *AssociateTargetsWithJobInput, opts ...request.Option) (*AssociateTargetsWithJobOutput, error) {
390	req, out := c.AssociateTargetsWithJobRequest(input)
391	req.SetContext(ctx)
392	req.ApplyOptions(opts...)
393	return out, req.Send()
394}
395
396const opAttachPolicy = "AttachPolicy"
397
398// AttachPolicyRequest generates a "aws/request.Request" representing the
399// client's request for the AttachPolicy operation. The "output" return
400// value will be populated with the request's response once the request completes
401// successfully.
402//
403// Use "Send" method on the returned Request to send the API call to the service.
404// the "output" return value is not valid until after Send returns without error.
405//
406// See AttachPolicy for more information on using the AttachPolicy
407// API call, and error handling.
408//
409// This method is useful when you want to inject custom logic or configuration
410// into the SDK's request lifecycle. Such as custom headers, or retry logic.
411//
412//
413//    // Example sending a request using the AttachPolicyRequest method.
414//    req, resp := client.AttachPolicyRequest(params)
415//
416//    err := req.Send()
417//    if err == nil { // resp is now filled
418//        fmt.Println(resp)
419//    }
420func (c *IoT) AttachPolicyRequest(input *AttachPolicyInput) (req *request.Request, output *AttachPolicyOutput) {
421	op := &request.Operation{
422		Name:       opAttachPolicy,
423		HTTPMethod: "PUT",
424		HTTPPath:   "/target-policies/{policyName}",
425	}
426
427	if input == nil {
428		input = &AttachPolicyInput{}
429	}
430
431	output = &AttachPolicyOutput{}
432	req = c.newRequest(op, input, output)
433	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
434	return
435}
436
437// AttachPolicy API operation for AWS IoT.
438//
439// Attaches the specified policy to the specified principal (certificate or
440// other credential).
441//
442// Requires permission to access the AttachPolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
443// action.
444//
445// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
446// with awserr.Error's Code and Message methods to get detailed information about
447// the error.
448//
449// See the AWS API reference guide for AWS IoT's
450// API operation AttachPolicy for usage and error information.
451//
452// Returned Error Types:
453//   * ResourceNotFoundException
454//   The specified resource does not exist.
455//
456//   * InvalidRequestException
457//   The request is not valid.
458//
459//   * ThrottlingException
460//   The rate exceeds the limit.
461//
462//   * UnauthorizedException
463//   You are not authorized to perform this operation.
464//
465//   * ServiceUnavailableException
466//   The service is temporarily unavailable.
467//
468//   * InternalFailureException
469//   An unexpected error has occurred.
470//
471//   * LimitExceededException
472//   A limit has been exceeded.
473//
474func (c *IoT) AttachPolicy(input *AttachPolicyInput) (*AttachPolicyOutput, error) {
475	req, out := c.AttachPolicyRequest(input)
476	return out, req.Send()
477}
478
479// AttachPolicyWithContext is the same as AttachPolicy with the addition of
480// the ability to pass a context and additional request options.
481//
482// See AttachPolicy for details on how to use this API operation.
483//
484// The context must be non-nil and will be used for request cancellation. If
485// the context is nil a panic will occur. In the future the SDK may create
486// sub-contexts for http.Requests. See https://golang.org/pkg/context/
487// for more information on using Contexts.
488func (c *IoT) AttachPolicyWithContext(ctx aws.Context, input *AttachPolicyInput, opts ...request.Option) (*AttachPolicyOutput, error) {
489	req, out := c.AttachPolicyRequest(input)
490	req.SetContext(ctx)
491	req.ApplyOptions(opts...)
492	return out, req.Send()
493}
494
495const opAttachPrincipalPolicy = "AttachPrincipalPolicy"
496
497// AttachPrincipalPolicyRequest generates a "aws/request.Request" representing the
498// client's request for the AttachPrincipalPolicy operation. The "output" return
499// value will be populated with the request's response once the request completes
500// successfully.
501//
502// Use "Send" method on the returned Request to send the API call to the service.
503// the "output" return value is not valid until after Send returns without error.
504//
505// See AttachPrincipalPolicy for more information on using the AttachPrincipalPolicy
506// API call, and error handling.
507//
508// This method is useful when you want to inject custom logic or configuration
509// into the SDK's request lifecycle. Such as custom headers, or retry logic.
510//
511//
512//    // Example sending a request using the AttachPrincipalPolicyRequest method.
513//    req, resp := client.AttachPrincipalPolicyRequest(params)
514//
515//    err := req.Send()
516//    if err == nil { // resp is now filled
517//        fmt.Println(resp)
518//    }
519//
520// Deprecated: AttachPrincipalPolicy has been deprecated
521func (c *IoT) AttachPrincipalPolicyRequest(input *AttachPrincipalPolicyInput) (req *request.Request, output *AttachPrincipalPolicyOutput) {
522	if c.Client.Config.Logger != nil {
523		c.Client.Config.Logger.Log("This operation, AttachPrincipalPolicy, has been deprecated")
524	}
525	op := &request.Operation{
526		Name:       opAttachPrincipalPolicy,
527		HTTPMethod: "PUT",
528		HTTPPath:   "/principal-policies/{policyName}",
529	}
530
531	if input == nil {
532		input = &AttachPrincipalPolicyInput{}
533	}
534
535	output = &AttachPrincipalPolicyOutput{}
536	req = c.newRequest(op, input, output)
537	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
538	return
539}
540
541// AttachPrincipalPolicy API operation for AWS IoT.
542//
543// Attaches the specified policy to the specified principal (certificate or
544// other credential).
545//
546// Note: This action is deprecated. Please use AttachPolicy instead.
547//
548// Requires permission to access the AttachPrincipalPolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
549// action.
550//
551// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
552// with awserr.Error's Code and Message methods to get detailed information about
553// the error.
554//
555// See the AWS API reference guide for AWS IoT's
556// API operation AttachPrincipalPolicy for usage and error information.
557//
558// Returned Error Types:
559//   * ResourceNotFoundException
560//   The specified resource does not exist.
561//
562//   * InvalidRequestException
563//   The request is not valid.
564//
565//   * ThrottlingException
566//   The rate exceeds the limit.
567//
568//   * UnauthorizedException
569//   You are not authorized to perform this operation.
570//
571//   * ServiceUnavailableException
572//   The service is temporarily unavailable.
573//
574//   * InternalFailureException
575//   An unexpected error has occurred.
576//
577//   * LimitExceededException
578//   A limit has been exceeded.
579//
580//
581// Deprecated: AttachPrincipalPolicy has been deprecated
582func (c *IoT) AttachPrincipalPolicy(input *AttachPrincipalPolicyInput) (*AttachPrincipalPolicyOutput, error) {
583	req, out := c.AttachPrincipalPolicyRequest(input)
584	return out, req.Send()
585}
586
587// AttachPrincipalPolicyWithContext is the same as AttachPrincipalPolicy with the addition of
588// the ability to pass a context and additional request options.
589//
590// See AttachPrincipalPolicy for details on how to use this API operation.
591//
592// The context must be non-nil and will be used for request cancellation. If
593// the context is nil a panic will occur. In the future the SDK may create
594// sub-contexts for http.Requests. See https://golang.org/pkg/context/
595// for more information on using Contexts.
596//
597// Deprecated: AttachPrincipalPolicyWithContext has been deprecated
598func (c *IoT) AttachPrincipalPolicyWithContext(ctx aws.Context, input *AttachPrincipalPolicyInput, opts ...request.Option) (*AttachPrincipalPolicyOutput, error) {
599	req, out := c.AttachPrincipalPolicyRequest(input)
600	req.SetContext(ctx)
601	req.ApplyOptions(opts...)
602	return out, req.Send()
603}
604
605const opAttachSecurityProfile = "AttachSecurityProfile"
606
607// AttachSecurityProfileRequest generates a "aws/request.Request" representing the
608// client's request for the AttachSecurityProfile operation. The "output" return
609// value will be populated with the request's response once the request completes
610// successfully.
611//
612// Use "Send" method on the returned Request to send the API call to the service.
613// the "output" return value is not valid until after Send returns without error.
614//
615// See AttachSecurityProfile for more information on using the AttachSecurityProfile
616// API call, and error handling.
617//
618// This method is useful when you want to inject custom logic or configuration
619// into the SDK's request lifecycle. Such as custom headers, or retry logic.
620//
621//
622//    // Example sending a request using the AttachSecurityProfileRequest method.
623//    req, resp := client.AttachSecurityProfileRequest(params)
624//
625//    err := req.Send()
626//    if err == nil { // resp is now filled
627//        fmt.Println(resp)
628//    }
629func (c *IoT) AttachSecurityProfileRequest(input *AttachSecurityProfileInput) (req *request.Request, output *AttachSecurityProfileOutput) {
630	op := &request.Operation{
631		Name:       opAttachSecurityProfile,
632		HTTPMethod: "PUT",
633		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
634	}
635
636	if input == nil {
637		input = &AttachSecurityProfileInput{}
638	}
639
640	output = &AttachSecurityProfileOutput{}
641	req = c.newRequest(op, input, output)
642	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
643	return
644}
645
646// AttachSecurityProfile API operation for AWS IoT.
647//
648// Associates a Device Defender security profile with a thing group or this
649// account. Each thing group or account can have up to five security profiles
650// associated with it.
651//
652// Requires permission to access the AttachSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
653// action.
654//
655// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
656// with awserr.Error's Code and Message methods to get detailed information about
657// the error.
658//
659// See the AWS API reference guide for AWS IoT's
660// API operation AttachSecurityProfile for usage and error information.
661//
662// Returned Error Types:
663//   * InvalidRequestException
664//   The request is not valid.
665//
666//   * ResourceNotFoundException
667//   The specified resource does not exist.
668//
669//   * LimitExceededException
670//   A limit has been exceeded.
671//
672//   * VersionConflictException
673//   An exception thrown when the version of an entity specified with the expectedVersion
674//   parameter does not match the latest version in the system.
675//
676//   * ThrottlingException
677//   The rate exceeds the limit.
678//
679//   * InternalFailureException
680//   An unexpected error has occurred.
681//
682func (c *IoT) AttachSecurityProfile(input *AttachSecurityProfileInput) (*AttachSecurityProfileOutput, error) {
683	req, out := c.AttachSecurityProfileRequest(input)
684	return out, req.Send()
685}
686
687// AttachSecurityProfileWithContext is the same as AttachSecurityProfile with the addition of
688// the ability to pass a context and additional request options.
689//
690// See AttachSecurityProfile for details on how to use this API operation.
691//
692// The context must be non-nil and will be used for request cancellation. If
693// the context is nil a panic will occur. In the future the SDK may create
694// sub-contexts for http.Requests. See https://golang.org/pkg/context/
695// for more information on using Contexts.
696func (c *IoT) AttachSecurityProfileWithContext(ctx aws.Context, input *AttachSecurityProfileInput, opts ...request.Option) (*AttachSecurityProfileOutput, error) {
697	req, out := c.AttachSecurityProfileRequest(input)
698	req.SetContext(ctx)
699	req.ApplyOptions(opts...)
700	return out, req.Send()
701}
702
703const opAttachThingPrincipal = "AttachThingPrincipal"
704
705// AttachThingPrincipalRequest generates a "aws/request.Request" representing the
706// client's request for the AttachThingPrincipal operation. The "output" return
707// value will be populated with the request's response once the request completes
708// successfully.
709//
710// Use "Send" method on the returned Request to send the API call to the service.
711// the "output" return value is not valid until after Send returns without error.
712//
713// See AttachThingPrincipal for more information on using the AttachThingPrincipal
714// API call, and error handling.
715//
716// This method is useful when you want to inject custom logic or configuration
717// into the SDK's request lifecycle. Such as custom headers, or retry logic.
718//
719//
720//    // Example sending a request using the AttachThingPrincipalRequest method.
721//    req, resp := client.AttachThingPrincipalRequest(params)
722//
723//    err := req.Send()
724//    if err == nil { // resp is now filled
725//        fmt.Println(resp)
726//    }
727func (c *IoT) AttachThingPrincipalRequest(input *AttachThingPrincipalInput) (req *request.Request, output *AttachThingPrincipalOutput) {
728	op := &request.Operation{
729		Name:       opAttachThingPrincipal,
730		HTTPMethod: "PUT",
731		HTTPPath:   "/things/{thingName}/principals",
732	}
733
734	if input == nil {
735		input = &AttachThingPrincipalInput{}
736	}
737
738	output = &AttachThingPrincipalOutput{}
739	req = c.newRequest(op, input, output)
740	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
741	return
742}
743
744// AttachThingPrincipal API operation for AWS IoT.
745//
746// Attaches the specified principal to the specified thing. A principal can
747// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
748// or federated identities.
749//
750// Requires permission to access the AttachThingPrincipal (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
751// action.
752//
753// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
754// with awserr.Error's Code and Message methods to get detailed information about
755// the error.
756//
757// See the AWS API reference guide for AWS IoT's
758// API operation AttachThingPrincipal for usage and error information.
759//
760// Returned Error Types:
761//   * ResourceNotFoundException
762//   The specified resource does not exist.
763//
764//   * InvalidRequestException
765//   The request is not valid.
766//
767//   * ThrottlingException
768//   The rate exceeds the limit.
769//
770//   * UnauthorizedException
771//   You are not authorized to perform this operation.
772//
773//   * ServiceUnavailableException
774//   The service is temporarily unavailable.
775//
776//   * InternalFailureException
777//   An unexpected error has occurred.
778//
779func (c *IoT) AttachThingPrincipal(input *AttachThingPrincipalInput) (*AttachThingPrincipalOutput, error) {
780	req, out := c.AttachThingPrincipalRequest(input)
781	return out, req.Send()
782}
783
784// AttachThingPrincipalWithContext is the same as AttachThingPrincipal with the addition of
785// the ability to pass a context and additional request options.
786//
787// See AttachThingPrincipal for details on how to use this API operation.
788//
789// The context must be non-nil and will be used for request cancellation. If
790// the context is nil a panic will occur. In the future the SDK may create
791// sub-contexts for http.Requests. See https://golang.org/pkg/context/
792// for more information on using Contexts.
793func (c *IoT) AttachThingPrincipalWithContext(ctx aws.Context, input *AttachThingPrincipalInput, opts ...request.Option) (*AttachThingPrincipalOutput, error) {
794	req, out := c.AttachThingPrincipalRequest(input)
795	req.SetContext(ctx)
796	req.ApplyOptions(opts...)
797	return out, req.Send()
798}
799
800const opCancelAuditMitigationActionsTask = "CancelAuditMitigationActionsTask"
801
802// CancelAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
803// client's request for the CancelAuditMitigationActionsTask operation. The "output" return
804// value will be populated with the request's response once the request completes
805// successfully.
806//
807// Use "Send" method on the returned Request to send the API call to the service.
808// the "output" return value is not valid until after Send returns without error.
809//
810// See CancelAuditMitigationActionsTask for more information on using the CancelAuditMitigationActionsTask
811// API call, and error handling.
812//
813// This method is useful when you want to inject custom logic or configuration
814// into the SDK's request lifecycle. Such as custom headers, or retry logic.
815//
816//
817//    // Example sending a request using the CancelAuditMitigationActionsTaskRequest method.
818//    req, resp := client.CancelAuditMitigationActionsTaskRequest(params)
819//
820//    err := req.Send()
821//    if err == nil { // resp is now filled
822//        fmt.Println(resp)
823//    }
824func (c *IoT) CancelAuditMitigationActionsTaskRequest(input *CancelAuditMitigationActionsTaskInput) (req *request.Request, output *CancelAuditMitigationActionsTaskOutput) {
825	op := &request.Operation{
826		Name:       opCancelAuditMitigationActionsTask,
827		HTTPMethod: "PUT",
828		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}/cancel",
829	}
830
831	if input == nil {
832		input = &CancelAuditMitigationActionsTaskInput{}
833	}
834
835	output = &CancelAuditMitigationActionsTaskOutput{}
836	req = c.newRequest(op, input, output)
837	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
838	return
839}
840
841// CancelAuditMitigationActionsTask API operation for AWS IoT.
842//
843// Cancels a mitigation action task that is in progress. If the task is not
844// in progress, an InvalidRequestException occurs.
845//
846// Requires permission to access the CancelAuditMitigationActionsTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
847// action.
848//
849// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
850// with awserr.Error's Code and Message methods to get detailed information about
851// the error.
852//
853// See the AWS API reference guide for AWS IoT's
854// API operation CancelAuditMitigationActionsTask for usage and error information.
855//
856// Returned Error Types:
857//   * ResourceNotFoundException
858//   The specified resource does not exist.
859//
860//   * InvalidRequestException
861//   The request is not valid.
862//
863//   * ThrottlingException
864//   The rate exceeds the limit.
865//
866//   * InternalFailureException
867//   An unexpected error has occurred.
868//
869func (c *IoT) CancelAuditMitigationActionsTask(input *CancelAuditMitigationActionsTaskInput) (*CancelAuditMitigationActionsTaskOutput, error) {
870	req, out := c.CancelAuditMitigationActionsTaskRequest(input)
871	return out, req.Send()
872}
873
874// CancelAuditMitigationActionsTaskWithContext is the same as CancelAuditMitigationActionsTask with the addition of
875// the ability to pass a context and additional request options.
876//
877// See CancelAuditMitigationActionsTask for details on how to use this API operation.
878//
879// The context must be non-nil and will be used for request cancellation. If
880// the context is nil a panic will occur. In the future the SDK may create
881// sub-contexts for http.Requests. See https://golang.org/pkg/context/
882// for more information on using Contexts.
883func (c *IoT) CancelAuditMitigationActionsTaskWithContext(ctx aws.Context, input *CancelAuditMitigationActionsTaskInput, opts ...request.Option) (*CancelAuditMitigationActionsTaskOutput, error) {
884	req, out := c.CancelAuditMitigationActionsTaskRequest(input)
885	req.SetContext(ctx)
886	req.ApplyOptions(opts...)
887	return out, req.Send()
888}
889
890const opCancelAuditTask = "CancelAuditTask"
891
892// CancelAuditTaskRequest generates a "aws/request.Request" representing the
893// client's request for the CancelAuditTask operation. The "output" return
894// value will be populated with the request's response once the request completes
895// successfully.
896//
897// Use "Send" method on the returned Request to send the API call to the service.
898// the "output" return value is not valid until after Send returns without error.
899//
900// See CancelAuditTask for more information on using the CancelAuditTask
901// API call, and error handling.
902//
903// This method is useful when you want to inject custom logic or configuration
904// into the SDK's request lifecycle. Such as custom headers, or retry logic.
905//
906//
907//    // Example sending a request using the CancelAuditTaskRequest method.
908//    req, resp := client.CancelAuditTaskRequest(params)
909//
910//    err := req.Send()
911//    if err == nil { // resp is now filled
912//        fmt.Println(resp)
913//    }
914func (c *IoT) CancelAuditTaskRequest(input *CancelAuditTaskInput) (req *request.Request, output *CancelAuditTaskOutput) {
915	op := &request.Operation{
916		Name:       opCancelAuditTask,
917		HTTPMethod: "PUT",
918		HTTPPath:   "/audit/tasks/{taskId}/cancel",
919	}
920
921	if input == nil {
922		input = &CancelAuditTaskInput{}
923	}
924
925	output = &CancelAuditTaskOutput{}
926	req = c.newRequest(op, input, output)
927	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
928	return
929}
930
931// CancelAuditTask API operation for AWS IoT.
932//
933// Cancels an audit that is in progress. The audit can be either scheduled or
934// on demand. If the audit isn't in progress, an "InvalidRequestException" occurs.
935//
936// Requires permission to access the CancelAuditTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
937// action.
938//
939// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
940// with awserr.Error's Code and Message methods to get detailed information about
941// the error.
942//
943// See the AWS API reference guide for AWS IoT's
944// API operation CancelAuditTask for usage and error information.
945//
946// Returned Error Types:
947//   * ResourceNotFoundException
948//   The specified resource does not exist.
949//
950//   * InvalidRequestException
951//   The request is not valid.
952//
953//   * ThrottlingException
954//   The rate exceeds the limit.
955//
956//   * InternalFailureException
957//   An unexpected error has occurred.
958//
959func (c *IoT) CancelAuditTask(input *CancelAuditTaskInput) (*CancelAuditTaskOutput, error) {
960	req, out := c.CancelAuditTaskRequest(input)
961	return out, req.Send()
962}
963
964// CancelAuditTaskWithContext is the same as CancelAuditTask with the addition of
965// the ability to pass a context and additional request options.
966//
967// See CancelAuditTask for details on how to use this API operation.
968//
969// The context must be non-nil and will be used for request cancellation. If
970// the context is nil a panic will occur. In the future the SDK may create
971// sub-contexts for http.Requests. See https://golang.org/pkg/context/
972// for more information on using Contexts.
973func (c *IoT) CancelAuditTaskWithContext(ctx aws.Context, input *CancelAuditTaskInput, opts ...request.Option) (*CancelAuditTaskOutput, error) {
974	req, out := c.CancelAuditTaskRequest(input)
975	req.SetContext(ctx)
976	req.ApplyOptions(opts...)
977	return out, req.Send()
978}
979
980const opCancelCertificateTransfer = "CancelCertificateTransfer"
981
982// CancelCertificateTransferRequest generates a "aws/request.Request" representing the
983// client's request for the CancelCertificateTransfer operation. The "output" return
984// value will be populated with the request's response once the request completes
985// successfully.
986//
987// Use "Send" method on the returned Request to send the API call to the service.
988// the "output" return value is not valid until after Send returns without error.
989//
990// See CancelCertificateTransfer for more information on using the CancelCertificateTransfer
991// API call, and error handling.
992//
993// This method is useful when you want to inject custom logic or configuration
994// into the SDK's request lifecycle. Such as custom headers, or retry logic.
995//
996//
997//    // Example sending a request using the CancelCertificateTransferRequest method.
998//    req, resp := client.CancelCertificateTransferRequest(params)
999//
1000//    err := req.Send()
1001//    if err == nil { // resp is now filled
1002//        fmt.Println(resp)
1003//    }
1004func (c *IoT) CancelCertificateTransferRequest(input *CancelCertificateTransferInput) (req *request.Request, output *CancelCertificateTransferOutput) {
1005	op := &request.Operation{
1006		Name:       opCancelCertificateTransfer,
1007		HTTPMethod: "PATCH",
1008		HTTPPath:   "/cancel-certificate-transfer/{certificateId}",
1009	}
1010
1011	if input == nil {
1012		input = &CancelCertificateTransferInput{}
1013	}
1014
1015	output = &CancelCertificateTransferOutput{}
1016	req = c.newRequest(op, input, output)
1017	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1018	return
1019}
1020
1021// CancelCertificateTransfer API operation for AWS IoT.
1022//
1023// Cancels a pending transfer for the specified certificate.
1024//
1025// Note Only the transfer source account can use this operation to cancel a
1026// transfer. (Transfer destinations can use RejectCertificateTransfer instead.)
1027// After transfer, IoT returns the certificate to the source account in the
1028// INACTIVE state. After the destination account has accepted the transfer,
1029// the transfer cannot be cancelled.
1030//
1031// After a certificate transfer is cancelled, the status of the certificate
1032// changes from PENDING_TRANSFER to INACTIVE.
1033//
1034// Requires permission to access the CancelCertificateTransfer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
1035// action.
1036//
1037// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1038// with awserr.Error's Code and Message methods to get detailed information about
1039// the error.
1040//
1041// See the AWS API reference guide for AWS IoT's
1042// API operation CancelCertificateTransfer for usage and error information.
1043//
1044// Returned Error Types:
1045//   * ResourceNotFoundException
1046//   The specified resource does not exist.
1047//
1048//   * TransferAlreadyCompletedException
1049//   You can't revert the certificate transfer because the transfer is already
1050//   complete.
1051//
1052//   * InvalidRequestException
1053//   The request is not valid.
1054//
1055//   * ThrottlingException
1056//   The rate exceeds the limit.
1057//
1058//   * UnauthorizedException
1059//   You are not authorized to perform this operation.
1060//
1061//   * ServiceUnavailableException
1062//   The service is temporarily unavailable.
1063//
1064//   * InternalFailureException
1065//   An unexpected error has occurred.
1066//
1067func (c *IoT) CancelCertificateTransfer(input *CancelCertificateTransferInput) (*CancelCertificateTransferOutput, error) {
1068	req, out := c.CancelCertificateTransferRequest(input)
1069	return out, req.Send()
1070}
1071
1072// CancelCertificateTransferWithContext is the same as CancelCertificateTransfer with the addition of
1073// the ability to pass a context and additional request options.
1074//
1075// See CancelCertificateTransfer for details on how to use this API operation.
1076//
1077// The context must be non-nil and will be used for request cancellation. If
1078// the context is nil a panic will occur. In the future the SDK may create
1079// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1080// for more information on using Contexts.
1081func (c *IoT) CancelCertificateTransferWithContext(ctx aws.Context, input *CancelCertificateTransferInput, opts ...request.Option) (*CancelCertificateTransferOutput, error) {
1082	req, out := c.CancelCertificateTransferRequest(input)
1083	req.SetContext(ctx)
1084	req.ApplyOptions(opts...)
1085	return out, req.Send()
1086}
1087
1088const opCancelDetectMitigationActionsTask = "CancelDetectMitigationActionsTask"
1089
1090// CancelDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
1091// client's request for the CancelDetectMitigationActionsTask operation. The "output" return
1092// value will be populated with the request's response once the request completes
1093// successfully.
1094//
1095// Use "Send" method on the returned Request to send the API call to the service.
1096// the "output" return value is not valid until after Send returns without error.
1097//
1098// See CancelDetectMitigationActionsTask for more information on using the CancelDetectMitigationActionsTask
1099// API call, and error handling.
1100//
1101// This method is useful when you want to inject custom logic or configuration
1102// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1103//
1104//
1105//    // Example sending a request using the CancelDetectMitigationActionsTaskRequest method.
1106//    req, resp := client.CancelDetectMitigationActionsTaskRequest(params)
1107//
1108//    err := req.Send()
1109//    if err == nil { // resp is now filled
1110//        fmt.Println(resp)
1111//    }
1112func (c *IoT) CancelDetectMitigationActionsTaskRequest(input *CancelDetectMitigationActionsTaskInput) (req *request.Request, output *CancelDetectMitigationActionsTaskOutput) {
1113	op := &request.Operation{
1114		Name:       opCancelDetectMitigationActionsTask,
1115		HTTPMethod: "PUT",
1116		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}/cancel",
1117	}
1118
1119	if input == nil {
1120		input = &CancelDetectMitigationActionsTaskInput{}
1121	}
1122
1123	output = &CancelDetectMitigationActionsTaskOutput{}
1124	req = c.newRequest(op, input, output)
1125	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1126	return
1127}
1128
1129// CancelDetectMitigationActionsTask API operation for AWS IoT.
1130//
1131// Cancels a Device Defender ML Detect mitigation action.
1132//
1133// Requires permission to access the CancelDetectMitigationActionsTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
1134// action.
1135//
1136// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1137// with awserr.Error's Code and Message methods to get detailed information about
1138// the error.
1139//
1140// See the AWS API reference guide for AWS IoT's
1141// API operation CancelDetectMitigationActionsTask for usage and error information.
1142//
1143// Returned Error Types:
1144//   * ResourceNotFoundException
1145//   The specified resource does not exist.
1146//
1147//   * InvalidRequestException
1148//   The request is not valid.
1149//
1150//   * ThrottlingException
1151//   The rate exceeds the limit.
1152//
1153//   * InternalFailureException
1154//   An unexpected error has occurred.
1155//
1156func (c *IoT) CancelDetectMitigationActionsTask(input *CancelDetectMitigationActionsTaskInput) (*CancelDetectMitigationActionsTaskOutput, error) {
1157	req, out := c.CancelDetectMitigationActionsTaskRequest(input)
1158	return out, req.Send()
1159}
1160
1161// CancelDetectMitigationActionsTaskWithContext is the same as CancelDetectMitigationActionsTask with the addition of
1162// the ability to pass a context and additional request options.
1163//
1164// See CancelDetectMitigationActionsTask for details on how to use this API operation.
1165//
1166// The context must be non-nil and will be used for request cancellation. If
1167// the context is nil a panic will occur. In the future the SDK may create
1168// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1169// for more information on using Contexts.
1170func (c *IoT) CancelDetectMitigationActionsTaskWithContext(ctx aws.Context, input *CancelDetectMitigationActionsTaskInput, opts ...request.Option) (*CancelDetectMitigationActionsTaskOutput, error) {
1171	req, out := c.CancelDetectMitigationActionsTaskRequest(input)
1172	req.SetContext(ctx)
1173	req.ApplyOptions(opts...)
1174	return out, req.Send()
1175}
1176
1177const opCancelJob = "CancelJob"
1178
1179// CancelJobRequest generates a "aws/request.Request" representing the
1180// client's request for the CancelJob operation. The "output" return
1181// value will be populated with the request's response once the request completes
1182// successfully.
1183//
1184// Use "Send" method on the returned Request to send the API call to the service.
1185// the "output" return value is not valid until after Send returns without error.
1186//
1187// See CancelJob for more information on using the CancelJob
1188// API call, and error handling.
1189//
1190// This method is useful when you want to inject custom logic or configuration
1191// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1192//
1193//
1194//    // Example sending a request using the CancelJobRequest method.
1195//    req, resp := client.CancelJobRequest(params)
1196//
1197//    err := req.Send()
1198//    if err == nil { // resp is now filled
1199//        fmt.Println(resp)
1200//    }
1201func (c *IoT) CancelJobRequest(input *CancelJobInput) (req *request.Request, output *CancelJobOutput) {
1202	op := &request.Operation{
1203		Name:       opCancelJob,
1204		HTTPMethod: "PUT",
1205		HTTPPath:   "/jobs/{jobId}/cancel",
1206	}
1207
1208	if input == nil {
1209		input = &CancelJobInput{}
1210	}
1211
1212	output = &CancelJobOutput{}
1213	req = c.newRequest(op, input, output)
1214	return
1215}
1216
1217// CancelJob API operation for AWS IoT.
1218//
1219// Cancels a job.
1220//
1221// Requires permission to access the CancelJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
1222// action.
1223//
1224// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1225// with awserr.Error's Code and Message methods to get detailed information about
1226// the error.
1227//
1228// See the AWS API reference guide for AWS IoT's
1229// API operation CancelJob for usage and error information.
1230//
1231// Returned Error Types:
1232//   * InvalidRequestException
1233//   The request is not valid.
1234//
1235//   * ResourceNotFoundException
1236//   The specified resource does not exist.
1237//
1238//   * ThrottlingException
1239//   The rate exceeds the limit.
1240//
1241//   * ServiceUnavailableException
1242//   The service is temporarily unavailable.
1243//
1244func (c *IoT) CancelJob(input *CancelJobInput) (*CancelJobOutput, error) {
1245	req, out := c.CancelJobRequest(input)
1246	return out, req.Send()
1247}
1248
1249// CancelJobWithContext is the same as CancelJob with the addition of
1250// the ability to pass a context and additional request options.
1251//
1252// See CancelJob for details on how to use this API operation.
1253//
1254// The context must be non-nil and will be used for request cancellation. If
1255// the context is nil a panic will occur. In the future the SDK may create
1256// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1257// for more information on using Contexts.
1258func (c *IoT) CancelJobWithContext(ctx aws.Context, input *CancelJobInput, opts ...request.Option) (*CancelJobOutput, error) {
1259	req, out := c.CancelJobRequest(input)
1260	req.SetContext(ctx)
1261	req.ApplyOptions(opts...)
1262	return out, req.Send()
1263}
1264
1265const opCancelJobExecution = "CancelJobExecution"
1266
1267// CancelJobExecutionRequest generates a "aws/request.Request" representing the
1268// client's request for the CancelJobExecution operation. The "output" return
1269// value will be populated with the request's response once the request completes
1270// successfully.
1271//
1272// Use "Send" method on the returned Request to send the API call to the service.
1273// the "output" return value is not valid until after Send returns without error.
1274//
1275// See CancelJobExecution for more information on using the CancelJobExecution
1276// API call, and error handling.
1277//
1278// This method is useful when you want to inject custom logic or configuration
1279// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1280//
1281//
1282//    // Example sending a request using the CancelJobExecutionRequest method.
1283//    req, resp := client.CancelJobExecutionRequest(params)
1284//
1285//    err := req.Send()
1286//    if err == nil { // resp is now filled
1287//        fmt.Println(resp)
1288//    }
1289func (c *IoT) CancelJobExecutionRequest(input *CancelJobExecutionInput) (req *request.Request, output *CancelJobExecutionOutput) {
1290	op := &request.Operation{
1291		Name:       opCancelJobExecution,
1292		HTTPMethod: "PUT",
1293		HTTPPath:   "/things/{thingName}/jobs/{jobId}/cancel",
1294	}
1295
1296	if input == nil {
1297		input = &CancelJobExecutionInput{}
1298	}
1299
1300	output = &CancelJobExecutionOutput{}
1301	req = c.newRequest(op, input, output)
1302	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1303	return
1304}
1305
1306// CancelJobExecution API operation for AWS IoT.
1307//
1308// Cancels the execution of a job for a given thing.
1309//
1310// Requires permission to access the CancelJobExecution (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
1311// action.
1312//
1313// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1314// with awserr.Error's Code and Message methods to get detailed information about
1315// the error.
1316//
1317// See the AWS API reference guide for AWS IoT's
1318// API operation CancelJobExecution for usage and error information.
1319//
1320// Returned Error Types:
1321//   * InvalidRequestException
1322//   The request is not valid.
1323//
1324//   * InvalidStateTransitionException
1325//   An attempt was made to change to an invalid state, for example by deleting
1326//   a job or a job execution which is "IN_PROGRESS" without setting the force
1327//   parameter.
1328//
1329//   * ResourceNotFoundException
1330//   The specified resource does not exist.
1331//
1332//   * ThrottlingException
1333//   The rate exceeds the limit.
1334//
1335//   * ServiceUnavailableException
1336//   The service is temporarily unavailable.
1337//
1338//   * VersionConflictException
1339//   An exception thrown when the version of an entity specified with the expectedVersion
1340//   parameter does not match the latest version in the system.
1341//
1342func (c *IoT) CancelJobExecution(input *CancelJobExecutionInput) (*CancelJobExecutionOutput, error) {
1343	req, out := c.CancelJobExecutionRequest(input)
1344	return out, req.Send()
1345}
1346
1347// CancelJobExecutionWithContext is the same as CancelJobExecution with the addition of
1348// the ability to pass a context and additional request options.
1349//
1350// See CancelJobExecution for details on how to use this API operation.
1351//
1352// The context must be non-nil and will be used for request cancellation. If
1353// the context is nil a panic will occur. In the future the SDK may create
1354// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1355// for more information on using Contexts.
1356func (c *IoT) CancelJobExecutionWithContext(ctx aws.Context, input *CancelJobExecutionInput, opts ...request.Option) (*CancelJobExecutionOutput, error) {
1357	req, out := c.CancelJobExecutionRequest(input)
1358	req.SetContext(ctx)
1359	req.ApplyOptions(opts...)
1360	return out, req.Send()
1361}
1362
1363const opClearDefaultAuthorizer = "ClearDefaultAuthorizer"
1364
1365// ClearDefaultAuthorizerRequest generates a "aws/request.Request" representing the
1366// client's request for the ClearDefaultAuthorizer operation. The "output" return
1367// value will be populated with the request's response once the request completes
1368// successfully.
1369//
1370// Use "Send" method on the returned Request to send the API call to the service.
1371// the "output" return value is not valid until after Send returns without error.
1372//
1373// See ClearDefaultAuthorizer for more information on using the ClearDefaultAuthorizer
1374// API call, and error handling.
1375//
1376// This method is useful when you want to inject custom logic or configuration
1377// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1378//
1379//
1380//    // Example sending a request using the ClearDefaultAuthorizerRequest method.
1381//    req, resp := client.ClearDefaultAuthorizerRequest(params)
1382//
1383//    err := req.Send()
1384//    if err == nil { // resp is now filled
1385//        fmt.Println(resp)
1386//    }
1387func (c *IoT) ClearDefaultAuthorizerRequest(input *ClearDefaultAuthorizerInput) (req *request.Request, output *ClearDefaultAuthorizerOutput) {
1388	op := &request.Operation{
1389		Name:       opClearDefaultAuthorizer,
1390		HTTPMethod: "DELETE",
1391		HTTPPath:   "/default-authorizer",
1392	}
1393
1394	if input == nil {
1395		input = &ClearDefaultAuthorizerInput{}
1396	}
1397
1398	output = &ClearDefaultAuthorizerOutput{}
1399	req = c.newRequest(op, input, output)
1400	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1401	return
1402}
1403
1404// ClearDefaultAuthorizer API operation for AWS IoT.
1405//
1406// Clears the default authorizer.
1407//
1408// Requires permission to access the ClearDefaultAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
1409// action.
1410//
1411// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1412// with awserr.Error's Code and Message methods to get detailed information about
1413// the error.
1414//
1415// See the AWS API reference guide for AWS IoT's
1416// API operation ClearDefaultAuthorizer for usage and error information.
1417//
1418// Returned Error Types:
1419//   * ResourceNotFoundException
1420//   The specified resource does not exist.
1421//
1422//   * InvalidRequestException
1423//   The request is not valid.
1424//
1425//   * ThrottlingException
1426//   The rate exceeds the limit.
1427//
1428//   * UnauthorizedException
1429//   You are not authorized to perform this operation.
1430//
1431//   * ServiceUnavailableException
1432//   The service is temporarily unavailable.
1433//
1434//   * InternalFailureException
1435//   An unexpected error has occurred.
1436//
1437func (c *IoT) ClearDefaultAuthorizer(input *ClearDefaultAuthorizerInput) (*ClearDefaultAuthorizerOutput, error) {
1438	req, out := c.ClearDefaultAuthorizerRequest(input)
1439	return out, req.Send()
1440}
1441
1442// ClearDefaultAuthorizerWithContext is the same as ClearDefaultAuthorizer with the addition of
1443// the ability to pass a context and additional request options.
1444//
1445// See ClearDefaultAuthorizer for details on how to use this API operation.
1446//
1447// The context must be non-nil and will be used for request cancellation. If
1448// the context is nil a panic will occur. In the future the SDK may create
1449// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1450// for more information on using Contexts.
1451func (c *IoT) ClearDefaultAuthorizerWithContext(ctx aws.Context, input *ClearDefaultAuthorizerInput, opts ...request.Option) (*ClearDefaultAuthorizerOutput, error) {
1452	req, out := c.ClearDefaultAuthorizerRequest(input)
1453	req.SetContext(ctx)
1454	req.ApplyOptions(opts...)
1455	return out, req.Send()
1456}
1457
1458const opConfirmTopicRuleDestination = "ConfirmTopicRuleDestination"
1459
1460// ConfirmTopicRuleDestinationRequest generates a "aws/request.Request" representing the
1461// client's request for the ConfirmTopicRuleDestination operation. The "output" return
1462// value will be populated with the request's response once the request completes
1463// successfully.
1464//
1465// Use "Send" method on the returned Request to send the API call to the service.
1466// the "output" return value is not valid until after Send returns without error.
1467//
1468// See ConfirmTopicRuleDestination for more information on using the ConfirmTopicRuleDestination
1469// API call, and error handling.
1470//
1471// This method is useful when you want to inject custom logic or configuration
1472// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1473//
1474//
1475//    // Example sending a request using the ConfirmTopicRuleDestinationRequest method.
1476//    req, resp := client.ConfirmTopicRuleDestinationRequest(params)
1477//
1478//    err := req.Send()
1479//    if err == nil { // resp is now filled
1480//        fmt.Println(resp)
1481//    }
1482func (c *IoT) ConfirmTopicRuleDestinationRequest(input *ConfirmTopicRuleDestinationInput) (req *request.Request, output *ConfirmTopicRuleDestinationOutput) {
1483	op := &request.Operation{
1484		Name:       opConfirmTopicRuleDestination,
1485		HTTPMethod: "GET",
1486		HTTPPath:   "/confirmdestination/{confirmationToken+}",
1487	}
1488
1489	if input == nil {
1490		input = &ConfirmTopicRuleDestinationInput{}
1491	}
1492
1493	output = &ConfirmTopicRuleDestinationOutput{}
1494	req = c.newRequest(op, input, output)
1495	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1496	return
1497}
1498
1499// ConfirmTopicRuleDestination API operation for AWS IoT.
1500//
1501// Confirms a topic rule destination. When you create a rule requiring a destination,
1502// IoT sends a confirmation message to the endpoint or base address you specify.
1503// The message includes a token which you pass back when calling ConfirmTopicRuleDestination
1504// to confirm that you own or have access to the endpoint.
1505//
1506// Requires permission to access the ConfirmTopicRuleDestination (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
1507// action.
1508//
1509// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1510// with awserr.Error's Code and Message methods to get detailed information about
1511// the error.
1512//
1513// See the AWS API reference guide for AWS IoT's
1514// API operation ConfirmTopicRuleDestination for usage and error information.
1515//
1516// Returned Error Types:
1517//   * InternalException
1518//   An unexpected error has occurred.
1519//
1520//   * InvalidRequestException
1521//   The request is not valid.
1522//
1523//   * ServiceUnavailableException
1524//   The service is temporarily unavailable.
1525//
1526//   * UnauthorizedException
1527//   You are not authorized to perform this operation.
1528//
1529//   * ConflictingResourceUpdateException
1530//   A conflicting resource update exception. This exception is thrown when two
1531//   pending updates cause a conflict.
1532//
1533func (c *IoT) ConfirmTopicRuleDestination(input *ConfirmTopicRuleDestinationInput) (*ConfirmTopicRuleDestinationOutput, error) {
1534	req, out := c.ConfirmTopicRuleDestinationRequest(input)
1535	return out, req.Send()
1536}
1537
1538// ConfirmTopicRuleDestinationWithContext is the same as ConfirmTopicRuleDestination with the addition of
1539// the ability to pass a context and additional request options.
1540//
1541// See ConfirmTopicRuleDestination for details on how to use this API operation.
1542//
1543// The context must be non-nil and will be used for request cancellation. If
1544// the context is nil a panic will occur. In the future the SDK may create
1545// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1546// for more information on using Contexts.
1547func (c *IoT) ConfirmTopicRuleDestinationWithContext(ctx aws.Context, input *ConfirmTopicRuleDestinationInput, opts ...request.Option) (*ConfirmTopicRuleDestinationOutput, error) {
1548	req, out := c.ConfirmTopicRuleDestinationRequest(input)
1549	req.SetContext(ctx)
1550	req.ApplyOptions(opts...)
1551	return out, req.Send()
1552}
1553
1554const opCreateAuditSuppression = "CreateAuditSuppression"
1555
1556// CreateAuditSuppressionRequest generates a "aws/request.Request" representing the
1557// client's request for the CreateAuditSuppression operation. The "output" return
1558// value will be populated with the request's response once the request completes
1559// successfully.
1560//
1561// Use "Send" method on the returned Request to send the API call to the service.
1562// the "output" return value is not valid until after Send returns without error.
1563//
1564// See CreateAuditSuppression for more information on using the CreateAuditSuppression
1565// API call, and error handling.
1566//
1567// This method is useful when you want to inject custom logic or configuration
1568// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1569//
1570//
1571//    // Example sending a request using the CreateAuditSuppressionRequest method.
1572//    req, resp := client.CreateAuditSuppressionRequest(params)
1573//
1574//    err := req.Send()
1575//    if err == nil { // resp is now filled
1576//        fmt.Println(resp)
1577//    }
1578func (c *IoT) CreateAuditSuppressionRequest(input *CreateAuditSuppressionInput) (req *request.Request, output *CreateAuditSuppressionOutput) {
1579	op := &request.Operation{
1580		Name:       opCreateAuditSuppression,
1581		HTTPMethod: "POST",
1582		HTTPPath:   "/audit/suppressions/create",
1583	}
1584
1585	if input == nil {
1586		input = &CreateAuditSuppressionInput{}
1587	}
1588
1589	output = &CreateAuditSuppressionOutput{}
1590	req = c.newRequest(op, input, output)
1591	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
1592	return
1593}
1594
1595// CreateAuditSuppression API operation for AWS IoT.
1596//
1597// Creates a Device Defender audit suppression.
1598//
1599// Requires permission to access the CreateAuditSuppression (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
1600// action.
1601//
1602// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1603// with awserr.Error's Code and Message methods to get detailed information about
1604// the error.
1605//
1606// See the AWS API reference guide for AWS IoT's
1607// API operation CreateAuditSuppression for usage and error information.
1608//
1609// Returned Error Types:
1610//   * InvalidRequestException
1611//   The request is not valid.
1612//
1613//   * ResourceAlreadyExistsException
1614//   The resource already exists.
1615//
1616//   * ThrottlingException
1617//   The rate exceeds the limit.
1618//
1619//   * InternalFailureException
1620//   An unexpected error has occurred.
1621//
1622//   * LimitExceededException
1623//   A limit has been exceeded.
1624//
1625func (c *IoT) CreateAuditSuppression(input *CreateAuditSuppressionInput) (*CreateAuditSuppressionOutput, error) {
1626	req, out := c.CreateAuditSuppressionRequest(input)
1627	return out, req.Send()
1628}
1629
1630// CreateAuditSuppressionWithContext is the same as CreateAuditSuppression with the addition of
1631// the ability to pass a context and additional request options.
1632//
1633// See CreateAuditSuppression for details on how to use this API operation.
1634//
1635// The context must be non-nil and will be used for request cancellation. If
1636// the context is nil a panic will occur. In the future the SDK may create
1637// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1638// for more information on using Contexts.
1639func (c *IoT) CreateAuditSuppressionWithContext(ctx aws.Context, input *CreateAuditSuppressionInput, opts ...request.Option) (*CreateAuditSuppressionOutput, error) {
1640	req, out := c.CreateAuditSuppressionRequest(input)
1641	req.SetContext(ctx)
1642	req.ApplyOptions(opts...)
1643	return out, req.Send()
1644}
1645
1646const opCreateAuthorizer = "CreateAuthorizer"
1647
1648// CreateAuthorizerRequest generates a "aws/request.Request" representing the
1649// client's request for the CreateAuthorizer operation. The "output" return
1650// value will be populated with the request's response once the request completes
1651// successfully.
1652//
1653// Use "Send" method on the returned Request to send the API call to the service.
1654// the "output" return value is not valid until after Send returns without error.
1655//
1656// See CreateAuthorizer for more information on using the CreateAuthorizer
1657// API call, and error handling.
1658//
1659// This method is useful when you want to inject custom logic or configuration
1660// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1661//
1662//
1663//    // Example sending a request using the CreateAuthorizerRequest method.
1664//    req, resp := client.CreateAuthorizerRequest(params)
1665//
1666//    err := req.Send()
1667//    if err == nil { // resp is now filled
1668//        fmt.Println(resp)
1669//    }
1670func (c *IoT) CreateAuthorizerRequest(input *CreateAuthorizerInput) (req *request.Request, output *CreateAuthorizerOutput) {
1671	op := &request.Operation{
1672		Name:       opCreateAuthorizer,
1673		HTTPMethod: "POST",
1674		HTTPPath:   "/authorizer/{authorizerName}",
1675	}
1676
1677	if input == nil {
1678		input = &CreateAuthorizerInput{}
1679	}
1680
1681	output = &CreateAuthorizerOutput{}
1682	req = c.newRequest(op, input, output)
1683	return
1684}
1685
1686// CreateAuthorizer API operation for AWS IoT.
1687//
1688// Creates an authorizer.
1689//
1690// Requires permission to access the CreateAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
1691// action.
1692//
1693// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1694// with awserr.Error's Code and Message methods to get detailed information about
1695// the error.
1696//
1697// See the AWS API reference guide for AWS IoT's
1698// API operation CreateAuthorizer for usage and error information.
1699//
1700// Returned Error Types:
1701//   * ResourceAlreadyExistsException
1702//   The resource already exists.
1703//
1704//   * InvalidRequestException
1705//   The request is not valid.
1706//
1707//   * LimitExceededException
1708//   A limit has been exceeded.
1709//
1710//   * ThrottlingException
1711//   The rate exceeds the limit.
1712//
1713//   * UnauthorizedException
1714//   You are not authorized to perform this operation.
1715//
1716//   * ServiceUnavailableException
1717//   The service is temporarily unavailable.
1718//
1719//   * InternalFailureException
1720//   An unexpected error has occurred.
1721//
1722func (c *IoT) CreateAuthorizer(input *CreateAuthorizerInput) (*CreateAuthorizerOutput, error) {
1723	req, out := c.CreateAuthorizerRequest(input)
1724	return out, req.Send()
1725}
1726
1727// CreateAuthorizerWithContext is the same as CreateAuthorizer with the addition of
1728// the ability to pass a context and additional request options.
1729//
1730// See CreateAuthorizer for details on how to use this API operation.
1731//
1732// The context must be non-nil and will be used for request cancellation. If
1733// the context is nil a panic will occur. In the future the SDK may create
1734// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1735// for more information on using Contexts.
1736func (c *IoT) CreateAuthorizerWithContext(ctx aws.Context, input *CreateAuthorizerInput, opts ...request.Option) (*CreateAuthorizerOutput, error) {
1737	req, out := c.CreateAuthorizerRequest(input)
1738	req.SetContext(ctx)
1739	req.ApplyOptions(opts...)
1740	return out, req.Send()
1741}
1742
1743const opCreateBillingGroup = "CreateBillingGroup"
1744
1745// CreateBillingGroupRequest generates a "aws/request.Request" representing the
1746// client's request for the CreateBillingGroup operation. The "output" return
1747// value will be populated with the request's response once the request completes
1748// successfully.
1749//
1750// Use "Send" method on the returned Request to send the API call to the service.
1751// the "output" return value is not valid until after Send returns without error.
1752//
1753// See CreateBillingGroup for more information on using the CreateBillingGroup
1754// API call, and error handling.
1755//
1756// This method is useful when you want to inject custom logic or configuration
1757// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1758//
1759//
1760//    // Example sending a request using the CreateBillingGroupRequest method.
1761//    req, resp := client.CreateBillingGroupRequest(params)
1762//
1763//    err := req.Send()
1764//    if err == nil { // resp is now filled
1765//        fmt.Println(resp)
1766//    }
1767func (c *IoT) CreateBillingGroupRequest(input *CreateBillingGroupInput) (req *request.Request, output *CreateBillingGroupOutput) {
1768	op := &request.Operation{
1769		Name:       opCreateBillingGroup,
1770		HTTPMethod: "POST",
1771		HTTPPath:   "/billing-groups/{billingGroupName}",
1772	}
1773
1774	if input == nil {
1775		input = &CreateBillingGroupInput{}
1776	}
1777
1778	output = &CreateBillingGroupOutput{}
1779	req = c.newRequest(op, input, output)
1780	return
1781}
1782
1783// CreateBillingGroup API operation for AWS IoT.
1784//
1785// Creates a billing group.
1786//
1787// Requires permission to access the CreateBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
1788// action.
1789//
1790// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1791// with awserr.Error's Code and Message methods to get detailed information about
1792// the error.
1793//
1794// See the AWS API reference guide for AWS IoT's
1795// API operation CreateBillingGroup for usage and error information.
1796//
1797// Returned Error Types:
1798//   * InvalidRequestException
1799//   The request is not valid.
1800//
1801//   * ResourceAlreadyExistsException
1802//   The resource already exists.
1803//
1804//   * ThrottlingException
1805//   The rate exceeds the limit.
1806//
1807//   * InternalFailureException
1808//   An unexpected error has occurred.
1809//
1810func (c *IoT) CreateBillingGroup(input *CreateBillingGroupInput) (*CreateBillingGroupOutput, error) {
1811	req, out := c.CreateBillingGroupRequest(input)
1812	return out, req.Send()
1813}
1814
1815// CreateBillingGroupWithContext is the same as CreateBillingGroup with the addition of
1816// the ability to pass a context and additional request options.
1817//
1818// See CreateBillingGroup for details on how to use this API operation.
1819//
1820// The context must be non-nil and will be used for request cancellation. If
1821// the context is nil a panic will occur. In the future the SDK may create
1822// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1823// for more information on using Contexts.
1824func (c *IoT) CreateBillingGroupWithContext(ctx aws.Context, input *CreateBillingGroupInput, opts ...request.Option) (*CreateBillingGroupOutput, error) {
1825	req, out := c.CreateBillingGroupRequest(input)
1826	req.SetContext(ctx)
1827	req.ApplyOptions(opts...)
1828	return out, req.Send()
1829}
1830
1831const opCreateCertificateFromCsr = "CreateCertificateFromCsr"
1832
1833// CreateCertificateFromCsrRequest generates a "aws/request.Request" representing the
1834// client's request for the CreateCertificateFromCsr operation. The "output" return
1835// value will be populated with the request's response once the request completes
1836// successfully.
1837//
1838// Use "Send" method on the returned Request to send the API call to the service.
1839// the "output" return value is not valid until after Send returns without error.
1840//
1841// See CreateCertificateFromCsr for more information on using the CreateCertificateFromCsr
1842// API call, and error handling.
1843//
1844// This method is useful when you want to inject custom logic or configuration
1845// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1846//
1847//
1848//    // Example sending a request using the CreateCertificateFromCsrRequest method.
1849//    req, resp := client.CreateCertificateFromCsrRequest(params)
1850//
1851//    err := req.Send()
1852//    if err == nil { // resp is now filled
1853//        fmt.Println(resp)
1854//    }
1855func (c *IoT) CreateCertificateFromCsrRequest(input *CreateCertificateFromCsrInput) (req *request.Request, output *CreateCertificateFromCsrOutput) {
1856	op := &request.Operation{
1857		Name:       opCreateCertificateFromCsr,
1858		HTTPMethod: "POST",
1859		HTTPPath:   "/certificates",
1860	}
1861
1862	if input == nil {
1863		input = &CreateCertificateFromCsrInput{}
1864	}
1865
1866	output = &CreateCertificateFromCsrOutput{}
1867	req = c.newRequest(op, input, output)
1868	return
1869}
1870
1871// CreateCertificateFromCsr API operation for AWS IoT.
1872//
1873// Creates an X.509 certificate using the specified certificate signing request.
1874//
1875// Note: The CSR must include a public key that is either an RSA key with a
1876// length of at least 2048 bits or an ECC key from NIST P-256 or NIST P-384
1877// curves.
1878//
1879// Note: Reusing the same certificate signing request (CSR) results in a distinct
1880// certificate.
1881//
1882// Requires permission to access the CreateCertificateFromCsr (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
1883// action.
1884//
1885// You can create multiple certificates in a batch by creating a directory,
1886// copying multiple .csr files into that directory, and then specifying that
1887// directory on the command line. The following commands show how to create
1888// a batch of certificates given a batch of CSRs.
1889//
1890// Assuming a set of CSRs are located inside of the directory my-csr-directory:
1891//
1892// On Linux and OS X, the command is:
1893//
1894// $ ls my-csr-directory/ | xargs -I {} aws iot create-certificate-from-csr
1895// --certificate-signing-request file://my-csr-directory/{}
1896//
1897// This command lists all of the CSRs in my-csr-directory and pipes each CSR
1898// file name to the aws iot create-certificate-from-csr Amazon Web Services
1899// CLI command to create a certificate for the corresponding CSR.
1900//
1901// The aws iot create-certificate-from-csr part of the command can also be run
1902// in parallel to speed up the certificate creation process:
1903//
1904// $ ls my-csr-directory/ | xargs -P 10 -I {} aws iot create-certificate-from-csr
1905// --certificate-signing-request file://my-csr-directory/{}
1906//
1907// On Windows PowerShell, the command to create certificates for all CSRs in
1908// my-csr-directory is:
1909//
1910// > ls -Name my-csr-directory | %{aws iot create-certificate-from-csr --certificate-signing-request
1911// file://my-csr-directory/$_}
1912//
1913// On a Windows command prompt, the command to create certificates for all CSRs
1914// in my-csr-directory is:
1915//
1916// > forfiles /p my-csr-directory /c "cmd /c aws iot create-certificate-from-csr
1917// --certificate-signing-request file://@path"
1918//
1919// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1920// with awserr.Error's Code and Message methods to get detailed information about
1921// the error.
1922//
1923// See the AWS API reference guide for AWS IoT's
1924// API operation CreateCertificateFromCsr for usage and error information.
1925//
1926// Returned Error Types:
1927//   * InvalidRequestException
1928//   The request is not valid.
1929//
1930//   * ThrottlingException
1931//   The rate exceeds the limit.
1932//
1933//   * UnauthorizedException
1934//   You are not authorized to perform this operation.
1935//
1936//   * ServiceUnavailableException
1937//   The service is temporarily unavailable.
1938//
1939//   * InternalFailureException
1940//   An unexpected error has occurred.
1941//
1942func (c *IoT) CreateCertificateFromCsr(input *CreateCertificateFromCsrInput) (*CreateCertificateFromCsrOutput, error) {
1943	req, out := c.CreateCertificateFromCsrRequest(input)
1944	return out, req.Send()
1945}
1946
1947// CreateCertificateFromCsrWithContext is the same as CreateCertificateFromCsr with the addition of
1948// the ability to pass a context and additional request options.
1949//
1950// See CreateCertificateFromCsr for details on how to use this API operation.
1951//
1952// The context must be non-nil and will be used for request cancellation. If
1953// the context is nil a panic will occur. In the future the SDK may create
1954// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1955// for more information on using Contexts.
1956func (c *IoT) CreateCertificateFromCsrWithContext(ctx aws.Context, input *CreateCertificateFromCsrInput, opts ...request.Option) (*CreateCertificateFromCsrOutput, error) {
1957	req, out := c.CreateCertificateFromCsrRequest(input)
1958	req.SetContext(ctx)
1959	req.ApplyOptions(opts...)
1960	return out, req.Send()
1961}
1962
1963const opCreateCustomMetric = "CreateCustomMetric"
1964
1965// CreateCustomMetricRequest generates a "aws/request.Request" representing the
1966// client's request for the CreateCustomMetric operation. The "output" return
1967// value will be populated with the request's response once the request completes
1968// successfully.
1969//
1970// Use "Send" method on the returned Request to send the API call to the service.
1971// the "output" return value is not valid until after Send returns without error.
1972//
1973// See CreateCustomMetric for more information on using the CreateCustomMetric
1974// API call, and error handling.
1975//
1976// This method is useful when you want to inject custom logic or configuration
1977// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1978//
1979//
1980//    // Example sending a request using the CreateCustomMetricRequest method.
1981//    req, resp := client.CreateCustomMetricRequest(params)
1982//
1983//    err := req.Send()
1984//    if err == nil { // resp is now filled
1985//        fmt.Println(resp)
1986//    }
1987func (c *IoT) CreateCustomMetricRequest(input *CreateCustomMetricInput) (req *request.Request, output *CreateCustomMetricOutput) {
1988	op := &request.Operation{
1989		Name:       opCreateCustomMetric,
1990		HTTPMethod: "POST",
1991		HTTPPath:   "/custom-metric/{metricName}",
1992	}
1993
1994	if input == nil {
1995		input = &CreateCustomMetricInput{}
1996	}
1997
1998	output = &CreateCustomMetricOutput{}
1999	req = c.newRequest(op, input, output)
2000	return
2001}
2002
2003// CreateCustomMetric API operation for AWS IoT.
2004//
2005// Use this API to define a Custom Metric published by your devices to Device
2006// Defender.
2007//
2008// Requires permission to access the CreateCustomMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
2009// action.
2010//
2011// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2012// with awserr.Error's Code and Message methods to get detailed information about
2013// the error.
2014//
2015// See the AWS API reference guide for AWS IoT's
2016// API operation CreateCustomMetric for usage and error information.
2017//
2018// Returned Error Types:
2019//   * InvalidRequestException
2020//   The request is not valid.
2021//
2022//   * LimitExceededException
2023//   A limit has been exceeded.
2024//
2025//   * ResourceAlreadyExistsException
2026//   The resource already exists.
2027//
2028//   * ThrottlingException
2029//   The rate exceeds the limit.
2030//
2031//   * InternalFailureException
2032//   An unexpected error has occurred.
2033//
2034func (c *IoT) CreateCustomMetric(input *CreateCustomMetricInput) (*CreateCustomMetricOutput, error) {
2035	req, out := c.CreateCustomMetricRequest(input)
2036	return out, req.Send()
2037}
2038
2039// CreateCustomMetricWithContext is the same as CreateCustomMetric with the addition of
2040// the ability to pass a context and additional request options.
2041//
2042// See CreateCustomMetric for details on how to use this API operation.
2043//
2044// The context must be non-nil and will be used for request cancellation. If
2045// the context is nil a panic will occur. In the future the SDK may create
2046// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2047// for more information on using Contexts.
2048func (c *IoT) CreateCustomMetricWithContext(ctx aws.Context, input *CreateCustomMetricInput, opts ...request.Option) (*CreateCustomMetricOutput, error) {
2049	req, out := c.CreateCustomMetricRequest(input)
2050	req.SetContext(ctx)
2051	req.ApplyOptions(opts...)
2052	return out, req.Send()
2053}
2054
2055const opCreateDimension = "CreateDimension"
2056
2057// CreateDimensionRequest generates a "aws/request.Request" representing the
2058// client's request for the CreateDimension operation. The "output" return
2059// value will be populated with the request's response once the request completes
2060// successfully.
2061//
2062// Use "Send" method on the returned Request to send the API call to the service.
2063// the "output" return value is not valid until after Send returns without error.
2064//
2065// See CreateDimension for more information on using the CreateDimension
2066// API call, and error handling.
2067//
2068// This method is useful when you want to inject custom logic or configuration
2069// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2070//
2071//
2072//    // Example sending a request using the CreateDimensionRequest method.
2073//    req, resp := client.CreateDimensionRequest(params)
2074//
2075//    err := req.Send()
2076//    if err == nil { // resp is now filled
2077//        fmt.Println(resp)
2078//    }
2079func (c *IoT) CreateDimensionRequest(input *CreateDimensionInput) (req *request.Request, output *CreateDimensionOutput) {
2080	op := &request.Operation{
2081		Name:       opCreateDimension,
2082		HTTPMethod: "POST",
2083		HTTPPath:   "/dimensions/{name}",
2084	}
2085
2086	if input == nil {
2087		input = &CreateDimensionInput{}
2088	}
2089
2090	output = &CreateDimensionOutput{}
2091	req = c.newRequest(op, input, output)
2092	return
2093}
2094
2095// CreateDimension API operation for AWS IoT.
2096//
2097// Create a dimension that you can use to limit the scope of a metric used in
2098// a security profile for IoT Device Defender. For example, using a TOPIC_FILTER
2099// dimension, you can narrow down the scope of the metric only to MQTT topics
2100// whose name match the pattern specified in the dimension.
2101//
2102// Requires permission to access the CreateDimension (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
2103// action.
2104//
2105// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2106// with awserr.Error's Code and Message methods to get detailed information about
2107// the error.
2108//
2109// See the AWS API reference guide for AWS IoT's
2110// API operation CreateDimension for usage and error information.
2111//
2112// Returned Error Types:
2113//   * InternalFailureException
2114//   An unexpected error has occurred.
2115//
2116//   * InvalidRequestException
2117//   The request is not valid.
2118//
2119//   * LimitExceededException
2120//   A limit has been exceeded.
2121//
2122//   * ResourceAlreadyExistsException
2123//   The resource already exists.
2124//
2125//   * ThrottlingException
2126//   The rate exceeds the limit.
2127//
2128func (c *IoT) CreateDimension(input *CreateDimensionInput) (*CreateDimensionOutput, error) {
2129	req, out := c.CreateDimensionRequest(input)
2130	return out, req.Send()
2131}
2132
2133// CreateDimensionWithContext is the same as CreateDimension with the addition of
2134// the ability to pass a context and additional request options.
2135//
2136// See CreateDimension for details on how to use this API operation.
2137//
2138// The context must be non-nil and will be used for request cancellation. If
2139// the context is nil a panic will occur. In the future the SDK may create
2140// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2141// for more information on using Contexts.
2142func (c *IoT) CreateDimensionWithContext(ctx aws.Context, input *CreateDimensionInput, opts ...request.Option) (*CreateDimensionOutput, error) {
2143	req, out := c.CreateDimensionRequest(input)
2144	req.SetContext(ctx)
2145	req.ApplyOptions(opts...)
2146	return out, req.Send()
2147}
2148
2149const opCreateDomainConfiguration = "CreateDomainConfiguration"
2150
2151// CreateDomainConfigurationRequest generates a "aws/request.Request" representing the
2152// client's request for the CreateDomainConfiguration operation. The "output" return
2153// value will be populated with the request's response once the request completes
2154// successfully.
2155//
2156// Use "Send" method on the returned Request to send the API call to the service.
2157// the "output" return value is not valid until after Send returns without error.
2158//
2159// See CreateDomainConfiguration for more information on using the CreateDomainConfiguration
2160// API call, and error handling.
2161//
2162// This method is useful when you want to inject custom logic or configuration
2163// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2164//
2165//
2166//    // Example sending a request using the CreateDomainConfigurationRequest method.
2167//    req, resp := client.CreateDomainConfigurationRequest(params)
2168//
2169//    err := req.Send()
2170//    if err == nil { // resp is now filled
2171//        fmt.Println(resp)
2172//    }
2173func (c *IoT) CreateDomainConfigurationRequest(input *CreateDomainConfigurationInput) (req *request.Request, output *CreateDomainConfigurationOutput) {
2174	op := &request.Operation{
2175		Name:       opCreateDomainConfiguration,
2176		HTTPMethod: "POST",
2177		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
2178	}
2179
2180	if input == nil {
2181		input = &CreateDomainConfigurationInput{}
2182	}
2183
2184	output = &CreateDomainConfigurationOutput{}
2185	req = c.newRequest(op, input, output)
2186	return
2187}
2188
2189// CreateDomainConfiguration API operation for AWS IoT.
2190//
2191// Creates a domain configuration.
2192//
2193// Requires permission to access the CreateDomainConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
2194// action.
2195//
2196// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2197// with awserr.Error's Code and Message methods to get detailed information about
2198// the error.
2199//
2200// See the AWS API reference guide for AWS IoT's
2201// API operation CreateDomainConfiguration for usage and error information.
2202//
2203// Returned Error Types:
2204//   * LimitExceededException
2205//   A limit has been exceeded.
2206//
2207//   * CertificateValidationException
2208//   The certificate is invalid.
2209//
2210//   * ResourceAlreadyExistsException
2211//   The resource already exists.
2212//
2213//   * ServiceUnavailableException
2214//   The service is temporarily unavailable.
2215//
2216//   * InternalFailureException
2217//   An unexpected error has occurred.
2218//
2219//   * InvalidRequestException
2220//   The request is not valid.
2221//
2222//   * UnauthorizedException
2223//   You are not authorized to perform this operation.
2224//
2225//   * ThrottlingException
2226//   The rate exceeds the limit.
2227//
2228func (c *IoT) CreateDomainConfiguration(input *CreateDomainConfigurationInput) (*CreateDomainConfigurationOutput, error) {
2229	req, out := c.CreateDomainConfigurationRequest(input)
2230	return out, req.Send()
2231}
2232
2233// CreateDomainConfigurationWithContext is the same as CreateDomainConfiguration with the addition of
2234// the ability to pass a context and additional request options.
2235//
2236// See CreateDomainConfiguration for details on how to use this API operation.
2237//
2238// The context must be non-nil and will be used for request cancellation. If
2239// the context is nil a panic will occur. In the future the SDK may create
2240// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2241// for more information on using Contexts.
2242func (c *IoT) CreateDomainConfigurationWithContext(ctx aws.Context, input *CreateDomainConfigurationInput, opts ...request.Option) (*CreateDomainConfigurationOutput, error) {
2243	req, out := c.CreateDomainConfigurationRequest(input)
2244	req.SetContext(ctx)
2245	req.ApplyOptions(opts...)
2246	return out, req.Send()
2247}
2248
2249const opCreateDynamicThingGroup = "CreateDynamicThingGroup"
2250
2251// CreateDynamicThingGroupRequest generates a "aws/request.Request" representing the
2252// client's request for the CreateDynamicThingGroup operation. The "output" return
2253// value will be populated with the request's response once the request completes
2254// successfully.
2255//
2256// Use "Send" method on the returned Request to send the API call to the service.
2257// the "output" return value is not valid until after Send returns without error.
2258//
2259// See CreateDynamicThingGroup for more information on using the CreateDynamicThingGroup
2260// API call, and error handling.
2261//
2262// This method is useful when you want to inject custom logic or configuration
2263// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2264//
2265//
2266//    // Example sending a request using the CreateDynamicThingGroupRequest method.
2267//    req, resp := client.CreateDynamicThingGroupRequest(params)
2268//
2269//    err := req.Send()
2270//    if err == nil { // resp is now filled
2271//        fmt.Println(resp)
2272//    }
2273func (c *IoT) CreateDynamicThingGroupRequest(input *CreateDynamicThingGroupInput) (req *request.Request, output *CreateDynamicThingGroupOutput) {
2274	op := &request.Operation{
2275		Name:       opCreateDynamicThingGroup,
2276		HTTPMethod: "POST",
2277		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
2278	}
2279
2280	if input == nil {
2281		input = &CreateDynamicThingGroupInput{}
2282	}
2283
2284	output = &CreateDynamicThingGroupOutput{}
2285	req = c.newRequest(op, input, output)
2286	return
2287}
2288
2289// CreateDynamicThingGroup API operation for AWS IoT.
2290//
2291// Creates a dynamic thing group.
2292//
2293// Requires permission to access the CreateDynamicThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
2294// action.
2295//
2296// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2297// with awserr.Error's Code and Message methods to get detailed information about
2298// the error.
2299//
2300// See the AWS API reference guide for AWS IoT's
2301// API operation CreateDynamicThingGroup for usage and error information.
2302//
2303// Returned Error Types:
2304//   * InvalidRequestException
2305//   The request is not valid.
2306//
2307//   * ResourceAlreadyExistsException
2308//   The resource already exists.
2309//
2310//   * ResourceNotFoundException
2311//   The specified resource does not exist.
2312//
2313//   * ThrottlingException
2314//   The rate exceeds the limit.
2315//
2316//   * InternalFailureException
2317//   An unexpected error has occurred.
2318//
2319//   * InvalidQueryException
2320//   The query is invalid.
2321//
2322//   * LimitExceededException
2323//   A limit has been exceeded.
2324//
2325func (c *IoT) CreateDynamicThingGroup(input *CreateDynamicThingGroupInput) (*CreateDynamicThingGroupOutput, error) {
2326	req, out := c.CreateDynamicThingGroupRequest(input)
2327	return out, req.Send()
2328}
2329
2330// CreateDynamicThingGroupWithContext is the same as CreateDynamicThingGroup with the addition of
2331// the ability to pass a context and additional request options.
2332//
2333// See CreateDynamicThingGroup for details on how to use this API operation.
2334//
2335// The context must be non-nil and will be used for request cancellation. If
2336// the context is nil a panic will occur. In the future the SDK may create
2337// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2338// for more information on using Contexts.
2339func (c *IoT) CreateDynamicThingGroupWithContext(ctx aws.Context, input *CreateDynamicThingGroupInput, opts ...request.Option) (*CreateDynamicThingGroupOutput, error) {
2340	req, out := c.CreateDynamicThingGroupRequest(input)
2341	req.SetContext(ctx)
2342	req.ApplyOptions(opts...)
2343	return out, req.Send()
2344}
2345
2346const opCreateFleetMetric = "CreateFleetMetric"
2347
2348// CreateFleetMetricRequest generates a "aws/request.Request" representing the
2349// client's request for the CreateFleetMetric operation. The "output" return
2350// value will be populated with the request's response once the request completes
2351// successfully.
2352//
2353// Use "Send" method on the returned Request to send the API call to the service.
2354// the "output" return value is not valid until after Send returns without error.
2355//
2356// See CreateFleetMetric for more information on using the CreateFleetMetric
2357// API call, and error handling.
2358//
2359// This method is useful when you want to inject custom logic or configuration
2360// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2361//
2362//
2363//    // Example sending a request using the CreateFleetMetricRequest method.
2364//    req, resp := client.CreateFleetMetricRequest(params)
2365//
2366//    err := req.Send()
2367//    if err == nil { // resp is now filled
2368//        fmt.Println(resp)
2369//    }
2370func (c *IoT) CreateFleetMetricRequest(input *CreateFleetMetricInput) (req *request.Request, output *CreateFleetMetricOutput) {
2371	op := &request.Operation{
2372		Name:       opCreateFleetMetric,
2373		HTTPMethod: "PUT",
2374		HTTPPath:   "/fleet-metric/{metricName}",
2375	}
2376
2377	if input == nil {
2378		input = &CreateFleetMetricInput{}
2379	}
2380
2381	output = &CreateFleetMetricOutput{}
2382	req = c.newRequest(op, input, output)
2383	return
2384}
2385
2386// CreateFleetMetric API operation for AWS IoT.
2387//
2388// Creates a fleet metric.
2389//
2390// Requires permission to access the CreateFleetMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
2391// action.
2392//
2393// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2394// with awserr.Error's Code and Message methods to get detailed information about
2395// the error.
2396//
2397// See the AWS API reference guide for AWS IoT's
2398// API operation CreateFleetMetric for usage and error information.
2399//
2400// Returned Error Types:
2401//   * InvalidRequestException
2402//   The request is not valid.
2403//
2404//   * ThrottlingException
2405//   The rate exceeds the limit.
2406//
2407//   * UnauthorizedException
2408//   You are not authorized to perform this operation.
2409//
2410//   * ServiceUnavailableException
2411//   The service is temporarily unavailable.
2412//
2413//   * InternalFailureException
2414//   An unexpected error has occurred.
2415//
2416//   * LimitExceededException
2417//   A limit has been exceeded.
2418//
2419//   * ResourceAlreadyExistsException
2420//   The resource already exists.
2421//
2422//   * ResourceNotFoundException
2423//   The specified resource does not exist.
2424//
2425//   * InvalidQueryException
2426//   The query is invalid.
2427//
2428//   * InvalidAggregationException
2429//   The aggregation is invalid.
2430//
2431//   * IndexNotReadyException
2432//   The index is not ready.
2433//
2434func (c *IoT) CreateFleetMetric(input *CreateFleetMetricInput) (*CreateFleetMetricOutput, error) {
2435	req, out := c.CreateFleetMetricRequest(input)
2436	return out, req.Send()
2437}
2438
2439// CreateFleetMetricWithContext is the same as CreateFleetMetric with the addition of
2440// the ability to pass a context and additional request options.
2441//
2442// See CreateFleetMetric for details on how to use this API operation.
2443//
2444// The context must be non-nil and will be used for request cancellation. If
2445// the context is nil a panic will occur. In the future the SDK may create
2446// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2447// for more information on using Contexts.
2448func (c *IoT) CreateFleetMetricWithContext(ctx aws.Context, input *CreateFleetMetricInput, opts ...request.Option) (*CreateFleetMetricOutput, error) {
2449	req, out := c.CreateFleetMetricRequest(input)
2450	req.SetContext(ctx)
2451	req.ApplyOptions(opts...)
2452	return out, req.Send()
2453}
2454
2455const opCreateJob = "CreateJob"
2456
2457// CreateJobRequest generates a "aws/request.Request" representing the
2458// client's request for the CreateJob operation. The "output" return
2459// value will be populated with the request's response once the request completes
2460// successfully.
2461//
2462// Use "Send" method on the returned Request to send the API call to the service.
2463// the "output" return value is not valid until after Send returns without error.
2464//
2465// See CreateJob for more information on using the CreateJob
2466// API call, and error handling.
2467//
2468// This method is useful when you want to inject custom logic or configuration
2469// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2470//
2471//
2472//    // Example sending a request using the CreateJobRequest method.
2473//    req, resp := client.CreateJobRequest(params)
2474//
2475//    err := req.Send()
2476//    if err == nil { // resp is now filled
2477//        fmt.Println(resp)
2478//    }
2479func (c *IoT) CreateJobRequest(input *CreateJobInput) (req *request.Request, output *CreateJobOutput) {
2480	op := &request.Operation{
2481		Name:       opCreateJob,
2482		HTTPMethod: "PUT",
2483		HTTPPath:   "/jobs/{jobId}",
2484	}
2485
2486	if input == nil {
2487		input = &CreateJobInput{}
2488	}
2489
2490	output = &CreateJobOutput{}
2491	req = c.newRequest(op, input, output)
2492	return
2493}
2494
2495// CreateJob API operation for AWS IoT.
2496//
2497// Creates a job.
2498//
2499// Requires permission to access the CreateJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
2500// action.
2501//
2502// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2503// with awserr.Error's Code and Message methods to get detailed information about
2504// the error.
2505//
2506// See the AWS API reference guide for AWS IoT's
2507// API operation CreateJob for usage and error information.
2508//
2509// Returned Error Types:
2510//   * InvalidRequestException
2511//   The request is not valid.
2512//
2513//   * ResourceNotFoundException
2514//   The specified resource does not exist.
2515//
2516//   * ResourceAlreadyExistsException
2517//   The resource already exists.
2518//
2519//   * LimitExceededException
2520//   A limit has been exceeded.
2521//
2522//   * ThrottlingException
2523//   The rate exceeds the limit.
2524//
2525//   * ServiceUnavailableException
2526//   The service is temporarily unavailable.
2527//
2528func (c *IoT) CreateJob(input *CreateJobInput) (*CreateJobOutput, error) {
2529	req, out := c.CreateJobRequest(input)
2530	return out, req.Send()
2531}
2532
2533// CreateJobWithContext is the same as CreateJob with the addition of
2534// the ability to pass a context and additional request options.
2535//
2536// See CreateJob 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) CreateJobWithContext(ctx aws.Context, input *CreateJobInput, opts ...request.Option) (*CreateJobOutput, error) {
2543	req, out := c.CreateJobRequest(input)
2544	req.SetContext(ctx)
2545	req.ApplyOptions(opts...)
2546	return out, req.Send()
2547}
2548
2549const opCreateJobTemplate = "CreateJobTemplate"
2550
2551// CreateJobTemplateRequest generates a "aws/request.Request" representing the
2552// client's request for the CreateJobTemplate 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 CreateJobTemplate for more information on using the CreateJobTemplate
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 CreateJobTemplateRequest method.
2567//    req, resp := client.CreateJobTemplateRequest(params)
2568//
2569//    err := req.Send()
2570//    if err == nil { // resp is now filled
2571//        fmt.Println(resp)
2572//    }
2573func (c *IoT) CreateJobTemplateRequest(input *CreateJobTemplateInput) (req *request.Request, output *CreateJobTemplateOutput) {
2574	op := &request.Operation{
2575		Name:       opCreateJobTemplate,
2576		HTTPMethod: "PUT",
2577		HTTPPath:   "/job-templates/{jobTemplateId}",
2578	}
2579
2580	if input == nil {
2581		input = &CreateJobTemplateInput{}
2582	}
2583
2584	output = &CreateJobTemplateOutput{}
2585	req = c.newRequest(op, input, output)
2586	return
2587}
2588
2589// CreateJobTemplate API operation for AWS IoT.
2590//
2591// Creates a job template.
2592//
2593// Requires permission to access the CreateJobTemplate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
2594// action.
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 CreateJobTemplate for usage and error information.
2602//
2603// Returned Error Types:
2604//   * InvalidRequestException
2605//   The request is not valid.
2606//
2607//   * ResourceNotFoundException
2608//   The specified resource does not exist.
2609//
2610//   * ConflictException
2611//   A resource with the same name already exists.
2612//
2613//   * LimitExceededException
2614//   A limit has been exceeded.
2615//
2616//   * ThrottlingException
2617//   The rate exceeds the limit.
2618//
2619//   * InternalFailureException
2620//   An unexpected error has occurred.
2621//
2622func (c *IoT) CreateJobTemplate(input *CreateJobTemplateInput) (*CreateJobTemplateOutput, error) {
2623	req, out := c.CreateJobTemplateRequest(input)
2624	return out, req.Send()
2625}
2626
2627// CreateJobTemplateWithContext is the same as CreateJobTemplate with the addition of
2628// the ability to pass a context and additional request options.
2629//
2630// See CreateJobTemplate for details on how to use this API operation.
2631//
2632// The context must be non-nil and will be used for request cancellation. If
2633// the context is nil a panic will occur. In the future the SDK may create
2634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2635// for more information on using Contexts.
2636func (c *IoT) CreateJobTemplateWithContext(ctx aws.Context, input *CreateJobTemplateInput, opts ...request.Option) (*CreateJobTemplateOutput, error) {
2637	req, out := c.CreateJobTemplateRequest(input)
2638	req.SetContext(ctx)
2639	req.ApplyOptions(opts...)
2640	return out, req.Send()
2641}
2642
2643const opCreateKeysAndCertificate = "CreateKeysAndCertificate"
2644
2645// CreateKeysAndCertificateRequest generates a "aws/request.Request" representing the
2646// client's request for the CreateKeysAndCertificate operation. The "output" return
2647// value will be populated with the request's response once the request completes
2648// successfully.
2649//
2650// Use "Send" method on the returned Request to send the API call to the service.
2651// the "output" return value is not valid until after Send returns without error.
2652//
2653// See CreateKeysAndCertificate for more information on using the CreateKeysAndCertificate
2654// API call, and error handling.
2655//
2656// This method is useful when you want to inject custom logic or configuration
2657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2658//
2659//
2660//    // Example sending a request using the CreateKeysAndCertificateRequest method.
2661//    req, resp := client.CreateKeysAndCertificateRequest(params)
2662//
2663//    err := req.Send()
2664//    if err == nil { // resp is now filled
2665//        fmt.Println(resp)
2666//    }
2667func (c *IoT) CreateKeysAndCertificateRequest(input *CreateKeysAndCertificateInput) (req *request.Request, output *CreateKeysAndCertificateOutput) {
2668	op := &request.Operation{
2669		Name:       opCreateKeysAndCertificate,
2670		HTTPMethod: "POST",
2671		HTTPPath:   "/keys-and-certificate",
2672	}
2673
2674	if input == nil {
2675		input = &CreateKeysAndCertificateInput{}
2676	}
2677
2678	output = &CreateKeysAndCertificateOutput{}
2679	req = c.newRequest(op, input, output)
2680	return
2681}
2682
2683// CreateKeysAndCertificate API operation for AWS IoT.
2684//
2685// Creates a 2048-bit RSA key pair and issues an X.509 certificate using the
2686// issued public key. You can also call CreateKeysAndCertificate over MQTT from
2687// a device, for more information, see Provisioning MQTT API (https://docs.aws.amazon.com/iot/latest/developerguide/provision-wo-cert.html#provision-mqtt-api).
2688//
2689// Note This is the only time IoT issues the private key for this certificate,
2690// so it is important to keep it in a secure location.
2691//
2692// Requires permission to access the CreateKeysAndCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
2693// action.
2694//
2695// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2696// with awserr.Error's Code and Message methods to get detailed information about
2697// the error.
2698//
2699// See the AWS API reference guide for AWS IoT's
2700// API operation CreateKeysAndCertificate for usage and error information.
2701//
2702// Returned Error Types:
2703//   * InvalidRequestException
2704//   The request is not valid.
2705//
2706//   * ThrottlingException
2707//   The rate exceeds the limit.
2708//
2709//   * UnauthorizedException
2710//   You are not authorized to perform this operation.
2711//
2712//   * ServiceUnavailableException
2713//   The service is temporarily unavailable.
2714//
2715//   * InternalFailureException
2716//   An unexpected error has occurred.
2717//
2718func (c *IoT) CreateKeysAndCertificate(input *CreateKeysAndCertificateInput) (*CreateKeysAndCertificateOutput, error) {
2719	req, out := c.CreateKeysAndCertificateRequest(input)
2720	return out, req.Send()
2721}
2722
2723// CreateKeysAndCertificateWithContext is the same as CreateKeysAndCertificate with the addition of
2724// the ability to pass a context and additional request options.
2725//
2726// See CreateKeysAndCertificate for details on how to use this API operation.
2727//
2728// The context must be non-nil and will be used for request cancellation. If
2729// the context is nil a panic will occur. In the future the SDK may create
2730// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2731// for more information on using Contexts.
2732func (c *IoT) CreateKeysAndCertificateWithContext(ctx aws.Context, input *CreateKeysAndCertificateInput, opts ...request.Option) (*CreateKeysAndCertificateOutput, error) {
2733	req, out := c.CreateKeysAndCertificateRequest(input)
2734	req.SetContext(ctx)
2735	req.ApplyOptions(opts...)
2736	return out, req.Send()
2737}
2738
2739const opCreateMitigationAction = "CreateMitigationAction"
2740
2741// CreateMitigationActionRequest generates a "aws/request.Request" representing the
2742// client's request for the CreateMitigationAction operation. The "output" return
2743// value will be populated with the request's response once the request completes
2744// successfully.
2745//
2746// Use "Send" method on the returned Request to send the API call to the service.
2747// the "output" return value is not valid until after Send returns without error.
2748//
2749// See CreateMitigationAction for more information on using the CreateMitigationAction
2750// API call, and error handling.
2751//
2752// This method is useful when you want to inject custom logic or configuration
2753// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2754//
2755//
2756//    // Example sending a request using the CreateMitigationActionRequest method.
2757//    req, resp := client.CreateMitigationActionRequest(params)
2758//
2759//    err := req.Send()
2760//    if err == nil { // resp is now filled
2761//        fmt.Println(resp)
2762//    }
2763func (c *IoT) CreateMitigationActionRequest(input *CreateMitigationActionInput) (req *request.Request, output *CreateMitigationActionOutput) {
2764	op := &request.Operation{
2765		Name:       opCreateMitigationAction,
2766		HTTPMethod: "POST",
2767		HTTPPath:   "/mitigationactions/actions/{actionName}",
2768	}
2769
2770	if input == nil {
2771		input = &CreateMitigationActionInput{}
2772	}
2773
2774	output = &CreateMitigationActionOutput{}
2775	req = c.newRequest(op, input, output)
2776	return
2777}
2778
2779// CreateMitigationAction API operation for AWS IoT.
2780//
2781// Defines an action that can be applied to audit findings by using StartAuditMitigationActionsTask.
2782// Only certain types of mitigation actions can be applied to specific check
2783// names. For more information, see Mitigation actions (https://docs.aws.amazon.com/iot/latest/developerguide/device-defender-mitigation-actions.html).
2784// Each mitigation action can apply only one type of change.
2785//
2786// Requires permission to access the CreateMitigationAction (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
2787// action.
2788//
2789// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2790// with awserr.Error's Code and Message methods to get detailed information about
2791// the error.
2792//
2793// See the AWS API reference guide for AWS IoT's
2794// API operation CreateMitigationAction for usage and error information.
2795//
2796// Returned Error Types:
2797//   * InvalidRequestException
2798//   The request is not valid.
2799//
2800//   * ResourceAlreadyExistsException
2801//   The resource already exists.
2802//
2803//   * LimitExceededException
2804//   A limit has been exceeded.
2805//
2806//   * ThrottlingException
2807//   The rate exceeds the limit.
2808//
2809//   * InternalFailureException
2810//   An unexpected error has occurred.
2811//
2812func (c *IoT) CreateMitigationAction(input *CreateMitigationActionInput) (*CreateMitigationActionOutput, error) {
2813	req, out := c.CreateMitigationActionRequest(input)
2814	return out, req.Send()
2815}
2816
2817// CreateMitigationActionWithContext is the same as CreateMitigationAction with the addition of
2818// the ability to pass a context and additional request options.
2819//
2820// See CreateMitigationAction for details on how to use this API operation.
2821//
2822// The context must be non-nil and will be used for request cancellation. If
2823// the context is nil a panic will occur. In the future the SDK may create
2824// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2825// for more information on using Contexts.
2826func (c *IoT) CreateMitigationActionWithContext(ctx aws.Context, input *CreateMitigationActionInput, opts ...request.Option) (*CreateMitigationActionOutput, error) {
2827	req, out := c.CreateMitigationActionRequest(input)
2828	req.SetContext(ctx)
2829	req.ApplyOptions(opts...)
2830	return out, req.Send()
2831}
2832
2833const opCreateOTAUpdate = "CreateOTAUpdate"
2834
2835// CreateOTAUpdateRequest generates a "aws/request.Request" representing the
2836// client's request for the CreateOTAUpdate operation. The "output" return
2837// value will be populated with the request's response once the request completes
2838// successfully.
2839//
2840// Use "Send" method on the returned Request to send the API call to the service.
2841// the "output" return value is not valid until after Send returns without error.
2842//
2843// See CreateOTAUpdate for more information on using the CreateOTAUpdate
2844// API call, and error handling.
2845//
2846// This method is useful when you want to inject custom logic or configuration
2847// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2848//
2849//
2850//    // Example sending a request using the CreateOTAUpdateRequest method.
2851//    req, resp := client.CreateOTAUpdateRequest(params)
2852//
2853//    err := req.Send()
2854//    if err == nil { // resp is now filled
2855//        fmt.Println(resp)
2856//    }
2857func (c *IoT) CreateOTAUpdateRequest(input *CreateOTAUpdateInput) (req *request.Request, output *CreateOTAUpdateOutput) {
2858	op := &request.Operation{
2859		Name:       opCreateOTAUpdate,
2860		HTTPMethod: "POST",
2861		HTTPPath:   "/otaUpdates/{otaUpdateId}",
2862	}
2863
2864	if input == nil {
2865		input = &CreateOTAUpdateInput{}
2866	}
2867
2868	output = &CreateOTAUpdateOutput{}
2869	req = c.newRequest(op, input, output)
2870	return
2871}
2872
2873// CreateOTAUpdate API operation for AWS IoT.
2874//
2875// Creates an IoT OTA update on a target group of things or groups.
2876//
2877// Requires permission to access the CreateOTAUpdate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
2878// action.
2879//
2880// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2881// with awserr.Error's Code and Message methods to get detailed information about
2882// the error.
2883//
2884// See the AWS API reference guide for AWS IoT's
2885// API operation CreateOTAUpdate for usage and error information.
2886//
2887// Returned Error Types:
2888//   * InvalidRequestException
2889//   The request is not valid.
2890//
2891//   * LimitExceededException
2892//   A limit has been exceeded.
2893//
2894//   * ResourceNotFoundException
2895//   The specified resource does not exist.
2896//
2897//   * ResourceAlreadyExistsException
2898//   The resource already exists.
2899//
2900//   * ThrottlingException
2901//   The rate exceeds the limit.
2902//
2903//   * UnauthorizedException
2904//   You are not authorized to perform this operation.
2905//
2906//   * InternalFailureException
2907//   An unexpected error has occurred.
2908//
2909//   * ServiceUnavailableException
2910//   The service is temporarily unavailable.
2911//
2912func (c *IoT) CreateOTAUpdate(input *CreateOTAUpdateInput) (*CreateOTAUpdateOutput, error) {
2913	req, out := c.CreateOTAUpdateRequest(input)
2914	return out, req.Send()
2915}
2916
2917// CreateOTAUpdateWithContext is the same as CreateOTAUpdate with the addition of
2918// the ability to pass a context and additional request options.
2919//
2920// See CreateOTAUpdate for details on how to use this API operation.
2921//
2922// The context must be non-nil and will be used for request cancellation. If
2923// the context is nil a panic will occur. In the future the SDK may create
2924// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2925// for more information on using Contexts.
2926func (c *IoT) CreateOTAUpdateWithContext(ctx aws.Context, input *CreateOTAUpdateInput, opts ...request.Option) (*CreateOTAUpdateOutput, error) {
2927	req, out := c.CreateOTAUpdateRequest(input)
2928	req.SetContext(ctx)
2929	req.ApplyOptions(opts...)
2930	return out, req.Send()
2931}
2932
2933const opCreatePolicy = "CreatePolicy"
2934
2935// CreatePolicyRequest generates a "aws/request.Request" representing the
2936// client's request for the CreatePolicy operation. The "output" return
2937// value will be populated with the request's response once the request completes
2938// successfully.
2939//
2940// Use "Send" method on the returned Request to send the API call to the service.
2941// the "output" return value is not valid until after Send returns without error.
2942//
2943// See CreatePolicy for more information on using the CreatePolicy
2944// API call, and error handling.
2945//
2946// This method is useful when you want to inject custom logic or configuration
2947// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2948//
2949//
2950//    // Example sending a request using the CreatePolicyRequest method.
2951//    req, resp := client.CreatePolicyRequest(params)
2952//
2953//    err := req.Send()
2954//    if err == nil { // resp is now filled
2955//        fmt.Println(resp)
2956//    }
2957func (c *IoT) CreatePolicyRequest(input *CreatePolicyInput) (req *request.Request, output *CreatePolicyOutput) {
2958	op := &request.Operation{
2959		Name:       opCreatePolicy,
2960		HTTPMethod: "POST",
2961		HTTPPath:   "/policies/{policyName}",
2962	}
2963
2964	if input == nil {
2965		input = &CreatePolicyInput{}
2966	}
2967
2968	output = &CreatePolicyOutput{}
2969	req = c.newRequest(op, input, output)
2970	return
2971}
2972
2973// CreatePolicy API operation for AWS IoT.
2974//
2975// Creates an IoT policy.
2976//
2977// The created policy is the default version for the policy. This operation
2978// creates a policy version with a version identifier of 1 and sets 1 as the
2979// policy's default version.
2980//
2981// Requires permission to access the CreatePolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
2982// action.
2983//
2984// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2985// with awserr.Error's Code and Message methods to get detailed information about
2986// the error.
2987//
2988// See the AWS API reference guide for AWS IoT's
2989// API operation CreatePolicy for usage and error information.
2990//
2991// Returned Error Types:
2992//   * ResourceAlreadyExistsException
2993//   The resource already exists.
2994//
2995//   * MalformedPolicyException
2996//   The policy documentation is not valid.
2997//
2998//   * InvalidRequestException
2999//   The request is not valid.
3000//
3001//   * ThrottlingException
3002//   The rate exceeds the limit.
3003//
3004//   * UnauthorizedException
3005//   You are not authorized to perform this operation.
3006//
3007//   * ServiceUnavailableException
3008//   The service is temporarily unavailable.
3009//
3010//   * InternalFailureException
3011//   An unexpected error has occurred.
3012//
3013func (c *IoT) CreatePolicy(input *CreatePolicyInput) (*CreatePolicyOutput, error) {
3014	req, out := c.CreatePolicyRequest(input)
3015	return out, req.Send()
3016}
3017
3018// CreatePolicyWithContext is the same as CreatePolicy with the addition of
3019// the ability to pass a context and additional request options.
3020//
3021// See CreatePolicy for details on how to use this API operation.
3022//
3023// The context must be non-nil and will be used for request cancellation. If
3024// the context is nil a panic will occur. In the future the SDK may create
3025// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3026// for more information on using Contexts.
3027func (c *IoT) CreatePolicyWithContext(ctx aws.Context, input *CreatePolicyInput, opts ...request.Option) (*CreatePolicyOutput, error) {
3028	req, out := c.CreatePolicyRequest(input)
3029	req.SetContext(ctx)
3030	req.ApplyOptions(opts...)
3031	return out, req.Send()
3032}
3033
3034const opCreatePolicyVersion = "CreatePolicyVersion"
3035
3036// CreatePolicyVersionRequest generates a "aws/request.Request" representing the
3037// client's request for the CreatePolicyVersion operation. The "output" return
3038// value will be populated with the request's response once the request completes
3039// successfully.
3040//
3041// Use "Send" method on the returned Request to send the API call to the service.
3042// the "output" return value is not valid until after Send returns without error.
3043//
3044// See CreatePolicyVersion for more information on using the CreatePolicyVersion
3045// API call, and error handling.
3046//
3047// This method is useful when you want to inject custom logic or configuration
3048// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3049//
3050//
3051//    // Example sending a request using the CreatePolicyVersionRequest method.
3052//    req, resp := client.CreatePolicyVersionRequest(params)
3053//
3054//    err := req.Send()
3055//    if err == nil { // resp is now filled
3056//        fmt.Println(resp)
3057//    }
3058func (c *IoT) CreatePolicyVersionRequest(input *CreatePolicyVersionInput) (req *request.Request, output *CreatePolicyVersionOutput) {
3059	op := &request.Operation{
3060		Name:       opCreatePolicyVersion,
3061		HTTPMethod: "POST",
3062		HTTPPath:   "/policies/{policyName}/version",
3063	}
3064
3065	if input == nil {
3066		input = &CreatePolicyVersionInput{}
3067	}
3068
3069	output = &CreatePolicyVersionOutput{}
3070	req = c.newRequest(op, input, output)
3071	return
3072}
3073
3074// CreatePolicyVersion API operation for AWS IoT.
3075//
3076// Creates a new version of the specified IoT policy. To update a policy, create
3077// a new policy version. A managed policy can have up to five versions. If the
3078// policy has five versions, you must use DeletePolicyVersion to delete an existing
3079// version before you create a new one.
3080//
3081// Optionally, you can set the new version as the policy's default version.
3082// The default version is the operative version (that is, the version that is
3083// in effect for the certificates to which the policy is attached).
3084//
3085// Requires permission to access the CreatePolicyVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
3086// action.
3087//
3088// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3089// with awserr.Error's Code and Message methods to get detailed information about
3090// the error.
3091//
3092// See the AWS API reference guide for AWS IoT's
3093// API operation CreatePolicyVersion for usage and error information.
3094//
3095// Returned Error Types:
3096//   * ResourceNotFoundException
3097//   The specified resource does not exist.
3098//
3099//   * MalformedPolicyException
3100//   The policy documentation is not valid.
3101//
3102//   * VersionsLimitExceededException
3103//   The number of policy versions exceeds the limit.
3104//
3105//   * InvalidRequestException
3106//   The request is not valid.
3107//
3108//   * ThrottlingException
3109//   The rate exceeds the limit.
3110//
3111//   * UnauthorizedException
3112//   You are not authorized to perform this operation.
3113//
3114//   * ServiceUnavailableException
3115//   The service is temporarily unavailable.
3116//
3117//   * InternalFailureException
3118//   An unexpected error has occurred.
3119//
3120func (c *IoT) CreatePolicyVersion(input *CreatePolicyVersionInput) (*CreatePolicyVersionOutput, error) {
3121	req, out := c.CreatePolicyVersionRequest(input)
3122	return out, req.Send()
3123}
3124
3125// CreatePolicyVersionWithContext is the same as CreatePolicyVersion with the addition of
3126// the ability to pass a context and additional request options.
3127//
3128// See CreatePolicyVersion for details on how to use this API operation.
3129//
3130// The context must be non-nil and will be used for request cancellation. If
3131// the context is nil a panic will occur. In the future the SDK may create
3132// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3133// for more information on using Contexts.
3134func (c *IoT) CreatePolicyVersionWithContext(ctx aws.Context, input *CreatePolicyVersionInput, opts ...request.Option) (*CreatePolicyVersionOutput, error) {
3135	req, out := c.CreatePolicyVersionRequest(input)
3136	req.SetContext(ctx)
3137	req.ApplyOptions(opts...)
3138	return out, req.Send()
3139}
3140
3141const opCreateProvisioningClaim = "CreateProvisioningClaim"
3142
3143// CreateProvisioningClaimRequest generates a "aws/request.Request" representing the
3144// client's request for the CreateProvisioningClaim operation. The "output" return
3145// value will be populated with the request's response once the request completes
3146// successfully.
3147//
3148// Use "Send" method on the returned Request to send the API call to the service.
3149// the "output" return value is not valid until after Send returns without error.
3150//
3151// See CreateProvisioningClaim for more information on using the CreateProvisioningClaim
3152// API call, and error handling.
3153//
3154// This method is useful when you want to inject custom logic or configuration
3155// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3156//
3157//
3158//    // Example sending a request using the CreateProvisioningClaimRequest method.
3159//    req, resp := client.CreateProvisioningClaimRequest(params)
3160//
3161//    err := req.Send()
3162//    if err == nil { // resp is now filled
3163//        fmt.Println(resp)
3164//    }
3165func (c *IoT) CreateProvisioningClaimRequest(input *CreateProvisioningClaimInput) (req *request.Request, output *CreateProvisioningClaimOutput) {
3166	op := &request.Operation{
3167		Name:       opCreateProvisioningClaim,
3168		HTTPMethod: "POST",
3169		HTTPPath:   "/provisioning-templates/{templateName}/provisioning-claim",
3170	}
3171
3172	if input == nil {
3173		input = &CreateProvisioningClaimInput{}
3174	}
3175
3176	output = &CreateProvisioningClaimOutput{}
3177	req = c.newRequest(op, input, output)
3178	return
3179}
3180
3181// CreateProvisioningClaim API operation for AWS IoT.
3182//
3183// Creates a provisioning claim.
3184//
3185// Requires permission to access the CreateProvisioningClaim (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
3186// action.
3187//
3188// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3189// with awserr.Error's Code and Message methods to get detailed information about
3190// the error.
3191//
3192// See the AWS API reference guide for AWS IoT's
3193// API operation CreateProvisioningClaim for usage and error information.
3194//
3195// Returned Error Types:
3196//   * InvalidRequestException
3197//   The request is not valid.
3198//
3199//   * ResourceNotFoundException
3200//   The specified resource does not exist.
3201//
3202//   * ThrottlingException
3203//   The rate exceeds the limit.
3204//
3205//   * UnauthorizedException
3206//   You are not authorized to perform this operation.
3207//
3208//   * ServiceUnavailableException
3209//   The service is temporarily unavailable.
3210//
3211//   * InternalFailureException
3212//   An unexpected error has occurred.
3213//
3214func (c *IoT) CreateProvisioningClaim(input *CreateProvisioningClaimInput) (*CreateProvisioningClaimOutput, error) {
3215	req, out := c.CreateProvisioningClaimRequest(input)
3216	return out, req.Send()
3217}
3218
3219// CreateProvisioningClaimWithContext is the same as CreateProvisioningClaim with the addition of
3220// the ability to pass a context and additional request options.
3221//
3222// See CreateProvisioningClaim for details on how to use this API operation.
3223//
3224// The context must be non-nil and will be used for request cancellation. If
3225// the context is nil a panic will occur. In the future the SDK may create
3226// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3227// for more information on using Contexts.
3228func (c *IoT) CreateProvisioningClaimWithContext(ctx aws.Context, input *CreateProvisioningClaimInput, opts ...request.Option) (*CreateProvisioningClaimOutput, error) {
3229	req, out := c.CreateProvisioningClaimRequest(input)
3230	req.SetContext(ctx)
3231	req.ApplyOptions(opts...)
3232	return out, req.Send()
3233}
3234
3235const opCreateProvisioningTemplate = "CreateProvisioningTemplate"
3236
3237// CreateProvisioningTemplateRequest generates a "aws/request.Request" representing the
3238// client's request for the CreateProvisioningTemplate operation. The "output" return
3239// value will be populated with the request's response once the request completes
3240// successfully.
3241//
3242// Use "Send" method on the returned Request to send the API call to the service.
3243// the "output" return value is not valid until after Send returns without error.
3244//
3245// See CreateProvisioningTemplate for more information on using the CreateProvisioningTemplate
3246// API call, and error handling.
3247//
3248// This method is useful when you want to inject custom logic or configuration
3249// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3250//
3251//
3252//    // Example sending a request using the CreateProvisioningTemplateRequest method.
3253//    req, resp := client.CreateProvisioningTemplateRequest(params)
3254//
3255//    err := req.Send()
3256//    if err == nil { // resp is now filled
3257//        fmt.Println(resp)
3258//    }
3259func (c *IoT) CreateProvisioningTemplateRequest(input *CreateProvisioningTemplateInput) (req *request.Request, output *CreateProvisioningTemplateOutput) {
3260	op := &request.Operation{
3261		Name:       opCreateProvisioningTemplate,
3262		HTTPMethod: "POST",
3263		HTTPPath:   "/provisioning-templates",
3264	}
3265
3266	if input == nil {
3267		input = &CreateProvisioningTemplateInput{}
3268	}
3269
3270	output = &CreateProvisioningTemplateOutput{}
3271	req = c.newRequest(op, input, output)
3272	return
3273}
3274
3275// CreateProvisioningTemplate API operation for AWS IoT.
3276//
3277// Creates a fleet provisioning template.
3278//
3279// Requires permission to access the CreateProvisioningTemplate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
3280// action.
3281//
3282// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3283// with awserr.Error's Code and Message methods to get detailed information about
3284// the error.
3285//
3286// See the AWS API reference guide for AWS IoT's
3287// API operation CreateProvisioningTemplate for usage and error information.
3288//
3289// Returned Error Types:
3290//   * InternalFailureException
3291//   An unexpected error has occurred.
3292//
3293//   * InvalidRequestException
3294//   The request is not valid.
3295//
3296//   * LimitExceededException
3297//   A limit has been exceeded.
3298//
3299//   * ThrottlingException
3300//   The rate exceeds the limit.
3301//
3302//   * UnauthorizedException
3303//   You are not authorized to perform this operation.
3304//
3305//   * ResourceAlreadyExistsException
3306//   The resource already exists.
3307//
3308func (c *IoT) CreateProvisioningTemplate(input *CreateProvisioningTemplateInput) (*CreateProvisioningTemplateOutput, error) {
3309	req, out := c.CreateProvisioningTemplateRequest(input)
3310	return out, req.Send()
3311}
3312
3313// CreateProvisioningTemplateWithContext is the same as CreateProvisioningTemplate with the addition of
3314// the ability to pass a context and additional request options.
3315//
3316// See CreateProvisioningTemplate for details on how to use this API operation.
3317//
3318// The context must be non-nil and will be used for request cancellation. If
3319// the context is nil a panic will occur. In the future the SDK may create
3320// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3321// for more information on using Contexts.
3322func (c *IoT) CreateProvisioningTemplateWithContext(ctx aws.Context, input *CreateProvisioningTemplateInput, opts ...request.Option) (*CreateProvisioningTemplateOutput, error) {
3323	req, out := c.CreateProvisioningTemplateRequest(input)
3324	req.SetContext(ctx)
3325	req.ApplyOptions(opts...)
3326	return out, req.Send()
3327}
3328
3329const opCreateProvisioningTemplateVersion = "CreateProvisioningTemplateVersion"
3330
3331// CreateProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
3332// client's request for the CreateProvisioningTemplateVersion operation. The "output" return
3333// value will be populated with the request's response once the request completes
3334// successfully.
3335//
3336// Use "Send" method on the returned Request to send the API call to the service.
3337// the "output" return value is not valid until after Send returns without error.
3338//
3339// See CreateProvisioningTemplateVersion for more information on using the CreateProvisioningTemplateVersion
3340// API call, and error handling.
3341//
3342// This method is useful when you want to inject custom logic or configuration
3343// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3344//
3345//
3346//    // Example sending a request using the CreateProvisioningTemplateVersionRequest method.
3347//    req, resp := client.CreateProvisioningTemplateVersionRequest(params)
3348//
3349//    err := req.Send()
3350//    if err == nil { // resp is now filled
3351//        fmt.Println(resp)
3352//    }
3353func (c *IoT) CreateProvisioningTemplateVersionRequest(input *CreateProvisioningTemplateVersionInput) (req *request.Request, output *CreateProvisioningTemplateVersionOutput) {
3354	op := &request.Operation{
3355		Name:       opCreateProvisioningTemplateVersion,
3356		HTTPMethod: "POST",
3357		HTTPPath:   "/provisioning-templates/{templateName}/versions",
3358	}
3359
3360	if input == nil {
3361		input = &CreateProvisioningTemplateVersionInput{}
3362	}
3363
3364	output = &CreateProvisioningTemplateVersionOutput{}
3365	req = c.newRequest(op, input, output)
3366	return
3367}
3368
3369// CreateProvisioningTemplateVersion API operation for AWS IoT.
3370//
3371// Creates a new version of a fleet provisioning template.
3372//
3373// Requires permission to access the CreateProvisioningTemplateVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
3374// action.
3375//
3376// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3377// with awserr.Error's Code and Message methods to get detailed information about
3378// the error.
3379//
3380// See the AWS API reference guide for AWS IoT's
3381// API operation CreateProvisioningTemplateVersion for usage and error information.
3382//
3383// Returned Error Types:
3384//   * VersionsLimitExceededException
3385//   The number of policy versions exceeds the limit.
3386//
3387//   * InternalFailureException
3388//   An unexpected error has occurred.
3389//
3390//   * InvalidRequestException
3391//   The request is not valid.
3392//
3393//   * ThrottlingException
3394//   The rate exceeds the limit.
3395//
3396//   * ResourceNotFoundException
3397//   The specified resource does not exist.
3398//
3399//   * UnauthorizedException
3400//   You are not authorized to perform this operation.
3401//
3402//   * ConflictingResourceUpdateException
3403//   A conflicting resource update exception. This exception is thrown when two
3404//   pending updates cause a conflict.
3405//
3406func (c *IoT) CreateProvisioningTemplateVersion(input *CreateProvisioningTemplateVersionInput) (*CreateProvisioningTemplateVersionOutput, error) {
3407	req, out := c.CreateProvisioningTemplateVersionRequest(input)
3408	return out, req.Send()
3409}
3410
3411// CreateProvisioningTemplateVersionWithContext is the same as CreateProvisioningTemplateVersion with the addition of
3412// the ability to pass a context and additional request options.
3413//
3414// See CreateProvisioningTemplateVersion for details on how to use this API operation.
3415//
3416// The context must be non-nil and will be used for request cancellation. If
3417// the context is nil a panic will occur. In the future the SDK may create
3418// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3419// for more information on using Contexts.
3420func (c *IoT) CreateProvisioningTemplateVersionWithContext(ctx aws.Context, input *CreateProvisioningTemplateVersionInput, opts ...request.Option) (*CreateProvisioningTemplateVersionOutput, error) {
3421	req, out := c.CreateProvisioningTemplateVersionRequest(input)
3422	req.SetContext(ctx)
3423	req.ApplyOptions(opts...)
3424	return out, req.Send()
3425}
3426
3427const opCreateRoleAlias = "CreateRoleAlias"
3428
3429// CreateRoleAliasRequest generates a "aws/request.Request" representing the
3430// client's request for the CreateRoleAlias operation. The "output" return
3431// value will be populated with the request's response once the request completes
3432// successfully.
3433//
3434// Use "Send" method on the returned Request to send the API call to the service.
3435// the "output" return value is not valid until after Send returns without error.
3436//
3437// See CreateRoleAlias for more information on using the CreateRoleAlias
3438// API call, and error handling.
3439//
3440// This method is useful when you want to inject custom logic or configuration
3441// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3442//
3443//
3444//    // Example sending a request using the CreateRoleAliasRequest method.
3445//    req, resp := client.CreateRoleAliasRequest(params)
3446//
3447//    err := req.Send()
3448//    if err == nil { // resp is now filled
3449//        fmt.Println(resp)
3450//    }
3451func (c *IoT) CreateRoleAliasRequest(input *CreateRoleAliasInput) (req *request.Request, output *CreateRoleAliasOutput) {
3452	op := &request.Operation{
3453		Name:       opCreateRoleAlias,
3454		HTTPMethod: "POST",
3455		HTTPPath:   "/role-aliases/{roleAlias}",
3456	}
3457
3458	if input == nil {
3459		input = &CreateRoleAliasInput{}
3460	}
3461
3462	output = &CreateRoleAliasOutput{}
3463	req = c.newRequest(op, input, output)
3464	return
3465}
3466
3467// CreateRoleAlias API operation for AWS IoT.
3468//
3469// Creates a role alias.
3470//
3471// Requires permission to access the CreateRoleAlias (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
3472// action.
3473//
3474// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3475// with awserr.Error's Code and Message methods to get detailed information about
3476// the error.
3477//
3478// See the AWS API reference guide for AWS IoT's
3479// API operation CreateRoleAlias for usage and error information.
3480//
3481// Returned Error Types:
3482//   * ResourceAlreadyExistsException
3483//   The resource already exists.
3484//
3485//   * InvalidRequestException
3486//   The request is not valid.
3487//
3488//   * LimitExceededException
3489//   A limit has been exceeded.
3490//
3491//   * ThrottlingException
3492//   The rate exceeds the limit.
3493//
3494//   * UnauthorizedException
3495//   You are not authorized to perform this operation.
3496//
3497//   * ServiceUnavailableException
3498//   The service is temporarily unavailable.
3499//
3500//   * InternalFailureException
3501//   An unexpected error has occurred.
3502//
3503func (c *IoT) CreateRoleAlias(input *CreateRoleAliasInput) (*CreateRoleAliasOutput, error) {
3504	req, out := c.CreateRoleAliasRequest(input)
3505	return out, req.Send()
3506}
3507
3508// CreateRoleAliasWithContext is the same as CreateRoleAlias with the addition of
3509// the ability to pass a context and additional request options.
3510//
3511// See CreateRoleAlias for details on how to use this API operation.
3512//
3513// The context must be non-nil and will be used for request cancellation. If
3514// the context is nil a panic will occur. In the future the SDK may create
3515// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3516// for more information on using Contexts.
3517func (c *IoT) CreateRoleAliasWithContext(ctx aws.Context, input *CreateRoleAliasInput, opts ...request.Option) (*CreateRoleAliasOutput, error) {
3518	req, out := c.CreateRoleAliasRequest(input)
3519	req.SetContext(ctx)
3520	req.ApplyOptions(opts...)
3521	return out, req.Send()
3522}
3523
3524const opCreateScheduledAudit = "CreateScheduledAudit"
3525
3526// CreateScheduledAuditRequest generates a "aws/request.Request" representing the
3527// client's request for the CreateScheduledAudit operation. The "output" return
3528// value will be populated with the request's response once the request completes
3529// successfully.
3530//
3531// Use "Send" method on the returned Request to send the API call to the service.
3532// the "output" return value is not valid until after Send returns without error.
3533//
3534// See CreateScheduledAudit for more information on using the CreateScheduledAudit
3535// API call, and error handling.
3536//
3537// This method is useful when you want to inject custom logic or configuration
3538// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3539//
3540//
3541//    // Example sending a request using the CreateScheduledAuditRequest method.
3542//    req, resp := client.CreateScheduledAuditRequest(params)
3543//
3544//    err := req.Send()
3545//    if err == nil { // resp is now filled
3546//        fmt.Println(resp)
3547//    }
3548func (c *IoT) CreateScheduledAuditRequest(input *CreateScheduledAuditInput) (req *request.Request, output *CreateScheduledAuditOutput) {
3549	op := &request.Operation{
3550		Name:       opCreateScheduledAudit,
3551		HTTPMethod: "POST",
3552		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
3553	}
3554
3555	if input == nil {
3556		input = &CreateScheduledAuditInput{}
3557	}
3558
3559	output = &CreateScheduledAuditOutput{}
3560	req = c.newRequest(op, input, output)
3561	return
3562}
3563
3564// CreateScheduledAudit API operation for AWS IoT.
3565//
3566// Creates a scheduled audit that is run at a specified time interval.
3567//
3568// Requires permission to access the CreateScheduledAudit (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
3569// action.
3570//
3571// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3572// with awserr.Error's Code and Message methods to get detailed information about
3573// the error.
3574//
3575// See the AWS API reference guide for AWS IoT's
3576// API operation CreateScheduledAudit for usage and error information.
3577//
3578// Returned Error Types:
3579//   * InvalidRequestException
3580//   The request is not valid.
3581//
3582//   * ResourceAlreadyExistsException
3583//   The resource already exists.
3584//
3585//   * ThrottlingException
3586//   The rate exceeds the limit.
3587//
3588//   * InternalFailureException
3589//   An unexpected error has occurred.
3590//
3591//   * LimitExceededException
3592//   A limit has been exceeded.
3593//
3594func (c *IoT) CreateScheduledAudit(input *CreateScheduledAuditInput) (*CreateScheduledAuditOutput, error) {
3595	req, out := c.CreateScheduledAuditRequest(input)
3596	return out, req.Send()
3597}
3598
3599// CreateScheduledAuditWithContext is the same as CreateScheduledAudit with the addition of
3600// the ability to pass a context and additional request options.
3601//
3602// See CreateScheduledAudit for details on how to use this API operation.
3603//
3604// The context must be non-nil and will be used for request cancellation. If
3605// the context is nil a panic will occur. In the future the SDK may create
3606// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3607// for more information on using Contexts.
3608func (c *IoT) CreateScheduledAuditWithContext(ctx aws.Context, input *CreateScheduledAuditInput, opts ...request.Option) (*CreateScheduledAuditOutput, error) {
3609	req, out := c.CreateScheduledAuditRequest(input)
3610	req.SetContext(ctx)
3611	req.ApplyOptions(opts...)
3612	return out, req.Send()
3613}
3614
3615const opCreateSecurityProfile = "CreateSecurityProfile"
3616
3617// CreateSecurityProfileRequest generates a "aws/request.Request" representing the
3618// client's request for the CreateSecurityProfile operation. The "output" return
3619// value will be populated with the request's response once the request completes
3620// successfully.
3621//
3622// Use "Send" method on the returned Request to send the API call to the service.
3623// the "output" return value is not valid until after Send returns without error.
3624//
3625// See CreateSecurityProfile for more information on using the CreateSecurityProfile
3626// API call, and error handling.
3627//
3628// This method is useful when you want to inject custom logic or configuration
3629// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3630//
3631//
3632//    // Example sending a request using the CreateSecurityProfileRequest method.
3633//    req, resp := client.CreateSecurityProfileRequest(params)
3634//
3635//    err := req.Send()
3636//    if err == nil { // resp is now filled
3637//        fmt.Println(resp)
3638//    }
3639func (c *IoT) CreateSecurityProfileRequest(input *CreateSecurityProfileInput) (req *request.Request, output *CreateSecurityProfileOutput) {
3640	op := &request.Operation{
3641		Name:       opCreateSecurityProfile,
3642		HTTPMethod: "POST",
3643		HTTPPath:   "/security-profiles/{securityProfileName}",
3644	}
3645
3646	if input == nil {
3647		input = &CreateSecurityProfileInput{}
3648	}
3649
3650	output = &CreateSecurityProfileOutput{}
3651	req = c.newRequest(op, input, output)
3652	return
3653}
3654
3655// CreateSecurityProfile API operation for AWS IoT.
3656//
3657// Creates a Device Defender security profile.
3658//
3659// Requires permission to access the CreateSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
3660// action.
3661//
3662// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3663// with awserr.Error's Code and Message methods to get detailed information about
3664// the error.
3665//
3666// See the AWS API reference guide for AWS IoT's
3667// API operation CreateSecurityProfile for usage and error information.
3668//
3669// Returned Error Types:
3670//   * InvalidRequestException
3671//   The request is not valid.
3672//
3673//   * ResourceAlreadyExistsException
3674//   The resource already exists.
3675//
3676//   * ThrottlingException
3677//   The rate exceeds the limit.
3678//
3679//   * InternalFailureException
3680//   An unexpected error has occurred.
3681//
3682func (c *IoT) CreateSecurityProfile(input *CreateSecurityProfileInput) (*CreateSecurityProfileOutput, error) {
3683	req, out := c.CreateSecurityProfileRequest(input)
3684	return out, req.Send()
3685}
3686
3687// CreateSecurityProfileWithContext is the same as CreateSecurityProfile with the addition of
3688// the ability to pass a context and additional request options.
3689//
3690// See CreateSecurityProfile for details on how to use this API operation.
3691//
3692// The context must be non-nil and will be used for request cancellation. If
3693// the context is nil a panic will occur. In the future the SDK may create
3694// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3695// for more information on using Contexts.
3696func (c *IoT) CreateSecurityProfileWithContext(ctx aws.Context, input *CreateSecurityProfileInput, opts ...request.Option) (*CreateSecurityProfileOutput, error) {
3697	req, out := c.CreateSecurityProfileRequest(input)
3698	req.SetContext(ctx)
3699	req.ApplyOptions(opts...)
3700	return out, req.Send()
3701}
3702
3703const opCreateStream = "CreateStream"
3704
3705// CreateStreamRequest generates a "aws/request.Request" representing the
3706// client's request for the CreateStream operation. The "output" return
3707// value will be populated with the request's response once the request completes
3708// successfully.
3709//
3710// Use "Send" method on the returned Request to send the API call to the service.
3711// the "output" return value is not valid until after Send returns without error.
3712//
3713// See CreateStream for more information on using the CreateStream
3714// API call, and error handling.
3715//
3716// This method is useful when you want to inject custom logic or configuration
3717// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3718//
3719//
3720//    // Example sending a request using the CreateStreamRequest method.
3721//    req, resp := client.CreateStreamRequest(params)
3722//
3723//    err := req.Send()
3724//    if err == nil { // resp is now filled
3725//        fmt.Println(resp)
3726//    }
3727func (c *IoT) CreateStreamRequest(input *CreateStreamInput) (req *request.Request, output *CreateStreamOutput) {
3728	op := &request.Operation{
3729		Name:       opCreateStream,
3730		HTTPMethod: "POST",
3731		HTTPPath:   "/streams/{streamId}",
3732	}
3733
3734	if input == nil {
3735		input = &CreateStreamInput{}
3736	}
3737
3738	output = &CreateStreamOutput{}
3739	req = c.newRequest(op, input, output)
3740	return
3741}
3742
3743// CreateStream API operation for AWS IoT.
3744//
3745// Creates a stream for delivering one or more large files in chunks over MQTT.
3746// A stream transports data bytes in chunks or blocks packaged as MQTT messages
3747// from a source like S3. You can have one or more files associated with a stream.
3748//
3749// Requires permission to access the CreateStream (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
3750// action.
3751//
3752// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3753// with awserr.Error's Code and Message methods to get detailed information about
3754// the error.
3755//
3756// See the AWS API reference guide for AWS IoT's
3757// API operation CreateStream for usage and error information.
3758//
3759// Returned Error Types:
3760//   * InvalidRequestException
3761//   The request is not valid.
3762//
3763//   * LimitExceededException
3764//   A limit has been exceeded.
3765//
3766//   * ResourceNotFoundException
3767//   The specified resource does not exist.
3768//
3769//   * ResourceAlreadyExistsException
3770//   The resource already exists.
3771//
3772//   * ThrottlingException
3773//   The rate exceeds the limit.
3774//
3775//   * UnauthorizedException
3776//   You are not authorized to perform this operation.
3777//
3778//   * ServiceUnavailableException
3779//   The service is temporarily unavailable.
3780//
3781//   * InternalFailureException
3782//   An unexpected error has occurred.
3783//
3784func (c *IoT) CreateStream(input *CreateStreamInput) (*CreateStreamOutput, error) {
3785	req, out := c.CreateStreamRequest(input)
3786	return out, req.Send()
3787}
3788
3789// CreateStreamWithContext is the same as CreateStream with the addition of
3790// the ability to pass a context and additional request options.
3791//
3792// See CreateStream for details on how to use this API operation.
3793//
3794// The context must be non-nil and will be used for request cancellation. If
3795// the context is nil a panic will occur. In the future the SDK may create
3796// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3797// for more information on using Contexts.
3798func (c *IoT) CreateStreamWithContext(ctx aws.Context, input *CreateStreamInput, opts ...request.Option) (*CreateStreamOutput, error) {
3799	req, out := c.CreateStreamRequest(input)
3800	req.SetContext(ctx)
3801	req.ApplyOptions(opts...)
3802	return out, req.Send()
3803}
3804
3805const opCreateThing = "CreateThing"
3806
3807// CreateThingRequest generates a "aws/request.Request" representing the
3808// client's request for the CreateThing operation. The "output" return
3809// value will be populated with the request's response once the request completes
3810// successfully.
3811//
3812// Use "Send" method on the returned Request to send the API call to the service.
3813// the "output" return value is not valid until after Send returns without error.
3814//
3815// See CreateThing for more information on using the CreateThing
3816// API call, and error handling.
3817//
3818// This method is useful when you want to inject custom logic or configuration
3819// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3820//
3821//
3822//    // Example sending a request using the CreateThingRequest method.
3823//    req, resp := client.CreateThingRequest(params)
3824//
3825//    err := req.Send()
3826//    if err == nil { // resp is now filled
3827//        fmt.Println(resp)
3828//    }
3829func (c *IoT) CreateThingRequest(input *CreateThingInput) (req *request.Request, output *CreateThingOutput) {
3830	op := &request.Operation{
3831		Name:       opCreateThing,
3832		HTTPMethod: "POST",
3833		HTTPPath:   "/things/{thingName}",
3834	}
3835
3836	if input == nil {
3837		input = &CreateThingInput{}
3838	}
3839
3840	output = &CreateThingOutput{}
3841	req = c.newRequest(op, input, output)
3842	return
3843}
3844
3845// CreateThing API operation for AWS IoT.
3846//
3847// Creates a thing record in the registry. If this call is made multiple times
3848// using the same thing name and configuration, the call will succeed. If this
3849// call is made with the same thing name but different configuration a ResourceAlreadyExistsException
3850// is thrown.
3851//
3852// This is a control plane operation. See Authorization (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html)
3853// for information about authorizing control plane actions.
3854//
3855// Requires permission to access the CreateThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
3856// action.
3857//
3858// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3859// with awserr.Error's Code and Message methods to get detailed information about
3860// the error.
3861//
3862// See the AWS API reference guide for AWS IoT's
3863// API operation CreateThing for usage and error information.
3864//
3865// Returned Error Types:
3866//   * InvalidRequestException
3867//   The request is not valid.
3868//
3869//   * ThrottlingException
3870//   The rate exceeds the limit.
3871//
3872//   * UnauthorizedException
3873//   You are not authorized to perform this operation.
3874//
3875//   * ServiceUnavailableException
3876//   The service is temporarily unavailable.
3877//
3878//   * InternalFailureException
3879//   An unexpected error has occurred.
3880//
3881//   * ResourceAlreadyExistsException
3882//   The resource already exists.
3883//
3884//   * ResourceNotFoundException
3885//   The specified resource does not exist.
3886//
3887func (c *IoT) CreateThing(input *CreateThingInput) (*CreateThingOutput, error) {
3888	req, out := c.CreateThingRequest(input)
3889	return out, req.Send()
3890}
3891
3892// CreateThingWithContext is the same as CreateThing with the addition of
3893// the ability to pass a context and additional request options.
3894//
3895// See CreateThing for details on how to use this API operation.
3896//
3897// The context must be non-nil and will be used for request cancellation. If
3898// the context is nil a panic will occur. In the future the SDK may create
3899// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3900// for more information on using Contexts.
3901func (c *IoT) CreateThingWithContext(ctx aws.Context, input *CreateThingInput, opts ...request.Option) (*CreateThingOutput, error) {
3902	req, out := c.CreateThingRequest(input)
3903	req.SetContext(ctx)
3904	req.ApplyOptions(opts...)
3905	return out, req.Send()
3906}
3907
3908const opCreateThingGroup = "CreateThingGroup"
3909
3910// CreateThingGroupRequest generates a "aws/request.Request" representing the
3911// client's request for the CreateThingGroup operation. The "output" return
3912// value will be populated with the request's response once the request completes
3913// successfully.
3914//
3915// Use "Send" method on the returned Request to send the API call to the service.
3916// the "output" return value is not valid until after Send returns without error.
3917//
3918// See CreateThingGroup for more information on using the CreateThingGroup
3919// API call, and error handling.
3920//
3921// This method is useful when you want to inject custom logic or configuration
3922// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3923//
3924//
3925//    // Example sending a request using the CreateThingGroupRequest method.
3926//    req, resp := client.CreateThingGroupRequest(params)
3927//
3928//    err := req.Send()
3929//    if err == nil { // resp is now filled
3930//        fmt.Println(resp)
3931//    }
3932func (c *IoT) CreateThingGroupRequest(input *CreateThingGroupInput) (req *request.Request, output *CreateThingGroupOutput) {
3933	op := &request.Operation{
3934		Name:       opCreateThingGroup,
3935		HTTPMethod: "POST",
3936		HTTPPath:   "/thing-groups/{thingGroupName}",
3937	}
3938
3939	if input == nil {
3940		input = &CreateThingGroupInput{}
3941	}
3942
3943	output = &CreateThingGroupOutput{}
3944	req = c.newRequest(op, input, output)
3945	return
3946}
3947
3948// CreateThingGroup API operation for AWS IoT.
3949//
3950// Create a thing group.
3951//
3952// This is a control plane operation. See Authorization (https://docs.aws.amazon.com/iot/latest/developerguide/iot-authorization.html)
3953// for information about authorizing control plane actions.
3954//
3955// Requires permission to access the CreateThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
3956// action.
3957//
3958// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3959// with awserr.Error's Code and Message methods to get detailed information about
3960// the error.
3961//
3962// See the AWS API reference guide for AWS IoT's
3963// API operation CreateThingGroup for usage and error information.
3964//
3965// Returned Error Types:
3966//   * InvalidRequestException
3967//   The request is not valid.
3968//
3969//   * ResourceAlreadyExistsException
3970//   The resource already exists.
3971//
3972//   * ThrottlingException
3973//   The rate exceeds the limit.
3974//
3975//   * InternalFailureException
3976//   An unexpected error has occurred.
3977//
3978func (c *IoT) CreateThingGroup(input *CreateThingGroupInput) (*CreateThingGroupOutput, error) {
3979	req, out := c.CreateThingGroupRequest(input)
3980	return out, req.Send()
3981}
3982
3983// CreateThingGroupWithContext is the same as CreateThingGroup with the addition of
3984// the ability to pass a context and additional request options.
3985//
3986// See CreateThingGroup for details on how to use this API operation.
3987//
3988// The context must be non-nil and will be used for request cancellation. If
3989// the context is nil a panic will occur. In the future the SDK may create
3990// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3991// for more information on using Contexts.
3992func (c *IoT) CreateThingGroupWithContext(ctx aws.Context, input *CreateThingGroupInput, opts ...request.Option) (*CreateThingGroupOutput, error) {
3993	req, out := c.CreateThingGroupRequest(input)
3994	req.SetContext(ctx)
3995	req.ApplyOptions(opts...)
3996	return out, req.Send()
3997}
3998
3999const opCreateThingType = "CreateThingType"
4000
4001// CreateThingTypeRequest generates a "aws/request.Request" representing the
4002// client's request for the CreateThingType operation. The "output" return
4003// value will be populated with the request's response once the request completes
4004// successfully.
4005//
4006// Use "Send" method on the returned Request to send the API call to the service.
4007// the "output" return value is not valid until after Send returns without error.
4008//
4009// See CreateThingType for more information on using the CreateThingType
4010// API call, and error handling.
4011//
4012// This method is useful when you want to inject custom logic or configuration
4013// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4014//
4015//
4016//    // Example sending a request using the CreateThingTypeRequest method.
4017//    req, resp := client.CreateThingTypeRequest(params)
4018//
4019//    err := req.Send()
4020//    if err == nil { // resp is now filled
4021//        fmt.Println(resp)
4022//    }
4023func (c *IoT) CreateThingTypeRequest(input *CreateThingTypeInput) (req *request.Request, output *CreateThingTypeOutput) {
4024	op := &request.Operation{
4025		Name:       opCreateThingType,
4026		HTTPMethod: "POST",
4027		HTTPPath:   "/thing-types/{thingTypeName}",
4028	}
4029
4030	if input == nil {
4031		input = &CreateThingTypeInput{}
4032	}
4033
4034	output = &CreateThingTypeOutput{}
4035	req = c.newRequest(op, input, output)
4036	return
4037}
4038
4039// CreateThingType API operation for AWS IoT.
4040//
4041// Creates a new thing type.
4042//
4043// Requires permission to access the CreateThingType (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
4044// action.
4045//
4046// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4047// with awserr.Error's Code and Message methods to get detailed information about
4048// the error.
4049//
4050// See the AWS API reference guide for AWS IoT's
4051// API operation CreateThingType for usage and error information.
4052//
4053// Returned Error Types:
4054//   * InvalidRequestException
4055//   The request is not valid.
4056//
4057//   * ThrottlingException
4058//   The rate exceeds the limit.
4059//
4060//   * UnauthorizedException
4061//   You are not authorized to perform this operation.
4062//
4063//   * ServiceUnavailableException
4064//   The service is temporarily unavailable.
4065//
4066//   * InternalFailureException
4067//   An unexpected error has occurred.
4068//
4069//   * ResourceAlreadyExistsException
4070//   The resource already exists.
4071//
4072func (c *IoT) CreateThingType(input *CreateThingTypeInput) (*CreateThingTypeOutput, error) {
4073	req, out := c.CreateThingTypeRequest(input)
4074	return out, req.Send()
4075}
4076
4077// CreateThingTypeWithContext is the same as CreateThingType with the addition of
4078// the ability to pass a context and additional request options.
4079//
4080// See CreateThingType for details on how to use this API operation.
4081//
4082// The context must be non-nil and will be used for request cancellation. If
4083// the context is nil a panic will occur. In the future the SDK may create
4084// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4085// for more information on using Contexts.
4086func (c *IoT) CreateThingTypeWithContext(ctx aws.Context, input *CreateThingTypeInput, opts ...request.Option) (*CreateThingTypeOutput, error) {
4087	req, out := c.CreateThingTypeRequest(input)
4088	req.SetContext(ctx)
4089	req.ApplyOptions(opts...)
4090	return out, req.Send()
4091}
4092
4093const opCreateTopicRule = "CreateTopicRule"
4094
4095// CreateTopicRuleRequest generates a "aws/request.Request" representing the
4096// client's request for the CreateTopicRule operation. The "output" return
4097// value will be populated with the request's response once the request completes
4098// successfully.
4099//
4100// Use "Send" method on the returned Request to send the API call to the service.
4101// the "output" return value is not valid until after Send returns without error.
4102//
4103// See CreateTopicRule for more information on using the CreateTopicRule
4104// API call, and error handling.
4105//
4106// This method is useful when you want to inject custom logic or configuration
4107// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4108//
4109//
4110//    // Example sending a request using the CreateTopicRuleRequest method.
4111//    req, resp := client.CreateTopicRuleRequest(params)
4112//
4113//    err := req.Send()
4114//    if err == nil { // resp is now filled
4115//        fmt.Println(resp)
4116//    }
4117func (c *IoT) CreateTopicRuleRequest(input *CreateTopicRuleInput) (req *request.Request, output *CreateTopicRuleOutput) {
4118	op := &request.Operation{
4119		Name:       opCreateTopicRule,
4120		HTTPMethod: "POST",
4121		HTTPPath:   "/rules/{ruleName}",
4122	}
4123
4124	if input == nil {
4125		input = &CreateTopicRuleInput{}
4126	}
4127
4128	output = &CreateTopicRuleOutput{}
4129	req = c.newRequest(op, input, output)
4130	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4131	return
4132}
4133
4134// CreateTopicRule API operation for AWS IoT.
4135//
4136// Creates a rule. Creating rules is an administrator-level action. Any user
4137// who has permission to create rules will be able to access data processed
4138// by the rule.
4139//
4140// Requires permission to access the CreateTopicRule (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
4141// action.
4142//
4143// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4144// with awserr.Error's Code and Message methods to get detailed information about
4145// the error.
4146//
4147// See the AWS API reference guide for AWS IoT's
4148// API operation CreateTopicRule for usage and error information.
4149//
4150// Returned Error Types:
4151//   * SqlParseException
4152//   The Rule-SQL expression can't be parsed correctly.
4153//
4154//   * InternalException
4155//   An unexpected error has occurred.
4156//
4157//   * InvalidRequestException
4158//   The request is not valid.
4159//
4160//   * ResourceAlreadyExistsException
4161//   The resource already exists.
4162//
4163//   * ServiceUnavailableException
4164//   The service is temporarily unavailable.
4165//
4166//   * ConflictingResourceUpdateException
4167//   A conflicting resource update exception. This exception is thrown when two
4168//   pending updates cause a conflict.
4169//
4170func (c *IoT) CreateTopicRule(input *CreateTopicRuleInput) (*CreateTopicRuleOutput, error) {
4171	req, out := c.CreateTopicRuleRequest(input)
4172	return out, req.Send()
4173}
4174
4175// CreateTopicRuleWithContext is the same as CreateTopicRule with the addition of
4176// the ability to pass a context and additional request options.
4177//
4178// See CreateTopicRule for details on how to use this API operation.
4179//
4180// The context must be non-nil and will be used for request cancellation. If
4181// the context is nil a panic will occur. In the future the SDK may create
4182// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4183// for more information on using Contexts.
4184func (c *IoT) CreateTopicRuleWithContext(ctx aws.Context, input *CreateTopicRuleInput, opts ...request.Option) (*CreateTopicRuleOutput, error) {
4185	req, out := c.CreateTopicRuleRequest(input)
4186	req.SetContext(ctx)
4187	req.ApplyOptions(opts...)
4188	return out, req.Send()
4189}
4190
4191const opCreateTopicRuleDestination = "CreateTopicRuleDestination"
4192
4193// CreateTopicRuleDestinationRequest generates a "aws/request.Request" representing the
4194// client's request for the CreateTopicRuleDestination operation. The "output" return
4195// value will be populated with the request's response once the request completes
4196// successfully.
4197//
4198// Use "Send" method on the returned Request to send the API call to the service.
4199// the "output" return value is not valid until after Send returns without error.
4200//
4201// See CreateTopicRuleDestination for more information on using the CreateTopicRuleDestination
4202// API call, and error handling.
4203//
4204// This method is useful when you want to inject custom logic or configuration
4205// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4206//
4207//
4208//    // Example sending a request using the CreateTopicRuleDestinationRequest method.
4209//    req, resp := client.CreateTopicRuleDestinationRequest(params)
4210//
4211//    err := req.Send()
4212//    if err == nil { // resp is now filled
4213//        fmt.Println(resp)
4214//    }
4215func (c *IoT) CreateTopicRuleDestinationRequest(input *CreateTopicRuleDestinationInput) (req *request.Request, output *CreateTopicRuleDestinationOutput) {
4216	op := &request.Operation{
4217		Name:       opCreateTopicRuleDestination,
4218		HTTPMethod: "POST",
4219		HTTPPath:   "/destinations",
4220	}
4221
4222	if input == nil {
4223		input = &CreateTopicRuleDestinationInput{}
4224	}
4225
4226	output = &CreateTopicRuleDestinationOutput{}
4227	req = c.newRequest(op, input, output)
4228	return
4229}
4230
4231// CreateTopicRuleDestination API operation for AWS IoT.
4232//
4233// Creates a topic rule destination. The destination must be confirmed prior
4234// to use.
4235//
4236// Requires permission to access the CreateTopicRuleDestination (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
4237// action.
4238//
4239// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4240// with awserr.Error's Code and Message methods to get detailed information about
4241// the error.
4242//
4243// See the AWS API reference guide for AWS IoT's
4244// API operation CreateTopicRuleDestination for usage and error information.
4245//
4246// Returned Error Types:
4247//   * InternalException
4248//   An unexpected error has occurred.
4249//
4250//   * InvalidRequestException
4251//   The request is not valid.
4252//
4253//   * ResourceAlreadyExistsException
4254//   The resource already exists.
4255//
4256//   * ServiceUnavailableException
4257//   The service is temporarily unavailable.
4258//
4259//   * ConflictingResourceUpdateException
4260//   A conflicting resource update exception. This exception is thrown when two
4261//   pending updates cause a conflict.
4262//
4263func (c *IoT) CreateTopicRuleDestination(input *CreateTopicRuleDestinationInput) (*CreateTopicRuleDestinationOutput, error) {
4264	req, out := c.CreateTopicRuleDestinationRequest(input)
4265	return out, req.Send()
4266}
4267
4268// CreateTopicRuleDestinationWithContext is the same as CreateTopicRuleDestination with the addition of
4269// the ability to pass a context and additional request options.
4270//
4271// See CreateTopicRuleDestination for details on how to use this API operation.
4272//
4273// The context must be non-nil and will be used for request cancellation. If
4274// the context is nil a panic will occur. In the future the SDK may create
4275// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4276// for more information on using Contexts.
4277func (c *IoT) CreateTopicRuleDestinationWithContext(ctx aws.Context, input *CreateTopicRuleDestinationInput, opts ...request.Option) (*CreateTopicRuleDestinationOutput, error) {
4278	req, out := c.CreateTopicRuleDestinationRequest(input)
4279	req.SetContext(ctx)
4280	req.ApplyOptions(opts...)
4281	return out, req.Send()
4282}
4283
4284const opDeleteAccountAuditConfiguration = "DeleteAccountAuditConfiguration"
4285
4286// DeleteAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
4287// client's request for the DeleteAccountAuditConfiguration operation. The "output" return
4288// value will be populated with the request's response once the request completes
4289// successfully.
4290//
4291// Use "Send" method on the returned Request to send the API call to the service.
4292// the "output" return value is not valid until after Send returns without error.
4293//
4294// See DeleteAccountAuditConfiguration for more information on using the DeleteAccountAuditConfiguration
4295// API call, and error handling.
4296//
4297// This method is useful when you want to inject custom logic or configuration
4298// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4299//
4300//
4301//    // Example sending a request using the DeleteAccountAuditConfigurationRequest method.
4302//    req, resp := client.DeleteAccountAuditConfigurationRequest(params)
4303//
4304//    err := req.Send()
4305//    if err == nil { // resp is now filled
4306//        fmt.Println(resp)
4307//    }
4308func (c *IoT) DeleteAccountAuditConfigurationRequest(input *DeleteAccountAuditConfigurationInput) (req *request.Request, output *DeleteAccountAuditConfigurationOutput) {
4309	op := &request.Operation{
4310		Name:       opDeleteAccountAuditConfiguration,
4311		HTTPMethod: "DELETE",
4312		HTTPPath:   "/audit/configuration",
4313	}
4314
4315	if input == nil {
4316		input = &DeleteAccountAuditConfigurationInput{}
4317	}
4318
4319	output = &DeleteAccountAuditConfigurationOutput{}
4320	req = c.newRequest(op, input, output)
4321	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4322	return
4323}
4324
4325// DeleteAccountAuditConfiguration API operation for AWS IoT.
4326//
4327// Restores the default settings for Device Defender audits for this account.
4328// Any configuration data you entered is deleted and all audit checks are reset
4329// to disabled.
4330//
4331// Requires permission to access the DeleteAccountAuditConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
4332// action.
4333//
4334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4335// with awserr.Error's Code and Message methods to get detailed information about
4336// the error.
4337//
4338// See the AWS API reference guide for AWS IoT's
4339// API operation DeleteAccountAuditConfiguration for usage and error information.
4340//
4341// Returned Error Types:
4342//   * InvalidRequestException
4343//   The request is not valid.
4344//
4345//   * ResourceNotFoundException
4346//   The specified resource does not exist.
4347//
4348//   * ThrottlingException
4349//   The rate exceeds the limit.
4350//
4351//   * InternalFailureException
4352//   An unexpected error has occurred.
4353//
4354func (c *IoT) DeleteAccountAuditConfiguration(input *DeleteAccountAuditConfigurationInput) (*DeleteAccountAuditConfigurationOutput, error) {
4355	req, out := c.DeleteAccountAuditConfigurationRequest(input)
4356	return out, req.Send()
4357}
4358
4359// DeleteAccountAuditConfigurationWithContext is the same as DeleteAccountAuditConfiguration with the addition of
4360// the ability to pass a context and additional request options.
4361//
4362// See DeleteAccountAuditConfiguration for details on how to use this API operation.
4363//
4364// The context must be non-nil and will be used for request cancellation. If
4365// the context is nil a panic will occur. In the future the SDK may create
4366// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4367// for more information on using Contexts.
4368func (c *IoT) DeleteAccountAuditConfigurationWithContext(ctx aws.Context, input *DeleteAccountAuditConfigurationInput, opts ...request.Option) (*DeleteAccountAuditConfigurationOutput, error) {
4369	req, out := c.DeleteAccountAuditConfigurationRequest(input)
4370	req.SetContext(ctx)
4371	req.ApplyOptions(opts...)
4372	return out, req.Send()
4373}
4374
4375const opDeleteAuditSuppression = "DeleteAuditSuppression"
4376
4377// DeleteAuditSuppressionRequest generates a "aws/request.Request" representing the
4378// client's request for the DeleteAuditSuppression operation. The "output" return
4379// value will be populated with the request's response once the request completes
4380// successfully.
4381//
4382// Use "Send" method on the returned Request to send the API call to the service.
4383// the "output" return value is not valid until after Send returns without error.
4384//
4385// See DeleteAuditSuppression for more information on using the DeleteAuditSuppression
4386// API call, and error handling.
4387//
4388// This method is useful when you want to inject custom logic or configuration
4389// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4390//
4391//
4392//    // Example sending a request using the DeleteAuditSuppressionRequest method.
4393//    req, resp := client.DeleteAuditSuppressionRequest(params)
4394//
4395//    err := req.Send()
4396//    if err == nil { // resp is now filled
4397//        fmt.Println(resp)
4398//    }
4399func (c *IoT) DeleteAuditSuppressionRequest(input *DeleteAuditSuppressionInput) (req *request.Request, output *DeleteAuditSuppressionOutput) {
4400	op := &request.Operation{
4401		Name:       opDeleteAuditSuppression,
4402		HTTPMethod: "POST",
4403		HTTPPath:   "/audit/suppressions/delete",
4404	}
4405
4406	if input == nil {
4407		input = &DeleteAuditSuppressionInput{}
4408	}
4409
4410	output = &DeleteAuditSuppressionOutput{}
4411	req = c.newRequest(op, input, output)
4412	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4413	return
4414}
4415
4416// DeleteAuditSuppression API operation for AWS IoT.
4417//
4418// Deletes a Device Defender audit suppression.
4419//
4420// Requires permission to access the DeleteAuditSuppression (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
4421// action.
4422//
4423// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4424// with awserr.Error's Code and Message methods to get detailed information about
4425// the error.
4426//
4427// See the AWS API reference guide for AWS IoT's
4428// API operation DeleteAuditSuppression for usage and error information.
4429//
4430// Returned Error Types:
4431//   * InvalidRequestException
4432//   The request is not valid.
4433//
4434//   * ThrottlingException
4435//   The rate exceeds the limit.
4436//
4437//   * InternalFailureException
4438//   An unexpected error has occurred.
4439//
4440func (c *IoT) DeleteAuditSuppression(input *DeleteAuditSuppressionInput) (*DeleteAuditSuppressionOutput, error) {
4441	req, out := c.DeleteAuditSuppressionRequest(input)
4442	return out, req.Send()
4443}
4444
4445// DeleteAuditSuppressionWithContext is the same as DeleteAuditSuppression with the addition of
4446// the ability to pass a context and additional request options.
4447//
4448// See DeleteAuditSuppression for details on how to use this API operation.
4449//
4450// The context must be non-nil and will be used for request cancellation. If
4451// the context is nil a panic will occur. In the future the SDK may create
4452// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4453// for more information on using Contexts.
4454func (c *IoT) DeleteAuditSuppressionWithContext(ctx aws.Context, input *DeleteAuditSuppressionInput, opts ...request.Option) (*DeleteAuditSuppressionOutput, error) {
4455	req, out := c.DeleteAuditSuppressionRequest(input)
4456	req.SetContext(ctx)
4457	req.ApplyOptions(opts...)
4458	return out, req.Send()
4459}
4460
4461const opDeleteAuthorizer = "DeleteAuthorizer"
4462
4463// DeleteAuthorizerRequest generates a "aws/request.Request" representing the
4464// client's request for the DeleteAuthorizer operation. The "output" return
4465// value will be populated with the request's response once the request completes
4466// successfully.
4467//
4468// Use "Send" method on the returned Request to send the API call to the service.
4469// the "output" return value is not valid until after Send returns without error.
4470//
4471// See DeleteAuthorizer for more information on using the DeleteAuthorizer
4472// API call, and error handling.
4473//
4474// This method is useful when you want to inject custom logic or configuration
4475// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4476//
4477//
4478//    // Example sending a request using the DeleteAuthorizerRequest method.
4479//    req, resp := client.DeleteAuthorizerRequest(params)
4480//
4481//    err := req.Send()
4482//    if err == nil { // resp is now filled
4483//        fmt.Println(resp)
4484//    }
4485func (c *IoT) DeleteAuthorizerRequest(input *DeleteAuthorizerInput) (req *request.Request, output *DeleteAuthorizerOutput) {
4486	op := &request.Operation{
4487		Name:       opDeleteAuthorizer,
4488		HTTPMethod: "DELETE",
4489		HTTPPath:   "/authorizer/{authorizerName}",
4490	}
4491
4492	if input == nil {
4493		input = &DeleteAuthorizerInput{}
4494	}
4495
4496	output = &DeleteAuthorizerOutput{}
4497	req = c.newRequest(op, input, output)
4498	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4499	return
4500}
4501
4502// DeleteAuthorizer API operation for AWS IoT.
4503//
4504// Deletes an authorizer.
4505//
4506// Requires permission to access the DeleteAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
4507// action.
4508//
4509// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4510// with awserr.Error's Code and Message methods to get detailed information about
4511// the error.
4512//
4513// See the AWS API reference guide for AWS IoT's
4514// API operation DeleteAuthorizer for usage and error information.
4515//
4516// Returned Error Types:
4517//   * DeleteConflictException
4518//   You can't delete the resource because it is attached to one or more resources.
4519//
4520//   * ResourceNotFoundException
4521//   The specified resource does not exist.
4522//
4523//   * InvalidRequestException
4524//   The request is not valid.
4525//
4526//   * ThrottlingException
4527//   The rate exceeds the limit.
4528//
4529//   * UnauthorizedException
4530//   You are not authorized to perform this operation.
4531//
4532//   * ServiceUnavailableException
4533//   The service is temporarily unavailable.
4534//
4535//   * InternalFailureException
4536//   An unexpected error has occurred.
4537//
4538func (c *IoT) DeleteAuthorizer(input *DeleteAuthorizerInput) (*DeleteAuthorizerOutput, error) {
4539	req, out := c.DeleteAuthorizerRequest(input)
4540	return out, req.Send()
4541}
4542
4543// DeleteAuthorizerWithContext is the same as DeleteAuthorizer with the addition of
4544// the ability to pass a context and additional request options.
4545//
4546// See DeleteAuthorizer for details on how to use this API operation.
4547//
4548// The context must be non-nil and will be used for request cancellation. If
4549// the context is nil a panic will occur. In the future the SDK may create
4550// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4551// for more information on using Contexts.
4552func (c *IoT) DeleteAuthorizerWithContext(ctx aws.Context, input *DeleteAuthorizerInput, opts ...request.Option) (*DeleteAuthorizerOutput, error) {
4553	req, out := c.DeleteAuthorizerRequest(input)
4554	req.SetContext(ctx)
4555	req.ApplyOptions(opts...)
4556	return out, req.Send()
4557}
4558
4559const opDeleteBillingGroup = "DeleteBillingGroup"
4560
4561// DeleteBillingGroupRequest generates a "aws/request.Request" representing the
4562// client's request for the DeleteBillingGroup operation. The "output" return
4563// value will be populated with the request's response once the request completes
4564// successfully.
4565//
4566// Use "Send" method on the returned Request to send the API call to the service.
4567// the "output" return value is not valid until after Send returns without error.
4568//
4569// See DeleteBillingGroup for more information on using the DeleteBillingGroup
4570// API call, and error handling.
4571//
4572// This method is useful when you want to inject custom logic or configuration
4573// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4574//
4575//
4576//    // Example sending a request using the DeleteBillingGroupRequest method.
4577//    req, resp := client.DeleteBillingGroupRequest(params)
4578//
4579//    err := req.Send()
4580//    if err == nil { // resp is now filled
4581//        fmt.Println(resp)
4582//    }
4583func (c *IoT) DeleteBillingGroupRequest(input *DeleteBillingGroupInput) (req *request.Request, output *DeleteBillingGroupOutput) {
4584	op := &request.Operation{
4585		Name:       opDeleteBillingGroup,
4586		HTTPMethod: "DELETE",
4587		HTTPPath:   "/billing-groups/{billingGroupName}",
4588	}
4589
4590	if input == nil {
4591		input = &DeleteBillingGroupInput{}
4592	}
4593
4594	output = &DeleteBillingGroupOutput{}
4595	req = c.newRequest(op, input, output)
4596	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4597	return
4598}
4599
4600// DeleteBillingGroup API operation for AWS IoT.
4601//
4602// Deletes the billing group.
4603//
4604// Requires permission to access the DeleteBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
4605// action.
4606//
4607// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4608// with awserr.Error's Code and Message methods to get detailed information about
4609// the error.
4610//
4611// See the AWS API reference guide for AWS IoT's
4612// API operation DeleteBillingGroup for usage and error information.
4613//
4614// Returned Error Types:
4615//   * InvalidRequestException
4616//   The request is not valid.
4617//
4618//   * VersionConflictException
4619//   An exception thrown when the version of an entity specified with the expectedVersion
4620//   parameter does not match the latest version in the system.
4621//
4622//   * ThrottlingException
4623//   The rate exceeds the limit.
4624//
4625//   * InternalFailureException
4626//   An unexpected error has occurred.
4627//
4628func (c *IoT) DeleteBillingGroup(input *DeleteBillingGroupInput) (*DeleteBillingGroupOutput, error) {
4629	req, out := c.DeleteBillingGroupRequest(input)
4630	return out, req.Send()
4631}
4632
4633// DeleteBillingGroupWithContext is the same as DeleteBillingGroup with the addition of
4634// the ability to pass a context and additional request options.
4635//
4636// See DeleteBillingGroup for details on how to use this API operation.
4637//
4638// The context must be non-nil and will be used for request cancellation. If
4639// the context is nil a panic will occur. In the future the SDK may create
4640// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4641// for more information on using Contexts.
4642func (c *IoT) DeleteBillingGroupWithContext(ctx aws.Context, input *DeleteBillingGroupInput, opts ...request.Option) (*DeleteBillingGroupOutput, error) {
4643	req, out := c.DeleteBillingGroupRequest(input)
4644	req.SetContext(ctx)
4645	req.ApplyOptions(opts...)
4646	return out, req.Send()
4647}
4648
4649const opDeleteCACertificate = "DeleteCACertificate"
4650
4651// DeleteCACertificateRequest generates a "aws/request.Request" representing the
4652// client's request for the DeleteCACertificate operation. The "output" return
4653// value will be populated with the request's response once the request completes
4654// successfully.
4655//
4656// Use "Send" method on the returned Request to send the API call to the service.
4657// the "output" return value is not valid until after Send returns without error.
4658//
4659// See DeleteCACertificate for more information on using the DeleteCACertificate
4660// API call, and error handling.
4661//
4662// This method is useful when you want to inject custom logic or configuration
4663// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4664//
4665//
4666//    // Example sending a request using the DeleteCACertificateRequest method.
4667//    req, resp := client.DeleteCACertificateRequest(params)
4668//
4669//    err := req.Send()
4670//    if err == nil { // resp is now filled
4671//        fmt.Println(resp)
4672//    }
4673func (c *IoT) DeleteCACertificateRequest(input *DeleteCACertificateInput) (req *request.Request, output *DeleteCACertificateOutput) {
4674	op := &request.Operation{
4675		Name:       opDeleteCACertificate,
4676		HTTPMethod: "DELETE",
4677		HTTPPath:   "/cacertificate/{caCertificateId}",
4678	}
4679
4680	if input == nil {
4681		input = &DeleteCACertificateInput{}
4682	}
4683
4684	output = &DeleteCACertificateOutput{}
4685	req = c.newRequest(op, input, output)
4686	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4687	return
4688}
4689
4690// DeleteCACertificate API operation for AWS IoT.
4691//
4692// Deletes a registered CA certificate.
4693//
4694// Requires permission to access the DeleteCACertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
4695// action.
4696//
4697// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4698// with awserr.Error's Code and Message methods to get detailed information about
4699// the error.
4700//
4701// See the AWS API reference guide for AWS IoT's
4702// API operation DeleteCACertificate for usage and error information.
4703//
4704// Returned Error Types:
4705//   * InvalidRequestException
4706//   The request is not valid.
4707//
4708//   * CertificateStateException
4709//   The certificate operation is not allowed.
4710//
4711//   * ThrottlingException
4712//   The rate exceeds the limit.
4713//
4714//   * UnauthorizedException
4715//   You are not authorized to perform this operation.
4716//
4717//   * ServiceUnavailableException
4718//   The service is temporarily unavailable.
4719//
4720//   * InternalFailureException
4721//   An unexpected error has occurred.
4722//
4723//   * ResourceNotFoundException
4724//   The specified resource does not exist.
4725//
4726func (c *IoT) DeleteCACertificate(input *DeleteCACertificateInput) (*DeleteCACertificateOutput, error) {
4727	req, out := c.DeleteCACertificateRequest(input)
4728	return out, req.Send()
4729}
4730
4731// DeleteCACertificateWithContext is the same as DeleteCACertificate with the addition of
4732// the ability to pass a context and additional request options.
4733//
4734// See DeleteCACertificate for details on how to use this API operation.
4735//
4736// The context must be non-nil and will be used for request cancellation. If
4737// the context is nil a panic will occur. In the future the SDK may create
4738// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4739// for more information on using Contexts.
4740func (c *IoT) DeleteCACertificateWithContext(ctx aws.Context, input *DeleteCACertificateInput, opts ...request.Option) (*DeleteCACertificateOutput, error) {
4741	req, out := c.DeleteCACertificateRequest(input)
4742	req.SetContext(ctx)
4743	req.ApplyOptions(opts...)
4744	return out, req.Send()
4745}
4746
4747const opDeleteCertificate = "DeleteCertificate"
4748
4749// DeleteCertificateRequest generates a "aws/request.Request" representing the
4750// client's request for the DeleteCertificate operation. The "output" return
4751// value will be populated with the request's response once the request completes
4752// successfully.
4753//
4754// Use "Send" method on the returned Request to send the API call to the service.
4755// the "output" return value is not valid until after Send returns without error.
4756//
4757// See DeleteCertificate for more information on using the DeleteCertificate
4758// API call, and error handling.
4759//
4760// This method is useful when you want to inject custom logic or configuration
4761// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4762//
4763//
4764//    // Example sending a request using the DeleteCertificateRequest method.
4765//    req, resp := client.DeleteCertificateRequest(params)
4766//
4767//    err := req.Send()
4768//    if err == nil { // resp is now filled
4769//        fmt.Println(resp)
4770//    }
4771func (c *IoT) DeleteCertificateRequest(input *DeleteCertificateInput) (req *request.Request, output *DeleteCertificateOutput) {
4772	op := &request.Operation{
4773		Name:       opDeleteCertificate,
4774		HTTPMethod: "DELETE",
4775		HTTPPath:   "/certificates/{certificateId}",
4776	}
4777
4778	if input == nil {
4779		input = &DeleteCertificateInput{}
4780	}
4781
4782	output = &DeleteCertificateOutput{}
4783	req = c.newRequest(op, input, output)
4784	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4785	return
4786}
4787
4788// DeleteCertificate API operation for AWS IoT.
4789//
4790// Deletes the specified certificate.
4791//
4792// A certificate cannot be deleted if it has a policy or IoT thing attached
4793// to it or if its status is set to ACTIVE. To delete a certificate, first use
4794// the DetachPolicy action to detach all policies. Next, use the UpdateCertificate
4795// action to set the certificate to the INACTIVE status.
4796//
4797// Requires permission to access the DeleteCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
4798// action.
4799//
4800// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4801// with awserr.Error's Code and Message methods to get detailed information about
4802// the error.
4803//
4804// See the AWS API reference guide for AWS IoT's
4805// API operation DeleteCertificate for usage and error information.
4806//
4807// Returned Error Types:
4808//   * CertificateStateException
4809//   The certificate operation is not allowed.
4810//
4811//   * DeleteConflictException
4812//   You can't delete the resource because it is attached to one or more resources.
4813//
4814//   * InvalidRequestException
4815//   The request is not valid.
4816//
4817//   * ThrottlingException
4818//   The rate exceeds the limit.
4819//
4820//   * UnauthorizedException
4821//   You are not authorized to perform this operation.
4822//
4823//   * ServiceUnavailableException
4824//   The service is temporarily unavailable.
4825//
4826//   * InternalFailureException
4827//   An unexpected error has occurred.
4828//
4829//   * ResourceNotFoundException
4830//   The specified resource does not exist.
4831//
4832func (c *IoT) DeleteCertificate(input *DeleteCertificateInput) (*DeleteCertificateOutput, error) {
4833	req, out := c.DeleteCertificateRequest(input)
4834	return out, req.Send()
4835}
4836
4837// DeleteCertificateWithContext is the same as DeleteCertificate with the addition of
4838// the ability to pass a context and additional request options.
4839//
4840// See DeleteCertificate for details on how to use this API operation.
4841//
4842// The context must be non-nil and will be used for request cancellation. If
4843// the context is nil a panic will occur. In the future the SDK may create
4844// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4845// for more information on using Contexts.
4846func (c *IoT) DeleteCertificateWithContext(ctx aws.Context, input *DeleteCertificateInput, opts ...request.Option) (*DeleteCertificateOutput, error) {
4847	req, out := c.DeleteCertificateRequest(input)
4848	req.SetContext(ctx)
4849	req.ApplyOptions(opts...)
4850	return out, req.Send()
4851}
4852
4853const opDeleteCustomMetric = "DeleteCustomMetric"
4854
4855// DeleteCustomMetricRequest generates a "aws/request.Request" representing the
4856// client's request for the DeleteCustomMetric operation. The "output" return
4857// value will be populated with the request's response once the request completes
4858// successfully.
4859//
4860// Use "Send" method on the returned Request to send the API call to the service.
4861// the "output" return value is not valid until after Send returns without error.
4862//
4863// See DeleteCustomMetric for more information on using the DeleteCustomMetric
4864// API call, and error handling.
4865//
4866// This method is useful when you want to inject custom logic or configuration
4867// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4868//
4869//
4870//    // Example sending a request using the DeleteCustomMetricRequest method.
4871//    req, resp := client.DeleteCustomMetricRequest(params)
4872//
4873//    err := req.Send()
4874//    if err == nil { // resp is now filled
4875//        fmt.Println(resp)
4876//    }
4877func (c *IoT) DeleteCustomMetricRequest(input *DeleteCustomMetricInput) (req *request.Request, output *DeleteCustomMetricOutput) {
4878	op := &request.Operation{
4879		Name:       opDeleteCustomMetric,
4880		HTTPMethod: "DELETE",
4881		HTTPPath:   "/custom-metric/{metricName}",
4882	}
4883
4884	if input == nil {
4885		input = &DeleteCustomMetricInput{}
4886	}
4887
4888	output = &DeleteCustomMetricOutput{}
4889	req = c.newRequest(op, input, output)
4890	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4891	return
4892}
4893
4894// DeleteCustomMetric API operation for AWS IoT.
4895//
4896// Deletes a Device Defender detect custom metric.
4897//
4898// Requires permission to access the DeleteCustomMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
4899// action.
4900//
4901// Before you can delete a custom metric, you must first remove the custom metric
4902// from all security profiles it's a part of. The security profile associated
4903// with the custom metric can be found using the ListSecurityProfiles (https://docs.aws.amazon.com/iot/latest/apireference/API_ListSecurityProfiles.html)
4904// API with metricName set to your custom metric name.
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 DeleteCustomMetric for usage and error information.
4912//
4913// Returned Error Types:
4914//   * InvalidRequestException
4915//   The request is not valid.
4916//
4917//   * ThrottlingException
4918//   The rate exceeds the limit.
4919//
4920//   * InternalFailureException
4921//   An unexpected error has occurred.
4922//
4923func (c *IoT) DeleteCustomMetric(input *DeleteCustomMetricInput) (*DeleteCustomMetricOutput, error) {
4924	req, out := c.DeleteCustomMetricRequest(input)
4925	return out, req.Send()
4926}
4927
4928// DeleteCustomMetricWithContext is the same as DeleteCustomMetric with the addition of
4929// the ability to pass a context and additional request options.
4930//
4931// See DeleteCustomMetric for details on how to use this API operation.
4932//
4933// The context must be non-nil and will be used for request cancellation. If
4934// the context is nil a panic will occur. In the future the SDK may create
4935// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4936// for more information on using Contexts.
4937func (c *IoT) DeleteCustomMetricWithContext(ctx aws.Context, input *DeleteCustomMetricInput, opts ...request.Option) (*DeleteCustomMetricOutput, error) {
4938	req, out := c.DeleteCustomMetricRequest(input)
4939	req.SetContext(ctx)
4940	req.ApplyOptions(opts...)
4941	return out, req.Send()
4942}
4943
4944const opDeleteDimension = "DeleteDimension"
4945
4946// DeleteDimensionRequest generates a "aws/request.Request" representing the
4947// client's request for the DeleteDimension operation. The "output" return
4948// value will be populated with the request's response once the request completes
4949// successfully.
4950//
4951// Use "Send" method on the returned Request to send the API call to the service.
4952// the "output" return value is not valid until after Send returns without error.
4953//
4954// See DeleteDimension for more information on using the DeleteDimension
4955// API call, and error handling.
4956//
4957// This method is useful when you want to inject custom logic or configuration
4958// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4959//
4960//
4961//    // Example sending a request using the DeleteDimensionRequest method.
4962//    req, resp := client.DeleteDimensionRequest(params)
4963//
4964//    err := req.Send()
4965//    if err == nil { // resp is now filled
4966//        fmt.Println(resp)
4967//    }
4968func (c *IoT) DeleteDimensionRequest(input *DeleteDimensionInput) (req *request.Request, output *DeleteDimensionOutput) {
4969	op := &request.Operation{
4970		Name:       opDeleteDimension,
4971		HTTPMethod: "DELETE",
4972		HTTPPath:   "/dimensions/{name}",
4973	}
4974
4975	if input == nil {
4976		input = &DeleteDimensionInput{}
4977	}
4978
4979	output = &DeleteDimensionOutput{}
4980	req = c.newRequest(op, input, output)
4981	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4982	return
4983}
4984
4985// DeleteDimension API operation for AWS IoT.
4986//
4987// Removes the specified dimension from your Amazon Web Services accounts.
4988//
4989// Requires permission to access the DeleteDimension (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
4990// action.
4991//
4992// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4993// with awserr.Error's Code and Message methods to get detailed information about
4994// the error.
4995//
4996// See the AWS API reference guide for AWS IoT's
4997// API operation DeleteDimension for usage and error information.
4998//
4999// Returned Error Types:
5000//   * InternalFailureException
5001//   An unexpected error has occurred.
5002//
5003//   * InvalidRequestException
5004//   The request is not valid.
5005//
5006//   * ThrottlingException
5007//   The rate exceeds the limit.
5008//
5009func (c *IoT) DeleteDimension(input *DeleteDimensionInput) (*DeleteDimensionOutput, error) {
5010	req, out := c.DeleteDimensionRequest(input)
5011	return out, req.Send()
5012}
5013
5014// DeleteDimensionWithContext is the same as DeleteDimension with the addition of
5015// the ability to pass a context and additional request options.
5016//
5017// See DeleteDimension for details on how to use this API operation.
5018//
5019// The context must be non-nil and will be used for request cancellation. If
5020// the context is nil a panic will occur. In the future the SDK may create
5021// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5022// for more information on using Contexts.
5023func (c *IoT) DeleteDimensionWithContext(ctx aws.Context, input *DeleteDimensionInput, opts ...request.Option) (*DeleteDimensionOutput, error) {
5024	req, out := c.DeleteDimensionRequest(input)
5025	req.SetContext(ctx)
5026	req.ApplyOptions(opts...)
5027	return out, req.Send()
5028}
5029
5030const opDeleteDomainConfiguration = "DeleteDomainConfiguration"
5031
5032// DeleteDomainConfigurationRequest generates a "aws/request.Request" representing the
5033// client's request for the DeleteDomainConfiguration operation. The "output" return
5034// value will be populated with the request's response once the request completes
5035// successfully.
5036//
5037// Use "Send" method on the returned Request to send the API call to the service.
5038// the "output" return value is not valid until after Send returns without error.
5039//
5040// See DeleteDomainConfiguration for more information on using the DeleteDomainConfiguration
5041// API call, and error handling.
5042//
5043// This method is useful when you want to inject custom logic or configuration
5044// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5045//
5046//
5047//    // Example sending a request using the DeleteDomainConfigurationRequest method.
5048//    req, resp := client.DeleteDomainConfigurationRequest(params)
5049//
5050//    err := req.Send()
5051//    if err == nil { // resp is now filled
5052//        fmt.Println(resp)
5053//    }
5054func (c *IoT) DeleteDomainConfigurationRequest(input *DeleteDomainConfigurationInput) (req *request.Request, output *DeleteDomainConfigurationOutput) {
5055	op := &request.Operation{
5056		Name:       opDeleteDomainConfiguration,
5057		HTTPMethod: "DELETE",
5058		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
5059	}
5060
5061	if input == nil {
5062		input = &DeleteDomainConfigurationInput{}
5063	}
5064
5065	output = &DeleteDomainConfigurationOutput{}
5066	req = c.newRequest(op, input, output)
5067	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5068	return
5069}
5070
5071// DeleteDomainConfiguration API operation for AWS IoT.
5072//
5073// Deletes the specified domain configuration.
5074//
5075// Requires permission to access the DeleteDomainConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
5076// action.
5077//
5078// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5079// with awserr.Error's Code and Message methods to get detailed information about
5080// the error.
5081//
5082// See the AWS API reference guide for AWS IoT's
5083// API operation DeleteDomainConfiguration for usage and error information.
5084//
5085// Returned Error Types:
5086//   * ResourceNotFoundException
5087//   The specified resource does not exist.
5088//
5089//   * ThrottlingException
5090//   The rate exceeds the limit.
5091//
5092//   * UnauthorizedException
5093//   You are not authorized to perform this operation.
5094//
5095//   * ServiceUnavailableException
5096//   The service is temporarily unavailable.
5097//
5098//   * InternalFailureException
5099//   An unexpected error has occurred.
5100//
5101//   * InvalidRequestException
5102//   The request is not valid.
5103//
5104func (c *IoT) DeleteDomainConfiguration(input *DeleteDomainConfigurationInput) (*DeleteDomainConfigurationOutput, error) {
5105	req, out := c.DeleteDomainConfigurationRequest(input)
5106	return out, req.Send()
5107}
5108
5109// DeleteDomainConfigurationWithContext is the same as DeleteDomainConfiguration with the addition of
5110// the ability to pass a context and additional request options.
5111//
5112// See DeleteDomainConfiguration for details on how to use this API operation.
5113//
5114// The context must be non-nil and will be used for request cancellation. If
5115// the context is nil a panic will occur. In the future the SDK may create
5116// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5117// for more information on using Contexts.
5118func (c *IoT) DeleteDomainConfigurationWithContext(ctx aws.Context, input *DeleteDomainConfigurationInput, opts ...request.Option) (*DeleteDomainConfigurationOutput, error) {
5119	req, out := c.DeleteDomainConfigurationRequest(input)
5120	req.SetContext(ctx)
5121	req.ApplyOptions(opts...)
5122	return out, req.Send()
5123}
5124
5125const opDeleteDynamicThingGroup = "DeleteDynamicThingGroup"
5126
5127// DeleteDynamicThingGroupRequest generates a "aws/request.Request" representing the
5128// client's request for the DeleteDynamicThingGroup operation. The "output" return
5129// value will be populated with the request's response once the request completes
5130// successfully.
5131//
5132// Use "Send" method on the returned Request to send the API call to the service.
5133// the "output" return value is not valid until after Send returns without error.
5134//
5135// See DeleteDynamicThingGroup for more information on using the DeleteDynamicThingGroup
5136// API call, and error handling.
5137//
5138// This method is useful when you want to inject custom logic or configuration
5139// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5140//
5141//
5142//    // Example sending a request using the DeleteDynamicThingGroupRequest method.
5143//    req, resp := client.DeleteDynamicThingGroupRequest(params)
5144//
5145//    err := req.Send()
5146//    if err == nil { // resp is now filled
5147//        fmt.Println(resp)
5148//    }
5149func (c *IoT) DeleteDynamicThingGroupRequest(input *DeleteDynamicThingGroupInput) (req *request.Request, output *DeleteDynamicThingGroupOutput) {
5150	op := &request.Operation{
5151		Name:       opDeleteDynamicThingGroup,
5152		HTTPMethod: "DELETE",
5153		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
5154	}
5155
5156	if input == nil {
5157		input = &DeleteDynamicThingGroupInput{}
5158	}
5159
5160	output = &DeleteDynamicThingGroupOutput{}
5161	req = c.newRequest(op, input, output)
5162	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5163	return
5164}
5165
5166// DeleteDynamicThingGroup API operation for AWS IoT.
5167//
5168// Deletes a dynamic thing group.
5169//
5170// Requires permission to access the DeleteDynamicThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
5171// action.
5172//
5173// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5174// with awserr.Error's Code and Message methods to get detailed information about
5175// the error.
5176//
5177// See the AWS API reference guide for AWS IoT's
5178// API operation DeleteDynamicThingGroup for usage and error information.
5179//
5180// Returned Error Types:
5181//   * InvalidRequestException
5182//   The request is not valid.
5183//
5184//   * VersionConflictException
5185//   An exception thrown when the version of an entity specified with the expectedVersion
5186//   parameter does not match the latest version in the system.
5187//
5188//   * ThrottlingException
5189//   The rate exceeds the limit.
5190//
5191//   * InternalFailureException
5192//   An unexpected error has occurred.
5193//
5194func (c *IoT) DeleteDynamicThingGroup(input *DeleteDynamicThingGroupInput) (*DeleteDynamicThingGroupOutput, error) {
5195	req, out := c.DeleteDynamicThingGroupRequest(input)
5196	return out, req.Send()
5197}
5198
5199// DeleteDynamicThingGroupWithContext is the same as DeleteDynamicThingGroup with the addition of
5200// the ability to pass a context and additional request options.
5201//
5202// See DeleteDynamicThingGroup for details on how to use this API operation.
5203//
5204// The context must be non-nil and will be used for request cancellation. If
5205// the context is nil a panic will occur. In the future the SDK may create
5206// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5207// for more information on using Contexts.
5208func (c *IoT) DeleteDynamicThingGroupWithContext(ctx aws.Context, input *DeleteDynamicThingGroupInput, opts ...request.Option) (*DeleteDynamicThingGroupOutput, error) {
5209	req, out := c.DeleteDynamicThingGroupRequest(input)
5210	req.SetContext(ctx)
5211	req.ApplyOptions(opts...)
5212	return out, req.Send()
5213}
5214
5215const opDeleteFleetMetric = "DeleteFleetMetric"
5216
5217// DeleteFleetMetricRequest generates a "aws/request.Request" representing the
5218// client's request for the DeleteFleetMetric operation. The "output" return
5219// value will be populated with the request's response once the request completes
5220// successfully.
5221//
5222// Use "Send" method on the returned Request to send the API call to the service.
5223// the "output" return value is not valid until after Send returns without error.
5224//
5225// See DeleteFleetMetric for more information on using the DeleteFleetMetric
5226// API call, and error handling.
5227//
5228// This method is useful when you want to inject custom logic or configuration
5229// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5230//
5231//
5232//    // Example sending a request using the DeleteFleetMetricRequest method.
5233//    req, resp := client.DeleteFleetMetricRequest(params)
5234//
5235//    err := req.Send()
5236//    if err == nil { // resp is now filled
5237//        fmt.Println(resp)
5238//    }
5239func (c *IoT) DeleteFleetMetricRequest(input *DeleteFleetMetricInput) (req *request.Request, output *DeleteFleetMetricOutput) {
5240	op := &request.Operation{
5241		Name:       opDeleteFleetMetric,
5242		HTTPMethod: "DELETE",
5243		HTTPPath:   "/fleet-metric/{metricName}",
5244	}
5245
5246	if input == nil {
5247		input = &DeleteFleetMetricInput{}
5248	}
5249
5250	output = &DeleteFleetMetricOutput{}
5251	req = c.newRequest(op, input, output)
5252	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5253	return
5254}
5255
5256// DeleteFleetMetric API operation for AWS IoT.
5257//
5258// Deletes the specified fleet metric. Returns successfully with no error if
5259// the deletion is successful or you specify a fleet metric that doesn't exist.
5260//
5261// Requires permission to access the DeleteFleetMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
5262// action.
5263//
5264// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5265// with awserr.Error's Code and Message methods to get detailed information about
5266// the error.
5267//
5268// See the AWS API reference guide for AWS IoT's
5269// API operation DeleteFleetMetric for usage and error information.
5270//
5271// Returned Error Types:
5272//   * InvalidRequestException
5273//   The request is not valid.
5274//
5275//   * ThrottlingException
5276//   The rate exceeds the limit.
5277//
5278//   * UnauthorizedException
5279//   You are not authorized to perform this operation.
5280//
5281//   * ServiceUnavailableException
5282//   The service is temporarily unavailable.
5283//
5284//   * InternalFailureException
5285//   An unexpected error has occurred.
5286//
5287//   * VersionConflictException
5288//   An exception thrown when the version of an entity specified with the expectedVersion
5289//   parameter does not match the latest version in the system.
5290//
5291func (c *IoT) DeleteFleetMetric(input *DeleteFleetMetricInput) (*DeleteFleetMetricOutput, error) {
5292	req, out := c.DeleteFleetMetricRequest(input)
5293	return out, req.Send()
5294}
5295
5296// DeleteFleetMetricWithContext is the same as DeleteFleetMetric with the addition of
5297// the ability to pass a context and additional request options.
5298//
5299// See DeleteFleetMetric for details on how to use this API operation.
5300//
5301// The context must be non-nil and will be used for request cancellation. If
5302// the context is nil a panic will occur. In the future the SDK may create
5303// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5304// for more information on using Contexts.
5305func (c *IoT) DeleteFleetMetricWithContext(ctx aws.Context, input *DeleteFleetMetricInput, opts ...request.Option) (*DeleteFleetMetricOutput, error) {
5306	req, out := c.DeleteFleetMetricRequest(input)
5307	req.SetContext(ctx)
5308	req.ApplyOptions(opts...)
5309	return out, req.Send()
5310}
5311
5312const opDeleteJob = "DeleteJob"
5313
5314// DeleteJobRequest generates a "aws/request.Request" representing the
5315// client's request for the DeleteJob operation. The "output" return
5316// value will be populated with the request's response once the request completes
5317// successfully.
5318//
5319// Use "Send" method on the returned Request to send the API call to the service.
5320// the "output" return value is not valid until after Send returns without error.
5321//
5322// See DeleteJob for more information on using the DeleteJob
5323// API call, and error handling.
5324//
5325// This method is useful when you want to inject custom logic or configuration
5326// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5327//
5328//
5329//    // Example sending a request using the DeleteJobRequest method.
5330//    req, resp := client.DeleteJobRequest(params)
5331//
5332//    err := req.Send()
5333//    if err == nil { // resp is now filled
5334//        fmt.Println(resp)
5335//    }
5336func (c *IoT) DeleteJobRequest(input *DeleteJobInput) (req *request.Request, output *DeleteJobOutput) {
5337	op := &request.Operation{
5338		Name:       opDeleteJob,
5339		HTTPMethod: "DELETE",
5340		HTTPPath:   "/jobs/{jobId}",
5341	}
5342
5343	if input == nil {
5344		input = &DeleteJobInput{}
5345	}
5346
5347	output = &DeleteJobOutput{}
5348	req = c.newRequest(op, input, output)
5349	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5350	return
5351}
5352
5353// DeleteJob API operation for AWS IoT.
5354//
5355// Deletes a job and its related job executions.
5356//
5357// Deleting a job may take time, depending on the number of job executions created
5358// for the job and various other factors. While the job is being deleted, the
5359// status of the job will be shown as "DELETION_IN_PROGRESS". Attempting to
5360// delete or cancel a job whose status is already "DELETION_IN_PROGRESS" will
5361// result in an error.
5362//
5363// Only 10 jobs may have status "DELETION_IN_PROGRESS" at the same time, or
5364// a LimitExceededException will occur.
5365//
5366// Requires permission to access the DeleteJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
5367// action.
5368//
5369// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5370// with awserr.Error's Code and Message methods to get detailed information about
5371// the error.
5372//
5373// See the AWS API reference guide for AWS IoT's
5374// API operation DeleteJob for usage and error information.
5375//
5376// Returned Error Types:
5377//   * InvalidRequestException
5378//   The request is not valid.
5379//
5380//   * InvalidStateTransitionException
5381//   An attempt was made to change to an invalid state, for example by deleting
5382//   a job or a job execution which is "IN_PROGRESS" without setting the force
5383//   parameter.
5384//
5385//   * ResourceNotFoundException
5386//   The specified resource does not exist.
5387//
5388//   * LimitExceededException
5389//   A limit has been exceeded.
5390//
5391//   * ThrottlingException
5392//   The rate exceeds the limit.
5393//
5394//   * ServiceUnavailableException
5395//   The service is temporarily unavailable.
5396//
5397func (c *IoT) DeleteJob(input *DeleteJobInput) (*DeleteJobOutput, error) {
5398	req, out := c.DeleteJobRequest(input)
5399	return out, req.Send()
5400}
5401
5402// DeleteJobWithContext is the same as DeleteJob with the addition of
5403// the ability to pass a context and additional request options.
5404//
5405// See DeleteJob for details on how to use this API operation.
5406//
5407// The context must be non-nil and will be used for request cancellation. If
5408// the context is nil a panic will occur. In the future the SDK may create
5409// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5410// for more information on using Contexts.
5411func (c *IoT) DeleteJobWithContext(ctx aws.Context, input *DeleteJobInput, opts ...request.Option) (*DeleteJobOutput, error) {
5412	req, out := c.DeleteJobRequest(input)
5413	req.SetContext(ctx)
5414	req.ApplyOptions(opts...)
5415	return out, req.Send()
5416}
5417
5418const opDeleteJobExecution = "DeleteJobExecution"
5419
5420// DeleteJobExecutionRequest generates a "aws/request.Request" representing the
5421// client's request for the DeleteJobExecution operation. The "output" return
5422// value will be populated with the request's response once the request completes
5423// successfully.
5424//
5425// Use "Send" method on the returned Request to send the API call to the service.
5426// the "output" return value is not valid until after Send returns without error.
5427//
5428// See DeleteJobExecution for more information on using the DeleteJobExecution
5429// API call, and error handling.
5430//
5431// This method is useful when you want to inject custom logic or configuration
5432// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5433//
5434//
5435//    // Example sending a request using the DeleteJobExecutionRequest method.
5436//    req, resp := client.DeleteJobExecutionRequest(params)
5437//
5438//    err := req.Send()
5439//    if err == nil { // resp is now filled
5440//        fmt.Println(resp)
5441//    }
5442func (c *IoT) DeleteJobExecutionRequest(input *DeleteJobExecutionInput) (req *request.Request, output *DeleteJobExecutionOutput) {
5443	op := &request.Operation{
5444		Name:       opDeleteJobExecution,
5445		HTTPMethod: "DELETE",
5446		HTTPPath:   "/things/{thingName}/jobs/{jobId}/executionNumber/{executionNumber}",
5447	}
5448
5449	if input == nil {
5450		input = &DeleteJobExecutionInput{}
5451	}
5452
5453	output = &DeleteJobExecutionOutput{}
5454	req = c.newRequest(op, input, output)
5455	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5456	return
5457}
5458
5459// DeleteJobExecution API operation for AWS IoT.
5460//
5461// Deletes a job execution.
5462//
5463// Requires permission to access the DeleteJobExecution (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
5464// action.
5465//
5466// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5467// with awserr.Error's Code and Message methods to get detailed information about
5468// the error.
5469//
5470// See the AWS API reference guide for AWS IoT's
5471// API operation DeleteJobExecution for usage and error information.
5472//
5473// Returned Error Types:
5474//   * InvalidRequestException
5475//   The request is not valid.
5476//
5477//   * InvalidStateTransitionException
5478//   An attempt was made to change to an invalid state, for example by deleting
5479//   a job or a job execution which is "IN_PROGRESS" without setting the force
5480//   parameter.
5481//
5482//   * ResourceNotFoundException
5483//   The specified resource does not exist.
5484//
5485//   * ThrottlingException
5486//   The rate exceeds the limit.
5487//
5488//   * ServiceUnavailableException
5489//   The service is temporarily unavailable.
5490//
5491func (c *IoT) DeleteJobExecution(input *DeleteJobExecutionInput) (*DeleteJobExecutionOutput, error) {
5492	req, out := c.DeleteJobExecutionRequest(input)
5493	return out, req.Send()
5494}
5495
5496// DeleteJobExecutionWithContext is the same as DeleteJobExecution with the addition of
5497// the ability to pass a context and additional request options.
5498//
5499// See DeleteJobExecution 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) DeleteJobExecutionWithContext(ctx aws.Context, input *DeleteJobExecutionInput, opts ...request.Option) (*DeleteJobExecutionOutput, error) {
5506	req, out := c.DeleteJobExecutionRequest(input)
5507	req.SetContext(ctx)
5508	req.ApplyOptions(opts...)
5509	return out, req.Send()
5510}
5511
5512const opDeleteJobTemplate = "DeleteJobTemplate"
5513
5514// DeleteJobTemplateRequest generates a "aws/request.Request" representing the
5515// client's request for the DeleteJobTemplate 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 DeleteJobTemplate for more information on using the DeleteJobTemplate
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 DeleteJobTemplateRequest method.
5530//    req, resp := client.DeleteJobTemplateRequest(params)
5531//
5532//    err := req.Send()
5533//    if err == nil { // resp is now filled
5534//        fmt.Println(resp)
5535//    }
5536func (c *IoT) DeleteJobTemplateRequest(input *DeleteJobTemplateInput) (req *request.Request, output *DeleteJobTemplateOutput) {
5537	op := &request.Operation{
5538		Name:       opDeleteJobTemplate,
5539		HTTPMethod: "DELETE",
5540		HTTPPath:   "/job-templates/{jobTemplateId}",
5541	}
5542
5543	if input == nil {
5544		input = &DeleteJobTemplateInput{}
5545	}
5546
5547	output = &DeleteJobTemplateOutput{}
5548	req = c.newRequest(op, input, output)
5549	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5550	return
5551}
5552
5553// DeleteJobTemplate API operation for AWS IoT.
5554//
5555// Deletes the specified job template.
5556//
5557// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5558// with awserr.Error's Code and Message methods to get detailed information about
5559// the error.
5560//
5561// See the AWS API reference guide for AWS IoT's
5562// API operation DeleteJobTemplate for usage and error information.
5563//
5564// Returned Error Types:
5565//   * InvalidRequestException
5566//   The request is not valid.
5567//
5568//   * ResourceNotFoundException
5569//   The specified resource does not exist.
5570//
5571//   * ThrottlingException
5572//   The rate exceeds the limit.
5573//
5574//   * InternalFailureException
5575//   An unexpected error has occurred.
5576//
5577func (c *IoT) DeleteJobTemplate(input *DeleteJobTemplateInput) (*DeleteJobTemplateOutput, error) {
5578	req, out := c.DeleteJobTemplateRequest(input)
5579	return out, req.Send()
5580}
5581
5582// DeleteJobTemplateWithContext is the same as DeleteJobTemplate with the addition of
5583// the ability to pass a context and additional request options.
5584//
5585// See DeleteJobTemplate for details on how to use this API operation.
5586//
5587// The context must be non-nil and will be used for request cancellation. If
5588// the context is nil a panic will occur. In the future the SDK may create
5589// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5590// for more information on using Contexts.
5591func (c *IoT) DeleteJobTemplateWithContext(ctx aws.Context, input *DeleteJobTemplateInput, opts ...request.Option) (*DeleteJobTemplateOutput, error) {
5592	req, out := c.DeleteJobTemplateRequest(input)
5593	req.SetContext(ctx)
5594	req.ApplyOptions(opts...)
5595	return out, req.Send()
5596}
5597
5598const opDeleteMitigationAction = "DeleteMitigationAction"
5599
5600// DeleteMitigationActionRequest generates a "aws/request.Request" representing the
5601// client's request for the DeleteMitigationAction operation. The "output" return
5602// value will be populated with the request's response once the request completes
5603// successfully.
5604//
5605// Use "Send" method on the returned Request to send the API call to the service.
5606// the "output" return value is not valid until after Send returns without error.
5607//
5608// See DeleteMitigationAction for more information on using the DeleteMitigationAction
5609// API call, and error handling.
5610//
5611// This method is useful when you want to inject custom logic or configuration
5612// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5613//
5614//
5615//    // Example sending a request using the DeleteMitigationActionRequest method.
5616//    req, resp := client.DeleteMitigationActionRequest(params)
5617//
5618//    err := req.Send()
5619//    if err == nil { // resp is now filled
5620//        fmt.Println(resp)
5621//    }
5622func (c *IoT) DeleteMitigationActionRequest(input *DeleteMitigationActionInput) (req *request.Request, output *DeleteMitigationActionOutput) {
5623	op := &request.Operation{
5624		Name:       opDeleteMitigationAction,
5625		HTTPMethod: "DELETE",
5626		HTTPPath:   "/mitigationactions/actions/{actionName}",
5627	}
5628
5629	if input == nil {
5630		input = &DeleteMitigationActionInput{}
5631	}
5632
5633	output = &DeleteMitigationActionOutput{}
5634	req = c.newRequest(op, input, output)
5635	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5636	return
5637}
5638
5639// DeleteMitigationAction API operation for AWS IoT.
5640//
5641// Deletes a defined mitigation action from your Amazon Web Services accounts.
5642//
5643// Requires permission to access the DeleteMitigationAction (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
5644// action.
5645//
5646// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5647// with awserr.Error's Code and Message methods to get detailed information about
5648// the error.
5649//
5650// See the AWS API reference guide for AWS IoT's
5651// API operation DeleteMitigationAction for usage and error information.
5652//
5653// Returned Error Types:
5654//   * InvalidRequestException
5655//   The request is not valid.
5656//
5657//   * ThrottlingException
5658//   The rate exceeds the limit.
5659//
5660//   * InternalFailureException
5661//   An unexpected error has occurred.
5662//
5663func (c *IoT) DeleteMitigationAction(input *DeleteMitigationActionInput) (*DeleteMitigationActionOutput, error) {
5664	req, out := c.DeleteMitigationActionRequest(input)
5665	return out, req.Send()
5666}
5667
5668// DeleteMitigationActionWithContext is the same as DeleteMitigationAction with the addition of
5669// the ability to pass a context and additional request options.
5670//
5671// See DeleteMitigationAction for details on how to use this API operation.
5672//
5673// The context must be non-nil and will be used for request cancellation. If
5674// the context is nil a panic will occur. In the future the SDK may create
5675// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5676// for more information on using Contexts.
5677func (c *IoT) DeleteMitigationActionWithContext(ctx aws.Context, input *DeleteMitigationActionInput, opts ...request.Option) (*DeleteMitigationActionOutput, error) {
5678	req, out := c.DeleteMitigationActionRequest(input)
5679	req.SetContext(ctx)
5680	req.ApplyOptions(opts...)
5681	return out, req.Send()
5682}
5683
5684const opDeleteOTAUpdate = "DeleteOTAUpdate"
5685
5686// DeleteOTAUpdateRequest generates a "aws/request.Request" representing the
5687// client's request for the DeleteOTAUpdate operation. The "output" return
5688// value will be populated with the request's response once the request completes
5689// successfully.
5690//
5691// Use "Send" method on the returned Request to send the API call to the service.
5692// the "output" return value is not valid until after Send returns without error.
5693//
5694// See DeleteOTAUpdate for more information on using the DeleteOTAUpdate
5695// API call, and error handling.
5696//
5697// This method is useful when you want to inject custom logic or configuration
5698// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5699//
5700//
5701//    // Example sending a request using the DeleteOTAUpdateRequest method.
5702//    req, resp := client.DeleteOTAUpdateRequest(params)
5703//
5704//    err := req.Send()
5705//    if err == nil { // resp is now filled
5706//        fmt.Println(resp)
5707//    }
5708func (c *IoT) DeleteOTAUpdateRequest(input *DeleteOTAUpdateInput) (req *request.Request, output *DeleteOTAUpdateOutput) {
5709	op := &request.Operation{
5710		Name:       opDeleteOTAUpdate,
5711		HTTPMethod: "DELETE",
5712		HTTPPath:   "/otaUpdates/{otaUpdateId}",
5713	}
5714
5715	if input == nil {
5716		input = &DeleteOTAUpdateInput{}
5717	}
5718
5719	output = &DeleteOTAUpdateOutput{}
5720	req = c.newRequest(op, input, output)
5721	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5722	return
5723}
5724
5725// DeleteOTAUpdate API operation for AWS IoT.
5726//
5727// Delete an OTA update.
5728//
5729// Requires permission to access the DeleteOTAUpdate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
5730// action.
5731//
5732// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5733// with awserr.Error's Code and Message methods to get detailed information about
5734// the error.
5735//
5736// See the AWS API reference guide for AWS IoT's
5737// API operation DeleteOTAUpdate for usage and error information.
5738//
5739// Returned Error Types:
5740//   * InvalidRequestException
5741//   The request is not valid.
5742//
5743//   * ResourceNotFoundException
5744//   The specified resource does not exist.
5745//
5746//   * ThrottlingException
5747//   The rate exceeds the limit.
5748//
5749//   * UnauthorizedException
5750//   You are not authorized to perform this operation.
5751//
5752//   * InternalFailureException
5753//   An unexpected error has occurred.
5754//
5755//   * ServiceUnavailableException
5756//   The service is temporarily unavailable.
5757//
5758//   * VersionConflictException
5759//   An exception thrown when the version of an entity specified with the expectedVersion
5760//   parameter does not match the latest version in the system.
5761//
5762func (c *IoT) DeleteOTAUpdate(input *DeleteOTAUpdateInput) (*DeleteOTAUpdateOutput, error) {
5763	req, out := c.DeleteOTAUpdateRequest(input)
5764	return out, req.Send()
5765}
5766
5767// DeleteOTAUpdateWithContext is the same as DeleteOTAUpdate with the addition of
5768// the ability to pass a context and additional request options.
5769//
5770// See DeleteOTAUpdate for details on how to use this API operation.
5771//
5772// The context must be non-nil and will be used for request cancellation. If
5773// the context is nil a panic will occur. In the future the SDK may create
5774// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5775// for more information on using Contexts.
5776func (c *IoT) DeleteOTAUpdateWithContext(ctx aws.Context, input *DeleteOTAUpdateInput, opts ...request.Option) (*DeleteOTAUpdateOutput, error) {
5777	req, out := c.DeleteOTAUpdateRequest(input)
5778	req.SetContext(ctx)
5779	req.ApplyOptions(opts...)
5780	return out, req.Send()
5781}
5782
5783const opDeletePolicy = "DeletePolicy"
5784
5785// DeletePolicyRequest generates a "aws/request.Request" representing the
5786// client's request for the DeletePolicy operation. The "output" return
5787// value will be populated with the request's response once the request completes
5788// successfully.
5789//
5790// Use "Send" method on the returned Request to send the API call to the service.
5791// the "output" return value is not valid until after Send returns without error.
5792//
5793// See DeletePolicy for more information on using the DeletePolicy
5794// API call, and error handling.
5795//
5796// This method is useful when you want to inject custom logic or configuration
5797// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5798//
5799//
5800//    // Example sending a request using the DeletePolicyRequest method.
5801//    req, resp := client.DeletePolicyRequest(params)
5802//
5803//    err := req.Send()
5804//    if err == nil { // resp is now filled
5805//        fmt.Println(resp)
5806//    }
5807func (c *IoT) DeletePolicyRequest(input *DeletePolicyInput) (req *request.Request, output *DeletePolicyOutput) {
5808	op := &request.Operation{
5809		Name:       opDeletePolicy,
5810		HTTPMethod: "DELETE",
5811		HTTPPath:   "/policies/{policyName}",
5812	}
5813
5814	if input == nil {
5815		input = &DeletePolicyInput{}
5816	}
5817
5818	output = &DeletePolicyOutput{}
5819	req = c.newRequest(op, input, output)
5820	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5821	return
5822}
5823
5824// DeletePolicy API operation for AWS IoT.
5825//
5826// Deletes the specified policy.
5827//
5828// A policy cannot be deleted if it has non-default versions or it is attached
5829// to any certificate.
5830//
5831// To delete a policy, use the DeletePolicyVersion action to delete all non-default
5832// versions of the policy; use the DetachPolicy action to detach the policy
5833// from any certificate; and then use the DeletePolicy action to delete the
5834// policy.
5835//
5836// When a policy is deleted using DeletePolicy, its default version is deleted
5837// with it.
5838//
5839// Because of the distributed nature of Amazon Web Services, it can take up
5840// to five minutes after a policy is detached before it's ready to be deleted.
5841//
5842// Requires permission to access the DeletePolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
5843// action.
5844//
5845// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5846// with awserr.Error's Code and Message methods to get detailed information about
5847// the error.
5848//
5849// See the AWS API reference guide for AWS IoT's
5850// API operation DeletePolicy for usage and error information.
5851//
5852// Returned Error Types:
5853//   * DeleteConflictException
5854//   You can't delete the resource because it is attached to one or more resources.
5855//
5856//   * ResourceNotFoundException
5857//   The specified resource does not exist.
5858//
5859//   * InvalidRequestException
5860//   The request is not valid.
5861//
5862//   * ThrottlingException
5863//   The rate exceeds the limit.
5864//
5865//   * UnauthorizedException
5866//   You are not authorized to perform this operation.
5867//
5868//   * ServiceUnavailableException
5869//   The service is temporarily unavailable.
5870//
5871//   * InternalFailureException
5872//   An unexpected error has occurred.
5873//
5874func (c *IoT) DeletePolicy(input *DeletePolicyInput) (*DeletePolicyOutput, error) {
5875	req, out := c.DeletePolicyRequest(input)
5876	return out, req.Send()
5877}
5878
5879// DeletePolicyWithContext is the same as DeletePolicy with the addition of
5880// the ability to pass a context and additional request options.
5881//
5882// See DeletePolicy for details on how to use this API operation.
5883//
5884// The context must be non-nil and will be used for request cancellation. If
5885// the context is nil a panic will occur. In the future the SDK may create
5886// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5887// for more information on using Contexts.
5888func (c *IoT) DeletePolicyWithContext(ctx aws.Context, input *DeletePolicyInput, opts ...request.Option) (*DeletePolicyOutput, error) {
5889	req, out := c.DeletePolicyRequest(input)
5890	req.SetContext(ctx)
5891	req.ApplyOptions(opts...)
5892	return out, req.Send()
5893}
5894
5895const opDeletePolicyVersion = "DeletePolicyVersion"
5896
5897// DeletePolicyVersionRequest generates a "aws/request.Request" representing the
5898// client's request for the DeletePolicyVersion operation. The "output" return
5899// value will be populated with the request's response once the request completes
5900// successfully.
5901//
5902// Use "Send" method on the returned Request to send the API call to the service.
5903// the "output" return value is not valid until after Send returns without error.
5904//
5905// See DeletePolicyVersion for more information on using the DeletePolicyVersion
5906// API call, and error handling.
5907//
5908// This method is useful when you want to inject custom logic or configuration
5909// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5910//
5911//
5912//    // Example sending a request using the DeletePolicyVersionRequest method.
5913//    req, resp := client.DeletePolicyVersionRequest(params)
5914//
5915//    err := req.Send()
5916//    if err == nil { // resp is now filled
5917//        fmt.Println(resp)
5918//    }
5919func (c *IoT) DeletePolicyVersionRequest(input *DeletePolicyVersionInput) (req *request.Request, output *DeletePolicyVersionOutput) {
5920	op := &request.Operation{
5921		Name:       opDeletePolicyVersion,
5922		HTTPMethod: "DELETE",
5923		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
5924	}
5925
5926	if input == nil {
5927		input = &DeletePolicyVersionInput{}
5928	}
5929
5930	output = &DeletePolicyVersionOutput{}
5931	req = c.newRequest(op, input, output)
5932	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
5933	return
5934}
5935
5936// DeletePolicyVersion API operation for AWS IoT.
5937//
5938// Deletes the specified version of the specified policy. You cannot delete
5939// the default version of a policy using this action. To delete the default
5940// version of a policy, use DeletePolicy. To find out which version of a policy
5941// is marked as the default version, use ListPolicyVersions.
5942//
5943// Requires permission to access the DeletePolicyVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
5944// action.
5945//
5946// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5947// with awserr.Error's Code and Message methods to get detailed information about
5948// the error.
5949//
5950// See the AWS API reference guide for AWS IoT's
5951// API operation DeletePolicyVersion for usage and error information.
5952//
5953// Returned Error Types:
5954//   * DeleteConflictException
5955//   You can't delete the resource because it is attached to one or more resources.
5956//
5957//   * ResourceNotFoundException
5958//   The specified resource does not exist.
5959//
5960//   * InvalidRequestException
5961//   The request is not valid.
5962//
5963//   * ThrottlingException
5964//   The rate exceeds the limit.
5965//
5966//   * UnauthorizedException
5967//   You are not authorized to perform this operation.
5968//
5969//   * ServiceUnavailableException
5970//   The service is temporarily unavailable.
5971//
5972//   * InternalFailureException
5973//   An unexpected error has occurred.
5974//
5975func (c *IoT) DeletePolicyVersion(input *DeletePolicyVersionInput) (*DeletePolicyVersionOutput, error) {
5976	req, out := c.DeletePolicyVersionRequest(input)
5977	return out, req.Send()
5978}
5979
5980// DeletePolicyVersionWithContext is the same as DeletePolicyVersion with the addition of
5981// the ability to pass a context and additional request options.
5982//
5983// See DeletePolicyVersion for details on how to use this API operation.
5984//
5985// The context must be non-nil and will be used for request cancellation. If
5986// the context is nil a panic will occur. In the future the SDK may create
5987// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5988// for more information on using Contexts.
5989func (c *IoT) DeletePolicyVersionWithContext(ctx aws.Context, input *DeletePolicyVersionInput, opts ...request.Option) (*DeletePolicyVersionOutput, error) {
5990	req, out := c.DeletePolicyVersionRequest(input)
5991	req.SetContext(ctx)
5992	req.ApplyOptions(opts...)
5993	return out, req.Send()
5994}
5995
5996const opDeleteProvisioningTemplate = "DeleteProvisioningTemplate"
5997
5998// DeleteProvisioningTemplateRequest generates a "aws/request.Request" representing the
5999// client's request for the DeleteProvisioningTemplate operation. The "output" return
6000// value will be populated with the request's response once the request completes
6001// successfully.
6002//
6003// Use "Send" method on the returned Request to send the API call to the service.
6004// the "output" return value is not valid until after Send returns without error.
6005//
6006// See DeleteProvisioningTemplate for more information on using the DeleteProvisioningTemplate
6007// API call, and error handling.
6008//
6009// This method is useful when you want to inject custom logic or configuration
6010// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6011//
6012//
6013//    // Example sending a request using the DeleteProvisioningTemplateRequest method.
6014//    req, resp := client.DeleteProvisioningTemplateRequest(params)
6015//
6016//    err := req.Send()
6017//    if err == nil { // resp is now filled
6018//        fmt.Println(resp)
6019//    }
6020func (c *IoT) DeleteProvisioningTemplateRequest(input *DeleteProvisioningTemplateInput) (req *request.Request, output *DeleteProvisioningTemplateOutput) {
6021	op := &request.Operation{
6022		Name:       opDeleteProvisioningTemplate,
6023		HTTPMethod: "DELETE",
6024		HTTPPath:   "/provisioning-templates/{templateName}",
6025	}
6026
6027	if input == nil {
6028		input = &DeleteProvisioningTemplateInput{}
6029	}
6030
6031	output = &DeleteProvisioningTemplateOutput{}
6032	req = c.newRequest(op, input, output)
6033	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6034	return
6035}
6036
6037// DeleteProvisioningTemplate API operation for AWS IoT.
6038//
6039// Deletes a fleet provisioning template.
6040//
6041// Requires permission to access the DeleteProvisioningTemplate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
6042// action.
6043//
6044// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6045// with awserr.Error's Code and Message methods to get detailed information about
6046// the error.
6047//
6048// See the AWS API reference guide for AWS IoT's
6049// API operation DeleteProvisioningTemplate for usage and error information.
6050//
6051// Returned Error Types:
6052//   * InternalFailureException
6053//   An unexpected error has occurred.
6054//
6055//   * InvalidRequestException
6056//   The request is not valid.
6057//
6058//   * ResourceNotFoundException
6059//   The specified resource does not exist.
6060//
6061//   * DeleteConflictException
6062//   You can't delete the resource because it is attached to one or more resources.
6063//
6064//   * ThrottlingException
6065//   The rate exceeds the limit.
6066//
6067//   * ConflictingResourceUpdateException
6068//   A conflicting resource update exception. This exception is thrown when two
6069//   pending updates cause a conflict.
6070//
6071//   * UnauthorizedException
6072//   You are not authorized to perform this operation.
6073//
6074func (c *IoT) DeleteProvisioningTemplate(input *DeleteProvisioningTemplateInput) (*DeleteProvisioningTemplateOutput, error) {
6075	req, out := c.DeleteProvisioningTemplateRequest(input)
6076	return out, req.Send()
6077}
6078
6079// DeleteProvisioningTemplateWithContext is the same as DeleteProvisioningTemplate with the addition of
6080// the ability to pass a context and additional request options.
6081//
6082// See DeleteProvisioningTemplate for details on how to use this API operation.
6083//
6084// The context must be non-nil and will be used for request cancellation. If
6085// the context is nil a panic will occur. In the future the SDK may create
6086// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6087// for more information on using Contexts.
6088func (c *IoT) DeleteProvisioningTemplateWithContext(ctx aws.Context, input *DeleteProvisioningTemplateInput, opts ...request.Option) (*DeleteProvisioningTemplateOutput, error) {
6089	req, out := c.DeleteProvisioningTemplateRequest(input)
6090	req.SetContext(ctx)
6091	req.ApplyOptions(opts...)
6092	return out, req.Send()
6093}
6094
6095const opDeleteProvisioningTemplateVersion = "DeleteProvisioningTemplateVersion"
6096
6097// DeleteProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
6098// client's request for the DeleteProvisioningTemplateVersion operation. The "output" return
6099// value will be populated with the request's response once the request completes
6100// successfully.
6101//
6102// Use "Send" method on the returned Request to send the API call to the service.
6103// the "output" return value is not valid until after Send returns without error.
6104//
6105// See DeleteProvisioningTemplateVersion for more information on using the DeleteProvisioningTemplateVersion
6106// API call, and error handling.
6107//
6108// This method is useful when you want to inject custom logic or configuration
6109// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6110//
6111//
6112//    // Example sending a request using the DeleteProvisioningTemplateVersionRequest method.
6113//    req, resp := client.DeleteProvisioningTemplateVersionRequest(params)
6114//
6115//    err := req.Send()
6116//    if err == nil { // resp is now filled
6117//        fmt.Println(resp)
6118//    }
6119func (c *IoT) DeleteProvisioningTemplateVersionRequest(input *DeleteProvisioningTemplateVersionInput) (req *request.Request, output *DeleteProvisioningTemplateVersionOutput) {
6120	op := &request.Operation{
6121		Name:       opDeleteProvisioningTemplateVersion,
6122		HTTPMethod: "DELETE",
6123		HTTPPath:   "/provisioning-templates/{templateName}/versions/{versionId}",
6124	}
6125
6126	if input == nil {
6127		input = &DeleteProvisioningTemplateVersionInput{}
6128	}
6129
6130	output = &DeleteProvisioningTemplateVersionOutput{}
6131	req = c.newRequest(op, input, output)
6132	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6133	return
6134}
6135
6136// DeleteProvisioningTemplateVersion API operation for AWS IoT.
6137//
6138// Deletes a fleet provisioning template version.
6139//
6140// Requires permission to access the DeleteProvisioningTemplateVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
6141// action.
6142//
6143// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6144// with awserr.Error's Code and Message methods to get detailed information about
6145// the error.
6146//
6147// See the AWS API reference guide for AWS IoT's
6148// API operation DeleteProvisioningTemplateVersion for usage and error information.
6149//
6150// Returned Error Types:
6151//   * InternalFailureException
6152//   An unexpected error has occurred.
6153//
6154//   * InvalidRequestException
6155//   The request is not valid.
6156//
6157//   * ThrottlingException
6158//   The rate exceeds the limit.
6159//
6160//   * ResourceNotFoundException
6161//   The specified resource does not exist.
6162//
6163//   * UnauthorizedException
6164//   You are not authorized to perform this operation.
6165//
6166//   * ConflictingResourceUpdateException
6167//   A conflicting resource update exception. This exception is thrown when two
6168//   pending updates cause a conflict.
6169//
6170//   * DeleteConflictException
6171//   You can't delete the resource because it is attached to one or more resources.
6172//
6173func (c *IoT) DeleteProvisioningTemplateVersion(input *DeleteProvisioningTemplateVersionInput) (*DeleteProvisioningTemplateVersionOutput, error) {
6174	req, out := c.DeleteProvisioningTemplateVersionRequest(input)
6175	return out, req.Send()
6176}
6177
6178// DeleteProvisioningTemplateVersionWithContext is the same as DeleteProvisioningTemplateVersion with the addition of
6179// the ability to pass a context and additional request options.
6180//
6181// See DeleteProvisioningTemplateVersion for details on how to use this API operation.
6182//
6183// The context must be non-nil and will be used for request cancellation. If
6184// the context is nil a panic will occur. In the future the SDK may create
6185// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6186// for more information on using Contexts.
6187func (c *IoT) DeleteProvisioningTemplateVersionWithContext(ctx aws.Context, input *DeleteProvisioningTemplateVersionInput, opts ...request.Option) (*DeleteProvisioningTemplateVersionOutput, error) {
6188	req, out := c.DeleteProvisioningTemplateVersionRequest(input)
6189	req.SetContext(ctx)
6190	req.ApplyOptions(opts...)
6191	return out, req.Send()
6192}
6193
6194const opDeleteRegistrationCode = "DeleteRegistrationCode"
6195
6196// DeleteRegistrationCodeRequest generates a "aws/request.Request" representing the
6197// client's request for the DeleteRegistrationCode operation. The "output" return
6198// value will be populated with the request's response once the request completes
6199// successfully.
6200//
6201// Use "Send" method on the returned Request to send the API call to the service.
6202// the "output" return value is not valid until after Send returns without error.
6203//
6204// See DeleteRegistrationCode for more information on using the DeleteRegistrationCode
6205// API call, and error handling.
6206//
6207// This method is useful when you want to inject custom logic or configuration
6208// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6209//
6210//
6211//    // Example sending a request using the DeleteRegistrationCodeRequest method.
6212//    req, resp := client.DeleteRegistrationCodeRequest(params)
6213//
6214//    err := req.Send()
6215//    if err == nil { // resp is now filled
6216//        fmt.Println(resp)
6217//    }
6218func (c *IoT) DeleteRegistrationCodeRequest(input *DeleteRegistrationCodeInput) (req *request.Request, output *DeleteRegistrationCodeOutput) {
6219	op := &request.Operation{
6220		Name:       opDeleteRegistrationCode,
6221		HTTPMethod: "DELETE",
6222		HTTPPath:   "/registrationcode",
6223	}
6224
6225	if input == nil {
6226		input = &DeleteRegistrationCodeInput{}
6227	}
6228
6229	output = &DeleteRegistrationCodeOutput{}
6230	req = c.newRequest(op, input, output)
6231	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6232	return
6233}
6234
6235// DeleteRegistrationCode API operation for AWS IoT.
6236//
6237// Deletes a CA certificate registration code.
6238//
6239// Requires permission to access the DeleteRegistrationCode (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
6240// action.
6241//
6242// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6243// with awserr.Error's Code and Message methods to get detailed information about
6244// the error.
6245//
6246// See the AWS API reference guide for AWS IoT's
6247// API operation DeleteRegistrationCode for usage and error information.
6248//
6249// Returned Error Types:
6250//   * ThrottlingException
6251//   The rate exceeds the limit.
6252//
6253//   * ResourceNotFoundException
6254//   The specified resource does not exist.
6255//
6256//   * UnauthorizedException
6257//   You are not authorized to perform this operation.
6258//
6259//   * ServiceUnavailableException
6260//   The service is temporarily unavailable.
6261//
6262//   * InternalFailureException
6263//   An unexpected error has occurred.
6264//
6265func (c *IoT) DeleteRegistrationCode(input *DeleteRegistrationCodeInput) (*DeleteRegistrationCodeOutput, error) {
6266	req, out := c.DeleteRegistrationCodeRequest(input)
6267	return out, req.Send()
6268}
6269
6270// DeleteRegistrationCodeWithContext is the same as DeleteRegistrationCode with the addition of
6271// the ability to pass a context and additional request options.
6272//
6273// See DeleteRegistrationCode for details on how to use this API operation.
6274//
6275// The context must be non-nil and will be used for request cancellation. If
6276// the context is nil a panic will occur. In the future the SDK may create
6277// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6278// for more information on using Contexts.
6279func (c *IoT) DeleteRegistrationCodeWithContext(ctx aws.Context, input *DeleteRegistrationCodeInput, opts ...request.Option) (*DeleteRegistrationCodeOutput, error) {
6280	req, out := c.DeleteRegistrationCodeRequest(input)
6281	req.SetContext(ctx)
6282	req.ApplyOptions(opts...)
6283	return out, req.Send()
6284}
6285
6286const opDeleteRoleAlias = "DeleteRoleAlias"
6287
6288// DeleteRoleAliasRequest generates a "aws/request.Request" representing the
6289// client's request for the DeleteRoleAlias operation. The "output" return
6290// value will be populated with the request's response once the request completes
6291// successfully.
6292//
6293// Use "Send" method on the returned Request to send the API call to the service.
6294// the "output" return value is not valid until after Send returns without error.
6295//
6296// See DeleteRoleAlias for more information on using the DeleteRoleAlias
6297// API call, and error handling.
6298//
6299// This method is useful when you want to inject custom logic or configuration
6300// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6301//
6302//
6303//    // Example sending a request using the DeleteRoleAliasRequest method.
6304//    req, resp := client.DeleteRoleAliasRequest(params)
6305//
6306//    err := req.Send()
6307//    if err == nil { // resp is now filled
6308//        fmt.Println(resp)
6309//    }
6310func (c *IoT) DeleteRoleAliasRequest(input *DeleteRoleAliasInput) (req *request.Request, output *DeleteRoleAliasOutput) {
6311	op := &request.Operation{
6312		Name:       opDeleteRoleAlias,
6313		HTTPMethod: "DELETE",
6314		HTTPPath:   "/role-aliases/{roleAlias}",
6315	}
6316
6317	if input == nil {
6318		input = &DeleteRoleAliasInput{}
6319	}
6320
6321	output = &DeleteRoleAliasOutput{}
6322	req = c.newRequest(op, input, output)
6323	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6324	return
6325}
6326
6327// DeleteRoleAlias API operation for AWS IoT.
6328//
6329// Deletes a role alias
6330//
6331// Requires permission to access the DeleteRoleAlias (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
6332// action.
6333//
6334// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6335// with awserr.Error's Code and Message methods to get detailed information about
6336// the error.
6337//
6338// See the AWS API reference guide for AWS IoT's
6339// API operation DeleteRoleAlias for usage and error information.
6340//
6341// Returned Error Types:
6342//   * DeleteConflictException
6343//   You can't delete the resource because it is attached to one or more resources.
6344//
6345//   * InvalidRequestException
6346//   The request is not valid.
6347//
6348//   * ThrottlingException
6349//   The rate exceeds the limit.
6350//
6351//   * UnauthorizedException
6352//   You are not authorized to perform this operation.
6353//
6354//   * ServiceUnavailableException
6355//   The service is temporarily unavailable.
6356//
6357//   * InternalFailureException
6358//   An unexpected error has occurred.
6359//
6360//   * ResourceNotFoundException
6361//   The specified resource does not exist.
6362//
6363func (c *IoT) DeleteRoleAlias(input *DeleteRoleAliasInput) (*DeleteRoleAliasOutput, error) {
6364	req, out := c.DeleteRoleAliasRequest(input)
6365	return out, req.Send()
6366}
6367
6368// DeleteRoleAliasWithContext is the same as DeleteRoleAlias with the addition of
6369// the ability to pass a context and additional request options.
6370//
6371// See DeleteRoleAlias for details on how to use this API operation.
6372//
6373// The context must be non-nil and will be used for request cancellation. If
6374// the context is nil a panic will occur. In the future the SDK may create
6375// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6376// for more information on using Contexts.
6377func (c *IoT) DeleteRoleAliasWithContext(ctx aws.Context, input *DeleteRoleAliasInput, opts ...request.Option) (*DeleteRoleAliasOutput, error) {
6378	req, out := c.DeleteRoleAliasRequest(input)
6379	req.SetContext(ctx)
6380	req.ApplyOptions(opts...)
6381	return out, req.Send()
6382}
6383
6384const opDeleteScheduledAudit = "DeleteScheduledAudit"
6385
6386// DeleteScheduledAuditRequest generates a "aws/request.Request" representing the
6387// client's request for the DeleteScheduledAudit operation. The "output" return
6388// value will be populated with the request's response once the request completes
6389// successfully.
6390//
6391// Use "Send" method on the returned Request to send the API call to the service.
6392// the "output" return value is not valid until after Send returns without error.
6393//
6394// See DeleteScheduledAudit for more information on using the DeleteScheduledAudit
6395// API call, and error handling.
6396//
6397// This method is useful when you want to inject custom logic or configuration
6398// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6399//
6400//
6401//    // Example sending a request using the DeleteScheduledAuditRequest method.
6402//    req, resp := client.DeleteScheduledAuditRequest(params)
6403//
6404//    err := req.Send()
6405//    if err == nil { // resp is now filled
6406//        fmt.Println(resp)
6407//    }
6408func (c *IoT) DeleteScheduledAuditRequest(input *DeleteScheduledAuditInput) (req *request.Request, output *DeleteScheduledAuditOutput) {
6409	op := &request.Operation{
6410		Name:       opDeleteScheduledAudit,
6411		HTTPMethod: "DELETE",
6412		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
6413	}
6414
6415	if input == nil {
6416		input = &DeleteScheduledAuditInput{}
6417	}
6418
6419	output = &DeleteScheduledAuditOutput{}
6420	req = c.newRequest(op, input, output)
6421	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6422	return
6423}
6424
6425// DeleteScheduledAudit API operation for AWS IoT.
6426//
6427// Deletes a scheduled audit.
6428//
6429// Requires permission to access the DeleteScheduledAudit (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
6430// action.
6431//
6432// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6433// with awserr.Error's Code and Message methods to get detailed information about
6434// the error.
6435//
6436// See the AWS API reference guide for AWS IoT's
6437// API operation DeleteScheduledAudit for usage and error information.
6438//
6439// Returned Error Types:
6440//   * InvalidRequestException
6441//   The request is not valid.
6442//
6443//   * ResourceNotFoundException
6444//   The specified resource does not exist.
6445//
6446//   * ThrottlingException
6447//   The rate exceeds the limit.
6448//
6449//   * InternalFailureException
6450//   An unexpected error has occurred.
6451//
6452func (c *IoT) DeleteScheduledAudit(input *DeleteScheduledAuditInput) (*DeleteScheduledAuditOutput, error) {
6453	req, out := c.DeleteScheduledAuditRequest(input)
6454	return out, req.Send()
6455}
6456
6457// DeleteScheduledAuditWithContext is the same as DeleteScheduledAudit with the addition of
6458// the ability to pass a context and additional request options.
6459//
6460// See DeleteScheduledAudit for details on how to use this API operation.
6461//
6462// The context must be non-nil and will be used for request cancellation. If
6463// the context is nil a panic will occur. In the future the SDK may create
6464// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6465// for more information on using Contexts.
6466func (c *IoT) DeleteScheduledAuditWithContext(ctx aws.Context, input *DeleteScheduledAuditInput, opts ...request.Option) (*DeleteScheduledAuditOutput, error) {
6467	req, out := c.DeleteScheduledAuditRequest(input)
6468	req.SetContext(ctx)
6469	req.ApplyOptions(opts...)
6470	return out, req.Send()
6471}
6472
6473const opDeleteSecurityProfile = "DeleteSecurityProfile"
6474
6475// DeleteSecurityProfileRequest generates a "aws/request.Request" representing the
6476// client's request for the DeleteSecurityProfile operation. The "output" return
6477// value will be populated with the request's response once the request completes
6478// successfully.
6479//
6480// Use "Send" method on the returned Request to send the API call to the service.
6481// the "output" return value is not valid until after Send returns without error.
6482//
6483// See DeleteSecurityProfile for more information on using the DeleteSecurityProfile
6484// API call, and error handling.
6485//
6486// This method is useful when you want to inject custom logic or configuration
6487// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6488//
6489//
6490//    // Example sending a request using the DeleteSecurityProfileRequest method.
6491//    req, resp := client.DeleteSecurityProfileRequest(params)
6492//
6493//    err := req.Send()
6494//    if err == nil { // resp is now filled
6495//        fmt.Println(resp)
6496//    }
6497func (c *IoT) DeleteSecurityProfileRequest(input *DeleteSecurityProfileInput) (req *request.Request, output *DeleteSecurityProfileOutput) {
6498	op := &request.Operation{
6499		Name:       opDeleteSecurityProfile,
6500		HTTPMethod: "DELETE",
6501		HTTPPath:   "/security-profiles/{securityProfileName}",
6502	}
6503
6504	if input == nil {
6505		input = &DeleteSecurityProfileInput{}
6506	}
6507
6508	output = &DeleteSecurityProfileOutput{}
6509	req = c.newRequest(op, input, output)
6510	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6511	return
6512}
6513
6514// DeleteSecurityProfile API operation for AWS IoT.
6515//
6516// Deletes a Device Defender security profile.
6517//
6518// Requires permission to access the DeleteSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
6519// action.
6520//
6521// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6522// with awserr.Error's Code and Message methods to get detailed information about
6523// the error.
6524//
6525// See the AWS API reference guide for AWS IoT's
6526// API operation DeleteSecurityProfile for usage and error information.
6527//
6528// Returned Error Types:
6529//   * InvalidRequestException
6530//   The request is not valid.
6531//
6532//   * ThrottlingException
6533//   The rate exceeds the limit.
6534//
6535//   * InternalFailureException
6536//   An unexpected error has occurred.
6537//
6538//   * VersionConflictException
6539//   An exception thrown when the version of an entity specified with the expectedVersion
6540//   parameter does not match the latest version in the system.
6541//
6542func (c *IoT) DeleteSecurityProfile(input *DeleteSecurityProfileInput) (*DeleteSecurityProfileOutput, error) {
6543	req, out := c.DeleteSecurityProfileRequest(input)
6544	return out, req.Send()
6545}
6546
6547// DeleteSecurityProfileWithContext is the same as DeleteSecurityProfile with the addition of
6548// the ability to pass a context and additional request options.
6549//
6550// See DeleteSecurityProfile for details on how to use this API operation.
6551//
6552// The context must be non-nil and will be used for request cancellation. If
6553// the context is nil a panic will occur. In the future the SDK may create
6554// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6555// for more information on using Contexts.
6556func (c *IoT) DeleteSecurityProfileWithContext(ctx aws.Context, input *DeleteSecurityProfileInput, opts ...request.Option) (*DeleteSecurityProfileOutput, error) {
6557	req, out := c.DeleteSecurityProfileRequest(input)
6558	req.SetContext(ctx)
6559	req.ApplyOptions(opts...)
6560	return out, req.Send()
6561}
6562
6563const opDeleteStream = "DeleteStream"
6564
6565// DeleteStreamRequest generates a "aws/request.Request" representing the
6566// client's request for the DeleteStream operation. The "output" return
6567// value will be populated with the request's response once the request completes
6568// successfully.
6569//
6570// Use "Send" method on the returned Request to send the API call to the service.
6571// the "output" return value is not valid until after Send returns without error.
6572//
6573// See DeleteStream for more information on using the DeleteStream
6574// API call, and error handling.
6575//
6576// This method is useful when you want to inject custom logic or configuration
6577// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6578//
6579//
6580//    // Example sending a request using the DeleteStreamRequest method.
6581//    req, resp := client.DeleteStreamRequest(params)
6582//
6583//    err := req.Send()
6584//    if err == nil { // resp is now filled
6585//        fmt.Println(resp)
6586//    }
6587func (c *IoT) DeleteStreamRequest(input *DeleteStreamInput) (req *request.Request, output *DeleteStreamOutput) {
6588	op := &request.Operation{
6589		Name:       opDeleteStream,
6590		HTTPMethod: "DELETE",
6591		HTTPPath:   "/streams/{streamId}",
6592	}
6593
6594	if input == nil {
6595		input = &DeleteStreamInput{}
6596	}
6597
6598	output = &DeleteStreamOutput{}
6599	req = c.newRequest(op, input, output)
6600	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6601	return
6602}
6603
6604// DeleteStream API operation for AWS IoT.
6605//
6606// Deletes a stream.
6607//
6608// Requires permission to access the DeleteStream (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
6609// action.
6610//
6611// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6612// with awserr.Error's Code and Message methods to get detailed information about
6613// the error.
6614//
6615// See the AWS API reference guide for AWS IoT's
6616// API operation DeleteStream for usage and error information.
6617//
6618// Returned Error Types:
6619//   * ResourceNotFoundException
6620//   The specified resource does not exist.
6621//
6622//   * DeleteConflictException
6623//   You can't delete the resource because it is attached to one or more resources.
6624//
6625//   * InvalidRequestException
6626//   The request is not valid.
6627//
6628//   * ThrottlingException
6629//   The rate exceeds the limit.
6630//
6631//   * UnauthorizedException
6632//   You are not authorized to perform this operation.
6633//
6634//   * ServiceUnavailableException
6635//   The service is temporarily unavailable.
6636//
6637//   * InternalFailureException
6638//   An unexpected error has occurred.
6639//
6640func (c *IoT) DeleteStream(input *DeleteStreamInput) (*DeleteStreamOutput, error) {
6641	req, out := c.DeleteStreamRequest(input)
6642	return out, req.Send()
6643}
6644
6645// DeleteStreamWithContext is the same as DeleteStream with the addition of
6646// the ability to pass a context and additional request options.
6647//
6648// See DeleteStream for details on how to use this API operation.
6649//
6650// The context must be non-nil and will be used for request cancellation. If
6651// the context is nil a panic will occur. In the future the SDK may create
6652// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6653// for more information on using Contexts.
6654func (c *IoT) DeleteStreamWithContext(ctx aws.Context, input *DeleteStreamInput, opts ...request.Option) (*DeleteStreamOutput, error) {
6655	req, out := c.DeleteStreamRequest(input)
6656	req.SetContext(ctx)
6657	req.ApplyOptions(opts...)
6658	return out, req.Send()
6659}
6660
6661const opDeleteThing = "DeleteThing"
6662
6663// DeleteThingRequest generates a "aws/request.Request" representing the
6664// client's request for the DeleteThing operation. The "output" return
6665// value will be populated with the request's response once the request completes
6666// successfully.
6667//
6668// Use "Send" method on the returned Request to send the API call to the service.
6669// the "output" return value is not valid until after Send returns without error.
6670//
6671// See DeleteThing for more information on using the DeleteThing
6672// API call, and error handling.
6673//
6674// This method is useful when you want to inject custom logic or configuration
6675// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6676//
6677//
6678//    // Example sending a request using the DeleteThingRequest method.
6679//    req, resp := client.DeleteThingRequest(params)
6680//
6681//    err := req.Send()
6682//    if err == nil { // resp is now filled
6683//        fmt.Println(resp)
6684//    }
6685func (c *IoT) DeleteThingRequest(input *DeleteThingInput) (req *request.Request, output *DeleteThingOutput) {
6686	op := &request.Operation{
6687		Name:       opDeleteThing,
6688		HTTPMethod: "DELETE",
6689		HTTPPath:   "/things/{thingName}",
6690	}
6691
6692	if input == nil {
6693		input = &DeleteThingInput{}
6694	}
6695
6696	output = &DeleteThingOutput{}
6697	req = c.newRequest(op, input, output)
6698	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6699	return
6700}
6701
6702// DeleteThing API operation for AWS IoT.
6703//
6704// Deletes the specified thing. Returns successfully with no error if the deletion
6705// is successful or you specify a thing that doesn't exist.
6706//
6707// Requires permission to access the DeleteThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
6708// action.
6709//
6710// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6711// with awserr.Error's Code and Message methods to get detailed information about
6712// the error.
6713//
6714// See the AWS API reference guide for AWS IoT's
6715// API operation DeleteThing for usage and error information.
6716//
6717// Returned Error Types:
6718//   * ResourceNotFoundException
6719//   The specified resource does not exist.
6720//
6721//   * VersionConflictException
6722//   An exception thrown when the version of an entity specified with the expectedVersion
6723//   parameter does not match the latest version in the system.
6724//
6725//   * InvalidRequestException
6726//   The request is not valid.
6727//
6728//   * ThrottlingException
6729//   The rate exceeds the limit.
6730//
6731//   * UnauthorizedException
6732//   You are not authorized to perform this operation.
6733//
6734//   * ServiceUnavailableException
6735//   The service is temporarily unavailable.
6736//
6737//   * InternalFailureException
6738//   An unexpected error has occurred.
6739//
6740func (c *IoT) DeleteThing(input *DeleteThingInput) (*DeleteThingOutput, error) {
6741	req, out := c.DeleteThingRequest(input)
6742	return out, req.Send()
6743}
6744
6745// DeleteThingWithContext is the same as DeleteThing with the addition of
6746// the ability to pass a context and additional request options.
6747//
6748// See DeleteThing for details on how to use this API operation.
6749//
6750// The context must be non-nil and will be used for request cancellation. If
6751// the context is nil a panic will occur. In the future the SDK may create
6752// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6753// for more information on using Contexts.
6754func (c *IoT) DeleteThingWithContext(ctx aws.Context, input *DeleteThingInput, opts ...request.Option) (*DeleteThingOutput, error) {
6755	req, out := c.DeleteThingRequest(input)
6756	req.SetContext(ctx)
6757	req.ApplyOptions(opts...)
6758	return out, req.Send()
6759}
6760
6761const opDeleteThingGroup = "DeleteThingGroup"
6762
6763// DeleteThingGroupRequest generates a "aws/request.Request" representing the
6764// client's request for the DeleteThingGroup operation. The "output" return
6765// value will be populated with the request's response once the request completes
6766// successfully.
6767//
6768// Use "Send" method on the returned Request to send the API call to the service.
6769// the "output" return value is not valid until after Send returns without error.
6770//
6771// See DeleteThingGroup for more information on using the DeleteThingGroup
6772// API call, and error handling.
6773//
6774// This method is useful when you want to inject custom logic or configuration
6775// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6776//
6777//
6778//    // Example sending a request using the DeleteThingGroupRequest method.
6779//    req, resp := client.DeleteThingGroupRequest(params)
6780//
6781//    err := req.Send()
6782//    if err == nil { // resp is now filled
6783//        fmt.Println(resp)
6784//    }
6785func (c *IoT) DeleteThingGroupRequest(input *DeleteThingGroupInput) (req *request.Request, output *DeleteThingGroupOutput) {
6786	op := &request.Operation{
6787		Name:       opDeleteThingGroup,
6788		HTTPMethod: "DELETE",
6789		HTTPPath:   "/thing-groups/{thingGroupName}",
6790	}
6791
6792	if input == nil {
6793		input = &DeleteThingGroupInput{}
6794	}
6795
6796	output = &DeleteThingGroupOutput{}
6797	req = c.newRequest(op, input, output)
6798	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6799	return
6800}
6801
6802// DeleteThingGroup API operation for AWS IoT.
6803//
6804// Deletes a thing group.
6805//
6806// Requires permission to access the DeleteThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
6807// action.
6808//
6809// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6810// with awserr.Error's Code and Message methods to get detailed information about
6811// the error.
6812//
6813// See the AWS API reference guide for AWS IoT's
6814// API operation DeleteThingGroup for usage and error information.
6815//
6816// Returned Error Types:
6817//   * InvalidRequestException
6818//   The request is not valid.
6819//
6820//   * VersionConflictException
6821//   An exception thrown when the version of an entity specified with the expectedVersion
6822//   parameter does not match the latest version in the system.
6823//
6824//   * ThrottlingException
6825//   The rate exceeds the limit.
6826//
6827//   * InternalFailureException
6828//   An unexpected error has occurred.
6829//
6830func (c *IoT) DeleteThingGroup(input *DeleteThingGroupInput) (*DeleteThingGroupOutput, error) {
6831	req, out := c.DeleteThingGroupRequest(input)
6832	return out, req.Send()
6833}
6834
6835// DeleteThingGroupWithContext is the same as DeleteThingGroup with the addition of
6836// the ability to pass a context and additional request options.
6837//
6838// See DeleteThingGroup for details on how to use this API operation.
6839//
6840// The context must be non-nil and will be used for request cancellation. If
6841// the context is nil a panic will occur. In the future the SDK may create
6842// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6843// for more information on using Contexts.
6844func (c *IoT) DeleteThingGroupWithContext(ctx aws.Context, input *DeleteThingGroupInput, opts ...request.Option) (*DeleteThingGroupOutput, error) {
6845	req, out := c.DeleteThingGroupRequest(input)
6846	req.SetContext(ctx)
6847	req.ApplyOptions(opts...)
6848	return out, req.Send()
6849}
6850
6851const opDeleteThingType = "DeleteThingType"
6852
6853// DeleteThingTypeRequest generates a "aws/request.Request" representing the
6854// client's request for the DeleteThingType operation. The "output" return
6855// value will be populated with the request's response once the request completes
6856// successfully.
6857//
6858// Use "Send" method on the returned Request to send the API call to the service.
6859// the "output" return value is not valid until after Send returns without error.
6860//
6861// See DeleteThingType for more information on using the DeleteThingType
6862// API call, and error handling.
6863//
6864// This method is useful when you want to inject custom logic or configuration
6865// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6866//
6867//
6868//    // Example sending a request using the DeleteThingTypeRequest method.
6869//    req, resp := client.DeleteThingTypeRequest(params)
6870//
6871//    err := req.Send()
6872//    if err == nil { // resp is now filled
6873//        fmt.Println(resp)
6874//    }
6875func (c *IoT) DeleteThingTypeRequest(input *DeleteThingTypeInput) (req *request.Request, output *DeleteThingTypeOutput) {
6876	op := &request.Operation{
6877		Name:       opDeleteThingType,
6878		HTTPMethod: "DELETE",
6879		HTTPPath:   "/thing-types/{thingTypeName}",
6880	}
6881
6882	if input == nil {
6883		input = &DeleteThingTypeInput{}
6884	}
6885
6886	output = &DeleteThingTypeOutput{}
6887	req = c.newRequest(op, input, output)
6888	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6889	return
6890}
6891
6892// DeleteThingType API operation for AWS IoT.
6893//
6894// Deletes the specified thing type. You cannot delete a thing type if it has
6895// things associated with it. To delete a thing type, first mark it as deprecated
6896// by calling DeprecateThingType, then remove any associated things by calling
6897// UpdateThing to change the thing type on any associated thing, and finally
6898// use DeleteThingType to delete the thing type.
6899//
6900// Requires permission to access the DeleteThingType (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
6901// action.
6902//
6903// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6904// with awserr.Error's Code and Message methods to get detailed information about
6905// the error.
6906//
6907// See the AWS API reference guide for AWS IoT's
6908// API operation DeleteThingType for usage and error information.
6909//
6910// Returned Error Types:
6911//   * ResourceNotFoundException
6912//   The specified resource does not exist.
6913//
6914//   * InvalidRequestException
6915//   The request is not valid.
6916//
6917//   * ThrottlingException
6918//   The rate exceeds the limit.
6919//
6920//   * UnauthorizedException
6921//   You are not authorized to perform this operation.
6922//
6923//   * ServiceUnavailableException
6924//   The service is temporarily unavailable.
6925//
6926//   * InternalFailureException
6927//   An unexpected error has occurred.
6928//
6929func (c *IoT) DeleteThingType(input *DeleteThingTypeInput) (*DeleteThingTypeOutput, error) {
6930	req, out := c.DeleteThingTypeRequest(input)
6931	return out, req.Send()
6932}
6933
6934// DeleteThingTypeWithContext is the same as DeleteThingType with the addition of
6935// the ability to pass a context and additional request options.
6936//
6937// See DeleteThingType for details on how to use this API operation.
6938//
6939// The context must be non-nil and will be used for request cancellation. If
6940// the context is nil a panic will occur. In the future the SDK may create
6941// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6942// for more information on using Contexts.
6943func (c *IoT) DeleteThingTypeWithContext(ctx aws.Context, input *DeleteThingTypeInput, opts ...request.Option) (*DeleteThingTypeOutput, error) {
6944	req, out := c.DeleteThingTypeRequest(input)
6945	req.SetContext(ctx)
6946	req.ApplyOptions(opts...)
6947	return out, req.Send()
6948}
6949
6950const opDeleteTopicRule = "DeleteTopicRule"
6951
6952// DeleteTopicRuleRequest generates a "aws/request.Request" representing the
6953// client's request for the DeleteTopicRule operation. The "output" return
6954// value will be populated with the request's response once the request completes
6955// successfully.
6956//
6957// Use "Send" method on the returned Request to send the API call to the service.
6958// the "output" return value is not valid until after Send returns without error.
6959//
6960// See DeleteTopicRule for more information on using the DeleteTopicRule
6961// API call, and error handling.
6962//
6963// This method is useful when you want to inject custom logic or configuration
6964// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6965//
6966//
6967//    // Example sending a request using the DeleteTopicRuleRequest method.
6968//    req, resp := client.DeleteTopicRuleRequest(params)
6969//
6970//    err := req.Send()
6971//    if err == nil { // resp is now filled
6972//        fmt.Println(resp)
6973//    }
6974func (c *IoT) DeleteTopicRuleRequest(input *DeleteTopicRuleInput) (req *request.Request, output *DeleteTopicRuleOutput) {
6975	op := &request.Operation{
6976		Name:       opDeleteTopicRule,
6977		HTTPMethod: "DELETE",
6978		HTTPPath:   "/rules/{ruleName}",
6979	}
6980
6981	if input == nil {
6982		input = &DeleteTopicRuleInput{}
6983	}
6984
6985	output = &DeleteTopicRuleOutput{}
6986	req = c.newRequest(op, input, output)
6987	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
6988	return
6989}
6990
6991// DeleteTopicRule API operation for AWS IoT.
6992//
6993// Deletes the rule.
6994//
6995// Requires permission to access the DeleteTopicRule (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
6996// action.
6997//
6998// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6999// with awserr.Error's Code and Message methods to get detailed information about
7000// the error.
7001//
7002// See the AWS API reference guide for AWS IoT's
7003// API operation DeleteTopicRule for usage and error information.
7004//
7005// Returned Error Types:
7006//   * InternalException
7007//   An unexpected error has occurred.
7008//
7009//   * InvalidRequestException
7010//   The request is not valid.
7011//
7012//   * ServiceUnavailableException
7013//   The service is temporarily unavailable.
7014//
7015//   * UnauthorizedException
7016//   You are not authorized to perform this operation.
7017//
7018//   * ConflictingResourceUpdateException
7019//   A conflicting resource update exception. This exception is thrown when two
7020//   pending updates cause a conflict.
7021//
7022func (c *IoT) DeleteTopicRule(input *DeleteTopicRuleInput) (*DeleteTopicRuleOutput, error) {
7023	req, out := c.DeleteTopicRuleRequest(input)
7024	return out, req.Send()
7025}
7026
7027// DeleteTopicRuleWithContext is the same as DeleteTopicRule with the addition of
7028// the ability to pass a context and additional request options.
7029//
7030// See DeleteTopicRule for details on how to use this API operation.
7031//
7032// The context must be non-nil and will be used for request cancellation. If
7033// the context is nil a panic will occur. In the future the SDK may create
7034// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7035// for more information on using Contexts.
7036func (c *IoT) DeleteTopicRuleWithContext(ctx aws.Context, input *DeleteTopicRuleInput, opts ...request.Option) (*DeleteTopicRuleOutput, error) {
7037	req, out := c.DeleteTopicRuleRequest(input)
7038	req.SetContext(ctx)
7039	req.ApplyOptions(opts...)
7040	return out, req.Send()
7041}
7042
7043const opDeleteTopicRuleDestination = "DeleteTopicRuleDestination"
7044
7045// DeleteTopicRuleDestinationRequest generates a "aws/request.Request" representing the
7046// client's request for the DeleteTopicRuleDestination operation. The "output" return
7047// value will be populated with the request's response once the request completes
7048// successfully.
7049//
7050// Use "Send" method on the returned Request to send the API call to the service.
7051// the "output" return value is not valid until after Send returns without error.
7052//
7053// See DeleteTopicRuleDestination for more information on using the DeleteTopicRuleDestination
7054// API call, and error handling.
7055//
7056// This method is useful when you want to inject custom logic or configuration
7057// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7058//
7059//
7060//    // Example sending a request using the DeleteTopicRuleDestinationRequest method.
7061//    req, resp := client.DeleteTopicRuleDestinationRequest(params)
7062//
7063//    err := req.Send()
7064//    if err == nil { // resp is now filled
7065//        fmt.Println(resp)
7066//    }
7067func (c *IoT) DeleteTopicRuleDestinationRequest(input *DeleteTopicRuleDestinationInput) (req *request.Request, output *DeleteTopicRuleDestinationOutput) {
7068	op := &request.Operation{
7069		Name:       opDeleteTopicRuleDestination,
7070		HTTPMethod: "DELETE",
7071		HTTPPath:   "/destinations/{arn+}",
7072	}
7073
7074	if input == nil {
7075		input = &DeleteTopicRuleDestinationInput{}
7076	}
7077
7078	output = &DeleteTopicRuleDestinationOutput{}
7079	req = c.newRequest(op, input, output)
7080	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7081	return
7082}
7083
7084// DeleteTopicRuleDestination API operation for AWS IoT.
7085//
7086// Deletes a topic rule destination.
7087//
7088// Requires permission to access the DeleteTopicRuleDestination (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
7089// action.
7090//
7091// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7092// with awserr.Error's Code and Message methods to get detailed information about
7093// the error.
7094//
7095// See the AWS API reference guide for AWS IoT's
7096// API operation DeleteTopicRuleDestination for usage and error information.
7097//
7098// Returned Error Types:
7099//   * InternalException
7100//   An unexpected error has occurred.
7101//
7102//   * InvalidRequestException
7103//   The request is not valid.
7104//
7105//   * ServiceUnavailableException
7106//   The service is temporarily unavailable.
7107//
7108//   * UnauthorizedException
7109//   You are not authorized to perform this operation.
7110//
7111//   * ConflictingResourceUpdateException
7112//   A conflicting resource update exception. This exception is thrown when two
7113//   pending updates cause a conflict.
7114//
7115func (c *IoT) DeleteTopicRuleDestination(input *DeleteTopicRuleDestinationInput) (*DeleteTopicRuleDestinationOutput, error) {
7116	req, out := c.DeleteTopicRuleDestinationRequest(input)
7117	return out, req.Send()
7118}
7119
7120// DeleteTopicRuleDestinationWithContext is the same as DeleteTopicRuleDestination with the addition of
7121// the ability to pass a context and additional request options.
7122//
7123// See DeleteTopicRuleDestination for details on how to use this API operation.
7124//
7125// The context must be non-nil and will be used for request cancellation. If
7126// the context is nil a panic will occur. In the future the SDK may create
7127// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7128// for more information on using Contexts.
7129func (c *IoT) DeleteTopicRuleDestinationWithContext(ctx aws.Context, input *DeleteTopicRuleDestinationInput, opts ...request.Option) (*DeleteTopicRuleDestinationOutput, error) {
7130	req, out := c.DeleteTopicRuleDestinationRequest(input)
7131	req.SetContext(ctx)
7132	req.ApplyOptions(opts...)
7133	return out, req.Send()
7134}
7135
7136const opDeleteV2LoggingLevel = "DeleteV2LoggingLevel"
7137
7138// DeleteV2LoggingLevelRequest generates a "aws/request.Request" representing the
7139// client's request for the DeleteV2LoggingLevel operation. The "output" return
7140// value will be populated with the request's response once the request completes
7141// successfully.
7142//
7143// Use "Send" method on the returned Request to send the API call to the service.
7144// the "output" return value is not valid until after Send returns without error.
7145//
7146// See DeleteV2LoggingLevel for more information on using the DeleteV2LoggingLevel
7147// API call, and error handling.
7148//
7149// This method is useful when you want to inject custom logic or configuration
7150// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7151//
7152//
7153//    // Example sending a request using the DeleteV2LoggingLevelRequest method.
7154//    req, resp := client.DeleteV2LoggingLevelRequest(params)
7155//
7156//    err := req.Send()
7157//    if err == nil { // resp is now filled
7158//        fmt.Println(resp)
7159//    }
7160func (c *IoT) DeleteV2LoggingLevelRequest(input *DeleteV2LoggingLevelInput) (req *request.Request, output *DeleteV2LoggingLevelOutput) {
7161	op := &request.Operation{
7162		Name:       opDeleteV2LoggingLevel,
7163		HTTPMethod: "DELETE",
7164		HTTPPath:   "/v2LoggingLevel",
7165	}
7166
7167	if input == nil {
7168		input = &DeleteV2LoggingLevelInput{}
7169	}
7170
7171	output = &DeleteV2LoggingLevelOutput{}
7172	req = c.newRequest(op, input, output)
7173	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7174	return
7175}
7176
7177// DeleteV2LoggingLevel API operation for AWS IoT.
7178//
7179// Deletes a logging level.
7180//
7181// Requires permission to access the DeleteV2LoggingLevel (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
7182// action.
7183//
7184// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7185// with awserr.Error's Code and Message methods to get detailed information about
7186// the error.
7187//
7188// See the AWS API reference guide for AWS IoT's
7189// API operation DeleteV2LoggingLevel for usage and error information.
7190//
7191// Returned Error Types:
7192//   * InternalException
7193//   An unexpected error has occurred.
7194//
7195//   * InvalidRequestException
7196//   The request is not valid.
7197//
7198//   * ServiceUnavailableException
7199//   The service is temporarily unavailable.
7200//
7201func (c *IoT) DeleteV2LoggingLevel(input *DeleteV2LoggingLevelInput) (*DeleteV2LoggingLevelOutput, error) {
7202	req, out := c.DeleteV2LoggingLevelRequest(input)
7203	return out, req.Send()
7204}
7205
7206// DeleteV2LoggingLevelWithContext is the same as DeleteV2LoggingLevel with the addition of
7207// the ability to pass a context and additional request options.
7208//
7209// See DeleteV2LoggingLevel for details on how to use this API operation.
7210//
7211// The context must be non-nil and will be used for request cancellation. If
7212// the context is nil a panic will occur. In the future the SDK may create
7213// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7214// for more information on using Contexts.
7215func (c *IoT) DeleteV2LoggingLevelWithContext(ctx aws.Context, input *DeleteV2LoggingLevelInput, opts ...request.Option) (*DeleteV2LoggingLevelOutput, error) {
7216	req, out := c.DeleteV2LoggingLevelRequest(input)
7217	req.SetContext(ctx)
7218	req.ApplyOptions(opts...)
7219	return out, req.Send()
7220}
7221
7222const opDeprecateThingType = "DeprecateThingType"
7223
7224// DeprecateThingTypeRequest generates a "aws/request.Request" representing the
7225// client's request for the DeprecateThingType operation. The "output" return
7226// value will be populated with the request's response once the request completes
7227// successfully.
7228//
7229// Use "Send" method on the returned Request to send the API call to the service.
7230// the "output" return value is not valid until after Send returns without error.
7231//
7232// See DeprecateThingType for more information on using the DeprecateThingType
7233// API call, and error handling.
7234//
7235// This method is useful when you want to inject custom logic or configuration
7236// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7237//
7238//
7239//    // Example sending a request using the DeprecateThingTypeRequest method.
7240//    req, resp := client.DeprecateThingTypeRequest(params)
7241//
7242//    err := req.Send()
7243//    if err == nil { // resp is now filled
7244//        fmt.Println(resp)
7245//    }
7246func (c *IoT) DeprecateThingTypeRequest(input *DeprecateThingTypeInput) (req *request.Request, output *DeprecateThingTypeOutput) {
7247	op := &request.Operation{
7248		Name:       opDeprecateThingType,
7249		HTTPMethod: "POST",
7250		HTTPPath:   "/thing-types/{thingTypeName}/deprecate",
7251	}
7252
7253	if input == nil {
7254		input = &DeprecateThingTypeInput{}
7255	}
7256
7257	output = &DeprecateThingTypeOutput{}
7258	req = c.newRequest(op, input, output)
7259	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7260	return
7261}
7262
7263// DeprecateThingType API operation for AWS IoT.
7264//
7265// Deprecates a thing type. You can not associate new things with deprecated
7266// thing type.
7267//
7268// Requires permission to access the DeprecateThingType (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
7269// action.
7270//
7271// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7272// with awserr.Error's Code and Message methods to get detailed information about
7273// the error.
7274//
7275// See the AWS API reference guide for AWS IoT's
7276// API operation DeprecateThingType for usage and error information.
7277//
7278// Returned Error Types:
7279//   * ResourceNotFoundException
7280//   The specified resource does not exist.
7281//
7282//   * InvalidRequestException
7283//   The request is not valid.
7284//
7285//   * ThrottlingException
7286//   The rate exceeds the limit.
7287//
7288//   * UnauthorizedException
7289//   You are not authorized to perform this operation.
7290//
7291//   * ServiceUnavailableException
7292//   The service is temporarily unavailable.
7293//
7294//   * InternalFailureException
7295//   An unexpected error has occurred.
7296//
7297func (c *IoT) DeprecateThingType(input *DeprecateThingTypeInput) (*DeprecateThingTypeOutput, error) {
7298	req, out := c.DeprecateThingTypeRequest(input)
7299	return out, req.Send()
7300}
7301
7302// DeprecateThingTypeWithContext is the same as DeprecateThingType with the addition of
7303// the ability to pass a context and additional request options.
7304//
7305// See DeprecateThingType for details on how to use this API operation.
7306//
7307// The context must be non-nil and will be used for request cancellation. If
7308// the context is nil a panic will occur. In the future the SDK may create
7309// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7310// for more information on using Contexts.
7311func (c *IoT) DeprecateThingTypeWithContext(ctx aws.Context, input *DeprecateThingTypeInput, opts ...request.Option) (*DeprecateThingTypeOutput, error) {
7312	req, out := c.DeprecateThingTypeRequest(input)
7313	req.SetContext(ctx)
7314	req.ApplyOptions(opts...)
7315	return out, req.Send()
7316}
7317
7318const opDescribeAccountAuditConfiguration = "DescribeAccountAuditConfiguration"
7319
7320// DescribeAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
7321// client's request for the DescribeAccountAuditConfiguration operation. The "output" return
7322// value will be populated with the request's response once the request completes
7323// successfully.
7324//
7325// Use "Send" method on the returned Request to send the API call to the service.
7326// the "output" return value is not valid until after Send returns without error.
7327//
7328// See DescribeAccountAuditConfiguration for more information on using the DescribeAccountAuditConfiguration
7329// API call, and error handling.
7330//
7331// This method is useful when you want to inject custom logic or configuration
7332// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7333//
7334//
7335//    // Example sending a request using the DescribeAccountAuditConfigurationRequest method.
7336//    req, resp := client.DescribeAccountAuditConfigurationRequest(params)
7337//
7338//    err := req.Send()
7339//    if err == nil { // resp is now filled
7340//        fmt.Println(resp)
7341//    }
7342func (c *IoT) DescribeAccountAuditConfigurationRequest(input *DescribeAccountAuditConfigurationInput) (req *request.Request, output *DescribeAccountAuditConfigurationOutput) {
7343	op := &request.Operation{
7344		Name:       opDescribeAccountAuditConfiguration,
7345		HTTPMethod: "GET",
7346		HTTPPath:   "/audit/configuration",
7347	}
7348
7349	if input == nil {
7350		input = &DescribeAccountAuditConfigurationInput{}
7351	}
7352
7353	output = &DescribeAccountAuditConfigurationOutput{}
7354	req = c.newRequest(op, input, output)
7355	return
7356}
7357
7358// DescribeAccountAuditConfiguration API operation for AWS IoT.
7359//
7360// Gets information about the Device Defender audit settings for this account.
7361// Settings include how audit notifications are sent and which audit checks
7362// are enabled or disabled.
7363//
7364// Requires permission to access the DescribeAccountAuditConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
7365// action.
7366//
7367// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7368// with awserr.Error's Code and Message methods to get detailed information about
7369// the error.
7370//
7371// See the AWS API reference guide for AWS IoT's
7372// API operation DescribeAccountAuditConfiguration for usage and error information.
7373//
7374// Returned Error Types:
7375//   * ThrottlingException
7376//   The rate exceeds the limit.
7377//
7378//   * InternalFailureException
7379//   An unexpected error has occurred.
7380//
7381func (c *IoT) DescribeAccountAuditConfiguration(input *DescribeAccountAuditConfigurationInput) (*DescribeAccountAuditConfigurationOutput, error) {
7382	req, out := c.DescribeAccountAuditConfigurationRequest(input)
7383	return out, req.Send()
7384}
7385
7386// DescribeAccountAuditConfigurationWithContext is the same as DescribeAccountAuditConfiguration with the addition of
7387// the ability to pass a context and additional request options.
7388//
7389// See DescribeAccountAuditConfiguration for details on how to use this API operation.
7390//
7391// The context must be non-nil and will be used for request cancellation. If
7392// the context is nil a panic will occur. In the future the SDK may create
7393// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7394// for more information on using Contexts.
7395func (c *IoT) DescribeAccountAuditConfigurationWithContext(ctx aws.Context, input *DescribeAccountAuditConfigurationInput, opts ...request.Option) (*DescribeAccountAuditConfigurationOutput, error) {
7396	req, out := c.DescribeAccountAuditConfigurationRequest(input)
7397	req.SetContext(ctx)
7398	req.ApplyOptions(opts...)
7399	return out, req.Send()
7400}
7401
7402const opDescribeAuditFinding = "DescribeAuditFinding"
7403
7404// DescribeAuditFindingRequest generates a "aws/request.Request" representing the
7405// client's request for the DescribeAuditFinding operation. The "output" return
7406// value will be populated with the request's response once the request completes
7407// successfully.
7408//
7409// Use "Send" method on the returned Request to send the API call to the service.
7410// the "output" return value is not valid until after Send returns without error.
7411//
7412// See DescribeAuditFinding for more information on using the DescribeAuditFinding
7413// API call, and error handling.
7414//
7415// This method is useful when you want to inject custom logic or configuration
7416// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7417//
7418//
7419//    // Example sending a request using the DescribeAuditFindingRequest method.
7420//    req, resp := client.DescribeAuditFindingRequest(params)
7421//
7422//    err := req.Send()
7423//    if err == nil { // resp is now filled
7424//        fmt.Println(resp)
7425//    }
7426func (c *IoT) DescribeAuditFindingRequest(input *DescribeAuditFindingInput) (req *request.Request, output *DescribeAuditFindingOutput) {
7427	op := &request.Operation{
7428		Name:       opDescribeAuditFinding,
7429		HTTPMethod: "GET",
7430		HTTPPath:   "/audit/findings/{findingId}",
7431	}
7432
7433	if input == nil {
7434		input = &DescribeAuditFindingInput{}
7435	}
7436
7437	output = &DescribeAuditFindingOutput{}
7438	req = c.newRequest(op, input, output)
7439	return
7440}
7441
7442// DescribeAuditFinding API operation for AWS IoT.
7443//
7444// Gets information about a single audit finding. Properties include the reason
7445// for noncompliance, the severity of the issue, and the start time when the
7446// audit that returned the finding.
7447//
7448// Requires permission to access the DescribeAuditFinding (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
7449// action.
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 DescribeAuditFinding for usage and error information.
7457//
7458// Returned Error Types:
7459//   * ResourceNotFoundException
7460//   The specified resource does not exist.
7461//
7462//   * InvalidRequestException
7463//   The request is not valid.
7464//
7465//   * ThrottlingException
7466//   The rate exceeds the limit.
7467//
7468//   * InternalFailureException
7469//   An unexpected error has occurred.
7470//
7471func (c *IoT) DescribeAuditFinding(input *DescribeAuditFindingInput) (*DescribeAuditFindingOutput, error) {
7472	req, out := c.DescribeAuditFindingRequest(input)
7473	return out, req.Send()
7474}
7475
7476// DescribeAuditFindingWithContext is the same as DescribeAuditFinding with the addition of
7477// the ability to pass a context and additional request options.
7478//
7479// See DescribeAuditFinding 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) DescribeAuditFindingWithContext(ctx aws.Context, input *DescribeAuditFindingInput, opts ...request.Option) (*DescribeAuditFindingOutput, error) {
7486	req, out := c.DescribeAuditFindingRequest(input)
7487	req.SetContext(ctx)
7488	req.ApplyOptions(opts...)
7489	return out, req.Send()
7490}
7491
7492const opDescribeAuditMitigationActionsTask = "DescribeAuditMitigationActionsTask"
7493
7494// DescribeAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
7495// client's request for the DescribeAuditMitigationActionsTask 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 DescribeAuditMitigationActionsTask for more information on using the DescribeAuditMitigationActionsTask
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 DescribeAuditMitigationActionsTaskRequest method.
7510//    req, resp := client.DescribeAuditMitigationActionsTaskRequest(params)
7511//
7512//    err := req.Send()
7513//    if err == nil { // resp is now filled
7514//        fmt.Println(resp)
7515//    }
7516func (c *IoT) DescribeAuditMitigationActionsTaskRequest(input *DescribeAuditMitigationActionsTaskInput) (req *request.Request, output *DescribeAuditMitigationActionsTaskOutput) {
7517	op := &request.Operation{
7518		Name:       opDescribeAuditMitigationActionsTask,
7519		HTTPMethod: "GET",
7520		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}",
7521	}
7522
7523	if input == nil {
7524		input = &DescribeAuditMitigationActionsTaskInput{}
7525	}
7526
7527	output = &DescribeAuditMitigationActionsTaskOutput{}
7528	req = c.newRequest(op, input, output)
7529	return
7530}
7531
7532// DescribeAuditMitigationActionsTask API operation for AWS IoT.
7533//
7534// Gets information about an audit mitigation task that is used to apply mitigation
7535// actions to a set of audit findings. Properties include the actions being
7536// applied, the audit checks to which they're being applied, the task status,
7537// and aggregated task statistics.
7538//
7539// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7540// with awserr.Error's Code and Message methods to get detailed information about
7541// the error.
7542//
7543// See the AWS API reference guide for AWS IoT's
7544// API operation DescribeAuditMitigationActionsTask for usage and error information.
7545//
7546// Returned Error Types:
7547//   * InvalidRequestException
7548//   The request is not valid.
7549//
7550//   * ResourceNotFoundException
7551//   The specified resource does not exist.
7552//
7553//   * ThrottlingException
7554//   The rate exceeds the limit.
7555//
7556//   * InternalFailureException
7557//   An unexpected error has occurred.
7558//
7559func (c *IoT) DescribeAuditMitigationActionsTask(input *DescribeAuditMitigationActionsTaskInput) (*DescribeAuditMitigationActionsTaskOutput, error) {
7560	req, out := c.DescribeAuditMitigationActionsTaskRequest(input)
7561	return out, req.Send()
7562}
7563
7564// DescribeAuditMitigationActionsTaskWithContext is the same as DescribeAuditMitigationActionsTask with the addition of
7565// the ability to pass a context and additional request options.
7566//
7567// See DescribeAuditMitigationActionsTask for details on how to use this API operation.
7568//
7569// The context must be non-nil and will be used for request cancellation. If
7570// the context is nil a panic will occur. In the future the SDK may create
7571// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7572// for more information on using Contexts.
7573func (c *IoT) DescribeAuditMitigationActionsTaskWithContext(ctx aws.Context, input *DescribeAuditMitigationActionsTaskInput, opts ...request.Option) (*DescribeAuditMitigationActionsTaskOutput, error) {
7574	req, out := c.DescribeAuditMitigationActionsTaskRequest(input)
7575	req.SetContext(ctx)
7576	req.ApplyOptions(opts...)
7577	return out, req.Send()
7578}
7579
7580const opDescribeAuditSuppression = "DescribeAuditSuppression"
7581
7582// DescribeAuditSuppressionRequest generates a "aws/request.Request" representing the
7583// client's request for the DescribeAuditSuppression operation. The "output" return
7584// value will be populated with the request's response once the request completes
7585// successfully.
7586//
7587// Use "Send" method on the returned Request to send the API call to the service.
7588// the "output" return value is not valid until after Send returns without error.
7589//
7590// See DescribeAuditSuppression for more information on using the DescribeAuditSuppression
7591// API call, and error handling.
7592//
7593// This method is useful when you want to inject custom logic or configuration
7594// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7595//
7596//
7597//    // Example sending a request using the DescribeAuditSuppressionRequest method.
7598//    req, resp := client.DescribeAuditSuppressionRequest(params)
7599//
7600//    err := req.Send()
7601//    if err == nil { // resp is now filled
7602//        fmt.Println(resp)
7603//    }
7604func (c *IoT) DescribeAuditSuppressionRequest(input *DescribeAuditSuppressionInput) (req *request.Request, output *DescribeAuditSuppressionOutput) {
7605	op := &request.Operation{
7606		Name:       opDescribeAuditSuppression,
7607		HTTPMethod: "POST",
7608		HTTPPath:   "/audit/suppressions/describe",
7609	}
7610
7611	if input == nil {
7612		input = &DescribeAuditSuppressionInput{}
7613	}
7614
7615	output = &DescribeAuditSuppressionOutput{}
7616	req = c.newRequest(op, input, output)
7617	return
7618}
7619
7620// DescribeAuditSuppression API operation for AWS IoT.
7621//
7622// Gets information about a Device Defender audit suppression.
7623//
7624// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7625// with awserr.Error's Code and Message methods to get detailed information about
7626// the error.
7627//
7628// See the AWS API reference guide for AWS IoT's
7629// API operation DescribeAuditSuppression for usage and error information.
7630//
7631// Returned Error Types:
7632//   * InvalidRequestException
7633//   The request is not valid.
7634//
7635//   * ResourceNotFoundException
7636//   The specified resource does not exist.
7637//
7638//   * ThrottlingException
7639//   The rate exceeds the limit.
7640//
7641//   * InternalFailureException
7642//   An unexpected error has occurred.
7643//
7644func (c *IoT) DescribeAuditSuppression(input *DescribeAuditSuppressionInput) (*DescribeAuditSuppressionOutput, error) {
7645	req, out := c.DescribeAuditSuppressionRequest(input)
7646	return out, req.Send()
7647}
7648
7649// DescribeAuditSuppressionWithContext is the same as DescribeAuditSuppression with the addition of
7650// the ability to pass a context and additional request options.
7651//
7652// See DescribeAuditSuppression for details on how to use this API operation.
7653//
7654// The context must be non-nil and will be used for request cancellation. If
7655// the context is nil a panic will occur. In the future the SDK may create
7656// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7657// for more information on using Contexts.
7658func (c *IoT) DescribeAuditSuppressionWithContext(ctx aws.Context, input *DescribeAuditSuppressionInput, opts ...request.Option) (*DescribeAuditSuppressionOutput, error) {
7659	req, out := c.DescribeAuditSuppressionRequest(input)
7660	req.SetContext(ctx)
7661	req.ApplyOptions(opts...)
7662	return out, req.Send()
7663}
7664
7665const opDescribeAuditTask = "DescribeAuditTask"
7666
7667// DescribeAuditTaskRequest generates a "aws/request.Request" representing the
7668// client's request for the DescribeAuditTask operation. The "output" return
7669// value will be populated with the request's response once the request completes
7670// successfully.
7671//
7672// Use "Send" method on the returned Request to send the API call to the service.
7673// the "output" return value is not valid until after Send returns without error.
7674//
7675// See DescribeAuditTask for more information on using the DescribeAuditTask
7676// API call, and error handling.
7677//
7678// This method is useful when you want to inject custom logic or configuration
7679// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7680//
7681//
7682//    // Example sending a request using the DescribeAuditTaskRequest method.
7683//    req, resp := client.DescribeAuditTaskRequest(params)
7684//
7685//    err := req.Send()
7686//    if err == nil { // resp is now filled
7687//        fmt.Println(resp)
7688//    }
7689func (c *IoT) DescribeAuditTaskRequest(input *DescribeAuditTaskInput) (req *request.Request, output *DescribeAuditTaskOutput) {
7690	op := &request.Operation{
7691		Name:       opDescribeAuditTask,
7692		HTTPMethod: "GET",
7693		HTTPPath:   "/audit/tasks/{taskId}",
7694	}
7695
7696	if input == nil {
7697		input = &DescribeAuditTaskInput{}
7698	}
7699
7700	output = &DescribeAuditTaskOutput{}
7701	req = c.newRequest(op, input, output)
7702	return
7703}
7704
7705// DescribeAuditTask API operation for AWS IoT.
7706//
7707// Gets information about a Device Defender audit.
7708//
7709// Requires permission to access the DescribeAuditTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
7710// action.
7711//
7712// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7713// with awserr.Error's Code and Message methods to get detailed information about
7714// the error.
7715//
7716// See the AWS API reference guide for AWS IoT's
7717// API operation DescribeAuditTask for usage and error information.
7718//
7719// Returned Error Types:
7720//   * InvalidRequestException
7721//   The request is not valid.
7722//
7723//   * ResourceNotFoundException
7724//   The specified resource does not exist.
7725//
7726//   * ThrottlingException
7727//   The rate exceeds the limit.
7728//
7729//   * InternalFailureException
7730//   An unexpected error has occurred.
7731//
7732func (c *IoT) DescribeAuditTask(input *DescribeAuditTaskInput) (*DescribeAuditTaskOutput, error) {
7733	req, out := c.DescribeAuditTaskRequest(input)
7734	return out, req.Send()
7735}
7736
7737// DescribeAuditTaskWithContext is the same as DescribeAuditTask with the addition of
7738// the ability to pass a context and additional request options.
7739//
7740// See DescribeAuditTask for details on how to use this API operation.
7741//
7742// The context must be non-nil and will be used for request cancellation. If
7743// the context is nil a panic will occur. In the future the SDK may create
7744// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7745// for more information on using Contexts.
7746func (c *IoT) DescribeAuditTaskWithContext(ctx aws.Context, input *DescribeAuditTaskInput, opts ...request.Option) (*DescribeAuditTaskOutput, error) {
7747	req, out := c.DescribeAuditTaskRequest(input)
7748	req.SetContext(ctx)
7749	req.ApplyOptions(opts...)
7750	return out, req.Send()
7751}
7752
7753const opDescribeAuthorizer = "DescribeAuthorizer"
7754
7755// DescribeAuthorizerRequest generates a "aws/request.Request" representing the
7756// client's request for the DescribeAuthorizer operation. The "output" return
7757// value will be populated with the request's response once the request completes
7758// successfully.
7759//
7760// Use "Send" method on the returned Request to send the API call to the service.
7761// the "output" return value is not valid until after Send returns without error.
7762//
7763// See DescribeAuthorizer for more information on using the DescribeAuthorizer
7764// API call, and error handling.
7765//
7766// This method is useful when you want to inject custom logic or configuration
7767// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7768//
7769//
7770//    // Example sending a request using the DescribeAuthorizerRequest method.
7771//    req, resp := client.DescribeAuthorizerRequest(params)
7772//
7773//    err := req.Send()
7774//    if err == nil { // resp is now filled
7775//        fmt.Println(resp)
7776//    }
7777func (c *IoT) DescribeAuthorizerRequest(input *DescribeAuthorizerInput) (req *request.Request, output *DescribeAuthorizerOutput) {
7778	op := &request.Operation{
7779		Name:       opDescribeAuthorizer,
7780		HTTPMethod: "GET",
7781		HTTPPath:   "/authorizer/{authorizerName}",
7782	}
7783
7784	if input == nil {
7785		input = &DescribeAuthorizerInput{}
7786	}
7787
7788	output = &DescribeAuthorizerOutput{}
7789	req = c.newRequest(op, input, output)
7790	return
7791}
7792
7793// DescribeAuthorizer API operation for AWS IoT.
7794//
7795// Describes an authorizer.
7796//
7797// Requires permission to access the DescribeAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
7798// action.
7799//
7800// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7801// with awserr.Error's Code and Message methods to get detailed information about
7802// the error.
7803//
7804// See the AWS API reference guide for AWS IoT's
7805// API operation DescribeAuthorizer for usage and error information.
7806//
7807// Returned Error Types:
7808//   * ResourceNotFoundException
7809//   The specified resource does not exist.
7810//
7811//   * InvalidRequestException
7812//   The request is not valid.
7813//
7814//   * ThrottlingException
7815//   The rate exceeds the limit.
7816//
7817//   * UnauthorizedException
7818//   You are not authorized to perform this operation.
7819//
7820//   * ServiceUnavailableException
7821//   The service is temporarily unavailable.
7822//
7823//   * InternalFailureException
7824//   An unexpected error has occurred.
7825//
7826func (c *IoT) DescribeAuthorizer(input *DescribeAuthorizerInput) (*DescribeAuthorizerOutput, error) {
7827	req, out := c.DescribeAuthorizerRequest(input)
7828	return out, req.Send()
7829}
7830
7831// DescribeAuthorizerWithContext is the same as DescribeAuthorizer with the addition of
7832// the ability to pass a context and additional request options.
7833//
7834// See DescribeAuthorizer for details on how to use this API operation.
7835//
7836// The context must be non-nil and will be used for request cancellation. If
7837// the context is nil a panic will occur. In the future the SDK may create
7838// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7839// for more information on using Contexts.
7840func (c *IoT) DescribeAuthorizerWithContext(ctx aws.Context, input *DescribeAuthorizerInput, opts ...request.Option) (*DescribeAuthorizerOutput, error) {
7841	req, out := c.DescribeAuthorizerRequest(input)
7842	req.SetContext(ctx)
7843	req.ApplyOptions(opts...)
7844	return out, req.Send()
7845}
7846
7847const opDescribeBillingGroup = "DescribeBillingGroup"
7848
7849// DescribeBillingGroupRequest generates a "aws/request.Request" representing the
7850// client's request for the DescribeBillingGroup operation. The "output" return
7851// value will be populated with the request's response once the request completes
7852// successfully.
7853//
7854// Use "Send" method on the returned Request to send the API call to the service.
7855// the "output" return value is not valid until after Send returns without error.
7856//
7857// See DescribeBillingGroup for more information on using the DescribeBillingGroup
7858// API call, and error handling.
7859//
7860// This method is useful when you want to inject custom logic or configuration
7861// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7862//
7863//
7864//    // Example sending a request using the DescribeBillingGroupRequest method.
7865//    req, resp := client.DescribeBillingGroupRequest(params)
7866//
7867//    err := req.Send()
7868//    if err == nil { // resp is now filled
7869//        fmt.Println(resp)
7870//    }
7871func (c *IoT) DescribeBillingGroupRequest(input *DescribeBillingGroupInput) (req *request.Request, output *DescribeBillingGroupOutput) {
7872	op := &request.Operation{
7873		Name:       opDescribeBillingGroup,
7874		HTTPMethod: "GET",
7875		HTTPPath:   "/billing-groups/{billingGroupName}",
7876	}
7877
7878	if input == nil {
7879		input = &DescribeBillingGroupInput{}
7880	}
7881
7882	output = &DescribeBillingGroupOutput{}
7883	req = c.newRequest(op, input, output)
7884	return
7885}
7886
7887// DescribeBillingGroup API operation for AWS IoT.
7888//
7889// Returns information about a billing group.
7890//
7891// Requires permission to access the DescribeBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
7892// 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 DescribeBillingGroup for usage and error information.
7900//
7901// Returned Error Types:
7902//   * InvalidRequestException
7903//   The request is not valid.
7904//
7905//   * ThrottlingException
7906//   The rate exceeds the limit.
7907//
7908//   * InternalFailureException
7909//   An unexpected error has occurred.
7910//
7911//   * ResourceNotFoundException
7912//   The specified resource does not exist.
7913//
7914func (c *IoT) DescribeBillingGroup(input *DescribeBillingGroupInput) (*DescribeBillingGroupOutput, error) {
7915	req, out := c.DescribeBillingGroupRequest(input)
7916	return out, req.Send()
7917}
7918
7919// DescribeBillingGroupWithContext is the same as DescribeBillingGroup with the addition of
7920// the ability to pass a context and additional request options.
7921//
7922// See DescribeBillingGroup 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) DescribeBillingGroupWithContext(ctx aws.Context, input *DescribeBillingGroupInput, opts ...request.Option) (*DescribeBillingGroupOutput, error) {
7929	req, out := c.DescribeBillingGroupRequest(input)
7930	req.SetContext(ctx)
7931	req.ApplyOptions(opts...)
7932	return out, req.Send()
7933}
7934
7935const opDescribeCACertificate = "DescribeCACertificate"
7936
7937// DescribeCACertificateRequest generates a "aws/request.Request" representing the
7938// client's request for the DescribeCACertificate 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 DescribeCACertificate for more information on using the DescribeCACertificate
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 DescribeCACertificateRequest method.
7953//    req, resp := client.DescribeCACertificateRequest(params)
7954//
7955//    err := req.Send()
7956//    if err == nil { // resp is now filled
7957//        fmt.Println(resp)
7958//    }
7959func (c *IoT) DescribeCACertificateRequest(input *DescribeCACertificateInput) (req *request.Request, output *DescribeCACertificateOutput) {
7960	op := &request.Operation{
7961		Name:       opDescribeCACertificate,
7962		HTTPMethod: "GET",
7963		HTTPPath:   "/cacertificate/{caCertificateId}",
7964	}
7965
7966	if input == nil {
7967		input = &DescribeCACertificateInput{}
7968	}
7969
7970	output = &DescribeCACertificateOutput{}
7971	req = c.newRequest(op, input, output)
7972	return
7973}
7974
7975// DescribeCACertificate API operation for AWS IoT.
7976//
7977// Describes a registered CA certificate.
7978//
7979// Requires permission to access the DescribeCACertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
7980// action.
7981//
7982// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7983// with awserr.Error's Code and Message methods to get detailed information about
7984// the error.
7985//
7986// See the AWS API reference guide for AWS IoT's
7987// API operation DescribeCACertificate for usage and error information.
7988//
7989// Returned Error Types:
7990//   * InvalidRequestException
7991//   The request is not valid.
7992//
7993//   * ThrottlingException
7994//   The rate exceeds the limit.
7995//
7996//   * UnauthorizedException
7997//   You are not authorized to perform this operation.
7998//
7999//   * ServiceUnavailableException
8000//   The service is temporarily unavailable.
8001//
8002//   * InternalFailureException
8003//   An unexpected error has occurred.
8004//
8005//   * ResourceNotFoundException
8006//   The specified resource does not exist.
8007//
8008func (c *IoT) DescribeCACertificate(input *DescribeCACertificateInput) (*DescribeCACertificateOutput, error) {
8009	req, out := c.DescribeCACertificateRequest(input)
8010	return out, req.Send()
8011}
8012
8013// DescribeCACertificateWithContext is the same as DescribeCACertificate with the addition of
8014// the ability to pass a context and additional request options.
8015//
8016// See DescribeCACertificate for details on how to use this API operation.
8017//
8018// The context must be non-nil and will be used for request cancellation. If
8019// the context is nil a panic will occur. In the future the SDK may create
8020// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8021// for more information on using Contexts.
8022func (c *IoT) DescribeCACertificateWithContext(ctx aws.Context, input *DescribeCACertificateInput, opts ...request.Option) (*DescribeCACertificateOutput, error) {
8023	req, out := c.DescribeCACertificateRequest(input)
8024	req.SetContext(ctx)
8025	req.ApplyOptions(opts...)
8026	return out, req.Send()
8027}
8028
8029const opDescribeCertificate = "DescribeCertificate"
8030
8031// DescribeCertificateRequest generates a "aws/request.Request" representing the
8032// client's request for the DescribeCertificate operation. The "output" return
8033// value will be populated with the request's response once the request completes
8034// successfully.
8035//
8036// Use "Send" method on the returned Request to send the API call to the service.
8037// the "output" return value is not valid until after Send returns without error.
8038//
8039// See DescribeCertificate for more information on using the DescribeCertificate
8040// API call, and error handling.
8041//
8042// This method is useful when you want to inject custom logic or configuration
8043// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8044//
8045//
8046//    // Example sending a request using the DescribeCertificateRequest method.
8047//    req, resp := client.DescribeCertificateRequest(params)
8048//
8049//    err := req.Send()
8050//    if err == nil { // resp is now filled
8051//        fmt.Println(resp)
8052//    }
8053func (c *IoT) DescribeCertificateRequest(input *DescribeCertificateInput) (req *request.Request, output *DescribeCertificateOutput) {
8054	op := &request.Operation{
8055		Name:       opDescribeCertificate,
8056		HTTPMethod: "GET",
8057		HTTPPath:   "/certificates/{certificateId}",
8058	}
8059
8060	if input == nil {
8061		input = &DescribeCertificateInput{}
8062	}
8063
8064	output = &DescribeCertificateOutput{}
8065	req = c.newRequest(op, input, output)
8066	return
8067}
8068
8069// DescribeCertificate API operation for AWS IoT.
8070//
8071// Gets information about the specified certificate.
8072//
8073// Requires permission to access the DescribeCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
8074// action.
8075//
8076// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8077// with awserr.Error's Code and Message methods to get detailed information about
8078// the error.
8079//
8080// See the AWS API reference guide for AWS IoT's
8081// API operation DescribeCertificate for usage and error information.
8082//
8083// Returned Error Types:
8084//   * InvalidRequestException
8085//   The request is not valid.
8086//
8087//   * ThrottlingException
8088//   The rate exceeds the limit.
8089//
8090//   * UnauthorizedException
8091//   You are not authorized to perform this operation.
8092//
8093//   * ServiceUnavailableException
8094//   The service is temporarily unavailable.
8095//
8096//   * InternalFailureException
8097//   An unexpected error has occurred.
8098//
8099//   * ResourceNotFoundException
8100//   The specified resource does not exist.
8101//
8102func (c *IoT) DescribeCertificate(input *DescribeCertificateInput) (*DescribeCertificateOutput, error) {
8103	req, out := c.DescribeCertificateRequest(input)
8104	return out, req.Send()
8105}
8106
8107// DescribeCertificateWithContext is the same as DescribeCertificate with the addition of
8108// the ability to pass a context and additional request options.
8109//
8110// See DescribeCertificate for details on how to use this API operation.
8111//
8112// The context must be non-nil and will be used for request cancellation. If
8113// the context is nil a panic will occur. In the future the SDK may create
8114// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8115// for more information on using Contexts.
8116func (c *IoT) DescribeCertificateWithContext(ctx aws.Context, input *DescribeCertificateInput, opts ...request.Option) (*DescribeCertificateOutput, error) {
8117	req, out := c.DescribeCertificateRequest(input)
8118	req.SetContext(ctx)
8119	req.ApplyOptions(opts...)
8120	return out, req.Send()
8121}
8122
8123const opDescribeCustomMetric = "DescribeCustomMetric"
8124
8125// DescribeCustomMetricRequest generates a "aws/request.Request" representing the
8126// client's request for the DescribeCustomMetric operation. The "output" return
8127// value will be populated with the request's response once the request completes
8128// successfully.
8129//
8130// Use "Send" method on the returned Request to send the API call to the service.
8131// the "output" return value is not valid until after Send returns without error.
8132//
8133// See DescribeCustomMetric for more information on using the DescribeCustomMetric
8134// API call, and error handling.
8135//
8136// This method is useful when you want to inject custom logic or configuration
8137// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8138//
8139//
8140//    // Example sending a request using the DescribeCustomMetricRequest method.
8141//    req, resp := client.DescribeCustomMetricRequest(params)
8142//
8143//    err := req.Send()
8144//    if err == nil { // resp is now filled
8145//        fmt.Println(resp)
8146//    }
8147func (c *IoT) DescribeCustomMetricRequest(input *DescribeCustomMetricInput) (req *request.Request, output *DescribeCustomMetricOutput) {
8148	op := &request.Operation{
8149		Name:       opDescribeCustomMetric,
8150		HTTPMethod: "GET",
8151		HTTPPath:   "/custom-metric/{metricName}",
8152	}
8153
8154	if input == nil {
8155		input = &DescribeCustomMetricInput{}
8156	}
8157
8158	output = &DescribeCustomMetricOutput{}
8159	req = c.newRequest(op, input, output)
8160	return
8161}
8162
8163// DescribeCustomMetric API operation for AWS IoT.
8164//
8165// Gets information about a Device Defender detect custom metric.
8166//
8167// Requires permission to access the DescribeCustomMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
8168// action.
8169//
8170// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8171// with awserr.Error's Code and Message methods to get detailed information about
8172// the error.
8173//
8174// See the AWS API reference guide for AWS IoT's
8175// API operation DescribeCustomMetric for usage and error information.
8176//
8177// Returned Error Types:
8178//   * InvalidRequestException
8179//   The request is not valid.
8180//
8181//   * ResourceNotFoundException
8182//   The specified resource does not exist.
8183//
8184//   * ThrottlingException
8185//   The rate exceeds the limit.
8186//
8187//   * InternalFailureException
8188//   An unexpected error has occurred.
8189//
8190func (c *IoT) DescribeCustomMetric(input *DescribeCustomMetricInput) (*DescribeCustomMetricOutput, error) {
8191	req, out := c.DescribeCustomMetricRequest(input)
8192	return out, req.Send()
8193}
8194
8195// DescribeCustomMetricWithContext is the same as DescribeCustomMetric with the addition of
8196// the ability to pass a context and additional request options.
8197//
8198// See DescribeCustomMetric for details on how to use this API operation.
8199//
8200// The context must be non-nil and will be used for request cancellation. If
8201// the context is nil a panic will occur. In the future the SDK may create
8202// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8203// for more information on using Contexts.
8204func (c *IoT) DescribeCustomMetricWithContext(ctx aws.Context, input *DescribeCustomMetricInput, opts ...request.Option) (*DescribeCustomMetricOutput, error) {
8205	req, out := c.DescribeCustomMetricRequest(input)
8206	req.SetContext(ctx)
8207	req.ApplyOptions(opts...)
8208	return out, req.Send()
8209}
8210
8211const opDescribeDefaultAuthorizer = "DescribeDefaultAuthorizer"
8212
8213// DescribeDefaultAuthorizerRequest generates a "aws/request.Request" representing the
8214// client's request for the DescribeDefaultAuthorizer operation. The "output" return
8215// value will be populated with the request's response once the request completes
8216// successfully.
8217//
8218// Use "Send" method on the returned Request to send the API call to the service.
8219// the "output" return value is not valid until after Send returns without error.
8220//
8221// See DescribeDefaultAuthorizer for more information on using the DescribeDefaultAuthorizer
8222// API call, and error handling.
8223//
8224// This method is useful when you want to inject custom logic or configuration
8225// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8226//
8227//
8228//    // Example sending a request using the DescribeDefaultAuthorizerRequest method.
8229//    req, resp := client.DescribeDefaultAuthorizerRequest(params)
8230//
8231//    err := req.Send()
8232//    if err == nil { // resp is now filled
8233//        fmt.Println(resp)
8234//    }
8235func (c *IoT) DescribeDefaultAuthorizerRequest(input *DescribeDefaultAuthorizerInput) (req *request.Request, output *DescribeDefaultAuthorizerOutput) {
8236	op := &request.Operation{
8237		Name:       opDescribeDefaultAuthorizer,
8238		HTTPMethod: "GET",
8239		HTTPPath:   "/default-authorizer",
8240	}
8241
8242	if input == nil {
8243		input = &DescribeDefaultAuthorizerInput{}
8244	}
8245
8246	output = &DescribeDefaultAuthorizerOutput{}
8247	req = c.newRequest(op, input, output)
8248	return
8249}
8250
8251// DescribeDefaultAuthorizer API operation for AWS IoT.
8252//
8253// Describes the default authorizer.
8254//
8255// Requires permission to access the DescribeDefaultAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
8256// action.
8257//
8258// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8259// with awserr.Error's Code and Message methods to get detailed information about
8260// the error.
8261//
8262// See the AWS API reference guide for AWS IoT's
8263// API operation DescribeDefaultAuthorizer for usage and error information.
8264//
8265// Returned Error Types:
8266//   * ResourceNotFoundException
8267//   The specified resource does not exist.
8268//
8269//   * InvalidRequestException
8270//   The request is not valid.
8271//
8272//   * ThrottlingException
8273//   The rate exceeds the limit.
8274//
8275//   * UnauthorizedException
8276//   You are not authorized to perform this operation.
8277//
8278//   * ServiceUnavailableException
8279//   The service is temporarily unavailable.
8280//
8281//   * InternalFailureException
8282//   An unexpected error has occurred.
8283//
8284func (c *IoT) DescribeDefaultAuthorizer(input *DescribeDefaultAuthorizerInput) (*DescribeDefaultAuthorizerOutput, error) {
8285	req, out := c.DescribeDefaultAuthorizerRequest(input)
8286	return out, req.Send()
8287}
8288
8289// DescribeDefaultAuthorizerWithContext is the same as DescribeDefaultAuthorizer with the addition of
8290// the ability to pass a context and additional request options.
8291//
8292// See DescribeDefaultAuthorizer for details on how to use this API operation.
8293//
8294// The context must be non-nil and will be used for request cancellation. If
8295// the context is nil a panic will occur. In the future the SDK may create
8296// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8297// for more information on using Contexts.
8298func (c *IoT) DescribeDefaultAuthorizerWithContext(ctx aws.Context, input *DescribeDefaultAuthorizerInput, opts ...request.Option) (*DescribeDefaultAuthorizerOutput, error) {
8299	req, out := c.DescribeDefaultAuthorizerRequest(input)
8300	req.SetContext(ctx)
8301	req.ApplyOptions(opts...)
8302	return out, req.Send()
8303}
8304
8305const opDescribeDetectMitigationActionsTask = "DescribeDetectMitigationActionsTask"
8306
8307// DescribeDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
8308// client's request for the DescribeDetectMitigationActionsTask operation. The "output" return
8309// value will be populated with the request's response once the request completes
8310// successfully.
8311//
8312// Use "Send" method on the returned Request to send the API call to the service.
8313// the "output" return value is not valid until after Send returns without error.
8314//
8315// See DescribeDetectMitigationActionsTask for more information on using the DescribeDetectMitigationActionsTask
8316// API call, and error handling.
8317//
8318// This method is useful when you want to inject custom logic or configuration
8319// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8320//
8321//
8322//    // Example sending a request using the DescribeDetectMitigationActionsTaskRequest method.
8323//    req, resp := client.DescribeDetectMitigationActionsTaskRequest(params)
8324//
8325//    err := req.Send()
8326//    if err == nil { // resp is now filled
8327//        fmt.Println(resp)
8328//    }
8329func (c *IoT) DescribeDetectMitigationActionsTaskRequest(input *DescribeDetectMitigationActionsTaskInput) (req *request.Request, output *DescribeDetectMitigationActionsTaskOutput) {
8330	op := &request.Operation{
8331		Name:       opDescribeDetectMitigationActionsTask,
8332		HTTPMethod: "GET",
8333		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}",
8334	}
8335
8336	if input == nil {
8337		input = &DescribeDetectMitigationActionsTaskInput{}
8338	}
8339
8340	output = &DescribeDetectMitigationActionsTaskOutput{}
8341	req = c.newRequest(op, input, output)
8342	return
8343}
8344
8345// DescribeDetectMitigationActionsTask API operation for AWS IoT.
8346//
8347// Gets information about a Device Defender ML Detect mitigation action.
8348//
8349// Requires permission to access the DescribeDetectMitigationActionsTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
8350// action.
8351//
8352// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8353// with awserr.Error's Code and Message methods to get detailed information about
8354// the error.
8355//
8356// See the AWS API reference guide for AWS IoT's
8357// API operation DescribeDetectMitigationActionsTask for usage and error information.
8358//
8359// Returned Error Types:
8360//   * ResourceNotFoundException
8361//   The specified resource does not exist.
8362//
8363//   * InvalidRequestException
8364//   The request is not valid.
8365//
8366//   * ThrottlingException
8367//   The rate exceeds the limit.
8368//
8369//   * InternalFailureException
8370//   An unexpected error has occurred.
8371//
8372func (c *IoT) DescribeDetectMitigationActionsTask(input *DescribeDetectMitigationActionsTaskInput) (*DescribeDetectMitigationActionsTaskOutput, error) {
8373	req, out := c.DescribeDetectMitigationActionsTaskRequest(input)
8374	return out, req.Send()
8375}
8376
8377// DescribeDetectMitigationActionsTaskWithContext is the same as DescribeDetectMitigationActionsTask with the addition of
8378// the ability to pass a context and additional request options.
8379//
8380// See DescribeDetectMitigationActionsTask for details on how to use this API operation.
8381//
8382// The context must be non-nil and will be used for request cancellation. If
8383// the context is nil a panic will occur. In the future the SDK may create
8384// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8385// for more information on using Contexts.
8386func (c *IoT) DescribeDetectMitigationActionsTaskWithContext(ctx aws.Context, input *DescribeDetectMitigationActionsTaskInput, opts ...request.Option) (*DescribeDetectMitigationActionsTaskOutput, error) {
8387	req, out := c.DescribeDetectMitigationActionsTaskRequest(input)
8388	req.SetContext(ctx)
8389	req.ApplyOptions(opts...)
8390	return out, req.Send()
8391}
8392
8393const opDescribeDimension = "DescribeDimension"
8394
8395// DescribeDimensionRequest generates a "aws/request.Request" representing the
8396// client's request for the DescribeDimension operation. The "output" return
8397// value will be populated with the request's response once the request completes
8398// successfully.
8399//
8400// Use "Send" method on the returned Request to send the API call to the service.
8401// the "output" return value is not valid until after Send returns without error.
8402//
8403// See DescribeDimension for more information on using the DescribeDimension
8404// API call, and error handling.
8405//
8406// This method is useful when you want to inject custom logic or configuration
8407// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8408//
8409//
8410//    // Example sending a request using the DescribeDimensionRequest method.
8411//    req, resp := client.DescribeDimensionRequest(params)
8412//
8413//    err := req.Send()
8414//    if err == nil { // resp is now filled
8415//        fmt.Println(resp)
8416//    }
8417func (c *IoT) DescribeDimensionRequest(input *DescribeDimensionInput) (req *request.Request, output *DescribeDimensionOutput) {
8418	op := &request.Operation{
8419		Name:       opDescribeDimension,
8420		HTTPMethod: "GET",
8421		HTTPPath:   "/dimensions/{name}",
8422	}
8423
8424	if input == nil {
8425		input = &DescribeDimensionInput{}
8426	}
8427
8428	output = &DescribeDimensionOutput{}
8429	req = c.newRequest(op, input, output)
8430	return
8431}
8432
8433// DescribeDimension API operation for AWS IoT.
8434//
8435// Provides details about a dimension that is defined in your Amazon Web Services
8436// accounts.
8437//
8438// Requires permission to access the DescribeDimension (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
8439// action.
8440//
8441// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8442// with awserr.Error's Code and Message methods to get detailed information about
8443// the error.
8444//
8445// See the AWS API reference guide for AWS IoT's
8446// API operation DescribeDimension for usage and error information.
8447//
8448// Returned Error Types:
8449//   * InternalFailureException
8450//   An unexpected error has occurred.
8451//
8452//   * InvalidRequestException
8453//   The request is not valid.
8454//
8455//   * ResourceNotFoundException
8456//   The specified resource does not exist.
8457//
8458//   * ThrottlingException
8459//   The rate exceeds the limit.
8460//
8461func (c *IoT) DescribeDimension(input *DescribeDimensionInput) (*DescribeDimensionOutput, error) {
8462	req, out := c.DescribeDimensionRequest(input)
8463	return out, req.Send()
8464}
8465
8466// DescribeDimensionWithContext is the same as DescribeDimension with the addition of
8467// the ability to pass a context and additional request options.
8468//
8469// See DescribeDimension for details on how to use this API operation.
8470//
8471// The context must be non-nil and will be used for request cancellation. If
8472// the context is nil a panic will occur. In the future the SDK may create
8473// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8474// for more information on using Contexts.
8475func (c *IoT) DescribeDimensionWithContext(ctx aws.Context, input *DescribeDimensionInput, opts ...request.Option) (*DescribeDimensionOutput, error) {
8476	req, out := c.DescribeDimensionRequest(input)
8477	req.SetContext(ctx)
8478	req.ApplyOptions(opts...)
8479	return out, req.Send()
8480}
8481
8482const opDescribeDomainConfiguration = "DescribeDomainConfiguration"
8483
8484// DescribeDomainConfigurationRequest generates a "aws/request.Request" representing the
8485// client's request for the DescribeDomainConfiguration operation. The "output" return
8486// value will be populated with the request's response once the request completes
8487// successfully.
8488//
8489// Use "Send" method on the returned Request to send the API call to the service.
8490// the "output" return value is not valid until after Send returns without error.
8491//
8492// See DescribeDomainConfiguration for more information on using the DescribeDomainConfiguration
8493// API call, and error handling.
8494//
8495// This method is useful when you want to inject custom logic or configuration
8496// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8497//
8498//
8499//    // Example sending a request using the DescribeDomainConfigurationRequest method.
8500//    req, resp := client.DescribeDomainConfigurationRequest(params)
8501//
8502//    err := req.Send()
8503//    if err == nil { // resp is now filled
8504//        fmt.Println(resp)
8505//    }
8506func (c *IoT) DescribeDomainConfigurationRequest(input *DescribeDomainConfigurationInput) (req *request.Request, output *DescribeDomainConfigurationOutput) {
8507	op := &request.Operation{
8508		Name:       opDescribeDomainConfiguration,
8509		HTTPMethod: "GET",
8510		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
8511	}
8512
8513	if input == nil {
8514		input = &DescribeDomainConfigurationInput{}
8515	}
8516
8517	output = &DescribeDomainConfigurationOutput{}
8518	req = c.newRequest(op, input, output)
8519	return
8520}
8521
8522// DescribeDomainConfiguration API operation for AWS IoT.
8523//
8524// Gets summary information about a domain configuration.
8525//
8526// Requires permission to access the DescribeDomainConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
8527// action.
8528//
8529// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8530// with awserr.Error's Code and Message methods to get detailed information about
8531// the error.
8532//
8533// See the AWS API reference guide for AWS IoT's
8534// API operation DescribeDomainConfiguration for usage and error information.
8535//
8536// Returned Error Types:
8537//   * ResourceNotFoundException
8538//   The specified resource does not exist.
8539//
8540//   * ThrottlingException
8541//   The rate exceeds the limit.
8542//
8543//   * InvalidRequestException
8544//   The request is not valid.
8545//
8546//   * UnauthorizedException
8547//   You are not authorized to perform this operation.
8548//
8549//   * ServiceUnavailableException
8550//   The service is temporarily unavailable.
8551//
8552//   * InternalFailureException
8553//   An unexpected error has occurred.
8554//
8555func (c *IoT) DescribeDomainConfiguration(input *DescribeDomainConfigurationInput) (*DescribeDomainConfigurationOutput, error) {
8556	req, out := c.DescribeDomainConfigurationRequest(input)
8557	return out, req.Send()
8558}
8559
8560// DescribeDomainConfigurationWithContext is the same as DescribeDomainConfiguration with the addition of
8561// the ability to pass a context and additional request options.
8562//
8563// See DescribeDomainConfiguration for details on how to use this API operation.
8564//
8565// The context must be non-nil and will be used for request cancellation. If
8566// the context is nil a panic will occur. In the future the SDK may create
8567// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8568// for more information on using Contexts.
8569func (c *IoT) DescribeDomainConfigurationWithContext(ctx aws.Context, input *DescribeDomainConfigurationInput, opts ...request.Option) (*DescribeDomainConfigurationOutput, error) {
8570	req, out := c.DescribeDomainConfigurationRequest(input)
8571	req.SetContext(ctx)
8572	req.ApplyOptions(opts...)
8573	return out, req.Send()
8574}
8575
8576const opDescribeEndpoint = "DescribeEndpoint"
8577
8578// DescribeEndpointRequest generates a "aws/request.Request" representing the
8579// client's request for the DescribeEndpoint operation. The "output" return
8580// value will be populated with the request's response once the request completes
8581// successfully.
8582//
8583// Use "Send" method on the returned Request to send the API call to the service.
8584// the "output" return value is not valid until after Send returns without error.
8585//
8586// See DescribeEndpoint for more information on using the DescribeEndpoint
8587// API call, and error handling.
8588//
8589// This method is useful when you want to inject custom logic or configuration
8590// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8591//
8592//
8593//    // Example sending a request using the DescribeEndpointRequest method.
8594//    req, resp := client.DescribeEndpointRequest(params)
8595//
8596//    err := req.Send()
8597//    if err == nil { // resp is now filled
8598//        fmt.Println(resp)
8599//    }
8600func (c *IoT) DescribeEndpointRequest(input *DescribeEndpointInput) (req *request.Request, output *DescribeEndpointOutput) {
8601	op := &request.Operation{
8602		Name:       opDescribeEndpoint,
8603		HTTPMethod: "GET",
8604		HTTPPath:   "/endpoint",
8605	}
8606
8607	if input == nil {
8608		input = &DescribeEndpointInput{}
8609	}
8610
8611	output = &DescribeEndpointOutput{}
8612	req = c.newRequest(op, input, output)
8613	return
8614}
8615
8616// DescribeEndpoint API operation for AWS IoT.
8617//
8618// Returns a unique endpoint specific to the Amazon Web Services account making
8619// the call.
8620//
8621// Requires permission to access the DescribeEndpoint (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
8622// action.
8623//
8624// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8625// with awserr.Error's Code and Message methods to get detailed information about
8626// the error.
8627//
8628// See the AWS API reference guide for AWS IoT's
8629// API operation DescribeEndpoint for usage and error information.
8630//
8631// Returned Error Types:
8632//   * InternalFailureException
8633//   An unexpected error has occurred.
8634//
8635//   * InvalidRequestException
8636//   The request is not valid.
8637//
8638//   * UnauthorizedException
8639//   You are not authorized to perform this operation.
8640//
8641//   * ThrottlingException
8642//   The rate exceeds the limit.
8643//
8644func (c *IoT) DescribeEndpoint(input *DescribeEndpointInput) (*DescribeEndpointOutput, error) {
8645	req, out := c.DescribeEndpointRequest(input)
8646	return out, req.Send()
8647}
8648
8649// DescribeEndpointWithContext is the same as DescribeEndpoint with the addition of
8650// the ability to pass a context and additional request options.
8651//
8652// See DescribeEndpoint for details on how to use this API operation.
8653//
8654// The context must be non-nil and will be used for request cancellation. If
8655// the context is nil a panic will occur. In the future the SDK may create
8656// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8657// for more information on using Contexts.
8658func (c *IoT) DescribeEndpointWithContext(ctx aws.Context, input *DescribeEndpointInput, opts ...request.Option) (*DescribeEndpointOutput, error) {
8659	req, out := c.DescribeEndpointRequest(input)
8660	req.SetContext(ctx)
8661	req.ApplyOptions(opts...)
8662	return out, req.Send()
8663}
8664
8665const opDescribeEventConfigurations = "DescribeEventConfigurations"
8666
8667// DescribeEventConfigurationsRequest generates a "aws/request.Request" representing the
8668// client's request for the DescribeEventConfigurations operation. The "output" return
8669// value will be populated with the request's response once the request completes
8670// successfully.
8671//
8672// Use "Send" method on the returned Request to send the API call to the service.
8673// the "output" return value is not valid until after Send returns without error.
8674//
8675// See DescribeEventConfigurations for more information on using the DescribeEventConfigurations
8676// API call, and error handling.
8677//
8678// This method is useful when you want to inject custom logic or configuration
8679// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8680//
8681//
8682//    // Example sending a request using the DescribeEventConfigurationsRequest method.
8683//    req, resp := client.DescribeEventConfigurationsRequest(params)
8684//
8685//    err := req.Send()
8686//    if err == nil { // resp is now filled
8687//        fmt.Println(resp)
8688//    }
8689func (c *IoT) DescribeEventConfigurationsRequest(input *DescribeEventConfigurationsInput) (req *request.Request, output *DescribeEventConfigurationsOutput) {
8690	op := &request.Operation{
8691		Name:       opDescribeEventConfigurations,
8692		HTTPMethod: "GET",
8693		HTTPPath:   "/event-configurations",
8694	}
8695
8696	if input == nil {
8697		input = &DescribeEventConfigurationsInput{}
8698	}
8699
8700	output = &DescribeEventConfigurationsOutput{}
8701	req = c.newRequest(op, input, output)
8702	return
8703}
8704
8705// DescribeEventConfigurations API operation for AWS IoT.
8706//
8707// Describes event configurations.
8708//
8709// Requires permission to access the DescribeEventConfigurations (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
8710// action.
8711//
8712// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8713// with awserr.Error's Code and Message methods to get detailed information about
8714// the error.
8715//
8716// See the AWS API reference guide for AWS IoT's
8717// API operation DescribeEventConfigurations for usage and error information.
8718//
8719// Returned Error Types:
8720//   * InternalFailureException
8721//   An unexpected error has occurred.
8722//
8723//   * ThrottlingException
8724//   The rate exceeds the limit.
8725//
8726func (c *IoT) DescribeEventConfigurations(input *DescribeEventConfigurationsInput) (*DescribeEventConfigurationsOutput, error) {
8727	req, out := c.DescribeEventConfigurationsRequest(input)
8728	return out, req.Send()
8729}
8730
8731// DescribeEventConfigurationsWithContext is the same as DescribeEventConfigurations with the addition of
8732// the ability to pass a context and additional request options.
8733//
8734// See DescribeEventConfigurations for details on how to use this API operation.
8735//
8736// The context must be non-nil and will be used for request cancellation. If
8737// the context is nil a panic will occur. In the future the SDK may create
8738// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8739// for more information on using Contexts.
8740func (c *IoT) DescribeEventConfigurationsWithContext(ctx aws.Context, input *DescribeEventConfigurationsInput, opts ...request.Option) (*DescribeEventConfigurationsOutput, error) {
8741	req, out := c.DescribeEventConfigurationsRequest(input)
8742	req.SetContext(ctx)
8743	req.ApplyOptions(opts...)
8744	return out, req.Send()
8745}
8746
8747const opDescribeFleetMetric = "DescribeFleetMetric"
8748
8749// DescribeFleetMetricRequest generates a "aws/request.Request" representing the
8750// client's request for the DescribeFleetMetric operation. The "output" return
8751// value will be populated with the request's response once the request completes
8752// successfully.
8753//
8754// Use "Send" method on the returned Request to send the API call to the service.
8755// the "output" return value is not valid until after Send returns without error.
8756//
8757// See DescribeFleetMetric for more information on using the DescribeFleetMetric
8758// API call, and error handling.
8759//
8760// This method is useful when you want to inject custom logic or configuration
8761// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8762//
8763//
8764//    // Example sending a request using the DescribeFleetMetricRequest method.
8765//    req, resp := client.DescribeFleetMetricRequest(params)
8766//
8767//    err := req.Send()
8768//    if err == nil { // resp is now filled
8769//        fmt.Println(resp)
8770//    }
8771func (c *IoT) DescribeFleetMetricRequest(input *DescribeFleetMetricInput) (req *request.Request, output *DescribeFleetMetricOutput) {
8772	op := &request.Operation{
8773		Name:       opDescribeFleetMetric,
8774		HTTPMethod: "GET",
8775		HTTPPath:   "/fleet-metric/{metricName}",
8776	}
8777
8778	if input == nil {
8779		input = &DescribeFleetMetricInput{}
8780	}
8781
8782	output = &DescribeFleetMetricOutput{}
8783	req = c.newRequest(op, input, output)
8784	return
8785}
8786
8787// DescribeFleetMetric API operation for AWS IoT.
8788//
8789// Gets information about the specified fleet metric.
8790//
8791// Requires permission to access the DescribeFleetMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
8792// action.
8793//
8794// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8795// with awserr.Error's Code and Message methods to get detailed information about
8796// the error.
8797//
8798// See the AWS API reference guide for AWS IoT's
8799// API operation DescribeFleetMetric for usage and error information.
8800//
8801// Returned Error Types:
8802//   * InvalidRequestException
8803//   The request is not valid.
8804//
8805//   * ThrottlingException
8806//   The rate exceeds the limit.
8807//
8808//   * UnauthorizedException
8809//   You are not authorized to perform this operation.
8810//
8811//   * ServiceUnavailableException
8812//   The service is temporarily unavailable.
8813//
8814//   * InternalFailureException
8815//   An unexpected error has occurred.
8816//
8817//   * ResourceNotFoundException
8818//   The specified resource does not exist.
8819//
8820func (c *IoT) DescribeFleetMetric(input *DescribeFleetMetricInput) (*DescribeFleetMetricOutput, error) {
8821	req, out := c.DescribeFleetMetricRequest(input)
8822	return out, req.Send()
8823}
8824
8825// DescribeFleetMetricWithContext is the same as DescribeFleetMetric with the addition of
8826// the ability to pass a context and additional request options.
8827//
8828// See DescribeFleetMetric for details on how to use this API operation.
8829//
8830// The context must be non-nil and will be used for request cancellation. If
8831// the context is nil a panic will occur. In the future the SDK may create
8832// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8833// for more information on using Contexts.
8834func (c *IoT) DescribeFleetMetricWithContext(ctx aws.Context, input *DescribeFleetMetricInput, opts ...request.Option) (*DescribeFleetMetricOutput, error) {
8835	req, out := c.DescribeFleetMetricRequest(input)
8836	req.SetContext(ctx)
8837	req.ApplyOptions(opts...)
8838	return out, req.Send()
8839}
8840
8841const opDescribeIndex = "DescribeIndex"
8842
8843// DescribeIndexRequest generates a "aws/request.Request" representing the
8844// client's request for the DescribeIndex operation. The "output" return
8845// value will be populated with the request's response once the request completes
8846// successfully.
8847//
8848// Use "Send" method on the returned Request to send the API call to the service.
8849// the "output" return value is not valid until after Send returns without error.
8850//
8851// See DescribeIndex for more information on using the DescribeIndex
8852// API call, and error handling.
8853//
8854// This method is useful when you want to inject custom logic or configuration
8855// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8856//
8857//
8858//    // Example sending a request using the DescribeIndexRequest method.
8859//    req, resp := client.DescribeIndexRequest(params)
8860//
8861//    err := req.Send()
8862//    if err == nil { // resp is now filled
8863//        fmt.Println(resp)
8864//    }
8865func (c *IoT) DescribeIndexRequest(input *DescribeIndexInput) (req *request.Request, output *DescribeIndexOutput) {
8866	op := &request.Operation{
8867		Name:       opDescribeIndex,
8868		HTTPMethod: "GET",
8869		HTTPPath:   "/indices/{indexName}",
8870	}
8871
8872	if input == nil {
8873		input = &DescribeIndexInput{}
8874	}
8875
8876	output = &DescribeIndexOutput{}
8877	req = c.newRequest(op, input, output)
8878	return
8879}
8880
8881// DescribeIndex API operation for AWS IoT.
8882//
8883// Describes a search index.
8884//
8885// Requires permission to access the DescribeIndex (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
8886// action.
8887//
8888// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8889// with awserr.Error's Code and Message methods to get detailed information about
8890// the error.
8891//
8892// See the AWS API reference guide for AWS IoT's
8893// API operation DescribeIndex for usage and error information.
8894//
8895// Returned Error Types:
8896//   * InvalidRequestException
8897//   The request is not valid.
8898//
8899//   * ThrottlingException
8900//   The rate exceeds the limit.
8901//
8902//   * UnauthorizedException
8903//   You are not authorized to perform this operation.
8904//
8905//   * ServiceUnavailableException
8906//   The service is temporarily unavailable.
8907//
8908//   * InternalFailureException
8909//   An unexpected error has occurred.
8910//
8911//   * ResourceNotFoundException
8912//   The specified resource does not exist.
8913//
8914func (c *IoT) DescribeIndex(input *DescribeIndexInput) (*DescribeIndexOutput, error) {
8915	req, out := c.DescribeIndexRequest(input)
8916	return out, req.Send()
8917}
8918
8919// DescribeIndexWithContext is the same as DescribeIndex with the addition of
8920// the ability to pass a context and additional request options.
8921//
8922// See DescribeIndex for details on how to use this API operation.
8923//
8924// The context must be non-nil and will be used for request cancellation. If
8925// the context is nil a panic will occur. In the future the SDK may create
8926// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8927// for more information on using Contexts.
8928func (c *IoT) DescribeIndexWithContext(ctx aws.Context, input *DescribeIndexInput, opts ...request.Option) (*DescribeIndexOutput, error) {
8929	req, out := c.DescribeIndexRequest(input)
8930	req.SetContext(ctx)
8931	req.ApplyOptions(opts...)
8932	return out, req.Send()
8933}
8934
8935const opDescribeJob = "DescribeJob"
8936
8937// DescribeJobRequest generates a "aws/request.Request" representing the
8938// client's request for the DescribeJob operation. The "output" return
8939// value will be populated with the request's response once the request completes
8940// successfully.
8941//
8942// Use "Send" method on the returned Request to send the API call to the service.
8943// the "output" return value is not valid until after Send returns without error.
8944//
8945// See DescribeJob for more information on using the DescribeJob
8946// API call, and error handling.
8947//
8948// This method is useful when you want to inject custom logic or configuration
8949// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8950//
8951//
8952//    // Example sending a request using the DescribeJobRequest method.
8953//    req, resp := client.DescribeJobRequest(params)
8954//
8955//    err := req.Send()
8956//    if err == nil { // resp is now filled
8957//        fmt.Println(resp)
8958//    }
8959func (c *IoT) DescribeJobRequest(input *DescribeJobInput) (req *request.Request, output *DescribeJobOutput) {
8960	op := &request.Operation{
8961		Name:       opDescribeJob,
8962		HTTPMethod: "GET",
8963		HTTPPath:   "/jobs/{jobId}",
8964	}
8965
8966	if input == nil {
8967		input = &DescribeJobInput{}
8968	}
8969
8970	output = &DescribeJobOutput{}
8971	req = c.newRequest(op, input, output)
8972	return
8973}
8974
8975// DescribeJob API operation for AWS IoT.
8976//
8977// Describes a job.
8978//
8979// Requires permission to access the DescribeJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
8980// action.
8981//
8982// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8983// with awserr.Error's Code and Message methods to get detailed information about
8984// the error.
8985//
8986// See the AWS API reference guide for AWS IoT's
8987// API operation DescribeJob for usage and error information.
8988//
8989// Returned Error Types:
8990//   * InvalidRequestException
8991//   The request is not valid.
8992//
8993//   * ResourceNotFoundException
8994//   The specified resource does not exist.
8995//
8996//   * ThrottlingException
8997//   The rate exceeds the limit.
8998//
8999//   * ServiceUnavailableException
9000//   The service is temporarily unavailable.
9001//
9002func (c *IoT) DescribeJob(input *DescribeJobInput) (*DescribeJobOutput, error) {
9003	req, out := c.DescribeJobRequest(input)
9004	return out, req.Send()
9005}
9006
9007// DescribeJobWithContext is the same as DescribeJob with the addition of
9008// the ability to pass a context and additional request options.
9009//
9010// See DescribeJob for details on how to use this API operation.
9011//
9012// The context must be non-nil and will be used for request cancellation. If
9013// the context is nil a panic will occur. In the future the SDK may create
9014// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9015// for more information on using Contexts.
9016func (c *IoT) DescribeJobWithContext(ctx aws.Context, input *DescribeJobInput, opts ...request.Option) (*DescribeJobOutput, error) {
9017	req, out := c.DescribeJobRequest(input)
9018	req.SetContext(ctx)
9019	req.ApplyOptions(opts...)
9020	return out, req.Send()
9021}
9022
9023const opDescribeJobExecution = "DescribeJobExecution"
9024
9025// DescribeJobExecutionRequest generates a "aws/request.Request" representing the
9026// client's request for the DescribeJobExecution operation. The "output" return
9027// value will be populated with the request's response once the request completes
9028// successfully.
9029//
9030// Use "Send" method on the returned Request to send the API call to the service.
9031// the "output" return value is not valid until after Send returns without error.
9032//
9033// See DescribeJobExecution for more information on using the DescribeJobExecution
9034// API call, and error handling.
9035//
9036// This method is useful when you want to inject custom logic or configuration
9037// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9038//
9039//
9040//    // Example sending a request using the DescribeJobExecutionRequest method.
9041//    req, resp := client.DescribeJobExecutionRequest(params)
9042//
9043//    err := req.Send()
9044//    if err == nil { // resp is now filled
9045//        fmt.Println(resp)
9046//    }
9047func (c *IoT) DescribeJobExecutionRequest(input *DescribeJobExecutionInput) (req *request.Request, output *DescribeJobExecutionOutput) {
9048	op := &request.Operation{
9049		Name:       opDescribeJobExecution,
9050		HTTPMethod: "GET",
9051		HTTPPath:   "/things/{thingName}/jobs/{jobId}",
9052	}
9053
9054	if input == nil {
9055		input = &DescribeJobExecutionInput{}
9056	}
9057
9058	output = &DescribeJobExecutionOutput{}
9059	req = c.newRequest(op, input, output)
9060	return
9061}
9062
9063// DescribeJobExecution API operation for AWS IoT.
9064//
9065// Describes a job execution.
9066//
9067// Requires permission to access the DescribeJobExecution (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
9068// action.
9069//
9070// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9071// with awserr.Error's Code and Message methods to get detailed information about
9072// the error.
9073//
9074// See the AWS API reference guide for AWS IoT's
9075// API operation DescribeJobExecution for usage and error information.
9076//
9077// Returned Error Types:
9078//   * InvalidRequestException
9079//   The request is not valid.
9080//
9081//   * ResourceNotFoundException
9082//   The specified resource does not exist.
9083//
9084//   * ThrottlingException
9085//   The rate exceeds the limit.
9086//
9087//   * ServiceUnavailableException
9088//   The service is temporarily unavailable.
9089//
9090func (c *IoT) DescribeJobExecution(input *DescribeJobExecutionInput) (*DescribeJobExecutionOutput, error) {
9091	req, out := c.DescribeJobExecutionRequest(input)
9092	return out, req.Send()
9093}
9094
9095// DescribeJobExecutionWithContext is the same as DescribeJobExecution with the addition of
9096// the ability to pass a context and additional request options.
9097//
9098// See DescribeJobExecution for details on how to use this API operation.
9099//
9100// The context must be non-nil and will be used for request cancellation. If
9101// the context is nil a panic will occur. In the future the SDK may create
9102// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9103// for more information on using Contexts.
9104func (c *IoT) DescribeJobExecutionWithContext(ctx aws.Context, input *DescribeJobExecutionInput, opts ...request.Option) (*DescribeJobExecutionOutput, error) {
9105	req, out := c.DescribeJobExecutionRequest(input)
9106	req.SetContext(ctx)
9107	req.ApplyOptions(opts...)
9108	return out, req.Send()
9109}
9110
9111const opDescribeJobTemplate = "DescribeJobTemplate"
9112
9113// DescribeJobTemplateRequest generates a "aws/request.Request" representing the
9114// client's request for the DescribeJobTemplate operation. The "output" return
9115// value will be populated with the request's response once the request completes
9116// successfully.
9117//
9118// Use "Send" method on the returned Request to send the API call to the service.
9119// the "output" return value is not valid until after Send returns without error.
9120//
9121// See DescribeJobTemplate for more information on using the DescribeJobTemplate
9122// API call, and error handling.
9123//
9124// This method is useful when you want to inject custom logic or configuration
9125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9126//
9127//
9128//    // Example sending a request using the DescribeJobTemplateRequest method.
9129//    req, resp := client.DescribeJobTemplateRequest(params)
9130//
9131//    err := req.Send()
9132//    if err == nil { // resp is now filled
9133//        fmt.Println(resp)
9134//    }
9135func (c *IoT) DescribeJobTemplateRequest(input *DescribeJobTemplateInput) (req *request.Request, output *DescribeJobTemplateOutput) {
9136	op := &request.Operation{
9137		Name:       opDescribeJobTemplate,
9138		HTTPMethod: "GET",
9139		HTTPPath:   "/job-templates/{jobTemplateId}",
9140	}
9141
9142	if input == nil {
9143		input = &DescribeJobTemplateInput{}
9144	}
9145
9146	output = &DescribeJobTemplateOutput{}
9147	req = c.newRequest(op, input, output)
9148	return
9149}
9150
9151// DescribeJobTemplate API operation for AWS IoT.
9152//
9153// Returns information about a job template.
9154//
9155// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9156// with awserr.Error's Code and Message methods to get detailed information about
9157// the error.
9158//
9159// See the AWS API reference guide for AWS IoT's
9160// API operation DescribeJobTemplate for usage and error information.
9161//
9162// Returned Error Types:
9163//   * InvalidRequestException
9164//   The request is not valid.
9165//
9166//   * ResourceNotFoundException
9167//   The specified resource does not exist.
9168//
9169//   * ThrottlingException
9170//   The rate exceeds the limit.
9171//
9172//   * InternalFailureException
9173//   An unexpected error has occurred.
9174//
9175func (c *IoT) DescribeJobTemplate(input *DescribeJobTemplateInput) (*DescribeJobTemplateOutput, error) {
9176	req, out := c.DescribeJobTemplateRequest(input)
9177	return out, req.Send()
9178}
9179
9180// DescribeJobTemplateWithContext is the same as DescribeJobTemplate with the addition of
9181// the ability to pass a context and additional request options.
9182//
9183// See DescribeJobTemplate for details on how to use this API operation.
9184//
9185// The context must be non-nil and will be used for request cancellation. If
9186// the context is nil a panic will occur. In the future the SDK may create
9187// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9188// for more information on using Contexts.
9189func (c *IoT) DescribeJobTemplateWithContext(ctx aws.Context, input *DescribeJobTemplateInput, opts ...request.Option) (*DescribeJobTemplateOutput, error) {
9190	req, out := c.DescribeJobTemplateRequest(input)
9191	req.SetContext(ctx)
9192	req.ApplyOptions(opts...)
9193	return out, req.Send()
9194}
9195
9196const opDescribeMitigationAction = "DescribeMitigationAction"
9197
9198// DescribeMitigationActionRequest generates a "aws/request.Request" representing the
9199// client's request for the DescribeMitigationAction operation. The "output" return
9200// value will be populated with the request's response once the request completes
9201// successfully.
9202//
9203// Use "Send" method on the returned Request to send the API call to the service.
9204// the "output" return value is not valid until after Send returns without error.
9205//
9206// See DescribeMitigationAction for more information on using the DescribeMitigationAction
9207// API call, and error handling.
9208//
9209// This method is useful when you want to inject custom logic or configuration
9210// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9211//
9212//
9213//    // Example sending a request using the DescribeMitigationActionRequest method.
9214//    req, resp := client.DescribeMitigationActionRequest(params)
9215//
9216//    err := req.Send()
9217//    if err == nil { // resp is now filled
9218//        fmt.Println(resp)
9219//    }
9220func (c *IoT) DescribeMitigationActionRequest(input *DescribeMitigationActionInput) (req *request.Request, output *DescribeMitigationActionOutput) {
9221	op := &request.Operation{
9222		Name:       opDescribeMitigationAction,
9223		HTTPMethod: "GET",
9224		HTTPPath:   "/mitigationactions/actions/{actionName}",
9225	}
9226
9227	if input == nil {
9228		input = &DescribeMitigationActionInput{}
9229	}
9230
9231	output = &DescribeMitigationActionOutput{}
9232	req = c.newRequest(op, input, output)
9233	return
9234}
9235
9236// DescribeMitigationAction API operation for AWS IoT.
9237//
9238// Gets information about a mitigation action.
9239//
9240// Requires permission to access the DescribeMitigationAction (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
9241// action.
9242//
9243// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9244// with awserr.Error's Code and Message methods to get detailed information about
9245// the error.
9246//
9247// See the AWS API reference guide for AWS IoT's
9248// API operation DescribeMitigationAction for usage and error information.
9249//
9250// Returned Error Types:
9251//   * InvalidRequestException
9252//   The request is not valid.
9253//
9254//   * ResourceNotFoundException
9255//   The specified resource does not exist.
9256//
9257//   * ThrottlingException
9258//   The rate exceeds the limit.
9259//
9260//   * InternalFailureException
9261//   An unexpected error has occurred.
9262//
9263func (c *IoT) DescribeMitigationAction(input *DescribeMitigationActionInput) (*DescribeMitigationActionOutput, error) {
9264	req, out := c.DescribeMitigationActionRequest(input)
9265	return out, req.Send()
9266}
9267
9268// DescribeMitigationActionWithContext is the same as DescribeMitigationAction with the addition of
9269// the ability to pass a context and additional request options.
9270//
9271// See DescribeMitigationAction for details on how to use this API operation.
9272//
9273// The context must be non-nil and will be used for request cancellation. If
9274// the context is nil a panic will occur. In the future the SDK may create
9275// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9276// for more information on using Contexts.
9277func (c *IoT) DescribeMitigationActionWithContext(ctx aws.Context, input *DescribeMitigationActionInput, opts ...request.Option) (*DescribeMitigationActionOutput, error) {
9278	req, out := c.DescribeMitigationActionRequest(input)
9279	req.SetContext(ctx)
9280	req.ApplyOptions(opts...)
9281	return out, req.Send()
9282}
9283
9284const opDescribeProvisioningTemplate = "DescribeProvisioningTemplate"
9285
9286// DescribeProvisioningTemplateRequest generates a "aws/request.Request" representing the
9287// client's request for the DescribeProvisioningTemplate operation. The "output" return
9288// value will be populated with the request's response once the request completes
9289// successfully.
9290//
9291// Use "Send" method on the returned Request to send the API call to the service.
9292// the "output" return value is not valid until after Send returns without error.
9293//
9294// See DescribeProvisioningTemplate for more information on using the DescribeProvisioningTemplate
9295// API call, and error handling.
9296//
9297// This method is useful when you want to inject custom logic or configuration
9298// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9299//
9300//
9301//    // Example sending a request using the DescribeProvisioningTemplateRequest method.
9302//    req, resp := client.DescribeProvisioningTemplateRequest(params)
9303//
9304//    err := req.Send()
9305//    if err == nil { // resp is now filled
9306//        fmt.Println(resp)
9307//    }
9308func (c *IoT) DescribeProvisioningTemplateRequest(input *DescribeProvisioningTemplateInput) (req *request.Request, output *DescribeProvisioningTemplateOutput) {
9309	op := &request.Operation{
9310		Name:       opDescribeProvisioningTemplate,
9311		HTTPMethod: "GET",
9312		HTTPPath:   "/provisioning-templates/{templateName}",
9313	}
9314
9315	if input == nil {
9316		input = &DescribeProvisioningTemplateInput{}
9317	}
9318
9319	output = &DescribeProvisioningTemplateOutput{}
9320	req = c.newRequest(op, input, output)
9321	return
9322}
9323
9324// DescribeProvisioningTemplate API operation for AWS IoT.
9325//
9326// Returns information about a fleet provisioning template.
9327//
9328// Requires permission to access the DescribeProvisioningTemplate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
9329// action.
9330//
9331// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9332// with awserr.Error's Code and Message methods to get detailed information about
9333// the error.
9334//
9335// See the AWS API reference guide for AWS IoT's
9336// API operation DescribeProvisioningTemplate for usage and error information.
9337//
9338// Returned Error Types:
9339//   * InternalFailureException
9340//   An unexpected error has occurred.
9341//
9342//   * InvalidRequestException
9343//   The request is not valid.
9344//
9345//   * ResourceNotFoundException
9346//   The specified resource does not exist.
9347//
9348//   * ThrottlingException
9349//   The rate exceeds the limit.
9350//
9351//   * UnauthorizedException
9352//   You are not authorized to perform this operation.
9353//
9354func (c *IoT) DescribeProvisioningTemplate(input *DescribeProvisioningTemplateInput) (*DescribeProvisioningTemplateOutput, error) {
9355	req, out := c.DescribeProvisioningTemplateRequest(input)
9356	return out, req.Send()
9357}
9358
9359// DescribeProvisioningTemplateWithContext is the same as DescribeProvisioningTemplate with the addition of
9360// the ability to pass a context and additional request options.
9361//
9362// See DescribeProvisioningTemplate for details on how to use this API operation.
9363//
9364// The context must be non-nil and will be used for request cancellation. If
9365// the context is nil a panic will occur. In the future the SDK may create
9366// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9367// for more information on using Contexts.
9368func (c *IoT) DescribeProvisioningTemplateWithContext(ctx aws.Context, input *DescribeProvisioningTemplateInput, opts ...request.Option) (*DescribeProvisioningTemplateOutput, error) {
9369	req, out := c.DescribeProvisioningTemplateRequest(input)
9370	req.SetContext(ctx)
9371	req.ApplyOptions(opts...)
9372	return out, req.Send()
9373}
9374
9375const opDescribeProvisioningTemplateVersion = "DescribeProvisioningTemplateVersion"
9376
9377// DescribeProvisioningTemplateVersionRequest generates a "aws/request.Request" representing the
9378// client's request for the DescribeProvisioningTemplateVersion operation. The "output" return
9379// value will be populated with the request's response once the request completes
9380// successfully.
9381//
9382// Use "Send" method on the returned Request to send the API call to the service.
9383// the "output" return value is not valid until after Send returns without error.
9384//
9385// See DescribeProvisioningTemplateVersion for more information on using the DescribeProvisioningTemplateVersion
9386// API call, and error handling.
9387//
9388// This method is useful when you want to inject custom logic or configuration
9389// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9390//
9391//
9392//    // Example sending a request using the DescribeProvisioningTemplateVersionRequest method.
9393//    req, resp := client.DescribeProvisioningTemplateVersionRequest(params)
9394//
9395//    err := req.Send()
9396//    if err == nil { // resp is now filled
9397//        fmt.Println(resp)
9398//    }
9399func (c *IoT) DescribeProvisioningTemplateVersionRequest(input *DescribeProvisioningTemplateVersionInput) (req *request.Request, output *DescribeProvisioningTemplateVersionOutput) {
9400	op := &request.Operation{
9401		Name:       opDescribeProvisioningTemplateVersion,
9402		HTTPMethod: "GET",
9403		HTTPPath:   "/provisioning-templates/{templateName}/versions/{versionId}",
9404	}
9405
9406	if input == nil {
9407		input = &DescribeProvisioningTemplateVersionInput{}
9408	}
9409
9410	output = &DescribeProvisioningTemplateVersionOutput{}
9411	req = c.newRequest(op, input, output)
9412	return
9413}
9414
9415// DescribeProvisioningTemplateVersion API operation for AWS IoT.
9416//
9417// Returns information about a fleet provisioning template version.
9418//
9419// Requires permission to access the DescribeProvisioningTemplateVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
9420// action.
9421//
9422// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9423// with awserr.Error's Code and Message methods to get detailed information about
9424// the error.
9425//
9426// See the AWS API reference guide for AWS IoT's
9427// API operation DescribeProvisioningTemplateVersion for usage and error information.
9428//
9429// Returned Error Types:
9430//   * InternalFailureException
9431//   An unexpected error has occurred.
9432//
9433//   * InvalidRequestException
9434//   The request is not valid.
9435//
9436//   * ThrottlingException
9437//   The rate exceeds the limit.
9438//
9439//   * ResourceNotFoundException
9440//   The specified resource does not exist.
9441//
9442//   * UnauthorizedException
9443//   You are not authorized to perform this operation.
9444//
9445func (c *IoT) DescribeProvisioningTemplateVersion(input *DescribeProvisioningTemplateVersionInput) (*DescribeProvisioningTemplateVersionOutput, error) {
9446	req, out := c.DescribeProvisioningTemplateVersionRequest(input)
9447	return out, req.Send()
9448}
9449
9450// DescribeProvisioningTemplateVersionWithContext is the same as DescribeProvisioningTemplateVersion with the addition of
9451// the ability to pass a context and additional request options.
9452//
9453// See DescribeProvisioningTemplateVersion for details on how to use this API operation.
9454//
9455// The context must be non-nil and will be used for request cancellation. If
9456// the context is nil a panic will occur. In the future the SDK may create
9457// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9458// for more information on using Contexts.
9459func (c *IoT) DescribeProvisioningTemplateVersionWithContext(ctx aws.Context, input *DescribeProvisioningTemplateVersionInput, opts ...request.Option) (*DescribeProvisioningTemplateVersionOutput, error) {
9460	req, out := c.DescribeProvisioningTemplateVersionRequest(input)
9461	req.SetContext(ctx)
9462	req.ApplyOptions(opts...)
9463	return out, req.Send()
9464}
9465
9466const opDescribeRoleAlias = "DescribeRoleAlias"
9467
9468// DescribeRoleAliasRequest generates a "aws/request.Request" representing the
9469// client's request for the DescribeRoleAlias operation. The "output" return
9470// value will be populated with the request's response once the request completes
9471// successfully.
9472//
9473// Use "Send" method on the returned Request to send the API call to the service.
9474// the "output" return value is not valid until after Send returns without error.
9475//
9476// See DescribeRoleAlias for more information on using the DescribeRoleAlias
9477// API call, and error handling.
9478//
9479// This method is useful when you want to inject custom logic or configuration
9480// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9481//
9482//
9483//    // Example sending a request using the DescribeRoleAliasRequest method.
9484//    req, resp := client.DescribeRoleAliasRequest(params)
9485//
9486//    err := req.Send()
9487//    if err == nil { // resp is now filled
9488//        fmt.Println(resp)
9489//    }
9490func (c *IoT) DescribeRoleAliasRequest(input *DescribeRoleAliasInput) (req *request.Request, output *DescribeRoleAliasOutput) {
9491	op := &request.Operation{
9492		Name:       opDescribeRoleAlias,
9493		HTTPMethod: "GET",
9494		HTTPPath:   "/role-aliases/{roleAlias}",
9495	}
9496
9497	if input == nil {
9498		input = &DescribeRoleAliasInput{}
9499	}
9500
9501	output = &DescribeRoleAliasOutput{}
9502	req = c.newRequest(op, input, output)
9503	return
9504}
9505
9506// DescribeRoleAlias API operation for AWS IoT.
9507//
9508// Describes a role alias.
9509//
9510// Requires permission to access the DescribeRoleAlias (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
9511// action.
9512//
9513// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9514// with awserr.Error's Code and Message methods to get detailed information about
9515// the error.
9516//
9517// See the AWS API reference guide for AWS IoT's
9518// API operation DescribeRoleAlias for usage and error information.
9519//
9520// Returned Error Types:
9521//   * InvalidRequestException
9522//   The request is not valid.
9523//
9524//   * ThrottlingException
9525//   The rate exceeds the limit.
9526//
9527//   * UnauthorizedException
9528//   You are not authorized to perform this operation.
9529//
9530//   * ServiceUnavailableException
9531//   The service is temporarily unavailable.
9532//
9533//   * InternalFailureException
9534//   An unexpected error has occurred.
9535//
9536//   * ResourceNotFoundException
9537//   The specified resource does not exist.
9538//
9539func (c *IoT) DescribeRoleAlias(input *DescribeRoleAliasInput) (*DescribeRoleAliasOutput, error) {
9540	req, out := c.DescribeRoleAliasRequest(input)
9541	return out, req.Send()
9542}
9543
9544// DescribeRoleAliasWithContext is the same as DescribeRoleAlias with the addition of
9545// the ability to pass a context and additional request options.
9546//
9547// See DescribeRoleAlias for details on how to use this API operation.
9548//
9549// The context must be non-nil and will be used for request cancellation. If
9550// the context is nil a panic will occur. In the future the SDK may create
9551// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9552// for more information on using Contexts.
9553func (c *IoT) DescribeRoleAliasWithContext(ctx aws.Context, input *DescribeRoleAliasInput, opts ...request.Option) (*DescribeRoleAliasOutput, error) {
9554	req, out := c.DescribeRoleAliasRequest(input)
9555	req.SetContext(ctx)
9556	req.ApplyOptions(opts...)
9557	return out, req.Send()
9558}
9559
9560const opDescribeScheduledAudit = "DescribeScheduledAudit"
9561
9562// DescribeScheduledAuditRequest generates a "aws/request.Request" representing the
9563// client's request for the DescribeScheduledAudit operation. The "output" return
9564// value will be populated with the request's response once the request completes
9565// successfully.
9566//
9567// Use "Send" method on the returned Request to send the API call to the service.
9568// the "output" return value is not valid until after Send returns without error.
9569//
9570// See DescribeScheduledAudit for more information on using the DescribeScheduledAudit
9571// API call, and error handling.
9572//
9573// This method is useful when you want to inject custom logic or configuration
9574// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9575//
9576//
9577//    // Example sending a request using the DescribeScheduledAuditRequest method.
9578//    req, resp := client.DescribeScheduledAuditRequest(params)
9579//
9580//    err := req.Send()
9581//    if err == nil { // resp is now filled
9582//        fmt.Println(resp)
9583//    }
9584func (c *IoT) DescribeScheduledAuditRequest(input *DescribeScheduledAuditInput) (req *request.Request, output *DescribeScheduledAuditOutput) {
9585	op := &request.Operation{
9586		Name:       opDescribeScheduledAudit,
9587		HTTPMethod: "GET",
9588		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
9589	}
9590
9591	if input == nil {
9592		input = &DescribeScheduledAuditInput{}
9593	}
9594
9595	output = &DescribeScheduledAuditOutput{}
9596	req = c.newRequest(op, input, output)
9597	return
9598}
9599
9600// DescribeScheduledAudit API operation for AWS IoT.
9601//
9602// Gets information about a scheduled audit.
9603//
9604// Requires permission to access the DescribeScheduledAudit (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
9605// action.
9606//
9607// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9608// with awserr.Error's Code and Message methods to get detailed information about
9609// the error.
9610//
9611// See the AWS API reference guide for AWS IoT's
9612// API operation DescribeScheduledAudit for usage and error information.
9613//
9614// Returned Error Types:
9615//   * InvalidRequestException
9616//   The request is not valid.
9617//
9618//   * ResourceNotFoundException
9619//   The specified resource does not exist.
9620//
9621//   * ThrottlingException
9622//   The rate exceeds the limit.
9623//
9624//   * InternalFailureException
9625//   An unexpected error has occurred.
9626//
9627func (c *IoT) DescribeScheduledAudit(input *DescribeScheduledAuditInput) (*DescribeScheduledAuditOutput, error) {
9628	req, out := c.DescribeScheduledAuditRequest(input)
9629	return out, req.Send()
9630}
9631
9632// DescribeScheduledAuditWithContext is the same as DescribeScheduledAudit with the addition of
9633// the ability to pass a context and additional request options.
9634//
9635// See DescribeScheduledAudit for details on how to use this API operation.
9636//
9637// The context must be non-nil and will be used for request cancellation. If
9638// the context is nil a panic will occur. In the future the SDK may create
9639// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9640// for more information on using Contexts.
9641func (c *IoT) DescribeScheduledAuditWithContext(ctx aws.Context, input *DescribeScheduledAuditInput, opts ...request.Option) (*DescribeScheduledAuditOutput, error) {
9642	req, out := c.DescribeScheduledAuditRequest(input)
9643	req.SetContext(ctx)
9644	req.ApplyOptions(opts...)
9645	return out, req.Send()
9646}
9647
9648const opDescribeSecurityProfile = "DescribeSecurityProfile"
9649
9650// DescribeSecurityProfileRequest generates a "aws/request.Request" representing the
9651// client's request for the DescribeSecurityProfile operation. The "output" return
9652// value will be populated with the request's response once the request completes
9653// successfully.
9654//
9655// Use "Send" method on the returned Request to send the API call to the service.
9656// the "output" return value is not valid until after Send returns without error.
9657//
9658// See DescribeSecurityProfile for more information on using the DescribeSecurityProfile
9659// API call, and error handling.
9660//
9661// This method is useful when you want to inject custom logic or configuration
9662// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9663//
9664//
9665//    // Example sending a request using the DescribeSecurityProfileRequest method.
9666//    req, resp := client.DescribeSecurityProfileRequest(params)
9667//
9668//    err := req.Send()
9669//    if err == nil { // resp is now filled
9670//        fmt.Println(resp)
9671//    }
9672func (c *IoT) DescribeSecurityProfileRequest(input *DescribeSecurityProfileInput) (req *request.Request, output *DescribeSecurityProfileOutput) {
9673	op := &request.Operation{
9674		Name:       opDescribeSecurityProfile,
9675		HTTPMethod: "GET",
9676		HTTPPath:   "/security-profiles/{securityProfileName}",
9677	}
9678
9679	if input == nil {
9680		input = &DescribeSecurityProfileInput{}
9681	}
9682
9683	output = &DescribeSecurityProfileOutput{}
9684	req = c.newRequest(op, input, output)
9685	return
9686}
9687
9688// DescribeSecurityProfile API operation for AWS IoT.
9689//
9690// Gets information about a Device Defender security profile.
9691//
9692// Requires permission to access the DescribeSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
9693// action.
9694//
9695// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9696// with awserr.Error's Code and Message methods to get detailed information about
9697// the error.
9698//
9699// See the AWS API reference guide for AWS IoT's
9700// API operation DescribeSecurityProfile for usage and error information.
9701//
9702// Returned Error Types:
9703//   * InvalidRequestException
9704//   The request is not valid.
9705//
9706//   * ResourceNotFoundException
9707//   The specified resource does not exist.
9708//
9709//   * ThrottlingException
9710//   The rate exceeds the limit.
9711//
9712//   * InternalFailureException
9713//   An unexpected error has occurred.
9714//
9715func (c *IoT) DescribeSecurityProfile(input *DescribeSecurityProfileInput) (*DescribeSecurityProfileOutput, error) {
9716	req, out := c.DescribeSecurityProfileRequest(input)
9717	return out, req.Send()
9718}
9719
9720// DescribeSecurityProfileWithContext is the same as DescribeSecurityProfile with the addition of
9721// the ability to pass a context and additional request options.
9722//
9723// See DescribeSecurityProfile for details on how to use this API operation.
9724//
9725// The context must be non-nil and will be used for request cancellation. If
9726// the context is nil a panic will occur. In the future the SDK may create
9727// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9728// for more information on using Contexts.
9729func (c *IoT) DescribeSecurityProfileWithContext(ctx aws.Context, input *DescribeSecurityProfileInput, opts ...request.Option) (*DescribeSecurityProfileOutput, error) {
9730	req, out := c.DescribeSecurityProfileRequest(input)
9731	req.SetContext(ctx)
9732	req.ApplyOptions(opts...)
9733	return out, req.Send()
9734}
9735
9736const opDescribeStream = "DescribeStream"
9737
9738// DescribeStreamRequest generates a "aws/request.Request" representing the
9739// client's request for the DescribeStream operation. The "output" return
9740// value will be populated with the request's response once the request completes
9741// successfully.
9742//
9743// Use "Send" method on the returned Request to send the API call to the service.
9744// the "output" return value is not valid until after Send returns without error.
9745//
9746// See DescribeStream for more information on using the DescribeStream
9747// API call, and error handling.
9748//
9749// This method is useful when you want to inject custom logic or configuration
9750// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9751//
9752//
9753//    // Example sending a request using the DescribeStreamRequest method.
9754//    req, resp := client.DescribeStreamRequest(params)
9755//
9756//    err := req.Send()
9757//    if err == nil { // resp is now filled
9758//        fmt.Println(resp)
9759//    }
9760func (c *IoT) DescribeStreamRequest(input *DescribeStreamInput) (req *request.Request, output *DescribeStreamOutput) {
9761	op := &request.Operation{
9762		Name:       opDescribeStream,
9763		HTTPMethod: "GET",
9764		HTTPPath:   "/streams/{streamId}",
9765	}
9766
9767	if input == nil {
9768		input = &DescribeStreamInput{}
9769	}
9770
9771	output = &DescribeStreamOutput{}
9772	req = c.newRequest(op, input, output)
9773	return
9774}
9775
9776// DescribeStream API operation for AWS IoT.
9777//
9778// Gets information about a stream.
9779//
9780// Requires permission to access the DescribeStream (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
9781// action.
9782//
9783// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9784// with awserr.Error's Code and Message methods to get detailed information about
9785// the error.
9786//
9787// See the AWS API reference guide for AWS IoT's
9788// API operation DescribeStream for usage and error information.
9789//
9790// Returned Error Types:
9791//   * InvalidRequestException
9792//   The request is not valid.
9793//
9794//   * ResourceNotFoundException
9795//   The specified resource does not exist.
9796//
9797//   * ThrottlingException
9798//   The rate exceeds the limit.
9799//
9800//   * UnauthorizedException
9801//   You are not authorized to perform this operation.
9802//
9803//   * ServiceUnavailableException
9804//   The service is temporarily unavailable.
9805//
9806//   * InternalFailureException
9807//   An unexpected error has occurred.
9808//
9809func (c *IoT) DescribeStream(input *DescribeStreamInput) (*DescribeStreamOutput, error) {
9810	req, out := c.DescribeStreamRequest(input)
9811	return out, req.Send()
9812}
9813
9814// DescribeStreamWithContext is the same as DescribeStream with the addition of
9815// the ability to pass a context and additional request options.
9816//
9817// See DescribeStream for details on how to use this API operation.
9818//
9819// The context must be non-nil and will be used for request cancellation. If
9820// the context is nil a panic will occur. In the future the SDK may create
9821// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9822// for more information on using Contexts.
9823func (c *IoT) DescribeStreamWithContext(ctx aws.Context, input *DescribeStreamInput, opts ...request.Option) (*DescribeStreamOutput, error) {
9824	req, out := c.DescribeStreamRequest(input)
9825	req.SetContext(ctx)
9826	req.ApplyOptions(opts...)
9827	return out, req.Send()
9828}
9829
9830const opDescribeThing = "DescribeThing"
9831
9832// DescribeThingRequest generates a "aws/request.Request" representing the
9833// client's request for the DescribeThing operation. The "output" return
9834// value will be populated with the request's response once the request completes
9835// successfully.
9836//
9837// Use "Send" method on the returned Request to send the API call to the service.
9838// the "output" return value is not valid until after Send returns without error.
9839//
9840// See DescribeThing for more information on using the DescribeThing
9841// API call, and error handling.
9842//
9843// This method is useful when you want to inject custom logic or configuration
9844// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9845//
9846//
9847//    // Example sending a request using the DescribeThingRequest method.
9848//    req, resp := client.DescribeThingRequest(params)
9849//
9850//    err := req.Send()
9851//    if err == nil { // resp is now filled
9852//        fmt.Println(resp)
9853//    }
9854func (c *IoT) DescribeThingRequest(input *DescribeThingInput) (req *request.Request, output *DescribeThingOutput) {
9855	op := &request.Operation{
9856		Name:       opDescribeThing,
9857		HTTPMethod: "GET",
9858		HTTPPath:   "/things/{thingName}",
9859	}
9860
9861	if input == nil {
9862		input = &DescribeThingInput{}
9863	}
9864
9865	output = &DescribeThingOutput{}
9866	req = c.newRequest(op, input, output)
9867	return
9868}
9869
9870// DescribeThing API operation for AWS IoT.
9871//
9872// Gets information about the specified thing.
9873//
9874// Requires permission to access the DescribeThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
9875// action.
9876//
9877// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9878// with awserr.Error's Code and Message methods to get detailed information about
9879// the error.
9880//
9881// See the AWS API reference guide for AWS IoT's
9882// API operation DescribeThing for usage and error information.
9883//
9884// Returned Error Types:
9885//   * ResourceNotFoundException
9886//   The specified resource does not exist.
9887//
9888//   * InvalidRequestException
9889//   The request is not valid.
9890//
9891//   * ThrottlingException
9892//   The rate exceeds the limit.
9893//
9894//   * UnauthorizedException
9895//   You are not authorized to perform this operation.
9896//
9897//   * ServiceUnavailableException
9898//   The service is temporarily unavailable.
9899//
9900//   * InternalFailureException
9901//   An unexpected error has occurred.
9902//
9903func (c *IoT) DescribeThing(input *DescribeThingInput) (*DescribeThingOutput, error) {
9904	req, out := c.DescribeThingRequest(input)
9905	return out, req.Send()
9906}
9907
9908// DescribeThingWithContext is the same as DescribeThing with the addition of
9909// the ability to pass a context and additional request options.
9910//
9911// See DescribeThing for details on how to use this API operation.
9912//
9913// The context must be non-nil and will be used for request cancellation. If
9914// the context is nil a panic will occur. In the future the SDK may create
9915// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9916// for more information on using Contexts.
9917func (c *IoT) DescribeThingWithContext(ctx aws.Context, input *DescribeThingInput, opts ...request.Option) (*DescribeThingOutput, error) {
9918	req, out := c.DescribeThingRequest(input)
9919	req.SetContext(ctx)
9920	req.ApplyOptions(opts...)
9921	return out, req.Send()
9922}
9923
9924const opDescribeThingGroup = "DescribeThingGroup"
9925
9926// DescribeThingGroupRequest generates a "aws/request.Request" representing the
9927// client's request for the DescribeThingGroup operation. The "output" return
9928// value will be populated with the request's response once the request completes
9929// successfully.
9930//
9931// Use "Send" method on the returned Request to send the API call to the service.
9932// the "output" return value is not valid until after Send returns without error.
9933//
9934// See DescribeThingGroup for more information on using the DescribeThingGroup
9935// API call, and error handling.
9936//
9937// This method is useful when you want to inject custom logic or configuration
9938// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9939//
9940//
9941//    // Example sending a request using the DescribeThingGroupRequest method.
9942//    req, resp := client.DescribeThingGroupRequest(params)
9943//
9944//    err := req.Send()
9945//    if err == nil { // resp is now filled
9946//        fmt.Println(resp)
9947//    }
9948func (c *IoT) DescribeThingGroupRequest(input *DescribeThingGroupInput) (req *request.Request, output *DescribeThingGroupOutput) {
9949	op := &request.Operation{
9950		Name:       opDescribeThingGroup,
9951		HTTPMethod: "GET",
9952		HTTPPath:   "/thing-groups/{thingGroupName}",
9953	}
9954
9955	if input == nil {
9956		input = &DescribeThingGroupInput{}
9957	}
9958
9959	output = &DescribeThingGroupOutput{}
9960	req = c.newRequest(op, input, output)
9961	return
9962}
9963
9964// DescribeThingGroup API operation for AWS IoT.
9965//
9966// Describe a thing group.
9967//
9968// Requires permission to access the DescribeThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
9969// action.
9970//
9971// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9972// with awserr.Error's Code and Message methods to get detailed information about
9973// the error.
9974//
9975// See the AWS API reference guide for AWS IoT's
9976// API operation DescribeThingGroup for usage and error information.
9977//
9978// Returned Error Types:
9979//   * InvalidRequestException
9980//   The request is not valid.
9981//
9982//   * ThrottlingException
9983//   The rate exceeds the limit.
9984//
9985//   * InternalFailureException
9986//   An unexpected error has occurred.
9987//
9988//   * ResourceNotFoundException
9989//   The specified resource does not exist.
9990//
9991func (c *IoT) DescribeThingGroup(input *DescribeThingGroupInput) (*DescribeThingGroupOutput, error) {
9992	req, out := c.DescribeThingGroupRequest(input)
9993	return out, req.Send()
9994}
9995
9996// DescribeThingGroupWithContext is the same as DescribeThingGroup with the addition of
9997// the ability to pass a context and additional request options.
9998//
9999// See DescribeThingGroup for details on how to use this API operation.
10000//
10001// The context must be non-nil and will be used for request cancellation. If
10002// the context is nil a panic will occur. In the future the SDK may create
10003// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10004// for more information on using Contexts.
10005func (c *IoT) DescribeThingGroupWithContext(ctx aws.Context, input *DescribeThingGroupInput, opts ...request.Option) (*DescribeThingGroupOutput, error) {
10006	req, out := c.DescribeThingGroupRequest(input)
10007	req.SetContext(ctx)
10008	req.ApplyOptions(opts...)
10009	return out, req.Send()
10010}
10011
10012const opDescribeThingRegistrationTask = "DescribeThingRegistrationTask"
10013
10014// DescribeThingRegistrationTaskRequest generates a "aws/request.Request" representing the
10015// client's request for the DescribeThingRegistrationTask operation. The "output" return
10016// value will be populated with the request's response once the request completes
10017// successfully.
10018//
10019// Use "Send" method on the returned Request to send the API call to the service.
10020// the "output" return value is not valid until after Send returns without error.
10021//
10022// See DescribeThingRegistrationTask for more information on using the DescribeThingRegistrationTask
10023// API call, and error handling.
10024//
10025// This method is useful when you want to inject custom logic or configuration
10026// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10027//
10028//
10029//    // Example sending a request using the DescribeThingRegistrationTaskRequest method.
10030//    req, resp := client.DescribeThingRegistrationTaskRequest(params)
10031//
10032//    err := req.Send()
10033//    if err == nil { // resp is now filled
10034//        fmt.Println(resp)
10035//    }
10036func (c *IoT) DescribeThingRegistrationTaskRequest(input *DescribeThingRegistrationTaskInput) (req *request.Request, output *DescribeThingRegistrationTaskOutput) {
10037	op := &request.Operation{
10038		Name:       opDescribeThingRegistrationTask,
10039		HTTPMethod: "GET",
10040		HTTPPath:   "/thing-registration-tasks/{taskId}",
10041	}
10042
10043	if input == nil {
10044		input = &DescribeThingRegistrationTaskInput{}
10045	}
10046
10047	output = &DescribeThingRegistrationTaskOutput{}
10048	req = c.newRequest(op, input, output)
10049	return
10050}
10051
10052// DescribeThingRegistrationTask API operation for AWS IoT.
10053//
10054// Describes a bulk thing provisioning task.
10055//
10056// Requires permission to access the DescribeThingRegistrationTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
10057// action.
10058//
10059// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10060// with awserr.Error's Code and Message methods to get detailed information about
10061// the error.
10062//
10063// See the AWS API reference guide for AWS IoT's
10064// API operation DescribeThingRegistrationTask for usage and error information.
10065//
10066// Returned Error Types:
10067//   * InvalidRequestException
10068//   The request is not valid.
10069//
10070//   * ThrottlingException
10071//   The rate exceeds the limit.
10072//
10073//   * UnauthorizedException
10074//   You are not authorized to perform this operation.
10075//
10076//   * InternalFailureException
10077//   An unexpected error has occurred.
10078//
10079//   * ResourceNotFoundException
10080//   The specified resource does not exist.
10081//
10082func (c *IoT) DescribeThingRegistrationTask(input *DescribeThingRegistrationTaskInput) (*DescribeThingRegistrationTaskOutput, error) {
10083	req, out := c.DescribeThingRegistrationTaskRequest(input)
10084	return out, req.Send()
10085}
10086
10087// DescribeThingRegistrationTaskWithContext is the same as DescribeThingRegistrationTask with the addition of
10088// the ability to pass a context and additional request options.
10089//
10090// See DescribeThingRegistrationTask for details on how to use this API operation.
10091//
10092// The context must be non-nil and will be used for request cancellation. If
10093// the context is nil a panic will occur. In the future the SDK may create
10094// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10095// for more information on using Contexts.
10096func (c *IoT) DescribeThingRegistrationTaskWithContext(ctx aws.Context, input *DescribeThingRegistrationTaskInput, opts ...request.Option) (*DescribeThingRegistrationTaskOutput, error) {
10097	req, out := c.DescribeThingRegistrationTaskRequest(input)
10098	req.SetContext(ctx)
10099	req.ApplyOptions(opts...)
10100	return out, req.Send()
10101}
10102
10103const opDescribeThingType = "DescribeThingType"
10104
10105// DescribeThingTypeRequest generates a "aws/request.Request" representing the
10106// client's request for the DescribeThingType operation. The "output" return
10107// value will be populated with the request's response once the request completes
10108// successfully.
10109//
10110// Use "Send" method on the returned Request to send the API call to the service.
10111// the "output" return value is not valid until after Send returns without error.
10112//
10113// See DescribeThingType for more information on using the DescribeThingType
10114// API call, and error handling.
10115//
10116// This method is useful when you want to inject custom logic or configuration
10117// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10118//
10119//
10120//    // Example sending a request using the DescribeThingTypeRequest method.
10121//    req, resp := client.DescribeThingTypeRequest(params)
10122//
10123//    err := req.Send()
10124//    if err == nil { // resp is now filled
10125//        fmt.Println(resp)
10126//    }
10127func (c *IoT) DescribeThingTypeRequest(input *DescribeThingTypeInput) (req *request.Request, output *DescribeThingTypeOutput) {
10128	op := &request.Operation{
10129		Name:       opDescribeThingType,
10130		HTTPMethod: "GET",
10131		HTTPPath:   "/thing-types/{thingTypeName}",
10132	}
10133
10134	if input == nil {
10135		input = &DescribeThingTypeInput{}
10136	}
10137
10138	output = &DescribeThingTypeOutput{}
10139	req = c.newRequest(op, input, output)
10140	return
10141}
10142
10143// DescribeThingType API operation for AWS IoT.
10144//
10145// Gets information about the specified thing type.
10146//
10147// Requires permission to access the DescribeThingType (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
10148// action.
10149//
10150// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10151// with awserr.Error's Code and Message methods to get detailed information about
10152// the error.
10153//
10154// See the AWS API reference guide for AWS IoT's
10155// API operation DescribeThingType for usage and error information.
10156//
10157// Returned Error Types:
10158//   * ResourceNotFoundException
10159//   The specified resource does not exist.
10160//
10161//   * InvalidRequestException
10162//   The request is not valid.
10163//
10164//   * ThrottlingException
10165//   The rate exceeds the limit.
10166//
10167//   * UnauthorizedException
10168//   You are not authorized to perform this operation.
10169//
10170//   * ServiceUnavailableException
10171//   The service is temporarily unavailable.
10172//
10173//   * InternalFailureException
10174//   An unexpected error has occurred.
10175//
10176func (c *IoT) DescribeThingType(input *DescribeThingTypeInput) (*DescribeThingTypeOutput, error) {
10177	req, out := c.DescribeThingTypeRequest(input)
10178	return out, req.Send()
10179}
10180
10181// DescribeThingTypeWithContext is the same as DescribeThingType with the addition of
10182// the ability to pass a context and additional request options.
10183//
10184// See DescribeThingType for details on how to use this API operation.
10185//
10186// The context must be non-nil and will be used for request cancellation. If
10187// the context is nil a panic will occur. In the future the SDK may create
10188// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10189// for more information on using Contexts.
10190func (c *IoT) DescribeThingTypeWithContext(ctx aws.Context, input *DescribeThingTypeInput, opts ...request.Option) (*DescribeThingTypeOutput, error) {
10191	req, out := c.DescribeThingTypeRequest(input)
10192	req.SetContext(ctx)
10193	req.ApplyOptions(opts...)
10194	return out, req.Send()
10195}
10196
10197const opDetachPolicy = "DetachPolicy"
10198
10199// DetachPolicyRequest generates a "aws/request.Request" representing the
10200// client's request for the DetachPolicy operation. The "output" return
10201// value will be populated with the request's response once the request completes
10202// successfully.
10203//
10204// Use "Send" method on the returned Request to send the API call to the service.
10205// the "output" return value is not valid until after Send returns without error.
10206//
10207// See DetachPolicy for more information on using the DetachPolicy
10208// API call, and error handling.
10209//
10210// This method is useful when you want to inject custom logic or configuration
10211// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10212//
10213//
10214//    // Example sending a request using the DetachPolicyRequest method.
10215//    req, resp := client.DetachPolicyRequest(params)
10216//
10217//    err := req.Send()
10218//    if err == nil { // resp is now filled
10219//        fmt.Println(resp)
10220//    }
10221func (c *IoT) DetachPolicyRequest(input *DetachPolicyInput) (req *request.Request, output *DetachPolicyOutput) {
10222	op := &request.Operation{
10223		Name:       opDetachPolicy,
10224		HTTPMethod: "POST",
10225		HTTPPath:   "/target-policies/{policyName}",
10226	}
10227
10228	if input == nil {
10229		input = &DetachPolicyInput{}
10230	}
10231
10232	output = &DetachPolicyOutput{}
10233	req = c.newRequest(op, input, output)
10234	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
10235	return
10236}
10237
10238// DetachPolicy API operation for AWS IoT.
10239//
10240// Detaches a policy from the specified target.
10241//
10242// Because of the distributed nature of Amazon Web Services, it can take up
10243// to five minutes after a policy is detached before it's ready to be deleted.
10244//
10245// Requires permission to access the DetachPolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
10246// action.
10247//
10248// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10249// with awserr.Error's Code and Message methods to get detailed information about
10250// the error.
10251//
10252// See the AWS API reference guide for AWS IoT's
10253// API operation DetachPolicy for usage and error information.
10254//
10255// Returned Error Types:
10256//   * InvalidRequestException
10257//   The request is not valid.
10258//
10259//   * ThrottlingException
10260//   The rate exceeds the limit.
10261//
10262//   * UnauthorizedException
10263//   You are not authorized to perform this operation.
10264//
10265//   * ServiceUnavailableException
10266//   The service is temporarily unavailable.
10267//
10268//   * InternalFailureException
10269//   An unexpected error has occurred.
10270//
10271//   * LimitExceededException
10272//   A limit has been exceeded.
10273//
10274func (c *IoT) DetachPolicy(input *DetachPolicyInput) (*DetachPolicyOutput, error) {
10275	req, out := c.DetachPolicyRequest(input)
10276	return out, req.Send()
10277}
10278
10279// DetachPolicyWithContext is the same as DetachPolicy with the addition of
10280// the ability to pass a context and additional request options.
10281//
10282// See DetachPolicy for details on how to use this API operation.
10283//
10284// The context must be non-nil and will be used for request cancellation. If
10285// the context is nil a panic will occur. In the future the SDK may create
10286// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10287// for more information on using Contexts.
10288func (c *IoT) DetachPolicyWithContext(ctx aws.Context, input *DetachPolicyInput, opts ...request.Option) (*DetachPolicyOutput, error) {
10289	req, out := c.DetachPolicyRequest(input)
10290	req.SetContext(ctx)
10291	req.ApplyOptions(opts...)
10292	return out, req.Send()
10293}
10294
10295const opDetachPrincipalPolicy = "DetachPrincipalPolicy"
10296
10297// DetachPrincipalPolicyRequest generates a "aws/request.Request" representing the
10298// client's request for the DetachPrincipalPolicy operation. The "output" return
10299// value will be populated with the request's response once the request completes
10300// successfully.
10301//
10302// Use "Send" method on the returned Request to send the API call to the service.
10303// the "output" return value is not valid until after Send returns without error.
10304//
10305// See DetachPrincipalPolicy for more information on using the DetachPrincipalPolicy
10306// API call, and error handling.
10307//
10308// This method is useful when you want to inject custom logic or configuration
10309// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10310//
10311//
10312//    // Example sending a request using the DetachPrincipalPolicyRequest method.
10313//    req, resp := client.DetachPrincipalPolicyRequest(params)
10314//
10315//    err := req.Send()
10316//    if err == nil { // resp is now filled
10317//        fmt.Println(resp)
10318//    }
10319//
10320// Deprecated: DetachPrincipalPolicy has been deprecated
10321func (c *IoT) DetachPrincipalPolicyRequest(input *DetachPrincipalPolicyInput) (req *request.Request, output *DetachPrincipalPolicyOutput) {
10322	if c.Client.Config.Logger != nil {
10323		c.Client.Config.Logger.Log("This operation, DetachPrincipalPolicy, has been deprecated")
10324	}
10325	op := &request.Operation{
10326		Name:       opDetachPrincipalPolicy,
10327		HTTPMethod: "DELETE",
10328		HTTPPath:   "/principal-policies/{policyName}",
10329	}
10330
10331	if input == nil {
10332		input = &DetachPrincipalPolicyInput{}
10333	}
10334
10335	output = &DetachPrincipalPolicyOutput{}
10336	req = c.newRequest(op, input, output)
10337	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
10338	return
10339}
10340
10341// DetachPrincipalPolicy API operation for AWS IoT.
10342//
10343// Removes the specified policy from the specified certificate.
10344//
10345// This action is deprecated. Please use DetachPolicy instead.
10346//
10347// Requires permission to access the DetachPrincipalPolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
10348// action.
10349//
10350// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10351// with awserr.Error's Code and Message methods to get detailed information about
10352// the error.
10353//
10354// See the AWS API reference guide for AWS IoT's
10355// API operation DetachPrincipalPolicy for usage and error information.
10356//
10357// Returned Error Types:
10358//   * ResourceNotFoundException
10359//   The specified resource does not exist.
10360//
10361//   * InvalidRequestException
10362//   The request is not valid.
10363//
10364//   * ThrottlingException
10365//   The rate exceeds the limit.
10366//
10367//   * UnauthorizedException
10368//   You are not authorized to perform this operation.
10369//
10370//   * ServiceUnavailableException
10371//   The service is temporarily unavailable.
10372//
10373//   * InternalFailureException
10374//   An unexpected error has occurred.
10375//
10376//
10377// Deprecated: DetachPrincipalPolicy has been deprecated
10378func (c *IoT) DetachPrincipalPolicy(input *DetachPrincipalPolicyInput) (*DetachPrincipalPolicyOutput, error) {
10379	req, out := c.DetachPrincipalPolicyRequest(input)
10380	return out, req.Send()
10381}
10382
10383// DetachPrincipalPolicyWithContext is the same as DetachPrincipalPolicy with the addition of
10384// the ability to pass a context and additional request options.
10385//
10386// See DetachPrincipalPolicy for details on how to use this API operation.
10387//
10388// The context must be non-nil and will be used for request cancellation. If
10389// the context is nil a panic will occur. In the future the SDK may create
10390// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10391// for more information on using Contexts.
10392//
10393// Deprecated: DetachPrincipalPolicyWithContext has been deprecated
10394func (c *IoT) DetachPrincipalPolicyWithContext(ctx aws.Context, input *DetachPrincipalPolicyInput, opts ...request.Option) (*DetachPrincipalPolicyOutput, error) {
10395	req, out := c.DetachPrincipalPolicyRequest(input)
10396	req.SetContext(ctx)
10397	req.ApplyOptions(opts...)
10398	return out, req.Send()
10399}
10400
10401const opDetachSecurityProfile = "DetachSecurityProfile"
10402
10403// DetachSecurityProfileRequest generates a "aws/request.Request" representing the
10404// client's request for the DetachSecurityProfile operation. The "output" return
10405// value will be populated with the request's response once the request completes
10406// successfully.
10407//
10408// Use "Send" method on the returned Request to send the API call to the service.
10409// the "output" return value is not valid until after Send returns without error.
10410//
10411// See DetachSecurityProfile for more information on using the DetachSecurityProfile
10412// API call, and error handling.
10413//
10414// This method is useful when you want to inject custom logic or configuration
10415// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10416//
10417//
10418//    // Example sending a request using the DetachSecurityProfileRequest method.
10419//    req, resp := client.DetachSecurityProfileRequest(params)
10420//
10421//    err := req.Send()
10422//    if err == nil { // resp is now filled
10423//        fmt.Println(resp)
10424//    }
10425func (c *IoT) DetachSecurityProfileRequest(input *DetachSecurityProfileInput) (req *request.Request, output *DetachSecurityProfileOutput) {
10426	op := &request.Operation{
10427		Name:       opDetachSecurityProfile,
10428		HTTPMethod: "DELETE",
10429		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
10430	}
10431
10432	if input == nil {
10433		input = &DetachSecurityProfileInput{}
10434	}
10435
10436	output = &DetachSecurityProfileOutput{}
10437	req = c.newRequest(op, input, output)
10438	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
10439	return
10440}
10441
10442// DetachSecurityProfile API operation for AWS IoT.
10443//
10444// Disassociates a Device Defender security profile from a thing group or from
10445// this account.
10446//
10447// Requires permission to access the DetachSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
10448// action.
10449//
10450// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10451// with awserr.Error's Code and Message methods to get detailed information about
10452// the error.
10453//
10454// See the AWS API reference guide for AWS IoT's
10455// API operation DetachSecurityProfile for usage and error information.
10456//
10457// Returned Error Types:
10458//   * InvalidRequestException
10459//   The request is not valid.
10460//
10461//   * ResourceNotFoundException
10462//   The specified resource does not exist.
10463//
10464//   * ThrottlingException
10465//   The rate exceeds the limit.
10466//
10467//   * InternalFailureException
10468//   An unexpected error has occurred.
10469//
10470func (c *IoT) DetachSecurityProfile(input *DetachSecurityProfileInput) (*DetachSecurityProfileOutput, error) {
10471	req, out := c.DetachSecurityProfileRequest(input)
10472	return out, req.Send()
10473}
10474
10475// DetachSecurityProfileWithContext is the same as DetachSecurityProfile with the addition of
10476// the ability to pass a context and additional request options.
10477//
10478// See DetachSecurityProfile for details on how to use this API operation.
10479//
10480// The context must be non-nil and will be used for request cancellation. If
10481// the context is nil a panic will occur. In the future the SDK may create
10482// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10483// for more information on using Contexts.
10484func (c *IoT) DetachSecurityProfileWithContext(ctx aws.Context, input *DetachSecurityProfileInput, opts ...request.Option) (*DetachSecurityProfileOutput, error) {
10485	req, out := c.DetachSecurityProfileRequest(input)
10486	req.SetContext(ctx)
10487	req.ApplyOptions(opts...)
10488	return out, req.Send()
10489}
10490
10491const opDetachThingPrincipal = "DetachThingPrincipal"
10492
10493// DetachThingPrincipalRequest generates a "aws/request.Request" representing the
10494// client's request for the DetachThingPrincipal operation. The "output" return
10495// value will be populated with the request's response once the request completes
10496// successfully.
10497//
10498// Use "Send" method on the returned Request to send the API call to the service.
10499// the "output" return value is not valid until after Send returns without error.
10500//
10501// See DetachThingPrincipal for more information on using the DetachThingPrincipal
10502// API call, and error handling.
10503//
10504// This method is useful when you want to inject custom logic or configuration
10505// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10506//
10507//
10508//    // Example sending a request using the DetachThingPrincipalRequest method.
10509//    req, resp := client.DetachThingPrincipalRequest(params)
10510//
10511//    err := req.Send()
10512//    if err == nil { // resp is now filled
10513//        fmt.Println(resp)
10514//    }
10515func (c *IoT) DetachThingPrincipalRequest(input *DetachThingPrincipalInput) (req *request.Request, output *DetachThingPrincipalOutput) {
10516	op := &request.Operation{
10517		Name:       opDetachThingPrincipal,
10518		HTTPMethod: "DELETE",
10519		HTTPPath:   "/things/{thingName}/principals",
10520	}
10521
10522	if input == nil {
10523		input = &DetachThingPrincipalInput{}
10524	}
10525
10526	output = &DetachThingPrincipalOutput{}
10527	req = c.newRequest(op, input, output)
10528	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
10529	return
10530}
10531
10532// DetachThingPrincipal API operation for AWS IoT.
10533//
10534// Detaches the specified principal from the specified thing. A principal can
10535// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
10536// or federated identities.
10537//
10538// This call is asynchronous. It might take several seconds for the detachment
10539// to propagate.
10540//
10541// Requires permission to access the DetachThingPrincipal (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
10542// action.
10543//
10544// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10545// with awserr.Error's Code and Message methods to get detailed information about
10546// the error.
10547//
10548// See the AWS API reference guide for AWS IoT's
10549// API operation DetachThingPrincipal for usage and error information.
10550//
10551// Returned Error Types:
10552//   * ResourceNotFoundException
10553//   The specified resource does not exist.
10554//
10555//   * InvalidRequestException
10556//   The request is not valid.
10557//
10558//   * ThrottlingException
10559//   The rate exceeds the limit.
10560//
10561//   * UnauthorizedException
10562//   You are not authorized to perform this operation.
10563//
10564//   * ServiceUnavailableException
10565//   The service is temporarily unavailable.
10566//
10567//   * InternalFailureException
10568//   An unexpected error has occurred.
10569//
10570func (c *IoT) DetachThingPrincipal(input *DetachThingPrincipalInput) (*DetachThingPrincipalOutput, error) {
10571	req, out := c.DetachThingPrincipalRequest(input)
10572	return out, req.Send()
10573}
10574
10575// DetachThingPrincipalWithContext is the same as DetachThingPrincipal with the addition of
10576// the ability to pass a context and additional request options.
10577//
10578// See DetachThingPrincipal for details on how to use this API operation.
10579//
10580// The context must be non-nil and will be used for request cancellation. If
10581// the context is nil a panic will occur. In the future the SDK may create
10582// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10583// for more information on using Contexts.
10584func (c *IoT) DetachThingPrincipalWithContext(ctx aws.Context, input *DetachThingPrincipalInput, opts ...request.Option) (*DetachThingPrincipalOutput, error) {
10585	req, out := c.DetachThingPrincipalRequest(input)
10586	req.SetContext(ctx)
10587	req.ApplyOptions(opts...)
10588	return out, req.Send()
10589}
10590
10591const opDisableTopicRule = "DisableTopicRule"
10592
10593// DisableTopicRuleRequest generates a "aws/request.Request" representing the
10594// client's request for the DisableTopicRule operation. The "output" return
10595// value will be populated with the request's response once the request completes
10596// successfully.
10597//
10598// Use "Send" method on the returned Request to send the API call to the service.
10599// the "output" return value is not valid until after Send returns without error.
10600//
10601// See DisableTopicRule for more information on using the DisableTopicRule
10602// API call, and error handling.
10603//
10604// This method is useful when you want to inject custom logic or configuration
10605// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10606//
10607//
10608//    // Example sending a request using the DisableTopicRuleRequest method.
10609//    req, resp := client.DisableTopicRuleRequest(params)
10610//
10611//    err := req.Send()
10612//    if err == nil { // resp is now filled
10613//        fmt.Println(resp)
10614//    }
10615func (c *IoT) DisableTopicRuleRequest(input *DisableTopicRuleInput) (req *request.Request, output *DisableTopicRuleOutput) {
10616	op := &request.Operation{
10617		Name:       opDisableTopicRule,
10618		HTTPMethod: "POST",
10619		HTTPPath:   "/rules/{ruleName}/disable",
10620	}
10621
10622	if input == nil {
10623		input = &DisableTopicRuleInput{}
10624	}
10625
10626	output = &DisableTopicRuleOutput{}
10627	req = c.newRequest(op, input, output)
10628	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
10629	return
10630}
10631
10632// DisableTopicRule API operation for AWS IoT.
10633//
10634// Disables the rule.
10635//
10636// Requires permission to access the DisableTopicRule (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
10637// action.
10638//
10639// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10640// with awserr.Error's Code and Message methods to get detailed information about
10641// the error.
10642//
10643// See the AWS API reference guide for AWS IoT's
10644// API operation DisableTopicRule for usage and error information.
10645//
10646// Returned Error Types:
10647//   * InternalException
10648//   An unexpected error has occurred.
10649//
10650//   * InvalidRequestException
10651//   The request is not valid.
10652//
10653//   * ServiceUnavailableException
10654//   The service is temporarily unavailable.
10655//
10656//   * UnauthorizedException
10657//   You are not authorized to perform this operation.
10658//
10659//   * ConflictingResourceUpdateException
10660//   A conflicting resource update exception. This exception is thrown when two
10661//   pending updates cause a conflict.
10662//
10663func (c *IoT) DisableTopicRule(input *DisableTopicRuleInput) (*DisableTopicRuleOutput, error) {
10664	req, out := c.DisableTopicRuleRequest(input)
10665	return out, req.Send()
10666}
10667
10668// DisableTopicRuleWithContext is the same as DisableTopicRule with the addition of
10669// the ability to pass a context and additional request options.
10670//
10671// See DisableTopicRule for details on how to use this API operation.
10672//
10673// The context must be non-nil and will be used for request cancellation. If
10674// the context is nil a panic will occur. In the future the SDK may create
10675// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10676// for more information on using Contexts.
10677func (c *IoT) DisableTopicRuleWithContext(ctx aws.Context, input *DisableTopicRuleInput, opts ...request.Option) (*DisableTopicRuleOutput, error) {
10678	req, out := c.DisableTopicRuleRequest(input)
10679	req.SetContext(ctx)
10680	req.ApplyOptions(opts...)
10681	return out, req.Send()
10682}
10683
10684const opEnableTopicRule = "EnableTopicRule"
10685
10686// EnableTopicRuleRequest generates a "aws/request.Request" representing the
10687// client's request for the EnableTopicRule operation. The "output" return
10688// value will be populated with the request's response once the request completes
10689// successfully.
10690//
10691// Use "Send" method on the returned Request to send the API call to the service.
10692// the "output" return value is not valid until after Send returns without error.
10693//
10694// See EnableTopicRule for more information on using the EnableTopicRule
10695// API call, and error handling.
10696//
10697// This method is useful when you want to inject custom logic or configuration
10698// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10699//
10700//
10701//    // Example sending a request using the EnableTopicRuleRequest method.
10702//    req, resp := client.EnableTopicRuleRequest(params)
10703//
10704//    err := req.Send()
10705//    if err == nil { // resp is now filled
10706//        fmt.Println(resp)
10707//    }
10708func (c *IoT) EnableTopicRuleRequest(input *EnableTopicRuleInput) (req *request.Request, output *EnableTopicRuleOutput) {
10709	op := &request.Operation{
10710		Name:       opEnableTopicRule,
10711		HTTPMethod: "POST",
10712		HTTPPath:   "/rules/{ruleName}/enable",
10713	}
10714
10715	if input == nil {
10716		input = &EnableTopicRuleInput{}
10717	}
10718
10719	output = &EnableTopicRuleOutput{}
10720	req = c.newRequest(op, input, output)
10721	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
10722	return
10723}
10724
10725// EnableTopicRule API operation for AWS IoT.
10726//
10727// Enables the rule.
10728//
10729// Requires permission to access the EnableTopicRule (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
10730// action.
10731//
10732// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10733// with awserr.Error's Code and Message methods to get detailed information about
10734// the error.
10735//
10736// See the AWS API reference guide for AWS IoT's
10737// API operation EnableTopicRule for usage and error information.
10738//
10739// Returned Error Types:
10740//   * InternalException
10741//   An unexpected error has occurred.
10742//
10743//   * InvalidRequestException
10744//   The request is not valid.
10745//
10746//   * ServiceUnavailableException
10747//   The service is temporarily unavailable.
10748//
10749//   * UnauthorizedException
10750//   You are not authorized to perform this operation.
10751//
10752//   * ConflictingResourceUpdateException
10753//   A conflicting resource update exception. This exception is thrown when two
10754//   pending updates cause a conflict.
10755//
10756func (c *IoT) EnableTopicRule(input *EnableTopicRuleInput) (*EnableTopicRuleOutput, error) {
10757	req, out := c.EnableTopicRuleRequest(input)
10758	return out, req.Send()
10759}
10760
10761// EnableTopicRuleWithContext is the same as EnableTopicRule with the addition of
10762// the ability to pass a context and additional request options.
10763//
10764// See EnableTopicRule for details on how to use this API operation.
10765//
10766// The context must be non-nil and will be used for request cancellation. If
10767// the context is nil a panic will occur. In the future the SDK may create
10768// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10769// for more information on using Contexts.
10770func (c *IoT) EnableTopicRuleWithContext(ctx aws.Context, input *EnableTopicRuleInput, opts ...request.Option) (*EnableTopicRuleOutput, error) {
10771	req, out := c.EnableTopicRuleRequest(input)
10772	req.SetContext(ctx)
10773	req.ApplyOptions(opts...)
10774	return out, req.Send()
10775}
10776
10777const opGetBehaviorModelTrainingSummaries = "GetBehaviorModelTrainingSummaries"
10778
10779// GetBehaviorModelTrainingSummariesRequest generates a "aws/request.Request" representing the
10780// client's request for the GetBehaviorModelTrainingSummaries operation. The "output" return
10781// value will be populated with the request's response once the request completes
10782// successfully.
10783//
10784// Use "Send" method on the returned Request to send the API call to the service.
10785// the "output" return value is not valid until after Send returns without error.
10786//
10787// See GetBehaviorModelTrainingSummaries for more information on using the GetBehaviorModelTrainingSummaries
10788// API call, and error handling.
10789//
10790// This method is useful when you want to inject custom logic or configuration
10791// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10792//
10793//
10794//    // Example sending a request using the GetBehaviorModelTrainingSummariesRequest method.
10795//    req, resp := client.GetBehaviorModelTrainingSummariesRequest(params)
10796//
10797//    err := req.Send()
10798//    if err == nil { // resp is now filled
10799//        fmt.Println(resp)
10800//    }
10801func (c *IoT) GetBehaviorModelTrainingSummariesRequest(input *GetBehaviorModelTrainingSummariesInput) (req *request.Request, output *GetBehaviorModelTrainingSummariesOutput) {
10802	op := &request.Operation{
10803		Name:       opGetBehaviorModelTrainingSummaries,
10804		HTTPMethod: "GET",
10805		HTTPPath:   "/behavior-model-training/summaries",
10806		Paginator: &request.Paginator{
10807			InputTokens:     []string{"nextToken"},
10808			OutputTokens:    []string{"nextToken"},
10809			LimitToken:      "maxResults",
10810			TruncationToken: "",
10811		},
10812	}
10813
10814	if input == nil {
10815		input = &GetBehaviorModelTrainingSummariesInput{}
10816	}
10817
10818	output = &GetBehaviorModelTrainingSummariesOutput{}
10819	req = c.newRequest(op, input, output)
10820	return
10821}
10822
10823// GetBehaviorModelTrainingSummaries API operation for AWS IoT.
10824//
10825// Returns a Device Defender's ML Detect Security Profile training model's status.
10826//
10827// Requires permission to access the GetBehaviorModelTrainingSummaries (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
10828// action.
10829//
10830// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10831// with awserr.Error's Code and Message methods to get detailed information about
10832// the error.
10833//
10834// See the AWS API reference guide for AWS IoT's
10835// API operation GetBehaviorModelTrainingSummaries for usage and error information.
10836//
10837// Returned Error Types:
10838//   * InvalidRequestException
10839//   The request is not valid.
10840//
10841//   * ThrottlingException
10842//   The rate exceeds the limit.
10843//
10844//   * InternalFailureException
10845//   An unexpected error has occurred.
10846//
10847//   * ResourceNotFoundException
10848//   The specified resource does not exist.
10849//
10850func (c *IoT) GetBehaviorModelTrainingSummaries(input *GetBehaviorModelTrainingSummariesInput) (*GetBehaviorModelTrainingSummariesOutput, error) {
10851	req, out := c.GetBehaviorModelTrainingSummariesRequest(input)
10852	return out, req.Send()
10853}
10854
10855// GetBehaviorModelTrainingSummariesWithContext is the same as GetBehaviorModelTrainingSummaries with the addition of
10856// the ability to pass a context and additional request options.
10857//
10858// See GetBehaviorModelTrainingSummaries for details on how to use this API operation.
10859//
10860// The context must be non-nil and will be used for request cancellation. If
10861// the context is nil a panic will occur. In the future the SDK may create
10862// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10863// for more information on using Contexts.
10864func (c *IoT) GetBehaviorModelTrainingSummariesWithContext(ctx aws.Context, input *GetBehaviorModelTrainingSummariesInput, opts ...request.Option) (*GetBehaviorModelTrainingSummariesOutput, error) {
10865	req, out := c.GetBehaviorModelTrainingSummariesRequest(input)
10866	req.SetContext(ctx)
10867	req.ApplyOptions(opts...)
10868	return out, req.Send()
10869}
10870
10871// GetBehaviorModelTrainingSummariesPages iterates over the pages of a GetBehaviorModelTrainingSummaries operation,
10872// calling the "fn" function with the response data for each page. To stop
10873// iterating, return false from the fn function.
10874//
10875// See GetBehaviorModelTrainingSummaries method for more information on how to use this operation.
10876//
10877// Note: This operation can generate multiple requests to a service.
10878//
10879//    // Example iterating over at most 3 pages of a GetBehaviorModelTrainingSummaries operation.
10880//    pageNum := 0
10881//    err := client.GetBehaviorModelTrainingSummariesPages(params,
10882//        func(page *iot.GetBehaviorModelTrainingSummariesOutput, lastPage bool) bool {
10883//            pageNum++
10884//            fmt.Println(page)
10885//            return pageNum <= 3
10886//        })
10887//
10888func (c *IoT) GetBehaviorModelTrainingSummariesPages(input *GetBehaviorModelTrainingSummariesInput, fn func(*GetBehaviorModelTrainingSummariesOutput, bool) bool) error {
10889	return c.GetBehaviorModelTrainingSummariesPagesWithContext(aws.BackgroundContext(), input, fn)
10890}
10891
10892// GetBehaviorModelTrainingSummariesPagesWithContext same as GetBehaviorModelTrainingSummariesPages except
10893// it takes a Context and allows setting request options on the pages.
10894//
10895// The context must be non-nil and will be used for request cancellation. If
10896// the context is nil a panic will occur. In the future the SDK may create
10897// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10898// for more information on using Contexts.
10899func (c *IoT) GetBehaviorModelTrainingSummariesPagesWithContext(ctx aws.Context, input *GetBehaviorModelTrainingSummariesInput, fn func(*GetBehaviorModelTrainingSummariesOutput, bool) bool, opts ...request.Option) error {
10900	p := request.Pagination{
10901		NewRequest: func() (*request.Request, error) {
10902			var inCpy *GetBehaviorModelTrainingSummariesInput
10903			if input != nil {
10904				tmp := *input
10905				inCpy = &tmp
10906			}
10907			req, _ := c.GetBehaviorModelTrainingSummariesRequest(inCpy)
10908			req.SetContext(ctx)
10909			req.ApplyOptions(opts...)
10910			return req, nil
10911		},
10912	}
10913
10914	for p.Next() {
10915		if !fn(p.Page().(*GetBehaviorModelTrainingSummariesOutput), !p.HasNextPage()) {
10916			break
10917		}
10918	}
10919
10920	return p.Err()
10921}
10922
10923const opGetBucketsAggregation = "GetBucketsAggregation"
10924
10925// GetBucketsAggregationRequest generates a "aws/request.Request" representing the
10926// client's request for the GetBucketsAggregation operation. The "output" return
10927// value will be populated with the request's response once the request completes
10928// successfully.
10929//
10930// Use "Send" method on the returned Request to send the API call to the service.
10931// the "output" return value is not valid until after Send returns without error.
10932//
10933// See GetBucketsAggregation for more information on using the GetBucketsAggregation
10934// API call, and error handling.
10935//
10936// This method is useful when you want to inject custom logic or configuration
10937// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10938//
10939//
10940//    // Example sending a request using the GetBucketsAggregationRequest method.
10941//    req, resp := client.GetBucketsAggregationRequest(params)
10942//
10943//    err := req.Send()
10944//    if err == nil { // resp is now filled
10945//        fmt.Println(resp)
10946//    }
10947func (c *IoT) GetBucketsAggregationRequest(input *GetBucketsAggregationInput) (req *request.Request, output *GetBucketsAggregationOutput) {
10948	op := &request.Operation{
10949		Name:       opGetBucketsAggregation,
10950		HTTPMethod: "POST",
10951		HTTPPath:   "/indices/buckets",
10952	}
10953
10954	if input == nil {
10955		input = &GetBucketsAggregationInput{}
10956	}
10957
10958	output = &GetBucketsAggregationOutput{}
10959	req = c.newRequest(op, input, output)
10960	return
10961}
10962
10963// GetBucketsAggregation API operation for AWS IoT.
10964//
10965// Aggregates on indexed data with search queries pertaining to particular fields.
10966//
10967// Requires permission to access the GetBucketsAggregation (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
10968// action.
10969//
10970// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10971// with awserr.Error's Code and Message methods to get detailed information about
10972// the error.
10973//
10974// See the AWS API reference guide for AWS IoT's
10975// API operation GetBucketsAggregation for usage and error information.
10976//
10977// Returned Error Types:
10978//   * InvalidRequestException
10979//   The request is not valid.
10980//
10981//   * ThrottlingException
10982//   The rate exceeds the limit.
10983//
10984//   * UnauthorizedException
10985//   You are not authorized to perform this operation.
10986//
10987//   * ServiceUnavailableException
10988//   The service is temporarily unavailable.
10989//
10990//   * InternalFailureException
10991//   An unexpected error has occurred.
10992//
10993//   * ResourceNotFoundException
10994//   The specified resource does not exist.
10995//
10996//   * InvalidQueryException
10997//   The query is invalid.
10998//
10999//   * InvalidAggregationException
11000//   The aggregation is invalid.
11001//
11002//   * IndexNotReadyException
11003//   The index is not ready.
11004//
11005func (c *IoT) GetBucketsAggregation(input *GetBucketsAggregationInput) (*GetBucketsAggregationOutput, error) {
11006	req, out := c.GetBucketsAggregationRequest(input)
11007	return out, req.Send()
11008}
11009
11010// GetBucketsAggregationWithContext is the same as GetBucketsAggregation with the addition of
11011// the ability to pass a context and additional request options.
11012//
11013// See GetBucketsAggregation for details on how to use this API operation.
11014//
11015// The context must be non-nil and will be used for request cancellation. If
11016// the context is nil a panic will occur. In the future the SDK may create
11017// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11018// for more information on using Contexts.
11019func (c *IoT) GetBucketsAggregationWithContext(ctx aws.Context, input *GetBucketsAggregationInput, opts ...request.Option) (*GetBucketsAggregationOutput, error) {
11020	req, out := c.GetBucketsAggregationRequest(input)
11021	req.SetContext(ctx)
11022	req.ApplyOptions(opts...)
11023	return out, req.Send()
11024}
11025
11026const opGetCardinality = "GetCardinality"
11027
11028// GetCardinalityRequest generates a "aws/request.Request" representing the
11029// client's request for the GetCardinality operation. The "output" return
11030// value will be populated with the request's response once the request completes
11031// successfully.
11032//
11033// Use "Send" method on the returned Request to send the API call to the service.
11034// the "output" return value is not valid until after Send returns without error.
11035//
11036// See GetCardinality for more information on using the GetCardinality
11037// API call, and error handling.
11038//
11039// This method is useful when you want to inject custom logic or configuration
11040// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11041//
11042//
11043//    // Example sending a request using the GetCardinalityRequest method.
11044//    req, resp := client.GetCardinalityRequest(params)
11045//
11046//    err := req.Send()
11047//    if err == nil { // resp is now filled
11048//        fmt.Println(resp)
11049//    }
11050func (c *IoT) GetCardinalityRequest(input *GetCardinalityInput) (req *request.Request, output *GetCardinalityOutput) {
11051	op := &request.Operation{
11052		Name:       opGetCardinality,
11053		HTTPMethod: "POST",
11054		HTTPPath:   "/indices/cardinality",
11055	}
11056
11057	if input == nil {
11058		input = &GetCardinalityInput{}
11059	}
11060
11061	output = &GetCardinalityOutput{}
11062	req = c.newRequest(op, input, output)
11063	return
11064}
11065
11066// GetCardinality API operation for AWS IoT.
11067//
11068// Returns the approximate count of unique values that match the query.
11069//
11070// Requires permission to access the GetCardinality (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
11071// action.
11072//
11073// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11074// with awserr.Error's Code and Message methods to get detailed information about
11075// the error.
11076//
11077// See the AWS API reference guide for AWS IoT's
11078// API operation GetCardinality for usage and error information.
11079//
11080// Returned Error Types:
11081//   * InvalidRequestException
11082//   The request is not valid.
11083//
11084//   * ThrottlingException
11085//   The rate exceeds the limit.
11086//
11087//   * UnauthorizedException
11088//   You are not authorized to perform this operation.
11089//
11090//   * ServiceUnavailableException
11091//   The service is temporarily unavailable.
11092//
11093//   * InternalFailureException
11094//   An unexpected error has occurred.
11095//
11096//   * ResourceNotFoundException
11097//   The specified resource does not exist.
11098//
11099//   * InvalidQueryException
11100//   The query is invalid.
11101//
11102//   * InvalidAggregationException
11103//   The aggregation is invalid.
11104//
11105//   * IndexNotReadyException
11106//   The index is not ready.
11107//
11108func (c *IoT) GetCardinality(input *GetCardinalityInput) (*GetCardinalityOutput, error) {
11109	req, out := c.GetCardinalityRequest(input)
11110	return out, req.Send()
11111}
11112
11113// GetCardinalityWithContext is the same as GetCardinality with the addition of
11114// the ability to pass a context and additional request options.
11115//
11116// See GetCardinality for details on how to use this API operation.
11117//
11118// The context must be non-nil and will be used for request cancellation. If
11119// the context is nil a panic will occur. In the future the SDK may create
11120// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11121// for more information on using Contexts.
11122func (c *IoT) GetCardinalityWithContext(ctx aws.Context, input *GetCardinalityInput, opts ...request.Option) (*GetCardinalityOutput, error) {
11123	req, out := c.GetCardinalityRequest(input)
11124	req.SetContext(ctx)
11125	req.ApplyOptions(opts...)
11126	return out, req.Send()
11127}
11128
11129const opGetEffectivePolicies = "GetEffectivePolicies"
11130
11131// GetEffectivePoliciesRequest generates a "aws/request.Request" representing the
11132// client's request for the GetEffectivePolicies operation. The "output" return
11133// value will be populated with the request's response once the request completes
11134// successfully.
11135//
11136// Use "Send" method on the returned Request to send the API call to the service.
11137// the "output" return value is not valid until after Send returns without error.
11138//
11139// See GetEffectivePolicies for more information on using the GetEffectivePolicies
11140// API call, and error handling.
11141//
11142// This method is useful when you want to inject custom logic or configuration
11143// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11144//
11145//
11146//    // Example sending a request using the GetEffectivePoliciesRequest method.
11147//    req, resp := client.GetEffectivePoliciesRequest(params)
11148//
11149//    err := req.Send()
11150//    if err == nil { // resp is now filled
11151//        fmt.Println(resp)
11152//    }
11153func (c *IoT) GetEffectivePoliciesRequest(input *GetEffectivePoliciesInput) (req *request.Request, output *GetEffectivePoliciesOutput) {
11154	op := &request.Operation{
11155		Name:       opGetEffectivePolicies,
11156		HTTPMethod: "POST",
11157		HTTPPath:   "/effective-policies",
11158	}
11159
11160	if input == nil {
11161		input = &GetEffectivePoliciesInput{}
11162	}
11163
11164	output = &GetEffectivePoliciesOutput{}
11165	req = c.newRequest(op, input, output)
11166	return
11167}
11168
11169// GetEffectivePolicies API operation for AWS IoT.
11170//
11171// Gets a list of the policies that have an effect on the authorization behavior
11172// of the specified device when it connects to the IoT device gateway.
11173//
11174// Requires permission to access the GetEffectivePolicies (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
11175// action.
11176//
11177// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11178// with awserr.Error's Code and Message methods to get detailed information about
11179// the error.
11180//
11181// See the AWS API reference guide for AWS IoT's
11182// API operation GetEffectivePolicies for usage and error information.
11183//
11184// Returned Error Types:
11185//   * ResourceNotFoundException
11186//   The specified resource does not exist.
11187//
11188//   * InvalidRequestException
11189//   The request is not valid.
11190//
11191//   * ThrottlingException
11192//   The rate exceeds the limit.
11193//
11194//   * UnauthorizedException
11195//   You are not authorized to perform this operation.
11196//
11197//   * ServiceUnavailableException
11198//   The service is temporarily unavailable.
11199//
11200//   * InternalFailureException
11201//   An unexpected error has occurred.
11202//
11203//   * LimitExceededException
11204//   A limit has been exceeded.
11205//
11206func (c *IoT) GetEffectivePolicies(input *GetEffectivePoliciesInput) (*GetEffectivePoliciesOutput, error) {
11207	req, out := c.GetEffectivePoliciesRequest(input)
11208	return out, req.Send()
11209}
11210
11211// GetEffectivePoliciesWithContext is the same as GetEffectivePolicies with the addition of
11212// the ability to pass a context and additional request options.
11213//
11214// See GetEffectivePolicies for details on how to use this API operation.
11215//
11216// The context must be non-nil and will be used for request cancellation. If
11217// the context is nil a panic will occur. In the future the SDK may create
11218// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11219// for more information on using Contexts.
11220func (c *IoT) GetEffectivePoliciesWithContext(ctx aws.Context, input *GetEffectivePoliciesInput, opts ...request.Option) (*GetEffectivePoliciesOutput, error) {
11221	req, out := c.GetEffectivePoliciesRequest(input)
11222	req.SetContext(ctx)
11223	req.ApplyOptions(opts...)
11224	return out, req.Send()
11225}
11226
11227const opGetIndexingConfiguration = "GetIndexingConfiguration"
11228
11229// GetIndexingConfigurationRequest generates a "aws/request.Request" representing the
11230// client's request for the GetIndexingConfiguration operation. The "output" return
11231// value will be populated with the request's response once the request completes
11232// successfully.
11233//
11234// Use "Send" method on the returned Request to send the API call to the service.
11235// the "output" return value is not valid until after Send returns without error.
11236//
11237// See GetIndexingConfiguration for more information on using the GetIndexingConfiguration
11238// API call, and error handling.
11239//
11240// This method is useful when you want to inject custom logic or configuration
11241// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11242//
11243//
11244//    // Example sending a request using the GetIndexingConfigurationRequest method.
11245//    req, resp := client.GetIndexingConfigurationRequest(params)
11246//
11247//    err := req.Send()
11248//    if err == nil { // resp is now filled
11249//        fmt.Println(resp)
11250//    }
11251func (c *IoT) GetIndexingConfigurationRequest(input *GetIndexingConfigurationInput) (req *request.Request, output *GetIndexingConfigurationOutput) {
11252	op := &request.Operation{
11253		Name:       opGetIndexingConfiguration,
11254		HTTPMethod: "GET",
11255		HTTPPath:   "/indexing/config",
11256	}
11257
11258	if input == nil {
11259		input = &GetIndexingConfigurationInput{}
11260	}
11261
11262	output = &GetIndexingConfigurationOutput{}
11263	req = c.newRequest(op, input, output)
11264	return
11265}
11266
11267// GetIndexingConfiguration API operation for AWS IoT.
11268//
11269// Gets the indexing configuration.
11270//
11271// Requires permission to access the GetIndexingConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
11272// action.
11273//
11274// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11275// with awserr.Error's Code and Message methods to get detailed information about
11276// the error.
11277//
11278// See the AWS API reference guide for AWS IoT's
11279// API operation GetIndexingConfiguration for usage and error information.
11280//
11281// Returned Error Types:
11282//   * InvalidRequestException
11283//   The request is not valid.
11284//
11285//   * ThrottlingException
11286//   The rate exceeds the limit.
11287//
11288//   * UnauthorizedException
11289//   You are not authorized to perform this operation.
11290//
11291//   * ServiceUnavailableException
11292//   The service is temporarily unavailable.
11293//
11294//   * InternalFailureException
11295//   An unexpected error has occurred.
11296//
11297func (c *IoT) GetIndexingConfiguration(input *GetIndexingConfigurationInput) (*GetIndexingConfigurationOutput, error) {
11298	req, out := c.GetIndexingConfigurationRequest(input)
11299	return out, req.Send()
11300}
11301
11302// GetIndexingConfigurationWithContext is the same as GetIndexingConfiguration with the addition of
11303// the ability to pass a context and additional request options.
11304//
11305// See GetIndexingConfiguration for details on how to use this API operation.
11306//
11307// The context must be non-nil and will be used for request cancellation. If
11308// the context is nil a panic will occur. In the future the SDK may create
11309// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11310// for more information on using Contexts.
11311func (c *IoT) GetIndexingConfigurationWithContext(ctx aws.Context, input *GetIndexingConfigurationInput, opts ...request.Option) (*GetIndexingConfigurationOutput, error) {
11312	req, out := c.GetIndexingConfigurationRequest(input)
11313	req.SetContext(ctx)
11314	req.ApplyOptions(opts...)
11315	return out, req.Send()
11316}
11317
11318const opGetJobDocument = "GetJobDocument"
11319
11320// GetJobDocumentRequest generates a "aws/request.Request" representing the
11321// client's request for the GetJobDocument operation. The "output" return
11322// value will be populated with the request's response once the request completes
11323// successfully.
11324//
11325// Use "Send" method on the returned Request to send the API call to the service.
11326// the "output" return value is not valid until after Send returns without error.
11327//
11328// See GetJobDocument for more information on using the GetJobDocument
11329// API call, and error handling.
11330//
11331// This method is useful when you want to inject custom logic or configuration
11332// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11333//
11334//
11335//    // Example sending a request using the GetJobDocumentRequest method.
11336//    req, resp := client.GetJobDocumentRequest(params)
11337//
11338//    err := req.Send()
11339//    if err == nil { // resp is now filled
11340//        fmt.Println(resp)
11341//    }
11342func (c *IoT) GetJobDocumentRequest(input *GetJobDocumentInput) (req *request.Request, output *GetJobDocumentOutput) {
11343	op := &request.Operation{
11344		Name:       opGetJobDocument,
11345		HTTPMethod: "GET",
11346		HTTPPath:   "/jobs/{jobId}/job-document",
11347	}
11348
11349	if input == nil {
11350		input = &GetJobDocumentInput{}
11351	}
11352
11353	output = &GetJobDocumentOutput{}
11354	req = c.newRequest(op, input, output)
11355	return
11356}
11357
11358// GetJobDocument API operation for AWS IoT.
11359//
11360// Gets a job document.
11361//
11362// Requires permission to access the GetJobDocument (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
11363// action.
11364//
11365// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11366// with awserr.Error's Code and Message methods to get detailed information about
11367// the error.
11368//
11369// See the AWS API reference guide for AWS IoT's
11370// API operation GetJobDocument for usage and error information.
11371//
11372// Returned Error Types:
11373//   * InvalidRequestException
11374//   The request is not valid.
11375//
11376//   * ResourceNotFoundException
11377//   The specified resource does not exist.
11378//
11379//   * ThrottlingException
11380//   The rate exceeds the limit.
11381//
11382//   * ServiceUnavailableException
11383//   The service is temporarily unavailable.
11384//
11385func (c *IoT) GetJobDocument(input *GetJobDocumentInput) (*GetJobDocumentOutput, error) {
11386	req, out := c.GetJobDocumentRequest(input)
11387	return out, req.Send()
11388}
11389
11390// GetJobDocumentWithContext is the same as GetJobDocument with the addition of
11391// the ability to pass a context and additional request options.
11392//
11393// See GetJobDocument for details on how to use this API operation.
11394//
11395// The context must be non-nil and will be used for request cancellation. If
11396// the context is nil a panic will occur. In the future the SDK may create
11397// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11398// for more information on using Contexts.
11399func (c *IoT) GetJobDocumentWithContext(ctx aws.Context, input *GetJobDocumentInput, opts ...request.Option) (*GetJobDocumentOutput, error) {
11400	req, out := c.GetJobDocumentRequest(input)
11401	req.SetContext(ctx)
11402	req.ApplyOptions(opts...)
11403	return out, req.Send()
11404}
11405
11406const opGetLoggingOptions = "GetLoggingOptions"
11407
11408// GetLoggingOptionsRequest generates a "aws/request.Request" representing the
11409// client's request for the GetLoggingOptions operation. The "output" return
11410// value will be populated with the request's response once the request completes
11411// successfully.
11412//
11413// Use "Send" method on the returned Request to send the API call to the service.
11414// the "output" return value is not valid until after Send returns without error.
11415//
11416// See GetLoggingOptions for more information on using the GetLoggingOptions
11417// API call, and error handling.
11418//
11419// This method is useful when you want to inject custom logic or configuration
11420// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11421//
11422//
11423//    // Example sending a request using the GetLoggingOptionsRequest method.
11424//    req, resp := client.GetLoggingOptionsRequest(params)
11425//
11426//    err := req.Send()
11427//    if err == nil { // resp is now filled
11428//        fmt.Println(resp)
11429//    }
11430func (c *IoT) GetLoggingOptionsRequest(input *GetLoggingOptionsInput) (req *request.Request, output *GetLoggingOptionsOutput) {
11431	op := &request.Operation{
11432		Name:       opGetLoggingOptions,
11433		HTTPMethod: "GET",
11434		HTTPPath:   "/loggingOptions",
11435	}
11436
11437	if input == nil {
11438		input = &GetLoggingOptionsInput{}
11439	}
11440
11441	output = &GetLoggingOptionsOutput{}
11442	req = c.newRequest(op, input, output)
11443	return
11444}
11445
11446// GetLoggingOptions API operation for AWS IoT.
11447//
11448// Gets the logging options.
11449//
11450// NOTE: use of this command is not recommended. Use GetV2LoggingOptions instead.
11451//
11452// Requires permission to access the GetLoggingOptions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
11453// action.
11454//
11455// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11456// with awserr.Error's Code and Message methods to get detailed information about
11457// the error.
11458//
11459// See the AWS API reference guide for AWS IoT's
11460// API operation GetLoggingOptions for usage and error information.
11461//
11462// Returned Error Types:
11463//   * InternalException
11464//   An unexpected error has occurred.
11465//
11466//   * InvalidRequestException
11467//   The request is not valid.
11468//
11469//   * ServiceUnavailableException
11470//   The service is temporarily unavailable.
11471//
11472func (c *IoT) GetLoggingOptions(input *GetLoggingOptionsInput) (*GetLoggingOptionsOutput, error) {
11473	req, out := c.GetLoggingOptionsRequest(input)
11474	return out, req.Send()
11475}
11476
11477// GetLoggingOptionsWithContext is the same as GetLoggingOptions with the addition of
11478// the ability to pass a context and additional request options.
11479//
11480// See GetLoggingOptions for details on how to use this API operation.
11481//
11482// The context must be non-nil and will be used for request cancellation. If
11483// the context is nil a panic will occur. In the future the SDK may create
11484// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11485// for more information on using Contexts.
11486func (c *IoT) GetLoggingOptionsWithContext(ctx aws.Context, input *GetLoggingOptionsInput, opts ...request.Option) (*GetLoggingOptionsOutput, error) {
11487	req, out := c.GetLoggingOptionsRequest(input)
11488	req.SetContext(ctx)
11489	req.ApplyOptions(opts...)
11490	return out, req.Send()
11491}
11492
11493const opGetOTAUpdate = "GetOTAUpdate"
11494
11495// GetOTAUpdateRequest generates a "aws/request.Request" representing the
11496// client's request for the GetOTAUpdate operation. The "output" return
11497// value will be populated with the request's response once the request completes
11498// successfully.
11499//
11500// Use "Send" method on the returned Request to send the API call to the service.
11501// the "output" return value is not valid until after Send returns without error.
11502//
11503// See GetOTAUpdate for more information on using the GetOTAUpdate
11504// API call, and error handling.
11505//
11506// This method is useful when you want to inject custom logic or configuration
11507// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11508//
11509//
11510//    // Example sending a request using the GetOTAUpdateRequest method.
11511//    req, resp := client.GetOTAUpdateRequest(params)
11512//
11513//    err := req.Send()
11514//    if err == nil { // resp is now filled
11515//        fmt.Println(resp)
11516//    }
11517func (c *IoT) GetOTAUpdateRequest(input *GetOTAUpdateInput) (req *request.Request, output *GetOTAUpdateOutput) {
11518	op := &request.Operation{
11519		Name:       opGetOTAUpdate,
11520		HTTPMethod: "GET",
11521		HTTPPath:   "/otaUpdates/{otaUpdateId}",
11522	}
11523
11524	if input == nil {
11525		input = &GetOTAUpdateInput{}
11526	}
11527
11528	output = &GetOTAUpdateOutput{}
11529	req = c.newRequest(op, input, output)
11530	return
11531}
11532
11533// GetOTAUpdate API operation for AWS IoT.
11534//
11535// Gets an OTA update.
11536//
11537// Requires permission to access the GetOTAUpdate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
11538// action.
11539//
11540// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11541// with awserr.Error's Code and Message methods to get detailed information about
11542// the error.
11543//
11544// See the AWS API reference guide for AWS IoT's
11545// API operation GetOTAUpdate for usage and error information.
11546//
11547// Returned Error Types:
11548//   * InvalidRequestException
11549//   The request is not valid.
11550//
11551//   * ThrottlingException
11552//   The rate exceeds the limit.
11553//
11554//   * UnauthorizedException
11555//   You are not authorized to perform this operation.
11556//
11557//   * InternalFailureException
11558//   An unexpected error has occurred.
11559//
11560//   * ServiceUnavailableException
11561//   The service is temporarily unavailable.
11562//
11563//   * ResourceNotFoundException
11564//   The specified resource does not exist.
11565//
11566func (c *IoT) GetOTAUpdate(input *GetOTAUpdateInput) (*GetOTAUpdateOutput, error) {
11567	req, out := c.GetOTAUpdateRequest(input)
11568	return out, req.Send()
11569}
11570
11571// GetOTAUpdateWithContext is the same as GetOTAUpdate with the addition of
11572// the ability to pass a context and additional request options.
11573//
11574// See GetOTAUpdate for details on how to use this API operation.
11575//
11576// The context must be non-nil and will be used for request cancellation. If
11577// the context is nil a panic will occur. In the future the SDK may create
11578// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11579// for more information on using Contexts.
11580func (c *IoT) GetOTAUpdateWithContext(ctx aws.Context, input *GetOTAUpdateInput, opts ...request.Option) (*GetOTAUpdateOutput, error) {
11581	req, out := c.GetOTAUpdateRequest(input)
11582	req.SetContext(ctx)
11583	req.ApplyOptions(opts...)
11584	return out, req.Send()
11585}
11586
11587const opGetPercentiles = "GetPercentiles"
11588
11589// GetPercentilesRequest generates a "aws/request.Request" representing the
11590// client's request for the GetPercentiles operation. The "output" return
11591// value will be populated with the request's response once the request completes
11592// successfully.
11593//
11594// Use "Send" method on the returned Request to send the API call to the service.
11595// the "output" return value is not valid until after Send returns without error.
11596//
11597// See GetPercentiles for more information on using the GetPercentiles
11598// API call, and error handling.
11599//
11600// This method is useful when you want to inject custom logic or configuration
11601// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11602//
11603//
11604//    // Example sending a request using the GetPercentilesRequest method.
11605//    req, resp := client.GetPercentilesRequest(params)
11606//
11607//    err := req.Send()
11608//    if err == nil { // resp is now filled
11609//        fmt.Println(resp)
11610//    }
11611func (c *IoT) GetPercentilesRequest(input *GetPercentilesInput) (req *request.Request, output *GetPercentilesOutput) {
11612	op := &request.Operation{
11613		Name:       opGetPercentiles,
11614		HTTPMethod: "POST",
11615		HTTPPath:   "/indices/percentiles",
11616	}
11617
11618	if input == nil {
11619		input = &GetPercentilesInput{}
11620	}
11621
11622	output = &GetPercentilesOutput{}
11623	req = c.newRequest(op, input, output)
11624	return
11625}
11626
11627// GetPercentiles API operation for AWS IoT.
11628//
11629// Groups the aggregated values that match the query into percentile groupings.
11630// The default percentile groupings are: 1,5,25,50,75,95,99, although you can
11631// specify your own when you call GetPercentiles. This function returns a value
11632// for each percentile group specified (or the default percentile groupings).
11633// The percentile group "1" contains the aggregated field value that occurs
11634// in approximately one percent of the values that match the query. The percentile
11635// group "5" contains the aggregated field value that occurs in approximately
11636// five percent of the values that match the query, and so on. The result is
11637// an approximation, the more values that match the query, the more accurate
11638// the percentile values.
11639//
11640// Requires permission to access the GetPercentiles (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
11641// action.
11642//
11643// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11644// with awserr.Error's Code and Message methods to get detailed information about
11645// the error.
11646//
11647// See the AWS API reference guide for AWS IoT's
11648// API operation GetPercentiles for usage and error information.
11649//
11650// Returned Error Types:
11651//   * InvalidRequestException
11652//   The request is not valid.
11653//
11654//   * ThrottlingException
11655//   The rate exceeds the limit.
11656//
11657//   * UnauthorizedException
11658//   You are not authorized to perform this operation.
11659//
11660//   * ServiceUnavailableException
11661//   The service is temporarily unavailable.
11662//
11663//   * InternalFailureException
11664//   An unexpected error has occurred.
11665//
11666//   * ResourceNotFoundException
11667//   The specified resource does not exist.
11668//
11669//   * InvalidQueryException
11670//   The query is invalid.
11671//
11672//   * InvalidAggregationException
11673//   The aggregation is invalid.
11674//
11675//   * IndexNotReadyException
11676//   The index is not ready.
11677//
11678func (c *IoT) GetPercentiles(input *GetPercentilesInput) (*GetPercentilesOutput, error) {
11679	req, out := c.GetPercentilesRequest(input)
11680	return out, req.Send()
11681}
11682
11683// GetPercentilesWithContext is the same as GetPercentiles with the addition of
11684// the ability to pass a context and additional request options.
11685//
11686// See GetPercentiles for details on how to use this API operation.
11687//
11688// The context must be non-nil and will be used for request cancellation. If
11689// the context is nil a panic will occur. In the future the SDK may create
11690// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11691// for more information on using Contexts.
11692func (c *IoT) GetPercentilesWithContext(ctx aws.Context, input *GetPercentilesInput, opts ...request.Option) (*GetPercentilesOutput, error) {
11693	req, out := c.GetPercentilesRequest(input)
11694	req.SetContext(ctx)
11695	req.ApplyOptions(opts...)
11696	return out, req.Send()
11697}
11698
11699const opGetPolicy = "GetPolicy"
11700
11701// GetPolicyRequest generates a "aws/request.Request" representing the
11702// client's request for the GetPolicy operation. The "output" return
11703// value will be populated with the request's response once the request completes
11704// successfully.
11705//
11706// Use "Send" method on the returned Request to send the API call to the service.
11707// the "output" return value is not valid until after Send returns without error.
11708//
11709// See GetPolicy for more information on using the GetPolicy
11710// API call, and error handling.
11711//
11712// This method is useful when you want to inject custom logic or configuration
11713// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11714//
11715//
11716//    // Example sending a request using the GetPolicyRequest method.
11717//    req, resp := client.GetPolicyRequest(params)
11718//
11719//    err := req.Send()
11720//    if err == nil { // resp is now filled
11721//        fmt.Println(resp)
11722//    }
11723func (c *IoT) GetPolicyRequest(input *GetPolicyInput) (req *request.Request, output *GetPolicyOutput) {
11724	op := &request.Operation{
11725		Name:       opGetPolicy,
11726		HTTPMethod: "GET",
11727		HTTPPath:   "/policies/{policyName}",
11728	}
11729
11730	if input == nil {
11731		input = &GetPolicyInput{}
11732	}
11733
11734	output = &GetPolicyOutput{}
11735	req = c.newRequest(op, input, output)
11736	return
11737}
11738
11739// GetPolicy API operation for AWS IoT.
11740//
11741// Gets information about the specified policy with the policy document of the
11742// default version.
11743//
11744// Requires permission to access the GetPolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
11745// action.
11746//
11747// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11748// with awserr.Error's Code and Message methods to get detailed information about
11749// the error.
11750//
11751// See the AWS API reference guide for AWS IoT's
11752// API operation GetPolicy for usage and error information.
11753//
11754// Returned Error Types:
11755//   * ResourceNotFoundException
11756//   The specified resource does not exist.
11757//
11758//   * InvalidRequestException
11759//   The request is not valid.
11760//
11761//   * ThrottlingException
11762//   The rate exceeds the limit.
11763//
11764//   * UnauthorizedException
11765//   You are not authorized to perform this operation.
11766//
11767//   * ServiceUnavailableException
11768//   The service is temporarily unavailable.
11769//
11770//   * InternalFailureException
11771//   An unexpected error has occurred.
11772//
11773func (c *IoT) GetPolicy(input *GetPolicyInput) (*GetPolicyOutput, error) {
11774	req, out := c.GetPolicyRequest(input)
11775	return out, req.Send()
11776}
11777
11778// GetPolicyWithContext is the same as GetPolicy with the addition of
11779// the ability to pass a context and additional request options.
11780//
11781// See GetPolicy for details on how to use this API operation.
11782//
11783// The context must be non-nil and will be used for request cancellation. If
11784// the context is nil a panic will occur. In the future the SDK may create
11785// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11786// for more information on using Contexts.
11787func (c *IoT) GetPolicyWithContext(ctx aws.Context, input *GetPolicyInput, opts ...request.Option) (*GetPolicyOutput, error) {
11788	req, out := c.GetPolicyRequest(input)
11789	req.SetContext(ctx)
11790	req.ApplyOptions(opts...)
11791	return out, req.Send()
11792}
11793
11794const opGetPolicyVersion = "GetPolicyVersion"
11795
11796// GetPolicyVersionRequest generates a "aws/request.Request" representing the
11797// client's request for the GetPolicyVersion operation. The "output" return
11798// value will be populated with the request's response once the request completes
11799// successfully.
11800//
11801// Use "Send" method on the returned Request to send the API call to the service.
11802// the "output" return value is not valid until after Send returns without error.
11803//
11804// See GetPolicyVersion for more information on using the GetPolicyVersion
11805// API call, and error handling.
11806//
11807// This method is useful when you want to inject custom logic or configuration
11808// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11809//
11810//
11811//    // Example sending a request using the GetPolicyVersionRequest method.
11812//    req, resp := client.GetPolicyVersionRequest(params)
11813//
11814//    err := req.Send()
11815//    if err == nil { // resp is now filled
11816//        fmt.Println(resp)
11817//    }
11818func (c *IoT) GetPolicyVersionRequest(input *GetPolicyVersionInput) (req *request.Request, output *GetPolicyVersionOutput) {
11819	op := &request.Operation{
11820		Name:       opGetPolicyVersion,
11821		HTTPMethod: "GET",
11822		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
11823	}
11824
11825	if input == nil {
11826		input = &GetPolicyVersionInput{}
11827	}
11828
11829	output = &GetPolicyVersionOutput{}
11830	req = c.newRequest(op, input, output)
11831	return
11832}
11833
11834// GetPolicyVersion API operation for AWS IoT.
11835//
11836// Gets information about the specified policy version.
11837//
11838// Requires permission to access the GetPolicyVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
11839// action.
11840//
11841// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11842// with awserr.Error's Code and Message methods to get detailed information about
11843// the error.
11844//
11845// See the AWS API reference guide for AWS IoT's
11846// API operation GetPolicyVersion for usage and error information.
11847//
11848// Returned Error Types:
11849//   * ResourceNotFoundException
11850//   The specified resource does not exist.
11851//
11852//   * InvalidRequestException
11853//   The request is not valid.
11854//
11855//   * ThrottlingException
11856//   The rate exceeds the limit.
11857//
11858//   * UnauthorizedException
11859//   You are not authorized to perform this operation.
11860//
11861//   * ServiceUnavailableException
11862//   The service is temporarily unavailable.
11863//
11864//   * InternalFailureException
11865//   An unexpected error has occurred.
11866//
11867func (c *IoT) GetPolicyVersion(input *GetPolicyVersionInput) (*GetPolicyVersionOutput, error) {
11868	req, out := c.GetPolicyVersionRequest(input)
11869	return out, req.Send()
11870}
11871
11872// GetPolicyVersionWithContext is the same as GetPolicyVersion with the addition of
11873// the ability to pass a context and additional request options.
11874//
11875// See GetPolicyVersion for details on how to use this API operation.
11876//
11877// The context must be non-nil and will be used for request cancellation. If
11878// the context is nil a panic will occur. In the future the SDK may create
11879// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11880// for more information on using Contexts.
11881func (c *IoT) GetPolicyVersionWithContext(ctx aws.Context, input *GetPolicyVersionInput, opts ...request.Option) (*GetPolicyVersionOutput, error) {
11882	req, out := c.GetPolicyVersionRequest(input)
11883	req.SetContext(ctx)
11884	req.ApplyOptions(opts...)
11885	return out, req.Send()
11886}
11887
11888const opGetRegistrationCode = "GetRegistrationCode"
11889
11890// GetRegistrationCodeRequest generates a "aws/request.Request" representing the
11891// client's request for the GetRegistrationCode operation. The "output" return
11892// value will be populated with the request's response once the request completes
11893// successfully.
11894//
11895// Use "Send" method on the returned Request to send the API call to the service.
11896// the "output" return value is not valid until after Send returns without error.
11897//
11898// See GetRegistrationCode for more information on using the GetRegistrationCode
11899// API call, and error handling.
11900//
11901// This method is useful when you want to inject custom logic or configuration
11902// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11903//
11904//
11905//    // Example sending a request using the GetRegistrationCodeRequest method.
11906//    req, resp := client.GetRegistrationCodeRequest(params)
11907//
11908//    err := req.Send()
11909//    if err == nil { // resp is now filled
11910//        fmt.Println(resp)
11911//    }
11912func (c *IoT) GetRegistrationCodeRequest(input *GetRegistrationCodeInput) (req *request.Request, output *GetRegistrationCodeOutput) {
11913	op := &request.Operation{
11914		Name:       opGetRegistrationCode,
11915		HTTPMethod: "GET",
11916		HTTPPath:   "/registrationcode",
11917	}
11918
11919	if input == nil {
11920		input = &GetRegistrationCodeInput{}
11921	}
11922
11923	output = &GetRegistrationCodeOutput{}
11924	req = c.newRequest(op, input, output)
11925	return
11926}
11927
11928// GetRegistrationCode API operation for AWS IoT.
11929//
11930// Gets a registration code used to register a CA certificate with IoT.
11931//
11932// Requires permission to access the GetRegistrationCode (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
11933// action.
11934//
11935// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
11936// with awserr.Error's Code and Message methods to get detailed information about
11937// the error.
11938//
11939// See the AWS API reference guide for AWS IoT's
11940// API operation GetRegistrationCode for usage and error information.
11941//
11942// Returned Error Types:
11943//   * ThrottlingException
11944//   The rate exceeds the limit.
11945//
11946//   * UnauthorizedException
11947//   You are not authorized to perform this operation.
11948//
11949//   * ServiceUnavailableException
11950//   The service is temporarily unavailable.
11951//
11952//   * InternalFailureException
11953//   An unexpected error has occurred.
11954//
11955//   * InvalidRequestException
11956//   The request is not valid.
11957//
11958func (c *IoT) GetRegistrationCode(input *GetRegistrationCodeInput) (*GetRegistrationCodeOutput, error) {
11959	req, out := c.GetRegistrationCodeRequest(input)
11960	return out, req.Send()
11961}
11962
11963// GetRegistrationCodeWithContext is the same as GetRegistrationCode with the addition of
11964// the ability to pass a context and additional request options.
11965//
11966// See GetRegistrationCode for details on how to use this API operation.
11967//
11968// The context must be non-nil and will be used for request cancellation. If
11969// the context is nil a panic will occur. In the future the SDK may create
11970// sub-contexts for http.Requests. See https://golang.org/pkg/context/
11971// for more information on using Contexts.
11972func (c *IoT) GetRegistrationCodeWithContext(ctx aws.Context, input *GetRegistrationCodeInput, opts ...request.Option) (*GetRegistrationCodeOutput, error) {
11973	req, out := c.GetRegistrationCodeRequest(input)
11974	req.SetContext(ctx)
11975	req.ApplyOptions(opts...)
11976	return out, req.Send()
11977}
11978
11979const opGetStatistics = "GetStatistics"
11980
11981// GetStatisticsRequest generates a "aws/request.Request" representing the
11982// client's request for the GetStatistics operation. The "output" return
11983// value will be populated with the request's response once the request completes
11984// successfully.
11985//
11986// Use "Send" method on the returned Request to send the API call to the service.
11987// the "output" return value is not valid until after Send returns without error.
11988//
11989// See GetStatistics for more information on using the GetStatistics
11990// API call, and error handling.
11991//
11992// This method is useful when you want to inject custom logic or configuration
11993// into the SDK's request lifecycle. Such as custom headers, or retry logic.
11994//
11995//
11996//    // Example sending a request using the GetStatisticsRequest method.
11997//    req, resp := client.GetStatisticsRequest(params)
11998//
11999//    err := req.Send()
12000//    if err == nil { // resp is now filled
12001//        fmt.Println(resp)
12002//    }
12003func (c *IoT) GetStatisticsRequest(input *GetStatisticsInput) (req *request.Request, output *GetStatisticsOutput) {
12004	op := &request.Operation{
12005		Name:       opGetStatistics,
12006		HTTPMethod: "POST",
12007		HTTPPath:   "/indices/statistics",
12008	}
12009
12010	if input == nil {
12011		input = &GetStatisticsInput{}
12012	}
12013
12014	output = &GetStatisticsOutput{}
12015	req = c.newRequest(op, input, output)
12016	return
12017}
12018
12019// GetStatistics API operation for AWS IoT.
12020//
12021// Returns the count, average, sum, minimum, maximum, sum of squares, variance,
12022// and standard deviation for the specified aggregated field. If the aggregation
12023// field is of type String, only the count statistic is returned.
12024//
12025// Requires permission to access the GetStatistics (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
12026// action.
12027//
12028// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12029// with awserr.Error's Code and Message methods to get detailed information about
12030// the error.
12031//
12032// See the AWS API reference guide for AWS IoT's
12033// API operation GetStatistics for usage and error information.
12034//
12035// Returned Error Types:
12036//   * InvalidRequestException
12037//   The request is not valid.
12038//
12039//   * ThrottlingException
12040//   The rate exceeds the limit.
12041//
12042//   * UnauthorizedException
12043//   You are not authorized to perform this operation.
12044//
12045//   * ServiceUnavailableException
12046//   The service is temporarily unavailable.
12047//
12048//   * InternalFailureException
12049//   An unexpected error has occurred.
12050//
12051//   * ResourceNotFoundException
12052//   The specified resource does not exist.
12053//
12054//   * InvalidQueryException
12055//   The query is invalid.
12056//
12057//   * InvalidAggregationException
12058//   The aggregation is invalid.
12059//
12060//   * IndexNotReadyException
12061//   The index is not ready.
12062//
12063func (c *IoT) GetStatistics(input *GetStatisticsInput) (*GetStatisticsOutput, error) {
12064	req, out := c.GetStatisticsRequest(input)
12065	return out, req.Send()
12066}
12067
12068// GetStatisticsWithContext is the same as GetStatistics with the addition of
12069// the ability to pass a context and additional request options.
12070//
12071// See GetStatistics for details on how to use this API operation.
12072//
12073// The context must be non-nil and will be used for request cancellation. If
12074// the context is nil a panic will occur. In the future the SDK may create
12075// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12076// for more information on using Contexts.
12077func (c *IoT) GetStatisticsWithContext(ctx aws.Context, input *GetStatisticsInput, opts ...request.Option) (*GetStatisticsOutput, error) {
12078	req, out := c.GetStatisticsRequest(input)
12079	req.SetContext(ctx)
12080	req.ApplyOptions(opts...)
12081	return out, req.Send()
12082}
12083
12084const opGetTopicRule = "GetTopicRule"
12085
12086// GetTopicRuleRequest generates a "aws/request.Request" representing the
12087// client's request for the GetTopicRule operation. The "output" return
12088// value will be populated with the request's response once the request completes
12089// successfully.
12090//
12091// Use "Send" method on the returned Request to send the API call to the service.
12092// the "output" return value is not valid until after Send returns without error.
12093//
12094// See GetTopicRule for more information on using the GetTopicRule
12095// API call, and error handling.
12096//
12097// This method is useful when you want to inject custom logic or configuration
12098// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12099//
12100//
12101//    // Example sending a request using the GetTopicRuleRequest method.
12102//    req, resp := client.GetTopicRuleRequest(params)
12103//
12104//    err := req.Send()
12105//    if err == nil { // resp is now filled
12106//        fmt.Println(resp)
12107//    }
12108func (c *IoT) GetTopicRuleRequest(input *GetTopicRuleInput) (req *request.Request, output *GetTopicRuleOutput) {
12109	op := &request.Operation{
12110		Name:       opGetTopicRule,
12111		HTTPMethod: "GET",
12112		HTTPPath:   "/rules/{ruleName}",
12113	}
12114
12115	if input == nil {
12116		input = &GetTopicRuleInput{}
12117	}
12118
12119	output = &GetTopicRuleOutput{}
12120	req = c.newRequest(op, input, output)
12121	return
12122}
12123
12124// GetTopicRule API operation for AWS IoT.
12125//
12126// Gets information about the rule.
12127//
12128// Requires permission to access the GetTopicRule (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
12129// action.
12130//
12131// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12132// with awserr.Error's Code and Message methods to get detailed information about
12133// the error.
12134//
12135// See the AWS API reference guide for AWS IoT's
12136// API operation GetTopicRule for usage and error information.
12137//
12138// Returned Error Types:
12139//   * InternalException
12140//   An unexpected error has occurred.
12141//
12142//   * InvalidRequestException
12143//   The request is not valid.
12144//
12145//   * ServiceUnavailableException
12146//   The service is temporarily unavailable.
12147//
12148//   * UnauthorizedException
12149//   You are not authorized to perform this operation.
12150//
12151func (c *IoT) GetTopicRule(input *GetTopicRuleInput) (*GetTopicRuleOutput, error) {
12152	req, out := c.GetTopicRuleRequest(input)
12153	return out, req.Send()
12154}
12155
12156// GetTopicRuleWithContext is the same as GetTopicRule with the addition of
12157// the ability to pass a context and additional request options.
12158//
12159// See GetTopicRule for details on how to use this API operation.
12160//
12161// The context must be non-nil and will be used for request cancellation. If
12162// the context is nil a panic will occur. In the future the SDK may create
12163// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12164// for more information on using Contexts.
12165func (c *IoT) GetTopicRuleWithContext(ctx aws.Context, input *GetTopicRuleInput, opts ...request.Option) (*GetTopicRuleOutput, error) {
12166	req, out := c.GetTopicRuleRequest(input)
12167	req.SetContext(ctx)
12168	req.ApplyOptions(opts...)
12169	return out, req.Send()
12170}
12171
12172const opGetTopicRuleDestination = "GetTopicRuleDestination"
12173
12174// GetTopicRuleDestinationRequest generates a "aws/request.Request" representing the
12175// client's request for the GetTopicRuleDestination operation. The "output" return
12176// value will be populated with the request's response once the request completes
12177// successfully.
12178//
12179// Use "Send" method on the returned Request to send the API call to the service.
12180// the "output" return value is not valid until after Send returns without error.
12181//
12182// See GetTopicRuleDestination for more information on using the GetTopicRuleDestination
12183// API call, and error handling.
12184//
12185// This method is useful when you want to inject custom logic or configuration
12186// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12187//
12188//
12189//    // Example sending a request using the GetTopicRuleDestinationRequest method.
12190//    req, resp := client.GetTopicRuleDestinationRequest(params)
12191//
12192//    err := req.Send()
12193//    if err == nil { // resp is now filled
12194//        fmt.Println(resp)
12195//    }
12196func (c *IoT) GetTopicRuleDestinationRequest(input *GetTopicRuleDestinationInput) (req *request.Request, output *GetTopicRuleDestinationOutput) {
12197	op := &request.Operation{
12198		Name:       opGetTopicRuleDestination,
12199		HTTPMethod: "GET",
12200		HTTPPath:   "/destinations/{arn+}",
12201	}
12202
12203	if input == nil {
12204		input = &GetTopicRuleDestinationInput{}
12205	}
12206
12207	output = &GetTopicRuleDestinationOutput{}
12208	req = c.newRequest(op, input, output)
12209	return
12210}
12211
12212// GetTopicRuleDestination API operation for AWS IoT.
12213//
12214// Gets information about a topic rule destination.
12215//
12216// Requires permission to access the GetTopicRuleDestination (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
12217// action.
12218//
12219// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12220// with awserr.Error's Code and Message methods to get detailed information about
12221// the error.
12222//
12223// See the AWS API reference guide for AWS IoT's
12224// API operation GetTopicRuleDestination for usage and error information.
12225//
12226// Returned Error Types:
12227//   * InternalException
12228//   An unexpected error has occurred.
12229//
12230//   * InvalidRequestException
12231//   The request is not valid.
12232//
12233//   * ServiceUnavailableException
12234//   The service is temporarily unavailable.
12235//
12236//   * UnauthorizedException
12237//   You are not authorized to perform this operation.
12238//
12239func (c *IoT) GetTopicRuleDestination(input *GetTopicRuleDestinationInput) (*GetTopicRuleDestinationOutput, error) {
12240	req, out := c.GetTopicRuleDestinationRequest(input)
12241	return out, req.Send()
12242}
12243
12244// GetTopicRuleDestinationWithContext is the same as GetTopicRuleDestination with the addition of
12245// the ability to pass a context and additional request options.
12246//
12247// See GetTopicRuleDestination for details on how to use this API operation.
12248//
12249// The context must be non-nil and will be used for request cancellation. If
12250// the context is nil a panic will occur. In the future the SDK may create
12251// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12252// for more information on using Contexts.
12253func (c *IoT) GetTopicRuleDestinationWithContext(ctx aws.Context, input *GetTopicRuleDestinationInput, opts ...request.Option) (*GetTopicRuleDestinationOutput, error) {
12254	req, out := c.GetTopicRuleDestinationRequest(input)
12255	req.SetContext(ctx)
12256	req.ApplyOptions(opts...)
12257	return out, req.Send()
12258}
12259
12260const opGetV2LoggingOptions = "GetV2LoggingOptions"
12261
12262// GetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
12263// client's request for the GetV2LoggingOptions operation. The "output" return
12264// value will be populated with the request's response once the request completes
12265// successfully.
12266//
12267// Use "Send" method on the returned Request to send the API call to the service.
12268// the "output" return value is not valid until after Send returns without error.
12269//
12270// See GetV2LoggingOptions for more information on using the GetV2LoggingOptions
12271// API call, and error handling.
12272//
12273// This method is useful when you want to inject custom logic or configuration
12274// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12275//
12276//
12277//    // Example sending a request using the GetV2LoggingOptionsRequest method.
12278//    req, resp := client.GetV2LoggingOptionsRequest(params)
12279//
12280//    err := req.Send()
12281//    if err == nil { // resp is now filled
12282//        fmt.Println(resp)
12283//    }
12284func (c *IoT) GetV2LoggingOptionsRequest(input *GetV2LoggingOptionsInput) (req *request.Request, output *GetV2LoggingOptionsOutput) {
12285	op := &request.Operation{
12286		Name:       opGetV2LoggingOptions,
12287		HTTPMethod: "GET",
12288		HTTPPath:   "/v2LoggingOptions",
12289	}
12290
12291	if input == nil {
12292		input = &GetV2LoggingOptionsInput{}
12293	}
12294
12295	output = &GetV2LoggingOptionsOutput{}
12296	req = c.newRequest(op, input, output)
12297	return
12298}
12299
12300// GetV2LoggingOptions API operation for AWS IoT.
12301//
12302// Gets the fine grained logging options.
12303//
12304// Requires permission to access the GetV2LoggingOptions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
12305// action.
12306//
12307// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12308// with awserr.Error's Code and Message methods to get detailed information about
12309// the error.
12310//
12311// See the AWS API reference guide for AWS IoT's
12312// API operation GetV2LoggingOptions for usage and error information.
12313//
12314// Returned Error Types:
12315//   * InternalException
12316//   An unexpected error has occurred.
12317//
12318//   * NotConfiguredException
12319//   The resource is not configured.
12320//
12321//   * ServiceUnavailableException
12322//   The service is temporarily unavailable.
12323//
12324func (c *IoT) GetV2LoggingOptions(input *GetV2LoggingOptionsInput) (*GetV2LoggingOptionsOutput, error) {
12325	req, out := c.GetV2LoggingOptionsRequest(input)
12326	return out, req.Send()
12327}
12328
12329// GetV2LoggingOptionsWithContext is the same as GetV2LoggingOptions with the addition of
12330// the ability to pass a context and additional request options.
12331//
12332// See GetV2LoggingOptions for details on how to use this API operation.
12333//
12334// The context must be non-nil and will be used for request cancellation. If
12335// the context is nil a panic will occur. In the future the SDK may create
12336// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12337// for more information on using Contexts.
12338func (c *IoT) GetV2LoggingOptionsWithContext(ctx aws.Context, input *GetV2LoggingOptionsInput, opts ...request.Option) (*GetV2LoggingOptionsOutput, error) {
12339	req, out := c.GetV2LoggingOptionsRequest(input)
12340	req.SetContext(ctx)
12341	req.ApplyOptions(opts...)
12342	return out, req.Send()
12343}
12344
12345const opListActiveViolations = "ListActiveViolations"
12346
12347// ListActiveViolationsRequest generates a "aws/request.Request" representing the
12348// client's request for the ListActiveViolations operation. The "output" return
12349// value will be populated with the request's response once the request completes
12350// successfully.
12351//
12352// Use "Send" method on the returned Request to send the API call to the service.
12353// the "output" return value is not valid until after Send returns without error.
12354//
12355// See ListActiveViolations for more information on using the ListActiveViolations
12356// API call, and error handling.
12357//
12358// This method is useful when you want to inject custom logic or configuration
12359// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12360//
12361//
12362//    // Example sending a request using the ListActiveViolationsRequest method.
12363//    req, resp := client.ListActiveViolationsRequest(params)
12364//
12365//    err := req.Send()
12366//    if err == nil { // resp is now filled
12367//        fmt.Println(resp)
12368//    }
12369func (c *IoT) ListActiveViolationsRequest(input *ListActiveViolationsInput) (req *request.Request, output *ListActiveViolationsOutput) {
12370	op := &request.Operation{
12371		Name:       opListActiveViolations,
12372		HTTPMethod: "GET",
12373		HTTPPath:   "/active-violations",
12374		Paginator: &request.Paginator{
12375			InputTokens:     []string{"nextToken"},
12376			OutputTokens:    []string{"nextToken"},
12377			LimitToken:      "maxResults",
12378			TruncationToken: "",
12379		},
12380	}
12381
12382	if input == nil {
12383		input = &ListActiveViolationsInput{}
12384	}
12385
12386	output = &ListActiveViolationsOutput{}
12387	req = c.newRequest(op, input, output)
12388	return
12389}
12390
12391// ListActiveViolations API operation for AWS IoT.
12392//
12393// Lists the active violations for a given Device Defender security profile.
12394//
12395// Requires permission to access the ListActiveViolations (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
12396// action.
12397//
12398// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12399// with awserr.Error's Code and Message methods to get detailed information about
12400// the error.
12401//
12402// See the AWS API reference guide for AWS IoT's
12403// API operation ListActiveViolations for usage and error information.
12404//
12405// Returned Error Types:
12406//   * InvalidRequestException
12407//   The request is not valid.
12408//
12409//   * ResourceNotFoundException
12410//   The specified resource does not exist.
12411//
12412//   * ThrottlingException
12413//   The rate exceeds the limit.
12414//
12415//   * InternalFailureException
12416//   An unexpected error has occurred.
12417//
12418func (c *IoT) ListActiveViolations(input *ListActiveViolationsInput) (*ListActiveViolationsOutput, error) {
12419	req, out := c.ListActiveViolationsRequest(input)
12420	return out, req.Send()
12421}
12422
12423// ListActiveViolationsWithContext is the same as ListActiveViolations with the addition of
12424// the ability to pass a context and additional request options.
12425//
12426// See ListActiveViolations for details on how to use this API operation.
12427//
12428// The context must be non-nil and will be used for request cancellation. If
12429// the context is nil a panic will occur. In the future the SDK may create
12430// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12431// for more information on using Contexts.
12432func (c *IoT) ListActiveViolationsWithContext(ctx aws.Context, input *ListActiveViolationsInput, opts ...request.Option) (*ListActiveViolationsOutput, error) {
12433	req, out := c.ListActiveViolationsRequest(input)
12434	req.SetContext(ctx)
12435	req.ApplyOptions(opts...)
12436	return out, req.Send()
12437}
12438
12439// ListActiveViolationsPages iterates over the pages of a ListActiveViolations operation,
12440// calling the "fn" function with the response data for each page. To stop
12441// iterating, return false from the fn function.
12442//
12443// See ListActiveViolations method for more information on how to use this operation.
12444//
12445// Note: This operation can generate multiple requests to a service.
12446//
12447//    // Example iterating over at most 3 pages of a ListActiveViolations operation.
12448//    pageNum := 0
12449//    err := client.ListActiveViolationsPages(params,
12450//        func(page *iot.ListActiveViolationsOutput, lastPage bool) bool {
12451//            pageNum++
12452//            fmt.Println(page)
12453//            return pageNum <= 3
12454//        })
12455//
12456func (c *IoT) ListActiveViolationsPages(input *ListActiveViolationsInput, fn func(*ListActiveViolationsOutput, bool) bool) error {
12457	return c.ListActiveViolationsPagesWithContext(aws.BackgroundContext(), input, fn)
12458}
12459
12460// ListActiveViolationsPagesWithContext same as ListActiveViolationsPages except
12461// it takes a Context and allows setting request options on the pages.
12462//
12463// The context must be non-nil and will be used for request cancellation. If
12464// the context is nil a panic will occur. In the future the SDK may create
12465// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12466// for more information on using Contexts.
12467func (c *IoT) ListActiveViolationsPagesWithContext(ctx aws.Context, input *ListActiveViolationsInput, fn func(*ListActiveViolationsOutput, bool) bool, opts ...request.Option) error {
12468	p := request.Pagination{
12469		NewRequest: func() (*request.Request, error) {
12470			var inCpy *ListActiveViolationsInput
12471			if input != nil {
12472				tmp := *input
12473				inCpy = &tmp
12474			}
12475			req, _ := c.ListActiveViolationsRequest(inCpy)
12476			req.SetContext(ctx)
12477			req.ApplyOptions(opts...)
12478			return req, nil
12479		},
12480	}
12481
12482	for p.Next() {
12483		if !fn(p.Page().(*ListActiveViolationsOutput), !p.HasNextPage()) {
12484			break
12485		}
12486	}
12487
12488	return p.Err()
12489}
12490
12491const opListAttachedPolicies = "ListAttachedPolicies"
12492
12493// ListAttachedPoliciesRequest generates a "aws/request.Request" representing the
12494// client's request for the ListAttachedPolicies operation. The "output" return
12495// value will be populated with the request's response once the request completes
12496// successfully.
12497//
12498// Use "Send" method on the returned Request to send the API call to the service.
12499// the "output" return value is not valid until after Send returns without error.
12500//
12501// See ListAttachedPolicies for more information on using the ListAttachedPolicies
12502// API call, and error handling.
12503//
12504// This method is useful when you want to inject custom logic or configuration
12505// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12506//
12507//
12508//    // Example sending a request using the ListAttachedPoliciesRequest method.
12509//    req, resp := client.ListAttachedPoliciesRequest(params)
12510//
12511//    err := req.Send()
12512//    if err == nil { // resp is now filled
12513//        fmt.Println(resp)
12514//    }
12515func (c *IoT) ListAttachedPoliciesRequest(input *ListAttachedPoliciesInput) (req *request.Request, output *ListAttachedPoliciesOutput) {
12516	op := &request.Operation{
12517		Name:       opListAttachedPolicies,
12518		HTTPMethod: "POST",
12519		HTTPPath:   "/attached-policies/{target}",
12520		Paginator: &request.Paginator{
12521			InputTokens:     []string{"marker"},
12522			OutputTokens:    []string{"nextMarker"},
12523			LimitToken:      "pageSize",
12524			TruncationToken: "",
12525		},
12526	}
12527
12528	if input == nil {
12529		input = &ListAttachedPoliciesInput{}
12530	}
12531
12532	output = &ListAttachedPoliciesOutput{}
12533	req = c.newRequest(op, input, output)
12534	return
12535}
12536
12537// ListAttachedPolicies API operation for AWS IoT.
12538//
12539// Lists the policies attached to the specified thing group.
12540//
12541// Requires permission to access the ListAttachedPolicies (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
12542// action.
12543//
12544// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12545// with awserr.Error's Code and Message methods to get detailed information about
12546// the error.
12547//
12548// See the AWS API reference guide for AWS IoT's
12549// API operation ListAttachedPolicies for usage and error information.
12550//
12551// Returned Error Types:
12552//   * ResourceNotFoundException
12553//   The specified resource does not exist.
12554//
12555//   * InvalidRequestException
12556//   The request is not valid.
12557//
12558//   * ThrottlingException
12559//   The rate exceeds the limit.
12560//
12561//   * UnauthorizedException
12562//   You are not authorized to perform this operation.
12563//
12564//   * ServiceUnavailableException
12565//   The service is temporarily unavailable.
12566//
12567//   * InternalFailureException
12568//   An unexpected error has occurred.
12569//
12570//   * LimitExceededException
12571//   A limit has been exceeded.
12572//
12573func (c *IoT) ListAttachedPolicies(input *ListAttachedPoliciesInput) (*ListAttachedPoliciesOutput, error) {
12574	req, out := c.ListAttachedPoliciesRequest(input)
12575	return out, req.Send()
12576}
12577
12578// ListAttachedPoliciesWithContext is the same as ListAttachedPolicies with the addition of
12579// the ability to pass a context and additional request options.
12580//
12581// See ListAttachedPolicies for details on how to use this API operation.
12582//
12583// The context must be non-nil and will be used for request cancellation. If
12584// the context is nil a panic will occur. In the future the SDK may create
12585// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12586// for more information on using Contexts.
12587func (c *IoT) ListAttachedPoliciesWithContext(ctx aws.Context, input *ListAttachedPoliciesInput, opts ...request.Option) (*ListAttachedPoliciesOutput, error) {
12588	req, out := c.ListAttachedPoliciesRequest(input)
12589	req.SetContext(ctx)
12590	req.ApplyOptions(opts...)
12591	return out, req.Send()
12592}
12593
12594// ListAttachedPoliciesPages iterates over the pages of a ListAttachedPolicies operation,
12595// calling the "fn" function with the response data for each page. To stop
12596// iterating, return false from the fn function.
12597//
12598// See ListAttachedPolicies method for more information on how to use this operation.
12599//
12600// Note: This operation can generate multiple requests to a service.
12601//
12602//    // Example iterating over at most 3 pages of a ListAttachedPolicies operation.
12603//    pageNum := 0
12604//    err := client.ListAttachedPoliciesPages(params,
12605//        func(page *iot.ListAttachedPoliciesOutput, lastPage bool) bool {
12606//            pageNum++
12607//            fmt.Println(page)
12608//            return pageNum <= 3
12609//        })
12610//
12611func (c *IoT) ListAttachedPoliciesPages(input *ListAttachedPoliciesInput, fn func(*ListAttachedPoliciesOutput, bool) bool) error {
12612	return c.ListAttachedPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
12613}
12614
12615// ListAttachedPoliciesPagesWithContext same as ListAttachedPoliciesPages except
12616// it takes a Context and allows setting request options on the pages.
12617//
12618// The context must be non-nil and will be used for request cancellation. If
12619// the context is nil a panic will occur. In the future the SDK may create
12620// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12621// for more information on using Contexts.
12622func (c *IoT) ListAttachedPoliciesPagesWithContext(ctx aws.Context, input *ListAttachedPoliciesInput, fn func(*ListAttachedPoliciesOutput, bool) bool, opts ...request.Option) error {
12623	p := request.Pagination{
12624		NewRequest: func() (*request.Request, error) {
12625			var inCpy *ListAttachedPoliciesInput
12626			if input != nil {
12627				tmp := *input
12628				inCpy = &tmp
12629			}
12630			req, _ := c.ListAttachedPoliciesRequest(inCpy)
12631			req.SetContext(ctx)
12632			req.ApplyOptions(opts...)
12633			return req, nil
12634		},
12635	}
12636
12637	for p.Next() {
12638		if !fn(p.Page().(*ListAttachedPoliciesOutput), !p.HasNextPage()) {
12639			break
12640		}
12641	}
12642
12643	return p.Err()
12644}
12645
12646const opListAuditFindings = "ListAuditFindings"
12647
12648// ListAuditFindingsRequest generates a "aws/request.Request" representing the
12649// client's request for the ListAuditFindings operation. The "output" return
12650// value will be populated with the request's response once the request completes
12651// successfully.
12652//
12653// Use "Send" method on the returned Request to send the API call to the service.
12654// the "output" return value is not valid until after Send returns without error.
12655//
12656// See ListAuditFindings for more information on using the ListAuditFindings
12657// API call, and error handling.
12658//
12659// This method is useful when you want to inject custom logic or configuration
12660// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12661//
12662//
12663//    // Example sending a request using the ListAuditFindingsRequest method.
12664//    req, resp := client.ListAuditFindingsRequest(params)
12665//
12666//    err := req.Send()
12667//    if err == nil { // resp is now filled
12668//        fmt.Println(resp)
12669//    }
12670func (c *IoT) ListAuditFindingsRequest(input *ListAuditFindingsInput) (req *request.Request, output *ListAuditFindingsOutput) {
12671	op := &request.Operation{
12672		Name:       opListAuditFindings,
12673		HTTPMethod: "POST",
12674		HTTPPath:   "/audit/findings",
12675		Paginator: &request.Paginator{
12676			InputTokens:     []string{"nextToken"},
12677			OutputTokens:    []string{"nextToken"},
12678			LimitToken:      "maxResults",
12679			TruncationToken: "",
12680		},
12681	}
12682
12683	if input == nil {
12684		input = &ListAuditFindingsInput{}
12685	}
12686
12687	output = &ListAuditFindingsOutput{}
12688	req = c.newRequest(op, input, output)
12689	return
12690}
12691
12692// ListAuditFindings API operation for AWS IoT.
12693//
12694// Lists the findings (results) of a Device Defender audit or of the audits
12695// performed during a specified time period. (Findings are retained for 90 days.)
12696//
12697// Requires permission to access the ListAuditFindings (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
12698// action.
12699//
12700// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12701// with awserr.Error's Code and Message methods to get detailed information about
12702// the error.
12703//
12704// See the AWS API reference guide for AWS IoT's
12705// API operation ListAuditFindings for usage and error information.
12706//
12707// Returned Error Types:
12708//   * InvalidRequestException
12709//   The request is not valid.
12710//
12711//   * ThrottlingException
12712//   The rate exceeds the limit.
12713//
12714//   * InternalFailureException
12715//   An unexpected error has occurred.
12716//
12717func (c *IoT) ListAuditFindings(input *ListAuditFindingsInput) (*ListAuditFindingsOutput, error) {
12718	req, out := c.ListAuditFindingsRequest(input)
12719	return out, req.Send()
12720}
12721
12722// ListAuditFindingsWithContext is the same as ListAuditFindings with the addition of
12723// the ability to pass a context and additional request options.
12724//
12725// See ListAuditFindings for details on how to use this API operation.
12726//
12727// The context must be non-nil and will be used for request cancellation. If
12728// the context is nil a panic will occur. In the future the SDK may create
12729// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12730// for more information on using Contexts.
12731func (c *IoT) ListAuditFindingsWithContext(ctx aws.Context, input *ListAuditFindingsInput, opts ...request.Option) (*ListAuditFindingsOutput, error) {
12732	req, out := c.ListAuditFindingsRequest(input)
12733	req.SetContext(ctx)
12734	req.ApplyOptions(opts...)
12735	return out, req.Send()
12736}
12737
12738// ListAuditFindingsPages iterates over the pages of a ListAuditFindings operation,
12739// calling the "fn" function with the response data for each page. To stop
12740// iterating, return false from the fn function.
12741//
12742// See ListAuditFindings method for more information on how to use this operation.
12743//
12744// Note: This operation can generate multiple requests to a service.
12745//
12746//    // Example iterating over at most 3 pages of a ListAuditFindings operation.
12747//    pageNum := 0
12748//    err := client.ListAuditFindingsPages(params,
12749//        func(page *iot.ListAuditFindingsOutput, lastPage bool) bool {
12750//            pageNum++
12751//            fmt.Println(page)
12752//            return pageNum <= 3
12753//        })
12754//
12755func (c *IoT) ListAuditFindingsPages(input *ListAuditFindingsInput, fn func(*ListAuditFindingsOutput, bool) bool) error {
12756	return c.ListAuditFindingsPagesWithContext(aws.BackgroundContext(), input, fn)
12757}
12758
12759// ListAuditFindingsPagesWithContext same as ListAuditFindingsPages except
12760// it takes a Context and allows setting request options on the pages.
12761//
12762// The context must be non-nil and will be used for request cancellation. If
12763// the context is nil a panic will occur. In the future the SDK may create
12764// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12765// for more information on using Contexts.
12766func (c *IoT) ListAuditFindingsPagesWithContext(ctx aws.Context, input *ListAuditFindingsInput, fn func(*ListAuditFindingsOutput, bool) bool, opts ...request.Option) error {
12767	p := request.Pagination{
12768		NewRequest: func() (*request.Request, error) {
12769			var inCpy *ListAuditFindingsInput
12770			if input != nil {
12771				tmp := *input
12772				inCpy = &tmp
12773			}
12774			req, _ := c.ListAuditFindingsRequest(inCpy)
12775			req.SetContext(ctx)
12776			req.ApplyOptions(opts...)
12777			return req, nil
12778		},
12779	}
12780
12781	for p.Next() {
12782		if !fn(p.Page().(*ListAuditFindingsOutput), !p.HasNextPage()) {
12783			break
12784		}
12785	}
12786
12787	return p.Err()
12788}
12789
12790const opListAuditMitigationActionsExecutions = "ListAuditMitigationActionsExecutions"
12791
12792// ListAuditMitigationActionsExecutionsRequest generates a "aws/request.Request" representing the
12793// client's request for the ListAuditMitigationActionsExecutions operation. The "output" return
12794// value will be populated with the request's response once the request completes
12795// successfully.
12796//
12797// Use "Send" method on the returned Request to send the API call to the service.
12798// the "output" return value is not valid until after Send returns without error.
12799//
12800// See ListAuditMitigationActionsExecutions for more information on using the ListAuditMitigationActionsExecutions
12801// API call, and error handling.
12802//
12803// This method is useful when you want to inject custom logic or configuration
12804// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12805//
12806//
12807//    // Example sending a request using the ListAuditMitigationActionsExecutionsRequest method.
12808//    req, resp := client.ListAuditMitigationActionsExecutionsRequest(params)
12809//
12810//    err := req.Send()
12811//    if err == nil { // resp is now filled
12812//        fmt.Println(resp)
12813//    }
12814func (c *IoT) ListAuditMitigationActionsExecutionsRequest(input *ListAuditMitigationActionsExecutionsInput) (req *request.Request, output *ListAuditMitigationActionsExecutionsOutput) {
12815	op := &request.Operation{
12816		Name:       opListAuditMitigationActionsExecutions,
12817		HTTPMethod: "GET",
12818		HTTPPath:   "/audit/mitigationactions/executions",
12819		Paginator: &request.Paginator{
12820			InputTokens:     []string{"nextToken"},
12821			OutputTokens:    []string{"nextToken"},
12822			LimitToken:      "maxResults",
12823			TruncationToken: "",
12824		},
12825	}
12826
12827	if input == nil {
12828		input = &ListAuditMitigationActionsExecutionsInput{}
12829	}
12830
12831	output = &ListAuditMitigationActionsExecutionsOutput{}
12832	req = c.newRequest(op, input, output)
12833	return
12834}
12835
12836// ListAuditMitigationActionsExecutions API operation for AWS IoT.
12837//
12838// Gets the status of audit mitigation action tasks that were executed.
12839//
12840// Requires permission to access the ListAuditMitigationActionsExecutions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
12841// action.
12842//
12843// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12844// with awserr.Error's Code and Message methods to get detailed information about
12845// the error.
12846//
12847// See the AWS API reference guide for AWS IoT's
12848// API operation ListAuditMitigationActionsExecutions for usage and error information.
12849//
12850// Returned Error Types:
12851//   * InvalidRequestException
12852//   The request is not valid.
12853//
12854//   * ThrottlingException
12855//   The rate exceeds the limit.
12856//
12857//   * InternalFailureException
12858//   An unexpected error has occurred.
12859//
12860func (c *IoT) ListAuditMitigationActionsExecutions(input *ListAuditMitigationActionsExecutionsInput) (*ListAuditMitigationActionsExecutionsOutput, error) {
12861	req, out := c.ListAuditMitigationActionsExecutionsRequest(input)
12862	return out, req.Send()
12863}
12864
12865// ListAuditMitigationActionsExecutionsWithContext is the same as ListAuditMitigationActionsExecutions with the addition of
12866// the ability to pass a context and additional request options.
12867//
12868// See ListAuditMitigationActionsExecutions for details on how to use this API operation.
12869//
12870// The context must be non-nil and will be used for request cancellation. If
12871// the context is nil a panic will occur. In the future the SDK may create
12872// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12873// for more information on using Contexts.
12874func (c *IoT) ListAuditMitigationActionsExecutionsWithContext(ctx aws.Context, input *ListAuditMitigationActionsExecutionsInput, opts ...request.Option) (*ListAuditMitigationActionsExecutionsOutput, error) {
12875	req, out := c.ListAuditMitigationActionsExecutionsRequest(input)
12876	req.SetContext(ctx)
12877	req.ApplyOptions(opts...)
12878	return out, req.Send()
12879}
12880
12881// ListAuditMitigationActionsExecutionsPages iterates over the pages of a ListAuditMitigationActionsExecutions operation,
12882// calling the "fn" function with the response data for each page. To stop
12883// iterating, return false from the fn function.
12884//
12885// See ListAuditMitigationActionsExecutions method for more information on how to use this operation.
12886//
12887// Note: This operation can generate multiple requests to a service.
12888//
12889//    // Example iterating over at most 3 pages of a ListAuditMitigationActionsExecutions operation.
12890//    pageNum := 0
12891//    err := client.ListAuditMitigationActionsExecutionsPages(params,
12892//        func(page *iot.ListAuditMitigationActionsExecutionsOutput, lastPage bool) bool {
12893//            pageNum++
12894//            fmt.Println(page)
12895//            return pageNum <= 3
12896//        })
12897//
12898func (c *IoT) ListAuditMitigationActionsExecutionsPages(input *ListAuditMitigationActionsExecutionsInput, fn func(*ListAuditMitigationActionsExecutionsOutput, bool) bool) error {
12899	return c.ListAuditMitigationActionsExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
12900}
12901
12902// ListAuditMitigationActionsExecutionsPagesWithContext same as ListAuditMitigationActionsExecutionsPages except
12903// it takes a Context and allows setting request options on the pages.
12904//
12905// The context must be non-nil and will be used for request cancellation. If
12906// the context is nil a panic will occur. In the future the SDK may create
12907// sub-contexts for http.Requests. See https://golang.org/pkg/context/
12908// for more information on using Contexts.
12909func (c *IoT) ListAuditMitigationActionsExecutionsPagesWithContext(ctx aws.Context, input *ListAuditMitigationActionsExecutionsInput, fn func(*ListAuditMitigationActionsExecutionsOutput, bool) bool, opts ...request.Option) error {
12910	p := request.Pagination{
12911		NewRequest: func() (*request.Request, error) {
12912			var inCpy *ListAuditMitigationActionsExecutionsInput
12913			if input != nil {
12914				tmp := *input
12915				inCpy = &tmp
12916			}
12917			req, _ := c.ListAuditMitigationActionsExecutionsRequest(inCpy)
12918			req.SetContext(ctx)
12919			req.ApplyOptions(opts...)
12920			return req, nil
12921		},
12922	}
12923
12924	for p.Next() {
12925		if !fn(p.Page().(*ListAuditMitigationActionsExecutionsOutput), !p.HasNextPage()) {
12926			break
12927		}
12928	}
12929
12930	return p.Err()
12931}
12932
12933const opListAuditMitigationActionsTasks = "ListAuditMitigationActionsTasks"
12934
12935// ListAuditMitigationActionsTasksRequest generates a "aws/request.Request" representing the
12936// client's request for the ListAuditMitigationActionsTasks operation. The "output" return
12937// value will be populated with the request's response once the request completes
12938// successfully.
12939//
12940// Use "Send" method on the returned Request to send the API call to the service.
12941// the "output" return value is not valid until after Send returns without error.
12942//
12943// See ListAuditMitigationActionsTasks for more information on using the ListAuditMitigationActionsTasks
12944// API call, and error handling.
12945//
12946// This method is useful when you want to inject custom logic or configuration
12947// into the SDK's request lifecycle. Such as custom headers, or retry logic.
12948//
12949//
12950//    // Example sending a request using the ListAuditMitigationActionsTasksRequest method.
12951//    req, resp := client.ListAuditMitigationActionsTasksRequest(params)
12952//
12953//    err := req.Send()
12954//    if err == nil { // resp is now filled
12955//        fmt.Println(resp)
12956//    }
12957func (c *IoT) ListAuditMitigationActionsTasksRequest(input *ListAuditMitigationActionsTasksInput) (req *request.Request, output *ListAuditMitigationActionsTasksOutput) {
12958	op := &request.Operation{
12959		Name:       opListAuditMitigationActionsTasks,
12960		HTTPMethod: "GET",
12961		HTTPPath:   "/audit/mitigationactions/tasks",
12962		Paginator: &request.Paginator{
12963			InputTokens:     []string{"nextToken"},
12964			OutputTokens:    []string{"nextToken"},
12965			LimitToken:      "maxResults",
12966			TruncationToken: "",
12967		},
12968	}
12969
12970	if input == nil {
12971		input = &ListAuditMitigationActionsTasksInput{}
12972	}
12973
12974	output = &ListAuditMitigationActionsTasksOutput{}
12975	req = c.newRequest(op, input, output)
12976	return
12977}
12978
12979// ListAuditMitigationActionsTasks API operation for AWS IoT.
12980//
12981// Gets a list of audit mitigation action tasks that match the specified filters.
12982//
12983// Requires permission to access the ListAuditMitigationActionsTasks (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
12984// action.
12985//
12986// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
12987// with awserr.Error's Code and Message methods to get detailed information about
12988// the error.
12989//
12990// See the AWS API reference guide for AWS IoT's
12991// API operation ListAuditMitigationActionsTasks for usage and error information.
12992//
12993// Returned Error Types:
12994//   * InvalidRequestException
12995//   The request is not valid.
12996//
12997//   * ThrottlingException
12998//   The rate exceeds the limit.
12999//
13000//   * InternalFailureException
13001//   An unexpected error has occurred.
13002//
13003func (c *IoT) ListAuditMitigationActionsTasks(input *ListAuditMitigationActionsTasksInput) (*ListAuditMitigationActionsTasksOutput, error) {
13004	req, out := c.ListAuditMitigationActionsTasksRequest(input)
13005	return out, req.Send()
13006}
13007
13008// ListAuditMitigationActionsTasksWithContext is the same as ListAuditMitigationActionsTasks with the addition of
13009// the ability to pass a context and additional request options.
13010//
13011// See ListAuditMitigationActionsTasks for details on how to use this API operation.
13012//
13013// The context must be non-nil and will be used for request cancellation. If
13014// the context is nil a panic will occur. In the future the SDK may create
13015// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13016// for more information on using Contexts.
13017func (c *IoT) ListAuditMitigationActionsTasksWithContext(ctx aws.Context, input *ListAuditMitigationActionsTasksInput, opts ...request.Option) (*ListAuditMitigationActionsTasksOutput, error) {
13018	req, out := c.ListAuditMitigationActionsTasksRequest(input)
13019	req.SetContext(ctx)
13020	req.ApplyOptions(opts...)
13021	return out, req.Send()
13022}
13023
13024// ListAuditMitigationActionsTasksPages iterates over the pages of a ListAuditMitigationActionsTasks operation,
13025// calling the "fn" function with the response data for each page. To stop
13026// iterating, return false from the fn function.
13027//
13028// See ListAuditMitigationActionsTasks method for more information on how to use this operation.
13029//
13030// Note: This operation can generate multiple requests to a service.
13031//
13032//    // Example iterating over at most 3 pages of a ListAuditMitigationActionsTasks operation.
13033//    pageNum := 0
13034//    err := client.ListAuditMitigationActionsTasksPages(params,
13035//        func(page *iot.ListAuditMitigationActionsTasksOutput, lastPage bool) bool {
13036//            pageNum++
13037//            fmt.Println(page)
13038//            return pageNum <= 3
13039//        })
13040//
13041func (c *IoT) ListAuditMitigationActionsTasksPages(input *ListAuditMitigationActionsTasksInput, fn func(*ListAuditMitigationActionsTasksOutput, bool) bool) error {
13042	return c.ListAuditMitigationActionsTasksPagesWithContext(aws.BackgroundContext(), input, fn)
13043}
13044
13045// ListAuditMitigationActionsTasksPagesWithContext same as ListAuditMitigationActionsTasksPages except
13046// it takes a Context and allows setting request options on the pages.
13047//
13048// The context must be non-nil and will be used for request cancellation. If
13049// the context is nil a panic will occur. In the future the SDK may create
13050// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13051// for more information on using Contexts.
13052func (c *IoT) ListAuditMitigationActionsTasksPagesWithContext(ctx aws.Context, input *ListAuditMitigationActionsTasksInput, fn func(*ListAuditMitigationActionsTasksOutput, bool) bool, opts ...request.Option) error {
13053	p := request.Pagination{
13054		NewRequest: func() (*request.Request, error) {
13055			var inCpy *ListAuditMitigationActionsTasksInput
13056			if input != nil {
13057				tmp := *input
13058				inCpy = &tmp
13059			}
13060			req, _ := c.ListAuditMitigationActionsTasksRequest(inCpy)
13061			req.SetContext(ctx)
13062			req.ApplyOptions(opts...)
13063			return req, nil
13064		},
13065	}
13066
13067	for p.Next() {
13068		if !fn(p.Page().(*ListAuditMitigationActionsTasksOutput), !p.HasNextPage()) {
13069			break
13070		}
13071	}
13072
13073	return p.Err()
13074}
13075
13076const opListAuditSuppressions = "ListAuditSuppressions"
13077
13078// ListAuditSuppressionsRequest generates a "aws/request.Request" representing the
13079// client's request for the ListAuditSuppressions operation. The "output" return
13080// value will be populated with the request's response once the request completes
13081// successfully.
13082//
13083// Use "Send" method on the returned Request to send the API call to the service.
13084// the "output" return value is not valid until after Send returns without error.
13085//
13086// See ListAuditSuppressions for more information on using the ListAuditSuppressions
13087// API call, and error handling.
13088//
13089// This method is useful when you want to inject custom logic or configuration
13090// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13091//
13092//
13093//    // Example sending a request using the ListAuditSuppressionsRequest method.
13094//    req, resp := client.ListAuditSuppressionsRequest(params)
13095//
13096//    err := req.Send()
13097//    if err == nil { // resp is now filled
13098//        fmt.Println(resp)
13099//    }
13100func (c *IoT) ListAuditSuppressionsRequest(input *ListAuditSuppressionsInput) (req *request.Request, output *ListAuditSuppressionsOutput) {
13101	op := &request.Operation{
13102		Name:       opListAuditSuppressions,
13103		HTTPMethod: "POST",
13104		HTTPPath:   "/audit/suppressions/list",
13105		Paginator: &request.Paginator{
13106			InputTokens:     []string{"nextToken"},
13107			OutputTokens:    []string{"nextToken"},
13108			LimitToken:      "maxResults",
13109			TruncationToken: "",
13110		},
13111	}
13112
13113	if input == nil {
13114		input = &ListAuditSuppressionsInput{}
13115	}
13116
13117	output = &ListAuditSuppressionsOutput{}
13118	req = c.newRequest(op, input, output)
13119	return
13120}
13121
13122// ListAuditSuppressions API operation for AWS IoT.
13123//
13124// Lists your Device Defender audit listings.
13125//
13126// Requires permission to access the ListAuditSuppressions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
13127// action.
13128//
13129// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13130// with awserr.Error's Code and Message methods to get detailed information about
13131// the error.
13132//
13133// See the AWS API reference guide for AWS IoT's
13134// API operation ListAuditSuppressions for usage and error information.
13135//
13136// Returned Error Types:
13137//   * InvalidRequestException
13138//   The request is not valid.
13139//
13140//   * ThrottlingException
13141//   The rate exceeds the limit.
13142//
13143//   * InternalFailureException
13144//   An unexpected error has occurred.
13145//
13146func (c *IoT) ListAuditSuppressions(input *ListAuditSuppressionsInput) (*ListAuditSuppressionsOutput, error) {
13147	req, out := c.ListAuditSuppressionsRequest(input)
13148	return out, req.Send()
13149}
13150
13151// ListAuditSuppressionsWithContext is the same as ListAuditSuppressions with the addition of
13152// the ability to pass a context and additional request options.
13153//
13154// See ListAuditSuppressions for details on how to use this API operation.
13155//
13156// The context must be non-nil and will be used for request cancellation. If
13157// the context is nil a panic will occur. In the future the SDK may create
13158// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13159// for more information on using Contexts.
13160func (c *IoT) ListAuditSuppressionsWithContext(ctx aws.Context, input *ListAuditSuppressionsInput, opts ...request.Option) (*ListAuditSuppressionsOutput, error) {
13161	req, out := c.ListAuditSuppressionsRequest(input)
13162	req.SetContext(ctx)
13163	req.ApplyOptions(opts...)
13164	return out, req.Send()
13165}
13166
13167// ListAuditSuppressionsPages iterates over the pages of a ListAuditSuppressions operation,
13168// calling the "fn" function with the response data for each page. To stop
13169// iterating, return false from the fn function.
13170//
13171// See ListAuditSuppressions method for more information on how to use this operation.
13172//
13173// Note: This operation can generate multiple requests to a service.
13174//
13175//    // Example iterating over at most 3 pages of a ListAuditSuppressions operation.
13176//    pageNum := 0
13177//    err := client.ListAuditSuppressionsPages(params,
13178//        func(page *iot.ListAuditSuppressionsOutput, lastPage bool) bool {
13179//            pageNum++
13180//            fmt.Println(page)
13181//            return pageNum <= 3
13182//        })
13183//
13184func (c *IoT) ListAuditSuppressionsPages(input *ListAuditSuppressionsInput, fn func(*ListAuditSuppressionsOutput, bool) bool) error {
13185	return c.ListAuditSuppressionsPagesWithContext(aws.BackgroundContext(), input, fn)
13186}
13187
13188// ListAuditSuppressionsPagesWithContext same as ListAuditSuppressionsPages except
13189// it takes a Context and allows setting request options on the pages.
13190//
13191// The context must be non-nil and will be used for request cancellation. If
13192// the context is nil a panic will occur. In the future the SDK may create
13193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13194// for more information on using Contexts.
13195func (c *IoT) ListAuditSuppressionsPagesWithContext(ctx aws.Context, input *ListAuditSuppressionsInput, fn func(*ListAuditSuppressionsOutput, bool) bool, opts ...request.Option) error {
13196	p := request.Pagination{
13197		NewRequest: func() (*request.Request, error) {
13198			var inCpy *ListAuditSuppressionsInput
13199			if input != nil {
13200				tmp := *input
13201				inCpy = &tmp
13202			}
13203			req, _ := c.ListAuditSuppressionsRequest(inCpy)
13204			req.SetContext(ctx)
13205			req.ApplyOptions(opts...)
13206			return req, nil
13207		},
13208	}
13209
13210	for p.Next() {
13211		if !fn(p.Page().(*ListAuditSuppressionsOutput), !p.HasNextPage()) {
13212			break
13213		}
13214	}
13215
13216	return p.Err()
13217}
13218
13219const opListAuditTasks = "ListAuditTasks"
13220
13221// ListAuditTasksRequest generates a "aws/request.Request" representing the
13222// client's request for the ListAuditTasks operation. The "output" return
13223// value will be populated with the request's response once the request completes
13224// successfully.
13225//
13226// Use "Send" method on the returned Request to send the API call to the service.
13227// the "output" return value is not valid until after Send returns without error.
13228//
13229// See ListAuditTasks for more information on using the ListAuditTasks
13230// API call, and error handling.
13231//
13232// This method is useful when you want to inject custom logic or configuration
13233// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13234//
13235//
13236//    // Example sending a request using the ListAuditTasksRequest method.
13237//    req, resp := client.ListAuditTasksRequest(params)
13238//
13239//    err := req.Send()
13240//    if err == nil { // resp is now filled
13241//        fmt.Println(resp)
13242//    }
13243func (c *IoT) ListAuditTasksRequest(input *ListAuditTasksInput) (req *request.Request, output *ListAuditTasksOutput) {
13244	op := &request.Operation{
13245		Name:       opListAuditTasks,
13246		HTTPMethod: "GET",
13247		HTTPPath:   "/audit/tasks",
13248		Paginator: &request.Paginator{
13249			InputTokens:     []string{"nextToken"},
13250			OutputTokens:    []string{"nextToken"},
13251			LimitToken:      "maxResults",
13252			TruncationToken: "",
13253		},
13254	}
13255
13256	if input == nil {
13257		input = &ListAuditTasksInput{}
13258	}
13259
13260	output = &ListAuditTasksOutput{}
13261	req = c.newRequest(op, input, output)
13262	return
13263}
13264
13265// ListAuditTasks API operation for AWS IoT.
13266//
13267// Lists the Device Defender audits that have been performed during a given
13268// time period.
13269//
13270// Requires permission to access the ListAuditTasks (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
13271// action.
13272//
13273// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13274// with awserr.Error's Code and Message methods to get detailed information about
13275// the error.
13276//
13277// See the AWS API reference guide for AWS IoT's
13278// API operation ListAuditTasks for usage and error information.
13279//
13280// Returned Error Types:
13281//   * InvalidRequestException
13282//   The request is not valid.
13283//
13284//   * ThrottlingException
13285//   The rate exceeds the limit.
13286//
13287//   * InternalFailureException
13288//   An unexpected error has occurred.
13289//
13290func (c *IoT) ListAuditTasks(input *ListAuditTasksInput) (*ListAuditTasksOutput, error) {
13291	req, out := c.ListAuditTasksRequest(input)
13292	return out, req.Send()
13293}
13294
13295// ListAuditTasksWithContext is the same as ListAuditTasks with the addition of
13296// the ability to pass a context and additional request options.
13297//
13298// See ListAuditTasks for details on how to use this API operation.
13299//
13300// The context must be non-nil and will be used for request cancellation. If
13301// the context is nil a panic will occur. In the future the SDK may create
13302// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13303// for more information on using Contexts.
13304func (c *IoT) ListAuditTasksWithContext(ctx aws.Context, input *ListAuditTasksInput, opts ...request.Option) (*ListAuditTasksOutput, error) {
13305	req, out := c.ListAuditTasksRequest(input)
13306	req.SetContext(ctx)
13307	req.ApplyOptions(opts...)
13308	return out, req.Send()
13309}
13310
13311// ListAuditTasksPages iterates over the pages of a ListAuditTasks operation,
13312// calling the "fn" function with the response data for each page. To stop
13313// iterating, return false from the fn function.
13314//
13315// See ListAuditTasks method for more information on how to use this operation.
13316//
13317// Note: This operation can generate multiple requests to a service.
13318//
13319//    // Example iterating over at most 3 pages of a ListAuditTasks operation.
13320//    pageNum := 0
13321//    err := client.ListAuditTasksPages(params,
13322//        func(page *iot.ListAuditTasksOutput, lastPage bool) bool {
13323//            pageNum++
13324//            fmt.Println(page)
13325//            return pageNum <= 3
13326//        })
13327//
13328func (c *IoT) ListAuditTasksPages(input *ListAuditTasksInput, fn func(*ListAuditTasksOutput, bool) bool) error {
13329	return c.ListAuditTasksPagesWithContext(aws.BackgroundContext(), input, fn)
13330}
13331
13332// ListAuditTasksPagesWithContext same as ListAuditTasksPages except
13333// it takes a Context and allows setting request options on the pages.
13334//
13335// The context must be non-nil and will be used for request cancellation. If
13336// the context is nil a panic will occur. In the future the SDK may create
13337// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13338// for more information on using Contexts.
13339func (c *IoT) ListAuditTasksPagesWithContext(ctx aws.Context, input *ListAuditTasksInput, fn func(*ListAuditTasksOutput, bool) bool, opts ...request.Option) error {
13340	p := request.Pagination{
13341		NewRequest: func() (*request.Request, error) {
13342			var inCpy *ListAuditTasksInput
13343			if input != nil {
13344				tmp := *input
13345				inCpy = &tmp
13346			}
13347			req, _ := c.ListAuditTasksRequest(inCpy)
13348			req.SetContext(ctx)
13349			req.ApplyOptions(opts...)
13350			return req, nil
13351		},
13352	}
13353
13354	for p.Next() {
13355		if !fn(p.Page().(*ListAuditTasksOutput), !p.HasNextPage()) {
13356			break
13357		}
13358	}
13359
13360	return p.Err()
13361}
13362
13363const opListAuthorizers = "ListAuthorizers"
13364
13365// ListAuthorizersRequest generates a "aws/request.Request" representing the
13366// client's request for the ListAuthorizers operation. The "output" return
13367// value will be populated with the request's response once the request completes
13368// successfully.
13369//
13370// Use "Send" method on the returned Request to send the API call to the service.
13371// the "output" return value is not valid until after Send returns without error.
13372//
13373// See ListAuthorizers for more information on using the ListAuthorizers
13374// API call, and error handling.
13375//
13376// This method is useful when you want to inject custom logic or configuration
13377// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13378//
13379//
13380//    // Example sending a request using the ListAuthorizersRequest method.
13381//    req, resp := client.ListAuthorizersRequest(params)
13382//
13383//    err := req.Send()
13384//    if err == nil { // resp is now filled
13385//        fmt.Println(resp)
13386//    }
13387func (c *IoT) ListAuthorizersRequest(input *ListAuthorizersInput) (req *request.Request, output *ListAuthorizersOutput) {
13388	op := &request.Operation{
13389		Name:       opListAuthorizers,
13390		HTTPMethod: "GET",
13391		HTTPPath:   "/authorizers/",
13392		Paginator: &request.Paginator{
13393			InputTokens:     []string{"marker"},
13394			OutputTokens:    []string{"nextMarker"},
13395			LimitToken:      "pageSize",
13396			TruncationToken: "",
13397		},
13398	}
13399
13400	if input == nil {
13401		input = &ListAuthorizersInput{}
13402	}
13403
13404	output = &ListAuthorizersOutput{}
13405	req = c.newRequest(op, input, output)
13406	return
13407}
13408
13409// ListAuthorizers API operation for AWS IoT.
13410//
13411// Lists the authorizers registered in your account.
13412//
13413// Requires permission to access the ListAuthorizers (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
13414// action.
13415//
13416// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13417// with awserr.Error's Code and Message methods to get detailed information about
13418// the error.
13419//
13420// See the AWS API reference guide for AWS IoT's
13421// API operation ListAuthorizers for usage and error information.
13422//
13423// Returned Error Types:
13424//   * InvalidRequestException
13425//   The request is not valid.
13426//
13427//   * ThrottlingException
13428//   The rate exceeds the limit.
13429//
13430//   * UnauthorizedException
13431//   You are not authorized to perform this operation.
13432//
13433//   * ServiceUnavailableException
13434//   The service is temporarily unavailable.
13435//
13436//   * InternalFailureException
13437//   An unexpected error has occurred.
13438//
13439func (c *IoT) ListAuthorizers(input *ListAuthorizersInput) (*ListAuthorizersOutput, error) {
13440	req, out := c.ListAuthorizersRequest(input)
13441	return out, req.Send()
13442}
13443
13444// ListAuthorizersWithContext is the same as ListAuthorizers with the addition of
13445// the ability to pass a context and additional request options.
13446//
13447// See ListAuthorizers for details on how to use this API operation.
13448//
13449// The context must be non-nil and will be used for request cancellation. If
13450// the context is nil a panic will occur. In the future the SDK may create
13451// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13452// for more information on using Contexts.
13453func (c *IoT) ListAuthorizersWithContext(ctx aws.Context, input *ListAuthorizersInput, opts ...request.Option) (*ListAuthorizersOutput, error) {
13454	req, out := c.ListAuthorizersRequest(input)
13455	req.SetContext(ctx)
13456	req.ApplyOptions(opts...)
13457	return out, req.Send()
13458}
13459
13460// ListAuthorizersPages iterates over the pages of a ListAuthorizers operation,
13461// calling the "fn" function with the response data for each page. To stop
13462// iterating, return false from the fn function.
13463//
13464// See ListAuthorizers method for more information on how to use this operation.
13465//
13466// Note: This operation can generate multiple requests to a service.
13467//
13468//    // Example iterating over at most 3 pages of a ListAuthorizers operation.
13469//    pageNum := 0
13470//    err := client.ListAuthorizersPages(params,
13471//        func(page *iot.ListAuthorizersOutput, lastPage bool) bool {
13472//            pageNum++
13473//            fmt.Println(page)
13474//            return pageNum <= 3
13475//        })
13476//
13477func (c *IoT) ListAuthorizersPages(input *ListAuthorizersInput, fn func(*ListAuthorizersOutput, bool) bool) error {
13478	return c.ListAuthorizersPagesWithContext(aws.BackgroundContext(), input, fn)
13479}
13480
13481// ListAuthorizersPagesWithContext same as ListAuthorizersPages except
13482// it takes a Context and allows setting request options on the pages.
13483//
13484// The context must be non-nil and will be used for request cancellation. If
13485// the context is nil a panic will occur. In the future the SDK may create
13486// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13487// for more information on using Contexts.
13488func (c *IoT) ListAuthorizersPagesWithContext(ctx aws.Context, input *ListAuthorizersInput, fn func(*ListAuthorizersOutput, bool) bool, opts ...request.Option) error {
13489	p := request.Pagination{
13490		NewRequest: func() (*request.Request, error) {
13491			var inCpy *ListAuthorizersInput
13492			if input != nil {
13493				tmp := *input
13494				inCpy = &tmp
13495			}
13496			req, _ := c.ListAuthorizersRequest(inCpy)
13497			req.SetContext(ctx)
13498			req.ApplyOptions(opts...)
13499			return req, nil
13500		},
13501	}
13502
13503	for p.Next() {
13504		if !fn(p.Page().(*ListAuthorizersOutput), !p.HasNextPage()) {
13505			break
13506		}
13507	}
13508
13509	return p.Err()
13510}
13511
13512const opListBillingGroups = "ListBillingGroups"
13513
13514// ListBillingGroupsRequest generates a "aws/request.Request" representing the
13515// client's request for the ListBillingGroups operation. The "output" return
13516// value will be populated with the request's response once the request completes
13517// successfully.
13518//
13519// Use "Send" method on the returned Request to send the API call to the service.
13520// the "output" return value is not valid until after Send returns without error.
13521//
13522// See ListBillingGroups for more information on using the ListBillingGroups
13523// API call, and error handling.
13524//
13525// This method is useful when you want to inject custom logic or configuration
13526// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13527//
13528//
13529//    // Example sending a request using the ListBillingGroupsRequest method.
13530//    req, resp := client.ListBillingGroupsRequest(params)
13531//
13532//    err := req.Send()
13533//    if err == nil { // resp is now filled
13534//        fmt.Println(resp)
13535//    }
13536func (c *IoT) ListBillingGroupsRequest(input *ListBillingGroupsInput) (req *request.Request, output *ListBillingGroupsOutput) {
13537	op := &request.Operation{
13538		Name:       opListBillingGroups,
13539		HTTPMethod: "GET",
13540		HTTPPath:   "/billing-groups",
13541		Paginator: &request.Paginator{
13542			InputTokens:     []string{"nextToken"},
13543			OutputTokens:    []string{"nextToken"},
13544			LimitToken:      "maxResults",
13545			TruncationToken: "",
13546		},
13547	}
13548
13549	if input == nil {
13550		input = &ListBillingGroupsInput{}
13551	}
13552
13553	output = &ListBillingGroupsOutput{}
13554	req = c.newRequest(op, input, output)
13555	return
13556}
13557
13558// ListBillingGroups API operation for AWS IoT.
13559//
13560// Lists the billing groups you have created.
13561//
13562// Requires permission to access the ListBillingGroups (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
13563// action.
13564//
13565// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13566// with awserr.Error's Code and Message methods to get detailed information about
13567// the error.
13568//
13569// See the AWS API reference guide for AWS IoT's
13570// API operation ListBillingGroups for usage and error information.
13571//
13572// Returned Error Types:
13573//   * InvalidRequestException
13574//   The request is not valid.
13575//
13576//   * InternalFailureException
13577//   An unexpected error has occurred.
13578//
13579//   * ResourceNotFoundException
13580//   The specified resource does not exist.
13581//
13582//   * ThrottlingException
13583//   The rate exceeds the limit.
13584//
13585func (c *IoT) ListBillingGroups(input *ListBillingGroupsInput) (*ListBillingGroupsOutput, error) {
13586	req, out := c.ListBillingGroupsRequest(input)
13587	return out, req.Send()
13588}
13589
13590// ListBillingGroupsWithContext is the same as ListBillingGroups with the addition of
13591// the ability to pass a context and additional request options.
13592//
13593// See ListBillingGroups for details on how to use this API operation.
13594//
13595// The context must be non-nil and will be used for request cancellation. If
13596// the context is nil a panic will occur. In the future the SDK may create
13597// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13598// for more information on using Contexts.
13599func (c *IoT) ListBillingGroupsWithContext(ctx aws.Context, input *ListBillingGroupsInput, opts ...request.Option) (*ListBillingGroupsOutput, error) {
13600	req, out := c.ListBillingGroupsRequest(input)
13601	req.SetContext(ctx)
13602	req.ApplyOptions(opts...)
13603	return out, req.Send()
13604}
13605
13606// ListBillingGroupsPages iterates over the pages of a ListBillingGroups operation,
13607// calling the "fn" function with the response data for each page. To stop
13608// iterating, return false from the fn function.
13609//
13610// See ListBillingGroups method for more information on how to use this operation.
13611//
13612// Note: This operation can generate multiple requests to a service.
13613//
13614//    // Example iterating over at most 3 pages of a ListBillingGroups operation.
13615//    pageNum := 0
13616//    err := client.ListBillingGroupsPages(params,
13617//        func(page *iot.ListBillingGroupsOutput, lastPage bool) bool {
13618//            pageNum++
13619//            fmt.Println(page)
13620//            return pageNum <= 3
13621//        })
13622//
13623func (c *IoT) ListBillingGroupsPages(input *ListBillingGroupsInput, fn func(*ListBillingGroupsOutput, bool) bool) error {
13624	return c.ListBillingGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
13625}
13626
13627// ListBillingGroupsPagesWithContext same as ListBillingGroupsPages except
13628// it takes a Context and allows setting request options on the pages.
13629//
13630// The context must be non-nil and will be used for request cancellation. If
13631// the context is nil a panic will occur. In the future the SDK may create
13632// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13633// for more information on using Contexts.
13634func (c *IoT) ListBillingGroupsPagesWithContext(ctx aws.Context, input *ListBillingGroupsInput, fn func(*ListBillingGroupsOutput, bool) bool, opts ...request.Option) error {
13635	p := request.Pagination{
13636		NewRequest: func() (*request.Request, error) {
13637			var inCpy *ListBillingGroupsInput
13638			if input != nil {
13639				tmp := *input
13640				inCpy = &tmp
13641			}
13642			req, _ := c.ListBillingGroupsRequest(inCpy)
13643			req.SetContext(ctx)
13644			req.ApplyOptions(opts...)
13645			return req, nil
13646		},
13647	}
13648
13649	for p.Next() {
13650		if !fn(p.Page().(*ListBillingGroupsOutput), !p.HasNextPage()) {
13651			break
13652		}
13653	}
13654
13655	return p.Err()
13656}
13657
13658const opListCACertificates = "ListCACertificates"
13659
13660// ListCACertificatesRequest generates a "aws/request.Request" representing the
13661// client's request for the ListCACertificates operation. The "output" return
13662// value will be populated with the request's response once the request completes
13663// successfully.
13664//
13665// Use "Send" method on the returned Request to send the API call to the service.
13666// the "output" return value is not valid until after Send returns without error.
13667//
13668// See ListCACertificates for more information on using the ListCACertificates
13669// API call, and error handling.
13670//
13671// This method is useful when you want to inject custom logic or configuration
13672// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13673//
13674//
13675//    // Example sending a request using the ListCACertificatesRequest method.
13676//    req, resp := client.ListCACertificatesRequest(params)
13677//
13678//    err := req.Send()
13679//    if err == nil { // resp is now filled
13680//        fmt.Println(resp)
13681//    }
13682func (c *IoT) ListCACertificatesRequest(input *ListCACertificatesInput) (req *request.Request, output *ListCACertificatesOutput) {
13683	op := &request.Operation{
13684		Name:       opListCACertificates,
13685		HTTPMethod: "GET",
13686		HTTPPath:   "/cacertificates",
13687		Paginator: &request.Paginator{
13688			InputTokens:     []string{"marker"},
13689			OutputTokens:    []string{"nextMarker"},
13690			LimitToken:      "pageSize",
13691			TruncationToken: "",
13692		},
13693	}
13694
13695	if input == nil {
13696		input = &ListCACertificatesInput{}
13697	}
13698
13699	output = &ListCACertificatesOutput{}
13700	req = c.newRequest(op, input, output)
13701	return
13702}
13703
13704// ListCACertificates API operation for AWS IoT.
13705//
13706// Lists the CA certificates registered for your Amazon Web Services account.
13707//
13708// The results are paginated with a default page size of 25. You can use the
13709// returned marker to retrieve additional results.
13710//
13711// Requires permission to access the ListCACertificates (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
13712// action.
13713//
13714// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13715// with awserr.Error's Code and Message methods to get detailed information about
13716// the error.
13717//
13718// See the AWS API reference guide for AWS IoT's
13719// API operation ListCACertificates for usage and error information.
13720//
13721// Returned Error Types:
13722//   * InvalidRequestException
13723//   The request is not valid.
13724//
13725//   * ThrottlingException
13726//   The rate exceeds the limit.
13727//
13728//   * UnauthorizedException
13729//   You are not authorized to perform this operation.
13730//
13731//   * ServiceUnavailableException
13732//   The service is temporarily unavailable.
13733//
13734//   * InternalFailureException
13735//   An unexpected error has occurred.
13736//
13737func (c *IoT) ListCACertificates(input *ListCACertificatesInput) (*ListCACertificatesOutput, error) {
13738	req, out := c.ListCACertificatesRequest(input)
13739	return out, req.Send()
13740}
13741
13742// ListCACertificatesWithContext is the same as ListCACertificates with the addition of
13743// the ability to pass a context and additional request options.
13744//
13745// See ListCACertificates for details on how to use this API operation.
13746//
13747// The context must be non-nil and will be used for request cancellation. If
13748// the context is nil a panic will occur. In the future the SDK may create
13749// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13750// for more information on using Contexts.
13751func (c *IoT) ListCACertificatesWithContext(ctx aws.Context, input *ListCACertificatesInput, opts ...request.Option) (*ListCACertificatesOutput, error) {
13752	req, out := c.ListCACertificatesRequest(input)
13753	req.SetContext(ctx)
13754	req.ApplyOptions(opts...)
13755	return out, req.Send()
13756}
13757
13758// ListCACertificatesPages iterates over the pages of a ListCACertificates operation,
13759// calling the "fn" function with the response data for each page. To stop
13760// iterating, return false from the fn function.
13761//
13762// See ListCACertificates method for more information on how to use this operation.
13763//
13764// Note: This operation can generate multiple requests to a service.
13765//
13766//    // Example iterating over at most 3 pages of a ListCACertificates operation.
13767//    pageNum := 0
13768//    err := client.ListCACertificatesPages(params,
13769//        func(page *iot.ListCACertificatesOutput, lastPage bool) bool {
13770//            pageNum++
13771//            fmt.Println(page)
13772//            return pageNum <= 3
13773//        })
13774//
13775func (c *IoT) ListCACertificatesPages(input *ListCACertificatesInput, fn func(*ListCACertificatesOutput, bool) bool) error {
13776	return c.ListCACertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
13777}
13778
13779// ListCACertificatesPagesWithContext same as ListCACertificatesPages except
13780// it takes a Context and allows setting request options on the pages.
13781//
13782// The context must be non-nil and will be used for request cancellation. If
13783// the context is nil a panic will occur. In the future the SDK may create
13784// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13785// for more information on using Contexts.
13786func (c *IoT) ListCACertificatesPagesWithContext(ctx aws.Context, input *ListCACertificatesInput, fn func(*ListCACertificatesOutput, bool) bool, opts ...request.Option) error {
13787	p := request.Pagination{
13788		NewRequest: func() (*request.Request, error) {
13789			var inCpy *ListCACertificatesInput
13790			if input != nil {
13791				tmp := *input
13792				inCpy = &tmp
13793			}
13794			req, _ := c.ListCACertificatesRequest(inCpy)
13795			req.SetContext(ctx)
13796			req.ApplyOptions(opts...)
13797			return req, nil
13798		},
13799	}
13800
13801	for p.Next() {
13802		if !fn(p.Page().(*ListCACertificatesOutput), !p.HasNextPage()) {
13803			break
13804		}
13805	}
13806
13807	return p.Err()
13808}
13809
13810const opListCertificates = "ListCertificates"
13811
13812// ListCertificatesRequest generates a "aws/request.Request" representing the
13813// client's request for the ListCertificates operation. The "output" return
13814// value will be populated with the request's response once the request completes
13815// successfully.
13816//
13817// Use "Send" method on the returned Request to send the API call to the service.
13818// the "output" return value is not valid until after Send returns without error.
13819//
13820// See ListCertificates for more information on using the ListCertificates
13821// API call, and error handling.
13822//
13823// This method is useful when you want to inject custom logic or configuration
13824// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13825//
13826//
13827//    // Example sending a request using the ListCertificatesRequest method.
13828//    req, resp := client.ListCertificatesRequest(params)
13829//
13830//    err := req.Send()
13831//    if err == nil { // resp is now filled
13832//        fmt.Println(resp)
13833//    }
13834func (c *IoT) ListCertificatesRequest(input *ListCertificatesInput) (req *request.Request, output *ListCertificatesOutput) {
13835	op := &request.Operation{
13836		Name:       opListCertificates,
13837		HTTPMethod: "GET",
13838		HTTPPath:   "/certificates",
13839		Paginator: &request.Paginator{
13840			InputTokens:     []string{"marker"},
13841			OutputTokens:    []string{"nextMarker"},
13842			LimitToken:      "pageSize",
13843			TruncationToken: "",
13844		},
13845	}
13846
13847	if input == nil {
13848		input = &ListCertificatesInput{}
13849	}
13850
13851	output = &ListCertificatesOutput{}
13852	req = c.newRequest(op, input, output)
13853	return
13854}
13855
13856// ListCertificates API operation for AWS IoT.
13857//
13858// Lists the certificates registered in your Amazon Web Services account.
13859//
13860// The results are paginated with a default page size of 25. You can use the
13861// returned marker to retrieve additional results.
13862//
13863// Requires permission to access the ListCertificates (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
13864// action.
13865//
13866// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
13867// with awserr.Error's Code and Message methods to get detailed information about
13868// the error.
13869//
13870// See the AWS API reference guide for AWS IoT's
13871// API operation ListCertificates for usage and error information.
13872//
13873// Returned Error Types:
13874//   * InvalidRequestException
13875//   The request is not valid.
13876//
13877//   * ThrottlingException
13878//   The rate exceeds the limit.
13879//
13880//   * UnauthorizedException
13881//   You are not authorized to perform this operation.
13882//
13883//   * ServiceUnavailableException
13884//   The service is temporarily unavailable.
13885//
13886//   * InternalFailureException
13887//   An unexpected error has occurred.
13888//
13889func (c *IoT) ListCertificates(input *ListCertificatesInput) (*ListCertificatesOutput, error) {
13890	req, out := c.ListCertificatesRequest(input)
13891	return out, req.Send()
13892}
13893
13894// ListCertificatesWithContext is the same as ListCertificates with the addition of
13895// the ability to pass a context and additional request options.
13896//
13897// See ListCertificates for details on how to use this API operation.
13898//
13899// The context must be non-nil and will be used for request cancellation. If
13900// the context is nil a panic will occur. In the future the SDK may create
13901// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13902// for more information on using Contexts.
13903func (c *IoT) ListCertificatesWithContext(ctx aws.Context, input *ListCertificatesInput, opts ...request.Option) (*ListCertificatesOutput, error) {
13904	req, out := c.ListCertificatesRequest(input)
13905	req.SetContext(ctx)
13906	req.ApplyOptions(opts...)
13907	return out, req.Send()
13908}
13909
13910// ListCertificatesPages iterates over the pages of a ListCertificates operation,
13911// calling the "fn" function with the response data for each page. To stop
13912// iterating, return false from the fn function.
13913//
13914// See ListCertificates method for more information on how to use this operation.
13915//
13916// Note: This operation can generate multiple requests to a service.
13917//
13918//    // Example iterating over at most 3 pages of a ListCertificates operation.
13919//    pageNum := 0
13920//    err := client.ListCertificatesPages(params,
13921//        func(page *iot.ListCertificatesOutput, lastPage bool) bool {
13922//            pageNum++
13923//            fmt.Println(page)
13924//            return pageNum <= 3
13925//        })
13926//
13927func (c *IoT) ListCertificatesPages(input *ListCertificatesInput, fn func(*ListCertificatesOutput, bool) bool) error {
13928	return c.ListCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
13929}
13930
13931// ListCertificatesPagesWithContext same as ListCertificatesPages except
13932// it takes a Context and allows setting request options on the pages.
13933//
13934// The context must be non-nil and will be used for request cancellation. If
13935// the context is nil a panic will occur. In the future the SDK may create
13936// sub-contexts for http.Requests. See https://golang.org/pkg/context/
13937// for more information on using Contexts.
13938func (c *IoT) ListCertificatesPagesWithContext(ctx aws.Context, input *ListCertificatesInput, fn func(*ListCertificatesOutput, bool) bool, opts ...request.Option) error {
13939	p := request.Pagination{
13940		NewRequest: func() (*request.Request, error) {
13941			var inCpy *ListCertificatesInput
13942			if input != nil {
13943				tmp := *input
13944				inCpy = &tmp
13945			}
13946			req, _ := c.ListCertificatesRequest(inCpy)
13947			req.SetContext(ctx)
13948			req.ApplyOptions(opts...)
13949			return req, nil
13950		},
13951	}
13952
13953	for p.Next() {
13954		if !fn(p.Page().(*ListCertificatesOutput), !p.HasNextPage()) {
13955			break
13956		}
13957	}
13958
13959	return p.Err()
13960}
13961
13962const opListCertificatesByCA = "ListCertificatesByCA"
13963
13964// ListCertificatesByCARequest generates a "aws/request.Request" representing the
13965// client's request for the ListCertificatesByCA operation. The "output" return
13966// value will be populated with the request's response once the request completes
13967// successfully.
13968//
13969// Use "Send" method on the returned Request to send the API call to the service.
13970// the "output" return value is not valid until after Send returns without error.
13971//
13972// See ListCertificatesByCA for more information on using the ListCertificatesByCA
13973// API call, and error handling.
13974//
13975// This method is useful when you want to inject custom logic or configuration
13976// into the SDK's request lifecycle. Such as custom headers, or retry logic.
13977//
13978//
13979//    // Example sending a request using the ListCertificatesByCARequest method.
13980//    req, resp := client.ListCertificatesByCARequest(params)
13981//
13982//    err := req.Send()
13983//    if err == nil { // resp is now filled
13984//        fmt.Println(resp)
13985//    }
13986func (c *IoT) ListCertificatesByCARequest(input *ListCertificatesByCAInput) (req *request.Request, output *ListCertificatesByCAOutput) {
13987	op := &request.Operation{
13988		Name:       opListCertificatesByCA,
13989		HTTPMethod: "GET",
13990		HTTPPath:   "/certificates-by-ca/{caCertificateId}",
13991		Paginator: &request.Paginator{
13992			InputTokens:     []string{"marker"},
13993			OutputTokens:    []string{"nextMarker"},
13994			LimitToken:      "pageSize",
13995			TruncationToken: "",
13996		},
13997	}
13998
13999	if input == nil {
14000		input = &ListCertificatesByCAInput{}
14001	}
14002
14003	output = &ListCertificatesByCAOutput{}
14004	req = c.newRequest(op, input, output)
14005	return
14006}
14007
14008// ListCertificatesByCA API operation for AWS IoT.
14009//
14010// List the device certificates signed by the specified CA certificate.
14011//
14012// Requires permission to access the ListCertificatesByCA (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
14013// action.
14014//
14015// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14016// with awserr.Error's Code and Message methods to get detailed information about
14017// the error.
14018//
14019// See the AWS API reference guide for AWS IoT's
14020// API operation ListCertificatesByCA for usage and error information.
14021//
14022// Returned Error Types:
14023//   * InvalidRequestException
14024//   The request is not valid.
14025//
14026//   * ThrottlingException
14027//   The rate exceeds the limit.
14028//
14029//   * UnauthorizedException
14030//   You are not authorized to perform this operation.
14031//
14032//   * ServiceUnavailableException
14033//   The service is temporarily unavailable.
14034//
14035//   * InternalFailureException
14036//   An unexpected error has occurred.
14037//
14038func (c *IoT) ListCertificatesByCA(input *ListCertificatesByCAInput) (*ListCertificatesByCAOutput, error) {
14039	req, out := c.ListCertificatesByCARequest(input)
14040	return out, req.Send()
14041}
14042
14043// ListCertificatesByCAWithContext is the same as ListCertificatesByCA with the addition of
14044// the ability to pass a context and additional request options.
14045//
14046// See ListCertificatesByCA for details on how to use this API operation.
14047//
14048// The context must be non-nil and will be used for request cancellation. If
14049// the context is nil a panic will occur. In the future the SDK may create
14050// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14051// for more information on using Contexts.
14052func (c *IoT) ListCertificatesByCAWithContext(ctx aws.Context, input *ListCertificatesByCAInput, opts ...request.Option) (*ListCertificatesByCAOutput, error) {
14053	req, out := c.ListCertificatesByCARequest(input)
14054	req.SetContext(ctx)
14055	req.ApplyOptions(opts...)
14056	return out, req.Send()
14057}
14058
14059// ListCertificatesByCAPages iterates over the pages of a ListCertificatesByCA operation,
14060// calling the "fn" function with the response data for each page. To stop
14061// iterating, return false from the fn function.
14062//
14063// See ListCertificatesByCA method for more information on how to use this operation.
14064//
14065// Note: This operation can generate multiple requests to a service.
14066//
14067//    // Example iterating over at most 3 pages of a ListCertificatesByCA operation.
14068//    pageNum := 0
14069//    err := client.ListCertificatesByCAPages(params,
14070//        func(page *iot.ListCertificatesByCAOutput, lastPage bool) bool {
14071//            pageNum++
14072//            fmt.Println(page)
14073//            return pageNum <= 3
14074//        })
14075//
14076func (c *IoT) ListCertificatesByCAPages(input *ListCertificatesByCAInput, fn func(*ListCertificatesByCAOutput, bool) bool) error {
14077	return c.ListCertificatesByCAPagesWithContext(aws.BackgroundContext(), input, fn)
14078}
14079
14080// ListCertificatesByCAPagesWithContext same as ListCertificatesByCAPages except
14081// it takes a Context and allows setting request options on the pages.
14082//
14083// The context must be non-nil and will be used for request cancellation. If
14084// the context is nil a panic will occur. In the future the SDK may create
14085// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14086// for more information on using Contexts.
14087func (c *IoT) ListCertificatesByCAPagesWithContext(ctx aws.Context, input *ListCertificatesByCAInput, fn func(*ListCertificatesByCAOutput, bool) bool, opts ...request.Option) error {
14088	p := request.Pagination{
14089		NewRequest: func() (*request.Request, error) {
14090			var inCpy *ListCertificatesByCAInput
14091			if input != nil {
14092				tmp := *input
14093				inCpy = &tmp
14094			}
14095			req, _ := c.ListCertificatesByCARequest(inCpy)
14096			req.SetContext(ctx)
14097			req.ApplyOptions(opts...)
14098			return req, nil
14099		},
14100	}
14101
14102	for p.Next() {
14103		if !fn(p.Page().(*ListCertificatesByCAOutput), !p.HasNextPage()) {
14104			break
14105		}
14106	}
14107
14108	return p.Err()
14109}
14110
14111const opListCustomMetrics = "ListCustomMetrics"
14112
14113// ListCustomMetricsRequest generates a "aws/request.Request" representing the
14114// client's request for the ListCustomMetrics operation. The "output" return
14115// value will be populated with the request's response once the request completes
14116// successfully.
14117//
14118// Use "Send" method on the returned Request to send the API call to the service.
14119// the "output" return value is not valid until after Send returns without error.
14120//
14121// See ListCustomMetrics for more information on using the ListCustomMetrics
14122// API call, and error handling.
14123//
14124// This method is useful when you want to inject custom logic or configuration
14125// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14126//
14127//
14128//    // Example sending a request using the ListCustomMetricsRequest method.
14129//    req, resp := client.ListCustomMetricsRequest(params)
14130//
14131//    err := req.Send()
14132//    if err == nil { // resp is now filled
14133//        fmt.Println(resp)
14134//    }
14135func (c *IoT) ListCustomMetricsRequest(input *ListCustomMetricsInput) (req *request.Request, output *ListCustomMetricsOutput) {
14136	op := &request.Operation{
14137		Name:       opListCustomMetrics,
14138		HTTPMethod: "GET",
14139		HTTPPath:   "/custom-metrics",
14140		Paginator: &request.Paginator{
14141			InputTokens:     []string{"nextToken"},
14142			OutputTokens:    []string{"nextToken"},
14143			LimitToken:      "maxResults",
14144			TruncationToken: "",
14145		},
14146	}
14147
14148	if input == nil {
14149		input = &ListCustomMetricsInput{}
14150	}
14151
14152	output = &ListCustomMetricsOutput{}
14153	req = c.newRequest(op, input, output)
14154	return
14155}
14156
14157// ListCustomMetrics API operation for AWS IoT.
14158//
14159// Lists your Device Defender detect custom metrics.
14160//
14161// Requires permission to access the ListCustomMetrics (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
14162// action.
14163//
14164// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14165// with awserr.Error's Code and Message methods to get detailed information about
14166// the error.
14167//
14168// See the AWS API reference guide for AWS IoT's
14169// API operation ListCustomMetrics for usage and error information.
14170//
14171// Returned Error Types:
14172//   * InvalidRequestException
14173//   The request is not valid.
14174//
14175//   * ThrottlingException
14176//   The rate exceeds the limit.
14177//
14178//   * InternalFailureException
14179//   An unexpected error has occurred.
14180//
14181func (c *IoT) ListCustomMetrics(input *ListCustomMetricsInput) (*ListCustomMetricsOutput, error) {
14182	req, out := c.ListCustomMetricsRequest(input)
14183	return out, req.Send()
14184}
14185
14186// ListCustomMetricsWithContext is the same as ListCustomMetrics with the addition of
14187// the ability to pass a context and additional request options.
14188//
14189// See ListCustomMetrics for details on how to use this API operation.
14190//
14191// The context must be non-nil and will be used for request cancellation. If
14192// the context is nil a panic will occur. In the future the SDK may create
14193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14194// for more information on using Contexts.
14195func (c *IoT) ListCustomMetricsWithContext(ctx aws.Context, input *ListCustomMetricsInput, opts ...request.Option) (*ListCustomMetricsOutput, error) {
14196	req, out := c.ListCustomMetricsRequest(input)
14197	req.SetContext(ctx)
14198	req.ApplyOptions(opts...)
14199	return out, req.Send()
14200}
14201
14202// ListCustomMetricsPages iterates over the pages of a ListCustomMetrics operation,
14203// calling the "fn" function with the response data for each page. To stop
14204// iterating, return false from the fn function.
14205//
14206// See ListCustomMetrics method for more information on how to use this operation.
14207//
14208// Note: This operation can generate multiple requests to a service.
14209//
14210//    // Example iterating over at most 3 pages of a ListCustomMetrics operation.
14211//    pageNum := 0
14212//    err := client.ListCustomMetricsPages(params,
14213//        func(page *iot.ListCustomMetricsOutput, lastPage bool) bool {
14214//            pageNum++
14215//            fmt.Println(page)
14216//            return pageNum <= 3
14217//        })
14218//
14219func (c *IoT) ListCustomMetricsPages(input *ListCustomMetricsInput, fn func(*ListCustomMetricsOutput, bool) bool) error {
14220	return c.ListCustomMetricsPagesWithContext(aws.BackgroundContext(), input, fn)
14221}
14222
14223// ListCustomMetricsPagesWithContext same as ListCustomMetricsPages except
14224// it takes a Context and allows setting request options on the pages.
14225//
14226// The context must be non-nil and will be used for request cancellation. If
14227// the context is nil a panic will occur. In the future the SDK may create
14228// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14229// for more information on using Contexts.
14230func (c *IoT) ListCustomMetricsPagesWithContext(ctx aws.Context, input *ListCustomMetricsInput, fn func(*ListCustomMetricsOutput, bool) bool, opts ...request.Option) error {
14231	p := request.Pagination{
14232		NewRequest: func() (*request.Request, error) {
14233			var inCpy *ListCustomMetricsInput
14234			if input != nil {
14235				tmp := *input
14236				inCpy = &tmp
14237			}
14238			req, _ := c.ListCustomMetricsRequest(inCpy)
14239			req.SetContext(ctx)
14240			req.ApplyOptions(opts...)
14241			return req, nil
14242		},
14243	}
14244
14245	for p.Next() {
14246		if !fn(p.Page().(*ListCustomMetricsOutput), !p.HasNextPage()) {
14247			break
14248		}
14249	}
14250
14251	return p.Err()
14252}
14253
14254const opListDetectMitigationActionsExecutions = "ListDetectMitigationActionsExecutions"
14255
14256// ListDetectMitigationActionsExecutionsRequest generates a "aws/request.Request" representing the
14257// client's request for the ListDetectMitigationActionsExecutions operation. The "output" return
14258// value will be populated with the request's response once the request completes
14259// successfully.
14260//
14261// Use "Send" method on the returned Request to send the API call to the service.
14262// the "output" return value is not valid until after Send returns without error.
14263//
14264// See ListDetectMitigationActionsExecutions for more information on using the ListDetectMitigationActionsExecutions
14265// API call, and error handling.
14266//
14267// This method is useful when you want to inject custom logic or configuration
14268// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14269//
14270//
14271//    // Example sending a request using the ListDetectMitigationActionsExecutionsRequest method.
14272//    req, resp := client.ListDetectMitigationActionsExecutionsRequest(params)
14273//
14274//    err := req.Send()
14275//    if err == nil { // resp is now filled
14276//        fmt.Println(resp)
14277//    }
14278func (c *IoT) ListDetectMitigationActionsExecutionsRequest(input *ListDetectMitigationActionsExecutionsInput) (req *request.Request, output *ListDetectMitigationActionsExecutionsOutput) {
14279	op := &request.Operation{
14280		Name:       opListDetectMitigationActionsExecutions,
14281		HTTPMethod: "GET",
14282		HTTPPath:   "/detect/mitigationactions/executions",
14283		Paginator: &request.Paginator{
14284			InputTokens:     []string{"nextToken"},
14285			OutputTokens:    []string{"nextToken"},
14286			LimitToken:      "maxResults",
14287			TruncationToken: "",
14288		},
14289	}
14290
14291	if input == nil {
14292		input = &ListDetectMitigationActionsExecutionsInput{}
14293	}
14294
14295	output = &ListDetectMitigationActionsExecutionsOutput{}
14296	req = c.newRequest(op, input, output)
14297	return
14298}
14299
14300// ListDetectMitigationActionsExecutions API operation for AWS IoT.
14301//
14302// Lists mitigation actions executions for a Device Defender ML Detect Security
14303// Profile.
14304//
14305// Requires permission to access the ListDetectMitigationActionsExecutions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
14306// action.
14307//
14308// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14309// with awserr.Error's Code and Message methods to get detailed information about
14310// the error.
14311//
14312// See the AWS API reference guide for AWS IoT's
14313// API operation ListDetectMitigationActionsExecutions for usage and error information.
14314//
14315// Returned Error Types:
14316//   * InvalidRequestException
14317//   The request is not valid.
14318//
14319//   * ThrottlingException
14320//   The rate exceeds the limit.
14321//
14322//   * InternalFailureException
14323//   An unexpected error has occurred.
14324//
14325func (c *IoT) ListDetectMitigationActionsExecutions(input *ListDetectMitigationActionsExecutionsInput) (*ListDetectMitigationActionsExecutionsOutput, error) {
14326	req, out := c.ListDetectMitigationActionsExecutionsRequest(input)
14327	return out, req.Send()
14328}
14329
14330// ListDetectMitigationActionsExecutionsWithContext is the same as ListDetectMitigationActionsExecutions with the addition of
14331// the ability to pass a context and additional request options.
14332//
14333// See ListDetectMitigationActionsExecutions for details on how to use this API operation.
14334//
14335// The context must be non-nil and will be used for request cancellation. If
14336// the context is nil a panic will occur. In the future the SDK may create
14337// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14338// for more information on using Contexts.
14339func (c *IoT) ListDetectMitigationActionsExecutionsWithContext(ctx aws.Context, input *ListDetectMitigationActionsExecutionsInput, opts ...request.Option) (*ListDetectMitigationActionsExecutionsOutput, error) {
14340	req, out := c.ListDetectMitigationActionsExecutionsRequest(input)
14341	req.SetContext(ctx)
14342	req.ApplyOptions(opts...)
14343	return out, req.Send()
14344}
14345
14346// ListDetectMitigationActionsExecutionsPages iterates over the pages of a ListDetectMitigationActionsExecutions operation,
14347// calling the "fn" function with the response data for each page. To stop
14348// iterating, return false from the fn function.
14349//
14350// See ListDetectMitigationActionsExecutions method for more information on how to use this operation.
14351//
14352// Note: This operation can generate multiple requests to a service.
14353//
14354//    // Example iterating over at most 3 pages of a ListDetectMitigationActionsExecutions operation.
14355//    pageNum := 0
14356//    err := client.ListDetectMitigationActionsExecutionsPages(params,
14357//        func(page *iot.ListDetectMitigationActionsExecutionsOutput, lastPage bool) bool {
14358//            pageNum++
14359//            fmt.Println(page)
14360//            return pageNum <= 3
14361//        })
14362//
14363func (c *IoT) ListDetectMitigationActionsExecutionsPages(input *ListDetectMitigationActionsExecutionsInput, fn func(*ListDetectMitigationActionsExecutionsOutput, bool) bool) error {
14364	return c.ListDetectMitigationActionsExecutionsPagesWithContext(aws.BackgroundContext(), input, fn)
14365}
14366
14367// ListDetectMitigationActionsExecutionsPagesWithContext same as ListDetectMitigationActionsExecutionsPages except
14368// it takes a Context and allows setting request options on the pages.
14369//
14370// The context must be non-nil and will be used for request cancellation. If
14371// the context is nil a panic will occur. In the future the SDK may create
14372// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14373// for more information on using Contexts.
14374func (c *IoT) ListDetectMitigationActionsExecutionsPagesWithContext(ctx aws.Context, input *ListDetectMitigationActionsExecutionsInput, fn func(*ListDetectMitigationActionsExecutionsOutput, bool) bool, opts ...request.Option) error {
14375	p := request.Pagination{
14376		NewRequest: func() (*request.Request, error) {
14377			var inCpy *ListDetectMitigationActionsExecutionsInput
14378			if input != nil {
14379				tmp := *input
14380				inCpy = &tmp
14381			}
14382			req, _ := c.ListDetectMitigationActionsExecutionsRequest(inCpy)
14383			req.SetContext(ctx)
14384			req.ApplyOptions(opts...)
14385			return req, nil
14386		},
14387	}
14388
14389	for p.Next() {
14390		if !fn(p.Page().(*ListDetectMitigationActionsExecutionsOutput), !p.HasNextPage()) {
14391			break
14392		}
14393	}
14394
14395	return p.Err()
14396}
14397
14398const opListDetectMitigationActionsTasks = "ListDetectMitigationActionsTasks"
14399
14400// ListDetectMitigationActionsTasksRequest generates a "aws/request.Request" representing the
14401// client's request for the ListDetectMitigationActionsTasks operation. The "output" return
14402// value will be populated with the request's response once the request completes
14403// successfully.
14404//
14405// Use "Send" method on the returned Request to send the API call to the service.
14406// the "output" return value is not valid until after Send returns without error.
14407//
14408// See ListDetectMitigationActionsTasks for more information on using the ListDetectMitigationActionsTasks
14409// API call, and error handling.
14410//
14411// This method is useful when you want to inject custom logic or configuration
14412// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14413//
14414//
14415//    // Example sending a request using the ListDetectMitigationActionsTasksRequest method.
14416//    req, resp := client.ListDetectMitigationActionsTasksRequest(params)
14417//
14418//    err := req.Send()
14419//    if err == nil { // resp is now filled
14420//        fmt.Println(resp)
14421//    }
14422func (c *IoT) ListDetectMitigationActionsTasksRequest(input *ListDetectMitigationActionsTasksInput) (req *request.Request, output *ListDetectMitigationActionsTasksOutput) {
14423	op := &request.Operation{
14424		Name:       opListDetectMitigationActionsTasks,
14425		HTTPMethod: "GET",
14426		HTTPPath:   "/detect/mitigationactions/tasks",
14427		Paginator: &request.Paginator{
14428			InputTokens:     []string{"nextToken"},
14429			OutputTokens:    []string{"nextToken"},
14430			LimitToken:      "maxResults",
14431			TruncationToken: "",
14432		},
14433	}
14434
14435	if input == nil {
14436		input = &ListDetectMitigationActionsTasksInput{}
14437	}
14438
14439	output = &ListDetectMitigationActionsTasksOutput{}
14440	req = c.newRequest(op, input, output)
14441	return
14442}
14443
14444// ListDetectMitigationActionsTasks API operation for AWS IoT.
14445//
14446// List of Device Defender ML Detect mitigation actions tasks.
14447//
14448// Requires permission to access the ListDetectMitigationActionsTasks (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
14449// action.
14450//
14451// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14452// with awserr.Error's Code and Message methods to get detailed information about
14453// the error.
14454//
14455// See the AWS API reference guide for AWS IoT's
14456// API operation ListDetectMitigationActionsTasks for usage and error information.
14457//
14458// Returned Error Types:
14459//   * InvalidRequestException
14460//   The request is not valid.
14461//
14462//   * ThrottlingException
14463//   The rate exceeds the limit.
14464//
14465//   * InternalFailureException
14466//   An unexpected error has occurred.
14467//
14468func (c *IoT) ListDetectMitigationActionsTasks(input *ListDetectMitigationActionsTasksInput) (*ListDetectMitigationActionsTasksOutput, error) {
14469	req, out := c.ListDetectMitigationActionsTasksRequest(input)
14470	return out, req.Send()
14471}
14472
14473// ListDetectMitigationActionsTasksWithContext is the same as ListDetectMitigationActionsTasks with the addition of
14474// the ability to pass a context and additional request options.
14475//
14476// See ListDetectMitigationActionsTasks for details on how to use this API operation.
14477//
14478// The context must be non-nil and will be used for request cancellation. If
14479// the context is nil a panic will occur. In the future the SDK may create
14480// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14481// for more information on using Contexts.
14482func (c *IoT) ListDetectMitigationActionsTasksWithContext(ctx aws.Context, input *ListDetectMitigationActionsTasksInput, opts ...request.Option) (*ListDetectMitigationActionsTasksOutput, error) {
14483	req, out := c.ListDetectMitigationActionsTasksRequest(input)
14484	req.SetContext(ctx)
14485	req.ApplyOptions(opts...)
14486	return out, req.Send()
14487}
14488
14489// ListDetectMitigationActionsTasksPages iterates over the pages of a ListDetectMitigationActionsTasks operation,
14490// calling the "fn" function with the response data for each page. To stop
14491// iterating, return false from the fn function.
14492//
14493// See ListDetectMitigationActionsTasks method for more information on how to use this operation.
14494//
14495// Note: This operation can generate multiple requests to a service.
14496//
14497//    // Example iterating over at most 3 pages of a ListDetectMitigationActionsTasks operation.
14498//    pageNum := 0
14499//    err := client.ListDetectMitigationActionsTasksPages(params,
14500//        func(page *iot.ListDetectMitigationActionsTasksOutput, lastPage bool) bool {
14501//            pageNum++
14502//            fmt.Println(page)
14503//            return pageNum <= 3
14504//        })
14505//
14506func (c *IoT) ListDetectMitigationActionsTasksPages(input *ListDetectMitigationActionsTasksInput, fn func(*ListDetectMitigationActionsTasksOutput, bool) bool) error {
14507	return c.ListDetectMitigationActionsTasksPagesWithContext(aws.BackgroundContext(), input, fn)
14508}
14509
14510// ListDetectMitigationActionsTasksPagesWithContext same as ListDetectMitigationActionsTasksPages except
14511// it takes a Context and allows setting request options on the pages.
14512//
14513// The context must be non-nil and will be used for request cancellation. If
14514// the context is nil a panic will occur. In the future the SDK may create
14515// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14516// for more information on using Contexts.
14517func (c *IoT) ListDetectMitigationActionsTasksPagesWithContext(ctx aws.Context, input *ListDetectMitigationActionsTasksInput, fn func(*ListDetectMitigationActionsTasksOutput, bool) bool, opts ...request.Option) error {
14518	p := request.Pagination{
14519		NewRequest: func() (*request.Request, error) {
14520			var inCpy *ListDetectMitigationActionsTasksInput
14521			if input != nil {
14522				tmp := *input
14523				inCpy = &tmp
14524			}
14525			req, _ := c.ListDetectMitigationActionsTasksRequest(inCpy)
14526			req.SetContext(ctx)
14527			req.ApplyOptions(opts...)
14528			return req, nil
14529		},
14530	}
14531
14532	for p.Next() {
14533		if !fn(p.Page().(*ListDetectMitigationActionsTasksOutput), !p.HasNextPage()) {
14534			break
14535		}
14536	}
14537
14538	return p.Err()
14539}
14540
14541const opListDimensions = "ListDimensions"
14542
14543// ListDimensionsRequest generates a "aws/request.Request" representing the
14544// client's request for the ListDimensions operation. The "output" return
14545// value will be populated with the request's response once the request completes
14546// successfully.
14547//
14548// Use "Send" method on the returned Request to send the API call to the service.
14549// the "output" return value is not valid until after Send returns without error.
14550//
14551// See ListDimensions for more information on using the ListDimensions
14552// API call, and error handling.
14553//
14554// This method is useful when you want to inject custom logic or configuration
14555// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14556//
14557//
14558//    // Example sending a request using the ListDimensionsRequest method.
14559//    req, resp := client.ListDimensionsRequest(params)
14560//
14561//    err := req.Send()
14562//    if err == nil { // resp is now filled
14563//        fmt.Println(resp)
14564//    }
14565func (c *IoT) ListDimensionsRequest(input *ListDimensionsInput) (req *request.Request, output *ListDimensionsOutput) {
14566	op := &request.Operation{
14567		Name:       opListDimensions,
14568		HTTPMethod: "GET",
14569		HTTPPath:   "/dimensions",
14570		Paginator: &request.Paginator{
14571			InputTokens:     []string{"nextToken"},
14572			OutputTokens:    []string{"nextToken"},
14573			LimitToken:      "maxResults",
14574			TruncationToken: "",
14575		},
14576	}
14577
14578	if input == nil {
14579		input = &ListDimensionsInput{}
14580	}
14581
14582	output = &ListDimensionsOutput{}
14583	req = c.newRequest(op, input, output)
14584	return
14585}
14586
14587// ListDimensions API operation for AWS IoT.
14588//
14589// List the set of dimensions that are defined for your Amazon Web Services
14590// accounts.
14591//
14592// Requires permission to access the ListDimensions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
14593// action.
14594//
14595// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14596// with awserr.Error's Code and Message methods to get detailed information about
14597// the error.
14598//
14599// See the AWS API reference guide for AWS IoT's
14600// API operation ListDimensions for usage and error information.
14601//
14602// Returned Error Types:
14603//   * InternalFailureException
14604//   An unexpected error has occurred.
14605//
14606//   * InvalidRequestException
14607//   The request is not valid.
14608//
14609//   * ThrottlingException
14610//   The rate exceeds the limit.
14611//
14612func (c *IoT) ListDimensions(input *ListDimensionsInput) (*ListDimensionsOutput, error) {
14613	req, out := c.ListDimensionsRequest(input)
14614	return out, req.Send()
14615}
14616
14617// ListDimensionsWithContext is the same as ListDimensions with the addition of
14618// the ability to pass a context and additional request options.
14619//
14620// See ListDimensions for details on how to use this API operation.
14621//
14622// The context must be non-nil and will be used for request cancellation. If
14623// the context is nil a panic will occur. In the future the SDK may create
14624// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14625// for more information on using Contexts.
14626func (c *IoT) ListDimensionsWithContext(ctx aws.Context, input *ListDimensionsInput, opts ...request.Option) (*ListDimensionsOutput, error) {
14627	req, out := c.ListDimensionsRequest(input)
14628	req.SetContext(ctx)
14629	req.ApplyOptions(opts...)
14630	return out, req.Send()
14631}
14632
14633// ListDimensionsPages iterates over the pages of a ListDimensions operation,
14634// calling the "fn" function with the response data for each page. To stop
14635// iterating, return false from the fn function.
14636//
14637// See ListDimensions method for more information on how to use this operation.
14638//
14639// Note: This operation can generate multiple requests to a service.
14640//
14641//    // Example iterating over at most 3 pages of a ListDimensions operation.
14642//    pageNum := 0
14643//    err := client.ListDimensionsPages(params,
14644//        func(page *iot.ListDimensionsOutput, lastPage bool) bool {
14645//            pageNum++
14646//            fmt.Println(page)
14647//            return pageNum <= 3
14648//        })
14649//
14650func (c *IoT) ListDimensionsPages(input *ListDimensionsInput, fn func(*ListDimensionsOutput, bool) bool) error {
14651	return c.ListDimensionsPagesWithContext(aws.BackgroundContext(), input, fn)
14652}
14653
14654// ListDimensionsPagesWithContext same as ListDimensionsPages except
14655// it takes a Context and allows setting request options on the pages.
14656//
14657// The context must be non-nil and will be used for request cancellation. If
14658// the context is nil a panic will occur. In the future the SDK may create
14659// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14660// for more information on using Contexts.
14661func (c *IoT) ListDimensionsPagesWithContext(ctx aws.Context, input *ListDimensionsInput, fn func(*ListDimensionsOutput, bool) bool, opts ...request.Option) error {
14662	p := request.Pagination{
14663		NewRequest: func() (*request.Request, error) {
14664			var inCpy *ListDimensionsInput
14665			if input != nil {
14666				tmp := *input
14667				inCpy = &tmp
14668			}
14669			req, _ := c.ListDimensionsRequest(inCpy)
14670			req.SetContext(ctx)
14671			req.ApplyOptions(opts...)
14672			return req, nil
14673		},
14674	}
14675
14676	for p.Next() {
14677		if !fn(p.Page().(*ListDimensionsOutput), !p.HasNextPage()) {
14678			break
14679		}
14680	}
14681
14682	return p.Err()
14683}
14684
14685const opListDomainConfigurations = "ListDomainConfigurations"
14686
14687// ListDomainConfigurationsRequest generates a "aws/request.Request" representing the
14688// client's request for the ListDomainConfigurations operation. The "output" return
14689// value will be populated with the request's response once the request completes
14690// successfully.
14691//
14692// Use "Send" method on the returned Request to send the API call to the service.
14693// the "output" return value is not valid until after Send returns without error.
14694//
14695// See ListDomainConfigurations for more information on using the ListDomainConfigurations
14696// API call, and error handling.
14697//
14698// This method is useful when you want to inject custom logic or configuration
14699// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14700//
14701//
14702//    // Example sending a request using the ListDomainConfigurationsRequest method.
14703//    req, resp := client.ListDomainConfigurationsRequest(params)
14704//
14705//    err := req.Send()
14706//    if err == nil { // resp is now filled
14707//        fmt.Println(resp)
14708//    }
14709func (c *IoT) ListDomainConfigurationsRequest(input *ListDomainConfigurationsInput) (req *request.Request, output *ListDomainConfigurationsOutput) {
14710	op := &request.Operation{
14711		Name:       opListDomainConfigurations,
14712		HTTPMethod: "GET",
14713		HTTPPath:   "/domainConfigurations",
14714		Paginator: &request.Paginator{
14715			InputTokens:     []string{"marker"},
14716			OutputTokens:    []string{"nextMarker"},
14717			LimitToken:      "pageSize",
14718			TruncationToken: "",
14719		},
14720	}
14721
14722	if input == nil {
14723		input = &ListDomainConfigurationsInput{}
14724	}
14725
14726	output = &ListDomainConfigurationsOutput{}
14727	req = c.newRequest(op, input, output)
14728	return
14729}
14730
14731// ListDomainConfigurations API operation for AWS IoT.
14732//
14733// Gets a list of domain configurations for the user. This list is sorted alphabetically
14734// by domain configuration name.
14735//
14736// Requires permission to access the ListDomainConfigurations (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
14737// action.
14738//
14739// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14740// with awserr.Error's Code and Message methods to get detailed information about
14741// the error.
14742//
14743// See the AWS API reference guide for AWS IoT's
14744// API operation ListDomainConfigurations for usage and error information.
14745//
14746// Returned Error Types:
14747//   * InvalidRequestException
14748//   The request is not valid.
14749//
14750//   * ThrottlingException
14751//   The rate exceeds the limit.
14752//
14753//   * UnauthorizedException
14754//   You are not authorized to perform this operation.
14755//
14756//   * ServiceUnavailableException
14757//   The service is temporarily unavailable.
14758//
14759//   * InternalFailureException
14760//   An unexpected error has occurred.
14761//
14762func (c *IoT) ListDomainConfigurations(input *ListDomainConfigurationsInput) (*ListDomainConfigurationsOutput, error) {
14763	req, out := c.ListDomainConfigurationsRequest(input)
14764	return out, req.Send()
14765}
14766
14767// ListDomainConfigurationsWithContext is the same as ListDomainConfigurations with the addition of
14768// the ability to pass a context and additional request options.
14769//
14770// See ListDomainConfigurations for details on how to use this API operation.
14771//
14772// The context must be non-nil and will be used for request cancellation. If
14773// the context is nil a panic will occur. In the future the SDK may create
14774// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14775// for more information on using Contexts.
14776func (c *IoT) ListDomainConfigurationsWithContext(ctx aws.Context, input *ListDomainConfigurationsInput, opts ...request.Option) (*ListDomainConfigurationsOutput, error) {
14777	req, out := c.ListDomainConfigurationsRequest(input)
14778	req.SetContext(ctx)
14779	req.ApplyOptions(opts...)
14780	return out, req.Send()
14781}
14782
14783// ListDomainConfigurationsPages iterates over the pages of a ListDomainConfigurations operation,
14784// calling the "fn" function with the response data for each page. To stop
14785// iterating, return false from the fn function.
14786//
14787// See ListDomainConfigurations method for more information on how to use this operation.
14788//
14789// Note: This operation can generate multiple requests to a service.
14790//
14791//    // Example iterating over at most 3 pages of a ListDomainConfigurations operation.
14792//    pageNum := 0
14793//    err := client.ListDomainConfigurationsPages(params,
14794//        func(page *iot.ListDomainConfigurationsOutput, lastPage bool) bool {
14795//            pageNum++
14796//            fmt.Println(page)
14797//            return pageNum <= 3
14798//        })
14799//
14800func (c *IoT) ListDomainConfigurationsPages(input *ListDomainConfigurationsInput, fn func(*ListDomainConfigurationsOutput, bool) bool) error {
14801	return c.ListDomainConfigurationsPagesWithContext(aws.BackgroundContext(), input, fn)
14802}
14803
14804// ListDomainConfigurationsPagesWithContext same as ListDomainConfigurationsPages except
14805// it takes a Context and allows setting request options on the pages.
14806//
14807// The context must be non-nil and will be used for request cancellation. If
14808// the context is nil a panic will occur. In the future the SDK may create
14809// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14810// for more information on using Contexts.
14811func (c *IoT) ListDomainConfigurationsPagesWithContext(ctx aws.Context, input *ListDomainConfigurationsInput, fn func(*ListDomainConfigurationsOutput, bool) bool, opts ...request.Option) error {
14812	p := request.Pagination{
14813		NewRequest: func() (*request.Request, error) {
14814			var inCpy *ListDomainConfigurationsInput
14815			if input != nil {
14816				tmp := *input
14817				inCpy = &tmp
14818			}
14819			req, _ := c.ListDomainConfigurationsRequest(inCpy)
14820			req.SetContext(ctx)
14821			req.ApplyOptions(opts...)
14822			return req, nil
14823		},
14824	}
14825
14826	for p.Next() {
14827		if !fn(p.Page().(*ListDomainConfigurationsOutput), !p.HasNextPage()) {
14828			break
14829		}
14830	}
14831
14832	return p.Err()
14833}
14834
14835const opListFleetMetrics = "ListFleetMetrics"
14836
14837// ListFleetMetricsRequest generates a "aws/request.Request" representing the
14838// client's request for the ListFleetMetrics operation. The "output" return
14839// value will be populated with the request's response once the request completes
14840// successfully.
14841//
14842// Use "Send" method on the returned Request to send the API call to the service.
14843// the "output" return value is not valid until after Send returns without error.
14844//
14845// See ListFleetMetrics for more information on using the ListFleetMetrics
14846// API call, and error handling.
14847//
14848// This method is useful when you want to inject custom logic or configuration
14849// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14850//
14851//
14852//    // Example sending a request using the ListFleetMetricsRequest method.
14853//    req, resp := client.ListFleetMetricsRequest(params)
14854//
14855//    err := req.Send()
14856//    if err == nil { // resp is now filled
14857//        fmt.Println(resp)
14858//    }
14859func (c *IoT) ListFleetMetricsRequest(input *ListFleetMetricsInput) (req *request.Request, output *ListFleetMetricsOutput) {
14860	op := &request.Operation{
14861		Name:       opListFleetMetrics,
14862		HTTPMethod: "GET",
14863		HTTPPath:   "/fleet-metrics",
14864		Paginator: &request.Paginator{
14865			InputTokens:     []string{"nextToken"},
14866			OutputTokens:    []string{"nextToken"},
14867			LimitToken:      "maxResults",
14868			TruncationToken: "",
14869		},
14870	}
14871
14872	if input == nil {
14873		input = &ListFleetMetricsInput{}
14874	}
14875
14876	output = &ListFleetMetricsOutput{}
14877	req = c.newRequest(op, input, output)
14878	return
14879}
14880
14881// ListFleetMetrics API operation for AWS IoT.
14882//
14883// Lists all your fleet metrics.
14884//
14885// Requires permission to access the ListFleetMetrics (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
14886// action.
14887//
14888// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
14889// with awserr.Error's Code and Message methods to get detailed information about
14890// the error.
14891//
14892// See the AWS API reference guide for AWS IoT's
14893// API operation ListFleetMetrics for usage and error information.
14894//
14895// Returned Error Types:
14896//   * InvalidRequestException
14897//   The request is not valid.
14898//
14899//   * ThrottlingException
14900//   The rate exceeds the limit.
14901//
14902//   * UnauthorizedException
14903//   You are not authorized to perform this operation.
14904//
14905//   * ServiceUnavailableException
14906//   The service is temporarily unavailable.
14907//
14908//   * InternalFailureException
14909//   An unexpected error has occurred.
14910//
14911func (c *IoT) ListFleetMetrics(input *ListFleetMetricsInput) (*ListFleetMetricsOutput, error) {
14912	req, out := c.ListFleetMetricsRequest(input)
14913	return out, req.Send()
14914}
14915
14916// ListFleetMetricsWithContext is the same as ListFleetMetrics with the addition of
14917// the ability to pass a context and additional request options.
14918//
14919// See ListFleetMetrics for details on how to use this API operation.
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) ListFleetMetricsWithContext(ctx aws.Context, input *ListFleetMetricsInput, opts ...request.Option) (*ListFleetMetricsOutput, error) {
14926	req, out := c.ListFleetMetricsRequest(input)
14927	req.SetContext(ctx)
14928	req.ApplyOptions(opts...)
14929	return out, req.Send()
14930}
14931
14932// ListFleetMetricsPages iterates over the pages of a ListFleetMetrics operation,
14933// calling the "fn" function with the response data for each page. To stop
14934// iterating, return false from the fn function.
14935//
14936// See ListFleetMetrics method for more information on how to use this operation.
14937//
14938// Note: This operation can generate multiple requests to a service.
14939//
14940//    // Example iterating over at most 3 pages of a ListFleetMetrics operation.
14941//    pageNum := 0
14942//    err := client.ListFleetMetricsPages(params,
14943//        func(page *iot.ListFleetMetricsOutput, lastPage bool) bool {
14944//            pageNum++
14945//            fmt.Println(page)
14946//            return pageNum <= 3
14947//        })
14948//
14949func (c *IoT) ListFleetMetricsPages(input *ListFleetMetricsInput, fn func(*ListFleetMetricsOutput, bool) bool) error {
14950	return c.ListFleetMetricsPagesWithContext(aws.BackgroundContext(), input, fn)
14951}
14952
14953// ListFleetMetricsPagesWithContext same as ListFleetMetricsPages except
14954// it takes a Context and allows setting request options on the pages.
14955//
14956// The context must be non-nil and will be used for request cancellation. If
14957// the context is nil a panic will occur. In the future the SDK may create
14958// sub-contexts for http.Requests. See https://golang.org/pkg/context/
14959// for more information on using Contexts.
14960func (c *IoT) ListFleetMetricsPagesWithContext(ctx aws.Context, input *ListFleetMetricsInput, fn func(*ListFleetMetricsOutput, bool) bool, opts ...request.Option) error {
14961	p := request.Pagination{
14962		NewRequest: func() (*request.Request, error) {
14963			var inCpy *ListFleetMetricsInput
14964			if input != nil {
14965				tmp := *input
14966				inCpy = &tmp
14967			}
14968			req, _ := c.ListFleetMetricsRequest(inCpy)
14969			req.SetContext(ctx)
14970			req.ApplyOptions(opts...)
14971			return req, nil
14972		},
14973	}
14974
14975	for p.Next() {
14976		if !fn(p.Page().(*ListFleetMetricsOutput), !p.HasNextPage()) {
14977			break
14978		}
14979	}
14980
14981	return p.Err()
14982}
14983
14984const opListIndices = "ListIndices"
14985
14986// ListIndicesRequest generates a "aws/request.Request" representing the
14987// client's request for the ListIndices operation. The "output" return
14988// value will be populated with the request's response once the request completes
14989// successfully.
14990//
14991// Use "Send" method on the returned Request to send the API call to the service.
14992// the "output" return value is not valid until after Send returns without error.
14993//
14994// See ListIndices for more information on using the ListIndices
14995// API call, and error handling.
14996//
14997// This method is useful when you want to inject custom logic or configuration
14998// into the SDK's request lifecycle. Such as custom headers, or retry logic.
14999//
15000//
15001//    // Example sending a request using the ListIndicesRequest method.
15002//    req, resp := client.ListIndicesRequest(params)
15003//
15004//    err := req.Send()
15005//    if err == nil { // resp is now filled
15006//        fmt.Println(resp)
15007//    }
15008func (c *IoT) ListIndicesRequest(input *ListIndicesInput) (req *request.Request, output *ListIndicesOutput) {
15009	op := &request.Operation{
15010		Name:       opListIndices,
15011		HTTPMethod: "GET",
15012		HTTPPath:   "/indices",
15013		Paginator: &request.Paginator{
15014			InputTokens:     []string{"nextToken"},
15015			OutputTokens:    []string{"nextToken"},
15016			LimitToken:      "maxResults",
15017			TruncationToken: "",
15018		},
15019	}
15020
15021	if input == nil {
15022		input = &ListIndicesInput{}
15023	}
15024
15025	output = &ListIndicesOutput{}
15026	req = c.newRequest(op, input, output)
15027	return
15028}
15029
15030// ListIndices API operation for AWS IoT.
15031//
15032// Lists the search indices.
15033//
15034// Requires permission to access the ListIndices (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
15035// action.
15036//
15037// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15038// with awserr.Error's Code and Message methods to get detailed information about
15039// the error.
15040//
15041// See the AWS API reference guide for AWS IoT's
15042// API operation ListIndices for usage and error information.
15043//
15044// Returned Error Types:
15045//   * InvalidRequestException
15046//   The request is not valid.
15047//
15048//   * ThrottlingException
15049//   The rate exceeds the limit.
15050//
15051//   * UnauthorizedException
15052//   You are not authorized to perform this operation.
15053//
15054//   * ServiceUnavailableException
15055//   The service is temporarily unavailable.
15056//
15057//   * InternalFailureException
15058//   An unexpected error has occurred.
15059//
15060func (c *IoT) ListIndices(input *ListIndicesInput) (*ListIndicesOutput, error) {
15061	req, out := c.ListIndicesRequest(input)
15062	return out, req.Send()
15063}
15064
15065// ListIndicesWithContext is the same as ListIndices with the addition of
15066// the ability to pass a context and additional request options.
15067//
15068// See ListIndices for details on how to use this API operation.
15069//
15070// The context must be non-nil and will be used for request cancellation. If
15071// the context is nil a panic will occur. In the future the SDK may create
15072// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15073// for more information on using Contexts.
15074func (c *IoT) ListIndicesWithContext(ctx aws.Context, input *ListIndicesInput, opts ...request.Option) (*ListIndicesOutput, error) {
15075	req, out := c.ListIndicesRequest(input)
15076	req.SetContext(ctx)
15077	req.ApplyOptions(opts...)
15078	return out, req.Send()
15079}
15080
15081// ListIndicesPages iterates over the pages of a ListIndices operation,
15082// calling the "fn" function with the response data for each page. To stop
15083// iterating, return false from the fn function.
15084//
15085// See ListIndices method for more information on how to use this operation.
15086//
15087// Note: This operation can generate multiple requests to a service.
15088//
15089//    // Example iterating over at most 3 pages of a ListIndices operation.
15090//    pageNum := 0
15091//    err := client.ListIndicesPages(params,
15092//        func(page *iot.ListIndicesOutput, lastPage bool) bool {
15093//            pageNum++
15094//            fmt.Println(page)
15095//            return pageNum <= 3
15096//        })
15097//
15098func (c *IoT) ListIndicesPages(input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool) error {
15099	return c.ListIndicesPagesWithContext(aws.BackgroundContext(), input, fn)
15100}
15101
15102// ListIndicesPagesWithContext same as ListIndicesPages except
15103// it takes a Context and allows setting request options on the pages.
15104//
15105// The context must be non-nil and will be used for request cancellation. If
15106// the context is nil a panic will occur. In the future the SDK may create
15107// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15108// for more information on using Contexts.
15109func (c *IoT) ListIndicesPagesWithContext(ctx aws.Context, input *ListIndicesInput, fn func(*ListIndicesOutput, bool) bool, opts ...request.Option) error {
15110	p := request.Pagination{
15111		NewRequest: func() (*request.Request, error) {
15112			var inCpy *ListIndicesInput
15113			if input != nil {
15114				tmp := *input
15115				inCpy = &tmp
15116			}
15117			req, _ := c.ListIndicesRequest(inCpy)
15118			req.SetContext(ctx)
15119			req.ApplyOptions(opts...)
15120			return req, nil
15121		},
15122	}
15123
15124	for p.Next() {
15125		if !fn(p.Page().(*ListIndicesOutput), !p.HasNextPage()) {
15126			break
15127		}
15128	}
15129
15130	return p.Err()
15131}
15132
15133const opListJobExecutionsForJob = "ListJobExecutionsForJob"
15134
15135// ListJobExecutionsForJobRequest generates a "aws/request.Request" representing the
15136// client's request for the ListJobExecutionsForJob operation. The "output" return
15137// value will be populated with the request's response once the request completes
15138// successfully.
15139//
15140// Use "Send" method on the returned Request to send the API call to the service.
15141// the "output" return value is not valid until after Send returns without error.
15142//
15143// See ListJobExecutionsForJob for more information on using the ListJobExecutionsForJob
15144// API call, and error handling.
15145//
15146// This method is useful when you want to inject custom logic or configuration
15147// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15148//
15149//
15150//    // Example sending a request using the ListJobExecutionsForJobRequest method.
15151//    req, resp := client.ListJobExecutionsForJobRequest(params)
15152//
15153//    err := req.Send()
15154//    if err == nil { // resp is now filled
15155//        fmt.Println(resp)
15156//    }
15157func (c *IoT) ListJobExecutionsForJobRequest(input *ListJobExecutionsForJobInput) (req *request.Request, output *ListJobExecutionsForJobOutput) {
15158	op := &request.Operation{
15159		Name:       opListJobExecutionsForJob,
15160		HTTPMethod: "GET",
15161		HTTPPath:   "/jobs/{jobId}/things",
15162		Paginator: &request.Paginator{
15163			InputTokens:     []string{"nextToken"},
15164			OutputTokens:    []string{"nextToken"},
15165			LimitToken:      "maxResults",
15166			TruncationToken: "",
15167		},
15168	}
15169
15170	if input == nil {
15171		input = &ListJobExecutionsForJobInput{}
15172	}
15173
15174	output = &ListJobExecutionsForJobOutput{}
15175	req = c.newRequest(op, input, output)
15176	return
15177}
15178
15179// ListJobExecutionsForJob API operation for AWS IoT.
15180//
15181// Lists the job executions for a job.
15182//
15183// Requires permission to access the ListJobExecutionsForJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
15184// action.
15185//
15186// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15187// with awserr.Error's Code and Message methods to get detailed information about
15188// the error.
15189//
15190// See the AWS API reference guide for AWS IoT's
15191// API operation ListJobExecutionsForJob for usage and error information.
15192//
15193// Returned Error Types:
15194//   * InvalidRequestException
15195//   The request is not valid.
15196//
15197//   * ResourceNotFoundException
15198//   The specified resource does not exist.
15199//
15200//   * ThrottlingException
15201//   The rate exceeds the limit.
15202//
15203//   * ServiceUnavailableException
15204//   The service is temporarily unavailable.
15205//
15206func (c *IoT) ListJobExecutionsForJob(input *ListJobExecutionsForJobInput) (*ListJobExecutionsForJobOutput, error) {
15207	req, out := c.ListJobExecutionsForJobRequest(input)
15208	return out, req.Send()
15209}
15210
15211// ListJobExecutionsForJobWithContext is the same as ListJobExecutionsForJob with the addition of
15212// the ability to pass a context and additional request options.
15213//
15214// See ListJobExecutionsForJob for details on how to use this API operation.
15215//
15216// The context must be non-nil and will be used for request cancellation. If
15217// the context is nil a panic will occur. In the future the SDK may create
15218// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15219// for more information on using Contexts.
15220func (c *IoT) ListJobExecutionsForJobWithContext(ctx aws.Context, input *ListJobExecutionsForJobInput, opts ...request.Option) (*ListJobExecutionsForJobOutput, error) {
15221	req, out := c.ListJobExecutionsForJobRequest(input)
15222	req.SetContext(ctx)
15223	req.ApplyOptions(opts...)
15224	return out, req.Send()
15225}
15226
15227// ListJobExecutionsForJobPages iterates over the pages of a ListJobExecutionsForJob operation,
15228// calling the "fn" function with the response data for each page. To stop
15229// iterating, return false from the fn function.
15230//
15231// See ListJobExecutionsForJob method for more information on how to use this operation.
15232//
15233// Note: This operation can generate multiple requests to a service.
15234//
15235//    // Example iterating over at most 3 pages of a ListJobExecutionsForJob operation.
15236//    pageNum := 0
15237//    err := client.ListJobExecutionsForJobPages(params,
15238//        func(page *iot.ListJobExecutionsForJobOutput, lastPage bool) bool {
15239//            pageNum++
15240//            fmt.Println(page)
15241//            return pageNum <= 3
15242//        })
15243//
15244func (c *IoT) ListJobExecutionsForJobPages(input *ListJobExecutionsForJobInput, fn func(*ListJobExecutionsForJobOutput, bool) bool) error {
15245	return c.ListJobExecutionsForJobPagesWithContext(aws.BackgroundContext(), input, fn)
15246}
15247
15248// ListJobExecutionsForJobPagesWithContext same as ListJobExecutionsForJobPages except
15249// it takes a Context and allows setting request options on the pages.
15250//
15251// The context must be non-nil and will be used for request cancellation. If
15252// the context is nil a panic will occur. In the future the SDK may create
15253// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15254// for more information on using Contexts.
15255func (c *IoT) ListJobExecutionsForJobPagesWithContext(ctx aws.Context, input *ListJobExecutionsForJobInput, fn func(*ListJobExecutionsForJobOutput, bool) bool, opts ...request.Option) error {
15256	p := request.Pagination{
15257		NewRequest: func() (*request.Request, error) {
15258			var inCpy *ListJobExecutionsForJobInput
15259			if input != nil {
15260				tmp := *input
15261				inCpy = &tmp
15262			}
15263			req, _ := c.ListJobExecutionsForJobRequest(inCpy)
15264			req.SetContext(ctx)
15265			req.ApplyOptions(opts...)
15266			return req, nil
15267		},
15268	}
15269
15270	for p.Next() {
15271		if !fn(p.Page().(*ListJobExecutionsForJobOutput), !p.HasNextPage()) {
15272			break
15273		}
15274	}
15275
15276	return p.Err()
15277}
15278
15279const opListJobExecutionsForThing = "ListJobExecutionsForThing"
15280
15281// ListJobExecutionsForThingRequest generates a "aws/request.Request" representing the
15282// client's request for the ListJobExecutionsForThing operation. The "output" return
15283// value will be populated with the request's response once the request completes
15284// successfully.
15285//
15286// Use "Send" method on the returned Request to send the API call to the service.
15287// the "output" return value is not valid until after Send returns without error.
15288//
15289// See ListJobExecutionsForThing for more information on using the ListJobExecutionsForThing
15290// API call, and error handling.
15291//
15292// This method is useful when you want to inject custom logic or configuration
15293// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15294//
15295//
15296//    // Example sending a request using the ListJobExecutionsForThingRequest method.
15297//    req, resp := client.ListJobExecutionsForThingRequest(params)
15298//
15299//    err := req.Send()
15300//    if err == nil { // resp is now filled
15301//        fmt.Println(resp)
15302//    }
15303func (c *IoT) ListJobExecutionsForThingRequest(input *ListJobExecutionsForThingInput) (req *request.Request, output *ListJobExecutionsForThingOutput) {
15304	op := &request.Operation{
15305		Name:       opListJobExecutionsForThing,
15306		HTTPMethod: "GET",
15307		HTTPPath:   "/things/{thingName}/jobs",
15308		Paginator: &request.Paginator{
15309			InputTokens:     []string{"nextToken"},
15310			OutputTokens:    []string{"nextToken"},
15311			LimitToken:      "maxResults",
15312			TruncationToken: "",
15313		},
15314	}
15315
15316	if input == nil {
15317		input = &ListJobExecutionsForThingInput{}
15318	}
15319
15320	output = &ListJobExecutionsForThingOutput{}
15321	req = c.newRequest(op, input, output)
15322	return
15323}
15324
15325// ListJobExecutionsForThing API operation for AWS IoT.
15326//
15327// Lists the job executions for the specified thing.
15328//
15329// Requires permission to access the ListJobExecutionsForThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
15330// action.
15331//
15332// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15333// with awserr.Error's Code and Message methods to get detailed information about
15334// the error.
15335//
15336// See the AWS API reference guide for AWS IoT's
15337// API operation ListJobExecutionsForThing for usage and error information.
15338//
15339// Returned Error Types:
15340//   * InvalidRequestException
15341//   The request is not valid.
15342//
15343//   * ResourceNotFoundException
15344//   The specified resource does not exist.
15345//
15346//   * ThrottlingException
15347//   The rate exceeds the limit.
15348//
15349//   * ServiceUnavailableException
15350//   The service is temporarily unavailable.
15351//
15352func (c *IoT) ListJobExecutionsForThing(input *ListJobExecutionsForThingInput) (*ListJobExecutionsForThingOutput, error) {
15353	req, out := c.ListJobExecutionsForThingRequest(input)
15354	return out, req.Send()
15355}
15356
15357// ListJobExecutionsForThingWithContext is the same as ListJobExecutionsForThing with the addition of
15358// the ability to pass a context and additional request options.
15359//
15360// See ListJobExecutionsForThing for details on how to use this API operation.
15361//
15362// The context must be non-nil and will be used for request cancellation. If
15363// the context is nil a panic will occur. In the future the SDK may create
15364// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15365// for more information on using Contexts.
15366func (c *IoT) ListJobExecutionsForThingWithContext(ctx aws.Context, input *ListJobExecutionsForThingInput, opts ...request.Option) (*ListJobExecutionsForThingOutput, error) {
15367	req, out := c.ListJobExecutionsForThingRequest(input)
15368	req.SetContext(ctx)
15369	req.ApplyOptions(opts...)
15370	return out, req.Send()
15371}
15372
15373// ListJobExecutionsForThingPages iterates over the pages of a ListJobExecutionsForThing operation,
15374// calling the "fn" function with the response data for each page. To stop
15375// iterating, return false from the fn function.
15376//
15377// See ListJobExecutionsForThing method for more information on how to use this operation.
15378//
15379// Note: This operation can generate multiple requests to a service.
15380//
15381//    // Example iterating over at most 3 pages of a ListJobExecutionsForThing operation.
15382//    pageNum := 0
15383//    err := client.ListJobExecutionsForThingPages(params,
15384//        func(page *iot.ListJobExecutionsForThingOutput, lastPage bool) bool {
15385//            pageNum++
15386//            fmt.Println(page)
15387//            return pageNum <= 3
15388//        })
15389//
15390func (c *IoT) ListJobExecutionsForThingPages(input *ListJobExecutionsForThingInput, fn func(*ListJobExecutionsForThingOutput, bool) bool) error {
15391	return c.ListJobExecutionsForThingPagesWithContext(aws.BackgroundContext(), input, fn)
15392}
15393
15394// ListJobExecutionsForThingPagesWithContext same as ListJobExecutionsForThingPages except
15395// it takes a Context and allows setting request options on the pages.
15396//
15397// The context must be non-nil and will be used for request cancellation. If
15398// the context is nil a panic will occur. In the future the SDK may create
15399// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15400// for more information on using Contexts.
15401func (c *IoT) ListJobExecutionsForThingPagesWithContext(ctx aws.Context, input *ListJobExecutionsForThingInput, fn func(*ListJobExecutionsForThingOutput, bool) bool, opts ...request.Option) error {
15402	p := request.Pagination{
15403		NewRequest: func() (*request.Request, error) {
15404			var inCpy *ListJobExecutionsForThingInput
15405			if input != nil {
15406				tmp := *input
15407				inCpy = &tmp
15408			}
15409			req, _ := c.ListJobExecutionsForThingRequest(inCpy)
15410			req.SetContext(ctx)
15411			req.ApplyOptions(opts...)
15412			return req, nil
15413		},
15414	}
15415
15416	for p.Next() {
15417		if !fn(p.Page().(*ListJobExecutionsForThingOutput), !p.HasNextPage()) {
15418			break
15419		}
15420	}
15421
15422	return p.Err()
15423}
15424
15425const opListJobTemplates = "ListJobTemplates"
15426
15427// ListJobTemplatesRequest generates a "aws/request.Request" representing the
15428// client's request for the ListJobTemplates operation. The "output" return
15429// value will be populated with the request's response once the request completes
15430// successfully.
15431//
15432// Use "Send" method on the returned Request to send the API call to the service.
15433// the "output" return value is not valid until after Send returns without error.
15434//
15435// See ListJobTemplates for more information on using the ListJobTemplates
15436// API call, and error handling.
15437//
15438// This method is useful when you want to inject custom logic or configuration
15439// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15440//
15441//
15442//    // Example sending a request using the ListJobTemplatesRequest method.
15443//    req, resp := client.ListJobTemplatesRequest(params)
15444//
15445//    err := req.Send()
15446//    if err == nil { // resp is now filled
15447//        fmt.Println(resp)
15448//    }
15449func (c *IoT) ListJobTemplatesRequest(input *ListJobTemplatesInput) (req *request.Request, output *ListJobTemplatesOutput) {
15450	op := &request.Operation{
15451		Name:       opListJobTemplates,
15452		HTTPMethod: "GET",
15453		HTTPPath:   "/job-templates",
15454		Paginator: &request.Paginator{
15455			InputTokens:     []string{"nextToken"},
15456			OutputTokens:    []string{"nextToken"},
15457			LimitToken:      "maxResults",
15458			TruncationToken: "",
15459		},
15460	}
15461
15462	if input == nil {
15463		input = &ListJobTemplatesInput{}
15464	}
15465
15466	output = &ListJobTemplatesOutput{}
15467	req = c.newRequest(op, input, output)
15468	return
15469}
15470
15471// ListJobTemplates API operation for AWS IoT.
15472//
15473// Returns a list of job templates.
15474//
15475// Requires permission to access the ListJobTemplates (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
15476// action.
15477//
15478// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15479// with awserr.Error's Code and Message methods to get detailed information about
15480// the error.
15481//
15482// See the AWS API reference guide for AWS IoT's
15483// API operation ListJobTemplates for usage and error information.
15484//
15485// Returned Error Types:
15486//   * InvalidRequestException
15487//   The request is not valid.
15488//
15489//   * ThrottlingException
15490//   The rate exceeds the limit.
15491//
15492//   * InternalFailureException
15493//   An unexpected error has occurred.
15494//
15495func (c *IoT) ListJobTemplates(input *ListJobTemplatesInput) (*ListJobTemplatesOutput, error) {
15496	req, out := c.ListJobTemplatesRequest(input)
15497	return out, req.Send()
15498}
15499
15500// ListJobTemplatesWithContext is the same as ListJobTemplates with the addition of
15501// the ability to pass a context and additional request options.
15502//
15503// See ListJobTemplates for details on how to use this API operation.
15504//
15505// The context must be non-nil and will be used for request cancellation. If
15506// the context is nil a panic will occur. In the future the SDK may create
15507// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15508// for more information on using Contexts.
15509func (c *IoT) ListJobTemplatesWithContext(ctx aws.Context, input *ListJobTemplatesInput, opts ...request.Option) (*ListJobTemplatesOutput, error) {
15510	req, out := c.ListJobTemplatesRequest(input)
15511	req.SetContext(ctx)
15512	req.ApplyOptions(opts...)
15513	return out, req.Send()
15514}
15515
15516// ListJobTemplatesPages iterates over the pages of a ListJobTemplates operation,
15517// calling the "fn" function with the response data for each page. To stop
15518// iterating, return false from the fn function.
15519//
15520// See ListJobTemplates method for more information on how to use this operation.
15521//
15522// Note: This operation can generate multiple requests to a service.
15523//
15524//    // Example iterating over at most 3 pages of a ListJobTemplates operation.
15525//    pageNum := 0
15526//    err := client.ListJobTemplatesPages(params,
15527//        func(page *iot.ListJobTemplatesOutput, lastPage bool) bool {
15528//            pageNum++
15529//            fmt.Println(page)
15530//            return pageNum <= 3
15531//        })
15532//
15533func (c *IoT) ListJobTemplatesPages(input *ListJobTemplatesInput, fn func(*ListJobTemplatesOutput, bool) bool) error {
15534	return c.ListJobTemplatesPagesWithContext(aws.BackgroundContext(), input, fn)
15535}
15536
15537// ListJobTemplatesPagesWithContext same as ListJobTemplatesPages except
15538// it takes a Context and allows setting request options on the pages.
15539//
15540// The context must be non-nil and will be used for request cancellation. If
15541// the context is nil a panic will occur. In the future the SDK may create
15542// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15543// for more information on using Contexts.
15544func (c *IoT) ListJobTemplatesPagesWithContext(ctx aws.Context, input *ListJobTemplatesInput, fn func(*ListJobTemplatesOutput, bool) bool, opts ...request.Option) error {
15545	p := request.Pagination{
15546		NewRequest: func() (*request.Request, error) {
15547			var inCpy *ListJobTemplatesInput
15548			if input != nil {
15549				tmp := *input
15550				inCpy = &tmp
15551			}
15552			req, _ := c.ListJobTemplatesRequest(inCpy)
15553			req.SetContext(ctx)
15554			req.ApplyOptions(opts...)
15555			return req, nil
15556		},
15557	}
15558
15559	for p.Next() {
15560		if !fn(p.Page().(*ListJobTemplatesOutput), !p.HasNextPage()) {
15561			break
15562		}
15563	}
15564
15565	return p.Err()
15566}
15567
15568const opListJobs = "ListJobs"
15569
15570// ListJobsRequest generates a "aws/request.Request" representing the
15571// client's request for the ListJobs operation. The "output" return
15572// value will be populated with the request's response once the request completes
15573// successfully.
15574//
15575// Use "Send" method on the returned Request to send the API call to the service.
15576// the "output" return value is not valid until after Send returns without error.
15577//
15578// See ListJobs for more information on using the ListJobs
15579// API call, and error handling.
15580//
15581// This method is useful when you want to inject custom logic or configuration
15582// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15583//
15584//
15585//    // Example sending a request using the ListJobsRequest method.
15586//    req, resp := client.ListJobsRequest(params)
15587//
15588//    err := req.Send()
15589//    if err == nil { // resp is now filled
15590//        fmt.Println(resp)
15591//    }
15592func (c *IoT) ListJobsRequest(input *ListJobsInput) (req *request.Request, output *ListJobsOutput) {
15593	op := &request.Operation{
15594		Name:       opListJobs,
15595		HTTPMethod: "GET",
15596		HTTPPath:   "/jobs",
15597		Paginator: &request.Paginator{
15598			InputTokens:     []string{"nextToken"},
15599			OutputTokens:    []string{"nextToken"},
15600			LimitToken:      "maxResults",
15601			TruncationToken: "",
15602		},
15603	}
15604
15605	if input == nil {
15606		input = &ListJobsInput{}
15607	}
15608
15609	output = &ListJobsOutput{}
15610	req = c.newRequest(op, input, output)
15611	return
15612}
15613
15614// ListJobs API operation for AWS IoT.
15615//
15616// Lists jobs.
15617//
15618// Requires permission to access the ListJobs (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
15619// action.
15620//
15621// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15622// with awserr.Error's Code and Message methods to get detailed information about
15623// the error.
15624//
15625// See the AWS API reference guide for AWS IoT's
15626// API operation ListJobs for usage and error information.
15627//
15628// Returned Error Types:
15629//   * InvalidRequestException
15630//   The request is not valid.
15631//
15632//   * ResourceNotFoundException
15633//   The specified resource does not exist.
15634//
15635//   * ThrottlingException
15636//   The rate exceeds the limit.
15637//
15638//   * ServiceUnavailableException
15639//   The service is temporarily unavailable.
15640//
15641func (c *IoT) ListJobs(input *ListJobsInput) (*ListJobsOutput, error) {
15642	req, out := c.ListJobsRequest(input)
15643	return out, req.Send()
15644}
15645
15646// ListJobsWithContext is the same as ListJobs with the addition of
15647// the ability to pass a context and additional request options.
15648//
15649// See ListJobs for details on how to use this API operation.
15650//
15651// The context must be non-nil and will be used for request cancellation. If
15652// the context is nil a panic will occur. In the future the SDK may create
15653// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15654// for more information on using Contexts.
15655func (c *IoT) ListJobsWithContext(ctx aws.Context, input *ListJobsInput, opts ...request.Option) (*ListJobsOutput, error) {
15656	req, out := c.ListJobsRequest(input)
15657	req.SetContext(ctx)
15658	req.ApplyOptions(opts...)
15659	return out, req.Send()
15660}
15661
15662// ListJobsPages iterates over the pages of a ListJobs operation,
15663// calling the "fn" function with the response data for each page. To stop
15664// iterating, return false from the fn function.
15665//
15666// See ListJobs method for more information on how to use this operation.
15667//
15668// Note: This operation can generate multiple requests to a service.
15669//
15670//    // Example iterating over at most 3 pages of a ListJobs operation.
15671//    pageNum := 0
15672//    err := client.ListJobsPages(params,
15673//        func(page *iot.ListJobsOutput, lastPage bool) bool {
15674//            pageNum++
15675//            fmt.Println(page)
15676//            return pageNum <= 3
15677//        })
15678//
15679func (c *IoT) ListJobsPages(input *ListJobsInput, fn func(*ListJobsOutput, bool) bool) error {
15680	return c.ListJobsPagesWithContext(aws.BackgroundContext(), input, fn)
15681}
15682
15683// ListJobsPagesWithContext same as ListJobsPages except
15684// it takes a Context and allows setting request options on the pages.
15685//
15686// The context must be non-nil and will be used for request cancellation. If
15687// the context is nil a panic will occur. In the future the SDK may create
15688// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15689// for more information on using Contexts.
15690func (c *IoT) ListJobsPagesWithContext(ctx aws.Context, input *ListJobsInput, fn func(*ListJobsOutput, bool) bool, opts ...request.Option) error {
15691	p := request.Pagination{
15692		NewRequest: func() (*request.Request, error) {
15693			var inCpy *ListJobsInput
15694			if input != nil {
15695				tmp := *input
15696				inCpy = &tmp
15697			}
15698			req, _ := c.ListJobsRequest(inCpy)
15699			req.SetContext(ctx)
15700			req.ApplyOptions(opts...)
15701			return req, nil
15702		},
15703	}
15704
15705	for p.Next() {
15706		if !fn(p.Page().(*ListJobsOutput), !p.HasNextPage()) {
15707			break
15708		}
15709	}
15710
15711	return p.Err()
15712}
15713
15714const opListMitigationActions = "ListMitigationActions"
15715
15716// ListMitigationActionsRequest generates a "aws/request.Request" representing the
15717// client's request for the ListMitigationActions operation. The "output" return
15718// value will be populated with the request's response once the request completes
15719// successfully.
15720//
15721// Use "Send" method on the returned Request to send the API call to the service.
15722// the "output" return value is not valid until after Send returns without error.
15723//
15724// See ListMitigationActions for more information on using the ListMitigationActions
15725// API call, and error handling.
15726//
15727// This method is useful when you want to inject custom logic or configuration
15728// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15729//
15730//
15731//    // Example sending a request using the ListMitigationActionsRequest method.
15732//    req, resp := client.ListMitigationActionsRequest(params)
15733//
15734//    err := req.Send()
15735//    if err == nil { // resp is now filled
15736//        fmt.Println(resp)
15737//    }
15738func (c *IoT) ListMitigationActionsRequest(input *ListMitigationActionsInput) (req *request.Request, output *ListMitigationActionsOutput) {
15739	op := &request.Operation{
15740		Name:       opListMitigationActions,
15741		HTTPMethod: "GET",
15742		HTTPPath:   "/mitigationactions/actions",
15743		Paginator: &request.Paginator{
15744			InputTokens:     []string{"nextToken"},
15745			OutputTokens:    []string{"nextToken"},
15746			LimitToken:      "maxResults",
15747			TruncationToken: "",
15748		},
15749	}
15750
15751	if input == nil {
15752		input = &ListMitigationActionsInput{}
15753	}
15754
15755	output = &ListMitigationActionsOutput{}
15756	req = c.newRequest(op, input, output)
15757	return
15758}
15759
15760// ListMitigationActions API operation for AWS IoT.
15761//
15762// Gets a list of all mitigation actions that match the specified filter criteria.
15763//
15764// Requires permission to access the ListMitigationActions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
15765// action.
15766//
15767// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15768// with awserr.Error's Code and Message methods to get detailed information about
15769// the error.
15770//
15771// See the AWS API reference guide for AWS IoT's
15772// API operation ListMitigationActions for usage and error information.
15773//
15774// Returned Error Types:
15775//   * InvalidRequestException
15776//   The request is not valid.
15777//
15778//   * ThrottlingException
15779//   The rate exceeds the limit.
15780//
15781//   * InternalFailureException
15782//   An unexpected error has occurred.
15783//
15784func (c *IoT) ListMitigationActions(input *ListMitigationActionsInput) (*ListMitigationActionsOutput, error) {
15785	req, out := c.ListMitigationActionsRequest(input)
15786	return out, req.Send()
15787}
15788
15789// ListMitigationActionsWithContext is the same as ListMitigationActions with the addition of
15790// the ability to pass a context and additional request options.
15791//
15792// See ListMitigationActions for details on how to use this API operation.
15793//
15794// The context must be non-nil and will be used for request cancellation. If
15795// the context is nil a panic will occur. In the future the SDK may create
15796// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15797// for more information on using Contexts.
15798func (c *IoT) ListMitigationActionsWithContext(ctx aws.Context, input *ListMitigationActionsInput, opts ...request.Option) (*ListMitigationActionsOutput, error) {
15799	req, out := c.ListMitigationActionsRequest(input)
15800	req.SetContext(ctx)
15801	req.ApplyOptions(opts...)
15802	return out, req.Send()
15803}
15804
15805// ListMitigationActionsPages iterates over the pages of a ListMitigationActions operation,
15806// calling the "fn" function with the response data for each page. To stop
15807// iterating, return false from the fn function.
15808//
15809// See ListMitigationActions method for more information on how to use this operation.
15810//
15811// Note: This operation can generate multiple requests to a service.
15812//
15813//    // Example iterating over at most 3 pages of a ListMitigationActions operation.
15814//    pageNum := 0
15815//    err := client.ListMitigationActionsPages(params,
15816//        func(page *iot.ListMitigationActionsOutput, lastPage bool) bool {
15817//            pageNum++
15818//            fmt.Println(page)
15819//            return pageNum <= 3
15820//        })
15821//
15822func (c *IoT) ListMitigationActionsPages(input *ListMitigationActionsInput, fn func(*ListMitigationActionsOutput, bool) bool) error {
15823	return c.ListMitigationActionsPagesWithContext(aws.BackgroundContext(), input, fn)
15824}
15825
15826// ListMitigationActionsPagesWithContext same as ListMitigationActionsPages except
15827// it takes a Context and allows setting request options on the pages.
15828//
15829// The context must be non-nil and will be used for request cancellation. If
15830// the context is nil a panic will occur. In the future the SDK may create
15831// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15832// for more information on using Contexts.
15833func (c *IoT) ListMitigationActionsPagesWithContext(ctx aws.Context, input *ListMitigationActionsInput, fn func(*ListMitigationActionsOutput, bool) bool, opts ...request.Option) error {
15834	p := request.Pagination{
15835		NewRequest: func() (*request.Request, error) {
15836			var inCpy *ListMitigationActionsInput
15837			if input != nil {
15838				tmp := *input
15839				inCpy = &tmp
15840			}
15841			req, _ := c.ListMitigationActionsRequest(inCpy)
15842			req.SetContext(ctx)
15843			req.ApplyOptions(opts...)
15844			return req, nil
15845		},
15846	}
15847
15848	for p.Next() {
15849		if !fn(p.Page().(*ListMitigationActionsOutput), !p.HasNextPage()) {
15850			break
15851		}
15852	}
15853
15854	return p.Err()
15855}
15856
15857const opListOTAUpdates = "ListOTAUpdates"
15858
15859// ListOTAUpdatesRequest generates a "aws/request.Request" representing the
15860// client's request for the ListOTAUpdates operation. The "output" return
15861// value will be populated with the request's response once the request completes
15862// successfully.
15863//
15864// Use "Send" method on the returned Request to send the API call to the service.
15865// the "output" return value is not valid until after Send returns without error.
15866//
15867// See ListOTAUpdates for more information on using the ListOTAUpdates
15868// API call, and error handling.
15869//
15870// This method is useful when you want to inject custom logic or configuration
15871// into the SDK's request lifecycle. Such as custom headers, or retry logic.
15872//
15873//
15874//    // Example sending a request using the ListOTAUpdatesRequest method.
15875//    req, resp := client.ListOTAUpdatesRequest(params)
15876//
15877//    err := req.Send()
15878//    if err == nil { // resp is now filled
15879//        fmt.Println(resp)
15880//    }
15881func (c *IoT) ListOTAUpdatesRequest(input *ListOTAUpdatesInput) (req *request.Request, output *ListOTAUpdatesOutput) {
15882	op := &request.Operation{
15883		Name:       opListOTAUpdates,
15884		HTTPMethod: "GET",
15885		HTTPPath:   "/otaUpdates",
15886		Paginator: &request.Paginator{
15887			InputTokens:     []string{"nextToken"},
15888			OutputTokens:    []string{"nextToken"},
15889			LimitToken:      "maxResults",
15890			TruncationToken: "",
15891		},
15892	}
15893
15894	if input == nil {
15895		input = &ListOTAUpdatesInput{}
15896	}
15897
15898	output = &ListOTAUpdatesOutput{}
15899	req = c.newRequest(op, input, output)
15900	return
15901}
15902
15903// ListOTAUpdates API operation for AWS IoT.
15904//
15905// Lists OTA updates.
15906//
15907// Requires permission to access the ListOTAUpdates (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
15908// action.
15909//
15910// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
15911// with awserr.Error's Code and Message methods to get detailed information about
15912// the error.
15913//
15914// See the AWS API reference guide for AWS IoT's
15915// API operation ListOTAUpdates for usage and error information.
15916//
15917// Returned Error Types:
15918//   * InvalidRequestException
15919//   The request is not valid.
15920//
15921//   * ThrottlingException
15922//   The rate exceeds the limit.
15923//
15924//   * UnauthorizedException
15925//   You are not authorized to perform this operation.
15926//
15927//   * InternalFailureException
15928//   An unexpected error has occurred.
15929//
15930//   * ServiceUnavailableException
15931//   The service is temporarily unavailable.
15932//
15933func (c *IoT) ListOTAUpdates(input *ListOTAUpdatesInput) (*ListOTAUpdatesOutput, error) {
15934	req, out := c.ListOTAUpdatesRequest(input)
15935	return out, req.Send()
15936}
15937
15938// ListOTAUpdatesWithContext is the same as ListOTAUpdates with the addition of
15939// the ability to pass a context and additional request options.
15940//
15941// See ListOTAUpdates for details on how to use this API operation.
15942//
15943// The context must be non-nil and will be used for request cancellation. If
15944// the context is nil a panic will occur. In the future the SDK may create
15945// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15946// for more information on using Contexts.
15947func (c *IoT) ListOTAUpdatesWithContext(ctx aws.Context, input *ListOTAUpdatesInput, opts ...request.Option) (*ListOTAUpdatesOutput, error) {
15948	req, out := c.ListOTAUpdatesRequest(input)
15949	req.SetContext(ctx)
15950	req.ApplyOptions(opts...)
15951	return out, req.Send()
15952}
15953
15954// ListOTAUpdatesPages iterates over the pages of a ListOTAUpdates operation,
15955// calling the "fn" function with the response data for each page. To stop
15956// iterating, return false from the fn function.
15957//
15958// See ListOTAUpdates method for more information on how to use this operation.
15959//
15960// Note: This operation can generate multiple requests to a service.
15961//
15962//    // Example iterating over at most 3 pages of a ListOTAUpdates operation.
15963//    pageNum := 0
15964//    err := client.ListOTAUpdatesPages(params,
15965//        func(page *iot.ListOTAUpdatesOutput, lastPage bool) bool {
15966//            pageNum++
15967//            fmt.Println(page)
15968//            return pageNum <= 3
15969//        })
15970//
15971func (c *IoT) ListOTAUpdatesPages(input *ListOTAUpdatesInput, fn func(*ListOTAUpdatesOutput, bool) bool) error {
15972	return c.ListOTAUpdatesPagesWithContext(aws.BackgroundContext(), input, fn)
15973}
15974
15975// ListOTAUpdatesPagesWithContext same as ListOTAUpdatesPages except
15976// it takes a Context and allows setting request options on the pages.
15977//
15978// The context must be non-nil and will be used for request cancellation. If
15979// the context is nil a panic will occur. In the future the SDK may create
15980// sub-contexts for http.Requests. See https://golang.org/pkg/context/
15981// for more information on using Contexts.
15982func (c *IoT) ListOTAUpdatesPagesWithContext(ctx aws.Context, input *ListOTAUpdatesInput, fn func(*ListOTAUpdatesOutput, bool) bool, opts ...request.Option) error {
15983	p := request.Pagination{
15984		NewRequest: func() (*request.Request, error) {
15985			var inCpy *ListOTAUpdatesInput
15986			if input != nil {
15987				tmp := *input
15988				inCpy = &tmp
15989			}
15990			req, _ := c.ListOTAUpdatesRequest(inCpy)
15991			req.SetContext(ctx)
15992			req.ApplyOptions(opts...)
15993			return req, nil
15994		},
15995	}
15996
15997	for p.Next() {
15998		if !fn(p.Page().(*ListOTAUpdatesOutput), !p.HasNextPage()) {
15999			break
16000		}
16001	}
16002
16003	return p.Err()
16004}
16005
16006const opListOutgoingCertificates = "ListOutgoingCertificates"
16007
16008// ListOutgoingCertificatesRequest generates a "aws/request.Request" representing the
16009// client's request for the ListOutgoingCertificates operation. The "output" return
16010// value will be populated with the request's response once the request completes
16011// successfully.
16012//
16013// Use "Send" method on the returned Request to send the API call to the service.
16014// the "output" return value is not valid until after Send returns without error.
16015//
16016// See ListOutgoingCertificates for more information on using the ListOutgoingCertificates
16017// API call, and error handling.
16018//
16019// This method is useful when you want to inject custom logic or configuration
16020// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16021//
16022//
16023//    // Example sending a request using the ListOutgoingCertificatesRequest method.
16024//    req, resp := client.ListOutgoingCertificatesRequest(params)
16025//
16026//    err := req.Send()
16027//    if err == nil { // resp is now filled
16028//        fmt.Println(resp)
16029//    }
16030func (c *IoT) ListOutgoingCertificatesRequest(input *ListOutgoingCertificatesInput) (req *request.Request, output *ListOutgoingCertificatesOutput) {
16031	op := &request.Operation{
16032		Name:       opListOutgoingCertificates,
16033		HTTPMethod: "GET",
16034		HTTPPath:   "/certificates-out-going",
16035		Paginator: &request.Paginator{
16036			InputTokens:     []string{"marker"},
16037			OutputTokens:    []string{"nextMarker"},
16038			LimitToken:      "pageSize",
16039			TruncationToken: "",
16040		},
16041	}
16042
16043	if input == nil {
16044		input = &ListOutgoingCertificatesInput{}
16045	}
16046
16047	output = &ListOutgoingCertificatesOutput{}
16048	req = c.newRequest(op, input, output)
16049	return
16050}
16051
16052// ListOutgoingCertificates API operation for AWS IoT.
16053//
16054// Lists certificates that are being transferred but not yet accepted.
16055//
16056// Requires permission to access the ListOutgoingCertificates (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
16057// action.
16058//
16059// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16060// with awserr.Error's Code and Message methods to get detailed information about
16061// the error.
16062//
16063// See the AWS API reference guide for AWS IoT's
16064// API operation ListOutgoingCertificates for usage and error information.
16065//
16066// Returned Error Types:
16067//   * InvalidRequestException
16068//   The request is not valid.
16069//
16070//   * ThrottlingException
16071//   The rate exceeds the limit.
16072//
16073//   * UnauthorizedException
16074//   You are not authorized to perform this operation.
16075//
16076//   * ServiceUnavailableException
16077//   The service is temporarily unavailable.
16078//
16079//   * InternalFailureException
16080//   An unexpected error has occurred.
16081//
16082func (c *IoT) ListOutgoingCertificates(input *ListOutgoingCertificatesInput) (*ListOutgoingCertificatesOutput, error) {
16083	req, out := c.ListOutgoingCertificatesRequest(input)
16084	return out, req.Send()
16085}
16086
16087// ListOutgoingCertificatesWithContext is the same as ListOutgoingCertificates with the addition of
16088// the ability to pass a context and additional request options.
16089//
16090// See ListOutgoingCertificates for details on how to use this API operation.
16091//
16092// The context must be non-nil and will be used for request cancellation. If
16093// the context is nil a panic will occur. In the future the SDK may create
16094// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16095// for more information on using Contexts.
16096func (c *IoT) ListOutgoingCertificatesWithContext(ctx aws.Context, input *ListOutgoingCertificatesInput, opts ...request.Option) (*ListOutgoingCertificatesOutput, error) {
16097	req, out := c.ListOutgoingCertificatesRequest(input)
16098	req.SetContext(ctx)
16099	req.ApplyOptions(opts...)
16100	return out, req.Send()
16101}
16102
16103// ListOutgoingCertificatesPages iterates over the pages of a ListOutgoingCertificates operation,
16104// calling the "fn" function with the response data for each page. To stop
16105// iterating, return false from the fn function.
16106//
16107// See ListOutgoingCertificates method for more information on how to use this operation.
16108//
16109// Note: This operation can generate multiple requests to a service.
16110//
16111//    // Example iterating over at most 3 pages of a ListOutgoingCertificates operation.
16112//    pageNum := 0
16113//    err := client.ListOutgoingCertificatesPages(params,
16114//        func(page *iot.ListOutgoingCertificatesOutput, lastPage bool) bool {
16115//            pageNum++
16116//            fmt.Println(page)
16117//            return pageNum <= 3
16118//        })
16119//
16120func (c *IoT) ListOutgoingCertificatesPages(input *ListOutgoingCertificatesInput, fn func(*ListOutgoingCertificatesOutput, bool) bool) error {
16121	return c.ListOutgoingCertificatesPagesWithContext(aws.BackgroundContext(), input, fn)
16122}
16123
16124// ListOutgoingCertificatesPagesWithContext same as ListOutgoingCertificatesPages except
16125// it takes a Context and allows setting request options on the pages.
16126//
16127// The context must be non-nil and will be used for request cancellation. If
16128// the context is nil a panic will occur. In the future the SDK may create
16129// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16130// for more information on using Contexts.
16131func (c *IoT) ListOutgoingCertificatesPagesWithContext(ctx aws.Context, input *ListOutgoingCertificatesInput, fn func(*ListOutgoingCertificatesOutput, bool) bool, opts ...request.Option) error {
16132	p := request.Pagination{
16133		NewRequest: func() (*request.Request, error) {
16134			var inCpy *ListOutgoingCertificatesInput
16135			if input != nil {
16136				tmp := *input
16137				inCpy = &tmp
16138			}
16139			req, _ := c.ListOutgoingCertificatesRequest(inCpy)
16140			req.SetContext(ctx)
16141			req.ApplyOptions(opts...)
16142			return req, nil
16143		},
16144	}
16145
16146	for p.Next() {
16147		if !fn(p.Page().(*ListOutgoingCertificatesOutput), !p.HasNextPage()) {
16148			break
16149		}
16150	}
16151
16152	return p.Err()
16153}
16154
16155const opListPolicies = "ListPolicies"
16156
16157// ListPoliciesRequest generates a "aws/request.Request" representing the
16158// client's request for the ListPolicies operation. The "output" return
16159// value will be populated with the request's response once the request completes
16160// successfully.
16161//
16162// Use "Send" method on the returned Request to send the API call to the service.
16163// the "output" return value is not valid until after Send returns without error.
16164//
16165// See ListPolicies for more information on using the ListPolicies
16166// API call, and error handling.
16167//
16168// This method is useful when you want to inject custom logic or configuration
16169// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16170//
16171//
16172//    // Example sending a request using the ListPoliciesRequest method.
16173//    req, resp := client.ListPoliciesRequest(params)
16174//
16175//    err := req.Send()
16176//    if err == nil { // resp is now filled
16177//        fmt.Println(resp)
16178//    }
16179func (c *IoT) ListPoliciesRequest(input *ListPoliciesInput) (req *request.Request, output *ListPoliciesOutput) {
16180	op := &request.Operation{
16181		Name:       opListPolicies,
16182		HTTPMethod: "GET",
16183		HTTPPath:   "/policies",
16184		Paginator: &request.Paginator{
16185			InputTokens:     []string{"marker"},
16186			OutputTokens:    []string{"nextMarker"},
16187			LimitToken:      "pageSize",
16188			TruncationToken: "",
16189		},
16190	}
16191
16192	if input == nil {
16193		input = &ListPoliciesInput{}
16194	}
16195
16196	output = &ListPoliciesOutput{}
16197	req = c.newRequest(op, input, output)
16198	return
16199}
16200
16201// ListPolicies API operation for AWS IoT.
16202//
16203// Lists your policies.
16204//
16205// Requires permission to access the ListPolicies (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
16206// action.
16207//
16208// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16209// with awserr.Error's Code and Message methods to get detailed information about
16210// the error.
16211//
16212// See the AWS API reference guide for AWS IoT's
16213// API operation ListPolicies for usage and error information.
16214//
16215// Returned Error Types:
16216//   * InvalidRequestException
16217//   The request is not valid.
16218//
16219//   * ThrottlingException
16220//   The rate exceeds the limit.
16221//
16222//   * UnauthorizedException
16223//   You are not authorized to perform this operation.
16224//
16225//   * ServiceUnavailableException
16226//   The service is temporarily unavailable.
16227//
16228//   * InternalFailureException
16229//   An unexpected error has occurred.
16230//
16231func (c *IoT) ListPolicies(input *ListPoliciesInput) (*ListPoliciesOutput, error) {
16232	req, out := c.ListPoliciesRequest(input)
16233	return out, req.Send()
16234}
16235
16236// ListPoliciesWithContext is the same as ListPolicies with the addition of
16237// the ability to pass a context and additional request options.
16238//
16239// See ListPolicies for details on how to use this API operation.
16240//
16241// The context must be non-nil and will be used for request cancellation. If
16242// the context is nil a panic will occur. In the future the SDK may create
16243// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16244// for more information on using Contexts.
16245func (c *IoT) ListPoliciesWithContext(ctx aws.Context, input *ListPoliciesInput, opts ...request.Option) (*ListPoliciesOutput, error) {
16246	req, out := c.ListPoliciesRequest(input)
16247	req.SetContext(ctx)
16248	req.ApplyOptions(opts...)
16249	return out, req.Send()
16250}
16251
16252// ListPoliciesPages iterates over the pages of a ListPolicies operation,
16253// calling the "fn" function with the response data for each page. To stop
16254// iterating, return false from the fn function.
16255//
16256// See ListPolicies method for more information on how to use this operation.
16257//
16258// Note: This operation can generate multiple requests to a service.
16259//
16260//    // Example iterating over at most 3 pages of a ListPolicies operation.
16261//    pageNum := 0
16262//    err := client.ListPoliciesPages(params,
16263//        func(page *iot.ListPoliciesOutput, lastPage bool) bool {
16264//            pageNum++
16265//            fmt.Println(page)
16266//            return pageNum <= 3
16267//        })
16268//
16269func (c *IoT) ListPoliciesPages(input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool) error {
16270	return c.ListPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
16271}
16272
16273// ListPoliciesPagesWithContext same as ListPoliciesPages except
16274// it takes a Context and allows setting request options on the pages.
16275//
16276// The context must be non-nil and will be used for request cancellation. If
16277// the context is nil a panic will occur. In the future the SDK may create
16278// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16279// for more information on using Contexts.
16280func (c *IoT) ListPoliciesPagesWithContext(ctx aws.Context, input *ListPoliciesInput, fn func(*ListPoliciesOutput, bool) bool, opts ...request.Option) error {
16281	p := request.Pagination{
16282		NewRequest: func() (*request.Request, error) {
16283			var inCpy *ListPoliciesInput
16284			if input != nil {
16285				tmp := *input
16286				inCpy = &tmp
16287			}
16288			req, _ := c.ListPoliciesRequest(inCpy)
16289			req.SetContext(ctx)
16290			req.ApplyOptions(opts...)
16291			return req, nil
16292		},
16293	}
16294
16295	for p.Next() {
16296		if !fn(p.Page().(*ListPoliciesOutput), !p.HasNextPage()) {
16297			break
16298		}
16299	}
16300
16301	return p.Err()
16302}
16303
16304const opListPolicyPrincipals = "ListPolicyPrincipals"
16305
16306// ListPolicyPrincipalsRequest generates a "aws/request.Request" representing the
16307// client's request for the ListPolicyPrincipals operation. The "output" return
16308// value will be populated with the request's response once the request completes
16309// successfully.
16310//
16311// Use "Send" method on the returned Request to send the API call to the service.
16312// the "output" return value is not valid until after Send returns without error.
16313//
16314// See ListPolicyPrincipals for more information on using the ListPolicyPrincipals
16315// API call, and error handling.
16316//
16317// This method is useful when you want to inject custom logic or configuration
16318// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16319//
16320//
16321//    // Example sending a request using the ListPolicyPrincipalsRequest method.
16322//    req, resp := client.ListPolicyPrincipalsRequest(params)
16323//
16324//    err := req.Send()
16325//    if err == nil { // resp is now filled
16326//        fmt.Println(resp)
16327//    }
16328//
16329// Deprecated: ListPolicyPrincipals has been deprecated
16330func (c *IoT) ListPolicyPrincipalsRequest(input *ListPolicyPrincipalsInput) (req *request.Request, output *ListPolicyPrincipalsOutput) {
16331	if c.Client.Config.Logger != nil {
16332		c.Client.Config.Logger.Log("This operation, ListPolicyPrincipals, has been deprecated")
16333	}
16334	op := &request.Operation{
16335		Name:       opListPolicyPrincipals,
16336		HTTPMethod: "GET",
16337		HTTPPath:   "/policy-principals",
16338		Paginator: &request.Paginator{
16339			InputTokens:     []string{"marker"},
16340			OutputTokens:    []string{"nextMarker"},
16341			LimitToken:      "pageSize",
16342			TruncationToken: "",
16343		},
16344	}
16345
16346	if input == nil {
16347		input = &ListPolicyPrincipalsInput{}
16348	}
16349
16350	output = &ListPolicyPrincipalsOutput{}
16351	req = c.newRequest(op, input, output)
16352	return
16353}
16354
16355// ListPolicyPrincipals API operation for AWS IoT.
16356//
16357// Lists the principals associated with the specified policy.
16358//
16359// Note: This action is deprecated. Please use ListTargetsForPolicy instead.
16360//
16361// Requires permission to access the ListPolicyPrincipals (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
16362// action.
16363//
16364// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16365// with awserr.Error's Code and Message methods to get detailed information about
16366// the error.
16367//
16368// See the AWS API reference guide for AWS IoT's
16369// API operation ListPolicyPrincipals for usage and error information.
16370//
16371// Returned Error Types:
16372//   * ResourceNotFoundException
16373//   The specified resource does not exist.
16374//
16375//   * InvalidRequestException
16376//   The request is not valid.
16377//
16378//   * ThrottlingException
16379//   The rate exceeds the limit.
16380//
16381//   * UnauthorizedException
16382//   You are not authorized to perform this operation.
16383//
16384//   * ServiceUnavailableException
16385//   The service is temporarily unavailable.
16386//
16387//   * InternalFailureException
16388//   An unexpected error has occurred.
16389//
16390//
16391// Deprecated: ListPolicyPrincipals has been deprecated
16392func (c *IoT) ListPolicyPrincipals(input *ListPolicyPrincipalsInput) (*ListPolicyPrincipalsOutput, error) {
16393	req, out := c.ListPolicyPrincipalsRequest(input)
16394	return out, req.Send()
16395}
16396
16397// ListPolicyPrincipalsWithContext is the same as ListPolicyPrincipals with the addition of
16398// the ability to pass a context and additional request options.
16399//
16400// See ListPolicyPrincipals for details on how to use this API operation.
16401//
16402// The context must be non-nil and will be used for request cancellation. If
16403// the context is nil a panic will occur. In the future the SDK may create
16404// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16405// for more information on using Contexts.
16406//
16407// Deprecated: ListPolicyPrincipalsWithContext has been deprecated
16408func (c *IoT) ListPolicyPrincipalsWithContext(ctx aws.Context, input *ListPolicyPrincipalsInput, opts ...request.Option) (*ListPolicyPrincipalsOutput, error) {
16409	req, out := c.ListPolicyPrincipalsRequest(input)
16410	req.SetContext(ctx)
16411	req.ApplyOptions(opts...)
16412	return out, req.Send()
16413}
16414
16415// ListPolicyPrincipalsPages iterates over the pages of a ListPolicyPrincipals operation,
16416// calling the "fn" function with the response data for each page. To stop
16417// iterating, return false from the fn function.
16418//
16419// See ListPolicyPrincipals method for more information on how to use this operation.
16420//
16421// Note: This operation can generate multiple requests to a service.
16422//
16423//    // Example iterating over at most 3 pages of a ListPolicyPrincipals operation.
16424//    pageNum := 0
16425//    err := client.ListPolicyPrincipalsPages(params,
16426//        func(page *iot.ListPolicyPrincipalsOutput, lastPage bool) bool {
16427//            pageNum++
16428//            fmt.Println(page)
16429//            return pageNum <= 3
16430//        })
16431//
16432//
16433// Deprecated: ListPolicyPrincipalsPages has been deprecated
16434func (c *IoT) ListPolicyPrincipalsPages(input *ListPolicyPrincipalsInput, fn func(*ListPolicyPrincipalsOutput, bool) bool) error {
16435	return c.ListPolicyPrincipalsPagesWithContext(aws.BackgroundContext(), input, fn)
16436}
16437
16438// ListPolicyPrincipalsPagesWithContext same as ListPolicyPrincipalsPages except
16439// it takes a Context and allows setting request options on the pages.
16440//
16441// The context must be non-nil and will be used for request cancellation. If
16442// the context is nil a panic will occur. In the future the SDK may create
16443// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16444// for more information on using Contexts.
16445//
16446// Deprecated: ListPolicyPrincipalsPagesWithContext has been deprecated
16447func (c *IoT) ListPolicyPrincipalsPagesWithContext(ctx aws.Context, input *ListPolicyPrincipalsInput, fn func(*ListPolicyPrincipalsOutput, bool) bool, opts ...request.Option) error {
16448	p := request.Pagination{
16449		NewRequest: func() (*request.Request, error) {
16450			var inCpy *ListPolicyPrincipalsInput
16451			if input != nil {
16452				tmp := *input
16453				inCpy = &tmp
16454			}
16455			req, _ := c.ListPolicyPrincipalsRequest(inCpy)
16456			req.SetContext(ctx)
16457			req.ApplyOptions(opts...)
16458			return req, nil
16459		},
16460	}
16461
16462	for p.Next() {
16463		if !fn(p.Page().(*ListPolicyPrincipalsOutput), !p.HasNextPage()) {
16464			break
16465		}
16466	}
16467
16468	return p.Err()
16469}
16470
16471const opListPolicyVersions = "ListPolicyVersions"
16472
16473// ListPolicyVersionsRequest generates a "aws/request.Request" representing the
16474// client's request for the ListPolicyVersions operation. The "output" return
16475// value will be populated with the request's response once the request completes
16476// successfully.
16477//
16478// Use "Send" method on the returned Request to send the API call to the service.
16479// the "output" return value is not valid until after Send returns without error.
16480//
16481// See ListPolicyVersions for more information on using the ListPolicyVersions
16482// API call, and error handling.
16483//
16484// This method is useful when you want to inject custom logic or configuration
16485// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16486//
16487//
16488//    // Example sending a request using the ListPolicyVersionsRequest method.
16489//    req, resp := client.ListPolicyVersionsRequest(params)
16490//
16491//    err := req.Send()
16492//    if err == nil { // resp is now filled
16493//        fmt.Println(resp)
16494//    }
16495func (c *IoT) ListPolicyVersionsRequest(input *ListPolicyVersionsInput) (req *request.Request, output *ListPolicyVersionsOutput) {
16496	op := &request.Operation{
16497		Name:       opListPolicyVersions,
16498		HTTPMethod: "GET",
16499		HTTPPath:   "/policies/{policyName}/version",
16500	}
16501
16502	if input == nil {
16503		input = &ListPolicyVersionsInput{}
16504	}
16505
16506	output = &ListPolicyVersionsOutput{}
16507	req = c.newRequest(op, input, output)
16508	return
16509}
16510
16511// ListPolicyVersions API operation for AWS IoT.
16512//
16513// Lists the versions of the specified policy and identifies the default version.
16514//
16515// Requires permission to access the ListPolicyVersions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
16516// action.
16517//
16518// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16519// with awserr.Error's Code and Message methods to get detailed information about
16520// the error.
16521//
16522// See the AWS API reference guide for AWS IoT's
16523// API operation ListPolicyVersions for usage and error information.
16524//
16525// Returned Error Types:
16526//   * ResourceNotFoundException
16527//   The specified resource does not exist.
16528//
16529//   * InvalidRequestException
16530//   The request is not valid.
16531//
16532//   * ThrottlingException
16533//   The rate exceeds the limit.
16534//
16535//   * UnauthorizedException
16536//   You are not authorized to perform this operation.
16537//
16538//   * ServiceUnavailableException
16539//   The service is temporarily unavailable.
16540//
16541//   * InternalFailureException
16542//   An unexpected error has occurred.
16543//
16544func (c *IoT) ListPolicyVersions(input *ListPolicyVersionsInput) (*ListPolicyVersionsOutput, error) {
16545	req, out := c.ListPolicyVersionsRequest(input)
16546	return out, req.Send()
16547}
16548
16549// ListPolicyVersionsWithContext is the same as ListPolicyVersions with the addition of
16550// the ability to pass a context and additional request options.
16551//
16552// See ListPolicyVersions for details on how to use this API operation.
16553//
16554// The context must be non-nil and will be used for request cancellation. If
16555// the context is nil a panic will occur. In the future the SDK may create
16556// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16557// for more information on using Contexts.
16558func (c *IoT) ListPolicyVersionsWithContext(ctx aws.Context, input *ListPolicyVersionsInput, opts ...request.Option) (*ListPolicyVersionsOutput, error) {
16559	req, out := c.ListPolicyVersionsRequest(input)
16560	req.SetContext(ctx)
16561	req.ApplyOptions(opts...)
16562	return out, req.Send()
16563}
16564
16565const opListPrincipalPolicies = "ListPrincipalPolicies"
16566
16567// ListPrincipalPoliciesRequest generates a "aws/request.Request" representing the
16568// client's request for the ListPrincipalPolicies operation. The "output" return
16569// value will be populated with the request's response once the request completes
16570// successfully.
16571//
16572// Use "Send" method on the returned Request to send the API call to the service.
16573// the "output" return value is not valid until after Send returns without error.
16574//
16575// See ListPrincipalPolicies for more information on using the ListPrincipalPolicies
16576// API call, and error handling.
16577//
16578// This method is useful when you want to inject custom logic or configuration
16579// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16580//
16581//
16582//    // Example sending a request using the ListPrincipalPoliciesRequest method.
16583//    req, resp := client.ListPrincipalPoliciesRequest(params)
16584//
16585//    err := req.Send()
16586//    if err == nil { // resp is now filled
16587//        fmt.Println(resp)
16588//    }
16589//
16590// Deprecated: ListPrincipalPolicies has been deprecated
16591func (c *IoT) ListPrincipalPoliciesRequest(input *ListPrincipalPoliciesInput) (req *request.Request, output *ListPrincipalPoliciesOutput) {
16592	if c.Client.Config.Logger != nil {
16593		c.Client.Config.Logger.Log("This operation, ListPrincipalPolicies, has been deprecated")
16594	}
16595	op := &request.Operation{
16596		Name:       opListPrincipalPolicies,
16597		HTTPMethod: "GET",
16598		HTTPPath:   "/principal-policies",
16599		Paginator: &request.Paginator{
16600			InputTokens:     []string{"marker"},
16601			OutputTokens:    []string{"nextMarker"},
16602			LimitToken:      "pageSize",
16603			TruncationToken: "",
16604		},
16605	}
16606
16607	if input == nil {
16608		input = &ListPrincipalPoliciesInput{}
16609	}
16610
16611	output = &ListPrincipalPoliciesOutput{}
16612	req = c.newRequest(op, input, output)
16613	return
16614}
16615
16616// ListPrincipalPolicies API operation for AWS IoT.
16617//
16618// Lists the policies attached to the specified principal. If you use an Cognito
16619// identity, the ID must be in AmazonCognito Identity format (https://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetCredentialsForIdentity.html#API_GetCredentialsForIdentity_RequestSyntax).
16620//
16621// Note: This action is deprecated. Please use ListAttachedPolicies instead.
16622//
16623// Requires permission to access the ListPrincipalPolicies (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
16624// action.
16625//
16626// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16627// with awserr.Error's Code and Message methods to get detailed information about
16628// the error.
16629//
16630// See the AWS API reference guide for AWS IoT's
16631// API operation ListPrincipalPolicies for usage and error information.
16632//
16633// Returned Error Types:
16634//   * ResourceNotFoundException
16635//   The specified resource does not exist.
16636//
16637//   * InvalidRequestException
16638//   The request is not valid.
16639//
16640//   * ThrottlingException
16641//   The rate exceeds the limit.
16642//
16643//   * UnauthorizedException
16644//   You are not authorized to perform this operation.
16645//
16646//   * ServiceUnavailableException
16647//   The service is temporarily unavailable.
16648//
16649//   * InternalFailureException
16650//   An unexpected error has occurred.
16651//
16652//
16653// Deprecated: ListPrincipalPolicies has been deprecated
16654func (c *IoT) ListPrincipalPolicies(input *ListPrincipalPoliciesInput) (*ListPrincipalPoliciesOutput, error) {
16655	req, out := c.ListPrincipalPoliciesRequest(input)
16656	return out, req.Send()
16657}
16658
16659// ListPrincipalPoliciesWithContext is the same as ListPrincipalPolicies with the addition of
16660// the ability to pass a context and additional request options.
16661//
16662// See ListPrincipalPolicies for details on how to use this API operation.
16663//
16664// The context must be non-nil and will be used for request cancellation. If
16665// the context is nil a panic will occur. In the future the SDK may create
16666// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16667// for more information on using Contexts.
16668//
16669// Deprecated: ListPrincipalPoliciesWithContext has been deprecated
16670func (c *IoT) ListPrincipalPoliciesWithContext(ctx aws.Context, input *ListPrincipalPoliciesInput, opts ...request.Option) (*ListPrincipalPoliciesOutput, error) {
16671	req, out := c.ListPrincipalPoliciesRequest(input)
16672	req.SetContext(ctx)
16673	req.ApplyOptions(opts...)
16674	return out, req.Send()
16675}
16676
16677// ListPrincipalPoliciesPages iterates over the pages of a ListPrincipalPolicies operation,
16678// calling the "fn" function with the response data for each page. To stop
16679// iterating, return false from the fn function.
16680//
16681// See ListPrincipalPolicies method for more information on how to use this operation.
16682//
16683// Note: This operation can generate multiple requests to a service.
16684//
16685//    // Example iterating over at most 3 pages of a ListPrincipalPolicies operation.
16686//    pageNum := 0
16687//    err := client.ListPrincipalPoliciesPages(params,
16688//        func(page *iot.ListPrincipalPoliciesOutput, lastPage bool) bool {
16689//            pageNum++
16690//            fmt.Println(page)
16691//            return pageNum <= 3
16692//        })
16693//
16694//
16695// Deprecated: ListPrincipalPoliciesPages has been deprecated
16696func (c *IoT) ListPrincipalPoliciesPages(input *ListPrincipalPoliciesInput, fn func(*ListPrincipalPoliciesOutput, bool) bool) error {
16697	return c.ListPrincipalPoliciesPagesWithContext(aws.BackgroundContext(), input, fn)
16698}
16699
16700// ListPrincipalPoliciesPagesWithContext same as ListPrincipalPoliciesPages except
16701// it takes a Context and allows setting request options on the pages.
16702//
16703// The context must be non-nil and will be used for request cancellation. If
16704// the context is nil a panic will occur. In the future the SDK may create
16705// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16706// for more information on using Contexts.
16707//
16708// Deprecated: ListPrincipalPoliciesPagesWithContext has been deprecated
16709func (c *IoT) ListPrincipalPoliciesPagesWithContext(ctx aws.Context, input *ListPrincipalPoliciesInput, fn func(*ListPrincipalPoliciesOutput, bool) bool, opts ...request.Option) error {
16710	p := request.Pagination{
16711		NewRequest: func() (*request.Request, error) {
16712			var inCpy *ListPrincipalPoliciesInput
16713			if input != nil {
16714				tmp := *input
16715				inCpy = &tmp
16716			}
16717			req, _ := c.ListPrincipalPoliciesRequest(inCpy)
16718			req.SetContext(ctx)
16719			req.ApplyOptions(opts...)
16720			return req, nil
16721		},
16722	}
16723
16724	for p.Next() {
16725		if !fn(p.Page().(*ListPrincipalPoliciesOutput), !p.HasNextPage()) {
16726			break
16727		}
16728	}
16729
16730	return p.Err()
16731}
16732
16733const opListPrincipalThings = "ListPrincipalThings"
16734
16735// ListPrincipalThingsRequest generates a "aws/request.Request" representing the
16736// client's request for the ListPrincipalThings operation. The "output" return
16737// value will be populated with the request's response once the request completes
16738// successfully.
16739//
16740// Use "Send" method on the returned Request to send the API call to the service.
16741// the "output" return value is not valid until after Send returns without error.
16742//
16743// See ListPrincipalThings for more information on using the ListPrincipalThings
16744// API call, and error handling.
16745//
16746// This method is useful when you want to inject custom logic or configuration
16747// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16748//
16749//
16750//    // Example sending a request using the ListPrincipalThingsRequest method.
16751//    req, resp := client.ListPrincipalThingsRequest(params)
16752//
16753//    err := req.Send()
16754//    if err == nil { // resp is now filled
16755//        fmt.Println(resp)
16756//    }
16757func (c *IoT) ListPrincipalThingsRequest(input *ListPrincipalThingsInput) (req *request.Request, output *ListPrincipalThingsOutput) {
16758	op := &request.Operation{
16759		Name:       opListPrincipalThings,
16760		HTTPMethod: "GET",
16761		HTTPPath:   "/principals/things",
16762		Paginator: &request.Paginator{
16763			InputTokens:     []string{"nextToken"},
16764			OutputTokens:    []string{"nextToken"},
16765			LimitToken:      "maxResults",
16766			TruncationToken: "",
16767		},
16768	}
16769
16770	if input == nil {
16771		input = &ListPrincipalThingsInput{}
16772	}
16773
16774	output = &ListPrincipalThingsOutput{}
16775	req = c.newRequest(op, input, output)
16776	return
16777}
16778
16779// ListPrincipalThings API operation for AWS IoT.
16780//
16781// Lists the things associated with the specified principal. A principal can
16782// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
16783// or federated identities.
16784//
16785// Requires permission to access the ListPrincipalThings (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
16786// action.
16787//
16788// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16789// with awserr.Error's Code and Message methods to get detailed information about
16790// the error.
16791//
16792// See the AWS API reference guide for AWS IoT's
16793// API operation ListPrincipalThings for usage and error information.
16794//
16795// Returned Error Types:
16796//   * InvalidRequestException
16797//   The request is not valid.
16798//
16799//   * ThrottlingException
16800//   The rate exceeds the limit.
16801//
16802//   * UnauthorizedException
16803//   You are not authorized to perform this operation.
16804//
16805//   * ServiceUnavailableException
16806//   The service is temporarily unavailable.
16807//
16808//   * InternalFailureException
16809//   An unexpected error has occurred.
16810//
16811//   * ResourceNotFoundException
16812//   The specified resource does not exist.
16813//
16814func (c *IoT) ListPrincipalThings(input *ListPrincipalThingsInput) (*ListPrincipalThingsOutput, error) {
16815	req, out := c.ListPrincipalThingsRequest(input)
16816	return out, req.Send()
16817}
16818
16819// ListPrincipalThingsWithContext is the same as ListPrincipalThings with the addition of
16820// the ability to pass a context and additional request options.
16821//
16822// See ListPrincipalThings for details on how to use this API operation.
16823//
16824// The context must be non-nil and will be used for request cancellation. If
16825// the context is nil a panic will occur. In the future the SDK may create
16826// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16827// for more information on using Contexts.
16828func (c *IoT) ListPrincipalThingsWithContext(ctx aws.Context, input *ListPrincipalThingsInput, opts ...request.Option) (*ListPrincipalThingsOutput, error) {
16829	req, out := c.ListPrincipalThingsRequest(input)
16830	req.SetContext(ctx)
16831	req.ApplyOptions(opts...)
16832	return out, req.Send()
16833}
16834
16835// ListPrincipalThingsPages iterates over the pages of a ListPrincipalThings operation,
16836// calling the "fn" function with the response data for each page. To stop
16837// iterating, return false from the fn function.
16838//
16839// See ListPrincipalThings method for more information on how to use this operation.
16840//
16841// Note: This operation can generate multiple requests to a service.
16842//
16843//    // Example iterating over at most 3 pages of a ListPrincipalThings operation.
16844//    pageNum := 0
16845//    err := client.ListPrincipalThingsPages(params,
16846//        func(page *iot.ListPrincipalThingsOutput, lastPage bool) bool {
16847//            pageNum++
16848//            fmt.Println(page)
16849//            return pageNum <= 3
16850//        })
16851//
16852func (c *IoT) ListPrincipalThingsPages(input *ListPrincipalThingsInput, fn func(*ListPrincipalThingsOutput, bool) bool) error {
16853	return c.ListPrincipalThingsPagesWithContext(aws.BackgroundContext(), input, fn)
16854}
16855
16856// ListPrincipalThingsPagesWithContext same as ListPrincipalThingsPages except
16857// it takes a Context and allows setting request options on the pages.
16858//
16859// The context must be non-nil and will be used for request cancellation. If
16860// the context is nil a panic will occur. In the future the SDK may create
16861// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16862// for more information on using Contexts.
16863func (c *IoT) ListPrincipalThingsPagesWithContext(ctx aws.Context, input *ListPrincipalThingsInput, fn func(*ListPrincipalThingsOutput, bool) bool, opts ...request.Option) error {
16864	p := request.Pagination{
16865		NewRequest: func() (*request.Request, error) {
16866			var inCpy *ListPrincipalThingsInput
16867			if input != nil {
16868				tmp := *input
16869				inCpy = &tmp
16870			}
16871			req, _ := c.ListPrincipalThingsRequest(inCpy)
16872			req.SetContext(ctx)
16873			req.ApplyOptions(opts...)
16874			return req, nil
16875		},
16876	}
16877
16878	for p.Next() {
16879		if !fn(p.Page().(*ListPrincipalThingsOutput), !p.HasNextPage()) {
16880			break
16881		}
16882	}
16883
16884	return p.Err()
16885}
16886
16887const opListProvisioningTemplateVersions = "ListProvisioningTemplateVersions"
16888
16889// ListProvisioningTemplateVersionsRequest generates a "aws/request.Request" representing the
16890// client's request for the ListProvisioningTemplateVersions operation. The "output" return
16891// value will be populated with the request's response once the request completes
16892// successfully.
16893//
16894// Use "Send" method on the returned Request to send the API call to the service.
16895// the "output" return value is not valid until after Send returns without error.
16896//
16897// See ListProvisioningTemplateVersions for more information on using the ListProvisioningTemplateVersions
16898// API call, and error handling.
16899//
16900// This method is useful when you want to inject custom logic or configuration
16901// into the SDK's request lifecycle. Such as custom headers, or retry logic.
16902//
16903//
16904//    // Example sending a request using the ListProvisioningTemplateVersionsRequest method.
16905//    req, resp := client.ListProvisioningTemplateVersionsRequest(params)
16906//
16907//    err := req.Send()
16908//    if err == nil { // resp is now filled
16909//        fmt.Println(resp)
16910//    }
16911func (c *IoT) ListProvisioningTemplateVersionsRequest(input *ListProvisioningTemplateVersionsInput) (req *request.Request, output *ListProvisioningTemplateVersionsOutput) {
16912	op := &request.Operation{
16913		Name:       opListProvisioningTemplateVersions,
16914		HTTPMethod: "GET",
16915		HTTPPath:   "/provisioning-templates/{templateName}/versions",
16916		Paginator: &request.Paginator{
16917			InputTokens:     []string{"nextToken"},
16918			OutputTokens:    []string{"nextToken"},
16919			LimitToken:      "maxResults",
16920			TruncationToken: "",
16921		},
16922	}
16923
16924	if input == nil {
16925		input = &ListProvisioningTemplateVersionsInput{}
16926	}
16927
16928	output = &ListProvisioningTemplateVersionsOutput{}
16929	req = c.newRequest(op, input, output)
16930	return
16931}
16932
16933// ListProvisioningTemplateVersions API operation for AWS IoT.
16934//
16935// A list of fleet provisioning template versions.
16936//
16937// Requires permission to access the ListProvisioningTemplateVersions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
16938// action.
16939//
16940// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
16941// with awserr.Error's Code and Message methods to get detailed information about
16942// the error.
16943//
16944// See the AWS API reference guide for AWS IoT's
16945// API operation ListProvisioningTemplateVersions for usage and error information.
16946//
16947// Returned Error Types:
16948//   * InternalFailureException
16949//   An unexpected error has occurred.
16950//
16951//   * InvalidRequestException
16952//   The request is not valid.
16953//
16954//   * ThrottlingException
16955//   The rate exceeds the limit.
16956//
16957//   * ResourceNotFoundException
16958//   The specified resource does not exist.
16959//
16960//   * UnauthorizedException
16961//   You are not authorized to perform this operation.
16962//
16963func (c *IoT) ListProvisioningTemplateVersions(input *ListProvisioningTemplateVersionsInput) (*ListProvisioningTemplateVersionsOutput, error) {
16964	req, out := c.ListProvisioningTemplateVersionsRequest(input)
16965	return out, req.Send()
16966}
16967
16968// ListProvisioningTemplateVersionsWithContext is the same as ListProvisioningTemplateVersions with the addition of
16969// the ability to pass a context and additional request options.
16970//
16971// See ListProvisioningTemplateVersions for details on how to use this API operation.
16972//
16973// The context must be non-nil and will be used for request cancellation. If
16974// the context is nil a panic will occur. In the future the SDK may create
16975// sub-contexts for http.Requests. See https://golang.org/pkg/context/
16976// for more information on using Contexts.
16977func (c *IoT) ListProvisioningTemplateVersionsWithContext(ctx aws.Context, input *ListProvisioningTemplateVersionsInput, opts ...request.Option) (*ListProvisioningTemplateVersionsOutput, error) {
16978	req, out := c.ListProvisioningTemplateVersionsRequest(input)
16979	req.SetContext(ctx)
16980	req.ApplyOptions(opts...)
16981	return out, req.Send()
16982}
16983
16984// ListProvisioningTemplateVersionsPages iterates over the pages of a ListProvisioningTemplateVersions operation,
16985// calling the "fn" function with the response data for each page. To stop
16986// iterating, return false from the fn function.
16987//
16988// See ListProvisioningTemplateVersions method for more information on how to use this operation.
16989//
16990// Note: This operation can generate multiple requests to a service.
16991//
16992//    // Example iterating over at most 3 pages of a ListProvisioningTemplateVersions operation.
16993//    pageNum := 0
16994//    err := client.ListProvisioningTemplateVersionsPages(params,
16995//        func(page *iot.ListProvisioningTemplateVersionsOutput, lastPage bool) bool {
16996//            pageNum++
16997//            fmt.Println(page)
16998//            return pageNum <= 3
16999//        })
17000//
17001func (c *IoT) ListProvisioningTemplateVersionsPages(input *ListProvisioningTemplateVersionsInput, fn func(*ListProvisioningTemplateVersionsOutput, bool) bool) error {
17002	return c.ListProvisioningTemplateVersionsPagesWithContext(aws.BackgroundContext(), input, fn)
17003}
17004
17005// ListProvisioningTemplateVersionsPagesWithContext same as ListProvisioningTemplateVersionsPages except
17006// it takes a Context and allows setting request options on the pages.
17007//
17008// The context must be non-nil and will be used for request cancellation. If
17009// the context is nil a panic will occur. In the future the SDK may create
17010// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17011// for more information on using Contexts.
17012func (c *IoT) ListProvisioningTemplateVersionsPagesWithContext(ctx aws.Context, input *ListProvisioningTemplateVersionsInput, fn func(*ListProvisioningTemplateVersionsOutput, bool) bool, opts ...request.Option) error {
17013	p := request.Pagination{
17014		NewRequest: func() (*request.Request, error) {
17015			var inCpy *ListProvisioningTemplateVersionsInput
17016			if input != nil {
17017				tmp := *input
17018				inCpy = &tmp
17019			}
17020			req, _ := c.ListProvisioningTemplateVersionsRequest(inCpy)
17021			req.SetContext(ctx)
17022			req.ApplyOptions(opts...)
17023			return req, nil
17024		},
17025	}
17026
17027	for p.Next() {
17028		if !fn(p.Page().(*ListProvisioningTemplateVersionsOutput), !p.HasNextPage()) {
17029			break
17030		}
17031	}
17032
17033	return p.Err()
17034}
17035
17036const opListProvisioningTemplates = "ListProvisioningTemplates"
17037
17038// ListProvisioningTemplatesRequest generates a "aws/request.Request" representing the
17039// client's request for the ListProvisioningTemplates operation. The "output" return
17040// value will be populated with the request's response once the request completes
17041// successfully.
17042//
17043// Use "Send" method on the returned Request to send the API call to the service.
17044// the "output" return value is not valid until after Send returns without error.
17045//
17046// See ListProvisioningTemplates for more information on using the ListProvisioningTemplates
17047// API call, and error handling.
17048//
17049// This method is useful when you want to inject custom logic or configuration
17050// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17051//
17052//
17053//    // Example sending a request using the ListProvisioningTemplatesRequest method.
17054//    req, resp := client.ListProvisioningTemplatesRequest(params)
17055//
17056//    err := req.Send()
17057//    if err == nil { // resp is now filled
17058//        fmt.Println(resp)
17059//    }
17060func (c *IoT) ListProvisioningTemplatesRequest(input *ListProvisioningTemplatesInput) (req *request.Request, output *ListProvisioningTemplatesOutput) {
17061	op := &request.Operation{
17062		Name:       opListProvisioningTemplates,
17063		HTTPMethod: "GET",
17064		HTTPPath:   "/provisioning-templates",
17065		Paginator: &request.Paginator{
17066			InputTokens:     []string{"nextToken"},
17067			OutputTokens:    []string{"nextToken"},
17068			LimitToken:      "maxResults",
17069			TruncationToken: "",
17070		},
17071	}
17072
17073	if input == nil {
17074		input = &ListProvisioningTemplatesInput{}
17075	}
17076
17077	output = &ListProvisioningTemplatesOutput{}
17078	req = c.newRequest(op, input, output)
17079	return
17080}
17081
17082// ListProvisioningTemplates API operation for AWS IoT.
17083//
17084// Lists the fleet provisioning templates in your Amazon Web Services account.
17085//
17086// Requires permission to access the ListProvisioningTemplates (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
17087// action.
17088//
17089// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17090// with awserr.Error's Code and Message methods to get detailed information about
17091// the error.
17092//
17093// See the AWS API reference guide for AWS IoT's
17094// API operation ListProvisioningTemplates for usage and error information.
17095//
17096// Returned Error Types:
17097//   * InternalFailureException
17098//   An unexpected error has occurred.
17099//
17100//   * InvalidRequestException
17101//   The request is not valid.
17102//
17103//   * ThrottlingException
17104//   The rate exceeds the limit.
17105//
17106//   * UnauthorizedException
17107//   You are not authorized to perform this operation.
17108//
17109func (c *IoT) ListProvisioningTemplates(input *ListProvisioningTemplatesInput) (*ListProvisioningTemplatesOutput, error) {
17110	req, out := c.ListProvisioningTemplatesRequest(input)
17111	return out, req.Send()
17112}
17113
17114// ListProvisioningTemplatesWithContext is the same as ListProvisioningTemplates with the addition of
17115// the ability to pass a context and additional request options.
17116//
17117// See ListProvisioningTemplates for details on how to use this API operation.
17118//
17119// The context must be non-nil and will be used for request cancellation. If
17120// the context is nil a panic will occur. In the future the SDK may create
17121// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17122// for more information on using Contexts.
17123func (c *IoT) ListProvisioningTemplatesWithContext(ctx aws.Context, input *ListProvisioningTemplatesInput, opts ...request.Option) (*ListProvisioningTemplatesOutput, error) {
17124	req, out := c.ListProvisioningTemplatesRequest(input)
17125	req.SetContext(ctx)
17126	req.ApplyOptions(opts...)
17127	return out, req.Send()
17128}
17129
17130// ListProvisioningTemplatesPages iterates over the pages of a ListProvisioningTemplates operation,
17131// calling the "fn" function with the response data for each page. To stop
17132// iterating, return false from the fn function.
17133//
17134// See ListProvisioningTemplates method for more information on how to use this operation.
17135//
17136// Note: This operation can generate multiple requests to a service.
17137//
17138//    // Example iterating over at most 3 pages of a ListProvisioningTemplates operation.
17139//    pageNum := 0
17140//    err := client.ListProvisioningTemplatesPages(params,
17141//        func(page *iot.ListProvisioningTemplatesOutput, lastPage bool) bool {
17142//            pageNum++
17143//            fmt.Println(page)
17144//            return pageNum <= 3
17145//        })
17146//
17147func (c *IoT) ListProvisioningTemplatesPages(input *ListProvisioningTemplatesInput, fn func(*ListProvisioningTemplatesOutput, bool) bool) error {
17148	return c.ListProvisioningTemplatesPagesWithContext(aws.BackgroundContext(), input, fn)
17149}
17150
17151// ListProvisioningTemplatesPagesWithContext same as ListProvisioningTemplatesPages except
17152// it takes a Context and allows setting request options on the pages.
17153//
17154// The context must be non-nil and will be used for request cancellation. If
17155// the context is nil a panic will occur. In the future the SDK may create
17156// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17157// for more information on using Contexts.
17158func (c *IoT) ListProvisioningTemplatesPagesWithContext(ctx aws.Context, input *ListProvisioningTemplatesInput, fn func(*ListProvisioningTemplatesOutput, bool) bool, opts ...request.Option) error {
17159	p := request.Pagination{
17160		NewRequest: func() (*request.Request, error) {
17161			var inCpy *ListProvisioningTemplatesInput
17162			if input != nil {
17163				tmp := *input
17164				inCpy = &tmp
17165			}
17166			req, _ := c.ListProvisioningTemplatesRequest(inCpy)
17167			req.SetContext(ctx)
17168			req.ApplyOptions(opts...)
17169			return req, nil
17170		},
17171	}
17172
17173	for p.Next() {
17174		if !fn(p.Page().(*ListProvisioningTemplatesOutput), !p.HasNextPage()) {
17175			break
17176		}
17177	}
17178
17179	return p.Err()
17180}
17181
17182const opListRoleAliases = "ListRoleAliases"
17183
17184// ListRoleAliasesRequest generates a "aws/request.Request" representing the
17185// client's request for the ListRoleAliases operation. The "output" return
17186// value will be populated with the request's response once the request completes
17187// successfully.
17188//
17189// Use "Send" method on the returned Request to send the API call to the service.
17190// the "output" return value is not valid until after Send returns without error.
17191//
17192// See ListRoleAliases for more information on using the ListRoleAliases
17193// API call, and error handling.
17194//
17195// This method is useful when you want to inject custom logic or configuration
17196// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17197//
17198//
17199//    // Example sending a request using the ListRoleAliasesRequest method.
17200//    req, resp := client.ListRoleAliasesRequest(params)
17201//
17202//    err := req.Send()
17203//    if err == nil { // resp is now filled
17204//        fmt.Println(resp)
17205//    }
17206func (c *IoT) ListRoleAliasesRequest(input *ListRoleAliasesInput) (req *request.Request, output *ListRoleAliasesOutput) {
17207	op := &request.Operation{
17208		Name:       opListRoleAliases,
17209		HTTPMethod: "GET",
17210		HTTPPath:   "/role-aliases",
17211		Paginator: &request.Paginator{
17212			InputTokens:     []string{"marker"},
17213			OutputTokens:    []string{"nextMarker"},
17214			LimitToken:      "pageSize",
17215			TruncationToken: "",
17216		},
17217	}
17218
17219	if input == nil {
17220		input = &ListRoleAliasesInput{}
17221	}
17222
17223	output = &ListRoleAliasesOutput{}
17224	req = c.newRequest(op, input, output)
17225	return
17226}
17227
17228// ListRoleAliases API operation for AWS IoT.
17229//
17230// Lists the role aliases registered in your account.
17231//
17232// Requires permission to access the ListRoleAliases (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
17233// action.
17234//
17235// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17236// with awserr.Error's Code and Message methods to get detailed information about
17237// the error.
17238//
17239// See the AWS API reference guide for AWS IoT's
17240// API operation ListRoleAliases for usage and error information.
17241//
17242// Returned Error Types:
17243//   * InvalidRequestException
17244//   The request is not valid.
17245//
17246//   * ThrottlingException
17247//   The rate exceeds the limit.
17248//
17249//   * UnauthorizedException
17250//   You are not authorized to perform this operation.
17251//
17252//   * ServiceUnavailableException
17253//   The service is temporarily unavailable.
17254//
17255//   * InternalFailureException
17256//   An unexpected error has occurred.
17257//
17258func (c *IoT) ListRoleAliases(input *ListRoleAliasesInput) (*ListRoleAliasesOutput, error) {
17259	req, out := c.ListRoleAliasesRequest(input)
17260	return out, req.Send()
17261}
17262
17263// ListRoleAliasesWithContext is the same as ListRoleAliases with the addition of
17264// the ability to pass a context and additional request options.
17265//
17266// See ListRoleAliases for details on how to use this API operation.
17267//
17268// The context must be non-nil and will be used for request cancellation. If
17269// the context is nil a panic will occur. In the future the SDK may create
17270// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17271// for more information on using Contexts.
17272func (c *IoT) ListRoleAliasesWithContext(ctx aws.Context, input *ListRoleAliasesInput, opts ...request.Option) (*ListRoleAliasesOutput, error) {
17273	req, out := c.ListRoleAliasesRequest(input)
17274	req.SetContext(ctx)
17275	req.ApplyOptions(opts...)
17276	return out, req.Send()
17277}
17278
17279// ListRoleAliasesPages iterates over the pages of a ListRoleAliases operation,
17280// calling the "fn" function with the response data for each page. To stop
17281// iterating, return false from the fn function.
17282//
17283// See ListRoleAliases method for more information on how to use this operation.
17284//
17285// Note: This operation can generate multiple requests to a service.
17286//
17287//    // Example iterating over at most 3 pages of a ListRoleAliases operation.
17288//    pageNum := 0
17289//    err := client.ListRoleAliasesPages(params,
17290//        func(page *iot.ListRoleAliasesOutput, lastPage bool) bool {
17291//            pageNum++
17292//            fmt.Println(page)
17293//            return pageNum <= 3
17294//        })
17295//
17296func (c *IoT) ListRoleAliasesPages(input *ListRoleAliasesInput, fn func(*ListRoleAliasesOutput, bool) bool) error {
17297	return c.ListRoleAliasesPagesWithContext(aws.BackgroundContext(), input, fn)
17298}
17299
17300// ListRoleAliasesPagesWithContext same as ListRoleAliasesPages except
17301// it takes a Context and allows setting request options on the pages.
17302//
17303// The context must be non-nil and will be used for request cancellation. If
17304// the context is nil a panic will occur. In the future the SDK may create
17305// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17306// for more information on using Contexts.
17307func (c *IoT) ListRoleAliasesPagesWithContext(ctx aws.Context, input *ListRoleAliasesInput, fn func(*ListRoleAliasesOutput, bool) bool, opts ...request.Option) error {
17308	p := request.Pagination{
17309		NewRequest: func() (*request.Request, error) {
17310			var inCpy *ListRoleAliasesInput
17311			if input != nil {
17312				tmp := *input
17313				inCpy = &tmp
17314			}
17315			req, _ := c.ListRoleAliasesRequest(inCpy)
17316			req.SetContext(ctx)
17317			req.ApplyOptions(opts...)
17318			return req, nil
17319		},
17320	}
17321
17322	for p.Next() {
17323		if !fn(p.Page().(*ListRoleAliasesOutput), !p.HasNextPage()) {
17324			break
17325		}
17326	}
17327
17328	return p.Err()
17329}
17330
17331const opListScheduledAudits = "ListScheduledAudits"
17332
17333// ListScheduledAuditsRequest generates a "aws/request.Request" representing the
17334// client's request for the ListScheduledAudits operation. The "output" return
17335// value will be populated with the request's response once the request completes
17336// successfully.
17337//
17338// Use "Send" method on the returned Request to send the API call to the service.
17339// the "output" return value is not valid until after Send returns without error.
17340//
17341// See ListScheduledAudits for more information on using the ListScheduledAudits
17342// API call, and error handling.
17343//
17344// This method is useful when you want to inject custom logic or configuration
17345// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17346//
17347//
17348//    // Example sending a request using the ListScheduledAuditsRequest method.
17349//    req, resp := client.ListScheduledAuditsRequest(params)
17350//
17351//    err := req.Send()
17352//    if err == nil { // resp is now filled
17353//        fmt.Println(resp)
17354//    }
17355func (c *IoT) ListScheduledAuditsRequest(input *ListScheduledAuditsInput) (req *request.Request, output *ListScheduledAuditsOutput) {
17356	op := &request.Operation{
17357		Name:       opListScheduledAudits,
17358		HTTPMethod: "GET",
17359		HTTPPath:   "/audit/scheduledaudits",
17360		Paginator: &request.Paginator{
17361			InputTokens:     []string{"nextToken"},
17362			OutputTokens:    []string{"nextToken"},
17363			LimitToken:      "maxResults",
17364			TruncationToken: "",
17365		},
17366	}
17367
17368	if input == nil {
17369		input = &ListScheduledAuditsInput{}
17370	}
17371
17372	output = &ListScheduledAuditsOutput{}
17373	req = c.newRequest(op, input, output)
17374	return
17375}
17376
17377// ListScheduledAudits API operation for AWS IoT.
17378//
17379// Lists all of your scheduled audits.
17380//
17381// Requires permission to access the ListScheduledAudits (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
17382// action.
17383//
17384// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17385// with awserr.Error's Code and Message methods to get detailed information about
17386// the error.
17387//
17388// See the AWS API reference guide for AWS IoT's
17389// API operation ListScheduledAudits for usage and error information.
17390//
17391// Returned Error Types:
17392//   * InvalidRequestException
17393//   The request is not valid.
17394//
17395//   * ThrottlingException
17396//   The rate exceeds the limit.
17397//
17398//   * InternalFailureException
17399//   An unexpected error has occurred.
17400//
17401func (c *IoT) ListScheduledAudits(input *ListScheduledAuditsInput) (*ListScheduledAuditsOutput, error) {
17402	req, out := c.ListScheduledAuditsRequest(input)
17403	return out, req.Send()
17404}
17405
17406// ListScheduledAuditsWithContext is the same as ListScheduledAudits with the addition of
17407// the ability to pass a context and additional request options.
17408//
17409// See ListScheduledAudits for details on how to use this API operation.
17410//
17411// The context must be non-nil and will be used for request cancellation. If
17412// the context is nil a panic will occur. In the future the SDK may create
17413// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17414// for more information on using Contexts.
17415func (c *IoT) ListScheduledAuditsWithContext(ctx aws.Context, input *ListScheduledAuditsInput, opts ...request.Option) (*ListScheduledAuditsOutput, error) {
17416	req, out := c.ListScheduledAuditsRequest(input)
17417	req.SetContext(ctx)
17418	req.ApplyOptions(opts...)
17419	return out, req.Send()
17420}
17421
17422// ListScheduledAuditsPages iterates over the pages of a ListScheduledAudits operation,
17423// calling the "fn" function with the response data for each page. To stop
17424// iterating, return false from the fn function.
17425//
17426// See ListScheduledAudits method for more information on how to use this operation.
17427//
17428// Note: This operation can generate multiple requests to a service.
17429//
17430//    // Example iterating over at most 3 pages of a ListScheduledAudits operation.
17431//    pageNum := 0
17432//    err := client.ListScheduledAuditsPages(params,
17433//        func(page *iot.ListScheduledAuditsOutput, lastPage bool) bool {
17434//            pageNum++
17435//            fmt.Println(page)
17436//            return pageNum <= 3
17437//        })
17438//
17439func (c *IoT) ListScheduledAuditsPages(input *ListScheduledAuditsInput, fn func(*ListScheduledAuditsOutput, bool) bool) error {
17440	return c.ListScheduledAuditsPagesWithContext(aws.BackgroundContext(), input, fn)
17441}
17442
17443// ListScheduledAuditsPagesWithContext same as ListScheduledAuditsPages except
17444// it takes a Context and allows setting request options on the pages.
17445//
17446// The context must be non-nil and will be used for request cancellation. If
17447// the context is nil a panic will occur. In the future the SDK may create
17448// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17449// for more information on using Contexts.
17450func (c *IoT) ListScheduledAuditsPagesWithContext(ctx aws.Context, input *ListScheduledAuditsInput, fn func(*ListScheduledAuditsOutput, bool) bool, opts ...request.Option) error {
17451	p := request.Pagination{
17452		NewRequest: func() (*request.Request, error) {
17453			var inCpy *ListScheduledAuditsInput
17454			if input != nil {
17455				tmp := *input
17456				inCpy = &tmp
17457			}
17458			req, _ := c.ListScheduledAuditsRequest(inCpy)
17459			req.SetContext(ctx)
17460			req.ApplyOptions(opts...)
17461			return req, nil
17462		},
17463	}
17464
17465	for p.Next() {
17466		if !fn(p.Page().(*ListScheduledAuditsOutput), !p.HasNextPage()) {
17467			break
17468		}
17469	}
17470
17471	return p.Err()
17472}
17473
17474const opListSecurityProfiles = "ListSecurityProfiles"
17475
17476// ListSecurityProfilesRequest generates a "aws/request.Request" representing the
17477// client's request for the ListSecurityProfiles operation. The "output" return
17478// value will be populated with the request's response once the request completes
17479// successfully.
17480//
17481// Use "Send" method on the returned Request to send the API call to the service.
17482// the "output" return value is not valid until after Send returns without error.
17483//
17484// See ListSecurityProfiles for more information on using the ListSecurityProfiles
17485// API call, and error handling.
17486//
17487// This method is useful when you want to inject custom logic or configuration
17488// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17489//
17490//
17491//    // Example sending a request using the ListSecurityProfilesRequest method.
17492//    req, resp := client.ListSecurityProfilesRequest(params)
17493//
17494//    err := req.Send()
17495//    if err == nil { // resp is now filled
17496//        fmt.Println(resp)
17497//    }
17498func (c *IoT) ListSecurityProfilesRequest(input *ListSecurityProfilesInput) (req *request.Request, output *ListSecurityProfilesOutput) {
17499	op := &request.Operation{
17500		Name:       opListSecurityProfiles,
17501		HTTPMethod: "GET",
17502		HTTPPath:   "/security-profiles",
17503		Paginator: &request.Paginator{
17504			InputTokens:     []string{"nextToken"},
17505			OutputTokens:    []string{"nextToken"},
17506			LimitToken:      "maxResults",
17507			TruncationToken: "",
17508		},
17509	}
17510
17511	if input == nil {
17512		input = &ListSecurityProfilesInput{}
17513	}
17514
17515	output = &ListSecurityProfilesOutput{}
17516	req = c.newRequest(op, input, output)
17517	return
17518}
17519
17520// ListSecurityProfiles API operation for AWS IoT.
17521//
17522// Lists the Device Defender security profiles you've created. You can filter
17523// security profiles by dimension or custom metric.
17524//
17525// Requires permission to access the ListSecurityProfiles (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
17526// action.
17527//
17528// dimensionName and metricName cannot be used in the same request.
17529//
17530// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17531// with awserr.Error's Code and Message methods to get detailed information about
17532// the error.
17533//
17534// See the AWS API reference guide for AWS IoT's
17535// API operation ListSecurityProfiles for usage and error information.
17536//
17537// Returned Error Types:
17538//   * InvalidRequestException
17539//   The request is not valid.
17540//
17541//   * ThrottlingException
17542//   The rate exceeds the limit.
17543//
17544//   * InternalFailureException
17545//   An unexpected error has occurred.
17546//
17547//   * ResourceNotFoundException
17548//   The specified resource does not exist.
17549//
17550func (c *IoT) ListSecurityProfiles(input *ListSecurityProfilesInput) (*ListSecurityProfilesOutput, error) {
17551	req, out := c.ListSecurityProfilesRequest(input)
17552	return out, req.Send()
17553}
17554
17555// ListSecurityProfilesWithContext is the same as ListSecurityProfiles with the addition of
17556// the ability to pass a context and additional request options.
17557//
17558// See ListSecurityProfiles for details on how to use this API operation.
17559//
17560// The context must be non-nil and will be used for request cancellation. If
17561// the context is nil a panic will occur. In the future the SDK may create
17562// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17563// for more information on using Contexts.
17564func (c *IoT) ListSecurityProfilesWithContext(ctx aws.Context, input *ListSecurityProfilesInput, opts ...request.Option) (*ListSecurityProfilesOutput, error) {
17565	req, out := c.ListSecurityProfilesRequest(input)
17566	req.SetContext(ctx)
17567	req.ApplyOptions(opts...)
17568	return out, req.Send()
17569}
17570
17571// ListSecurityProfilesPages iterates over the pages of a ListSecurityProfiles operation,
17572// calling the "fn" function with the response data for each page. To stop
17573// iterating, return false from the fn function.
17574//
17575// See ListSecurityProfiles method for more information on how to use this operation.
17576//
17577// Note: This operation can generate multiple requests to a service.
17578//
17579//    // Example iterating over at most 3 pages of a ListSecurityProfiles operation.
17580//    pageNum := 0
17581//    err := client.ListSecurityProfilesPages(params,
17582//        func(page *iot.ListSecurityProfilesOutput, lastPage bool) bool {
17583//            pageNum++
17584//            fmt.Println(page)
17585//            return pageNum <= 3
17586//        })
17587//
17588func (c *IoT) ListSecurityProfilesPages(input *ListSecurityProfilesInput, fn func(*ListSecurityProfilesOutput, bool) bool) error {
17589	return c.ListSecurityProfilesPagesWithContext(aws.BackgroundContext(), input, fn)
17590}
17591
17592// ListSecurityProfilesPagesWithContext same as ListSecurityProfilesPages except
17593// it takes a Context and allows setting request options on the pages.
17594//
17595// The context must be non-nil and will be used for request cancellation. If
17596// the context is nil a panic will occur. In the future the SDK may create
17597// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17598// for more information on using Contexts.
17599func (c *IoT) ListSecurityProfilesPagesWithContext(ctx aws.Context, input *ListSecurityProfilesInput, fn func(*ListSecurityProfilesOutput, bool) bool, opts ...request.Option) error {
17600	p := request.Pagination{
17601		NewRequest: func() (*request.Request, error) {
17602			var inCpy *ListSecurityProfilesInput
17603			if input != nil {
17604				tmp := *input
17605				inCpy = &tmp
17606			}
17607			req, _ := c.ListSecurityProfilesRequest(inCpy)
17608			req.SetContext(ctx)
17609			req.ApplyOptions(opts...)
17610			return req, nil
17611		},
17612	}
17613
17614	for p.Next() {
17615		if !fn(p.Page().(*ListSecurityProfilesOutput), !p.HasNextPage()) {
17616			break
17617		}
17618	}
17619
17620	return p.Err()
17621}
17622
17623const opListSecurityProfilesForTarget = "ListSecurityProfilesForTarget"
17624
17625// ListSecurityProfilesForTargetRequest generates a "aws/request.Request" representing the
17626// client's request for the ListSecurityProfilesForTarget operation. The "output" return
17627// value will be populated with the request's response once the request completes
17628// successfully.
17629//
17630// Use "Send" method on the returned Request to send the API call to the service.
17631// the "output" return value is not valid until after Send returns without error.
17632//
17633// See ListSecurityProfilesForTarget for more information on using the ListSecurityProfilesForTarget
17634// API call, and error handling.
17635//
17636// This method is useful when you want to inject custom logic or configuration
17637// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17638//
17639//
17640//    // Example sending a request using the ListSecurityProfilesForTargetRequest method.
17641//    req, resp := client.ListSecurityProfilesForTargetRequest(params)
17642//
17643//    err := req.Send()
17644//    if err == nil { // resp is now filled
17645//        fmt.Println(resp)
17646//    }
17647func (c *IoT) ListSecurityProfilesForTargetRequest(input *ListSecurityProfilesForTargetInput) (req *request.Request, output *ListSecurityProfilesForTargetOutput) {
17648	op := &request.Operation{
17649		Name:       opListSecurityProfilesForTarget,
17650		HTTPMethod: "GET",
17651		HTTPPath:   "/security-profiles-for-target",
17652		Paginator: &request.Paginator{
17653			InputTokens:     []string{"nextToken"},
17654			OutputTokens:    []string{"nextToken"},
17655			LimitToken:      "maxResults",
17656			TruncationToken: "",
17657		},
17658	}
17659
17660	if input == nil {
17661		input = &ListSecurityProfilesForTargetInput{}
17662	}
17663
17664	output = &ListSecurityProfilesForTargetOutput{}
17665	req = c.newRequest(op, input, output)
17666	return
17667}
17668
17669// ListSecurityProfilesForTarget API operation for AWS IoT.
17670//
17671// Lists the Device Defender security profiles attached to a target (thing group).
17672//
17673// Requires permission to access the ListSecurityProfilesForTarget (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
17674// action.
17675//
17676// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17677// with awserr.Error's Code and Message methods to get detailed information about
17678// the error.
17679//
17680// See the AWS API reference guide for AWS IoT's
17681// API operation ListSecurityProfilesForTarget for usage and error information.
17682//
17683// Returned Error Types:
17684//   * InvalidRequestException
17685//   The request is not valid.
17686//
17687//   * ThrottlingException
17688//   The rate exceeds the limit.
17689//
17690//   * InternalFailureException
17691//   An unexpected error has occurred.
17692//
17693//   * ResourceNotFoundException
17694//   The specified resource does not exist.
17695//
17696func (c *IoT) ListSecurityProfilesForTarget(input *ListSecurityProfilesForTargetInput) (*ListSecurityProfilesForTargetOutput, error) {
17697	req, out := c.ListSecurityProfilesForTargetRequest(input)
17698	return out, req.Send()
17699}
17700
17701// ListSecurityProfilesForTargetWithContext is the same as ListSecurityProfilesForTarget with the addition of
17702// the ability to pass a context and additional request options.
17703//
17704// See ListSecurityProfilesForTarget for details on how to use this API operation.
17705//
17706// The context must be non-nil and will be used for request cancellation. If
17707// the context is nil a panic will occur. In the future the SDK may create
17708// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17709// for more information on using Contexts.
17710func (c *IoT) ListSecurityProfilesForTargetWithContext(ctx aws.Context, input *ListSecurityProfilesForTargetInput, opts ...request.Option) (*ListSecurityProfilesForTargetOutput, error) {
17711	req, out := c.ListSecurityProfilesForTargetRequest(input)
17712	req.SetContext(ctx)
17713	req.ApplyOptions(opts...)
17714	return out, req.Send()
17715}
17716
17717// ListSecurityProfilesForTargetPages iterates over the pages of a ListSecurityProfilesForTarget operation,
17718// calling the "fn" function with the response data for each page. To stop
17719// iterating, return false from the fn function.
17720//
17721// See ListSecurityProfilesForTarget method for more information on how to use this operation.
17722//
17723// Note: This operation can generate multiple requests to a service.
17724//
17725//    // Example iterating over at most 3 pages of a ListSecurityProfilesForTarget operation.
17726//    pageNum := 0
17727//    err := client.ListSecurityProfilesForTargetPages(params,
17728//        func(page *iot.ListSecurityProfilesForTargetOutput, lastPage bool) bool {
17729//            pageNum++
17730//            fmt.Println(page)
17731//            return pageNum <= 3
17732//        })
17733//
17734func (c *IoT) ListSecurityProfilesForTargetPages(input *ListSecurityProfilesForTargetInput, fn func(*ListSecurityProfilesForTargetOutput, bool) bool) error {
17735	return c.ListSecurityProfilesForTargetPagesWithContext(aws.BackgroundContext(), input, fn)
17736}
17737
17738// ListSecurityProfilesForTargetPagesWithContext same as ListSecurityProfilesForTargetPages except
17739// it takes a Context and allows setting request options on the pages.
17740//
17741// The context must be non-nil and will be used for request cancellation. If
17742// the context is nil a panic will occur. In the future the SDK may create
17743// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17744// for more information on using Contexts.
17745func (c *IoT) ListSecurityProfilesForTargetPagesWithContext(ctx aws.Context, input *ListSecurityProfilesForTargetInput, fn func(*ListSecurityProfilesForTargetOutput, bool) bool, opts ...request.Option) error {
17746	p := request.Pagination{
17747		NewRequest: func() (*request.Request, error) {
17748			var inCpy *ListSecurityProfilesForTargetInput
17749			if input != nil {
17750				tmp := *input
17751				inCpy = &tmp
17752			}
17753			req, _ := c.ListSecurityProfilesForTargetRequest(inCpy)
17754			req.SetContext(ctx)
17755			req.ApplyOptions(opts...)
17756			return req, nil
17757		},
17758	}
17759
17760	for p.Next() {
17761		if !fn(p.Page().(*ListSecurityProfilesForTargetOutput), !p.HasNextPage()) {
17762			break
17763		}
17764	}
17765
17766	return p.Err()
17767}
17768
17769const opListStreams = "ListStreams"
17770
17771// ListStreamsRequest generates a "aws/request.Request" representing the
17772// client's request for the ListStreams operation. The "output" return
17773// value will be populated with the request's response once the request completes
17774// successfully.
17775//
17776// Use "Send" method on the returned Request to send the API call to the service.
17777// the "output" return value is not valid until after Send returns without error.
17778//
17779// See ListStreams for more information on using the ListStreams
17780// API call, and error handling.
17781//
17782// This method is useful when you want to inject custom logic or configuration
17783// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17784//
17785//
17786//    // Example sending a request using the ListStreamsRequest method.
17787//    req, resp := client.ListStreamsRequest(params)
17788//
17789//    err := req.Send()
17790//    if err == nil { // resp is now filled
17791//        fmt.Println(resp)
17792//    }
17793func (c *IoT) ListStreamsRequest(input *ListStreamsInput) (req *request.Request, output *ListStreamsOutput) {
17794	op := &request.Operation{
17795		Name:       opListStreams,
17796		HTTPMethod: "GET",
17797		HTTPPath:   "/streams",
17798		Paginator: &request.Paginator{
17799			InputTokens:     []string{"nextToken"},
17800			OutputTokens:    []string{"nextToken"},
17801			LimitToken:      "maxResults",
17802			TruncationToken: "",
17803		},
17804	}
17805
17806	if input == nil {
17807		input = &ListStreamsInput{}
17808	}
17809
17810	output = &ListStreamsOutput{}
17811	req = c.newRequest(op, input, output)
17812	return
17813}
17814
17815// ListStreams API operation for AWS IoT.
17816//
17817// Lists all of the streams in your Amazon Web Services account.
17818//
17819// Requires permission to access the ListStreams (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
17820// action.
17821//
17822// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17823// with awserr.Error's Code and Message methods to get detailed information about
17824// the error.
17825//
17826// See the AWS API reference guide for AWS IoT's
17827// API operation ListStreams for usage and error information.
17828//
17829// Returned Error Types:
17830//   * InvalidRequestException
17831//   The request is not valid.
17832//
17833//   * ThrottlingException
17834//   The rate exceeds the limit.
17835//
17836//   * UnauthorizedException
17837//   You are not authorized to perform this operation.
17838//
17839//   * ServiceUnavailableException
17840//   The service is temporarily unavailable.
17841//
17842//   * InternalFailureException
17843//   An unexpected error has occurred.
17844//
17845func (c *IoT) ListStreams(input *ListStreamsInput) (*ListStreamsOutput, error) {
17846	req, out := c.ListStreamsRequest(input)
17847	return out, req.Send()
17848}
17849
17850// ListStreamsWithContext is the same as ListStreams with the addition of
17851// the ability to pass a context and additional request options.
17852//
17853// See ListStreams for details on how to use this API operation.
17854//
17855// The context must be non-nil and will be used for request cancellation. If
17856// the context is nil a panic will occur. In the future the SDK may create
17857// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17858// for more information on using Contexts.
17859func (c *IoT) ListStreamsWithContext(ctx aws.Context, input *ListStreamsInput, opts ...request.Option) (*ListStreamsOutput, error) {
17860	req, out := c.ListStreamsRequest(input)
17861	req.SetContext(ctx)
17862	req.ApplyOptions(opts...)
17863	return out, req.Send()
17864}
17865
17866// ListStreamsPages iterates over the pages of a ListStreams operation,
17867// calling the "fn" function with the response data for each page. To stop
17868// iterating, return false from the fn function.
17869//
17870// See ListStreams method for more information on how to use this operation.
17871//
17872// Note: This operation can generate multiple requests to a service.
17873//
17874//    // Example iterating over at most 3 pages of a ListStreams operation.
17875//    pageNum := 0
17876//    err := client.ListStreamsPages(params,
17877//        func(page *iot.ListStreamsOutput, lastPage bool) bool {
17878//            pageNum++
17879//            fmt.Println(page)
17880//            return pageNum <= 3
17881//        })
17882//
17883func (c *IoT) ListStreamsPages(input *ListStreamsInput, fn func(*ListStreamsOutput, bool) bool) error {
17884	return c.ListStreamsPagesWithContext(aws.BackgroundContext(), input, fn)
17885}
17886
17887// ListStreamsPagesWithContext same as ListStreamsPages except
17888// it takes a Context and allows setting request options on the pages.
17889//
17890// The context must be non-nil and will be used for request cancellation. If
17891// the context is nil a panic will occur. In the future the SDK may create
17892// sub-contexts for http.Requests. See https://golang.org/pkg/context/
17893// for more information on using Contexts.
17894func (c *IoT) ListStreamsPagesWithContext(ctx aws.Context, input *ListStreamsInput, fn func(*ListStreamsOutput, bool) bool, opts ...request.Option) error {
17895	p := request.Pagination{
17896		NewRequest: func() (*request.Request, error) {
17897			var inCpy *ListStreamsInput
17898			if input != nil {
17899				tmp := *input
17900				inCpy = &tmp
17901			}
17902			req, _ := c.ListStreamsRequest(inCpy)
17903			req.SetContext(ctx)
17904			req.ApplyOptions(opts...)
17905			return req, nil
17906		},
17907	}
17908
17909	for p.Next() {
17910		if !fn(p.Page().(*ListStreamsOutput), !p.HasNextPage()) {
17911			break
17912		}
17913	}
17914
17915	return p.Err()
17916}
17917
17918const opListTagsForResource = "ListTagsForResource"
17919
17920// ListTagsForResourceRequest generates a "aws/request.Request" representing the
17921// client's request for the ListTagsForResource operation. The "output" return
17922// value will be populated with the request's response once the request completes
17923// successfully.
17924//
17925// Use "Send" method on the returned Request to send the API call to the service.
17926// the "output" return value is not valid until after Send returns without error.
17927//
17928// See ListTagsForResource for more information on using the ListTagsForResource
17929// API call, and error handling.
17930//
17931// This method is useful when you want to inject custom logic or configuration
17932// into the SDK's request lifecycle. Such as custom headers, or retry logic.
17933//
17934//
17935//    // Example sending a request using the ListTagsForResourceRequest method.
17936//    req, resp := client.ListTagsForResourceRequest(params)
17937//
17938//    err := req.Send()
17939//    if err == nil { // resp is now filled
17940//        fmt.Println(resp)
17941//    }
17942func (c *IoT) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
17943	op := &request.Operation{
17944		Name:       opListTagsForResource,
17945		HTTPMethod: "GET",
17946		HTTPPath:   "/tags",
17947		Paginator: &request.Paginator{
17948			InputTokens:     []string{"nextToken"},
17949			OutputTokens:    []string{"nextToken"},
17950			LimitToken:      "",
17951			TruncationToken: "",
17952		},
17953	}
17954
17955	if input == nil {
17956		input = &ListTagsForResourceInput{}
17957	}
17958
17959	output = &ListTagsForResourceOutput{}
17960	req = c.newRequest(op, input, output)
17961	return
17962}
17963
17964// ListTagsForResource API operation for AWS IoT.
17965//
17966// Lists the tags (metadata) you have assigned to the resource.
17967//
17968// Requires permission to access the ListTagsForResource (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
17969// action.
17970//
17971// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
17972// with awserr.Error's Code and Message methods to get detailed information about
17973// the error.
17974//
17975// See the AWS API reference guide for AWS IoT's
17976// API operation ListTagsForResource for usage and error information.
17977//
17978// Returned Error Types:
17979//   * InvalidRequestException
17980//   The request is not valid.
17981//
17982//   * InternalFailureException
17983//   An unexpected error has occurred.
17984//
17985//   * ResourceNotFoundException
17986//   The specified resource does not exist.
17987//
17988//   * ThrottlingException
17989//   The rate exceeds the limit.
17990//
17991func (c *IoT) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
17992	req, out := c.ListTagsForResourceRequest(input)
17993	return out, req.Send()
17994}
17995
17996// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
17997// the ability to pass a context and additional request options.
17998//
17999// See ListTagsForResource for details on how to use this API operation.
18000//
18001// The context must be non-nil and will be used for request cancellation. If
18002// the context is nil a panic will occur. In the future the SDK may create
18003// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18004// for more information on using Contexts.
18005func (c *IoT) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
18006	req, out := c.ListTagsForResourceRequest(input)
18007	req.SetContext(ctx)
18008	req.ApplyOptions(opts...)
18009	return out, req.Send()
18010}
18011
18012// ListTagsForResourcePages iterates over the pages of a ListTagsForResource operation,
18013// calling the "fn" function with the response data for each page. To stop
18014// iterating, return false from the fn function.
18015//
18016// See ListTagsForResource method for more information on how to use this operation.
18017//
18018// Note: This operation can generate multiple requests to a service.
18019//
18020//    // Example iterating over at most 3 pages of a ListTagsForResource operation.
18021//    pageNum := 0
18022//    err := client.ListTagsForResourcePages(params,
18023//        func(page *iot.ListTagsForResourceOutput, lastPage bool) bool {
18024//            pageNum++
18025//            fmt.Println(page)
18026//            return pageNum <= 3
18027//        })
18028//
18029func (c *IoT) ListTagsForResourcePages(input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool) error {
18030	return c.ListTagsForResourcePagesWithContext(aws.BackgroundContext(), input, fn)
18031}
18032
18033// ListTagsForResourcePagesWithContext same as ListTagsForResourcePages except
18034// it takes a Context and allows setting request options on the pages.
18035//
18036// The context must be non-nil and will be used for request cancellation. If
18037// the context is nil a panic will occur. In the future the SDK may create
18038// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18039// for more information on using Contexts.
18040func (c *IoT) ListTagsForResourcePagesWithContext(ctx aws.Context, input *ListTagsForResourceInput, fn func(*ListTagsForResourceOutput, bool) bool, opts ...request.Option) error {
18041	p := request.Pagination{
18042		NewRequest: func() (*request.Request, error) {
18043			var inCpy *ListTagsForResourceInput
18044			if input != nil {
18045				tmp := *input
18046				inCpy = &tmp
18047			}
18048			req, _ := c.ListTagsForResourceRequest(inCpy)
18049			req.SetContext(ctx)
18050			req.ApplyOptions(opts...)
18051			return req, nil
18052		},
18053	}
18054
18055	for p.Next() {
18056		if !fn(p.Page().(*ListTagsForResourceOutput), !p.HasNextPage()) {
18057			break
18058		}
18059	}
18060
18061	return p.Err()
18062}
18063
18064const opListTargetsForPolicy = "ListTargetsForPolicy"
18065
18066// ListTargetsForPolicyRequest generates a "aws/request.Request" representing the
18067// client's request for the ListTargetsForPolicy operation. The "output" return
18068// value will be populated with the request's response once the request completes
18069// successfully.
18070//
18071// Use "Send" method on the returned Request to send the API call to the service.
18072// the "output" return value is not valid until after Send returns without error.
18073//
18074// See ListTargetsForPolicy for more information on using the ListTargetsForPolicy
18075// API call, and error handling.
18076//
18077// This method is useful when you want to inject custom logic or configuration
18078// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18079//
18080//
18081//    // Example sending a request using the ListTargetsForPolicyRequest method.
18082//    req, resp := client.ListTargetsForPolicyRequest(params)
18083//
18084//    err := req.Send()
18085//    if err == nil { // resp is now filled
18086//        fmt.Println(resp)
18087//    }
18088func (c *IoT) ListTargetsForPolicyRequest(input *ListTargetsForPolicyInput) (req *request.Request, output *ListTargetsForPolicyOutput) {
18089	op := &request.Operation{
18090		Name:       opListTargetsForPolicy,
18091		HTTPMethod: "POST",
18092		HTTPPath:   "/policy-targets/{policyName}",
18093		Paginator: &request.Paginator{
18094			InputTokens:     []string{"marker"},
18095			OutputTokens:    []string{"nextMarker"},
18096			LimitToken:      "pageSize",
18097			TruncationToken: "",
18098		},
18099	}
18100
18101	if input == nil {
18102		input = &ListTargetsForPolicyInput{}
18103	}
18104
18105	output = &ListTargetsForPolicyOutput{}
18106	req = c.newRequest(op, input, output)
18107	return
18108}
18109
18110// ListTargetsForPolicy API operation for AWS IoT.
18111//
18112// List targets for the specified policy.
18113//
18114// Requires permission to access the ListTargetsForPolicy (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
18115// action.
18116//
18117// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18118// with awserr.Error's Code and Message methods to get detailed information about
18119// the error.
18120//
18121// See the AWS API reference guide for AWS IoT's
18122// API operation ListTargetsForPolicy for usage and error information.
18123//
18124// Returned Error Types:
18125//   * ResourceNotFoundException
18126//   The specified resource does not exist.
18127//
18128//   * InvalidRequestException
18129//   The request is not valid.
18130//
18131//   * ThrottlingException
18132//   The rate exceeds the limit.
18133//
18134//   * UnauthorizedException
18135//   You are not authorized to perform this operation.
18136//
18137//   * ServiceUnavailableException
18138//   The service is temporarily unavailable.
18139//
18140//   * InternalFailureException
18141//   An unexpected error has occurred.
18142//
18143//   * LimitExceededException
18144//   A limit has been exceeded.
18145//
18146func (c *IoT) ListTargetsForPolicy(input *ListTargetsForPolicyInput) (*ListTargetsForPolicyOutput, error) {
18147	req, out := c.ListTargetsForPolicyRequest(input)
18148	return out, req.Send()
18149}
18150
18151// ListTargetsForPolicyWithContext is the same as ListTargetsForPolicy with the addition of
18152// the ability to pass a context and additional request options.
18153//
18154// See ListTargetsForPolicy for details on how to use this API operation.
18155//
18156// The context must be non-nil and will be used for request cancellation. If
18157// the context is nil a panic will occur. In the future the SDK may create
18158// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18159// for more information on using Contexts.
18160func (c *IoT) ListTargetsForPolicyWithContext(ctx aws.Context, input *ListTargetsForPolicyInput, opts ...request.Option) (*ListTargetsForPolicyOutput, error) {
18161	req, out := c.ListTargetsForPolicyRequest(input)
18162	req.SetContext(ctx)
18163	req.ApplyOptions(opts...)
18164	return out, req.Send()
18165}
18166
18167// ListTargetsForPolicyPages iterates over the pages of a ListTargetsForPolicy operation,
18168// calling the "fn" function with the response data for each page. To stop
18169// iterating, return false from the fn function.
18170//
18171// See ListTargetsForPolicy method for more information on how to use this operation.
18172//
18173// Note: This operation can generate multiple requests to a service.
18174//
18175//    // Example iterating over at most 3 pages of a ListTargetsForPolicy operation.
18176//    pageNum := 0
18177//    err := client.ListTargetsForPolicyPages(params,
18178//        func(page *iot.ListTargetsForPolicyOutput, lastPage bool) bool {
18179//            pageNum++
18180//            fmt.Println(page)
18181//            return pageNum <= 3
18182//        })
18183//
18184func (c *IoT) ListTargetsForPolicyPages(input *ListTargetsForPolicyInput, fn func(*ListTargetsForPolicyOutput, bool) bool) error {
18185	return c.ListTargetsForPolicyPagesWithContext(aws.BackgroundContext(), input, fn)
18186}
18187
18188// ListTargetsForPolicyPagesWithContext same as ListTargetsForPolicyPages except
18189// it takes a Context and allows setting request options on the pages.
18190//
18191// The context must be non-nil and will be used for request cancellation. If
18192// the context is nil a panic will occur. In the future the SDK may create
18193// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18194// for more information on using Contexts.
18195func (c *IoT) ListTargetsForPolicyPagesWithContext(ctx aws.Context, input *ListTargetsForPolicyInput, fn func(*ListTargetsForPolicyOutput, bool) bool, opts ...request.Option) error {
18196	p := request.Pagination{
18197		NewRequest: func() (*request.Request, error) {
18198			var inCpy *ListTargetsForPolicyInput
18199			if input != nil {
18200				tmp := *input
18201				inCpy = &tmp
18202			}
18203			req, _ := c.ListTargetsForPolicyRequest(inCpy)
18204			req.SetContext(ctx)
18205			req.ApplyOptions(opts...)
18206			return req, nil
18207		},
18208	}
18209
18210	for p.Next() {
18211		if !fn(p.Page().(*ListTargetsForPolicyOutput), !p.HasNextPage()) {
18212			break
18213		}
18214	}
18215
18216	return p.Err()
18217}
18218
18219const opListTargetsForSecurityProfile = "ListTargetsForSecurityProfile"
18220
18221// ListTargetsForSecurityProfileRequest generates a "aws/request.Request" representing the
18222// client's request for the ListTargetsForSecurityProfile operation. The "output" return
18223// value will be populated with the request's response once the request completes
18224// successfully.
18225//
18226// Use "Send" method on the returned Request to send the API call to the service.
18227// the "output" return value is not valid until after Send returns without error.
18228//
18229// See ListTargetsForSecurityProfile for more information on using the ListTargetsForSecurityProfile
18230// API call, and error handling.
18231//
18232// This method is useful when you want to inject custom logic or configuration
18233// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18234//
18235//
18236//    // Example sending a request using the ListTargetsForSecurityProfileRequest method.
18237//    req, resp := client.ListTargetsForSecurityProfileRequest(params)
18238//
18239//    err := req.Send()
18240//    if err == nil { // resp is now filled
18241//        fmt.Println(resp)
18242//    }
18243func (c *IoT) ListTargetsForSecurityProfileRequest(input *ListTargetsForSecurityProfileInput) (req *request.Request, output *ListTargetsForSecurityProfileOutput) {
18244	op := &request.Operation{
18245		Name:       opListTargetsForSecurityProfile,
18246		HTTPMethod: "GET",
18247		HTTPPath:   "/security-profiles/{securityProfileName}/targets",
18248		Paginator: &request.Paginator{
18249			InputTokens:     []string{"nextToken"},
18250			OutputTokens:    []string{"nextToken"},
18251			LimitToken:      "maxResults",
18252			TruncationToken: "",
18253		},
18254	}
18255
18256	if input == nil {
18257		input = &ListTargetsForSecurityProfileInput{}
18258	}
18259
18260	output = &ListTargetsForSecurityProfileOutput{}
18261	req = c.newRequest(op, input, output)
18262	return
18263}
18264
18265// ListTargetsForSecurityProfile API operation for AWS IoT.
18266//
18267// Lists the targets (thing groups) associated with a given Device Defender
18268// security profile.
18269//
18270// Requires permission to access the ListTargetsForSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
18271// action.
18272//
18273// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18274// with awserr.Error's Code and Message methods to get detailed information about
18275// the error.
18276//
18277// See the AWS API reference guide for AWS IoT's
18278// API operation ListTargetsForSecurityProfile for usage and error information.
18279//
18280// Returned Error Types:
18281//   * InvalidRequestException
18282//   The request is not valid.
18283//
18284//   * ResourceNotFoundException
18285//   The specified resource does not exist.
18286//
18287//   * ThrottlingException
18288//   The rate exceeds the limit.
18289//
18290//   * InternalFailureException
18291//   An unexpected error has occurred.
18292//
18293func (c *IoT) ListTargetsForSecurityProfile(input *ListTargetsForSecurityProfileInput) (*ListTargetsForSecurityProfileOutput, error) {
18294	req, out := c.ListTargetsForSecurityProfileRequest(input)
18295	return out, req.Send()
18296}
18297
18298// ListTargetsForSecurityProfileWithContext is the same as ListTargetsForSecurityProfile with the addition of
18299// the ability to pass a context and additional request options.
18300//
18301// See ListTargetsForSecurityProfile for details on how to use this API operation.
18302//
18303// The context must be non-nil and will be used for request cancellation. If
18304// the context is nil a panic will occur. In the future the SDK may create
18305// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18306// for more information on using Contexts.
18307func (c *IoT) ListTargetsForSecurityProfileWithContext(ctx aws.Context, input *ListTargetsForSecurityProfileInput, opts ...request.Option) (*ListTargetsForSecurityProfileOutput, error) {
18308	req, out := c.ListTargetsForSecurityProfileRequest(input)
18309	req.SetContext(ctx)
18310	req.ApplyOptions(opts...)
18311	return out, req.Send()
18312}
18313
18314// ListTargetsForSecurityProfilePages iterates over the pages of a ListTargetsForSecurityProfile operation,
18315// calling the "fn" function with the response data for each page. To stop
18316// iterating, return false from the fn function.
18317//
18318// See ListTargetsForSecurityProfile method for more information on how to use this operation.
18319//
18320// Note: This operation can generate multiple requests to a service.
18321//
18322//    // Example iterating over at most 3 pages of a ListTargetsForSecurityProfile operation.
18323//    pageNum := 0
18324//    err := client.ListTargetsForSecurityProfilePages(params,
18325//        func(page *iot.ListTargetsForSecurityProfileOutput, lastPage bool) bool {
18326//            pageNum++
18327//            fmt.Println(page)
18328//            return pageNum <= 3
18329//        })
18330//
18331func (c *IoT) ListTargetsForSecurityProfilePages(input *ListTargetsForSecurityProfileInput, fn func(*ListTargetsForSecurityProfileOutput, bool) bool) error {
18332	return c.ListTargetsForSecurityProfilePagesWithContext(aws.BackgroundContext(), input, fn)
18333}
18334
18335// ListTargetsForSecurityProfilePagesWithContext same as ListTargetsForSecurityProfilePages except
18336// it takes a Context and allows setting request options on the pages.
18337//
18338// The context must be non-nil and will be used for request cancellation. If
18339// the context is nil a panic will occur. In the future the SDK may create
18340// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18341// for more information on using Contexts.
18342func (c *IoT) ListTargetsForSecurityProfilePagesWithContext(ctx aws.Context, input *ListTargetsForSecurityProfileInput, fn func(*ListTargetsForSecurityProfileOutput, bool) bool, opts ...request.Option) error {
18343	p := request.Pagination{
18344		NewRequest: func() (*request.Request, error) {
18345			var inCpy *ListTargetsForSecurityProfileInput
18346			if input != nil {
18347				tmp := *input
18348				inCpy = &tmp
18349			}
18350			req, _ := c.ListTargetsForSecurityProfileRequest(inCpy)
18351			req.SetContext(ctx)
18352			req.ApplyOptions(opts...)
18353			return req, nil
18354		},
18355	}
18356
18357	for p.Next() {
18358		if !fn(p.Page().(*ListTargetsForSecurityProfileOutput), !p.HasNextPage()) {
18359			break
18360		}
18361	}
18362
18363	return p.Err()
18364}
18365
18366const opListThingGroups = "ListThingGroups"
18367
18368// ListThingGroupsRequest generates a "aws/request.Request" representing the
18369// client's request for the ListThingGroups operation. The "output" return
18370// value will be populated with the request's response once the request completes
18371// successfully.
18372//
18373// Use "Send" method on the returned Request to send the API call to the service.
18374// the "output" return value is not valid until after Send returns without error.
18375//
18376// See ListThingGroups for more information on using the ListThingGroups
18377// API call, and error handling.
18378//
18379// This method is useful when you want to inject custom logic or configuration
18380// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18381//
18382//
18383//    // Example sending a request using the ListThingGroupsRequest method.
18384//    req, resp := client.ListThingGroupsRequest(params)
18385//
18386//    err := req.Send()
18387//    if err == nil { // resp is now filled
18388//        fmt.Println(resp)
18389//    }
18390func (c *IoT) ListThingGroupsRequest(input *ListThingGroupsInput) (req *request.Request, output *ListThingGroupsOutput) {
18391	op := &request.Operation{
18392		Name:       opListThingGroups,
18393		HTTPMethod: "GET",
18394		HTTPPath:   "/thing-groups",
18395		Paginator: &request.Paginator{
18396			InputTokens:     []string{"nextToken"},
18397			OutputTokens:    []string{"nextToken"},
18398			LimitToken:      "maxResults",
18399			TruncationToken: "",
18400		},
18401	}
18402
18403	if input == nil {
18404		input = &ListThingGroupsInput{}
18405	}
18406
18407	output = &ListThingGroupsOutput{}
18408	req = c.newRequest(op, input, output)
18409	return
18410}
18411
18412// ListThingGroups API operation for AWS IoT.
18413//
18414// List the thing groups in your account.
18415//
18416// Requires permission to access the ListThingGroups (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
18417// action.
18418//
18419// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18420// with awserr.Error's Code and Message methods to get detailed information about
18421// the error.
18422//
18423// See the AWS API reference guide for AWS IoT's
18424// API operation ListThingGroups for usage and error information.
18425//
18426// Returned Error Types:
18427//   * InvalidRequestException
18428//   The request is not valid.
18429//
18430//   * InternalFailureException
18431//   An unexpected error has occurred.
18432//
18433//   * ResourceNotFoundException
18434//   The specified resource does not exist.
18435//
18436//   * ThrottlingException
18437//   The rate exceeds the limit.
18438//
18439func (c *IoT) ListThingGroups(input *ListThingGroupsInput) (*ListThingGroupsOutput, error) {
18440	req, out := c.ListThingGroupsRequest(input)
18441	return out, req.Send()
18442}
18443
18444// ListThingGroupsWithContext is the same as ListThingGroups with the addition of
18445// the ability to pass a context and additional request options.
18446//
18447// See ListThingGroups for details on how to use this API operation.
18448//
18449// The context must be non-nil and will be used for request cancellation. If
18450// the context is nil a panic will occur. In the future the SDK may create
18451// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18452// for more information on using Contexts.
18453func (c *IoT) ListThingGroupsWithContext(ctx aws.Context, input *ListThingGroupsInput, opts ...request.Option) (*ListThingGroupsOutput, error) {
18454	req, out := c.ListThingGroupsRequest(input)
18455	req.SetContext(ctx)
18456	req.ApplyOptions(opts...)
18457	return out, req.Send()
18458}
18459
18460// ListThingGroupsPages iterates over the pages of a ListThingGroups operation,
18461// calling the "fn" function with the response data for each page. To stop
18462// iterating, return false from the fn function.
18463//
18464// See ListThingGroups method for more information on how to use this operation.
18465//
18466// Note: This operation can generate multiple requests to a service.
18467//
18468//    // Example iterating over at most 3 pages of a ListThingGroups operation.
18469//    pageNum := 0
18470//    err := client.ListThingGroupsPages(params,
18471//        func(page *iot.ListThingGroupsOutput, lastPage bool) bool {
18472//            pageNum++
18473//            fmt.Println(page)
18474//            return pageNum <= 3
18475//        })
18476//
18477func (c *IoT) ListThingGroupsPages(input *ListThingGroupsInput, fn func(*ListThingGroupsOutput, bool) bool) error {
18478	return c.ListThingGroupsPagesWithContext(aws.BackgroundContext(), input, fn)
18479}
18480
18481// ListThingGroupsPagesWithContext same as ListThingGroupsPages except
18482// it takes a Context and allows setting request options on the pages.
18483//
18484// The context must be non-nil and will be used for request cancellation. If
18485// the context is nil a panic will occur. In the future the SDK may create
18486// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18487// for more information on using Contexts.
18488func (c *IoT) ListThingGroupsPagesWithContext(ctx aws.Context, input *ListThingGroupsInput, fn func(*ListThingGroupsOutput, bool) bool, opts ...request.Option) error {
18489	p := request.Pagination{
18490		NewRequest: func() (*request.Request, error) {
18491			var inCpy *ListThingGroupsInput
18492			if input != nil {
18493				tmp := *input
18494				inCpy = &tmp
18495			}
18496			req, _ := c.ListThingGroupsRequest(inCpy)
18497			req.SetContext(ctx)
18498			req.ApplyOptions(opts...)
18499			return req, nil
18500		},
18501	}
18502
18503	for p.Next() {
18504		if !fn(p.Page().(*ListThingGroupsOutput), !p.HasNextPage()) {
18505			break
18506		}
18507	}
18508
18509	return p.Err()
18510}
18511
18512const opListThingGroupsForThing = "ListThingGroupsForThing"
18513
18514// ListThingGroupsForThingRequest generates a "aws/request.Request" representing the
18515// client's request for the ListThingGroupsForThing operation. The "output" return
18516// value will be populated with the request's response once the request completes
18517// successfully.
18518//
18519// Use "Send" method on the returned Request to send the API call to the service.
18520// the "output" return value is not valid until after Send returns without error.
18521//
18522// See ListThingGroupsForThing for more information on using the ListThingGroupsForThing
18523// API call, and error handling.
18524//
18525// This method is useful when you want to inject custom logic or configuration
18526// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18527//
18528//
18529//    // Example sending a request using the ListThingGroupsForThingRequest method.
18530//    req, resp := client.ListThingGroupsForThingRequest(params)
18531//
18532//    err := req.Send()
18533//    if err == nil { // resp is now filled
18534//        fmt.Println(resp)
18535//    }
18536func (c *IoT) ListThingGroupsForThingRequest(input *ListThingGroupsForThingInput) (req *request.Request, output *ListThingGroupsForThingOutput) {
18537	op := &request.Operation{
18538		Name:       opListThingGroupsForThing,
18539		HTTPMethod: "GET",
18540		HTTPPath:   "/things/{thingName}/thing-groups",
18541		Paginator: &request.Paginator{
18542			InputTokens:     []string{"nextToken"},
18543			OutputTokens:    []string{"nextToken"},
18544			LimitToken:      "maxResults",
18545			TruncationToken: "",
18546		},
18547	}
18548
18549	if input == nil {
18550		input = &ListThingGroupsForThingInput{}
18551	}
18552
18553	output = &ListThingGroupsForThingOutput{}
18554	req = c.newRequest(op, input, output)
18555	return
18556}
18557
18558// ListThingGroupsForThing API operation for AWS IoT.
18559//
18560// List the thing groups to which the specified thing belongs.
18561//
18562// Requires permission to access the ListThingGroupsForThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
18563// action.
18564//
18565// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18566// with awserr.Error's Code and Message methods to get detailed information about
18567// the error.
18568//
18569// See the AWS API reference guide for AWS IoT's
18570// API operation ListThingGroupsForThing for usage and error information.
18571//
18572// Returned Error Types:
18573//   * InvalidRequestException
18574//   The request is not valid.
18575//
18576//   * InternalFailureException
18577//   An unexpected error has occurred.
18578//
18579//   * ResourceNotFoundException
18580//   The specified resource does not exist.
18581//
18582//   * ThrottlingException
18583//   The rate exceeds the limit.
18584//
18585func (c *IoT) ListThingGroupsForThing(input *ListThingGroupsForThingInput) (*ListThingGroupsForThingOutput, error) {
18586	req, out := c.ListThingGroupsForThingRequest(input)
18587	return out, req.Send()
18588}
18589
18590// ListThingGroupsForThingWithContext is the same as ListThingGroupsForThing with the addition of
18591// the ability to pass a context and additional request options.
18592//
18593// See ListThingGroupsForThing for details on how to use this API operation.
18594//
18595// The context must be non-nil and will be used for request cancellation. If
18596// the context is nil a panic will occur. In the future the SDK may create
18597// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18598// for more information on using Contexts.
18599func (c *IoT) ListThingGroupsForThingWithContext(ctx aws.Context, input *ListThingGroupsForThingInput, opts ...request.Option) (*ListThingGroupsForThingOutput, error) {
18600	req, out := c.ListThingGroupsForThingRequest(input)
18601	req.SetContext(ctx)
18602	req.ApplyOptions(opts...)
18603	return out, req.Send()
18604}
18605
18606// ListThingGroupsForThingPages iterates over the pages of a ListThingGroupsForThing operation,
18607// calling the "fn" function with the response data for each page. To stop
18608// iterating, return false from the fn function.
18609//
18610// See ListThingGroupsForThing method for more information on how to use this operation.
18611//
18612// Note: This operation can generate multiple requests to a service.
18613//
18614//    // Example iterating over at most 3 pages of a ListThingGroupsForThing operation.
18615//    pageNum := 0
18616//    err := client.ListThingGroupsForThingPages(params,
18617//        func(page *iot.ListThingGroupsForThingOutput, lastPage bool) bool {
18618//            pageNum++
18619//            fmt.Println(page)
18620//            return pageNum <= 3
18621//        })
18622//
18623func (c *IoT) ListThingGroupsForThingPages(input *ListThingGroupsForThingInput, fn func(*ListThingGroupsForThingOutput, bool) bool) error {
18624	return c.ListThingGroupsForThingPagesWithContext(aws.BackgroundContext(), input, fn)
18625}
18626
18627// ListThingGroupsForThingPagesWithContext same as ListThingGroupsForThingPages except
18628// it takes a Context and allows setting request options on the pages.
18629//
18630// The context must be non-nil and will be used for request cancellation. If
18631// the context is nil a panic will occur. In the future the SDK may create
18632// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18633// for more information on using Contexts.
18634func (c *IoT) ListThingGroupsForThingPagesWithContext(ctx aws.Context, input *ListThingGroupsForThingInput, fn func(*ListThingGroupsForThingOutput, bool) bool, opts ...request.Option) error {
18635	p := request.Pagination{
18636		NewRequest: func() (*request.Request, error) {
18637			var inCpy *ListThingGroupsForThingInput
18638			if input != nil {
18639				tmp := *input
18640				inCpy = &tmp
18641			}
18642			req, _ := c.ListThingGroupsForThingRequest(inCpy)
18643			req.SetContext(ctx)
18644			req.ApplyOptions(opts...)
18645			return req, nil
18646		},
18647	}
18648
18649	for p.Next() {
18650		if !fn(p.Page().(*ListThingGroupsForThingOutput), !p.HasNextPage()) {
18651			break
18652		}
18653	}
18654
18655	return p.Err()
18656}
18657
18658const opListThingPrincipals = "ListThingPrincipals"
18659
18660// ListThingPrincipalsRequest generates a "aws/request.Request" representing the
18661// client's request for the ListThingPrincipals operation. The "output" return
18662// value will be populated with the request's response once the request completes
18663// successfully.
18664//
18665// Use "Send" method on the returned Request to send the API call to the service.
18666// the "output" return value is not valid until after Send returns without error.
18667//
18668// See ListThingPrincipals for more information on using the ListThingPrincipals
18669// API call, and error handling.
18670//
18671// This method is useful when you want to inject custom logic or configuration
18672// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18673//
18674//
18675//    // Example sending a request using the ListThingPrincipalsRequest method.
18676//    req, resp := client.ListThingPrincipalsRequest(params)
18677//
18678//    err := req.Send()
18679//    if err == nil { // resp is now filled
18680//        fmt.Println(resp)
18681//    }
18682func (c *IoT) ListThingPrincipalsRequest(input *ListThingPrincipalsInput) (req *request.Request, output *ListThingPrincipalsOutput) {
18683	op := &request.Operation{
18684		Name:       opListThingPrincipals,
18685		HTTPMethod: "GET",
18686		HTTPPath:   "/things/{thingName}/principals",
18687		Paginator: &request.Paginator{
18688			InputTokens:     []string{"nextToken"},
18689			OutputTokens:    []string{"nextToken"},
18690			LimitToken:      "maxResults",
18691			TruncationToken: "",
18692		},
18693	}
18694
18695	if input == nil {
18696		input = &ListThingPrincipalsInput{}
18697	}
18698
18699	output = &ListThingPrincipalsOutput{}
18700	req = c.newRequest(op, input, output)
18701	return
18702}
18703
18704// ListThingPrincipals API operation for AWS IoT.
18705//
18706// Lists the principals associated with the specified thing. A principal can
18707// be X.509 certificates, IAM users, groups, and roles, Amazon Cognito identities
18708// or federated identities.
18709//
18710// Requires permission to access the ListThingPrincipals (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
18711// action.
18712//
18713// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18714// with awserr.Error's Code and Message methods to get detailed information about
18715// the error.
18716//
18717// See the AWS API reference guide for AWS IoT's
18718// API operation ListThingPrincipals for usage and error information.
18719//
18720// Returned Error Types:
18721//   * InvalidRequestException
18722//   The request is not valid.
18723//
18724//   * ThrottlingException
18725//   The rate exceeds the limit.
18726//
18727//   * UnauthorizedException
18728//   You are not authorized to perform this operation.
18729//
18730//   * ServiceUnavailableException
18731//   The service is temporarily unavailable.
18732//
18733//   * InternalFailureException
18734//   An unexpected error has occurred.
18735//
18736//   * ResourceNotFoundException
18737//   The specified resource does not exist.
18738//
18739func (c *IoT) ListThingPrincipals(input *ListThingPrincipalsInput) (*ListThingPrincipalsOutput, error) {
18740	req, out := c.ListThingPrincipalsRequest(input)
18741	return out, req.Send()
18742}
18743
18744// ListThingPrincipalsWithContext is the same as ListThingPrincipals with the addition of
18745// the ability to pass a context and additional request options.
18746//
18747// See ListThingPrincipals for details on how to use this API operation.
18748//
18749// The context must be non-nil and will be used for request cancellation. If
18750// the context is nil a panic will occur. In the future the SDK may create
18751// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18752// for more information on using Contexts.
18753func (c *IoT) ListThingPrincipalsWithContext(ctx aws.Context, input *ListThingPrincipalsInput, opts ...request.Option) (*ListThingPrincipalsOutput, error) {
18754	req, out := c.ListThingPrincipalsRequest(input)
18755	req.SetContext(ctx)
18756	req.ApplyOptions(opts...)
18757	return out, req.Send()
18758}
18759
18760// ListThingPrincipalsPages iterates over the pages of a ListThingPrincipals operation,
18761// calling the "fn" function with the response data for each page. To stop
18762// iterating, return false from the fn function.
18763//
18764// See ListThingPrincipals method for more information on how to use this operation.
18765//
18766// Note: This operation can generate multiple requests to a service.
18767//
18768//    // Example iterating over at most 3 pages of a ListThingPrincipals operation.
18769//    pageNum := 0
18770//    err := client.ListThingPrincipalsPages(params,
18771//        func(page *iot.ListThingPrincipalsOutput, lastPage bool) bool {
18772//            pageNum++
18773//            fmt.Println(page)
18774//            return pageNum <= 3
18775//        })
18776//
18777func (c *IoT) ListThingPrincipalsPages(input *ListThingPrincipalsInput, fn func(*ListThingPrincipalsOutput, bool) bool) error {
18778	return c.ListThingPrincipalsPagesWithContext(aws.BackgroundContext(), input, fn)
18779}
18780
18781// ListThingPrincipalsPagesWithContext same as ListThingPrincipalsPages except
18782// it takes a Context and allows setting request options on the pages.
18783//
18784// The context must be non-nil and will be used for request cancellation. If
18785// the context is nil a panic will occur. In the future the SDK may create
18786// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18787// for more information on using Contexts.
18788func (c *IoT) ListThingPrincipalsPagesWithContext(ctx aws.Context, input *ListThingPrincipalsInput, fn func(*ListThingPrincipalsOutput, bool) bool, opts ...request.Option) error {
18789	p := request.Pagination{
18790		NewRequest: func() (*request.Request, error) {
18791			var inCpy *ListThingPrincipalsInput
18792			if input != nil {
18793				tmp := *input
18794				inCpy = &tmp
18795			}
18796			req, _ := c.ListThingPrincipalsRequest(inCpy)
18797			req.SetContext(ctx)
18798			req.ApplyOptions(opts...)
18799			return req, nil
18800		},
18801	}
18802
18803	for p.Next() {
18804		if !fn(p.Page().(*ListThingPrincipalsOutput), !p.HasNextPage()) {
18805			break
18806		}
18807	}
18808
18809	return p.Err()
18810}
18811
18812const opListThingRegistrationTaskReports = "ListThingRegistrationTaskReports"
18813
18814// ListThingRegistrationTaskReportsRequest generates a "aws/request.Request" representing the
18815// client's request for the ListThingRegistrationTaskReports operation. The "output" return
18816// value will be populated with the request's response once the request completes
18817// successfully.
18818//
18819// Use "Send" method on the returned Request to send the API call to the service.
18820// the "output" return value is not valid until after Send returns without error.
18821//
18822// See ListThingRegistrationTaskReports for more information on using the ListThingRegistrationTaskReports
18823// API call, and error handling.
18824//
18825// This method is useful when you want to inject custom logic or configuration
18826// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18827//
18828//
18829//    // Example sending a request using the ListThingRegistrationTaskReportsRequest method.
18830//    req, resp := client.ListThingRegistrationTaskReportsRequest(params)
18831//
18832//    err := req.Send()
18833//    if err == nil { // resp is now filled
18834//        fmt.Println(resp)
18835//    }
18836func (c *IoT) ListThingRegistrationTaskReportsRequest(input *ListThingRegistrationTaskReportsInput) (req *request.Request, output *ListThingRegistrationTaskReportsOutput) {
18837	op := &request.Operation{
18838		Name:       opListThingRegistrationTaskReports,
18839		HTTPMethod: "GET",
18840		HTTPPath:   "/thing-registration-tasks/{taskId}/reports",
18841		Paginator: &request.Paginator{
18842			InputTokens:     []string{"nextToken"},
18843			OutputTokens:    []string{"nextToken"},
18844			LimitToken:      "maxResults",
18845			TruncationToken: "",
18846		},
18847	}
18848
18849	if input == nil {
18850		input = &ListThingRegistrationTaskReportsInput{}
18851	}
18852
18853	output = &ListThingRegistrationTaskReportsOutput{}
18854	req = c.newRequest(op, input, output)
18855	return
18856}
18857
18858// ListThingRegistrationTaskReports API operation for AWS IoT.
18859//
18860// Information about the thing registration tasks.
18861//
18862// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
18863// with awserr.Error's Code and Message methods to get detailed information about
18864// the error.
18865//
18866// See the AWS API reference guide for AWS IoT's
18867// API operation ListThingRegistrationTaskReports for usage and error information.
18868//
18869// Returned Error Types:
18870//   * InvalidRequestException
18871//   The request is not valid.
18872//
18873//   * ThrottlingException
18874//   The rate exceeds the limit.
18875//
18876//   * UnauthorizedException
18877//   You are not authorized to perform this operation.
18878//
18879//   * InternalFailureException
18880//   An unexpected error has occurred.
18881//
18882func (c *IoT) ListThingRegistrationTaskReports(input *ListThingRegistrationTaskReportsInput) (*ListThingRegistrationTaskReportsOutput, error) {
18883	req, out := c.ListThingRegistrationTaskReportsRequest(input)
18884	return out, req.Send()
18885}
18886
18887// ListThingRegistrationTaskReportsWithContext is the same as ListThingRegistrationTaskReports with the addition of
18888// the ability to pass a context and additional request options.
18889//
18890// See ListThingRegistrationTaskReports for details on how to use this API operation.
18891//
18892// The context must be non-nil and will be used for request cancellation. If
18893// the context is nil a panic will occur. In the future the SDK may create
18894// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18895// for more information on using Contexts.
18896func (c *IoT) ListThingRegistrationTaskReportsWithContext(ctx aws.Context, input *ListThingRegistrationTaskReportsInput, opts ...request.Option) (*ListThingRegistrationTaskReportsOutput, error) {
18897	req, out := c.ListThingRegistrationTaskReportsRequest(input)
18898	req.SetContext(ctx)
18899	req.ApplyOptions(opts...)
18900	return out, req.Send()
18901}
18902
18903// ListThingRegistrationTaskReportsPages iterates over the pages of a ListThingRegistrationTaskReports operation,
18904// calling the "fn" function with the response data for each page. To stop
18905// iterating, return false from the fn function.
18906//
18907// See ListThingRegistrationTaskReports method for more information on how to use this operation.
18908//
18909// Note: This operation can generate multiple requests to a service.
18910//
18911//    // Example iterating over at most 3 pages of a ListThingRegistrationTaskReports operation.
18912//    pageNum := 0
18913//    err := client.ListThingRegistrationTaskReportsPages(params,
18914//        func(page *iot.ListThingRegistrationTaskReportsOutput, lastPage bool) bool {
18915//            pageNum++
18916//            fmt.Println(page)
18917//            return pageNum <= 3
18918//        })
18919//
18920func (c *IoT) ListThingRegistrationTaskReportsPages(input *ListThingRegistrationTaskReportsInput, fn func(*ListThingRegistrationTaskReportsOutput, bool) bool) error {
18921	return c.ListThingRegistrationTaskReportsPagesWithContext(aws.BackgroundContext(), input, fn)
18922}
18923
18924// ListThingRegistrationTaskReportsPagesWithContext same as ListThingRegistrationTaskReportsPages except
18925// it takes a Context and allows setting request options on the pages.
18926//
18927// The context must be non-nil and will be used for request cancellation. If
18928// the context is nil a panic will occur. In the future the SDK may create
18929// sub-contexts for http.Requests. See https://golang.org/pkg/context/
18930// for more information on using Contexts.
18931func (c *IoT) ListThingRegistrationTaskReportsPagesWithContext(ctx aws.Context, input *ListThingRegistrationTaskReportsInput, fn func(*ListThingRegistrationTaskReportsOutput, bool) bool, opts ...request.Option) error {
18932	p := request.Pagination{
18933		NewRequest: func() (*request.Request, error) {
18934			var inCpy *ListThingRegistrationTaskReportsInput
18935			if input != nil {
18936				tmp := *input
18937				inCpy = &tmp
18938			}
18939			req, _ := c.ListThingRegistrationTaskReportsRequest(inCpy)
18940			req.SetContext(ctx)
18941			req.ApplyOptions(opts...)
18942			return req, nil
18943		},
18944	}
18945
18946	for p.Next() {
18947		if !fn(p.Page().(*ListThingRegistrationTaskReportsOutput), !p.HasNextPage()) {
18948			break
18949		}
18950	}
18951
18952	return p.Err()
18953}
18954
18955const opListThingRegistrationTasks = "ListThingRegistrationTasks"
18956
18957// ListThingRegistrationTasksRequest generates a "aws/request.Request" representing the
18958// client's request for the ListThingRegistrationTasks operation. The "output" return
18959// value will be populated with the request's response once the request completes
18960// successfully.
18961//
18962// Use "Send" method on the returned Request to send the API call to the service.
18963// the "output" return value is not valid until after Send returns without error.
18964//
18965// See ListThingRegistrationTasks for more information on using the ListThingRegistrationTasks
18966// API call, and error handling.
18967//
18968// This method is useful when you want to inject custom logic or configuration
18969// into the SDK's request lifecycle. Such as custom headers, or retry logic.
18970//
18971//
18972//    // Example sending a request using the ListThingRegistrationTasksRequest method.
18973//    req, resp := client.ListThingRegistrationTasksRequest(params)
18974//
18975//    err := req.Send()
18976//    if err == nil { // resp is now filled
18977//        fmt.Println(resp)
18978//    }
18979func (c *IoT) ListThingRegistrationTasksRequest(input *ListThingRegistrationTasksInput) (req *request.Request, output *ListThingRegistrationTasksOutput) {
18980	op := &request.Operation{
18981		Name:       opListThingRegistrationTasks,
18982		HTTPMethod: "GET",
18983		HTTPPath:   "/thing-registration-tasks",
18984		Paginator: &request.Paginator{
18985			InputTokens:     []string{"nextToken"},
18986			OutputTokens:    []string{"nextToken"},
18987			LimitToken:      "maxResults",
18988			TruncationToken: "",
18989		},
18990	}
18991
18992	if input == nil {
18993		input = &ListThingRegistrationTasksInput{}
18994	}
18995
18996	output = &ListThingRegistrationTasksOutput{}
18997	req = c.newRequest(op, input, output)
18998	return
18999}
19000
19001// ListThingRegistrationTasks API operation for AWS IoT.
19002//
19003// List bulk thing provisioning tasks.
19004//
19005// Requires permission to access the ListThingRegistrationTasks (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
19006// action.
19007//
19008// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19009// with awserr.Error's Code and Message methods to get detailed information about
19010// the error.
19011//
19012// See the AWS API reference guide for AWS IoT's
19013// API operation ListThingRegistrationTasks for usage and error information.
19014//
19015// Returned Error Types:
19016//   * InvalidRequestException
19017//   The request is not valid.
19018//
19019//   * ThrottlingException
19020//   The rate exceeds the limit.
19021//
19022//   * UnauthorizedException
19023//   You are not authorized to perform this operation.
19024//
19025//   * InternalFailureException
19026//   An unexpected error has occurred.
19027//
19028func (c *IoT) ListThingRegistrationTasks(input *ListThingRegistrationTasksInput) (*ListThingRegistrationTasksOutput, error) {
19029	req, out := c.ListThingRegistrationTasksRequest(input)
19030	return out, req.Send()
19031}
19032
19033// ListThingRegistrationTasksWithContext is the same as ListThingRegistrationTasks with the addition of
19034// the ability to pass a context and additional request options.
19035//
19036// See ListThingRegistrationTasks for details on how to use this API operation.
19037//
19038// The context must be non-nil and will be used for request cancellation. If
19039// the context is nil a panic will occur. In the future the SDK may create
19040// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19041// for more information on using Contexts.
19042func (c *IoT) ListThingRegistrationTasksWithContext(ctx aws.Context, input *ListThingRegistrationTasksInput, opts ...request.Option) (*ListThingRegistrationTasksOutput, error) {
19043	req, out := c.ListThingRegistrationTasksRequest(input)
19044	req.SetContext(ctx)
19045	req.ApplyOptions(opts...)
19046	return out, req.Send()
19047}
19048
19049// ListThingRegistrationTasksPages iterates over the pages of a ListThingRegistrationTasks operation,
19050// calling the "fn" function with the response data for each page. To stop
19051// iterating, return false from the fn function.
19052//
19053// See ListThingRegistrationTasks method for more information on how to use this operation.
19054//
19055// Note: This operation can generate multiple requests to a service.
19056//
19057//    // Example iterating over at most 3 pages of a ListThingRegistrationTasks operation.
19058//    pageNum := 0
19059//    err := client.ListThingRegistrationTasksPages(params,
19060//        func(page *iot.ListThingRegistrationTasksOutput, lastPage bool) bool {
19061//            pageNum++
19062//            fmt.Println(page)
19063//            return pageNum <= 3
19064//        })
19065//
19066func (c *IoT) ListThingRegistrationTasksPages(input *ListThingRegistrationTasksInput, fn func(*ListThingRegistrationTasksOutput, bool) bool) error {
19067	return c.ListThingRegistrationTasksPagesWithContext(aws.BackgroundContext(), input, fn)
19068}
19069
19070// ListThingRegistrationTasksPagesWithContext same as ListThingRegistrationTasksPages except
19071// it takes a Context and allows setting request options on the pages.
19072//
19073// The context must be non-nil and will be used for request cancellation. If
19074// the context is nil a panic will occur. In the future the SDK may create
19075// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19076// for more information on using Contexts.
19077func (c *IoT) ListThingRegistrationTasksPagesWithContext(ctx aws.Context, input *ListThingRegistrationTasksInput, fn func(*ListThingRegistrationTasksOutput, bool) bool, opts ...request.Option) error {
19078	p := request.Pagination{
19079		NewRequest: func() (*request.Request, error) {
19080			var inCpy *ListThingRegistrationTasksInput
19081			if input != nil {
19082				tmp := *input
19083				inCpy = &tmp
19084			}
19085			req, _ := c.ListThingRegistrationTasksRequest(inCpy)
19086			req.SetContext(ctx)
19087			req.ApplyOptions(opts...)
19088			return req, nil
19089		},
19090	}
19091
19092	for p.Next() {
19093		if !fn(p.Page().(*ListThingRegistrationTasksOutput), !p.HasNextPage()) {
19094			break
19095		}
19096	}
19097
19098	return p.Err()
19099}
19100
19101const opListThingTypes = "ListThingTypes"
19102
19103// ListThingTypesRequest generates a "aws/request.Request" representing the
19104// client's request for the ListThingTypes operation. The "output" return
19105// value will be populated with the request's response once the request completes
19106// successfully.
19107//
19108// Use "Send" method on the returned Request to send the API call to the service.
19109// the "output" return value is not valid until after Send returns without error.
19110//
19111// See ListThingTypes for more information on using the ListThingTypes
19112// API call, and error handling.
19113//
19114// This method is useful when you want to inject custom logic or configuration
19115// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19116//
19117//
19118//    // Example sending a request using the ListThingTypesRequest method.
19119//    req, resp := client.ListThingTypesRequest(params)
19120//
19121//    err := req.Send()
19122//    if err == nil { // resp is now filled
19123//        fmt.Println(resp)
19124//    }
19125func (c *IoT) ListThingTypesRequest(input *ListThingTypesInput) (req *request.Request, output *ListThingTypesOutput) {
19126	op := &request.Operation{
19127		Name:       opListThingTypes,
19128		HTTPMethod: "GET",
19129		HTTPPath:   "/thing-types",
19130		Paginator: &request.Paginator{
19131			InputTokens:     []string{"nextToken"},
19132			OutputTokens:    []string{"nextToken"},
19133			LimitToken:      "maxResults",
19134			TruncationToken: "",
19135		},
19136	}
19137
19138	if input == nil {
19139		input = &ListThingTypesInput{}
19140	}
19141
19142	output = &ListThingTypesOutput{}
19143	req = c.newRequest(op, input, output)
19144	return
19145}
19146
19147// ListThingTypes API operation for AWS IoT.
19148//
19149// Lists the existing thing types.
19150//
19151// Requires permission to access the ListThingTypes (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
19152// action.
19153//
19154// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19155// with awserr.Error's Code and Message methods to get detailed information about
19156// the error.
19157//
19158// See the AWS API reference guide for AWS IoT's
19159// API operation ListThingTypes for usage and error information.
19160//
19161// Returned Error Types:
19162//   * InvalidRequestException
19163//   The request is not valid.
19164//
19165//   * ThrottlingException
19166//   The rate exceeds the limit.
19167//
19168//   * UnauthorizedException
19169//   You are not authorized to perform this operation.
19170//
19171//   * ServiceUnavailableException
19172//   The service is temporarily unavailable.
19173//
19174//   * InternalFailureException
19175//   An unexpected error has occurred.
19176//
19177func (c *IoT) ListThingTypes(input *ListThingTypesInput) (*ListThingTypesOutput, error) {
19178	req, out := c.ListThingTypesRequest(input)
19179	return out, req.Send()
19180}
19181
19182// ListThingTypesWithContext is the same as ListThingTypes with the addition of
19183// the ability to pass a context and additional request options.
19184//
19185// See ListThingTypes for details on how to use this API operation.
19186//
19187// The context must be non-nil and will be used for request cancellation. If
19188// the context is nil a panic will occur. In the future the SDK may create
19189// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19190// for more information on using Contexts.
19191func (c *IoT) ListThingTypesWithContext(ctx aws.Context, input *ListThingTypesInput, opts ...request.Option) (*ListThingTypesOutput, error) {
19192	req, out := c.ListThingTypesRequest(input)
19193	req.SetContext(ctx)
19194	req.ApplyOptions(opts...)
19195	return out, req.Send()
19196}
19197
19198// ListThingTypesPages iterates over the pages of a ListThingTypes operation,
19199// calling the "fn" function with the response data for each page. To stop
19200// iterating, return false from the fn function.
19201//
19202// See ListThingTypes method for more information on how to use this operation.
19203//
19204// Note: This operation can generate multiple requests to a service.
19205//
19206//    // Example iterating over at most 3 pages of a ListThingTypes operation.
19207//    pageNum := 0
19208//    err := client.ListThingTypesPages(params,
19209//        func(page *iot.ListThingTypesOutput, lastPage bool) bool {
19210//            pageNum++
19211//            fmt.Println(page)
19212//            return pageNum <= 3
19213//        })
19214//
19215func (c *IoT) ListThingTypesPages(input *ListThingTypesInput, fn func(*ListThingTypesOutput, bool) bool) error {
19216	return c.ListThingTypesPagesWithContext(aws.BackgroundContext(), input, fn)
19217}
19218
19219// ListThingTypesPagesWithContext same as ListThingTypesPages except
19220// it takes a Context and allows setting request options on the pages.
19221//
19222// The context must be non-nil and will be used for request cancellation. If
19223// the context is nil a panic will occur. In the future the SDK may create
19224// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19225// for more information on using Contexts.
19226func (c *IoT) ListThingTypesPagesWithContext(ctx aws.Context, input *ListThingTypesInput, fn func(*ListThingTypesOutput, bool) bool, opts ...request.Option) error {
19227	p := request.Pagination{
19228		NewRequest: func() (*request.Request, error) {
19229			var inCpy *ListThingTypesInput
19230			if input != nil {
19231				tmp := *input
19232				inCpy = &tmp
19233			}
19234			req, _ := c.ListThingTypesRequest(inCpy)
19235			req.SetContext(ctx)
19236			req.ApplyOptions(opts...)
19237			return req, nil
19238		},
19239	}
19240
19241	for p.Next() {
19242		if !fn(p.Page().(*ListThingTypesOutput), !p.HasNextPage()) {
19243			break
19244		}
19245	}
19246
19247	return p.Err()
19248}
19249
19250const opListThings = "ListThings"
19251
19252// ListThingsRequest generates a "aws/request.Request" representing the
19253// client's request for the ListThings operation. The "output" return
19254// value will be populated with the request's response once the request completes
19255// successfully.
19256//
19257// Use "Send" method on the returned Request to send the API call to the service.
19258// the "output" return value is not valid until after Send returns without error.
19259//
19260// See ListThings for more information on using the ListThings
19261// API call, and error handling.
19262//
19263// This method is useful when you want to inject custom logic or configuration
19264// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19265//
19266//
19267//    // Example sending a request using the ListThingsRequest method.
19268//    req, resp := client.ListThingsRequest(params)
19269//
19270//    err := req.Send()
19271//    if err == nil { // resp is now filled
19272//        fmt.Println(resp)
19273//    }
19274func (c *IoT) ListThingsRequest(input *ListThingsInput) (req *request.Request, output *ListThingsOutput) {
19275	op := &request.Operation{
19276		Name:       opListThings,
19277		HTTPMethod: "GET",
19278		HTTPPath:   "/things",
19279		Paginator: &request.Paginator{
19280			InputTokens:     []string{"nextToken"},
19281			OutputTokens:    []string{"nextToken"},
19282			LimitToken:      "maxResults",
19283			TruncationToken: "",
19284		},
19285	}
19286
19287	if input == nil {
19288		input = &ListThingsInput{}
19289	}
19290
19291	output = &ListThingsOutput{}
19292	req = c.newRequest(op, input, output)
19293	return
19294}
19295
19296// ListThings API operation for AWS IoT.
19297//
19298// Lists your things. Use the attributeName and attributeValue parameters to
19299// filter your things. For example, calling ListThings with attributeName=Color
19300// and attributeValue=Red retrieves all things in the registry that contain
19301// an attribute Color with the value Red.
19302//
19303// Requires permission to access the ListThings (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
19304// action.
19305//
19306// You will not be charged for calling this API if an Access denied error is
19307// returned. You will also not be charged if no attributes or pagination token
19308// was provided in request and no pagination token and no results were returned.
19309//
19310// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19311// with awserr.Error's Code and Message methods to get detailed information about
19312// the error.
19313//
19314// See the AWS API reference guide for AWS IoT's
19315// API operation ListThings for usage and error information.
19316//
19317// Returned Error Types:
19318//   * InvalidRequestException
19319//   The request is not valid.
19320//
19321//   * ThrottlingException
19322//   The rate exceeds the limit.
19323//
19324//   * UnauthorizedException
19325//   You are not authorized to perform this operation.
19326//
19327//   * ServiceUnavailableException
19328//   The service is temporarily unavailable.
19329//
19330//   * InternalFailureException
19331//   An unexpected error has occurred.
19332//
19333func (c *IoT) ListThings(input *ListThingsInput) (*ListThingsOutput, error) {
19334	req, out := c.ListThingsRequest(input)
19335	return out, req.Send()
19336}
19337
19338// ListThingsWithContext is the same as ListThings with the addition of
19339// the ability to pass a context and additional request options.
19340//
19341// See ListThings for details on how to use this API operation.
19342//
19343// The context must be non-nil and will be used for request cancellation. If
19344// the context is nil a panic will occur. In the future the SDK may create
19345// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19346// for more information on using Contexts.
19347func (c *IoT) ListThingsWithContext(ctx aws.Context, input *ListThingsInput, opts ...request.Option) (*ListThingsOutput, error) {
19348	req, out := c.ListThingsRequest(input)
19349	req.SetContext(ctx)
19350	req.ApplyOptions(opts...)
19351	return out, req.Send()
19352}
19353
19354// ListThingsPages iterates over the pages of a ListThings operation,
19355// calling the "fn" function with the response data for each page. To stop
19356// iterating, return false from the fn function.
19357//
19358// See ListThings method for more information on how to use this operation.
19359//
19360// Note: This operation can generate multiple requests to a service.
19361//
19362//    // Example iterating over at most 3 pages of a ListThings operation.
19363//    pageNum := 0
19364//    err := client.ListThingsPages(params,
19365//        func(page *iot.ListThingsOutput, lastPage bool) bool {
19366//            pageNum++
19367//            fmt.Println(page)
19368//            return pageNum <= 3
19369//        })
19370//
19371func (c *IoT) ListThingsPages(input *ListThingsInput, fn func(*ListThingsOutput, bool) bool) error {
19372	return c.ListThingsPagesWithContext(aws.BackgroundContext(), input, fn)
19373}
19374
19375// ListThingsPagesWithContext same as ListThingsPages except
19376// it takes a Context and allows setting request options on the pages.
19377//
19378// The context must be non-nil and will be used for request cancellation. If
19379// the context is nil a panic will occur. In the future the SDK may create
19380// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19381// for more information on using Contexts.
19382func (c *IoT) ListThingsPagesWithContext(ctx aws.Context, input *ListThingsInput, fn func(*ListThingsOutput, bool) bool, opts ...request.Option) error {
19383	p := request.Pagination{
19384		NewRequest: func() (*request.Request, error) {
19385			var inCpy *ListThingsInput
19386			if input != nil {
19387				tmp := *input
19388				inCpy = &tmp
19389			}
19390			req, _ := c.ListThingsRequest(inCpy)
19391			req.SetContext(ctx)
19392			req.ApplyOptions(opts...)
19393			return req, nil
19394		},
19395	}
19396
19397	for p.Next() {
19398		if !fn(p.Page().(*ListThingsOutput), !p.HasNextPage()) {
19399			break
19400		}
19401	}
19402
19403	return p.Err()
19404}
19405
19406const opListThingsInBillingGroup = "ListThingsInBillingGroup"
19407
19408// ListThingsInBillingGroupRequest generates a "aws/request.Request" representing the
19409// client's request for the ListThingsInBillingGroup operation. The "output" return
19410// value will be populated with the request's response once the request completes
19411// successfully.
19412//
19413// Use "Send" method on the returned Request to send the API call to the service.
19414// the "output" return value is not valid until after Send returns without error.
19415//
19416// See ListThingsInBillingGroup for more information on using the ListThingsInBillingGroup
19417// API call, and error handling.
19418//
19419// This method is useful when you want to inject custom logic or configuration
19420// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19421//
19422//
19423//    // Example sending a request using the ListThingsInBillingGroupRequest method.
19424//    req, resp := client.ListThingsInBillingGroupRequest(params)
19425//
19426//    err := req.Send()
19427//    if err == nil { // resp is now filled
19428//        fmt.Println(resp)
19429//    }
19430func (c *IoT) ListThingsInBillingGroupRequest(input *ListThingsInBillingGroupInput) (req *request.Request, output *ListThingsInBillingGroupOutput) {
19431	op := &request.Operation{
19432		Name:       opListThingsInBillingGroup,
19433		HTTPMethod: "GET",
19434		HTTPPath:   "/billing-groups/{billingGroupName}/things",
19435		Paginator: &request.Paginator{
19436			InputTokens:     []string{"nextToken"},
19437			OutputTokens:    []string{"nextToken"},
19438			LimitToken:      "maxResults",
19439			TruncationToken: "",
19440		},
19441	}
19442
19443	if input == nil {
19444		input = &ListThingsInBillingGroupInput{}
19445	}
19446
19447	output = &ListThingsInBillingGroupOutput{}
19448	req = c.newRequest(op, input, output)
19449	return
19450}
19451
19452// ListThingsInBillingGroup API operation for AWS IoT.
19453//
19454// Lists the things you have added to the given billing group.
19455//
19456// Requires permission to access the ListThingsInBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
19457// action.
19458//
19459// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19460// with awserr.Error's Code and Message methods to get detailed information about
19461// the error.
19462//
19463// See the AWS API reference guide for AWS IoT's
19464// API operation ListThingsInBillingGroup for usage and error information.
19465//
19466// Returned Error Types:
19467//   * InvalidRequestException
19468//   The request is not valid.
19469//
19470//   * InternalFailureException
19471//   An unexpected error has occurred.
19472//
19473//   * ResourceNotFoundException
19474//   The specified resource does not exist.
19475//
19476//   * ThrottlingException
19477//   The rate exceeds the limit.
19478//
19479func (c *IoT) ListThingsInBillingGroup(input *ListThingsInBillingGroupInput) (*ListThingsInBillingGroupOutput, error) {
19480	req, out := c.ListThingsInBillingGroupRequest(input)
19481	return out, req.Send()
19482}
19483
19484// ListThingsInBillingGroupWithContext is the same as ListThingsInBillingGroup with the addition of
19485// the ability to pass a context and additional request options.
19486//
19487// See ListThingsInBillingGroup for details on how to use this API operation.
19488//
19489// The context must be non-nil and will be used for request cancellation. If
19490// the context is nil a panic will occur. In the future the SDK may create
19491// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19492// for more information on using Contexts.
19493func (c *IoT) ListThingsInBillingGroupWithContext(ctx aws.Context, input *ListThingsInBillingGroupInput, opts ...request.Option) (*ListThingsInBillingGroupOutput, error) {
19494	req, out := c.ListThingsInBillingGroupRequest(input)
19495	req.SetContext(ctx)
19496	req.ApplyOptions(opts...)
19497	return out, req.Send()
19498}
19499
19500// ListThingsInBillingGroupPages iterates over the pages of a ListThingsInBillingGroup operation,
19501// calling the "fn" function with the response data for each page. To stop
19502// iterating, return false from the fn function.
19503//
19504// See ListThingsInBillingGroup method for more information on how to use this operation.
19505//
19506// Note: This operation can generate multiple requests to a service.
19507//
19508//    // Example iterating over at most 3 pages of a ListThingsInBillingGroup operation.
19509//    pageNum := 0
19510//    err := client.ListThingsInBillingGroupPages(params,
19511//        func(page *iot.ListThingsInBillingGroupOutput, lastPage bool) bool {
19512//            pageNum++
19513//            fmt.Println(page)
19514//            return pageNum <= 3
19515//        })
19516//
19517func (c *IoT) ListThingsInBillingGroupPages(input *ListThingsInBillingGroupInput, fn func(*ListThingsInBillingGroupOutput, bool) bool) error {
19518	return c.ListThingsInBillingGroupPagesWithContext(aws.BackgroundContext(), input, fn)
19519}
19520
19521// ListThingsInBillingGroupPagesWithContext same as ListThingsInBillingGroupPages except
19522// it takes a Context and allows setting request options on the pages.
19523//
19524// The context must be non-nil and will be used for request cancellation. If
19525// the context is nil a panic will occur. In the future the SDK may create
19526// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19527// for more information on using Contexts.
19528func (c *IoT) ListThingsInBillingGroupPagesWithContext(ctx aws.Context, input *ListThingsInBillingGroupInput, fn func(*ListThingsInBillingGroupOutput, bool) bool, opts ...request.Option) error {
19529	p := request.Pagination{
19530		NewRequest: func() (*request.Request, error) {
19531			var inCpy *ListThingsInBillingGroupInput
19532			if input != nil {
19533				tmp := *input
19534				inCpy = &tmp
19535			}
19536			req, _ := c.ListThingsInBillingGroupRequest(inCpy)
19537			req.SetContext(ctx)
19538			req.ApplyOptions(opts...)
19539			return req, nil
19540		},
19541	}
19542
19543	for p.Next() {
19544		if !fn(p.Page().(*ListThingsInBillingGroupOutput), !p.HasNextPage()) {
19545			break
19546		}
19547	}
19548
19549	return p.Err()
19550}
19551
19552const opListThingsInThingGroup = "ListThingsInThingGroup"
19553
19554// ListThingsInThingGroupRequest generates a "aws/request.Request" representing the
19555// client's request for the ListThingsInThingGroup operation. The "output" return
19556// value will be populated with the request's response once the request completes
19557// successfully.
19558//
19559// Use "Send" method on the returned Request to send the API call to the service.
19560// the "output" return value is not valid until after Send returns without error.
19561//
19562// See ListThingsInThingGroup for more information on using the ListThingsInThingGroup
19563// API call, and error handling.
19564//
19565// This method is useful when you want to inject custom logic or configuration
19566// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19567//
19568//
19569//    // Example sending a request using the ListThingsInThingGroupRequest method.
19570//    req, resp := client.ListThingsInThingGroupRequest(params)
19571//
19572//    err := req.Send()
19573//    if err == nil { // resp is now filled
19574//        fmt.Println(resp)
19575//    }
19576func (c *IoT) ListThingsInThingGroupRequest(input *ListThingsInThingGroupInput) (req *request.Request, output *ListThingsInThingGroupOutput) {
19577	op := &request.Operation{
19578		Name:       opListThingsInThingGroup,
19579		HTTPMethod: "GET",
19580		HTTPPath:   "/thing-groups/{thingGroupName}/things",
19581		Paginator: &request.Paginator{
19582			InputTokens:     []string{"nextToken"},
19583			OutputTokens:    []string{"nextToken"},
19584			LimitToken:      "maxResults",
19585			TruncationToken: "",
19586		},
19587	}
19588
19589	if input == nil {
19590		input = &ListThingsInThingGroupInput{}
19591	}
19592
19593	output = &ListThingsInThingGroupOutput{}
19594	req = c.newRequest(op, input, output)
19595	return
19596}
19597
19598// ListThingsInThingGroup API operation for AWS IoT.
19599//
19600// Lists the things in the specified group.
19601//
19602// Requires permission to access the ListThingsInThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
19603// action.
19604//
19605// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19606// with awserr.Error's Code and Message methods to get detailed information about
19607// the error.
19608//
19609// See the AWS API reference guide for AWS IoT's
19610// API operation ListThingsInThingGroup for usage and error information.
19611//
19612// Returned Error Types:
19613//   * InvalidRequestException
19614//   The request is not valid.
19615//
19616//   * InternalFailureException
19617//   An unexpected error has occurred.
19618//
19619//   * ResourceNotFoundException
19620//   The specified resource does not exist.
19621//
19622//   * ThrottlingException
19623//   The rate exceeds the limit.
19624//
19625func (c *IoT) ListThingsInThingGroup(input *ListThingsInThingGroupInput) (*ListThingsInThingGroupOutput, error) {
19626	req, out := c.ListThingsInThingGroupRequest(input)
19627	return out, req.Send()
19628}
19629
19630// ListThingsInThingGroupWithContext is the same as ListThingsInThingGroup with the addition of
19631// the ability to pass a context and additional request options.
19632//
19633// See ListThingsInThingGroup for details on how to use this API operation.
19634//
19635// The context must be non-nil and will be used for request cancellation. If
19636// the context is nil a panic will occur. In the future the SDK may create
19637// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19638// for more information on using Contexts.
19639func (c *IoT) ListThingsInThingGroupWithContext(ctx aws.Context, input *ListThingsInThingGroupInput, opts ...request.Option) (*ListThingsInThingGroupOutput, error) {
19640	req, out := c.ListThingsInThingGroupRequest(input)
19641	req.SetContext(ctx)
19642	req.ApplyOptions(opts...)
19643	return out, req.Send()
19644}
19645
19646// ListThingsInThingGroupPages iterates over the pages of a ListThingsInThingGroup operation,
19647// calling the "fn" function with the response data for each page. To stop
19648// iterating, return false from the fn function.
19649//
19650// See ListThingsInThingGroup method for more information on how to use this operation.
19651//
19652// Note: This operation can generate multiple requests to a service.
19653//
19654//    // Example iterating over at most 3 pages of a ListThingsInThingGroup operation.
19655//    pageNum := 0
19656//    err := client.ListThingsInThingGroupPages(params,
19657//        func(page *iot.ListThingsInThingGroupOutput, lastPage bool) bool {
19658//            pageNum++
19659//            fmt.Println(page)
19660//            return pageNum <= 3
19661//        })
19662//
19663func (c *IoT) ListThingsInThingGroupPages(input *ListThingsInThingGroupInput, fn func(*ListThingsInThingGroupOutput, bool) bool) error {
19664	return c.ListThingsInThingGroupPagesWithContext(aws.BackgroundContext(), input, fn)
19665}
19666
19667// ListThingsInThingGroupPagesWithContext same as ListThingsInThingGroupPages except
19668// it takes a Context and allows setting request options on the pages.
19669//
19670// The context must be non-nil and will be used for request cancellation. If
19671// the context is nil a panic will occur. In the future the SDK may create
19672// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19673// for more information on using Contexts.
19674func (c *IoT) ListThingsInThingGroupPagesWithContext(ctx aws.Context, input *ListThingsInThingGroupInput, fn func(*ListThingsInThingGroupOutput, bool) bool, opts ...request.Option) error {
19675	p := request.Pagination{
19676		NewRequest: func() (*request.Request, error) {
19677			var inCpy *ListThingsInThingGroupInput
19678			if input != nil {
19679				tmp := *input
19680				inCpy = &tmp
19681			}
19682			req, _ := c.ListThingsInThingGroupRequest(inCpy)
19683			req.SetContext(ctx)
19684			req.ApplyOptions(opts...)
19685			return req, nil
19686		},
19687	}
19688
19689	for p.Next() {
19690		if !fn(p.Page().(*ListThingsInThingGroupOutput), !p.HasNextPage()) {
19691			break
19692		}
19693	}
19694
19695	return p.Err()
19696}
19697
19698const opListTopicRuleDestinations = "ListTopicRuleDestinations"
19699
19700// ListTopicRuleDestinationsRequest generates a "aws/request.Request" representing the
19701// client's request for the ListTopicRuleDestinations operation. The "output" return
19702// value will be populated with the request's response once the request completes
19703// successfully.
19704//
19705// Use "Send" method on the returned Request to send the API call to the service.
19706// the "output" return value is not valid until after Send returns without error.
19707//
19708// See ListTopicRuleDestinations for more information on using the ListTopicRuleDestinations
19709// API call, and error handling.
19710//
19711// This method is useful when you want to inject custom logic or configuration
19712// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19713//
19714//
19715//    // Example sending a request using the ListTopicRuleDestinationsRequest method.
19716//    req, resp := client.ListTopicRuleDestinationsRequest(params)
19717//
19718//    err := req.Send()
19719//    if err == nil { // resp is now filled
19720//        fmt.Println(resp)
19721//    }
19722func (c *IoT) ListTopicRuleDestinationsRequest(input *ListTopicRuleDestinationsInput) (req *request.Request, output *ListTopicRuleDestinationsOutput) {
19723	op := &request.Operation{
19724		Name:       opListTopicRuleDestinations,
19725		HTTPMethod: "GET",
19726		HTTPPath:   "/destinations",
19727		Paginator: &request.Paginator{
19728			InputTokens:     []string{"nextToken"},
19729			OutputTokens:    []string{"nextToken"},
19730			LimitToken:      "maxResults",
19731			TruncationToken: "",
19732		},
19733	}
19734
19735	if input == nil {
19736		input = &ListTopicRuleDestinationsInput{}
19737	}
19738
19739	output = &ListTopicRuleDestinationsOutput{}
19740	req = c.newRequest(op, input, output)
19741	return
19742}
19743
19744// ListTopicRuleDestinations API operation for AWS IoT.
19745//
19746// Lists all the topic rule destinations in your Amazon Web Services account.
19747//
19748// Requires permission to access the ListTopicRuleDestinations (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
19749// action.
19750//
19751// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19752// with awserr.Error's Code and Message methods to get detailed information about
19753// the error.
19754//
19755// See the AWS API reference guide for AWS IoT's
19756// API operation ListTopicRuleDestinations for usage and error information.
19757//
19758// Returned Error Types:
19759//   * InternalException
19760//   An unexpected error has occurred.
19761//
19762//   * InvalidRequestException
19763//   The request is not valid.
19764//
19765//   * ServiceUnavailableException
19766//   The service is temporarily unavailable.
19767//
19768//   * UnauthorizedException
19769//   You are not authorized to perform this operation.
19770//
19771func (c *IoT) ListTopicRuleDestinations(input *ListTopicRuleDestinationsInput) (*ListTopicRuleDestinationsOutput, error) {
19772	req, out := c.ListTopicRuleDestinationsRequest(input)
19773	return out, req.Send()
19774}
19775
19776// ListTopicRuleDestinationsWithContext is the same as ListTopicRuleDestinations with the addition of
19777// the ability to pass a context and additional request options.
19778//
19779// See ListTopicRuleDestinations for details on how to use this API operation.
19780//
19781// The context must be non-nil and will be used for request cancellation. If
19782// the context is nil a panic will occur. In the future the SDK may create
19783// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19784// for more information on using Contexts.
19785func (c *IoT) ListTopicRuleDestinationsWithContext(ctx aws.Context, input *ListTopicRuleDestinationsInput, opts ...request.Option) (*ListTopicRuleDestinationsOutput, error) {
19786	req, out := c.ListTopicRuleDestinationsRequest(input)
19787	req.SetContext(ctx)
19788	req.ApplyOptions(opts...)
19789	return out, req.Send()
19790}
19791
19792// ListTopicRuleDestinationsPages iterates over the pages of a ListTopicRuleDestinations operation,
19793// calling the "fn" function with the response data for each page. To stop
19794// iterating, return false from the fn function.
19795//
19796// See ListTopicRuleDestinations method for more information on how to use this operation.
19797//
19798// Note: This operation can generate multiple requests to a service.
19799//
19800//    // Example iterating over at most 3 pages of a ListTopicRuleDestinations operation.
19801//    pageNum := 0
19802//    err := client.ListTopicRuleDestinationsPages(params,
19803//        func(page *iot.ListTopicRuleDestinationsOutput, lastPage bool) bool {
19804//            pageNum++
19805//            fmt.Println(page)
19806//            return pageNum <= 3
19807//        })
19808//
19809func (c *IoT) ListTopicRuleDestinationsPages(input *ListTopicRuleDestinationsInput, fn func(*ListTopicRuleDestinationsOutput, bool) bool) error {
19810	return c.ListTopicRuleDestinationsPagesWithContext(aws.BackgroundContext(), input, fn)
19811}
19812
19813// ListTopicRuleDestinationsPagesWithContext same as ListTopicRuleDestinationsPages except
19814// it takes a Context and allows setting request options on the pages.
19815//
19816// The context must be non-nil and will be used for request cancellation. If
19817// the context is nil a panic will occur. In the future the SDK may create
19818// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19819// for more information on using Contexts.
19820func (c *IoT) ListTopicRuleDestinationsPagesWithContext(ctx aws.Context, input *ListTopicRuleDestinationsInput, fn func(*ListTopicRuleDestinationsOutput, bool) bool, opts ...request.Option) error {
19821	p := request.Pagination{
19822		NewRequest: func() (*request.Request, error) {
19823			var inCpy *ListTopicRuleDestinationsInput
19824			if input != nil {
19825				tmp := *input
19826				inCpy = &tmp
19827			}
19828			req, _ := c.ListTopicRuleDestinationsRequest(inCpy)
19829			req.SetContext(ctx)
19830			req.ApplyOptions(opts...)
19831			return req, nil
19832		},
19833	}
19834
19835	for p.Next() {
19836		if !fn(p.Page().(*ListTopicRuleDestinationsOutput), !p.HasNextPage()) {
19837			break
19838		}
19839	}
19840
19841	return p.Err()
19842}
19843
19844const opListTopicRules = "ListTopicRules"
19845
19846// ListTopicRulesRequest generates a "aws/request.Request" representing the
19847// client's request for the ListTopicRules operation. The "output" return
19848// value will be populated with the request's response once the request completes
19849// successfully.
19850//
19851// Use "Send" method on the returned Request to send the API call to the service.
19852// the "output" return value is not valid until after Send returns without error.
19853//
19854// See ListTopicRules for more information on using the ListTopicRules
19855// API call, and error handling.
19856//
19857// This method is useful when you want to inject custom logic or configuration
19858// into the SDK's request lifecycle. Such as custom headers, or retry logic.
19859//
19860//
19861//    // Example sending a request using the ListTopicRulesRequest method.
19862//    req, resp := client.ListTopicRulesRequest(params)
19863//
19864//    err := req.Send()
19865//    if err == nil { // resp is now filled
19866//        fmt.Println(resp)
19867//    }
19868func (c *IoT) ListTopicRulesRequest(input *ListTopicRulesInput) (req *request.Request, output *ListTopicRulesOutput) {
19869	op := &request.Operation{
19870		Name:       opListTopicRules,
19871		HTTPMethod: "GET",
19872		HTTPPath:   "/rules",
19873		Paginator: &request.Paginator{
19874			InputTokens:     []string{"nextToken"},
19875			OutputTokens:    []string{"nextToken"},
19876			LimitToken:      "maxResults",
19877			TruncationToken: "",
19878		},
19879	}
19880
19881	if input == nil {
19882		input = &ListTopicRulesInput{}
19883	}
19884
19885	output = &ListTopicRulesOutput{}
19886	req = c.newRequest(op, input, output)
19887	return
19888}
19889
19890// ListTopicRules API operation for AWS IoT.
19891//
19892// Lists the rules for the specific topic.
19893//
19894// Requires permission to access the ListTopicRules (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
19895// action.
19896//
19897// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
19898// with awserr.Error's Code and Message methods to get detailed information about
19899// the error.
19900//
19901// See the AWS API reference guide for AWS IoT's
19902// API operation ListTopicRules for usage and error information.
19903//
19904// Returned Error Types:
19905//   * InternalException
19906//   An unexpected error has occurred.
19907//
19908//   * InvalidRequestException
19909//   The request is not valid.
19910//
19911//   * ServiceUnavailableException
19912//   The service is temporarily unavailable.
19913//
19914func (c *IoT) ListTopicRules(input *ListTopicRulesInput) (*ListTopicRulesOutput, error) {
19915	req, out := c.ListTopicRulesRequest(input)
19916	return out, req.Send()
19917}
19918
19919// ListTopicRulesWithContext is the same as ListTopicRules with the addition of
19920// the ability to pass a context and additional request options.
19921//
19922// See ListTopicRules for details on how to use this API operation.
19923//
19924// The context must be non-nil and will be used for request cancellation. If
19925// the context is nil a panic will occur. In the future the SDK may create
19926// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19927// for more information on using Contexts.
19928func (c *IoT) ListTopicRulesWithContext(ctx aws.Context, input *ListTopicRulesInput, opts ...request.Option) (*ListTopicRulesOutput, error) {
19929	req, out := c.ListTopicRulesRequest(input)
19930	req.SetContext(ctx)
19931	req.ApplyOptions(opts...)
19932	return out, req.Send()
19933}
19934
19935// ListTopicRulesPages iterates over the pages of a ListTopicRules operation,
19936// calling the "fn" function with the response data for each page. To stop
19937// iterating, return false from the fn function.
19938//
19939// See ListTopicRules method for more information on how to use this operation.
19940//
19941// Note: This operation can generate multiple requests to a service.
19942//
19943//    // Example iterating over at most 3 pages of a ListTopicRules operation.
19944//    pageNum := 0
19945//    err := client.ListTopicRulesPages(params,
19946//        func(page *iot.ListTopicRulesOutput, lastPage bool) bool {
19947//            pageNum++
19948//            fmt.Println(page)
19949//            return pageNum <= 3
19950//        })
19951//
19952func (c *IoT) ListTopicRulesPages(input *ListTopicRulesInput, fn func(*ListTopicRulesOutput, bool) bool) error {
19953	return c.ListTopicRulesPagesWithContext(aws.BackgroundContext(), input, fn)
19954}
19955
19956// ListTopicRulesPagesWithContext same as ListTopicRulesPages except
19957// it takes a Context and allows setting request options on the pages.
19958//
19959// The context must be non-nil and will be used for request cancellation. If
19960// the context is nil a panic will occur. In the future the SDK may create
19961// sub-contexts for http.Requests. See https://golang.org/pkg/context/
19962// for more information on using Contexts.
19963func (c *IoT) ListTopicRulesPagesWithContext(ctx aws.Context, input *ListTopicRulesInput, fn func(*ListTopicRulesOutput, bool) bool, opts ...request.Option) error {
19964	p := request.Pagination{
19965		NewRequest: func() (*request.Request, error) {
19966			var inCpy *ListTopicRulesInput
19967			if input != nil {
19968				tmp := *input
19969				inCpy = &tmp
19970			}
19971			req, _ := c.ListTopicRulesRequest(inCpy)
19972			req.SetContext(ctx)
19973			req.ApplyOptions(opts...)
19974			return req, nil
19975		},
19976	}
19977
19978	for p.Next() {
19979		if !fn(p.Page().(*ListTopicRulesOutput), !p.HasNextPage()) {
19980			break
19981		}
19982	}
19983
19984	return p.Err()
19985}
19986
19987const opListV2LoggingLevels = "ListV2LoggingLevels"
19988
19989// ListV2LoggingLevelsRequest generates a "aws/request.Request" representing the
19990// client's request for the ListV2LoggingLevels operation. The "output" return
19991// value will be populated with the request's response once the request completes
19992// successfully.
19993//
19994// Use "Send" method on the returned Request to send the API call to the service.
19995// the "output" return value is not valid until after Send returns without error.
19996//
19997// See ListV2LoggingLevels for more information on using the ListV2LoggingLevels
19998// API call, and error handling.
19999//
20000// This method is useful when you want to inject custom logic or configuration
20001// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20002//
20003//
20004//    // Example sending a request using the ListV2LoggingLevelsRequest method.
20005//    req, resp := client.ListV2LoggingLevelsRequest(params)
20006//
20007//    err := req.Send()
20008//    if err == nil { // resp is now filled
20009//        fmt.Println(resp)
20010//    }
20011func (c *IoT) ListV2LoggingLevelsRequest(input *ListV2LoggingLevelsInput) (req *request.Request, output *ListV2LoggingLevelsOutput) {
20012	op := &request.Operation{
20013		Name:       opListV2LoggingLevels,
20014		HTTPMethod: "GET",
20015		HTTPPath:   "/v2LoggingLevel",
20016		Paginator: &request.Paginator{
20017			InputTokens:     []string{"nextToken"},
20018			OutputTokens:    []string{"nextToken"},
20019			LimitToken:      "maxResults",
20020			TruncationToken: "",
20021		},
20022	}
20023
20024	if input == nil {
20025		input = &ListV2LoggingLevelsInput{}
20026	}
20027
20028	output = &ListV2LoggingLevelsOutput{}
20029	req = c.newRequest(op, input, output)
20030	return
20031}
20032
20033// ListV2LoggingLevels API operation for AWS IoT.
20034//
20035// Lists logging levels.
20036//
20037// Requires permission to access the ListV2LoggingLevels (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
20038// action.
20039//
20040// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20041// with awserr.Error's Code and Message methods to get detailed information about
20042// the error.
20043//
20044// See the AWS API reference guide for AWS IoT's
20045// API operation ListV2LoggingLevels for usage and error information.
20046//
20047// Returned Error Types:
20048//   * InternalException
20049//   An unexpected error has occurred.
20050//
20051//   * NotConfiguredException
20052//   The resource is not configured.
20053//
20054//   * InvalidRequestException
20055//   The request is not valid.
20056//
20057//   * ServiceUnavailableException
20058//   The service is temporarily unavailable.
20059//
20060func (c *IoT) ListV2LoggingLevels(input *ListV2LoggingLevelsInput) (*ListV2LoggingLevelsOutput, error) {
20061	req, out := c.ListV2LoggingLevelsRequest(input)
20062	return out, req.Send()
20063}
20064
20065// ListV2LoggingLevelsWithContext is the same as ListV2LoggingLevels with the addition of
20066// the ability to pass a context and additional request options.
20067//
20068// See ListV2LoggingLevels for details on how to use this API operation.
20069//
20070// The context must be non-nil and will be used for request cancellation. If
20071// the context is nil a panic will occur. In the future the SDK may create
20072// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20073// for more information on using Contexts.
20074func (c *IoT) ListV2LoggingLevelsWithContext(ctx aws.Context, input *ListV2LoggingLevelsInput, opts ...request.Option) (*ListV2LoggingLevelsOutput, error) {
20075	req, out := c.ListV2LoggingLevelsRequest(input)
20076	req.SetContext(ctx)
20077	req.ApplyOptions(opts...)
20078	return out, req.Send()
20079}
20080
20081// ListV2LoggingLevelsPages iterates over the pages of a ListV2LoggingLevels operation,
20082// calling the "fn" function with the response data for each page. To stop
20083// iterating, return false from the fn function.
20084//
20085// See ListV2LoggingLevels method for more information on how to use this operation.
20086//
20087// Note: This operation can generate multiple requests to a service.
20088//
20089//    // Example iterating over at most 3 pages of a ListV2LoggingLevels operation.
20090//    pageNum := 0
20091//    err := client.ListV2LoggingLevelsPages(params,
20092//        func(page *iot.ListV2LoggingLevelsOutput, lastPage bool) bool {
20093//            pageNum++
20094//            fmt.Println(page)
20095//            return pageNum <= 3
20096//        })
20097//
20098func (c *IoT) ListV2LoggingLevelsPages(input *ListV2LoggingLevelsInput, fn func(*ListV2LoggingLevelsOutput, bool) bool) error {
20099	return c.ListV2LoggingLevelsPagesWithContext(aws.BackgroundContext(), input, fn)
20100}
20101
20102// ListV2LoggingLevelsPagesWithContext same as ListV2LoggingLevelsPages except
20103// it takes a Context and allows setting request options on the pages.
20104//
20105// The context must be non-nil and will be used for request cancellation. If
20106// the context is nil a panic will occur. In the future the SDK may create
20107// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20108// for more information on using Contexts.
20109func (c *IoT) ListV2LoggingLevelsPagesWithContext(ctx aws.Context, input *ListV2LoggingLevelsInput, fn func(*ListV2LoggingLevelsOutput, bool) bool, opts ...request.Option) error {
20110	p := request.Pagination{
20111		NewRequest: func() (*request.Request, error) {
20112			var inCpy *ListV2LoggingLevelsInput
20113			if input != nil {
20114				tmp := *input
20115				inCpy = &tmp
20116			}
20117			req, _ := c.ListV2LoggingLevelsRequest(inCpy)
20118			req.SetContext(ctx)
20119			req.ApplyOptions(opts...)
20120			return req, nil
20121		},
20122	}
20123
20124	for p.Next() {
20125		if !fn(p.Page().(*ListV2LoggingLevelsOutput), !p.HasNextPage()) {
20126			break
20127		}
20128	}
20129
20130	return p.Err()
20131}
20132
20133const opListViolationEvents = "ListViolationEvents"
20134
20135// ListViolationEventsRequest generates a "aws/request.Request" representing the
20136// client's request for the ListViolationEvents operation. The "output" return
20137// value will be populated with the request's response once the request completes
20138// successfully.
20139//
20140// Use "Send" method on the returned Request to send the API call to the service.
20141// the "output" return value is not valid until after Send returns without error.
20142//
20143// See ListViolationEvents for more information on using the ListViolationEvents
20144// API call, and error handling.
20145//
20146// This method is useful when you want to inject custom logic or configuration
20147// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20148//
20149//
20150//    // Example sending a request using the ListViolationEventsRequest method.
20151//    req, resp := client.ListViolationEventsRequest(params)
20152//
20153//    err := req.Send()
20154//    if err == nil { // resp is now filled
20155//        fmt.Println(resp)
20156//    }
20157func (c *IoT) ListViolationEventsRequest(input *ListViolationEventsInput) (req *request.Request, output *ListViolationEventsOutput) {
20158	op := &request.Operation{
20159		Name:       opListViolationEvents,
20160		HTTPMethod: "GET",
20161		HTTPPath:   "/violation-events",
20162		Paginator: &request.Paginator{
20163			InputTokens:     []string{"nextToken"},
20164			OutputTokens:    []string{"nextToken"},
20165			LimitToken:      "maxResults",
20166			TruncationToken: "",
20167		},
20168	}
20169
20170	if input == nil {
20171		input = &ListViolationEventsInput{}
20172	}
20173
20174	output = &ListViolationEventsOutput{}
20175	req = c.newRequest(op, input, output)
20176	return
20177}
20178
20179// ListViolationEvents API operation for AWS IoT.
20180//
20181// Lists the Device Defender security profile violations discovered during the
20182// given time period. You can use filters to limit the results to those alerts
20183// issued for a particular security profile, behavior, or thing (device).
20184//
20185// Requires permission to access the ListViolationEvents (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
20186// action.
20187//
20188// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20189// with awserr.Error's Code and Message methods to get detailed information about
20190// the error.
20191//
20192// See the AWS API reference guide for AWS IoT's
20193// API operation ListViolationEvents for usage and error information.
20194//
20195// Returned Error Types:
20196//   * InvalidRequestException
20197//   The request is not valid.
20198//
20199//   * ThrottlingException
20200//   The rate exceeds the limit.
20201//
20202//   * InternalFailureException
20203//   An unexpected error has occurred.
20204//
20205func (c *IoT) ListViolationEvents(input *ListViolationEventsInput) (*ListViolationEventsOutput, error) {
20206	req, out := c.ListViolationEventsRequest(input)
20207	return out, req.Send()
20208}
20209
20210// ListViolationEventsWithContext is the same as ListViolationEvents with the addition of
20211// the ability to pass a context and additional request options.
20212//
20213// See ListViolationEvents for details on how to use this API operation.
20214//
20215// The context must be non-nil and will be used for request cancellation. If
20216// the context is nil a panic will occur. In the future the SDK may create
20217// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20218// for more information on using Contexts.
20219func (c *IoT) ListViolationEventsWithContext(ctx aws.Context, input *ListViolationEventsInput, opts ...request.Option) (*ListViolationEventsOutput, error) {
20220	req, out := c.ListViolationEventsRequest(input)
20221	req.SetContext(ctx)
20222	req.ApplyOptions(opts...)
20223	return out, req.Send()
20224}
20225
20226// ListViolationEventsPages iterates over the pages of a ListViolationEvents operation,
20227// calling the "fn" function with the response data for each page. To stop
20228// iterating, return false from the fn function.
20229//
20230// See ListViolationEvents method for more information on how to use this operation.
20231//
20232// Note: This operation can generate multiple requests to a service.
20233//
20234//    // Example iterating over at most 3 pages of a ListViolationEvents operation.
20235//    pageNum := 0
20236//    err := client.ListViolationEventsPages(params,
20237//        func(page *iot.ListViolationEventsOutput, lastPage bool) bool {
20238//            pageNum++
20239//            fmt.Println(page)
20240//            return pageNum <= 3
20241//        })
20242//
20243func (c *IoT) ListViolationEventsPages(input *ListViolationEventsInput, fn func(*ListViolationEventsOutput, bool) bool) error {
20244	return c.ListViolationEventsPagesWithContext(aws.BackgroundContext(), input, fn)
20245}
20246
20247// ListViolationEventsPagesWithContext same as ListViolationEventsPages except
20248// it takes a Context and allows setting request options on the pages.
20249//
20250// The context must be non-nil and will be used for request cancellation. If
20251// the context is nil a panic will occur. In the future the SDK may create
20252// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20253// for more information on using Contexts.
20254func (c *IoT) ListViolationEventsPagesWithContext(ctx aws.Context, input *ListViolationEventsInput, fn func(*ListViolationEventsOutput, bool) bool, opts ...request.Option) error {
20255	p := request.Pagination{
20256		NewRequest: func() (*request.Request, error) {
20257			var inCpy *ListViolationEventsInput
20258			if input != nil {
20259				tmp := *input
20260				inCpy = &tmp
20261			}
20262			req, _ := c.ListViolationEventsRequest(inCpy)
20263			req.SetContext(ctx)
20264			req.ApplyOptions(opts...)
20265			return req, nil
20266		},
20267	}
20268
20269	for p.Next() {
20270		if !fn(p.Page().(*ListViolationEventsOutput), !p.HasNextPage()) {
20271			break
20272		}
20273	}
20274
20275	return p.Err()
20276}
20277
20278const opRegisterCACertificate = "RegisterCACertificate"
20279
20280// RegisterCACertificateRequest generates a "aws/request.Request" representing the
20281// client's request for the RegisterCACertificate operation. The "output" return
20282// value will be populated with the request's response once the request completes
20283// successfully.
20284//
20285// Use "Send" method on the returned Request to send the API call to the service.
20286// the "output" return value is not valid until after Send returns without error.
20287//
20288// See RegisterCACertificate for more information on using the RegisterCACertificate
20289// API call, and error handling.
20290//
20291// This method is useful when you want to inject custom logic or configuration
20292// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20293//
20294//
20295//    // Example sending a request using the RegisterCACertificateRequest method.
20296//    req, resp := client.RegisterCACertificateRequest(params)
20297//
20298//    err := req.Send()
20299//    if err == nil { // resp is now filled
20300//        fmt.Println(resp)
20301//    }
20302func (c *IoT) RegisterCACertificateRequest(input *RegisterCACertificateInput) (req *request.Request, output *RegisterCACertificateOutput) {
20303	op := &request.Operation{
20304		Name:       opRegisterCACertificate,
20305		HTTPMethod: "POST",
20306		HTTPPath:   "/cacertificate",
20307	}
20308
20309	if input == nil {
20310		input = &RegisterCACertificateInput{}
20311	}
20312
20313	output = &RegisterCACertificateOutput{}
20314	req = c.newRequest(op, input, output)
20315	return
20316}
20317
20318// RegisterCACertificate API operation for AWS IoT.
20319//
20320// Registers a CA certificate with IoT. This CA certificate can then be used
20321// to sign device certificates, which can be then registered with IoT. You can
20322// register up to 10 CA certificates per Amazon Web Services account that have
20323// the same subject field. This enables you to have up to 10 certificate authorities
20324// sign your device certificates. If you have more than one CA certificate registered,
20325// make sure you pass the CA certificate when you register your device certificates
20326// with the RegisterCertificate action.
20327//
20328// Requires permission to access the RegisterCACertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
20329// action.
20330//
20331// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20332// with awserr.Error's Code and Message methods to get detailed information about
20333// the error.
20334//
20335// See the AWS API reference guide for AWS IoT's
20336// API operation RegisterCACertificate for usage and error information.
20337//
20338// Returned Error Types:
20339//   * ResourceAlreadyExistsException
20340//   The resource already exists.
20341//
20342//   * RegistrationCodeValidationException
20343//   The registration code is invalid.
20344//
20345//   * InvalidRequestException
20346//   The request is not valid.
20347//
20348//   * CertificateValidationException
20349//   The certificate is invalid.
20350//
20351//   * ThrottlingException
20352//   The rate exceeds the limit.
20353//
20354//   * LimitExceededException
20355//   A limit has been exceeded.
20356//
20357//   * UnauthorizedException
20358//   You are not authorized to perform this operation.
20359//
20360//   * ServiceUnavailableException
20361//   The service is temporarily unavailable.
20362//
20363//   * InternalFailureException
20364//   An unexpected error has occurred.
20365//
20366func (c *IoT) RegisterCACertificate(input *RegisterCACertificateInput) (*RegisterCACertificateOutput, error) {
20367	req, out := c.RegisterCACertificateRequest(input)
20368	return out, req.Send()
20369}
20370
20371// RegisterCACertificateWithContext is the same as RegisterCACertificate with the addition of
20372// the ability to pass a context and additional request options.
20373//
20374// See RegisterCACertificate for details on how to use this API operation.
20375//
20376// The context must be non-nil and will be used for request cancellation. If
20377// the context is nil a panic will occur. In the future the SDK may create
20378// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20379// for more information on using Contexts.
20380func (c *IoT) RegisterCACertificateWithContext(ctx aws.Context, input *RegisterCACertificateInput, opts ...request.Option) (*RegisterCACertificateOutput, error) {
20381	req, out := c.RegisterCACertificateRequest(input)
20382	req.SetContext(ctx)
20383	req.ApplyOptions(opts...)
20384	return out, req.Send()
20385}
20386
20387const opRegisterCertificate = "RegisterCertificate"
20388
20389// RegisterCertificateRequest generates a "aws/request.Request" representing the
20390// client's request for the RegisterCertificate operation. The "output" return
20391// value will be populated with the request's response once the request completes
20392// successfully.
20393//
20394// Use "Send" method on the returned Request to send the API call to the service.
20395// the "output" return value is not valid until after Send returns without error.
20396//
20397// See RegisterCertificate for more information on using the RegisterCertificate
20398// API call, and error handling.
20399//
20400// This method is useful when you want to inject custom logic or configuration
20401// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20402//
20403//
20404//    // Example sending a request using the RegisterCertificateRequest method.
20405//    req, resp := client.RegisterCertificateRequest(params)
20406//
20407//    err := req.Send()
20408//    if err == nil { // resp is now filled
20409//        fmt.Println(resp)
20410//    }
20411func (c *IoT) RegisterCertificateRequest(input *RegisterCertificateInput) (req *request.Request, output *RegisterCertificateOutput) {
20412	op := &request.Operation{
20413		Name:       opRegisterCertificate,
20414		HTTPMethod: "POST",
20415		HTTPPath:   "/certificate/register",
20416	}
20417
20418	if input == nil {
20419		input = &RegisterCertificateInput{}
20420	}
20421
20422	output = &RegisterCertificateOutput{}
20423	req = c.newRequest(op, input, output)
20424	return
20425}
20426
20427// RegisterCertificate API operation for AWS IoT.
20428//
20429// Registers a device certificate with IoT. If you have more than one CA certificate
20430// that has the same subject field, you must specify the CA certificate that
20431// was used to sign the device certificate being registered.
20432//
20433// Requires permission to access the RegisterCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
20434// action.
20435//
20436// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20437// with awserr.Error's Code and Message methods to get detailed information about
20438// the error.
20439//
20440// See the AWS API reference guide for AWS IoT's
20441// API operation RegisterCertificate for usage and error information.
20442//
20443// Returned Error Types:
20444//   * ResourceAlreadyExistsException
20445//   The resource already exists.
20446//
20447//   * InvalidRequestException
20448//   The request is not valid.
20449//
20450//   * CertificateValidationException
20451//   The certificate is invalid.
20452//
20453//   * CertificateStateException
20454//   The certificate operation is not allowed.
20455//
20456//   * CertificateConflictException
20457//   Unable to verify the CA certificate used to sign the device certificate you
20458//   are attempting to register. This is happens when you have registered more
20459//   than one CA certificate that has the same subject field and public key.
20460//
20461//   * ThrottlingException
20462//   The rate exceeds the limit.
20463//
20464//   * UnauthorizedException
20465//   You are not authorized to perform this operation.
20466//
20467//   * ServiceUnavailableException
20468//   The service is temporarily unavailable.
20469//
20470//   * InternalFailureException
20471//   An unexpected error has occurred.
20472//
20473func (c *IoT) RegisterCertificate(input *RegisterCertificateInput) (*RegisterCertificateOutput, error) {
20474	req, out := c.RegisterCertificateRequest(input)
20475	return out, req.Send()
20476}
20477
20478// RegisterCertificateWithContext is the same as RegisterCertificate with the addition of
20479// the ability to pass a context and additional request options.
20480//
20481// See RegisterCertificate for details on how to use this API operation.
20482//
20483// The context must be non-nil and will be used for request cancellation. If
20484// the context is nil a panic will occur. In the future the SDK may create
20485// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20486// for more information on using Contexts.
20487func (c *IoT) RegisterCertificateWithContext(ctx aws.Context, input *RegisterCertificateInput, opts ...request.Option) (*RegisterCertificateOutput, error) {
20488	req, out := c.RegisterCertificateRequest(input)
20489	req.SetContext(ctx)
20490	req.ApplyOptions(opts...)
20491	return out, req.Send()
20492}
20493
20494const opRegisterCertificateWithoutCA = "RegisterCertificateWithoutCA"
20495
20496// RegisterCertificateWithoutCARequest generates a "aws/request.Request" representing the
20497// client's request for the RegisterCertificateWithoutCA operation. The "output" return
20498// value will be populated with the request's response once the request completes
20499// successfully.
20500//
20501// Use "Send" method on the returned Request to send the API call to the service.
20502// the "output" return value is not valid until after Send returns without error.
20503//
20504// See RegisterCertificateWithoutCA for more information on using the RegisterCertificateWithoutCA
20505// API call, and error handling.
20506//
20507// This method is useful when you want to inject custom logic or configuration
20508// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20509//
20510//
20511//    // Example sending a request using the RegisterCertificateWithoutCARequest method.
20512//    req, resp := client.RegisterCertificateWithoutCARequest(params)
20513//
20514//    err := req.Send()
20515//    if err == nil { // resp is now filled
20516//        fmt.Println(resp)
20517//    }
20518func (c *IoT) RegisterCertificateWithoutCARequest(input *RegisterCertificateWithoutCAInput) (req *request.Request, output *RegisterCertificateWithoutCAOutput) {
20519	op := &request.Operation{
20520		Name:       opRegisterCertificateWithoutCA,
20521		HTTPMethod: "POST",
20522		HTTPPath:   "/certificate/register-no-ca",
20523	}
20524
20525	if input == nil {
20526		input = &RegisterCertificateWithoutCAInput{}
20527	}
20528
20529	output = &RegisterCertificateWithoutCAOutput{}
20530	req = c.newRequest(op, input, output)
20531	return
20532}
20533
20534// RegisterCertificateWithoutCA API operation for AWS IoT.
20535//
20536// Register a certificate that does not have a certificate authority (CA).
20537//
20538// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20539// with awserr.Error's Code and Message methods to get detailed information about
20540// the error.
20541//
20542// See the AWS API reference guide for AWS IoT's
20543// API operation RegisterCertificateWithoutCA for usage and error information.
20544//
20545// Returned Error Types:
20546//   * ResourceAlreadyExistsException
20547//   The resource already exists.
20548//
20549//   * InvalidRequestException
20550//   The request is not valid.
20551//
20552//   * CertificateStateException
20553//   The certificate operation is not allowed.
20554//
20555//   * CertificateValidationException
20556//   The certificate is invalid.
20557//
20558//   * ThrottlingException
20559//   The rate exceeds the limit.
20560//
20561//   * UnauthorizedException
20562//   You are not authorized to perform this operation.
20563//
20564//   * ServiceUnavailableException
20565//   The service is temporarily unavailable.
20566//
20567//   * InternalFailureException
20568//   An unexpected error has occurred.
20569//
20570func (c *IoT) RegisterCertificateWithoutCA(input *RegisterCertificateWithoutCAInput) (*RegisterCertificateWithoutCAOutput, error) {
20571	req, out := c.RegisterCertificateWithoutCARequest(input)
20572	return out, req.Send()
20573}
20574
20575// RegisterCertificateWithoutCAWithContext is the same as RegisterCertificateWithoutCA with the addition of
20576// the ability to pass a context and additional request options.
20577//
20578// See RegisterCertificateWithoutCA for details on how to use this API operation.
20579//
20580// The context must be non-nil and will be used for request cancellation. If
20581// the context is nil a panic will occur. In the future the SDK may create
20582// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20583// for more information on using Contexts.
20584func (c *IoT) RegisterCertificateWithoutCAWithContext(ctx aws.Context, input *RegisterCertificateWithoutCAInput, opts ...request.Option) (*RegisterCertificateWithoutCAOutput, error) {
20585	req, out := c.RegisterCertificateWithoutCARequest(input)
20586	req.SetContext(ctx)
20587	req.ApplyOptions(opts...)
20588	return out, req.Send()
20589}
20590
20591const opRegisterThing = "RegisterThing"
20592
20593// RegisterThingRequest generates a "aws/request.Request" representing the
20594// client's request for the RegisterThing operation. The "output" return
20595// value will be populated with the request's response once the request completes
20596// successfully.
20597//
20598// Use "Send" method on the returned Request to send the API call to the service.
20599// the "output" return value is not valid until after Send returns without error.
20600//
20601// See RegisterThing for more information on using the RegisterThing
20602// API call, and error handling.
20603//
20604// This method is useful when you want to inject custom logic or configuration
20605// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20606//
20607//
20608//    // Example sending a request using the RegisterThingRequest method.
20609//    req, resp := client.RegisterThingRequest(params)
20610//
20611//    err := req.Send()
20612//    if err == nil { // resp is now filled
20613//        fmt.Println(resp)
20614//    }
20615func (c *IoT) RegisterThingRequest(input *RegisterThingInput) (req *request.Request, output *RegisterThingOutput) {
20616	op := &request.Operation{
20617		Name:       opRegisterThing,
20618		HTTPMethod: "POST",
20619		HTTPPath:   "/things",
20620	}
20621
20622	if input == nil {
20623		input = &RegisterThingInput{}
20624	}
20625
20626	output = &RegisterThingOutput{}
20627	req = c.newRequest(op, input, output)
20628	return
20629}
20630
20631// RegisterThing API operation for AWS IoT.
20632//
20633// Provisions a thing in the device registry. RegisterThing calls other IoT
20634// control plane APIs. These calls might exceed your account level IoT Throttling
20635// Limits (https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_iot)
20636// and cause throttle errors. Please contact Amazon Web Services Customer Support
20637// (https://console.aws.amazon.com/support/home) to raise your throttling limits
20638// if necessary.
20639//
20640// Requires permission to access the RegisterThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
20641// action.
20642//
20643// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20644// with awserr.Error's Code and Message methods to get detailed information about
20645// the error.
20646//
20647// See the AWS API reference guide for AWS IoT's
20648// API operation RegisterThing for usage and error information.
20649//
20650// Returned Error Types:
20651//   * InternalFailureException
20652//   An unexpected error has occurred.
20653//
20654//   * ServiceUnavailableException
20655//   The service is temporarily unavailable.
20656//
20657//   * InvalidRequestException
20658//   The request is not valid.
20659//
20660//   * UnauthorizedException
20661//   You are not authorized to perform this operation.
20662//
20663//   * ThrottlingException
20664//   The rate exceeds the limit.
20665//
20666//   * ConflictingResourceUpdateException
20667//   A conflicting resource update exception. This exception is thrown when two
20668//   pending updates cause a conflict.
20669//
20670//   * ResourceRegistrationFailureException
20671//   The resource registration failed.
20672//
20673func (c *IoT) RegisterThing(input *RegisterThingInput) (*RegisterThingOutput, error) {
20674	req, out := c.RegisterThingRequest(input)
20675	return out, req.Send()
20676}
20677
20678// RegisterThingWithContext is the same as RegisterThing with the addition of
20679// the ability to pass a context and additional request options.
20680//
20681// See RegisterThing for details on how to use this API operation.
20682//
20683// The context must be non-nil and will be used for request cancellation. If
20684// the context is nil a panic will occur. In the future the SDK may create
20685// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20686// for more information on using Contexts.
20687func (c *IoT) RegisterThingWithContext(ctx aws.Context, input *RegisterThingInput, opts ...request.Option) (*RegisterThingOutput, error) {
20688	req, out := c.RegisterThingRequest(input)
20689	req.SetContext(ctx)
20690	req.ApplyOptions(opts...)
20691	return out, req.Send()
20692}
20693
20694const opRejectCertificateTransfer = "RejectCertificateTransfer"
20695
20696// RejectCertificateTransferRequest generates a "aws/request.Request" representing the
20697// client's request for the RejectCertificateTransfer operation. The "output" return
20698// value will be populated with the request's response once the request completes
20699// successfully.
20700//
20701// Use "Send" method on the returned Request to send the API call to the service.
20702// the "output" return value is not valid until after Send returns without error.
20703//
20704// See RejectCertificateTransfer for more information on using the RejectCertificateTransfer
20705// API call, and error handling.
20706//
20707// This method is useful when you want to inject custom logic or configuration
20708// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20709//
20710//
20711//    // Example sending a request using the RejectCertificateTransferRequest method.
20712//    req, resp := client.RejectCertificateTransferRequest(params)
20713//
20714//    err := req.Send()
20715//    if err == nil { // resp is now filled
20716//        fmt.Println(resp)
20717//    }
20718func (c *IoT) RejectCertificateTransferRequest(input *RejectCertificateTransferInput) (req *request.Request, output *RejectCertificateTransferOutput) {
20719	op := &request.Operation{
20720		Name:       opRejectCertificateTransfer,
20721		HTTPMethod: "PATCH",
20722		HTTPPath:   "/reject-certificate-transfer/{certificateId}",
20723	}
20724
20725	if input == nil {
20726		input = &RejectCertificateTransferInput{}
20727	}
20728
20729	output = &RejectCertificateTransferOutput{}
20730	req = c.newRequest(op, input, output)
20731	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20732	return
20733}
20734
20735// RejectCertificateTransfer API operation for AWS IoT.
20736//
20737// Rejects a pending certificate transfer. After IoT rejects a certificate transfer,
20738// the certificate status changes from PENDING_TRANSFER to INACTIVE.
20739//
20740// To check for pending certificate transfers, call ListCertificates to enumerate
20741// your certificates.
20742//
20743// This operation can only be called by the transfer destination. After it is
20744// called, the certificate will be returned to the source's account in the INACTIVE
20745// state.
20746//
20747// Requires permission to access the RejectCertificateTransfer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
20748// action.
20749//
20750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20751// with awserr.Error's Code and Message methods to get detailed information about
20752// the error.
20753//
20754// See the AWS API reference guide for AWS IoT's
20755// API operation RejectCertificateTransfer for usage and error information.
20756//
20757// Returned Error Types:
20758//   * ResourceNotFoundException
20759//   The specified resource does not exist.
20760//
20761//   * TransferAlreadyCompletedException
20762//   You can't revert the certificate transfer because the transfer is already
20763//   complete.
20764//
20765//   * InvalidRequestException
20766//   The request is not valid.
20767//
20768//   * ThrottlingException
20769//   The rate exceeds the limit.
20770//
20771//   * UnauthorizedException
20772//   You are not authorized to perform this operation.
20773//
20774//   * ServiceUnavailableException
20775//   The service is temporarily unavailable.
20776//
20777//   * InternalFailureException
20778//   An unexpected error has occurred.
20779//
20780func (c *IoT) RejectCertificateTransfer(input *RejectCertificateTransferInput) (*RejectCertificateTransferOutput, error) {
20781	req, out := c.RejectCertificateTransferRequest(input)
20782	return out, req.Send()
20783}
20784
20785// RejectCertificateTransferWithContext is the same as RejectCertificateTransfer with the addition of
20786// the ability to pass a context and additional request options.
20787//
20788// See RejectCertificateTransfer for details on how to use this API operation.
20789//
20790// The context must be non-nil and will be used for request cancellation. If
20791// the context is nil a panic will occur. In the future the SDK may create
20792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20793// for more information on using Contexts.
20794func (c *IoT) RejectCertificateTransferWithContext(ctx aws.Context, input *RejectCertificateTransferInput, opts ...request.Option) (*RejectCertificateTransferOutput, error) {
20795	req, out := c.RejectCertificateTransferRequest(input)
20796	req.SetContext(ctx)
20797	req.ApplyOptions(opts...)
20798	return out, req.Send()
20799}
20800
20801const opRemoveThingFromBillingGroup = "RemoveThingFromBillingGroup"
20802
20803// RemoveThingFromBillingGroupRequest generates a "aws/request.Request" representing the
20804// client's request for the RemoveThingFromBillingGroup operation. The "output" return
20805// value will be populated with the request's response once the request completes
20806// successfully.
20807//
20808// Use "Send" method on the returned Request to send the API call to the service.
20809// the "output" return value is not valid until after Send returns without error.
20810//
20811// See RemoveThingFromBillingGroup for more information on using the RemoveThingFromBillingGroup
20812// API call, and error handling.
20813//
20814// This method is useful when you want to inject custom logic or configuration
20815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20816//
20817//
20818//    // Example sending a request using the RemoveThingFromBillingGroupRequest method.
20819//    req, resp := client.RemoveThingFromBillingGroupRequest(params)
20820//
20821//    err := req.Send()
20822//    if err == nil { // resp is now filled
20823//        fmt.Println(resp)
20824//    }
20825func (c *IoT) RemoveThingFromBillingGroupRequest(input *RemoveThingFromBillingGroupInput) (req *request.Request, output *RemoveThingFromBillingGroupOutput) {
20826	op := &request.Operation{
20827		Name:       opRemoveThingFromBillingGroup,
20828		HTTPMethod: "PUT",
20829		HTTPPath:   "/billing-groups/removeThingFromBillingGroup",
20830	}
20831
20832	if input == nil {
20833		input = &RemoveThingFromBillingGroupInput{}
20834	}
20835
20836	output = &RemoveThingFromBillingGroupOutput{}
20837	req = c.newRequest(op, input, output)
20838	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20839	return
20840}
20841
20842// RemoveThingFromBillingGroup API operation for AWS IoT.
20843//
20844// Removes the given thing from the billing group.
20845//
20846// Requires permission to access the RemoveThingFromBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
20847// action.
20848//
20849// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20850// with awserr.Error's Code and Message methods to get detailed information about
20851// the error.
20852//
20853// See the AWS API reference guide for AWS IoT's
20854// API operation RemoveThingFromBillingGroup for usage and error information.
20855//
20856// Returned Error Types:
20857//   * InvalidRequestException
20858//   The request is not valid.
20859//
20860//   * ThrottlingException
20861//   The rate exceeds the limit.
20862//
20863//   * InternalFailureException
20864//   An unexpected error has occurred.
20865//
20866//   * ResourceNotFoundException
20867//   The specified resource does not exist.
20868//
20869func (c *IoT) RemoveThingFromBillingGroup(input *RemoveThingFromBillingGroupInput) (*RemoveThingFromBillingGroupOutput, error) {
20870	req, out := c.RemoveThingFromBillingGroupRequest(input)
20871	return out, req.Send()
20872}
20873
20874// RemoveThingFromBillingGroupWithContext is the same as RemoveThingFromBillingGroup with the addition of
20875// the ability to pass a context and additional request options.
20876//
20877// See RemoveThingFromBillingGroup for details on how to use this API operation.
20878//
20879// The context must be non-nil and will be used for request cancellation. If
20880// the context is nil a panic will occur. In the future the SDK may create
20881// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20882// for more information on using Contexts.
20883func (c *IoT) RemoveThingFromBillingGroupWithContext(ctx aws.Context, input *RemoveThingFromBillingGroupInput, opts ...request.Option) (*RemoveThingFromBillingGroupOutput, error) {
20884	req, out := c.RemoveThingFromBillingGroupRequest(input)
20885	req.SetContext(ctx)
20886	req.ApplyOptions(opts...)
20887	return out, req.Send()
20888}
20889
20890const opRemoveThingFromThingGroup = "RemoveThingFromThingGroup"
20891
20892// RemoveThingFromThingGroupRequest generates a "aws/request.Request" representing the
20893// client's request for the RemoveThingFromThingGroup operation. The "output" return
20894// value will be populated with the request's response once the request completes
20895// successfully.
20896//
20897// Use "Send" method on the returned Request to send the API call to the service.
20898// the "output" return value is not valid until after Send returns without error.
20899//
20900// See RemoveThingFromThingGroup for more information on using the RemoveThingFromThingGroup
20901// API call, and error handling.
20902//
20903// This method is useful when you want to inject custom logic or configuration
20904// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20905//
20906//
20907//    // Example sending a request using the RemoveThingFromThingGroupRequest method.
20908//    req, resp := client.RemoveThingFromThingGroupRequest(params)
20909//
20910//    err := req.Send()
20911//    if err == nil { // resp is now filled
20912//        fmt.Println(resp)
20913//    }
20914func (c *IoT) RemoveThingFromThingGroupRequest(input *RemoveThingFromThingGroupInput) (req *request.Request, output *RemoveThingFromThingGroupOutput) {
20915	op := &request.Operation{
20916		Name:       opRemoveThingFromThingGroup,
20917		HTTPMethod: "PUT",
20918		HTTPPath:   "/thing-groups/removeThingFromThingGroup",
20919	}
20920
20921	if input == nil {
20922		input = &RemoveThingFromThingGroupInput{}
20923	}
20924
20925	output = &RemoveThingFromThingGroupOutput{}
20926	req = c.newRequest(op, input, output)
20927	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20928	return
20929}
20930
20931// RemoveThingFromThingGroup API operation for AWS IoT.
20932//
20933// Remove the specified thing from the specified group.
20934//
20935// You must specify either a thingGroupArn or a thingGroupName to identify the
20936// thing group and either a thingArn or a thingName to identify the thing to
20937// remove from the thing group.
20938//
20939// Requires permission to access the RemoveThingFromThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
20940// action.
20941//
20942// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20943// with awserr.Error's Code and Message methods to get detailed information about
20944// the error.
20945//
20946// See the AWS API reference guide for AWS IoT's
20947// API operation RemoveThingFromThingGroup for usage and error information.
20948//
20949// Returned Error Types:
20950//   * InvalidRequestException
20951//   The request is not valid.
20952//
20953//   * ThrottlingException
20954//   The rate exceeds the limit.
20955//
20956//   * InternalFailureException
20957//   An unexpected error has occurred.
20958//
20959//   * ResourceNotFoundException
20960//   The specified resource does not exist.
20961//
20962func (c *IoT) RemoveThingFromThingGroup(input *RemoveThingFromThingGroupInput) (*RemoveThingFromThingGroupOutput, error) {
20963	req, out := c.RemoveThingFromThingGroupRequest(input)
20964	return out, req.Send()
20965}
20966
20967// RemoveThingFromThingGroupWithContext is the same as RemoveThingFromThingGroup with the addition of
20968// the ability to pass a context and additional request options.
20969//
20970// See RemoveThingFromThingGroup for details on how to use this API operation.
20971//
20972// The context must be non-nil and will be used for request cancellation. If
20973// the context is nil a panic will occur. In the future the SDK may create
20974// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20975// for more information on using Contexts.
20976func (c *IoT) RemoveThingFromThingGroupWithContext(ctx aws.Context, input *RemoveThingFromThingGroupInput, opts ...request.Option) (*RemoveThingFromThingGroupOutput, error) {
20977	req, out := c.RemoveThingFromThingGroupRequest(input)
20978	req.SetContext(ctx)
20979	req.ApplyOptions(opts...)
20980	return out, req.Send()
20981}
20982
20983const opReplaceTopicRule = "ReplaceTopicRule"
20984
20985// ReplaceTopicRuleRequest generates a "aws/request.Request" representing the
20986// client's request for the ReplaceTopicRule operation. The "output" return
20987// value will be populated with the request's response once the request completes
20988// successfully.
20989//
20990// Use "Send" method on the returned Request to send the API call to the service.
20991// the "output" return value is not valid until after Send returns without error.
20992//
20993// See ReplaceTopicRule for more information on using the ReplaceTopicRule
20994// API call, and error handling.
20995//
20996// This method is useful when you want to inject custom logic or configuration
20997// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20998//
20999//
21000//    // Example sending a request using the ReplaceTopicRuleRequest method.
21001//    req, resp := client.ReplaceTopicRuleRequest(params)
21002//
21003//    err := req.Send()
21004//    if err == nil { // resp is now filled
21005//        fmt.Println(resp)
21006//    }
21007func (c *IoT) ReplaceTopicRuleRequest(input *ReplaceTopicRuleInput) (req *request.Request, output *ReplaceTopicRuleOutput) {
21008	op := &request.Operation{
21009		Name:       opReplaceTopicRule,
21010		HTTPMethod: "PATCH",
21011		HTTPPath:   "/rules/{ruleName}",
21012	}
21013
21014	if input == nil {
21015		input = &ReplaceTopicRuleInput{}
21016	}
21017
21018	output = &ReplaceTopicRuleOutput{}
21019	req = c.newRequest(op, input, output)
21020	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21021	return
21022}
21023
21024// ReplaceTopicRule API operation for AWS IoT.
21025//
21026// Replaces the rule. You must specify all parameters for the new rule. Creating
21027// rules is an administrator-level action. Any user who has permission to create
21028// rules will be able to access data processed by the rule.
21029//
21030// Requires permission to access the ReplaceTopicRule (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21031// action.
21032//
21033// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21034// with awserr.Error's Code and Message methods to get detailed information about
21035// the error.
21036//
21037// See the AWS API reference guide for AWS IoT's
21038// API operation ReplaceTopicRule for usage and error information.
21039//
21040// Returned Error Types:
21041//   * SqlParseException
21042//   The Rule-SQL expression can't be parsed correctly.
21043//
21044//   * InternalException
21045//   An unexpected error has occurred.
21046//
21047//   * InvalidRequestException
21048//   The request is not valid.
21049//
21050//   * ServiceUnavailableException
21051//   The service is temporarily unavailable.
21052//
21053//   * UnauthorizedException
21054//   You are not authorized to perform this operation.
21055//
21056//   * ConflictingResourceUpdateException
21057//   A conflicting resource update exception. This exception is thrown when two
21058//   pending updates cause a conflict.
21059//
21060func (c *IoT) ReplaceTopicRule(input *ReplaceTopicRuleInput) (*ReplaceTopicRuleOutput, error) {
21061	req, out := c.ReplaceTopicRuleRequest(input)
21062	return out, req.Send()
21063}
21064
21065// ReplaceTopicRuleWithContext is the same as ReplaceTopicRule with the addition of
21066// the ability to pass a context and additional request options.
21067//
21068// See ReplaceTopicRule for details on how to use this API operation.
21069//
21070// The context must be non-nil and will be used for request cancellation. If
21071// the context is nil a panic will occur. In the future the SDK may create
21072// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21073// for more information on using Contexts.
21074func (c *IoT) ReplaceTopicRuleWithContext(ctx aws.Context, input *ReplaceTopicRuleInput, opts ...request.Option) (*ReplaceTopicRuleOutput, error) {
21075	req, out := c.ReplaceTopicRuleRequest(input)
21076	req.SetContext(ctx)
21077	req.ApplyOptions(opts...)
21078	return out, req.Send()
21079}
21080
21081const opSearchIndex = "SearchIndex"
21082
21083// SearchIndexRequest generates a "aws/request.Request" representing the
21084// client's request for the SearchIndex operation. The "output" return
21085// value will be populated with the request's response once the request completes
21086// successfully.
21087//
21088// Use "Send" method on the returned Request to send the API call to the service.
21089// the "output" return value is not valid until after Send returns without error.
21090//
21091// See SearchIndex for more information on using the SearchIndex
21092// API call, and error handling.
21093//
21094// This method is useful when you want to inject custom logic or configuration
21095// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21096//
21097//
21098//    // Example sending a request using the SearchIndexRequest method.
21099//    req, resp := client.SearchIndexRequest(params)
21100//
21101//    err := req.Send()
21102//    if err == nil { // resp is now filled
21103//        fmt.Println(resp)
21104//    }
21105func (c *IoT) SearchIndexRequest(input *SearchIndexInput) (req *request.Request, output *SearchIndexOutput) {
21106	op := &request.Operation{
21107		Name:       opSearchIndex,
21108		HTTPMethod: "POST",
21109		HTTPPath:   "/indices/search",
21110	}
21111
21112	if input == nil {
21113		input = &SearchIndexInput{}
21114	}
21115
21116	output = &SearchIndexOutput{}
21117	req = c.newRequest(op, input, output)
21118	return
21119}
21120
21121// SearchIndex API operation for AWS IoT.
21122//
21123// The query search index.
21124//
21125// Requires permission to access the SearchIndex (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21126// action.
21127//
21128// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21129// with awserr.Error's Code and Message methods to get detailed information about
21130// the error.
21131//
21132// See the AWS API reference guide for AWS IoT's
21133// API operation SearchIndex for usage and error information.
21134//
21135// Returned Error Types:
21136//   * InvalidRequestException
21137//   The request is not valid.
21138//
21139//   * ThrottlingException
21140//   The rate exceeds the limit.
21141//
21142//   * UnauthorizedException
21143//   You are not authorized to perform this operation.
21144//
21145//   * ServiceUnavailableException
21146//   The service is temporarily unavailable.
21147//
21148//   * InternalFailureException
21149//   An unexpected error has occurred.
21150//
21151//   * ResourceNotFoundException
21152//   The specified resource does not exist.
21153//
21154//   * InvalidQueryException
21155//   The query is invalid.
21156//
21157//   * IndexNotReadyException
21158//   The index is not ready.
21159//
21160func (c *IoT) SearchIndex(input *SearchIndexInput) (*SearchIndexOutput, error) {
21161	req, out := c.SearchIndexRequest(input)
21162	return out, req.Send()
21163}
21164
21165// SearchIndexWithContext is the same as SearchIndex with the addition of
21166// the ability to pass a context and additional request options.
21167//
21168// See SearchIndex 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) SearchIndexWithContext(ctx aws.Context, input *SearchIndexInput, opts ...request.Option) (*SearchIndexOutput, error) {
21175	req, out := c.SearchIndexRequest(input)
21176	req.SetContext(ctx)
21177	req.ApplyOptions(opts...)
21178	return out, req.Send()
21179}
21180
21181const opSetDefaultAuthorizer = "SetDefaultAuthorizer"
21182
21183// SetDefaultAuthorizerRequest generates a "aws/request.Request" representing the
21184// client's request for the SetDefaultAuthorizer 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 SetDefaultAuthorizer for more information on using the SetDefaultAuthorizer
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 SetDefaultAuthorizerRequest method.
21199//    req, resp := client.SetDefaultAuthorizerRequest(params)
21200//
21201//    err := req.Send()
21202//    if err == nil { // resp is now filled
21203//        fmt.Println(resp)
21204//    }
21205func (c *IoT) SetDefaultAuthorizerRequest(input *SetDefaultAuthorizerInput) (req *request.Request, output *SetDefaultAuthorizerOutput) {
21206	op := &request.Operation{
21207		Name:       opSetDefaultAuthorizer,
21208		HTTPMethod: "POST",
21209		HTTPPath:   "/default-authorizer",
21210	}
21211
21212	if input == nil {
21213		input = &SetDefaultAuthorizerInput{}
21214	}
21215
21216	output = &SetDefaultAuthorizerOutput{}
21217	req = c.newRequest(op, input, output)
21218	return
21219}
21220
21221// SetDefaultAuthorizer API operation for AWS IoT.
21222//
21223// Sets the default authorizer. This will be used if a websocket connection
21224// is made without specifying an authorizer.
21225//
21226// Requires permission to access the SetDefaultAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21227// action.
21228//
21229// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21230// with awserr.Error's Code and Message methods to get detailed information about
21231// the error.
21232//
21233// See the AWS API reference guide for AWS IoT's
21234// API operation SetDefaultAuthorizer for usage and error information.
21235//
21236// Returned Error Types:
21237//   * ResourceNotFoundException
21238//   The specified resource does not exist.
21239//
21240//   * InvalidRequestException
21241//   The request is not valid.
21242//
21243//   * ThrottlingException
21244//   The rate exceeds the limit.
21245//
21246//   * UnauthorizedException
21247//   You are not authorized to perform this operation.
21248//
21249//   * ServiceUnavailableException
21250//   The service is temporarily unavailable.
21251//
21252//   * InternalFailureException
21253//   An unexpected error has occurred.
21254//
21255//   * ResourceAlreadyExistsException
21256//   The resource already exists.
21257//
21258func (c *IoT) SetDefaultAuthorizer(input *SetDefaultAuthorizerInput) (*SetDefaultAuthorizerOutput, error) {
21259	req, out := c.SetDefaultAuthorizerRequest(input)
21260	return out, req.Send()
21261}
21262
21263// SetDefaultAuthorizerWithContext is the same as SetDefaultAuthorizer with the addition of
21264// the ability to pass a context and additional request options.
21265//
21266// See SetDefaultAuthorizer for details on how to use this API operation.
21267//
21268// The context must be non-nil and will be used for request cancellation. If
21269// the context is nil a panic will occur. In the future the SDK may create
21270// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21271// for more information on using Contexts.
21272func (c *IoT) SetDefaultAuthorizerWithContext(ctx aws.Context, input *SetDefaultAuthorizerInput, opts ...request.Option) (*SetDefaultAuthorizerOutput, error) {
21273	req, out := c.SetDefaultAuthorizerRequest(input)
21274	req.SetContext(ctx)
21275	req.ApplyOptions(opts...)
21276	return out, req.Send()
21277}
21278
21279const opSetDefaultPolicyVersion = "SetDefaultPolicyVersion"
21280
21281// SetDefaultPolicyVersionRequest generates a "aws/request.Request" representing the
21282// client's request for the SetDefaultPolicyVersion operation. The "output" return
21283// value will be populated with the request's response once the request completes
21284// successfully.
21285//
21286// Use "Send" method on the returned Request to send the API call to the service.
21287// the "output" return value is not valid until after Send returns without error.
21288//
21289// See SetDefaultPolicyVersion for more information on using the SetDefaultPolicyVersion
21290// API call, and error handling.
21291//
21292// This method is useful when you want to inject custom logic or configuration
21293// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21294//
21295//
21296//    // Example sending a request using the SetDefaultPolicyVersionRequest method.
21297//    req, resp := client.SetDefaultPolicyVersionRequest(params)
21298//
21299//    err := req.Send()
21300//    if err == nil { // resp is now filled
21301//        fmt.Println(resp)
21302//    }
21303func (c *IoT) SetDefaultPolicyVersionRequest(input *SetDefaultPolicyVersionInput) (req *request.Request, output *SetDefaultPolicyVersionOutput) {
21304	op := &request.Operation{
21305		Name:       opSetDefaultPolicyVersion,
21306		HTTPMethod: "PATCH",
21307		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
21308	}
21309
21310	if input == nil {
21311		input = &SetDefaultPolicyVersionInput{}
21312	}
21313
21314	output = &SetDefaultPolicyVersionOutput{}
21315	req = c.newRequest(op, input, output)
21316	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21317	return
21318}
21319
21320// SetDefaultPolicyVersion API operation for AWS IoT.
21321//
21322// Sets the specified version of the specified policy as the policy's default
21323// (operative) version. This action affects all certificates to which the policy
21324// is attached. To list the principals the policy is attached to, use the ListPrincipalPolicies
21325// action.
21326//
21327// Requires permission to access the SetDefaultPolicyVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21328// action.
21329//
21330// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21331// with awserr.Error's Code and Message methods to get detailed information about
21332// the error.
21333//
21334// See the AWS API reference guide for AWS IoT's
21335// API operation SetDefaultPolicyVersion for usage and error information.
21336//
21337// Returned Error Types:
21338//   * ResourceNotFoundException
21339//   The specified resource does not exist.
21340//
21341//   * InvalidRequestException
21342//   The request is not valid.
21343//
21344//   * ThrottlingException
21345//   The rate exceeds the limit.
21346//
21347//   * UnauthorizedException
21348//   You are not authorized to perform this operation.
21349//
21350//   * ServiceUnavailableException
21351//   The service is temporarily unavailable.
21352//
21353//   * InternalFailureException
21354//   An unexpected error has occurred.
21355//
21356func (c *IoT) SetDefaultPolicyVersion(input *SetDefaultPolicyVersionInput) (*SetDefaultPolicyVersionOutput, error) {
21357	req, out := c.SetDefaultPolicyVersionRequest(input)
21358	return out, req.Send()
21359}
21360
21361// SetDefaultPolicyVersionWithContext is the same as SetDefaultPolicyVersion with the addition of
21362// the ability to pass a context and additional request options.
21363//
21364// See SetDefaultPolicyVersion for details on how to use this API operation.
21365//
21366// The context must be non-nil and will be used for request cancellation. If
21367// the context is nil a panic will occur. In the future the SDK may create
21368// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21369// for more information on using Contexts.
21370func (c *IoT) SetDefaultPolicyVersionWithContext(ctx aws.Context, input *SetDefaultPolicyVersionInput, opts ...request.Option) (*SetDefaultPolicyVersionOutput, error) {
21371	req, out := c.SetDefaultPolicyVersionRequest(input)
21372	req.SetContext(ctx)
21373	req.ApplyOptions(opts...)
21374	return out, req.Send()
21375}
21376
21377const opSetLoggingOptions = "SetLoggingOptions"
21378
21379// SetLoggingOptionsRequest generates a "aws/request.Request" representing the
21380// client's request for the SetLoggingOptions operation. The "output" return
21381// value will be populated with the request's response once the request completes
21382// successfully.
21383//
21384// Use "Send" method on the returned Request to send the API call to the service.
21385// the "output" return value is not valid until after Send returns without error.
21386//
21387// See SetLoggingOptions for more information on using the SetLoggingOptions
21388// API call, and error handling.
21389//
21390// This method is useful when you want to inject custom logic or configuration
21391// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21392//
21393//
21394//    // Example sending a request using the SetLoggingOptionsRequest method.
21395//    req, resp := client.SetLoggingOptionsRequest(params)
21396//
21397//    err := req.Send()
21398//    if err == nil { // resp is now filled
21399//        fmt.Println(resp)
21400//    }
21401func (c *IoT) SetLoggingOptionsRequest(input *SetLoggingOptionsInput) (req *request.Request, output *SetLoggingOptionsOutput) {
21402	op := &request.Operation{
21403		Name:       opSetLoggingOptions,
21404		HTTPMethod: "POST",
21405		HTTPPath:   "/loggingOptions",
21406	}
21407
21408	if input == nil {
21409		input = &SetLoggingOptionsInput{}
21410	}
21411
21412	output = &SetLoggingOptionsOutput{}
21413	req = c.newRequest(op, input, output)
21414	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21415	return
21416}
21417
21418// SetLoggingOptions API operation for AWS IoT.
21419//
21420// Sets the logging options.
21421//
21422// NOTE: use of this command is not recommended. Use SetV2LoggingOptions instead.
21423//
21424// Requires permission to access the SetLoggingOptions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21425// action.
21426//
21427// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21428// with awserr.Error's Code and Message methods to get detailed information about
21429// the error.
21430//
21431// See the AWS API reference guide for AWS IoT's
21432// API operation SetLoggingOptions for usage and error information.
21433//
21434// Returned Error Types:
21435//   * InternalException
21436//   An unexpected error has occurred.
21437//
21438//   * InvalidRequestException
21439//   The request is not valid.
21440//
21441//   * ServiceUnavailableException
21442//   The service is temporarily unavailable.
21443//
21444func (c *IoT) SetLoggingOptions(input *SetLoggingOptionsInput) (*SetLoggingOptionsOutput, error) {
21445	req, out := c.SetLoggingOptionsRequest(input)
21446	return out, req.Send()
21447}
21448
21449// SetLoggingOptionsWithContext is the same as SetLoggingOptions with the addition of
21450// the ability to pass a context and additional request options.
21451//
21452// See SetLoggingOptions for details on how to use this API operation.
21453//
21454// The context must be non-nil and will be used for request cancellation. If
21455// the context is nil a panic will occur. In the future the SDK may create
21456// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21457// for more information on using Contexts.
21458func (c *IoT) SetLoggingOptionsWithContext(ctx aws.Context, input *SetLoggingOptionsInput, opts ...request.Option) (*SetLoggingOptionsOutput, error) {
21459	req, out := c.SetLoggingOptionsRequest(input)
21460	req.SetContext(ctx)
21461	req.ApplyOptions(opts...)
21462	return out, req.Send()
21463}
21464
21465const opSetV2LoggingLevel = "SetV2LoggingLevel"
21466
21467// SetV2LoggingLevelRequest generates a "aws/request.Request" representing the
21468// client's request for the SetV2LoggingLevel operation. The "output" return
21469// value will be populated with the request's response once the request completes
21470// successfully.
21471//
21472// Use "Send" method on the returned Request to send the API call to the service.
21473// the "output" return value is not valid until after Send returns without error.
21474//
21475// See SetV2LoggingLevel for more information on using the SetV2LoggingLevel
21476// API call, and error handling.
21477//
21478// This method is useful when you want to inject custom logic or configuration
21479// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21480//
21481//
21482//    // Example sending a request using the SetV2LoggingLevelRequest method.
21483//    req, resp := client.SetV2LoggingLevelRequest(params)
21484//
21485//    err := req.Send()
21486//    if err == nil { // resp is now filled
21487//        fmt.Println(resp)
21488//    }
21489func (c *IoT) SetV2LoggingLevelRequest(input *SetV2LoggingLevelInput) (req *request.Request, output *SetV2LoggingLevelOutput) {
21490	op := &request.Operation{
21491		Name:       opSetV2LoggingLevel,
21492		HTTPMethod: "POST",
21493		HTTPPath:   "/v2LoggingLevel",
21494	}
21495
21496	if input == nil {
21497		input = &SetV2LoggingLevelInput{}
21498	}
21499
21500	output = &SetV2LoggingLevelOutput{}
21501	req = c.newRequest(op, input, output)
21502	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21503	return
21504}
21505
21506// SetV2LoggingLevel API operation for AWS IoT.
21507//
21508// Sets the logging level.
21509//
21510// Requires permission to access the SetV2LoggingLevel (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21511// action.
21512//
21513// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21514// with awserr.Error's Code and Message methods to get detailed information about
21515// the error.
21516//
21517// See the AWS API reference guide for AWS IoT's
21518// API operation SetV2LoggingLevel for usage and error information.
21519//
21520// Returned Error Types:
21521//   * InternalException
21522//   An unexpected error has occurred.
21523//
21524//   * NotConfiguredException
21525//   The resource is not configured.
21526//
21527//   * InvalidRequestException
21528//   The request is not valid.
21529//
21530//   * ServiceUnavailableException
21531//   The service is temporarily unavailable.
21532//
21533//   * LimitExceededException
21534//   A limit has been exceeded.
21535//
21536func (c *IoT) SetV2LoggingLevel(input *SetV2LoggingLevelInput) (*SetV2LoggingLevelOutput, error) {
21537	req, out := c.SetV2LoggingLevelRequest(input)
21538	return out, req.Send()
21539}
21540
21541// SetV2LoggingLevelWithContext is the same as SetV2LoggingLevel with the addition of
21542// the ability to pass a context and additional request options.
21543//
21544// See SetV2LoggingLevel for details on how to use this API operation.
21545//
21546// The context must be non-nil and will be used for request cancellation. If
21547// the context is nil a panic will occur. In the future the SDK may create
21548// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21549// for more information on using Contexts.
21550func (c *IoT) SetV2LoggingLevelWithContext(ctx aws.Context, input *SetV2LoggingLevelInput, opts ...request.Option) (*SetV2LoggingLevelOutput, error) {
21551	req, out := c.SetV2LoggingLevelRequest(input)
21552	req.SetContext(ctx)
21553	req.ApplyOptions(opts...)
21554	return out, req.Send()
21555}
21556
21557const opSetV2LoggingOptions = "SetV2LoggingOptions"
21558
21559// SetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
21560// client's request for the SetV2LoggingOptions operation. The "output" return
21561// value will be populated with the request's response once the request completes
21562// successfully.
21563//
21564// Use "Send" method on the returned Request to send the API call to the service.
21565// the "output" return value is not valid until after Send returns without error.
21566//
21567// See SetV2LoggingOptions for more information on using the SetV2LoggingOptions
21568// API call, and error handling.
21569//
21570// This method is useful when you want to inject custom logic or configuration
21571// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21572//
21573//
21574//    // Example sending a request using the SetV2LoggingOptionsRequest method.
21575//    req, resp := client.SetV2LoggingOptionsRequest(params)
21576//
21577//    err := req.Send()
21578//    if err == nil { // resp is now filled
21579//        fmt.Println(resp)
21580//    }
21581func (c *IoT) SetV2LoggingOptionsRequest(input *SetV2LoggingOptionsInput) (req *request.Request, output *SetV2LoggingOptionsOutput) {
21582	op := &request.Operation{
21583		Name:       opSetV2LoggingOptions,
21584		HTTPMethod: "POST",
21585		HTTPPath:   "/v2LoggingOptions",
21586	}
21587
21588	if input == nil {
21589		input = &SetV2LoggingOptionsInput{}
21590	}
21591
21592	output = &SetV2LoggingOptionsOutput{}
21593	req = c.newRequest(op, input, output)
21594	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21595	return
21596}
21597
21598// SetV2LoggingOptions API operation for AWS IoT.
21599//
21600// Sets the logging options for the V2 logging service.
21601//
21602// Requires permission to access the SetV2LoggingOptions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21603// action.
21604//
21605// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21606// with awserr.Error's Code and Message methods to get detailed information about
21607// the error.
21608//
21609// See the AWS API reference guide for AWS IoT's
21610// API operation SetV2LoggingOptions for usage and error information.
21611//
21612// Returned Error Types:
21613//   * InternalException
21614//   An unexpected error has occurred.
21615//
21616//   * InvalidRequestException
21617//   The request is not valid.
21618//
21619//   * ServiceUnavailableException
21620//   The service is temporarily unavailable.
21621//
21622func (c *IoT) SetV2LoggingOptions(input *SetV2LoggingOptionsInput) (*SetV2LoggingOptionsOutput, error) {
21623	req, out := c.SetV2LoggingOptionsRequest(input)
21624	return out, req.Send()
21625}
21626
21627// SetV2LoggingOptionsWithContext is the same as SetV2LoggingOptions with the addition of
21628// the ability to pass a context and additional request options.
21629//
21630// See SetV2LoggingOptions for details on how to use this API operation.
21631//
21632// The context must be non-nil and will be used for request cancellation. If
21633// the context is nil a panic will occur. In the future the SDK may create
21634// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21635// for more information on using Contexts.
21636func (c *IoT) SetV2LoggingOptionsWithContext(ctx aws.Context, input *SetV2LoggingOptionsInput, opts ...request.Option) (*SetV2LoggingOptionsOutput, error) {
21637	req, out := c.SetV2LoggingOptionsRequest(input)
21638	req.SetContext(ctx)
21639	req.ApplyOptions(opts...)
21640	return out, req.Send()
21641}
21642
21643const opStartAuditMitigationActionsTask = "StartAuditMitigationActionsTask"
21644
21645// StartAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
21646// client's request for the StartAuditMitigationActionsTask operation. The "output" return
21647// value will be populated with the request's response once the request completes
21648// successfully.
21649//
21650// Use "Send" method on the returned Request to send the API call to the service.
21651// the "output" return value is not valid until after Send returns without error.
21652//
21653// See StartAuditMitigationActionsTask for more information on using the StartAuditMitigationActionsTask
21654// API call, and error handling.
21655//
21656// This method is useful when you want to inject custom logic or configuration
21657// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21658//
21659//
21660//    // Example sending a request using the StartAuditMitigationActionsTaskRequest method.
21661//    req, resp := client.StartAuditMitigationActionsTaskRequest(params)
21662//
21663//    err := req.Send()
21664//    if err == nil { // resp is now filled
21665//        fmt.Println(resp)
21666//    }
21667func (c *IoT) StartAuditMitigationActionsTaskRequest(input *StartAuditMitigationActionsTaskInput) (req *request.Request, output *StartAuditMitigationActionsTaskOutput) {
21668	op := &request.Operation{
21669		Name:       opStartAuditMitigationActionsTask,
21670		HTTPMethod: "POST",
21671		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}",
21672	}
21673
21674	if input == nil {
21675		input = &StartAuditMitigationActionsTaskInput{}
21676	}
21677
21678	output = &StartAuditMitigationActionsTaskOutput{}
21679	req = c.newRequest(op, input, output)
21680	return
21681}
21682
21683// StartAuditMitigationActionsTask API operation for AWS IoT.
21684//
21685// Starts a task that applies a set of mitigation actions to the specified target.
21686//
21687// Requires permission to access the StartAuditMitigationActionsTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21688// action.
21689//
21690// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21691// with awserr.Error's Code and Message methods to get detailed information about
21692// the error.
21693//
21694// See the AWS API reference guide for AWS IoT's
21695// API operation StartAuditMitigationActionsTask for usage and error information.
21696//
21697// Returned Error Types:
21698//   * InvalidRequestException
21699//   The request is not valid.
21700//
21701//   * TaskAlreadyExistsException
21702//   This exception occurs if you attempt to start a task with the same task-id
21703//   as an existing task but with a different clientRequestToken.
21704//
21705//   * LimitExceededException
21706//   A limit has been exceeded.
21707//
21708//   * ThrottlingException
21709//   The rate exceeds the limit.
21710//
21711//   * InternalFailureException
21712//   An unexpected error has occurred.
21713//
21714func (c *IoT) StartAuditMitigationActionsTask(input *StartAuditMitigationActionsTaskInput) (*StartAuditMitigationActionsTaskOutput, error) {
21715	req, out := c.StartAuditMitigationActionsTaskRequest(input)
21716	return out, req.Send()
21717}
21718
21719// StartAuditMitigationActionsTaskWithContext is the same as StartAuditMitigationActionsTask with the addition of
21720// the ability to pass a context and additional request options.
21721//
21722// See StartAuditMitigationActionsTask for details on how to use this API operation.
21723//
21724// The context must be non-nil and will be used for request cancellation. If
21725// the context is nil a panic will occur. In the future the SDK may create
21726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21727// for more information on using Contexts.
21728func (c *IoT) StartAuditMitigationActionsTaskWithContext(ctx aws.Context, input *StartAuditMitigationActionsTaskInput, opts ...request.Option) (*StartAuditMitigationActionsTaskOutput, error) {
21729	req, out := c.StartAuditMitigationActionsTaskRequest(input)
21730	req.SetContext(ctx)
21731	req.ApplyOptions(opts...)
21732	return out, req.Send()
21733}
21734
21735const opStartDetectMitigationActionsTask = "StartDetectMitigationActionsTask"
21736
21737// StartDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
21738// client's request for the StartDetectMitigationActionsTask operation. The "output" return
21739// value will be populated with the request's response once the request completes
21740// successfully.
21741//
21742// Use "Send" method on the returned Request to send the API call to the service.
21743// the "output" return value is not valid until after Send returns without error.
21744//
21745// See StartDetectMitigationActionsTask for more information on using the StartDetectMitigationActionsTask
21746// API call, and error handling.
21747//
21748// This method is useful when you want to inject custom logic or configuration
21749// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21750//
21751//
21752//    // Example sending a request using the StartDetectMitigationActionsTaskRequest method.
21753//    req, resp := client.StartDetectMitigationActionsTaskRequest(params)
21754//
21755//    err := req.Send()
21756//    if err == nil { // resp is now filled
21757//        fmt.Println(resp)
21758//    }
21759func (c *IoT) StartDetectMitigationActionsTaskRequest(input *StartDetectMitigationActionsTaskInput) (req *request.Request, output *StartDetectMitigationActionsTaskOutput) {
21760	op := &request.Operation{
21761		Name:       opStartDetectMitigationActionsTask,
21762		HTTPMethod: "PUT",
21763		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}",
21764	}
21765
21766	if input == nil {
21767		input = &StartDetectMitigationActionsTaskInput{}
21768	}
21769
21770	output = &StartDetectMitigationActionsTaskOutput{}
21771	req = c.newRequest(op, input, output)
21772	return
21773}
21774
21775// StartDetectMitigationActionsTask API operation for AWS IoT.
21776//
21777// Starts a Device Defender ML Detect mitigation actions task.
21778//
21779// Requires permission to access the StartDetectMitigationActionsTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21780// action.
21781//
21782// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21783// with awserr.Error's Code and Message methods to get detailed information about
21784// the error.
21785//
21786// See the AWS API reference guide for AWS IoT's
21787// API operation StartDetectMitigationActionsTask for usage and error information.
21788//
21789// Returned Error Types:
21790//   * InvalidRequestException
21791//   The request is not valid.
21792//
21793//   * TaskAlreadyExistsException
21794//   This exception occurs if you attempt to start a task with the same task-id
21795//   as an existing task but with a different clientRequestToken.
21796//
21797//   * LimitExceededException
21798//   A limit has been exceeded.
21799//
21800//   * ThrottlingException
21801//   The rate exceeds the limit.
21802//
21803//   * InternalFailureException
21804//   An unexpected error has occurred.
21805//
21806func (c *IoT) StartDetectMitigationActionsTask(input *StartDetectMitigationActionsTaskInput) (*StartDetectMitigationActionsTaskOutput, error) {
21807	req, out := c.StartDetectMitigationActionsTaskRequest(input)
21808	return out, req.Send()
21809}
21810
21811// StartDetectMitigationActionsTaskWithContext is the same as StartDetectMitigationActionsTask with the addition of
21812// the ability to pass a context and additional request options.
21813//
21814// See StartDetectMitigationActionsTask for details on how to use this API operation.
21815//
21816// The context must be non-nil and will be used for request cancellation. If
21817// the context is nil a panic will occur. In the future the SDK may create
21818// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21819// for more information on using Contexts.
21820func (c *IoT) StartDetectMitigationActionsTaskWithContext(ctx aws.Context, input *StartDetectMitigationActionsTaskInput, opts ...request.Option) (*StartDetectMitigationActionsTaskOutput, error) {
21821	req, out := c.StartDetectMitigationActionsTaskRequest(input)
21822	req.SetContext(ctx)
21823	req.ApplyOptions(opts...)
21824	return out, req.Send()
21825}
21826
21827const opStartOnDemandAuditTask = "StartOnDemandAuditTask"
21828
21829// StartOnDemandAuditTaskRequest generates a "aws/request.Request" representing the
21830// client's request for the StartOnDemandAuditTask operation. The "output" return
21831// value will be populated with the request's response once the request completes
21832// successfully.
21833//
21834// Use "Send" method on the returned Request to send the API call to the service.
21835// the "output" return value is not valid until after Send returns without error.
21836//
21837// See StartOnDemandAuditTask for more information on using the StartOnDemandAuditTask
21838// API call, and error handling.
21839//
21840// This method is useful when you want to inject custom logic or configuration
21841// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21842//
21843//
21844//    // Example sending a request using the StartOnDemandAuditTaskRequest method.
21845//    req, resp := client.StartOnDemandAuditTaskRequest(params)
21846//
21847//    err := req.Send()
21848//    if err == nil { // resp is now filled
21849//        fmt.Println(resp)
21850//    }
21851func (c *IoT) StartOnDemandAuditTaskRequest(input *StartOnDemandAuditTaskInput) (req *request.Request, output *StartOnDemandAuditTaskOutput) {
21852	op := &request.Operation{
21853		Name:       opStartOnDemandAuditTask,
21854		HTTPMethod: "POST",
21855		HTTPPath:   "/audit/tasks",
21856	}
21857
21858	if input == nil {
21859		input = &StartOnDemandAuditTaskInput{}
21860	}
21861
21862	output = &StartOnDemandAuditTaskOutput{}
21863	req = c.newRequest(op, input, output)
21864	return
21865}
21866
21867// StartOnDemandAuditTask API operation for AWS IoT.
21868//
21869// Starts an on-demand Device Defender audit.
21870//
21871// Requires permission to access the StartOnDemandAuditTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21872// action.
21873//
21874// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21875// with awserr.Error's Code and Message methods to get detailed information about
21876// the error.
21877//
21878// See the AWS API reference guide for AWS IoT's
21879// API operation StartOnDemandAuditTask for usage and error information.
21880//
21881// Returned Error Types:
21882//   * InvalidRequestException
21883//   The request is not valid.
21884//
21885//   * ThrottlingException
21886//   The rate exceeds the limit.
21887//
21888//   * InternalFailureException
21889//   An unexpected error has occurred.
21890//
21891//   * LimitExceededException
21892//   A limit has been exceeded.
21893//
21894func (c *IoT) StartOnDemandAuditTask(input *StartOnDemandAuditTaskInput) (*StartOnDemandAuditTaskOutput, error) {
21895	req, out := c.StartOnDemandAuditTaskRequest(input)
21896	return out, req.Send()
21897}
21898
21899// StartOnDemandAuditTaskWithContext is the same as StartOnDemandAuditTask with the addition of
21900// the ability to pass a context and additional request options.
21901//
21902// See StartOnDemandAuditTask for details on how to use this API operation.
21903//
21904// The context must be non-nil and will be used for request cancellation. If
21905// the context is nil a panic will occur. In the future the SDK may create
21906// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21907// for more information on using Contexts.
21908func (c *IoT) StartOnDemandAuditTaskWithContext(ctx aws.Context, input *StartOnDemandAuditTaskInput, opts ...request.Option) (*StartOnDemandAuditTaskOutput, error) {
21909	req, out := c.StartOnDemandAuditTaskRequest(input)
21910	req.SetContext(ctx)
21911	req.ApplyOptions(opts...)
21912	return out, req.Send()
21913}
21914
21915const opStartThingRegistrationTask = "StartThingRegistrationTask"
21916
21917// StartThingRegistrationTaskRequest generates a "aws/request.Request" representing the
21918// client's request for the StartThingRegistrationTask operation. The "output" return
21919// value will be populated with the request's response once the request completes
21920// successfully.
21921//
21922// Use "Send" method on the returned Request to send the API call to the service.
21923// the "output" return value is not valid until after Send returns without error.
21924//
21925// See StartThingRegistrationTask for more information on using the StartThingRegistrationTask
21926// API call, and error handling.
21927//
21928// This method is useful when you want to inject custom logic or configuration
21929// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21930//
21931//
21932//    // Example sending a request using the StartThingRegistrationTaskRequest method.
21933//    req, resp := client.StartThingRegistrationTaskRequest(params)
21934//
21935//    err := req.Send()
21936//    if err == nil { // resp is now filled
21937//        fmt.Println(resp)
21938//    }
21939func (c *IoT) StartThingRegistrationTaskRequest(input *StartThingRegistrationTaskInput) (req *request.Request, output *StartThingRegistrationTaskOutput) {
21940	op := &request.Operation{
21941		Name:       opStartThingRegistrationTask,
21942		HTTPMethod: "POST",
21943		HTTPPath:   "/thing-registration-tasks",
21944	}
21945
21946	if input == nil {
21947		input = &StartThingRegistrationTaskInput{}
21948	}
21949
21950	output = &StartThingRegistrationTaskOutput{}
21951	req = c.newRequest(op, input, output)
21952	return
21953}
21954
21955// StartThingRegistrationTask API operation for AWS IoT.
21956//
21957// Creates a bulk thing provisioning task.
21958//
21959// Requires permission to access the StartThingRegistrationTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21960// action.
21961//
21962// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21963// with awserr.Error's Code and Message methods to get detailed information about
21964// the error.
21965//
21966// See the AWS API reference guide for AWS IoT's
21967// API operation StartThingRegistrationTask for usage and error information.
21968//
21969// Returned Error Types:
21970//   * InvalidRequestException
21971//   The request is not valid.
21972//
21973//   * ThrottlingException
21974//   The rate exceeds the limit.
21975//
21976//   * UnauthorizedException
21977//   You are not authorized to perform this operation.
21978//
21979//   * InternalFailureException
21980//   An unexpected error has occurred.
21981//
21982func (c *IoT) StartThingRegistrationTask(input *StartThingRegistrationTaskInput) (*StartThingRegistrationTaskOutput, error) {
21983	req, out := c.StartThingRegistrationTaskRequest(input)
21984	return out, req.Send()
21985}
21986
21987// StartThingRegistrationTaskWithContext is the same as StartThingRegistrationTask with the addition of
21988// the ability to pass a context and additional request options.
21989//
21990// See StartThingRegistrationTask for details on how to use this API operation.
21991//
21992// The context must be non-nil and will be used for request cancellation. If
21993// the context is nil a panic will occur. In the future the SDK may create
21994// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21995// for more information on using Contexts.
21996func (c *IoT) StartThingRegistrationTaskWithContext(ctx aws.Context, input *StartThingRegistrationTaskInput, opts ...request.Option) (*StartThingRegistrationTaskOutput, error) {
21997	req, out := c.StartThingRegistrationTaskRequest(input)
21998	req.SetContext(ctx)
21999	req.ApplyOptions(opts...)
22000	return out, req.Send()
22001}
22002
22003const opStopThingRegistrationTask = "StopThingRegistrationTask"
22004
22005// StopThingRegistrationTaskRequest generates a "aws/request.Request" representing the
22006// client's request for the StopThingRegistrationTask operation. The "output" return
22007// value will be populated with the request's response once the request completes
22008// successfully.
22009//
22010// Use "Send" method on the returned Request to send the API call to the service.
22011// the "output" return value is not valid until after Send returns without error.
22012//
22013// See StopThingRegistrationTask for more information on using the StopThingRegistrationTask
22014// API call, and error handling.
22015//
22016// This method is useful when you want to inject custom logic or configuration
22017// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22018//
22019//
22020//    // Example sending a request using the StopThingRegistrationTaskRequest method.
22021//    req, resp := client.StopThingRegistrationTaskRequest(params)
22022//
22023//    err := req.Send()
22024//    if err == nil { // resp is now filled
22025//        fmt.Println(resp)
22026//    }
22027func (c *IoT) StopThingRegistrationTaskRequest(input *StopThingRegistrationTaskInput) (req *request.Request, output *StopThingRegistrationTaskOutput) {
22028	op := &request.Operation{
22029		Name:       opStopThingRegistrationTask,
22030		HTTPMethod: "PUT",
22031		HTTPPath:   "/thing-registration-tasks/{taskId}/cancel",
22032	}
22033
22034	if input == nil {
22035		input = &StopThingRegistrationTaskInput{}
22036	}
22037
22038	output = &StopThingRegistrationTaskOutput{}
22039	req = c.newRequest(op, input, output)
22040	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22041	return
22042}
22043
22044// StopThingRegistrationTask API operation for AWS IoT.
22045//
22046// Cancels a bulk thing provisioning task.
22047//
22048// Requires permission to access the StopThingRegistrationTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22049// action.
22050//
22051// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22052// with awserr.Error's Code and Message methods to get detailed information about
22053// the error.
22054//
22055// See the AWS API reference guide for AWS IoT's
22056// API operation StopThingRegistrationTask for usage and error information.
22057//
22058// Returned Error Types:
22059//   * InvalidRequestException
22060//   The request is not valid.
22061//
22062//   * ThrottlingException
22063//   The rate exceeds the limit.
22064//
22065//   * UnauthorizedException
22066//   You are not authorized to perform this operation.
22067//
22068//   * InternalFailureException
22069//   An unexpected error has occurred.
22070//
22071//   * ResourceNotFoundException
22072//   The specified resource does not exist.
22073//
22074func (c *IoT) StopThingRegistrationTask(input *StopThingRegistrationTaskInput) (*StopThingRegistrationTaskOutput, error) {
22075	req, out := c.StopThingRegistrationTaskRequest(input)
22076	return out, req.Send()
22077}
22078
22079// StopThingRegistrationTaskWithContext is the same as StopThingRegistrationTask with the addition of
22080// the ability to pass a context and additional request options.
22081//
22082// See StopThingRegistrationTask for details on how to use this API operation.
22083//
22084// The context must be non-nil and will be used for request cancellation. If
22085// the context is nil a panic will occur. In the future the SDK may create
22086// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22087// for more information on using Contexts.
22088func (c *IoT) StopThingRegistrationTaskWithContext(ctx aws.Context, input *StopThingRegistrationTaskInput, opts ...request.Option) (*StopThingRegistrationTaskOutput, error) {
22089	req, out := c.StopThingRegistrationTaskRequest(input)
22090	req.SetContext(ctx)
22091	req.ApplyOptions(opts...)
22092	return out, req.Send()
22093}
22094
22095const opTagResource = "TagResource"
22096
22097// TagResourceRequest generates a "aws/request.Request" representing the
22098// client's request for the TagResource operation. The "output" return
22099// value will be populated with the request's response once the request completes
22100// successfully.
22101//
22102// Use "Send" method on the returned Request to send the API call to the service.
22103// the "output" return value is not valid until after Send returns without error.
22104//
22105// See TagResource for more information on using the TagResource
22106// API call, and error handling.
22107//
22108// This method is useful when you want to inject custom logic or configuration
22109// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22110//
22111//
22112//    // Example sending a request using the TagResourceRequest method.
22113//    req, resp := client.TagResourceRequest(params)
22114//
22115//    err := req.Send()
22116//    if err == nil { // resp is now filled
22117//        fmt.Println(resp)
22118//    }
22119func (c *IoT) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
22120	op := &request.Operation{
22121		Name:       opTagResource,
22122		HTTPMethod: "POST",
22123		HTTPPath:   "/tags",
22124	}
22125
22126	if input == nil {
22127		input = &TagResourceInput{}
22128	}
22129
22130	output = &TagResourceOutput{}
22131	req = c.newRequest(op, input, output)
22132	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22133	return
22134}
22135
22136// TagResource API operation for AWS IoT.
22137//
22138// Adds to or modifies the tags of the given resource. Tags are metadata which
22139// can be used to manage a resource.
22140//
22141// Requires permission to access the TagResource (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22142// action.
22143//
22144// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22145// with awserr.Error's Code and Message methods to get detailed information about
22146// the error.
22147//
22148// See the AWS API reference guide for AWS IoT's
22149// API operation TagResource for usage and error information.
22150//
22151// Returned Error Types:
22152//   * InvalidRequestException
22153//   The request is not valid.
22154//
22155//   * InternalFailureException
22156//   An unexpected error has occurred.
22157//
22158//   * ResourceNotFoundException
22159//   The specified resource does not exist.
22160//
22161//   * ThrottlingException
22162//   The rate exceeds the limit.
22163//
22164//   * LimitExceededException
22165//   A limit has been exceeded.
22166//
22167func (c *IoT) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
22168	req, out := c.TagResourceRequest(input)
22169	return out, req.Send()
22170}
22171
22172// TagResourceWithContext is the same as TagResource with the addition of
22173// the ability to pass a context and additional request options.
22174//
22175// See TagResource for details on how to use this API operation.
22176//
22177// The context must be non-nil and will be used for request cancellation. If
22178// the context is nil a panic will occur. In the future the SDK may create
22179// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22180// for more information on using Contexts.
22181func (c *IoT) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
22182	req, out := c.TagResourceRequest(input)
22183	req.SetContext(ctx)
22184	req.ApplyOptions(opts...)
22185	return out, req.Send()
22186}
22187
22188const opTestAuthorization = "TestAuthorization"
22189
22190// TestAuthorizationRequest generates a "aws/request.Request" representing the
22191// client's request for the TestAuthorization operation. The "output" return
22192// value will be populated with the request's response once the request completes
22193// successfully.
22194//
22195// Use "Send" method on the returned Request to send the API call to the service.
22196// the "output" return value is not valid until after Send returns without error.
22197//
22198// See TestAuthorization for more information on using the TestAuthorization
22199// API call, and error handling.
22200//
22201// This method is useful when you want to inject custom logic or configuration
22202// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22203//
22204//
22205//    // Example sending a request using the TestAuthorizationRequest method.
22206//    req, resp := client.TestAuthorizationRequest(params)
22207//
22208//    err := req.Send()
22209//    if err == nil { // resp is now filled
22210//        fmt.Println(resp)
22211//    }
22212func (c *IoT) TestAuthorizationRequest(input *TestAuthorizationInput) (req *request.Request, output *TestAuthorizationOutput) {
22213	op := &request.Operation{
22214		Name:       opTestAuthorization,
22215		HTTPMethod: "POST",
22216		HTTPPath:   "/test-authorization",
22217	}
22218
22219	if input == nil {
22220		input = &TestAuthorizationInput{}
22221	}
22222
22223	output = &TestAuthorizationOutput{}
22224	req = c.newRequest(op, input, output)
22225	return
22226}
22227
22228// TestAuthorization API operation for AWS IoT.
22229//
22230// Tests if a specified principal is authorized to perform an IoT action on
22231// a specified resource. Use this to test and debug the authorization behavior
22232// of devices that connect to the IoT device gateway.
22233//
22234// Requires permission to access the TestAuthorization (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22235// action.
22236//
22237// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22238// with awserr.Error's Code and Message methods to get detailed information about
22239// the error.
22240//
22241// See the AWS API reference guide for AWS IoT's
22242// API operation TestAuthorization for usage and error information.
22243//
22244// Returned Error Types:
22245//   * ResourceNotFoundException
22246//   The specified resource does not exist.
22247//
22248//   * InvalidRequestException
22249//   The request is not valid.
22250//
22251//   * ThrottlingException
22252//   The rate exceeds the limit.
22253//
22254//   * UnauthorizedException
22255//   You are not authorized to perform this operation.
22256//
22257//   * ServiceUnavailableException
22258//   The service is temporarily unavailable.
22259//
22260//   * InternalFailureException
22261//   An unexpected error has occurred.
22262//
22263//   * LimitExceededException
22264//   A limit has been exceeded.
22265//
22266func (c *IoT) TestAuthorization(input *TestAuthorizationInput) (*TestAuthorizationOutput, error) {
22267	req, out := c.TestAuthorizationRequest(input)
22268	return out, req.Send()
22269}
22270
22271// TestAuthorizationWithContext is the same as TestAuthorization with the addition of
22272// the ability to pass a context and additional request options.
22273//
22274// See TestAuthorization for details on how to use this API operation.
22275//
22276// The context must be non-nil and will be used for request cancellation. If
22277// the context is nil a panic will occur. In the future the SDK may create
22278// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22279// for more information on using Contexts.
22280func (c *IoT) TestAuthorizationWithContext(ctx aws.Context, input *TestAuthorizationInput, opts ...request.Option) (*TestAuthorizationOutput, error) {
22281	req, out := c.TestAuthorizationRequest(input)
22282	req.SetContext(ctx)
22283	req.ApplyOptions(opts...)
22284	return out, req.Send()
22285}
22286
22287const opTestInvokeAuthorizer = "TestInvokeAuthorizer"
22288
22289// TestInvokeAuthorizerRequest generates a "aws/request.Request" representing the
22290// client's request for the TestInvokeAuthorizer operation. The "output" return
22291// value will be populated with the request's response once the request completes
22292// successfully.
22293//
22294// Use "Send" method on the returned Request to send the API call to the service.
22295// the "output" return value is not valid until after Send returns without error.
22296//
22297// See TestInvokeAuthorizer for more information on using the TestInvokeAuthorizer
22298// API call, and error handling.
22299//
22300// This method is useful when you want to inject custom logic or configuration
22301// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22302//
22303//
22304//    // Example sending a request using the TestInvokeAuthorizerRequest method.
22305//    req, resp := client.TestInvokeAuthorizerRequest(params)
22306//
22307//    err := req.Send()
22308//    if err == nil { // resp is now filled
22309//        fmt.Println(resp)
22310//    }
22311func (c *IoT) TestInvokeAuthorizerRequest(input *TestInvokeAuthorizerInput) (req *request.Request, output *TestInvokeAuthorizerOutput) {
22312	op := &request.Operation{
22313		Name:       opTestInvokeAuthorizer,
22314		HTTPMethod: "POST",
22315		HTTPPath:   "/authorizer/{authorizerName}/test",
22316	}
22317
22318	if input == nil {
22319		input = &TestInvokeAuthorizerInput{}
22320	}
22321
22322	output = &TestInvokeAuthorizerOutput{}
22323	req = c.newRequest(op, input, output)
22324	return
22325}
22326
22327// TestInvokeAuthorizer API operation for AWS IoT.
22328//
22329// Tests a custom authorization behavior by invoking a specified custom authorizer.
22330// Use this to test and debug the custom authorization behavior of devices that
22331// connect to the IoT device gateway.
22332//
22333// Requires permission to access the TestInvokeAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22334// action.
22335//
22336// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22337// with awserr.Error's Code and Message methods to get detailed information about
22338// the error.
22339//
22340// See the AWS API reference guide for AWS IoT's
22341// API operation TestInvokeAuthorizer for usage and error information.
22342//
22343// Returned Error Types:
22344//   * ResourceNotFoundException
22345//   The specified resource does not exist.
22346//
22347//   * InvalidRequestException
22348//   The request is not valid.
22349//
22350//   * ThrottlingException
22351//   The rate exceeds the limit.
22352//
22353//   * UnauthorizedException
22354//   You are not authorized to perform this operation.
22355//
22356//   * ServiceUnavailableException
22357//   The service is temporarily unavailable.
22358//
22359//   * InternalFailureException
22360//   An unexpected error has occurred.
22361//
22362//   * InvalidResponseException
22363//   The response is invalid.
22364//
22365func (c *IoT) TestInvokeAuthorizer(input *TestInvokeAuthorizerInput) (*TestInvokeAuthorizerOutput, error) {
22366	req, out := c.TestInvokeAuthorizerRequest(input)
22367	return out, req.Send()
22368}
22369
22370// TestInvokeAuthorizerWithContext is the same as TestInvokeAuthorizer with the addition of
22371// the ability to pass a context and additional request options.
22372//
22373// See TestInvokeAuthorizer for details on how to use this API operation.
22374//
22375// The context must be non-nil and will be used for request cancellation. If
22376// the context is nil a panic will occur. In the future the SDK may create
22377// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22378// for more information on using Contexts.
22379func (c *IoT) TestInvokeAuthorizerWithContext(ctx aws.Context, input *TestInvokeAuthorizerInput, opts ...request.Option) (*TestInvokeAuthorizerOutput, error) {
22380	req, out := c.TestInvokeAuthorizerRequest(input)
22381	req.SetContext(ctx)
22382	req.ApplyOptions(opts...)
22383	return out, req.Send()
22384}
22385
22386const opTransferCertificate = "TransferCertificate"
22387
22388// TransferCertificateRequest generates a "aws/request.Request" representing the
22389// client's request for the TransferCertificate operation. The "output" return
22390// value will be populated with the request's response once the request completes
22391// successfully.
22392//
22393// Use "Send" method on the returned Request to send the API call to the service.
22394// the "output" return value is not valid until after Send returns without error.
22395//
22396// See TransferCertificate for more information on using the TransferCertificate
22397// API call, and error handling.
22398//
22399// This method is useful when you want to inject custom logic or configuration
22400// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22401//
22402//
22403//    // Example sending a request using the TransferCertificateRequest method.
22404//    req, resp := client.TransferCertificateRequest(params)
22405//
22406//    err := req.Send()
22407//    if err == nil { // resp is now filled
22408//        fmt.Println(resp)
22409//    }
22410func (c *IoT) TransferCertificateRequest(input *TransferCertificateInput) (req *request.Request, output *TransferCertificateOutput) {
22411	op := &request.Operation{
22412		Name:       opTransferCertificate,
22413		HTTPMethod: "PATCH",
22414		HTTPPath:   "/transfer-certificate/{certificateId}",
22415	}
22416
22417	if input == nil {
22418		input = &TransferCertificateInput{}
22419	}
22420
22421	output = &TransferCertificateOutput{}
22422	req = c.newRequest(op, input, output)
22423	return
22424}
22425
22426// TransferCertificate API operation for AWS IoT.
22427//
22428// Transfers the specified certificate to the specified Amazon Web Services
22429// account.
22430//
22431// Requires permission to access the TransferCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22432// action.
22433//
22434// You can cancel the transfer until it is acknowledged by the recipient.
22435//
22436// No notification is sent to the transfer destination's account. It is up to
22437// the caller to notify the transfer target.
22438//
22439// The certificate being transferred must not be in the ACTIVE state. You can
22440// use the UpdateCertificate action to deactivate it.
22441//
22442// The certificate must not have any policies attached to it. You can use the
22443// DetachPolicy action to detach them.
22444//
22445// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22446// with awserr.Error's Code and Message methods to get detailed information about
22447// the error.
22448//
22449// See the AWS API reference guide for AWS IoT's
22450// API operation TransferCertificate for usage and error information.
22451//
22452// Returned Error Types:
22453//   * InvalidRequestException
22454//   The request is not valid.
22455//
22456//   * ResourceNotFoundException
22457//   The specified resource does not exist.
22458//
22459//   * CertificateStateException
22460//   The certificate operation is not allowed.
22461//
22462//   * TransferConflictException
22463//   You can't transfer the certificate because authorization policies are still
22464//   attached.
22465//
22466//   * ThrottlingException
22467//   The rate exceeds the limit.
22468//
22469//   * UnauthorizedException
22470//   You are not authorized to perform this operation.
22471//
22472//   * ServiceUnavailableException
22473//   The service is temporarily unavailable.
22474//
22475//   * InternalFailureException
22476//   An unexpected error has occurred.
22477//
22478func (c *IoT) TransferCertificate(input *TransferCertificateInput) (*TransferCertificateOutput, error) {
22479	req, out := c.TransferCertificateRequest(input)
22480	return out, req.Send()
22481}
22482
22483// TransferCertificateWithContext is the same as TransferCertificate with the addition of
22484// the ability to pass a context and additional request options.
22485//
22486// See TransferCertificate for details on how to use this API operation.
22487//
22488// The context must be non-nil and will be used for request cancellation. If
22489// the context is nil a panic will occur. In the future the SDK may create
22490// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22491// for more information on using Contexts.
22492func (c *IoT) TransferCertificateWithContext(ctx aws.Context, input *TransferCertificateInput, opts ...request.Option) (*TransferCertificateOutput, error) {
22493	req, out := c.TransferCertificateRequest(input)
22494	req.SetContext(ctx)
22495	req.ApplyOptions(opts...)
22496	return out, req.Send()
22497}
22498
22499const opUntagResource = "UntagResource"
22500
22501// UntagResourceRequest generates a "aws/request.Request" representing the
22502// client's request for the UntagResource operation. The "output" return
22503// value will be populated with the request's response once the request completes
22504// successfully.
22505//
22506// Use "Send" method on the returned Request to send the API call to the service.
22507// the "output" return value is not valid until after Send returns without error.
22508//
22509// See UntagResource for more information on using the UntagResource
22510// API call, and error handling.
22511//
22512// This method is useful when you want to inject custom logic or configuration
22513// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22514//
22515//
22516//    // Example sending a request using the UntagResourceRequest method.
22517//    req, resp := client.UntagResourceRequest(params)
22518//
22519//    err := req.Send()
22520//    if err == nil { // resp is now filled
22521//        fmt.Println(resp)
22522//    }
22523func (c *IoT) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
22524	op := &request.Operation{
22525		Name:       opUntagResource,
22526		HTTPMethod: "POST",
22527		HTTPPath:   "/untag",
22528	}
22529
22530	if input == nil {
22531		input = &UntagResourceInput{}
22532	}
22533
22534	output = &UntagResourceOutput{}
22535	req = c.newRequest(op, input, output)
22536	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22537	return
22538}
22539
22540// UntagResource API operation for AWS IoT.
22541//
22542// Removes the given tags (metadata) from the resource.
22543//
22544// Requires permission to access the UntagResource (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22545// action.
22546//
22547// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22548// with awserr.Error's Code and Message methods to get detailed information about
22549// the error.
22550//
22551// See the AWS API reference guide for AWS IoT's
22552// API operation UntagResource for usage and error information.
22553//
22554// Returned Error Types:
22555//   * InvalidRequestException
22556//   The request is not valid.
22557//
22558//   * InternalFailureException
22559//   An unexpected error has occurred.
22560//
22561//   * ResourceNotFoundException
22562//   The specified resource does not exist.
22563//
22564//   * ThrottlingException
22565//   The rate exceeds the limit.
22566//
22567func (c *IoT) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
22568	req, out := c.UntagResourceRequest(input)
22569	return out, req.Send()
22570}
22571
22572// UntagResourceWithContext is the same as UntagResource with the addition of
22573// the ability to pass a context and additional request options.
22574//
22575// See UntagResource for details on how to use this API operation.
22576//
22577// The context must be non-nil and will be used for request cancellation. If
22578// the context is nil a panic will occur. In the future the SDK may create
22579// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22580// for more information on using Contexts.
22581func (c *IoT) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
22582	req, out := c.UntagResourceRequest(input)
22583	req.SetContext(ctx)
22584	req.ApplyOptions(opts...)
22585	return out, req.Send()
22586}
22587
22588const opUpdateAccountAuditConfiguration = "UpdateAccountAuditConfiguration"
22589
22590// UpdateAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
22591// client's request for the UpdateAccountAuditConfiguration operation. The "output" return
22592// value will be populated with the request's response once the request completes
22593// successfully.
22594//
22595// Use "Send" method on the returned Request to send the API call to the service.
22596// the "output" return value is not valid until after Send returns without error.
22597//
22598// See UpdateAccountAuditConfiguration for more information on using the UpdateAccountAuditConfiguration
22599// API call, and error handling.
22600//
22601// This method is useful when you want to inject custom logic or configuration
22602// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22603//
22604//
22605//    // Example sending a request using the UpdateAccountAuditConfigurationRequest method.
22606//    req, resp := client.UpdateAccountAuditConfigurationRequest(params)
22607//
22608//    err := req.Send()
22609//    if err == nil { // resp is now filled
22610//        fmt.Println(resp)
22611//    }
22612func (c *IoT) UpdateAccountAuditConfigurationRequest(input *UpdateAccountAuditConfigurationInput) (req *request.Request, output *UpdateAccountAuditConfigurationOutput) {
22613	op := &request.Operation{
22614		Name:       opUpdateAccountAuditConfiguration,
22615		HTTPMethod: "PATCH",
22616		HTTPPath:   "/audit/configuration",
22617	}
22618
22619	if input == nil {
22620		input = &UpdateAccountAuditConfigurationInput{}
22621	}
22622
22623	output = &UpdateAccountAuditConfigurationOutput{}
22624	req = c.newRequest(op, input, output)
22625	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22626	return
22627}
22628
22629// UpdateAccountAuditConfiguration API operation for AWS IoT.
22630//
22631// Configures or reconfigures the Device Defender audit settings for this account.
22632// Settings include how audit notifications are sent and which audit checks
22633// are enabled or disabled.
22634//
22635// Requires permission to access the UpdateAccountAuditConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22636// action.
22637//
22638// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22639// with awserr.Error's Code and Message methods to get detailed information about
22640// the error.
22641//
22642// See the AWS API reference guide for AWS IoT's
22643// API operation UpdateAccountAuditConfiguration for usage and error information.
22644//
22645// Returned Error Types:
22646//   * InvalidRequestException
22647//   The request is not valid.
22648//
22649//   * ThrottlingException
22650//   The rate exceeds the limit.
22651//
22652//   * InternalFailureException
22653//   An unexpected error has occurred.
22654//
22655func (c *IoT) UpdateAccountAuditConfiguration(input *UpdateAccountAuditConfigurationInput) (*UpdateAccountAuditConfigurationOutput, error) {
22656	req, out := c.UpdateAccountAuditConfigurationRequest(input)
22657	return out, req.Send()
22658}
22659
22660// UpdateAccountAuditConfigurationWithContext is the same as UpdateAccountAuditConfiguration with the addition of
22661// the ability to pass a context and additional request options.
22662//
22663// See UpdateAccountAuditConfiguration for details on how to use this API operation.
22664//
22665// The context must be non-nil and will be used for request cancellation. If
22666// the context is nil a panic will occur. In the future the SDK may create
22667// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22668// for more information on using Contexts.
22669func (c *IoT) UpdateAccountAuditConfigurationWithContext(ctx aws.Context, input *UpdateAccountAuditConfigurationInput, opts ...request.Option) (*UpdateAccountAuditConfigurationOutput, error) {
22670	req, out := c.UpdateAccountAuditConfigurationRequest(input)
22671	req.SetContext(ctx)
22672	req.ApplyOptions(opts...)
22673	return out, req.Send()
22674}
22675
22676const opUpdateAuditSuppression = "UpdateAuditSuppression"
22677
22678// UpdateAuditSuppressionRequest generates a "aws/request.Request" representing the
22679// client's request for the UpdateAuditSuppression operation. The "output" return
22680// value will be populated with the request's response once the request completes
22681// successfully.
22682//
22683// Use "Send" method on the returned Request to send the API call to the service.
22684// the "output" return value is not valid until after Send returns without error.
22685//
22686// See UpdateAuditSuppression for more information on using the UpdateAuditSuppression
22687// API call, and error handling.
22688//
22689// This method is useful when you want to inject custom logic or configuration
22690// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22691//
22692//
22693//    // Example sending a request using the UpdateAuditSuppressionRequest method.
22694//    req, resp := client.UpdateAuditSuppressionRequest(params)
22695//
22696//    err := req.Send()
22697//    if err == nil { // resp is now filled
22698//        fmt.Println(resp)
22699//    }
22700func (c *IoT) UpdateAuditSuppressionRequest(input *UpdateAuditSuppressionInput) (req *request.Request, output *UpdateAuditSuppressionOutput) {
22701	op := &request.Operation{
22702		Name:       opUpdateAuditSuppression,
22703		HTTPMethod: "PATCH",
22704		HTTPPath:   "/audit/suppressions/update",
22705	}
22706
22707	if input == nil {
22708		input = &UpdateAuditSuppressionInput{}
22709	}
22710
22711	output = &UpdateAuditSuppressionOutput{}
22712	req = c.newRequest(op, input, output)
22713	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22714	return
22715}
22716
22717// UpdateAuditSuppression API operation for AWS IoT.
22718//
22719// Updates a Device Defender audit suppression.
22720//
22721// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22722// with awserr.Error's Code and Message methods to get detailed information about
22723// the error.
22724//
22725// See the AWS API reference guide for AWS IoT's
22726// API operation UpdateAuditSuppression for usage and error information.
22727//
22728// Returned Error Types:
22729//   * InvalidRequestException
22730//   The request is not valid.
22731//
22732//   * ResourceNotFoundException
22733//   The specified resource does not exist.
22734//
22735//   * ThrottlingException
22736//   The rate exceeds the limit.
22737//
22738//   * InternalFailureException
22739//   An unexpected error has occurred.
22740//
22741func (c *IoT) UpdateAuditSuppression(input *UpdateAuditSuppressionInput) (*UpdateAuditSuppressionOutput, error) {
22742	req, out := c.UpdateAuditSuppressionRequest(input)
22743	return out, req.Send()
22744}
22745
22746// UpdateAuditSuppressionWithContext is the same as UpdateAuditSuppression with the addition of
22747// the ability to pass a context and additional request options.
22748//
22749// See UpdateAuditSuppression for details on how to use this API operation.
22750//
22751// The context must be non-nil and will be used for request cancellation. If
22752// the context is nil a panic will occur. In the future the SDK may create
22753// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22754// for more information on using Contexts.
22755func (c *IoT) UpdateAuditSuppressionWithContext(ctx aws.Context, input *UpdateAuditSuppressionInput, opts ...request.Option) (*UpdateAuditSuppressionOutput, error) {
22756	req, out := c.UpdateAuditSuppressionRequest(input)
22757	req.SetContext(ctx)
22758	req.ApplyOptions(opts...)
22759	return out, req.Send()
22760}
22761
22762const opUpdateAuthorizer = "UpdateAuthorizer"
22763
22764// UpdateAuthorizerRequest generates a "aws/request.Request" representing the
22765// client's request for the UpdateAuthorizer operation. The "output" return
22766// value will be populated with the request's response once the request completes
22767// successfully.
22768//
22769// Use "Send" method on the returned Request to send the API call to the service.
22770// the "output" return value is not valid until after Send returns without error.
22771//
22772// See UpdateAuthorizer for more information on using the UpdateAuthorizer
22773// API call, and error handling.
22774//
22775// This method is useful when you want to inject custom logic or configuration
22776// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22777//
22778//
22779//    // Example sending a request using the UpdateAuthorizerRequest method.
22780//    req, resp := client.UpdateAuthorizerRequest(params)
22781//
22782//    err := req.Send()
22783//    if err == nil { // resp is now filled
22784//        fmt.Println(resp)
22785//    }
22786func (c *IoT) UpdateAuthorizerRequest(input *UpdateAuthorizerInput) (req *request.Request, output *UpdateAuthorizerOutput) {
22787	op := &request.Operation{
22788		Name:       opUpdateAuthorizer,
22789		HTTPMethod: "PUT",
22790		HTTPPath:   "/authorizer/{authorizerName}",
22791	}
22792
22793	if input == nil {
22794		input = &UpdateAuthorizerInput{}
22795	}
22796
22797	output = &UpdateAuthorizerOutput{}
22798	req = c.newRequest(op, input, output)
22799	return
22800}
22801
22802// UpdateAuthorizer API operation for AWS IoT.
22803//
22804// Updates an authorizer.
22805//
22806// Requires permission to access the UpdateAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22807// action.
22808//
22809// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22810// with awserr.Error's Code and Message methods to get detailed information about
22811// the error.
22812//
22813// See the AWS API reference guide for AWS IoT's
22814// API operation UpdateAuthorizer for usage and error information.
22815//
22816// Returned Error Types:
22817//   * ResourceNotFoundException
22818//   The specified resource does not exist.
22819//
22820//   * InvalidRequestException
22821//   The request is not valid.
22822//
22823//   * LimitExceededException
22824//   A limit has been exceeded.
22825//
22826//   * ThrottlingException
22827//   The rate exceeds the limit.
22828//
22829//   * UnauthorizedException
22830//   You are not authorized to perform this operation.
22831//
22832//   * ServiceUnavailableException
22833//   The service is temporarily unavailable.
22834//
22835//   * InternalFailureException
22836//   An unexpected error has occurred.
22837//
22838func (c *IoT) UpdateAuthorizer(input *UpdateAuthorizerInput) (*UpdateAuthorizerOutput, error) {
22839	req, out := c.UpdateAuthorizerRequest(input)
22840	return out, req.Send()
22841}
22842
22843// UpdateAuthorizerWithContext is the same as UpdateAuthorizer with the addition of
22844// the ability to pass a context and additional request options.
22845//
22846// See UpdateAuthorizer for details on how to use this API operation.
22847//
22848// The context must be non-nil and will be used for request cancellation. If
22849// the context is nil a panic will occur. In the future the SDK may create
22850// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22851// for more information on using Contexts.
22852func (c *IoT) UpdateAuthorizerWithContext(ctx aws.Context, input *UpdateAuthorizerInput, opts ...request.Option) (*UpdateAuthorizerOutput, error) {
22853	req, out := c.UpdateAuthorizerRequest(input)
22854	req.SetContext(ctx)
22855	req.ApplyOptions(opts...)
22856	return out, req.Send()
22857}
22858
22859const opUpdateBillingGroup = "UpdateBillingGroup"
22860
22861// UpdateBillingGroupRequest generates a "aws/request.Request" representing the
22862// client's request for the UpdateBillingGroup operation. The "output" return
22863// value will be populated with the request's response once the request completes
22864// successfully.
22865//
22866// Use "Send" method on the returned Request to send the API call to the service.
22867// the "output" return value is not valid until after Send returns without error.
22868//
22869// See UpdateBillingGroup for more information on using the UpdateBillingGroup
22870// API call, and error handling.
22871//
22872// This method is useful when you want to inject custom logic or configuration
22873// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22874//
22875//
22876//    // Example sending a request using the UpdateBillingGroupRequest method.
22877//    req, resp := client.UpdateBillingGroupRequest(params)
22878//
22879//    err := req.Send()
22880//    if err == nil { // resp is now filled
22881//        fmt.Println(resp)
22882//    }
22883func (c *IoT) UpdateBillingGroupRequest(input *UpdateBillingGroupInput) (req *request.Request, output *UpdateBillingGroupOutput) {
22884	op := &request.Operation{
22885		Name:       opUpdateBillingGroup,
22886		HTTPMethod: "PATCH",
22887		HTTPPath:   "/billing-groups/{billingGroupName}",
22888	}
22889
22890	if input == nil {
22891		input = &UpdateBillingGroupInput{}
22892	}
22893
22894	output = &UpdateBillingGroupOutput{}
22895	req = c.newRequest(op, input, output)
22896	return
22897}
22898
22899// UpdateBillingGroup API operation for AWS IoT.
22900//
22901// Updates information about the billing group.
22902//
22903// Requires permission to access the UpdateBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22904// action.
22905//
22906// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22907// with awserr.Error's Code and Message methods to get detailed information about
22908// the error.
22909//
22910// See the AWS API reference guide for AWS IoT's
22911// API operation UpdateBillingGroup for usage and error information.
22912//
22913// Returned Error Types:
22914//   * InvalidRequestException
22915//   The request is not valid.
22916//
22917//   * VersionConflictException
22918//   An exception thrown when the version of an entity specified with the expectedVersion
22919//   parameter does not match the latest version in the system.
22920//
22921//   * ThrottlingException
22922//   The rate exceeds the limit.
22923//
22924//   * InternalFailureException
22925//   An unexpected error has occurred.
22926//
22927//   * ResourceNotFoundException
22928//   The specified resource does not exist.
22929//
22930func (c *IoT) UpdateBillingGroup(input *UpdateBillingGroupInput) (*UpdateBillingGroupOutput, error) {
22931	req, out := c.UpdateBillingGroupRequest(input)
22932	return out, req.Send()
22933}
22934
22935// UpdateBillingGroupWithContext is the same as UpdateBillingGroup with the addition of
22936// the ability to pass a context and additional request options.
22937//
22938// See UpdateBillingGroup for details on how to use this API operation.
22939//
22940// The context must be non-nil and will be used for request cancellation. If
22941// the context is nil a panic will occur. In the future the SDK may create
22942// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22943// for more information on using Contexts.
22944func (c *IoT) UpdateBillingGroupWithContext(ctx aws.Context, input *UpdateBillingGroupInput, opts ...request.Option) (*UpdateBillingGroupOutput, error) {
22945	req, out := c.UpdateBillingGroupRequest(input)
22946	req.SetContext(ctx)
22947	req.ApplyOptions(opts...)
22948	return out, req.Send()
22949}
22950
22951const opUpdateCACertificate = "UpdateCACertificate"
22952
22953// UpdateCACertificateRequest generates a "aws/request.Request" representing the
22954// client's request for the UpdateCACertificate operation. The "output" return
22955// value will be populated with the request's response once the request completes
22956// successfully.
22957//
22958// Use "Send" method on the returned Request to send the API call to the service.
22959// the "output" return value is not valid until after Send returns without error.
22960//
22961// See UpdateCACertificate for more information on using the UpdateCACertificate
22962// API call, and error handling.
22963//
22964// This method is useful when you want to inject custom logic or configuration
22965// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22966//
22967//
22968//    // Example sending a request using the UpdateCACertificateRequest method.
22969//    req, resp := client.UpdateCACertificateRequest(params)
22970//
22971//    err := req.Send()
22972//    if err == nil { // resp is now filled
22973//        fmt.Println(resp)
22974//    }
22975func (c *IoT) UpdateCACertificateRequest(input *UpdateCACertificateInput) (req *request.Request, output *UpdateCACertificateOutput) {
22976	op := &request.Operation{
22977		Name:       opUpdateCACertificate,
22978		HTTPMethod: "PUT",
22979		HTTPPath:   "/cacertificate/{caCertificateId}",
22980	}
22981
22982	if input == nil {
22983		input = &UpdateCACertificateInput{}
22984	}
22985
22986	output = &UpdateCACertificateOutput{}
22987	req = c.newRequest(op, input, output)
22988	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22989	return
22990}
22991
22992// UpdateCACertificate API operation for AWS IoT.
22993//
22994// Updates a registered CA certificate.
22995//
22996// Requires permission to access the UpdateCACertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22997// action.
22998//
22999// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23000// with awserr.Error's Code and Message methods to get detailed information about
23001// the error.
23002//
23003// See the AWS API reference guide for AWS IoT's
23004// API operation UpdateCACertificate for usage and error information.
23005//
23006// Returned Error Types:
23007//   * ResourceNotFoundException
23008//   The specified resource does not exist.
23009//
23010//   * InvalidRequestException
23011//   The request is not valid.
23012//
23013//   * ThrottlingException
23014//   The rate exceeds the limit.
23015//
23016//   * UnauthorizedException
23017//   You are not authorized to perform this operation.
23018//
23019//   * ServiceUnavailableException
23020//   The service is temporarily unavailable.
23021//
23022//   * InternalFailureException
23023//   An unexpected error has occurred.
23024//
23025func (c *IoT) UpdateCACertificate(input *UpdateCACertificateInput) (*UpdateCACertificateOutput, error) {
23026	req, out := c.UpdateCACertificateRequest(input)
23027	return out, req.Send()
23028}
23029
23030// UpdateCACertificateWithContext is the same as UpdateCACertificate with the addition of
23031// the ability to pass a context and additional request options.
23032//
23033// See UpdateCACertificate for details on how to use this API operation.
23034//
23035// The context must be non-nil and will be used for request cancellation. If
23036// the context is nil a panic will occur. In the future the SDK may create
23037// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23038// for more information on using Contexts.
23039func (c *IoT) UpdateCACertificateWithContext(ctx aws.Context, input *UpdateCACertificateInput, opts ...request.Option) (*UpdateCACertificateOutput, error) {
23040	req, out := c.UpdateCACertificateRequest(input)
23041	req.SetContext(ctx)
23042	req.ApplyOptions(opts...)
23043	return out, req.Send()
23044}
23045
23046const opUpdateCertificate = "UpdateCertificate"
23047
23048// UpdateCertificateRequest generates a "aws/request.Request" representing the
23049// client's request for the UpdateCertificate operation. The "output" return
23050// value will be populated with the request's response once the request completes
23051// successfully.
23052//
23053// Use "Send" method on the returned Request to send the API call to the service.
23054// the "output" return value is not valid until after Send returns without error.
23055//
23056// See UpdateCertificate for more information on using the UpdateCertificate
23057// API call, and error handling.
23058//
23059// This method is useful when you want to inject custom logic or configuration
23060// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23061//
23062//
23063//    // Example sending a request using the UpdateCertificateRequest method.
23064//    req, resp := client.UpdateCertificateRequest(params)
23065//
23066//    err := req.Send()
23067//    if err == nil { // resp is now filled
23068//        fmt.Println(resp)
23069//    }
23070func (c *IoT) UpdateCertificateRequest(input *UpdateCertificateInput) (req *request.Request, output *UpdateCertificateOutput) {
23071	op := &request.Operation{
23072		Name:       opUpdateCertificate,
23073		HTTPMethod: "PUT",
23074		HTTPPath:   "/certificates/{certificateId}",
23075	}
23076
23077	if input == nil {
23078		input = &UpdateCertificateInput{}
23079	}
23080
23081	output = &UpdateCertificateOutput{}
23082	req = c.newRequest(op, input, output)
23083	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23084	return
23085}
23086
23087// UpdateCertificate API operation for AWS IoT.
23088//
23089// Updates the status of the specified certificate. This operation is idempotent.
23090//
23091// Requires permission to access the UpdateCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23092// action.
23093//
23094// Certificates must be in the ACTIVE state to authenticate devices that use
23095// a certificate to connect to IoT.
23096//
23097// Within a few minutes of updating a certificate from the ACTIVE state to any
23098// other state, IoT disconnects all devices that used that certificate to connect.
23099// Devices cannot use a certificate that is not in the ACTIVE state to reconnect.
23100//
23101// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23102// with awserr.Error's Code and Message methods to get detailed information about
23103// the error.
23104//
23105// See the AWS API reference guide for AWS IoT's
23106// API operation UpdateCertificate for usage and error information.
23107//
23108// Returned Error Types:
23109//   * ResourceNotFoundException
23110//   The specified resource does not exist.
23111//
23112//   * CertificateStateException
23113//   The certificate operation is not allowed.
23114//
23115//   * InvalidRequestException
23116//   The request is not valid.
23117//
23118//   * ThrottlingException
23119//   The rate exceeds the limit.
23120//
23121//   * UnauthorizedException
23122//   You are not authorized to perform this operation.
23123//
23124//   * ServiceUnavailableException
23125//   The service is temporarily unavailable.
23126//
23127//   * InternalFailureException
23128//   An unexpected error has occurred.
23129//
23130func (c *IoT) UpdateCertificate(input *UpdateCertificateInput) (*UpdateCertificateOutput, error) {
23131	req, out := c.UpdateCertificateRequest(input)
23132	return out, req.Send()
23133}
23134
23135// UpdateCertificateWithContext is the same as UpdateCertificate with the addition of
23136// the ability to pass a context and additional request options.
23137//
23138// See UpdateCertificate for details on how to use this API operation.
23139//
23140// The context must be non-nil and will be used for request cancellation. If
23141// the context is nil a panic will occur. In the future the SDK may create
23142// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23143// for more information on using Contexts.
23144func (c *IoT) UpdateCertificateWithContext(ctx aws.Context, input *UpdateCertificateInput, opts ...request.Option) (*UpdateCertificateOutput, error) {
23145	req, out := c.UpdateCertificateRequest(input)
23146	req.SetContext(ctx)
23147	req.ApplyOptions(opts...)
23148	return out, req.Send()
23149}
23150
23151const opUpdateCustomMetric = "UpdateCustomMetric"
23152
23153// UpdateCustomMetricRequest generates a "aws/request.Request" representing the
23154// client's request for the UpdateCustomMetric operation. The "output" return
23155// value will be populated with the request's response once the request completes
23156// successfully.
23157//
23158// Use "Send" method on the returned Request to send the API call to the service.
23159// the "output" return value is not valid until after Send returns without error.
23160//
23161// See UpdateCustomMetric for more information on using the UpdateCustomMetric
23162// API call, and error handling.
23163//
23164// This method is useful when you want to inject custom logic or configuration
23165// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23166//
23167//
23168//    // Example sending a request using the UpdateCustomMetricRequest method.
23169//    req, resp := client.UpdateCustomMetricRequest(params)
23170//
23171//    err := req.Send()
23172//    if err == nil { // resp is now filled
23173//        fmt.Println(resp)
23174//    }
23175func (c *IoT) UpdateCustomMetricRequest(input *UpdateCustomMetricInput) (req *request.Request, output *UpdateCustomMetricOutput) {
23176	op := &request.Operation{
23177		Name:       opUpdateCustomMetric,
23178		HTTPMethod: "PATCH",
23179		HTTPPath:   "/custom-metric/{metricName}",
23180	}
23181
23182	if input == nil {
23183		input = &UpdateCustomMetricInput{}
23184	}
23185
23186	output = &UpdateCustomMetricOutput{}
23187	req = c.newRequest(op, input, output)
23188	return
23189}
23190
23191// UpdateCustomMetric API operation for AWS IoT.
23192//
23193// Updates a Device Defender detect custom metric.
23194//
23195// Requires permission to access the UpdateCustomMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23196// action.
23197//
23198// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23199// with awserr.Error's Code and Message methods to get detailed information about
23200// the error.
23201//
23202// See the AWS API reference guide for AWS IoT's
23203// API operation UpdateCustomMetric for usage and error information.
23204//
23205// Returned Error Types:
23206//   * InvalidRequestException
23207//   The request is not valid.
23208//
23209//   * ResourceNotFoundException
23210//   The specified resource does not exist.
23211//
23212//   * ThrottlingException
23213//   The rate exceeds the limit.
23214//
23215//   * InternalFailureException
23216//   An unexpected error has occurred.
23217//
23218func (c *IoT) UpdateCustomMetric(input *UpdateCustomMetricInput) (*UpdateCustomMetricOutput, error) {
23219	req, out := c.UpdateCustomMetricRequest(input)
23220	return out, req.Send()
23221}
23222
23223// UpdateCustomMetricWithContext is the same as UpdateCustomMetric with the addition of
23224// the ability to pass a context and additional request options.
23225//
23226// See UpdateCustomMetric for details on how to use this API operation.
23227//
23228// The context must be non-nil and will be used for request cancellation. If
23229// the context is nil a panic will occur. In the future the SDK may create
23230// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23231// for more information on using Contexts.
23232func (c *IoT) UpdateCustomMetricWithContext(ctx aws.Context, input *UpdateCustomMetricInput, opts ...request.Option) (*UpdateCustomMetricOutput, error) {
23233	req, out := c.UpdateCustomMetricRequest(input)
23234	req.SetContext(ctx)
23235	req.ApplyOptions(opts...)
23236	return out, req.Send()
23237}
23238
23239const opUpdateDimension = "UpdateDimension"
23240
23241// UpdateDimensionRequest generates a "aws/request.Request" representing the
23242// client's request for the UpdateDimension operation. The "output" return
23243// value will be populated with the request's response once the request completes
23244// successfully.
23245//
23246// Use "Send" method on the returned Request to send the API call to the service.
23247// the "output" return value is not valid until after Send returns without error.
23248//
23249// See UpdateDimension for more information on using the UpdateDimension
23250// API call, and error handling.
23251//
23252// This method is useful when you want to inject custom logic or configuration
23253// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23254//
23255//
23256//    // Example sending a request using the UpdateDimensionRequest method.
23257//    req, resp := client.UpdateDimensionRequest(params)
23258//
23259//    err := req.Send()
23260//    if err == nil { // resp is now filled
23261//        fmt.Println(resp)
23262//    }
23263func (c *IoT) UpdateDimensionRequest(input *UpdateDimensionInput) (req *request.Request, output *UpdateDimensionOutput) {
23264	op := &request.Operation{
23265		Name:       opUpdateDimension,
23266		HTTPMethod: "PATCH",
23267		HTTPPath:   "/dimensions/{name}",
23268	}
23269
23270	if input == nil {
23271		input = &UpdateDimensionInput{}
23272	}
23273
23274	output = &UpdateDimensionOutput{}
23275	req = c.newRequest(op, input, output)
23276	return
23277}
23278
23279// UpdateDimension API operation for AWS IoT.
23280//
23281// Updates the definition for a dimension. You cannot change the type of a dimension
23282// after it is created (you can delete it and recreate it).
23283//
23284// Requires permission to access the UpdateDimension (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23285// action.
23286//
23287// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23288// with awserr.Error's Code and Message methods to get detailed information about
23289// the error.
23290//
23291// See the AWS API reference guide for AWS IoT's
23292// API operation UpdateDimension for usage and error information.
23293//
23294// Returned Error Types:
23295//   * InternalFailureException
23296//   An unexpected error has occurred.
23297//
23298//   * InvalidRequestException
23299//   The request is not valid.
23300//
23301//   * ResourceNotFoundException
23302//   The specified resource does not exist.
23303//
23304//   * ThrottlingException
23305//   The rate exceeds the limit.
23306//
23307func (c *IoT) UpdateDimension(input *UpdateDimensionInput) (*UpdateDimensionOutput, error) {
23308	req, out := c.UpdateDimensionRequest(input)
23309	return out, req.Send()
23310}
23311
23312// UpdateDimensionWithContext is the same as UpdateDimension with the addition of
23313// the ability to pass a context and additional request options.
23314//
23315// See UpdateDimension for details on how to use this API operation.
23316//
23317// The context must be non-nil and will be used for request cancellation. If
23318// the context is nil a panic will occur. In the future the SDK may create
23319// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23320// for more information on using Contexts.
23321func (c *IoT) UpdateDimensionWithContext(ctx aws.Context, input *UpdateDimensionInput, opts ...request.Option) (*UpdateDimensionOutput, error) {
23322	req, out := c.UpdateDimensionRequest(input)
23323	req.SetContext(ctx)
23324	req.ApplyOptions(opts...)
23325	return out, req.Send()
23326}
23327
23328const opUpdateDomainConfiguration = "UpdateDomainConfiguration"
23329
23330// UpdateDomainConfigurationRequest generates a "aws/request.Request" representing the
23331// client's request for the UpdateDomainConfiguration operation. The "output" return
23332// value will be populated with the request's response once the request completes
23333// successfully.
23334//
23335// Use "Send" method on the returned Request to send the API call to the service.
23336// the "output" return value is not valid until after Send returns without error.
23337//
23338// See UpdateDomainConfiguration for more information on using the UpdateDomainConfiguration
23339// API call, and error handling.
23340//
23341// This method is useful when you want to inject custom logic or configuration
23342// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23343//
23344//
23345//    // Example sending a request using the UpdateDomainConfigurationRequest method.
23346//    req, resp := client.UpdateDomainConfigurationRequest(params)
23347//
23348//    err := req.Send()
23349//    if err == nil { // resp is now filled
23350//        fmt.Println(resp)
23351//    }
23352func (c *IoT) UpdateDomainConfigurationRequest(input *UpdateDomainConfigurationInput) (req *request.Request, output *UpdateDomainConfigurationOutput) {
23353	op := &request.Operation{
23354		Name:       opUpdateDomainConfiguration,
23355		HTTPMethod: "PUT",
23356		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
23357	}
23358
23359	if input == nil {
23360		input = &UpdateDomainConfigurationInput{}
23361	}
23362
23363	output = &UpdateDomainConfigurationOutput{}
23364	req = c.newRequest(op, input, output)
23365	return
23366}
23367
23368// UpdateDomainConfiguration API operation for AWS IoT.
23369//
23370// Updates values stored in the domain configuration. Domain configurations
23371// for default endpoints can't be updated.
23372//
23373// Requires permission to access the UpdateDomainConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23374// action.
23375//
23376// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23377// with awserr.Error's Code and Message methods to get detailed information about
23378// the error.
23379//
23380// See the AWS API reference guide for AWS IoT's
23381// API operation UpdateDomainConfiguration for usage and error information.
23382//
23383// Returned Error Types:
23384//   * ResourceNotFoundException
23385//   The specified resource does not exist.
23386//
23387//   * CertificateValidationException
23388//   The certificate is invalid.
23389//
23390//   * InvalidRequestException
23391//   The request is not valid.
23392//
23393//   * ThrottlingException
23394//   The rate exceeds the limit.
23395//
23396//   * UnauthorizedException
23397//   You are not authorized to perform this operation.
23398//
23399//   * ServiceUnavailableException
23400//   The service is temporarily unavailable.
23401//
23402//   * InternalFailureException
23403//   An unexpected error has occurred.
23404//
23405func (c *IoT) UpdateDomainConfiguration(input *UpdateDomainConfigurationInput) (*UpdateDomainConfigurationOutput, error) {
23406	req, out := c.UpdateDomainConfigurationRequest(input)
23407	return out, req.Send()
23408}
23409
23410// UpdateDomainConfigurationWithContext is the same as UpdateDomainConfiguration with the addition of
23411// the ability to pass a context and additional request options.
23412//
23413// See UpdateDomainConfiguration for details on how to use this API operation.
23414//
23415// The context must be non-nil and will be used for request cancellation. If
23416// the context is nil a panic will occur. In the future the SDK may create
23417// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23418// for more information on using Contexts.
23419func (c *IoT) UpdateDomainConfigurationWithContext(ctx aws.Context, input *UpdateDomainConfigurationInput, opts ...request.Option) (*UpdateDomainConfigurationOutput, error) {
23420	req, out := c.UpdateDomainConfigurationRequest(input)
23421	req.SetContext(ctx)
23422	req.ApplyOptions(opts...)
23423	return out, req.Send()
23424}
23425
23426const opUpdateDynamicThingGroup = "UpdateDynamicThingGroup"
23427
23428// UpdateDynamicThingGroupRequest generates a "aws/request.Request" representing the
23429// client's request for the UpdateDynamicThingGroup operation. The "output" return
23430// value will be populated with the request's response once the request completes
23431// successfully.
23432//
23433// Use "Send" method on the returned Request to send the API call to the service.
23434// the "output" return value is not valid until after Send returns without error.
23435//
23436// See UpdateDynamicThingGroup for more information on using the UpdateDynamicThingGroup
23437// API call, and error handling.
23438//
23439// This method is useful when you want to inject custom logic or configuration
23440// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23441//
23442//
23443//    // Example sending a request using the UpdateDynamicThingGroupRequest method.
23444//    req, resp := client.UpdateDynamicThingGroupRequest(params)
23445//
23446//    err := req.Send()
23447//    if err == nil { // resp is now filled
23448//        fmt.Println(resp)
23449//    }
23450func (c *IoT) UpdateDynamicThingGroupRequest(input *UpdateDynamicThingGroupInput) (req *request.Request, output *UpdateDynamicThingGroupOutput) {
23451	op := &request.Operation{
23452		Name:       opUpdateDynamicThingGroup,
23453		HTTPMethod: "PATCH",
23454		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
23455	}
23456
23457	if input == nil {
23458		input = &UpdateDynamicThingGroupInput{}
23459	}
23460
23461	output = &UpdateDynamicThingGroupOutput{}
23462	req = c.newRequest(op, input, output)
23463	return
23464}
23465
23466// UpdateDynamicThingGroup API operation for AWS IoT.
23467//
23468// Updates a dynamic thing group.
23469//
23470// Requires permission to access the UpdateDynamicThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23471// action.
23472//
23473// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23474// with awserr.Error's Code and Message methods to get detailed information about
23475// the error.
23476//
23477// See the AWS API reference guide for AWS IoT's
23478// API operation UpdateDynamicThingGroup for usage and error information.
23479//
23480// Returned Error Types:
23481//   * InvalidRequestException
23482//   The request is not valid.
23483//
23484//   * VersionConflictException
23485//   An exception thrown when the version of an entity specified with the expectedVersion
23486//   parameter does not match the latest version in the system.
23487//
23488//   * ThrottlingException
23489//   The rate exceeds the limit.
23490//
23491//   * InternalFailureException
23492//   An unexpected error has occurred.
23493//
23494//   * ResourceNotFoundException
23495//   The specified resource does not exist.
23496//
23497//   * InvalidQueryException
23498//   The query is invalid.
23499//
23500func (c *IoT) UpdateDynamicThingGroup(input *UpdateDynamicThingGroupInput) (*UpdateDynamicThingGroupOutput, error) {
23501	req, out := c.UpdateDynamicThingGroupRequest(input)
23502	return out, req.Send()
23503}
23504
23505// UpdateDynamicThingGroupWithContext is the same as UpdateDynamicThingGroup with the addition of
23506// the ability to pass a context and additional request options.
23507//
23508// See UpdateDynamicThingGroup for details on how to use this API operation.
23509//
23510// The context must be non-nil and will be used for request cancellation. If
23511// the context is nil a panic will occur. In the future the SDK may create
23512// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23513// for more information on using Contexts.
23514func (c *IoT) UpdateDynamicThingGroupWithContext(ctx aws.Context, input *UpdateDynamicThingGroupInput, opts ...request.Option) (*UpdateDynamicThingGroupOutput, error) {
23515	req, out := c.UpdateDynamicThingGroupRequest(input)
23516	req.SetContext(ctx)
23517	req.ApplyOptions(opts...)
23518	return out, req.Send()
23519}
23520
23521const opUpdateEventConfigurations = "UpdateEventConfigurations"
23522
23523// UpdateEventConfigurationsRequest generates a "aws/request.Request" representing the
23524// client's request for the UpdateEventConfigurations operation. The "output" return
23525// value will be populated with the request's response once the request completes
23526// successfully.
23527//
23528// Use "Send" method on the returned Request to send the API call to the service.
23529// the "output" return value is not valid until after Send returns without error.
23530//
23531// See UpdateEventConfigurations for more information on using the UpdateEventConfigurations
23532// API call, and error handling.
23533//
23534// This method is useful when you want to inject custom logic or configuration
23535// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23536//
23537//
23538//    // Example sending a request using the UpdateEventConfigurationsRequest method.
23539//    req, resp := client.UpdateEventConfigurationsRequest(params)
23540//
23541//    err := req.Send()
23542//    if err == nil { // resp is now filled
23543//        fmt.Println(resp)
23544//    }
23545func (c *IoT) UpdateEventConfigurationsRequest(input *UpdateEventConfigurationsInput) (req *request.Request, output *UpdateEventConfigurationsOutput) {
23546	op := &request.Operation{
23547		Name:       opUpdateEventConfigurations,
23548		HTTPMethod: "PATCH",
23549		HTTPPath:   "/event-configurations",
23550	}
23551
23552	if input == nil {
23553		input = &UpdateEventConfigurationsInput{}
23554	}
23555
23556	output = &UpdateEventConfigurationsOutput{}
23557	req = c.newRequest(op, input, output)
23558	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23559	return
23560}
23561
23562// UpdateEventConfigurations API operation for AWS IoT.
23563//
23564// Updates the event configurations.
23565//
23566// Requires permission to access the UpdateEventConfigurations (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23567// action.
23568//
23569// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23570// with awserr.Error's Code and Message methods to get detailed information about
23571// the error.
23572//
23573// See the AWS API reference guide for AWS IoT's
23574// API operation UpdateEventConfigurations for usage and error information.
23575//
23576// Returned Error Types:
23577//   * InvalidRequestException
23578//   The request is not valid.
23579//
23580//   * InternalFailureException
23581//   An unexpected error has occurred.
23582//
23583//   * ThrottlingException
23584//   The rate exceeds the limit.
23585//
23586func (c *IoT) UpdateEventConfigurations(input *UpdateEventConfigurationsInput) (*UpdateEventConfigurationsOutput, error) {
23587	req, out := c.UpdateEventConfigurationsRequest(input)
23588	return out, req.Send()
23589}
23590
23591// UpdateEventConfigurationsWithContext is the same as UpdateEventConfigurations with the addition of
23592// the ability to pass a context and additional request options.
23593//
23594// See UpdateEventConfigurations for details on how to use this API operation.
23595//
23596// The context must be non-nil and will be used for request cancellation. If
23597// the context is nil a panic will occur. In the future the SDK may create
23598// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23599// for more information on using Contexts.
23600func (c *IoT) UpdateEventConfigurationsWithContext(ctx aws.Context, input *UpdateEventConfigurationsInput, opts ...request.Option) (*UpdateEventConfigurationsOutput, error) {
23601	req, out := c.UpdateEventConfigurationsRequest(input)
23602	req.SetContext(ctx)
23603	req.ApplyOptions(opts...)
23604	return out, req.Send()
23605}
23606
23607const opUpdateFleetMetric = "UpdateFleetMetric"
23608
23609// UpdateFleetMetricRequest generates a "aws/request.Request" representing the
23610// client's request for the UpdateFleetMetric operation. The "output" return
23611// value will be populated with the request's response once the request completes
23612// successfully.
23613//
23614// Use "Send" method on the returned Request to send the API call to the service.
23615// the "output" return value is not valid until after Send returns without error.
23616//
23617// See UpdateFleetMetric for more information on using the UpdateFleetMetric
23618// API call, and error handling.
23619//
23620// This method is useful when you want to inject custom logic or configuration
23621// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23622//
23623//
23624//    // Example sending a request using the UpdateFleetMetricRequest method.
23625//    req, resp := client.UpdateFleetMetricRequest(params)
23626//
23627//    err := req.Send()
23628//    if err == nil { // resp is now filled
23629//        fmt.Println(resp)
23630//    }
23631func (c *IoT) UpdateFleetMetricRequest(input *UpdateFleetMetricInput) (req *request.Request, output *UpdateFleetMetricOutput) {
23632	op := &request.Operation{
23633		Name:       opUpdateFleetMetric,
23634		HTTPMethod: "PATCH",
23635		HTTPPath:   "/fleet-metric/{metricName}",
23636	}
23637
23638	if input == nil {
23639		input = &UpdateFleetMetricInput{}
23640	}
23641
23642	output = &UpdateFleetMetricOutput{}
23643	req = c.newRequest(op, input, output)
23644	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23645	return
23646}
23647
23648// UpdateFleetMetric API operation for AWS IoT.
23649//
23650// Updates the data for a fleet metric.
23651//
23652// Requires permission to access the UpdateFleetMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23653// action.
23654//
23655// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23656// with awserr.Error's Code and Message methods to get detailed information about
23657// the error.
23658//
23659// See the AWS API reference guide for AWS IoT's
23660// API operation UpdateFleetMetric for usage and error information.
23661//
23662// Returned Error Types:
23663//   * InvalidRequestException
23664//   The request is not valid.
23665//
23666//   * ThrottlingException
23667//   The rate exceeds the limit.
23668//
23669//   * UnauthorizedException
23670//   You are not authorized to perform this operation.
23671//
23672//   * ServiceUnavailableException
23673//   The service is temporarily unavailable.
23674//
23675//   * InternalFailureException
23676//   An unexpected error has occurred.
23677//
23678//   * ResourceNotFoundException
23679//   The specified resource does not exist.
23680//
23681//   * InvalidQueryException
23682//   The query is invalid.
23683//
23684//   * InvalidAggregationException
23685//   The aggregation is invalid.
23686//
23687//   * VersionConflictException
23688//   An exception thrown when the version of an entity specified with the expectedVersion
23689//   parameter does not match the latest version in the system.
23690//
23691//   * IndexNotReadyException
23692//   The index is not ready.
23693//
23694func (c *IoT) UpdateFleetMetric(input *UpdateFleetMetricInput) (*UpdateFleetMetricOutput, error) {
23695	req, out := c.UpdateFleetMetricRequest(input)
23696	return out, req.Send()
23697}
23698
23699// UpdateFleetMetricWithContext is the same as UpdateFleetMetric with the addition of
23700// the ability to pass a context and additional request options.
23701//
23702// See UpdateFleetMetric for details on how to use this API operation.
23703//
23704// The context must be non-nil and will be used for request cancellation. If
23705// the context is nil a panic will occur. In the future the SDK may create
23706// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23707// for more information on using Contexts.
23708func (c *IoT) UpdateFleetMetricWithContext(ctx aws.Context, input *UpdateFleetMetricInput, opts ...request.Option) (*UpdateFleetMetricOutput, error) {
23709	req, out := c.UpdateFleetMetricRequest(input)
23710	req.SetContext(ctx)
23711	req.ApplyOptions(opts...)
23712	return out, req.Send()
23713}
23714
23715const opUpdateIndexingConfiguration = "UpdateIndexingConfiguration"
23716
23717// UpdateIndexingConfigurationRequest generates a "aws/request.Request" representing the
23718// client's request for the UpdateIndexingConfiguration operation. The "output" return
23719// value will be populated with the request's response once the request completes
23720// successfully.
23721//
23722// Use "Send" method on the returned Request to send the API call to the service.
23723// the "output" return value is not valid until after Send returns without error.
23724//
23725// See UpdateIndexingConfiguration for more information on using the UpdateIndexingConfiguration
23726// API call, and error handling.
23727//
23728// This method is useful when you want to inject custom logic or configuration
23729// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23730//
23731//
23732//    // Example sending a request using the UpdateIndexingConfigurationRequest method.
23733//    req, resp := client.UpdateIndexingConfigurationRequest(params)
23734//
23735//    err := req.Send()
23736//    if err == nil { // resp is now filled
23737//        fmt.Println(resp)
23738//    }
23739func (c *IoT) UpdateIndexingConfigurationRequest(input *UpdateIndexingConfigurationInput) (req *request.Request, output *UpdateIndexingConfigurationOutput) {
23740	op := &request.Operation{
23741		Name:       opUpdateIndexingConfiguration,
23742		HTTPMethod: "POST",
23743		HTTPPath:   "/indexing/config",
23744	}
23745
23746	if input == nil {
23747		input = &UpdateIndexingConfigurationInput{}
23748	}
23749
23750	output = &UpdateIndexingConfigurationOutput{}
23751	req = c.newRequest(op, input, output)
23752	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23753	return
23754}
23755
23756// UpdateIndexingConfiguration API operation for AWS IoT.
23757//
23758// Updates the search configuration.
23759//
23760// Requires permission to access the UpdateIndexingConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23761// action.
23762//
23763// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23764// with awserr.Error's Code and Message methods to get detailed information about
23765// the error.
23766//
23767// See the AWS API reference guide for AWS IoT's
23768// API operation UpdateIndexingConfiguration for usage and error information.
23769//
23770// Returned Error Types:
23771//   * InvalidRequestException
23772//   The request is not valid.
23773//
23774//   * ThrottlingException
23775//   The rate exceeds the limit.
23776//
23777//   * UnauthorizedException
23778//   You are not authorized to perform this operation.
23779//
23780//   * ServiceUnavailableException
23781//   The service is temporarily unavailable.
23782//
23783//   * InternalFailureException
23784//   An unexpected error has occurred.
23785//
23786func (c *IoT) UpdateIndexingConfiguration(input *UpdateIndexingConfigurationInput) (*UpdateIndexingConfigurationOutput, error) {
23787	req, out := c.UpdateIndexingConfigurationRequest(input)
23788	return out, req.Send()
23789}
23790
23791// UpdateIndexingConfigurationWithContext is the same as UpdateIndexingConfiguration with the addition of
23792// the ability to pass a context and additional request options.
23793//
23794// See UpdateIndexingConfiguration for details on how to use this API operation.
23795//
23796// The context must be non-nil and will be used for request cancellation. If
23797// the context is nil a panic will occur. In the future the SDK may create
23798// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23799// for more information on using Contexts.
23800func (c *IoT) UpdateIndexingConfigurationWithContext(ctx aws.Context, input *UpdateIndexingConfigurationInput, opts ...request.Option) (*UpdateIndexingConfigurationOutput, error) {
23801	req, out := c.UpdateIndexingConfigurationRequest(input)
23802	req.SetContext(ctx)
23803	req.ApplyOptions(opts...)
23804	return out, req.Send()
23805}
23806
23807const opUpdateJob = "UpdateJob"
23808
23809// UpdateJobRequest generates a "aws/request.Request" representing the
23810// client's request for the UpdateJob operation. The "output" return
23811// value will be populated with the request's response once the request completes
23812// successfully.
23813//
23814// Use "Send" method on the returned Request to send the API call to the service.
23815// the "output" return value is not valid until after Send returns without error.
23816//
23817// See UpdateJob for more information on using the UpdateJob
23818// API call, and error handling.
23819//
23820// This method is useful when you want to inject custom logic or configuration
23821// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23822//
23823//
23824//    // Example sending a request using the UpdateJobRequest method.
23825//    req, resp := client.UpdateJobRequest(params)
23826//
23827//    err := req.Send()
23828//    if err == nil { // resp is now filled
23829//        fmt.Println(resp)
23830//    }
23831func (c *IoT) UpdateJobRequest(input *UpdateJobInput) (req *request.Request, output *UpdateJobOutput) {
23832	op := &request.Operation{
23833		Name:       opUpdateJob,
23834		HTTPMethod: "PATCH",
23835		HTTPPath:   "/jobs/{jobId}",
23836	}
23837
23838	if input == nil {
23839		input = &UpdateJobInput{}
23840	}
23841
23842	output = &UpdateJobOutput{}
23843	req = c.newRequest(op, input, output)
23844	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23845	return
23846}
23847
23848// UpdateJob API operation for AWS IoT.
23849//
23850// Updates supported fields of the specified job.
23851//
23852// Requires permission to access the UpdateJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23853// action.
23854//
23855// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23856// with awserr.Error's Code and Message methods to get detailed information about
23857// the error.
23858//
23859// See the AWS API reference guide for AWS IoT's
23860// API operation UpdateJob for usage and error information.
23861//
23862// Returned Error Types:
23863//   * InvalidRequestException
23864//   The request is not valid.
23865//
23866//   * ResourceNotFoundException
23867//   The specified resource does not exist.
23868//
23869//   * ThrottlingException
23870//   The rate exceeds the limit.
23871//
23872//   * ServiceUnavailableException
23873//   The service is temporarily unavailable.
23874//
23875func (c *IoT) UpdateJob(input *UpdateJobInput) (*UpdateJobOutput, error) {
23876	req, out := c.UpdateJobRequest(input)
23877	return out, req.Send()
23878}
23879
23880// UpdateJobWithContext is the same as UpdateJob with the addition of
23881// the ability to pass a context and additional request options.
23882//
23883// See UpdateJob for details on how to use this API operation.
23884//
23885// The context must be non-nil and will be used for request cancellation. If
23886// the context is nil a panic will occur. In the future the SDK may create
23887// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23888// for more information on using Contexts.
23889func (c *IoT) UpdateJobWithContext(ctx aws.Context, input *UpdateJobInput, opts ...request.Option) (*UpdateJobOutput, error) {
23890	req, out := c.UpdateJobRequest(input)
23891	req.SetContext(ctx)
23892	req.ApplyOptions(opts...)
23893	return out, req.Send()
23894}
23895
23896const opUpdateMitigationAction = "UpdateMitigationAction"
23897
23898// UpdateMitigationActionRequest generates a "aws/request.Request" representing the
23899// client's request for the UpdateMitigationAction operation. The "output" return
23900// value will be populated with the request's response once the request completes
23901// successfully.
23902//
23903// Use "Send" method on the returned Request to send the API call to the service.
23904// the "output" return value is not valid until after Send returns without error.
23905//
23906// See UpdateMitigationAction for more information on using the UpdateMitigationAction
23907// API call, and error handling.
23908//
23909// This method is useful when you want to inject custom logic or configuration
23910// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23911//
23912//
23913//    // Example sending a request using the UpdateMitigationActionRequest method.
23914//    req, resp := client.UpdateMitigationActionRequest(params)
23915//
23916//    err := req.Send()
23917//    if err == nil { // resp is now filled
23918//        fmt.Println(resp)
23919//    }
23920func (c *IoT) UpdateMitigationActionRequest(input *UpdateMitigationActionInput) (req *request.Request, output *UpdateMitigationActionOutput) {
23921	op := &request.Operation{
23922		Name:       opUpdateMitigationAction,
23923		HTTPMethod: "PATCH",
23924		HTTPPath:   "/mitigationactions/actions/{actionName}",
23925	}
23926
23927	if input == nil {
23928		input = &UpdateMitigationActionInput{}
23929	}
23930
23931	output = &UpdateMitigationActionOutput{}
23932	req = c.newRequest(op, input, output)
23933	return
23934}
23935
23936// UpdateMitigationAction API operation for AWS IoT.
23937//
23938// Updates the definition for the specified mitigation action.
23939//
23940// Requires permission to access the UpdateMitigationAction (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23941// action.
23942//
23943// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23944// with awserr.Error's Code and Message methods to get detailed information about
23945// the error.
23946//
23947// See the AWS API reference guide for AWS IoT's
23948// API operation UpdateMitigationAction for usage and error information.
23949//
23950// Returned Error Types:
23951//   * InvalidRequestException
23952//   The request is not valid.
23953//
23954//   * ResourceNotFoundException
23955//   The specified resource does not exist.
23956//
23957//   * ThrottlingException
23958//   The rate exceeds the limit.
23959//
23960//   * InternalFailureException
23961//   An unexpected error has occurred.
23962//
23963func (c *IoT) UpdateMitigationAction(input *UpdateMitigationActionInput) (*UpdateMitigationActionOutput, error) {
23964	req, out := c.UpdateMitigationActionRequest(input)
23965	return out, req.Send()
23966}
23967
23968// UpdateMitigationActionWithContext is the same as UpdateMitigationAction with the addition of
23969// the ability to pass a context and additional request options.
23970//
23971// See UpdateMitigationAction for details on how to use this API operation.
23972//
23973// The context must be non-nil and will be used for request cancellation. If
23974// the context is nil a panic will occur. In the future the SDK may create
23975// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23976// for more information on using Contexts.
23977func (c *IoT) UpdateMitigationActionWithContext(ctx aws.Context, input *UpdateMitigationActionInput, opts ...request.Option) (*UpdateMitigationActionOutput, error) {
23978	req, out := c.UpdateMitigationActionRequest(input)
23979	req.SetContext(ctx)
23980	req.ApplyOptions(opts...)
23981	return out, req.Send()
23982}
23983
23984const opUpdateProvisioningTemplate = "UpdateProvisioningTemplate"
23985
23986// UpdateProvisioningTemplateRequest generates a "aws/request.Request" representing the
23987// client's request for the UpdateProvisioningTemplate operation. The "output" return
23988// value will be populated with the request's response once the request completes
23989// successfully.
23990//
23991// Use "Send" method on the returned Request to send the API call to the service.
23992// the "output" return value is not valid until after Send returns without error.
23993//
23994// See UpdateProvisioningTemplate for more information on using the UpdateProvisioningTemplate
23995// API call, and error handling.
23996//
23997// This method is useful when you want to inject custom logic or configuration
23998// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23999//
24000//
24001//    // Example sending a request using the UpdateProvisioningTemplateRequest method.
24002//    req, resp := client.UpdateProvisioningTemplateRequest(params)
24003//
24004//    err := req.Send()
24005//    if err == nil { // resp is now filled
24006//        fmt.Println(resp)
24007//    }
24008func (c *IoT) UpdateProvisioningTemplateRequest(input *UpdateProvisioningTemplateInput) (req *request.Request, output *UpdateProvisioningTemplateOutput) {
24009	op := &request.Operation{
24010		Name:       opUpdateProvisioningTemplate,
24011		HTTPMethod: "PATCH",
24012		HTTPPath:   "/provisioning-templates/{templateName}",
24013	}
24014
24015	if input == nil {
24016		input = &UpdateProvisioningTemplateInput{}
24017	}
24018
24019	output = &UpdateProvisioningTemplateOutput{}
24020	req = c.newRequest(op, input, output)
24021	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
24022	return
24023}
24024
24025// UpdateProvisioningTemplate API operation for AWS IoT.
24026//
24027// Updates a fleet provisioning template.
24028//
24029// Requires permission to access the UpdateProvisioningTemplate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24030// action.
24031//
24032// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24033// with awserr.Error's Code and Message methods to get detailed information about
24034// the error.
24035//
24036// See the AWS API reference guide for AWS IoT's
24037// API operation UpdateProvisioningTemplate for usage and error information.
24038//
24039// Returned Error Types:
24040//   * InternalFailureException
24041//   An unexpected error has occurred.
24042//
24043//   * InvalidRequestException
24044//   The request is not valid.
24045//
24046//   * ResourceNotFoundException
24047//   The specified resource does not exist.
24048//
24049//   * UnauthorizedException
24050//   You are not authorized to perform this operation.
24051//
24052//   * ConflictingResourceUpdateException
24053//   A conflicting resource update exception. This exception is thrown when two
24054//   pending updates cause a conflict.
24055//
24056func (c *IoT) UpdateProvisioningTemplate(input *UpdateProvisioningTemplateInput) (*UpdateProvisioningTemplateOutput, error) {
24057	req, out := c.UpdateProvisioningTemplateRequest(input)
24058	return out, req.Send()
24059}
24060
24061// UpdateProvisioningTemplateWithContext is the same as UpdateProvisioningTemplate with the addition of
24062// the ability to pass a context and additional request options.
24063//
24064// See UpdateProvisioningTemplate for details on how to use this API operation.
24065//
24066// The context must be non-nil and will be used for request cancellation. If
24067// the context is nil a panic will occur. In the future the SDK may create
24068// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24069// for more information on using Contexts.
24070func (c *IoT) UpdateProvisioningTemplateWithContext(ctx aws.Context, input *UpdateProvisioningTemplateInput, opts ...request.Option) (*UpdateProvisioningTemplateOutput, error) {
24071	req, out := c.UpdateProvisioningTemplateRequest(input)
24072	req.SetContext(ctx)
24073	req.ApplyOptions(opts...)
24074	return out, req.Send()
24075}
24076
24077const opUpdateRoleAlias = "UpdateRoleAlias"
24078
24079// UpdateRoleAliasRequest generates a "aws/request.Request" representing the
24080// client's request for the UpdateRoleAlias operation. The "output" return
24081// value will be populated with the request's response once the request completes
24082// successfully.
24083//
24084// Use "Send" method on the returned Request to send the API call to the service.
24085// the "output" return value is not valid until after Send returns without error.
24086//
24087// See UpdateRoleAlias for more information on using the UpdateRoleAlias
24088// API call, and error handling.
24089//
24090// This method is useful when you want to inject custom logic or configuration
24091// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24092//
24093//
24094//    // Example sending a request using the UpdateRoleAliasRequest method.
24095//    req, resp := client.UpdateRoleAliasRequest(params)
24096//
24097//    err := req.Send()
24098//    if err == nil { // resp is now filled
24099//        fmt.Println(resp)
24100//    }
24101func (c *IoT) UpdateRoleAliasRequest(input *UpdateRoleAliasInput) (req *request.Request, output *UpdateRoleAliasOutput) {
24102	op := &request.Operation{
24103		Name:       opUpdateRoleAlias,
24104		HTTPMethod: "PUT",
24105		HTTPPath:   "/role-aliases/{roleAlias}",
24106	}
24107
24108	if input == nil {
24109		input = &UpdateRoleAliasInput{}
24110	}
24111
24112	output = &UpdateRoleAliasOutput{}
24113	req = c.newRequest(op, input, output)
24114	return
24115}
24116
24117// UpdateRoleAlias API operation for AWS IoT.
24118//
24119// Updates a role alias.
24120//
24121// Requires permission to access the UpdateRoleAlias (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24122// action.
24123//
24124// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24125// with awserr.Error's Code and Message methods to get detailed information about
24126// the error.
24127//
24128// See the AWS API reference guide for AWS IoT's
24129// API operation UpdateRoleAlias for usage and error information.
24130//
24131// Returned Error Types:
24132//   * ResourceNotFoundException
24133//   The specified resource does not exist.
24134//
24135//   * InvalidRequestException
24136//   The request is not valid.
24137//
24138//   * ThrottlingException
24139//   The rate exceeds the limit.
24140//
24141//   * UnauthorizedException
24142//   You are not authorized to perform this operation.
24143//
24144//   * ServiceUnavailableException
24145//   The service is temporarily unavailable.
24146//
24147//   * InternalFailureException
24148//   An unexpected error has occurred.
24149//
24150func (c *IoT) UpdateRoleAlias(input *UpdateRoleAliasInput) (*UpdateRoleAliasOutput, error) {
24151	req, out := c.UpdateRoleAliasRequest(input)
24152	return out, req.Send()
24153}
24154
24155// UpdateRoleAliasWithContext is the same as UpdateRoleAlias with the addition of
24156// the ability to pass a context and additional request options.
24157//
24158// See UpdateRoleAlias for details on how to use this API operation.
24159//
24160// The context must be non-nil and will be used for request cancellation. If
24161// the context is nil a panic will occur. In the future the SDK may create
24162// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24163// for more information on using Contexts.
24164func (c *IoT) UpdateRoleAliasWithContext(ctx aws.Context, input *UpdateRoleAliasInput, opts ...request.Option) (*UpdateRoleAliasOutput, error) {
24165	req, out := c.UpdateRoleAliasRequest(input)
24166	req.SetContext(ctx)
24167	req.ApplyOptions(opts...)
24168	return out, req.Send()
24169}
24170
24171const opUpdateScheduledAudit = "UpdateScheduledAudit"
24172
24173// UpdateScheduledAuditRequest generates a "aws/request.Request" representing the
24174// client's request for the UpdateScheduledAudit operation. The "output" return
24175// value will be populated with the request's response once the request completes
24176// successfully.
24177//
24178// Use "Send" method on the returned Request to send the API call to the service.
24179// the "output" return value is not valid until after Send returns without error.
24180//
24181// See UpdateScheduledAudit for more information on using the UpdateScheduledAudit
24182// API call, and error handling.
24183//
24184// This method is useful when you want to inject custom logic or configuration
24185// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24186//
24187//
24188//    // Example sending a request using the UpdateScheduledAuditRequest method.
24189//    req, resp := client.UpdateScheduledAuditRequest(params)
24190//
24191//    err := req.Send()
24192//    if err == nil { // resp is now filled
24193//        fmt.Println(resp)
24194//    }
24195func (c *IoT) UpdateScheduledAuditRequest(input *UpdateScheduledAuditInput) (req *request.Request, output *UpdateScheduledAuditOutput) {
24196	op := &request.Operation{
24197		Name:       opUpdateScheduledAudit,
24198		HTTPMethod: "PATCH",
24199		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
24200	}
24201
24202	if input == nil {
24203		input = &UpdateScheduledAuditInput{}
24204	}
24205
24206	output = &UpdateScheduledAuditOutput{}
24207	req = c.newRequest(op, input, output)
24208	return
24209}
24210
24211// UpdateScheduledAudit API operation for AWS IoT.
24212//
24213// Updates a scheduled audit, including which checks are performed and how often
24214// the audit takes place.
24215//
24216// Requires permission to access the UpdateScheduledAudit (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24217// action.
24218//
24219// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24220// with awserr.Error's Code and Message methods to get detailed information about
24221// the error.
24222//
24223// See the AWS API reference guide for AWS IoT's
24224// API operation UpdateScheduledAudit for usage and error information.
24225//
24226// Returned Error Types:
24227//   * InvalidRequestException
24228//   The request is not valid.
24229//
24230//   * ResourceNotFoundException
24231//   The specified resource does not exist.
24232//
24233//   * ThrottlingException
24234//   The rate exceeds the limit.
24235//
24236//   * InternalFailureException
24237//   An unexpected error has occurred.
24238//
24239func (c *IoT) UpdateScheduledAudit(input *UpdateScheduledAuditInput) (*UpdateScheduledAuditOutput, error) {
24240	req, out := c.UpdateScheduledAuditRequest(input)
24241	return out, req.Send()
24242}
24243
24244// UpdateScheduledAuditWithContext is the same as UpdateScheduledAudit with the addition of
24245// the ability to pass a context and additional request options.
24246//
24247// See UpdateScheduledAudit for details on how to use this API operation.
24248//
24249// The context must be non-nil and will be used for request cancellation. If
24250// the context is nil a panic will occur. In the future the SDK may create
24251// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24252// for more information on using Contexts.
24253func (c *IoT) UpdateScheduledAuditWithContext(ctx aws.Context, input *UpdateScheduledAuditInput, opts ...request.Option) (*UpdateScheduledAuditOutput, error) {
24254	req, out := c.UpdateScheduledAuditRequest(input)
24255	req.SetContext(ctx)
24256	req.ApplyOptions(opts...)
24257	return out, req.Send()
24258}
24259
24260const opUpdateSecurityProfile = "UpdateSecurityProfile"
24261
24262// UpdateSecurityProfileRequest generates a "aws/request.Request" representing the
24263// client's request for the UpdateSecurityProfile operation. The "output" return
24264// value will be populated with the request's response once the request completes
24265// successfully.
24266//
24267// Use "Send" method on the returned Request to send the API call to the service.
24268// the "output" return value is not valid until after Send returns without error.
24269//
24270// See UpdateSecurityProfile for more information on using the UpdateSecurityProfile
24271// API call, and error handling.
24272//
24273// This method is useful when you want to inject custom logic or configuration
24274// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24275//
24276//
24277//    // Example sending a request using the UpdateSecurityProfileRequest method.
24278//    req, resp := client.UpdateSecurityProfileRequest(params)
24279//
24280//    err := req.Send()
24281//    if err == nil { // resp is now filled
24282//        fmt.Println(resp)
24283//    }
24284func (c *IoT) UpdateSecurityProfileRequest(input *UpdateSecurityProfileInput) (req *request.Request, output *UpdateSecurityProfileOutput) {
24285	op := &request.Operation{
24286		Name:       opUpdateSecurityProfile,
24287		HTTPMethod: "PATCH",
24288		HTTPPath:   "/security-profiles/{securityProfileName}",
24289	}
24290
24291	if input == nil {
24292		input = &UpdateSecurityProfileInput{}
24293	}
24294
24295	output = &UpdateSecurityProfileOutput{}
24296	req = c.newRequest(op, input, output)
24297	return
24298}
24299
24300// UpdateSecurityProfile API operation for AWS IoT.
24301//
24302// Updates a Device Defender security profile.
24303//
24304// Requires permission to access the UpdateSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24305// action.
24306//
24307// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24308// with awserr.Error's Code and Message methods to get detailed information about
24309// the error.
24310//
24311// See the AWS API reference guide for AWS IoT's
24312// API operation UpdateSecurityProfile for usage and error information.
24313//
24314// Returned Error Types:
24315//   * InvalidRequestException
24316//   The request is not valid.
24317//
24318//   * ResourceNotFoundException
24319//   The specified resource does not exist.
24320//
24321//   * VersionConflictException
24322//   An exception thrown when the version of an entity specified with the expectedVersion
24323//   parameter does not match the latest version in the system.
24324//
24325//   * ThrottlingException
24326//   The rate exceeds the limit.
24327//
24328//   * InternalFailureException
24329//   An unexpected error has occurred.
24330//
24331func (c *IoT) UpdateSecurityProfile(input *UpdateSecurityProfileInput) (*UpdateSecurityProfileOutput, error) {
24332	req, out := c.UpdateSecurityProfileRequest(input)
24333	return out, req.Send()
24334}
24335
24336// UpdateSecurityProfileWithContext is the same as UpdateSecurityProfile with the addition of
24337// the ability to pass a context and additional request options.
24338//
24339// See UpdateSecurityProfile for details on how to use this API operation.
24340//
24341// The context must be non-nil and will be used for request cancellation. If
24342// the context is nil a panic will occur. In the future the SDK may create
24343// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24344// for more information on using Contexts.
24345func (c *IoT) UpdateSecurityProfileWithContext(ctx aws.Context, input *UpdateSecurityProfileInput, opts ...request.Option) (*UpdateSecurityProfileOutput, error) {
24346	req, out := c.UpdateSecurityProfileRequest(input)
24347	req.SetContext(ctx)
24348	req.ApplyOptions(opts...)
24349	return out, req.Send()
24350}
24351
24352const opUpdateStream = "UpdateStream"
24353
24354// UpdateStreamRequest generates a "aws/request.Request" representing the
24355// client's request for the UpdateStream operation. The "output" return
24356// value will be populated with the request's response once the request completes
24357// successfully.
24358//
24359// Use "Send" method on the returned Request to send the API call to the service.
24360// the "output" return value is not valid until after Send returns without error.
24361//
24362// See UpdateStream for more information on using the UpdateStream
24363// API call, and error handling.
24364//
24365// This method is useful when you want to inject custom logic or configuration
24366// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24367//
24368//
24369//    // Example sending a request using the UpdateStreamRequest method.
24370//    req, resp := client.UpdateStreamRequest(params)
24371//
24372//    err := req.Send()
24373//    if err == nil { // resp is now filled
24374//        fmt.Println(resp)
24375//    }
24376func (c *IoT) UpdateStreamRequest(input *UpdateStreamInput) (req *request.Request, output *UpdateStreamOutput) {
24377	op := &request.Operation{
24378		Name:       opUpdateStream,
24379		HTTPMethod: "PUT",
24380		HTTPPath:   "/streams/{streamId}",
24381	}
24382
24383	if input == nil {
24384		input = &UpdateStreamInput{}
24385	}
24386
24387	output = &UpdateStreamOutput{}
24388	req = c.newRequest(op, input, output)
24389	return
24390}
24391
24392// UpdateStream API operation for AWS IoT.
24393//
24394// Updates an existing stream. The stream version will be incremented by one.
24395//
24396// Requires permission to access the UpdateStream (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24397// action.
24398//
24399// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24400// with awserr.Error's Code and Message methods to get detailed information about
24401// the error.
24402//
24403// See the AWS API reference guide for AWS IoT's
24404// API operation UpdateStream for usage and error information.
24405//
24406// Returned Error Types:
24407//   * InvalidRequestException
24408//   The request is not valid.
24409//
24410//   * ResourceNotFoundException
24411//   The specified resource does not exist.
24412//
24413//   * ThrottlingException
24414//   The rate exceeds the limit.
24415//
24416//   * UnauthorizedException
24417//   You are not authorized to perform this operation.
24418//
24419//   * ServiceUnavailableException
24420//   The service is temporarily unavailable.
24421//
24422//   * InternalFailureException
24423//   An unexpected error has occurred.
24424//
24425func (c *IoT) UpdateStream(input *UpdateStreamInput) (*UpdateStreamOutput, error) {
24426	req, out := c.UpdateStreamRequest(input)
24427	return out, req.Send()
24428}
24429
24430// UpdateStreamWithContext is the same as UpdateStream with the addition of
24431// the ability to pass a context and additional request options.
24432//
24433// See UpdateStream for details on how to use this API operation.
24434//
24435// The context must be non-nil and will be used for request cancellation. If
24436// the context is nil a panic will occur. In the future the SDK may create
24437// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24438// for more information on using Contexts.
24439func (c *IoT) UpdateStreamWithContext(ctx aws.Context, input *UpdateStreamInput, opts ...request.Option) (*UpdateStreamOutput, error) {
24440	req, out := c.UpdateStreamRequest(input)
24441	req.SetContext(ctx)
24442	req.ApplyOptions(opts...)
24443	return out, req.Send()
24444}
24445
24446const opUpdateThing = "UpdateThing"
24447
24448// UpdateThingRequest generates a "aws/request.Request" representing the
24449// client's request for the UpdateThing operation. The "output" return
24450// value will be populated with the request's response once the request completes
24451// successfully.
24452//
24453// Use "Send" method on the returned Request to send the API call to the service.
24454// the "output" return value is not valid until after Send returns without error.
24455//
24456// See UpdateThing for more information on using the UpdateThing
24457// API call, and error handling.
24458//
24459// This method is useful when you want to inject custom logic or configuration
24460// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24461//
24462//
24463//    // Example sending a request using the UpdateThingRequest method.
24464//    req, resp := client.UpdateThingRequest(params)
24465//
24466//    err := req.Send()
24467//    if err == nil { // resp is now filled
24468//        fmt.Println(resp)
24469//    }
24470func (c *IoT) UpdateThingRequest(input *UpdateThingInput) (req *request.Request, output *UpdateThingOutput) {
24471	op := &request.Operation{
24472		Name:       opUpdateThing,
24473		HTTPMethod: "PATCH",
24474		HTTPPath:   "/things/{thingName}",
24475	}
24476
24477	if input == nil {
24478		input = &UpdateThingInput{}
24479	}
24480
24481	output = &UpdateThingOutput{}
24482	req = c.newRequest(op, input, output)
24483	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
24484	return
24485}
24486
24487// UpdateThing API operation for AWS IoT.
24488//
24489// Updates the data for a thing.
24490//
24491// Requires permission to access the UpdateThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24492// action.
24493//
24494// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24495// with awserr.Error's Code and Message methods to get detailed information about
24496// the error.
24497//
24498// See the AWS API reference guide for AWS IoT's
24499// API operation UpdateThing for usage and error information.
24500//
24501// Returned Error Types:
24502//   * InvalidRequestException
24503//   The request is not valid.
24504//
24505//   * VersionConflictException
24506//   An exception thrown when the version of an entity specified with the expectedVersion
24507//   parameter does not match the latest version in the system.
24508//
24509//   * ThrottlingException
24510//   The rate exceeds the limit.
24511//
24512//   * UnauthorizedException
24513//   You are not authorized to perform this operation.
24514//
24515//   * ServiceUnavailableException
24516//   The service is temporarily unavailable.
24517//
24518//   * InternalFailureException
24519//   An unexpected error has occurred.
24520//
24521//   * ResourceNotFoundException
24522//   The specified resource does not exist.
24523//
24524func (c *IoT) UpdateThing(input *UpdateThingInput) (*UpdateThingOutput, error) {
24525	req, out := c.UpdateThingRequest(input)
24526	return out, req.Send()
24527}
24528
24529// UpdateThingWithContext is the same as UpdateThing with the addition of
24530// the ability to pass a context and additional request options.
24531//
24532// See UpdateThing for details on how to use this API operation.
24533//
24534// The context must be non-nil and will be used for request cancellation. If
24535// the context is nil a panic will occur. In the future the SDK may create
24536// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24537// for more information on using Contexts.
24538func (c *IoT) UpdateThingWithContext(ctx aws.Context, input *UpdateThingInput, opts ...request.Option) (*UpdateThingOutput, error) {
24539	req, out := c.UpdateThingRequest(input)
24540	req.SetContext(ctx)
24541	req.ApplyOptions(opts...)
24542	return out, req.Send()
24543}
24544
24545const opUpdateThingGroup = "UpdateThingGroup"
24546
24547// UpdateThingGroupRequest generates a "aws/request.Request" representing the
24548// client's request for the UpdateThingGroup operation. The "output" return
24549// value will be populated with the request's response once the request completes
24550// successfully.
24551//
24552// Use "Send" method on the returned Request to send the API call to the service.
24553// the "output" return value is not valid until after Send returns without error.
24554//
24555// See UpdateThingGroup for more information on using the UpdateThingGroup
24556// API call, and error handling.
24557//
24558// This method is useful when you want to inject custom logic or configuration
24559// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24560//
24561//
24562//    // Example sending a request using the UpdateThingGroupRequest method.
24563//    req, resp := client.UpdateThingGroupRequest(params)
24564//
24565//    err := req.Send()
24566//    if err == nil { // resp is now filled
24567//        fmt.Println(resp)
24568//    }
24569func (c *IoT) UpdateThingGroupRequest(input *UpdateThingGroupInput) (req *request.Request, output *UpdateThingGroupOutput) {
24570	op := &request.Operation{
24571		Name:       opUpdateThingGroup,
24572		HTTPMethod: "PATCH",
24573		HTTPPath:   "/thing-groups/{thingGroupName}",
24574	}
24575
24576	if input == nil {
24577		input = &UpdateThingGroupInput{}
24578	}
24579
24580	output = &UpdateThingGroupOutput{}
24581	req = c.newRequest(op, input, output)
24582	return
24583}
24584
24585// UpdateThingGroup API operation for AWS IoT.
24586//
24587// Update a thing group.
24588//
24589// Requires permission to access the UpdateThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24590// action.
24591//
24592// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24593// with awserr.Error's Code and Message methods to get detailed information about
24594// the error.
24595//
24596// See the AWS API reference guide for AWS IoT's
24597// API operation UpdateThingGroup for usage and error information.
24598//
24599// Returned Error Types:
24600//   * InvalidRequestException
24601//   The request is not valid.
24602//
24603//   * VersionConflictException
24604//   An exception thrown when the version of an entity specified with the expectedVersion
24605//   parameter does not match the latest version in the system.
24606//
24607//   * ThrottlingException
24608//   The rate exceeds the limit.
24609//
24610//   * InternalFailureException
24611//   An unexpected error has occurred.
24612//
24613//   * ResourceNotFoundException
24614//   The specified resource does not exist.
24615//
24616func (c *IoT) UpdateThingGroup(input *UpdateThingGroupInput) (*UpdateThingGroupOutput, error) {
24617	req, out := c.UpdateThingGroupRequest(input)
24618	return out, req.Send()
24619}
24620
24621// UpdateThingGroupWithContext is the same as UpdateThingGroup with the addition of
24622// the ability to pass a context and additional request options.
24623//
24624// See UpdateThingGroup for details on how to use this API operation.
24625//
24626// The context must be non-nil and will be used for request cancellation. If
24627// the context is nil a panic will occur. In the future the SDK may create
24628// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24629// for more information on using Contexts.
24630func (c *IoT) UpdateThingGroupWithContext(ctx aws.Context, input *UpdateThingGroupInput, opts ...request.Option) (*UpdateThingGroupOutput, error) {
24631	req, out := c.UpdateThingGroupRequest(input)
24632	req.SetContext(ctx)
24633	req.ApplyOptions(opts...)
24634	return out, req.Send()
24635}
24636
24637const opUpdateThingGroupsForThing = "UpdateThingGroupsForThing"
24638
24639// UpdateThingGroupsForThingRequest generates a "aws/request.Request" representing the
24640// client's request for the UpdateThingGroupsForThing operation. The "output" return
24641// value will be populated with the request's response once the request completes
24642// successfully.
24643//
24644// Use "Send" method on the returned Request to send the API call to the service.
24645// the "output" return value is not valid until after Send returns without error.
24646//
24647// See UpdateThingGroupsForThing for more information on using the UpdateThingGroupsForThing
24648// API call, and error handling.
24649//
24650// This method is useful when you want to inject custom logic or configuration
24651// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24652//
24653//
24654//    // Example sending a request using the UpdateThingGroupsForThingRequest method.
24655//    req, resp := client.UpdateThingGroupsForThingRequest(params)
24656//
24657//    err := req.Send()
24658//    if err == nil { // resp is now filled
24659//        fmt.Println(resp)
24660//    }
24661func (c *IoT) UpdateThingGroupsForThingRequest(input *UpdateThingGroupsForThingInput) (req *request.Request, output *UpdateThingGroupsForThingOutput) {
24662	op := &request.Operation{
24663		Name:       opUpdateThingGroupsForThing,
24664		HTTPMethod: "PUT",
24665		HTTPPath:   "/thing-groups/updateThingGroupsForThing",
24666	}
24667
24668	if input == nil {
24669		input = &UpdateThingGroupsForThingInput{}
24670	}
24671
24672	output = &UpdateThingGroupsForThingOutput{}
24673	req = c.newRequest(op, input, output)
24674	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
24675	return
24676}
24677
24678// UpdateThingGroupsForThing API operation for AWS IoT.
24679//
24680// Updates the groups to which the thing belongs.
24681//
24682// Requires permission to access the UpdateThingGroupsForThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24683// action.
24684//
24685// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24686// with awserr.Error's Code and Message methods to get detailed information about
24687// the error.
24688//
24689// See the AWS API reference guide for AWS IoT's
24690// API operation UpdateThingGroupsForThing for usage and error information.
24691//
24692// Returned Error Types:
24693//   * InvalidRequestException
24694//   The request is not valid.
24695//
24696//   * ThrottlingException
24697//   The rate exceeds the limit.
24698//
24699//   * InternalFailureException
24700//   An unexpected error has occurred.
24701//
24702//   * ResourceNotFoundException
24703//   The specified resource does not exist.
24704//
24705func (c *IoT) UpdateThingGroupsForThing(input *UpdateThingGroupsForThingInput) (*UpdateThingGroupsForThingOutput, error) {
24706	req, out := c.UpdateThingGroupsForThingRequest(input)
24707	return out, req.Send()
24708}
24709
24710// UpdateThingGroupsForThingWithContext is the same as UpdateThingGroupsForThing with the addition of
24711// the ability to pass a context and additional request options.
24712//
24713// See UpdateThingGroupsForThing for details on how to use this API operation.
24714//
24715// The context must be non-nil and will be used for request cancellation. If
24716// the context is nil a panic will occur. In the future the SDK may create
24717// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24718// for more information on using Contexts.
24719func (c *IoT) UpdateThingGroupsForThingWithContext(ctx aws.Context, input *UpdateThingGroupsForThingInput, opts ...request.Option) (*UpdateThingGroupsForThingOutput, error) {
24720	req, out := c.UpdateThingGroupsForThingRequest(input)
24721	req.SetContext(ctx)
24722	req.ApplyOptions(opts...)
24723	return out, req.Send()
24724}
24725
24726const opUpdateTopicRuleDestination = "UpdateTopicRuleDestination"
24727
24728// UpdateTopicRuleDestinationRequest generates a "aws/request.Request" representing the
24729// client's request for the UpdateTopicRuleDestination operation. The "output" return
24730// value will be populated with the request's response once the request completes
24731// successfully.
24732//
24733// Use "Send" method on the returned Request to send the API call to the service.
24734// the "output" return value is not valid until after Send returns without error.
24735//
24736// See UpdateTopicRuleDestination for more information on using the UpdateTopicRuleDestination
24737// API call, and error handling.
24738//
24739// This method is useful when you want to inject custom logic or configuration
24740// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24741//
24742//
24743//    // Example sending a request using the UpdateTopicRuleDestinationRequest method.
24744//    req, resp := client.UpdateTopicRuleDestinationRequest(params)
24745//
24746//    err := req.Send()
24747//    if err == nil { // resp is now filled
24748//        fmt.Println(resp)
24749//    }
24750func (c *IoT) UpdateTopicRuleDestinationRequest(input *UpdateTopicRuleDestinationInput) (req *request.Request, output *UpdateTopicRuleDestinationOutput) {
24751	op := &request.Operation{
24752		Name:       opUpdateTopicRuleDestination,
24753		HTTPMethod: "PATCH",
24754		HTTPPath:   "/destinations",
24755	}
24756
24757	if input == nil {
24758		input = &UpdateTopicRuleDestinationInput{}
24759	}
24760
24761	output = &UpdateTopicRuleDestinationOutput{}
24762	req = c.newRequest(op, input, output)
24763	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
24764	return
24765}
24766
24767// UpdateTopicRuleDestination API operation for AWS IoT.
24768//
24769// Updates a topic rule destination. You use this to change the status, endpoint
24770// URL, or confirmation URL of the destination.
24771//
24772// Requires permission to access the UpdateTopicRuleDestination (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24773// action.
24774//
24775// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24776// with awserr.Error's Code and Message methods to get detailed information about
24777// the error.
24778//
24779// See the AWS API reference guide for AWS IoT's
24780// API operation UpdateTopicRuleDestination for usage and error information.
24781//
24782// Returned Error Types:
24783//   * InternalException
24784//   An unexpected error has occurred.
24785//
24786//   * InvalidRequestException
24787//   The request is not valid.
24788//
24789//   * ServiceUnavailableException
24790//   The service is temporarily unavailable.
24791//
24792//   * UnauthorizedException
24793//   You are not authorized to perform this operation.
24794//
24795//   * ConflictingResourceUpdateException
24796//   A conflicting resource update exception. This exception is thrown when two
24797//   pending updates cause a conflict.
24798//
24799func (c *IoT) UpdateTopicRuleDestination(input *UpdateTopicRuleDestinationInput) (*UpdateTopicRuleDestinationOutput, error) {
24800	req, out := c.UpdateTopicRuleDestinationRequest(input)
24801	return out, req.Send()
24802}
24803
24804// UpdateTopicRuleDestinationWithContext is the same as UpdateTopicRuleDestination with the addition of
24805// the ability to pass a context and additional request options.
24806//
24807// See UpdateTopicRuleDestination for details on how to use this API operation.
24808//
24809// The context must be non-nil and will be used for request cancellation. If
24810// the context is nil a panic will occur. In the future the SDK may create
24811// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24812// for more information on using Contexts.
24813func (c *IoT) UpdateTopicRuleDestinationWithContext(ctx aws.Context, input *UpdateTopicRuleDestinationInput, opts ...request.Option) (*UpdateTopicRuleDestinationOutput, error) {
24814	req, out := c.UpdateTopicRuleDestinationRequest(input)
24815	req.SetContext(ctx)
24816	req.ApplyOptions(opts...)
24817	return out, req.Send()
24818}
24819
24820const opValidateSecurityProfileBehaviors = "ValidateSecurityProfileBehaviors"
24821
24822// ValidateSecurityProfileBehaviorsRequest generates a "aws/request.Request" representing the
24823// client's request for the ValidateSecurityProfileBehaviors operation. The "output" return
24824// value will be populated with the request's response once the request completes
24825// successfully.
24826//
24827// Use "Send" method on the returned Request to send the API call to the service.
24828// the "output" return value is not valid until after Send returns without error.
24829//
24830// See ValidateSecurityProfileBehaviors for more information on using the ValidateSecurityProfileBehaviors
24831// API call, and error handling.
24832//
24833// This method is useful when you want to inject custom logic or configuration
24834// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24835//
24836//
24837//    // Example sending a request using the ValidateSecurityProfileBehaviorsRequest method.
24838//    req, resp := client.ValidateSecurityProfileBehaviorsRequest(params)
24839//
24840//    err := req.Send()
24841//    if err == nil { // resp is now filled
24842//        fmt.Println(resp)
24843//    }
24844func (c *IoT) ValidateSecurityProfileBehaviorsRequest(input *ValidateSecurityProfileBehaviorsInput) (req *request.Request, output *ValidateSecurityProfileBehaviorsOutput) {
24845	op := &request.Operation{
24846		Name:       opValidateSecurityProfileBehaviors,
24847		HTTPMethod: "POST",
24848		HTTPPath:   "/security-profile-behaviors/validate",
24849	}
24850
24851	if input == nil {
24852		input = &ValidateSecurityProfileBehaviorsInput{}
24853	}
24854
24855	output = &ValidateSecurityProfileBehaviorsOutput{}
24856	req = c.newRequest(op, input, output)
24857	return
24858}
24859
24860// ValidateSecurityProfileBehaviors API operation for AWS IoT.
24861//
24862// Validates a Device Defender security profile behaviors specification.
24863//
24864// Requires permission to access the ValidateSecurityProfileBehaviors (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24865// action.
24866//
24867// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24868// with awserr.Error's Code and Message methods to get detailed information about
24869// the error.
24870//
24871// See the AWS API reference guide for AWS IoT's
24872// API operation ValidateSecurityProfileBehaviors for usage and error information.
24873//
24874// Returned Error Types:
24875//   * InvalidRequestException
24876//   The request is not valid.
24877//
24878//   * ThrottlingException
24879//   The rate exceeds the limit.
24880//
24881//   * InternalFailureException
24882//   An unexpected error has occurred.
24883//
24884func (c *IoT) ValidateSecurityProfileBehaviors(input *ValidateSecurityProfileBehaviorsInput) (*ValidateSecurityProfileBehaviorsOutput, error) {
24885	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
24886	return out, req.Send()
24887}
24888
24889// ValidateSecurityProfileBehaviorsWithContext is the same as ValidateSecurityProfileBehaviors with the addition of
24890// the ability to pass a context and additional request options.
24891//
24892// See ValidateSecurityProfileBehaviors for details on how to use this API operation.
24893//
24894// The context must be non-nil and will be used for request cancellation. If
24895// the context is nil a panic will occur. In the future the SDK may create
24896// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24897// for more information on using Contexts.
24898func (c *IoT) ValidateSecurityProfileBehaviorsWithContext(ctx aws.Context, input *ValidateSecurityProfileBehaviorsInput, opts ...request.Option) (*ValidateSecurityProfileBehaviorsOutput, error) {
24899	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
24900	req.SetContext(ctx)
24901	req.ApplyOptions(opts...)
24902	return out, req.Send()
24903}
24904
24905// The criteria that determine when and how a job abort takes place.
24906type AbortConfig struct {
24907	_ struct{} `type:"structure"`
24908
24909	// The list of criteria that determine when and how to abort the job.
24910	//
24911	// CriteriaList is a required field
24912	CriteriaList []*AbortCriteria `locationName:"criteriaList" min:"1" type:"list" required:"true"`
24913}
24914
24915// String returns the string representation
24916func (s AbortConfig) String() string {
24917	return awsutil.Prettify(s)
24918}
24919
24920// GoString returns the string representation
24921func (s AbortConfig) GoString() string {
24922	return s.String()
24923}
24924
24925// Validate inspects the fields of the type to determine if they are valid.
24926func (s *AbortConfig) Validate() error {
24927	invalidParams := request.ErrInvalidParams{Context: "AbortConfig"}
24928	if s.CriteriaList == nil {
24929		invalidParams.Add(request.NewErrParamRequired("CriteriaList"))
24930	}
24931	if s.CriteriaList != nil && len(s.CriteriaList) < 1 {
24932		invalidParams.Add(request.NewErrParamMinLen("CriteriaList", 1))
24933	}
24934	if s.CriteriaList != nil {
24935		for i, v := range s.CriteriaList {
24936			if v == nil {
24937				continue
24938			}
24939			if err := v.Validate(); err != nil {
24940				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CriteriaList", i), err.(request.ErrInvalidParams))
24941			}
24942		}
24943	}
24944
24945	if invalidParams.Len() > 0 {
24946		return invalidParams
24947	}
24948	return nil
24949}
24950
24951// SetCriteriaList sets the CriteriaList field's value.
24952func (s *AbortConfig) SetCriteriaList(v []*AbortCriteria) *AbortConfig {
24953	s.CriteriaList = v
24954	return s
24955}
24956
24957// The criteria that determine when and how a job abort takes place.
24958type AbortCriteria struct {
24959	_ struct{} `type:"structure"`
24960
24961	// The type of job action to take to initiate the job abort.
24962	//
24963	// Action is a required field
24964	Action *string `locationName:"action" type:"string" required:"true" enum:"AbortAction"`
24965
24966	// The type of job execution failures that can initiate a job abort.
24967	//
24968	// FailureType is a required field
24969	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"JobExecutionFailureType"`
24970
24971	// The minimum number of things which must receive job execution notifications
24972	// before the job can be aborted.
24973	//
24974	// MinNumberOfExecutedThings is a required field
24975	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
24976
24977	// The minimum percentage of job execution failures that must occur to initiate
24978	// the job abort.
24979	//
24980	// Amazon Web Services IoT Core supports up to two digits after the decimal
24981	// (for example, 10.9 and 10.99, but not 10.999).
24982	//
24983	// ThresholdPercentage is a required field
24984	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
24985}
24986
24987// String returns the string representation
24988func (s AbortCriteria) String() string {
24989	return awsutil.Prettify(s)
24990}
24991
24992// GoString returns the string representation
24993func (s AbortCriteria) GoString() string {
24994	return s.String()
24995}
24996
24997// Validate inspects the fields of the type to determine if they are valid.
24998func (s *AbortCriteria) Validate() error {
24999	invalidParams := request.ErrInvalidParams{Context: "AbortCriteria"}
25000	if s.Action == nil {
25001		invalidParams.Add(request.NewErrParamRequired("Action"))
25002	}
25003	if s.FailureType == nil {
25004		invalidParams.Add(request.NewErrParamRequired("FailureType"))
25005	}
25006	if s.MinNumberOfExecutedThings == nil {
25007		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
25008	}
25009	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
25010		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
25011	}
25012	if s.ThresholdPercentage == nil {
25013		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
25014	}
25015
25016	if invalidParams.Len() > 0 {
25017		return invalidParams
25018	}
25019	return nil
25020}
25021
25022// SetAction sets the Action field's value.
25023func (s *AbortCriteria) SetAction(v string) *AbortCriteria {
25024	s.Action = &v
25025	return s
25026}
25027
25028// SetFailureType sets the FailureType field's value.
25029func (s *AbortCriteria) SetFailureType(v string) *AbortCriteria {
25030	s.FailureType = &v
25031	return s
25032}
25033
25034// SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
25035func (s *AbortCriteria) SetMinNumberOfExecutedThings(v int64) *AbortCriteria {
25036	s.MinNumberOfExecutedThings = &v
25037	return s
25038}
25039
25040// SetThresholdPercentage sets the ThresholdPercentage field's value.
25041func (s *AbortCriteria) SetThresholdPercentage(v float64) *AbortCriteria {
25042	s.ThresholdPercentage = &v
25043	return s
25044}
25045
25046// The input for the AcceptCertificateTransfer operation.
25047type AcceptCertificateTransferInput struct {
25048	_ struct{} `type:"structure"`
25049
25050	// The ID of the certificate. (The last part of the certificate ARN contains
25051	// the certificate ID.)
25052	//
25053	// CertificateId is a required field
25054	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
25055
25056	// Specifies whether the certificate is active.
25057	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
25058}
25059
25060// String returns the string representation
25061func (s AcceptCertificateTransferInput) String() string {
25062	return awsutil.Prettify(s)
25063}
25064
25065// GoString returns the string representation
25066func (s AcceptCertificateTransferInput) GoString() string {
25067	return s.String()
25068}
25069
25070// Validate inspects the fields of the type to determine if they are valid.
25071func (s *AcceptCertificateTransferInput) Validate() error {
25072	invalidParams := request.ErrInvalidParams{Context: "AcceptCertificateTransferInput"}
25073	if s.CertificateId == nil {
25074		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
25075	}
25076	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
25077		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
25078	}
25079
25080	if invalidParams.Len() > 0 {
25081		return invalidParams
25082	}
25083	return nil
25084}
25085
25086// SetCertificateId sets the CertificateId field's value.
25087func (s *AcceptCertificateTransferInput) SetCertificateId(v string) *AcceptCertificateTransferInput {
25088	s.CertificateId = &v
25089	return s
25090}
25091
25092// SetSetAsActive sets the SetAsActive field's value.
25093func (s *AcceptCertificateTransferInput) SetSetAsActive(v bool) *AcceptCertificateTransferInput {
25094	s.SetAsActive = &v
25095	return s
25096}
25097
25098type AcceptCertificateTransferOutput struct {
25099	_ struct{} `type:"structure"`
25100}
25101
25102// String returns the string representation
25103func (s AcceptCertificateTransferOutput) String() string {
25104	return awsutil.Prettify(s)
25105}
25106
25107// GoString returns the string representation
25108func (s AcceptCertificateTransferOutput) GoString() string {
25109	return s.String()
25110}
25111
25112// Describes the actions associated with a rule.
25113type Action struct {
25114	_ struct{} `type:"structure"`
25115
25116	// Change the state of a CloudWatch alarm.
25117	CloudwatchAlarm *CloudwatchAlarmAction `locationName:"cloudwatchAlarm" type:"structure"`
25118
25119	// Send data to CloudWatch Logs.
25120	CloudwatchLogs *CloudwatchLogsAction `locationName:"cloudwatchLogs" type:"structure"`
25121
25122	// Capture a CloudWatch metric.
25123	CloudwatchMetric *CloudwatchMetricAction `locationName:"cloudwatchMetric" type:"structure"`
25124
25125	// Write to a DynamoDB table.
25126	DynamoDB *DynamoDBAction `locationName:"dynamoDB" type:"structure"`
25127
25128	// Write to a DynamoDB table. This is a new version of the DynamoDB action.
25129	// It allows you to write each attribute in an MQTT message payload into a separate
25130	// DynamoDB column.
25131	DynamoDBv2 *DynamoDBv2Action `locationName:"dynamoDBv2" type:"structure"`
25132
25133	// Write data to an Amazon Elasticsearch Service domain.
25134	Elasticsearch *ElasticsearchAction `locationName:"elasticsearch" type:"structure"`
25135
25136	// Write to an Amazon Kinesis Firehose stream.
25137	Firehose *FirehoseAction `locationName:"firehose" type:"structure"`
25138
25139	// Send data to an HTTPS endpoint.
25140	Http *HttpAction `locationName:"http" type:"structure"`
25141
25142	// Sends message data to an IoT Analytics channel.
25143	IotAnalytics *IotAnalyticsAction `locationName:"iotAnalytics" type:"structure"`
25144
25145	// Sends an input to an IoT Events detector.
25146	IotEvents *IotEventsAction `locationName:"iotEvents" type:"structure"`
25147
25148	// Sends data from the MQTT message that triggered the rule to IoT SiteWise
25149	// asset properties.
25150	IotSiteWise *IotSiteWiseAction `locationName:"iotSiteWise" type:"structure"`
25151
25152	// Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK)
25153	// or self-managed Apache Kafka cluster.
25154	Kafka *KafkaAction `locationName:"kafka" type:"structure"`
25155
25156	// Write data to an Amazon Kinesis stream.
25157	Kinesis *KinesisAction `locationName:"kinesis" type:"structure"`
25158
25159	// Invoke a Lambda function.
25160	Lambda *LambdaAction `locationName:"lambda" type:"structure"`
25161
25162	// Publish to another MQTT topic.
25163	Republish *RepublishAction `locationName:"republish" type:"structure"`
25164
25165	// Write to an Amazon S3 bucket.
25166	S3 *S3Action `locationName:"s3" type:"structure"`
25167
25168	// Send a message to a Salesforce IoT Cloud Input Stream.
25169	Salesforce *SalesforceAction `locationName:"salesforce" type:"structure"`
25170
25171	// Publish to an Amazon SNS topic.
25172	Sns *SnsAction `locationName:"sns" type:"structure"`
25173
25174	// Publish to an Amazon SQS queue.
25175	Sqs *SqsAction `locationName:"sqs" type:"structure"`
25176
25177	// Starts execution of a Step Functions state machine.
25178	StepFunctions *StepFunctionsAction `locationName:"stepFunctions" type:"structure"`
25179
25180	// The Timestream rule action writes attributes (measures) from an MQTT message
25181	// into an Amazon Timestream table. For more information, see the Timestream
25182	// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
25183	// topic rule action documentation.
25184	Timestream *TimestreamAction `locationName:"timestream" type:"structure"`
25185}
25186
25187// String returns the string representation
25188func (s Action) String() string {
25189	return awsutil.Prettify(s)
25190}
25191
25192// GoString returns the string representation
25193func (s Action) GoString() string {
25194	return s.String()
25195}
25196
25197// Validate inspects the fields of the type to determine if they are valid.
25198func (s *Action) Validate() error {
25199	invalidParams := request.ErrInvalidParams{Context: "Action"}
25200	if s.CloudwatchAlarm != nil {
25201		if err := s.CloudwatchAlarm.Validate(); err != nil {
25202			invalidParams.AddNested("CloudwatchAlarm", err.(request.ErrInvalidParams))
25203		}
25204	}
25205	if s.CloudwatchLogs != nil {
25206		if err := s.CloudwatchLogs.Validate(); err != nil {
25207			invalidParams.AddNested("CloudwatchLogs", err.(request.ErrInvalidParams))
25208		}
25209	}
25210	if s.CloudwatchMetric != nil {
25211		if err := s.CloudwatchMetric.Validate(); err != nil {
25212			invalidParams.AddNested("CloudwatchMetric", err.(request.ErrInvalidParams))
25213		}
25214	}
25215	if s.DynamoDB != nil {
25216		if err := s.DynamoDB.Validate(); err != nil {
25217			invalidParams.AddNested("DynamoDB", err.(request.ErrInvalidParams))
25218		}
25219	}
25220	if s.DynamoDBv2 != nil {
25221		if err := s.DynamoDBv2.Validate(); err != nil {
25222			invalidParams.AddNested("DynamoDBv2", err.(request.ErrInvalidParams))
25223		}
25224	}
25225	if s.Elasticsearch != nil {
25226		if err := s.Elasticsearch.Validate(); err != nil {
25227			invalidParams.AddNested("Elasticsearch", err.(request.ErrInvalidParams))
25228		}
25229	}
25230	if s.Firehose != nil {
25231		if err := s.Firehose.Validate(); err != nil {
25232			invalidParams.AddNested("Firehose", err.(request.ErrInvalidParams))
25233		}
25234	}
25235	if s.Http != nil {
25236		if err := s.Http.Validate(); err != nil {
25237			invalidParams.AddNested("Http", err.(request.ErrInvalidParams))
25238		}
25239	}
25240	if s.IotEvents != nil {
25241		if err := s.IotEvents.Validate(); err != nil {
25242			invalidParams.AddNested("IotEvents", err.(request.ErrInvalidParams))
25243		}
25244	}
25245	if s.IotSiteWise != nil {
25246		if err := s.IotSiteWise.Validate(); err != nil {
25247			invalidParams.AddNested("IotSiteWise", err.(request.ErrInvalidParams))
25248		}
25249	}
25250	if s.Kafka != nil {
25251		if err := s.Kafka.Validate(); err != nil {
25252			invalidParams.AddNested("Kafka", err.(request.ErrInvalidParams))
25253		}
25254	}
25255	if s.Kinesis != nil {
25256		if err := s.Kinesis.Validate(); err != nil {
25257			invalidParams.AddNested("Kinesis", err.(request.ErrInvalidParams))
25258		}
25259	}
25260	if s.Lambda != nil {
25261		if err := s.Lambda.Validate(); err != nil {
25262			invalidParams.AddNested("Lambda", err.(request.ErrInvalidParams))
25263		}
25264	}
25265	if s.Republish != nil {
25266		if err := s.Republish.Validate(); err != nil {
25267			invalidParams.AddNested("Republish", err.(request.ErrInvalidParams))
25268		}
25269	}
25270	if s.S3 != nil {
25271		if err := s.S3.Validate(); err != nil {
25272			invalidParams.AddNested("S3", err.(request.ErrInvalidParams))
25273		}
25274	}
25275	if s.Salesforce != nil {
25276		if err := s.Salesforce.Validate(); err != nil {
25277			invalidParams.AddNested("Salesforce", err.(request.ErrInvalidParams))
25278		}
25279	}
25280	if s.Sns != nil {
25281		if err := s.Sns.Validate(); err != nil {
25282			invalidParams.AddNested("Sns", err.(request.ErrInvalidParams))
25283		}
25284	}
25285	if s.Sqs != nil {
25286		if err := s.Sqs.Validate(); err != nil {
25287			invalidParams.AddNested("Sqs", err.(request.ErrInvalidParams))
25288		}
25289	}
25290	if s.StepFunctions != nil {
25291		if err := s.StepFunctions.Validate(); err != nil {
25292			invalidParams.AddNested("StepFunctions", err.(request.ErrInvalidParams))
25293		}
25294	}
25295	if s.Timestream != nil {
25296		if err := s.Timestream.Validate(); err != nil {
25297			invalidParams.AddNested("Timestream", err.(request.ErrInvalidParams))
25298		}
25299	}
25300
25301	if invalidParams.Len() > 0 {
25302		return invalidParams
25303	}
25304	return nil
25305}
25306
25307// SetCloudwatchAlarm sets the CloudwatchAlarm field's value.
25308func (s *Action) SetCloudwatchAlarm(v *CloudwatchAlarmAction) *Action {
25309	s.CloudwatchAlarm = v
25310	return s
25311}
25312
25313// SetCloudwatchLogs sets the CloudwatchLogs field's value.
25314func (s *Action) SetCloudwatchLogs(v *CloudwatchLogsAction) *Action {
25315	s.CloudwatchLogs = v
25316	return s
25317}
25318
25319// SetCloudwatchMetric sets the CloudwatchMetric field's value.
25320func (s *Action) SetCloudwatchMetric(v *CloudwatchMetricAction) *Action {
25321	s.CloudwatchMetric = v
25322	return s
25323}
25324
25325// SetDynamoDB sets the DynamoDB field's value.
25326func (s *Action) SetDynamoDB(v *DynamoDBAction) *Action {
25327	s.DynamoDB = v
25328	return s
25329}
25330
25331// SetDynamoDBv2 sets the DynamoDBv2 field's value.
25332func (s *Action) SetDynamoDBv2(v *DynamoDBv2Action) *Action {
25333	s.DynamoDBv2 = v
25334	return s
25335}
25336
25337// SetElasticsearch sets the Elasticsearch field's value.
25338func (s *Action) SetElasticsearch(v *ElasticsearchAction) *Action {
25339	s.Elasticsearch = v
25340	return s
25341}
25342
25343// SetFirehose sets the Firehose field's value.
25344func (s *Action) SetFirehose(v *FirehoseAction) *Action {
25345	s.Firehose = v
25346	return s
25347}
25348
25349// SetHttp sets the Http field's value.
25350func (s *Action) SetHttp(v *HttpAction) *Action {
25351	s.Http = v
25352	return s
25353}
25354
25355// SetIotAnalytics sets the IotAnalytics field's value.
25356func (s *Action) SetIotAnalytics(v *IotAnalyticsAction) *Action {
25357	s.IotAnalytics = v
25358	return s
25359}
25360
25361// SetIotEvents sets the IotEvents field's value.
25362func (s *Action) SetIotEvents(v *IotEventsAction) *Action {
25363	s.IotEvents = v
25364	return s
25365}
25366
25367// SetIotSiteWise sets the IotSiteWise field's value.
25368func (s *Action) SetIotSiteWise(v *IotSiteWiseAction) *Action {
25369	s.IotSiteWise = v
25370	return s
25371}
25372
25373// SetKafka sets the Kafka field's value.
25374func (s *Action) SetKafka(v *KafkaAction) *Action {
25375	s.Kafka = v
25376	return s
25377}
25378
25379// SetKinesis sets the Kinesis field's value.
25380func (s *Action) SetKinesis(v *KinesisAction) *Action {
25381	s.Kinesis = v
25382	return s
25383}
25384
25385// SetLambda sets the Lambda field's value.
25386func (s *Action) SetLambda(v *LambdaAction) *Action {
25387	s.Lambda = v
25388	return s
25389}
25390
25391// SetRepublish sets the Republish field's value.
25392func (s *Action) SetRepublish(v *RepublishAction) *Action {
25393	s.Republish = v
25394	return s
25395}
25396
25397// SetS3 sets the S3 field's value.
25398func (s *Action) SetS3(v *S3Action) *Action {
25399	s.S3 = v
25400	return s
25401}
25402
25403// SetSalesforce sets the Salesforce field's value.
25404func (s *Action) SetSalesforce(v *SalesforceAction) *Action {
25405	s.Salesforce = v
25406	return s
25407}
25408
25409// SetSns sets the Sns field's value.
25410func (s *Action) SetSns(v *SnsAction) *Action {
25411	s.Sns = v
25412	return s
25413}
25414
25415// SetSqs sets the Sqs field's value.
25416func (s *Action) SetSqs(v *SqsAction) *Action {
25417	s.Sqs = v
25418	return s
25419}
25420
25421// SetStepFunctions sets the StepFunctions field's value.
25422func (s *Action) SetStepFunctions(v *StepFunctionsAction) *Action {
25423	s.StepFunctions = v
25424	return s
25425}
25426
25427// SetTimestream sets the Timestream field's value.
25428func (s *Action) SetTimestream(v *TimestreamAction) *Action {
25429	s.Timestream = v
25430	return s
25431}
25432
25433// Information about an active Device Defender security profile behavior violation.
25434type ActiveViolation struct {
25435	_ struct{} `type:"structure"`
25436
25437	// The behavior that is being violated.
25438	Behavior *Behavior `locationName:"behavior" type:"structure"`
25439
25440	// The time the most recent violation occurred.
25441	LastViolationTime *time.Time `locationName:"lastViolationTime" type:"timestamp"`
25442
25443	// The value of the metric (the measurement) that caused the most recent violation.
25444	LastViolationValue *MetricValue `locationName:"lastViolationValue" type:"structure"`
25445
25446	// The security profile with the behavior is in violation.
25447	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
25448
25449	// The name of the thing responsible for the active violation.
25450	ThingName *string `locationName:"thingName" min:"1" type:"string"`
25451
25452	// The details of a violation event.
25453	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo `locationName:"violationEventAdditionalInfo" type:"structure"`
25454
25455	// The ID of the active violation.
25456	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
25457
25458	// The time the violation started.
25459	ViolationStartTime *time.Time `locationName:"violationStartTime" type:"timestamp"`
25460}
25461
25462// String returns the string representation
25463func (s ActiveViolation) String() string {
25464	return awsutil.Prettify(s)
25465}
25466
25467// GoString returns the string representation
25468func (s ActiveViolation) GoString() string {
25469	return s.String()
25470}
25471
25472// SetBehavior sets the Behavior field's value.
25473func (s *ActiveViolation) SetBehavior(v *Behavior) *ActiveViolation {
25474	s.Behavior = v
25475	return s
25476}
25477
25478// SetLastViolationTime sets the LastViolationTime field's value.
25479func (s *ActiveViolation) SetLastViolationTime(v time.Time) *ActiveViolation {
25480	s.LastViolationTime = &v
25481	return s
25482}
25483
25484// SetLastViolationValue sets the LastViolationValue field's value.
25485func (s *ActiveViolation) SetLastViolationValue(v *MetricValue) *ActiveViolation {
25486	s.LastViolationValue = v
25487	return s
25488}
25489
25490// SetSecurityProfileName sets the SecurityProfileName field's value.
25491func (s *ActiveViolation) SetSecurityProfileName(v string) *ActiveViolation {
25492	s.SecurityProfileName = &v
25493	return s
25494}
25495
25496// SetThingName sets the ThingName field's value.
25497func (s *ActiveViolation) SetThingName(v string) *ActiveViolation {
25498	s.ThingName = &v
25499	return s
25500}
25501
25502// SetViolationEventAdditionalInfo sets the ViolationEventAdditionalInfo field's value.
25503func (s *ActiveViolation) SetViolationEventAdditionalInfo(v *ViolationEventAdditionalInfo) *ActiveViolation {
25504	s.ViolationEventAdditionalInfo = v
25505	return s
25506}
25507
25508// SetViolationId sets the ViolationId field's value.
25509func (s *ActiveViolation) SetViolationId(v string) *ActiveViolation {
25510	s.ViolationId = &v
25511	return s
25512}
25513
25514// SetViolationStartTime sets the ViolationStartTime field's value.
25515func (s *ActiveViolation) SetViolationStartTime(v time.Time) *ActiveViolation {
25516	s.ViolationStartTime = &v
25517	return s
25518}
25519
25520type AddThingToBillingGroupInput struct {
25521	_ struct{} `type:"structure"`
25522
25523	// The ARN of the billing group.
25524	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
25525
25526	// The name of the billing group.
25527	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
25528
25529	// The ARN of the thing to be added to the billing group.
25530	ThingArn *string `locationName:"thingArn" type:"string"`
25531
25532	// The name of the thing to be added to the billing group.
25533	ThingName *string `locationName:"thingName" min:"1" type:"string"`
25534}
25535
25536// String returns the string representation
25537func (s AddThingToBillingGroupInput) String() string {
25538	return awsutil.Prettify(s)
25539}
25540
25541// GoString returns the string representation
25542func (s AddThingToBillingGroupInput) GoString() string {
25543	return s.String()
25544}
25545
25546// Validate inspects the fields of the type to determine if they are valid.
25547func (s *AddThingToBillingGroupInput) Validate() error {
25548	invalidParams := request.ErrInvalidParams{Context: "AddThingToBillingGroupInput"}
25549	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
25550		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
25551	}
25552	if s.ThingName != nil && len(*s.ThingName) < 1 {
25553		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
25554	}
25555
25556	if invalidParams.Len() > 0 {
25557		return invalidParams
25558	}
25559	return nil
25560}
25561
25562// SetBillingGroupArn sets the BillingGroupArn field's value.
25563func (s *AddThingToBillingGroupInput) SetBillingGroupArn(v string) *AddThingToBillingGroupInput {
25564	s.BillingGroupArn = &v
25565	return s
25566}
25567
25568// SetBillingGroupName sets the BillingGroupName field's value.
25569func (s *AddThingToBillingGroupInput) SetBillingGroupName(v string) *AddThingToBillingGroupInput {
25570	s.BillingGroupName = &v
25571	return s
25572}
25573
25574// SetThingArn sets the ThingArn field's value.
25575func (s *AddThingToBillingGroupInput) SetThingArn(v string) *AddThingToBillingGroupInput {
25576	s.ThingArn = &v
25577	return s
25578}
25579
25580// SetThingName sets the ThingName field's value.
25581func (s *AddThingToBillingGroupInput) SetThingName(v string) *AddThingToBillingGroupInput {
25582	s.ThingName = &v
25583	return s
25584}
25585
25586type AddThingToBillingGroupOutput struct {
25587	_ struct{} `type:"structure"`
25588}
25589
25590// String returns the string representation
25591func (s AddThingToBillingGroupOutput) String() string {
25592	return awsutil.Prettify(s)
25593}
25594
25595// GoString returns the string representation
25596func (s AddThingToBillingGroupOutput) GoString() string {
25597	return s.String()
25598}
25599
25600type AddThingToThingGroupInput struct {
25601	_ struct{} `type:"structure"`
25602
25603	// Override dynamic thing groups with static thing groups when 10-group limit
25604	// is reached. If a thing belongs to 10 thing groups, and one or more of those
25605	// groups are dynamic thing groups, adding a thing to a static group removes
25606	// the thing from the last dynamic group.
25607	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
25608
25609	// The ARN of the thing to add to a group.
25610	ThingArn *string `locationName:"thingArn" type:"string"`
25611
25612	// The ARN of the group to which you are adding a thing.
25613	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
25614
25615	// The name of the group to which you are adding a thing.
25616	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
25617
25618	// The name of the thing to add to a group.
25619	ThingName *string `locationName:"thingName" min:"1" type:"string"`
25620}
25621
25622// String returns the string representation
25623func (s AddThingToThingGroupInput) String() string {
25624	return awsutil.Prettify(s)
25625}
25626
25627// GoString returns the string representation
25628func (s AddThingToThingGroupInput) GoString() string {
25629	return s.String()
25630}
25631
25632// Validate inspects the fields of the type to determine if they are valid.
25633func (s *AddThingToThingGroupInput) Validate() error {
25634	invalidParams := request.ErrInvalidParams{Context: "AddThingToThingGroupInput"}
25635	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
25636		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
25637	}
25638	if s.ThingName != nil && len(*s.ThingName) < 1 {
25639		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
25640	}
25641
25642	if invalidParams.Len() > 0 {
25643		return invalidParams
25644	}
25645	return nil
25646}
25647
25648// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
25649func (s *AddThingToThingGroupInput) SetOverrideDynamicGroups(v bool) *AddThingToThingGroupInput {
25650	s.OverrideDynamicGroups = &v
25651	return s
25652}
25653
25654// SetThingArn sets the ThingArn field's value.
25655func (s *AddThingToThingGroupInput) SetThingArn(v string) *AddThingToThingGroupInput {
25656	s.ThingArn = &v
25657	return s
25658}
25659
25660// SetThingGroupArn sets the ThingGroupArn field's value.
25661func (s *AddThingToThingGroupInput) SetThingGroupArn(v string) *AddThingToThingGroupInput {
25662	s.ThingGroupArn = &v
25663	return s
25664}
25665
25666// SetThingGroupName sets the ThingGroupName field's value.
25667func (s *AddThingToThingGroupInput) SetThingGroupName(v string) *AddThingToThingGroupInput {
25668	s.ThingGroupName = &v
25669	return s
25670}
25671
25672// SetThingName sets the ThingName field's value.
25673func (s *AddThingToThingGroupInput) SetThingName(v string) *AddThingToThingGroupInput {
25674	s.ThingName = &v
25675	return s
25676}
25677
25678type AddThingToThingGroupOutput struct {
25679	_ struct{} `type:"structure"`
25680}
25681
25682// String returns the string representation
25683func (s AddThingToThingGroupOutput) String() string {
25684	return awsutil.Prettify(s)
25685}
25686
25687// GoString returns the string representation
25688func (s AddThingToThingGroupOutput) GoString() string {
25689	return s.String()
25690}
25691
25692// Parameters used when defining a mitigation action that move a set of things
25693// to a thing group.
25694type AddThingsToThingGroupParams struct {
25695	_ struct{} `type:"structure"`
25696
25697	// Specifies if this mitigation action can move the things that triggered the
25698	// mitigation action even if they are part of one or more dynamic thing groups.
25699	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
25700
25701	// The list of groups to which you want to add the things that triggered the
25702	// mitigation action. You can add a thing to a maximum of 10 groups, but you
25703	// can't add a thing to more than one group in the same hierarchy.
25704	//
25705	// ThingGroupNames is a required field
25706	ThingGroupNames []*string `locationName:"thingGroupNames" min:"1" type:"list" required:"true"`
25707}
25708
25709// String returns the string representation
25710func (s AddThingsToThingGroupParams) String() string {
25711	return awsutil.Prettify(s)
25712}
25713
25714// GoString returns the string representation
25715func (s AddThingsToThingGroupParams) GoString() string {
25716	return s.String()
25717}
25718
25719// Validate inspects the fields of the type to determine if they are valid.
25720func (s *AddThingsToThingGroupParams) Validate() error {
25721	invalidParams := request.ErrInvalidParams{Context: "AddThingsToThingGroupParams"}
25722	if s.ThingGroupNames == nil {
25723		invalidParams.Add(request.NewErrParamRequired("ThingGroupNames"))
25724	}
25725	if s.ThingGroupNames != nil && len(s.ThingGroupNames) < 1 {
25726		invalidParams.Add(request.NewErrParamMinLen("ThingGroupNames", 1))
25727	}
25728
25729	if invalidParams.Len() > 0 {
25730		return invalidParams
25731	}
25732	return nil
25733}
25734
25735// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
25736func (s *AddThingsToThingGroupParams) SetOverrideDynamicGroups(v bool) *AddThingsToThingGroupParams {
25737	s.OverrideDynamicGroups = &v
25738	return s
25739}
25740
25741// SetThingGroupNames sets the ThingGroupNames field's value.
25742func (s *AddThingsToThingGroupParams) SetThingGroupNames(v []*string) *AddThingsToThingGroupParams {
25743	s.ThingGroupNames = v
25744	return s
25745}
25746
25747// The type of aggregation queries.
25748type AggregationType struct {
25749	_ struct{} `type:"structure"`
25750
25751	// The name of the aggregation type.
25752	//
25753	// Name is a required field
25754	Name *string `locationName:"name" type:"string" required:"true" enum:"AggregationTypeName"`
25755
25756	// A list of the values of aggregation types.
25757	Values []*string `locationName:"values" type:"list"`
25758}
25759
25760// String returns the string representation
25761func (s AggregationType) String() string {
25762	return awsutil.Prettify(s)
25763}
25764
25765// GoString returns the string representation
25766func (s AggregationType) GoString() string {
25767	return s.String()
25768}
25769
25770// Validate inspects the fields of the type to determine if they are valid.
25771func (s *AggregationType) Validate() error {
25772	invalidParams := request.ErrInvalidParams{Context: "AggregationType"}
25773	if s.Name == nil {
25774		invalidParams.Add(request.NewErrParamRequired("Name"))
25775	}
25776
25777	if invalidParams.Len() > 0 {
25778		return invalidParams
25779	}
25780	return nil
25781}
25782
25783// SetName sets the Name field's value.
25784func (s *AggregationType) SetName(v string) *AggregationType {
25785	s.Name = &v
25786	return s
25787}
25788
25789// SetValues sets the Values field's value.
25790func (s *AggregationType) SetValues(v []*string) *AggregationType {
25791	s.Values = v
25792	return s
25793}
25794
25795// A structure containing the alert target ARN and the role ARN.
25796type AlertTarget struct {
25797	_ struct{} `type:"structure"`
25798
25799	// The Amazon Resource Name (ARN) of the notification target to which alerts
25800	// are sent.
25801	//
25802	// AlertTargetArn is a required field
25803	AlertTargetArn *string `locationName:"alertTargetArn" type:"string" required:"true"`
25804
25805	// The ARN of the role that grants permission to send alerts to the notification
25806	// target.
25807	//
25808	// RoleArn is a required field
25809	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
25810}
25811
25812// String returns the string representation
25813func (s AlertTarget) String() string {
25814	return awsutil.Prettify(s)
25815}
25816
25817// GoString returns the string representation
25818func (s AlertTarget) GoString() string {
25819	return s.String()
25820}
25821
25822// Validate inspects the fields of the type to determine if they are valid.
25823func (s *AlertTarget) Validate() error {
25824	invalidParams := request.ErrInvalidParams{Context: "AlertTarget"}
25825	if s.AlertTargetArn == nil {
25826		invalidParams.Add(request.NewErrParamRequired("AlertTargetArn"))
25827	}
25828	if s.RoleArn == nil {
25829		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
25830	}
25831	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
25832		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
25833	}
25834
25835	if invalidParams.Len() > 0 {
25836		return invalidParams
25837	}
25838	return nil
25839}
25840
25841// SetAlertTargetArn sets the AlertTargetArn field's value.
25842func (s *AlertTarget) SetAlertTargetArn(v string) *AlertTarget {
25843	s.AlertTargetArn = &v
25844	return s
25845}
25846
25847// SetRoleArn sets the RoleArn field's value.
25848func (s *AlertTarget) SetRoleArn(v string) *AlertTarget {
25849	s.RoleArn = &v
25850	return s
25851}
25852
25853// Contains information that allowed the authorization.
25854type Allowed struct {
25855	_ struct{} `type:"structure"`
25856
25857	// A list of policies that allowed the authentication.
25858	Policies []*Policy `locationName:"policies" type:"list"`
25859}
25860
25861// String returns the string representation
25862func (s Allowed) String() string {
25863	return awsutil.Prettify(s)
25864}
25865
25866// GoString returns the string representation
25867func (s Allowed) GoString() string {
25868	return s.String()
25869}
25870
25871// SetPolicies sets the Policies field's value.
25872func (s *Allowed) SetPolicies(v []*Policy) *Allowed {
25873	s.Policies = v
25874	return s
25875}
25876
25877// An asset property timestamp entry containing the following information.
25878type AssetPropertyTimestamp struct {
25879	_ struct{} `type:"structure"`
25880
25881	// Optional. A string that contains the nanosecond time offset. Accepts substitution
25882	// templates.
25883	OffsetInNanos *string `locationName:"offsetInNanos" type:"string"`
25884
25885	// A string that contains the time in seconds since epoch. Accepts substitution
25886	// templates.
25887	//
25888	// TimeInSeconds is a required field
25889	TimeInSeconds *string `locationName:"timeInSeconds" type:"string" required:"true"`
25890}
25891
25892// String returns the string representation
25893func (s AssetPropertyTimestamp) String() string {
25894	return awsutil.Prettify(s)
25895}
25896
25897// GoString returns the string representation
25898func (s AssetPropertyTimestamp) GoString() string {
25899	return s.String()
25900}
25901
25902// Validate inspects the fields of the type to determine if they are valid.
25903func (s *AssetPropertyTimestamp) Validate() error {
25904	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyTimestamp"}
25905	if s.TimeInSeconds == nil {
25906		invalidParams.Add(request.NewErrParamRequired("TimeInSeconds"))
25907	}
25908
25909	if invalidParams.Len() > 0 {
25910		return invalidParams
25911	}
25912	return nil
25913}
25914
25915// SetOffsetInNanos sets the OffsetInNanos field's value.
25916func (s *AssetPropertyTimestamp) SetOffsetInNanos(v string) *AssetPropertyTimestamp {
25917	s.OffsetInNanos = &v
25918	return s
25919}
25920
25921// SetTimeInSeconds sets the TimeInSeconds field's value.
25922func (s *AssetPropertyTimestamp) SetTimeInSeconds(v string) *AssetPropertyTimestamp {
25923	s.TimeInSeconds = &v
25924	return s
25925}
25926
25927// An asset property value entry containing the following information.
25928type AssetPropertyValue struct {
25929	_ struct{} `type:"structure"`
25930
25931	// Optional. A string that describes the quality of the value. Accepts substitution
25932	// templates. Must be GOOD, BAD, or UNCERTAIN.
25933	Quality *string `locationName:"quality" type:"string"`
25934
25935	// The asset property value timestamp.
25936	//
25937	// Timestamp is a required field
25938	Timestamp *AssetPropertyTimestamp `locationName:"timestamp" type:"structure" required:"true"`
25939
25940	// The value of the asset property.
25941	//
25942	// Value is a required field
25943	Value *AssetPropertyVariant `locationName:"value" type:"structure" required:"true"`
25944}
25945
25946// String returns the string representation
25947func (s AssetPropertyValue) String() string {
25948	return awsutil.Prettify(s)
25949}
25950
25951// GoString returns the string representation
25952func (s AssetPropertyValue) GoString() string {
25953	return s.String()
25954}
25955
25956// Validate inspects the fields of the type to determine if they are valid.
25957func (s *AssetPropertyValue) Validate() error {
25958	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyValue"}
25959	if s.Timestamp == nil {
25960		invalidParams.Add(request.NewErrParamRequired("Timestamp"))
25961	}
25962	if s.Value == nil {
25963		invalidParams.Add(request.NewErrParamRequired("Value"))
25964	}
25965	if s.Timestamp != nil {
25966		if err := s.Timestamp.Validate(); err != nil {
25967			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
25968		}
25969	}
25970	if s.Value != nil {
25971		if err := s.Value.Validate(); err != nil {
25972			invalidParams.AddNested("Value", err.(request.ErrInvalidParams))
25973		}
25974	}
25975
25976	if invalidParams.Len() > 0 {
25977		return invalidParams
25978	}
25979	return nil
25980}
25981
25982// SetQuality sets the Quality field's value.
25983func (s *AssetPropertyValue) SetQuality(v string) *AssetPropertyValue {
25984	s.Quality = &v
25985	return s
25986}
25987
25988// SetTimestamp sets the Timestamp field's value.
25989func (s *AssetPropertyValue) SetTimestamp(v *AssetPropertyTimestamp) *AssetPropertyValue {
25990	s.Timestamp = v
25991	return s
25992}
25993
25994// SetValue sets the Value field's value.
25995func (s *AssetPropertyValue) SetValue(v *AssetPropertyVariant) *AssetPropertyValue {
25996	s.Value = v
25997	return s
25998}
25999
26000// Contains an asset property value (of a single type).
26001type AssetPropertyVariant struct {
26002	_ struct{} `type:"structure"`
26003
26004	// Optional. A string that contains the boolean value (true or false) of the
26005	// value entry. Accepts substitution templates.
26006	BooleanValue *string `locationName:"booleanValue" type:"string"`
26007
26008	// Optional. A string that contains the double value of the value entry. Accepts
26009	// substitution templates.
26010	DoubleValue *string `locationName:"doubleValue" type:"string"`
26011
26012	// Optional. A string that contains the integer value of the value entry. Accepts
26013	// substitution templates.
26014	IntegerValue *string `locationName:"integerValue" type:"string"`
26015
26016	// Optional. The string value of the value entry. Accepts substitution templates.
26017	StringValue *string `locationName:"stringValue" min:"1" type:"string"`
26018}
26019
26020// String returns the string representation
26021func (s AssetPropertyVariant) String() string {
26022	return awsutil.Prettify(s)
26023}
26024
26025// GoString returns the string representation
26026func (s AssetPropertyVariant) GoString() string {
26027	return s.String()
26028}
26029
26030// Validate inspects the fields of the type to determine if they are valid.
26031func (s *AssetPropertyVariant) Validate() error {
26032	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyVariant"}
26033	if s.StringValue != nil && len(*s.StringValue) < 1 {
26034		invalidParams.Add(request.NewErrParamMinLen("StringValue", 1))
26035	}
26036
26037	if invalidParams.Len() > 0 {
26038		return invalidParams
26039	}
26040	return nil
26041}
26042
26043// SetBooleanValue sets the BooleanValue field's value.
26044func (s *AssetPropertyVariant) SetBooleanValue(v string) *AssetPropertyVariant {
26045	s.BooleanValue = &v
26046	return s
26047}
26048
26049// SetDoubleValue sets the DoubleValue field's value.
26050func (s *AssetPropertyVariant) SetDoubleValue(v string) *AssetPropertyVariant {
26051	s.DoubleValue = &v
26052	return s
26053}
26054
26055// SetIntegerValue sets the IntegerValue field's value.
26056func (s *AssetPropertyVariant) SetIntegerValue(v string) *AssetPropertyVariant {
26057	s.IntegerValue = &v
26058	return s
26059}
26060
26061// SetStringValue sets the StringValue field's value.
26062func (s *AssetPropertyVariant) SetStringValue(v string) *AssetPropertyVariant {
26063	s.StringValue = &v
26064	return s
26065}
26066
26067type AssociateTargetsWithJobInput struct {
26068	_ struct{} `type:"structure"`
26069
26070	// An optional comment string describing why the job was associated with the
26071	// targets.
26072	Comment *string `locationName:"comment" type:"string"`
26073
26074	// The unique identifier you assigned to this job when it was created.
26075	//
26076	// JobId is a required field
26077	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
26078
26079	// The namespace used to indicate that a job is a customer-managed job.
26080	//
26081	// When you specify a value for this parameter, Amazon Web Services IoT Core
26082	// sends jobs notifications to MQTT topics that contain the value in the following
26083	// format.
26084	//
26085	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
26086	//
26087	// The namespaceId feature is in public preview.
26088	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
26089
26090	// A list of thing group ARNs that define the targets of the job.
26091	//
26092	// Targets is a required field
26093	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
26094}
26095
26096// String returns the string representation
26097func (s AssociateTargetsWithJobInput) String() string {
26098	return awsutil.Prettify(s)
26099}
26100
26101// GoString returns the string representation
26102func (s AssociateTargetsWithJobInput) GoString() string {
26103	return s.String()
26104}
26105
26106// Validate inspects the fields of the type to determine if they are valid.
26107func (s *AssociateTargetsWithJobInput) Validate() error {
26108	invalidParams := request.ErrInvalidParams{Context: "AssociateTargetsWithJobInput"}
26109	if s.JobId == nil {
26110		invalidParams.Add(request.NewErrParamRequired("JobId"))
26111	}
26112	if s.JobId != nil && len(*s.JobId) < 1 {
26113		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
26114	}
26115	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
26116		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
26117	}
26118	if s.Targets == nil {
26119		invalidParams.Add(request.NewErrParamRequired("Targets"))
26120	}
26121	if s.Targets != nil && len(s.Targets) < 1 {
26122		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
26123	}
26124
26125	if invalidParams.Len() > 0 {
26126		return invalidParams
26127	}
26128	return nil
26129}
26130
26131// SetComment sets the Comment field's value.
26132func (s *AssociateTargetsWithJobInput) SetComment(v string) *AssociateTargetsWithJobInput {
26133	s.Comment = &v
26134	return s
26135}
26136
26137// SetJobId sets the JobId field's value.
26138func (s *AssociateTargetsWithJobInput) SetJobId(v string) *AssociateTargetsWithJobInput {
26139	s.JobId = &v
26140	return s
26141}
26142
26143// SetNamespaceId sets the NamespaceId field's value.
26144func (s *AssociateTargetsWithJobInput) SetNamespaceId(v string) *AssociateTargetsWithJobInput {
26145	s.NamespaceId = &v
26146	return s
26147}
26148
26149// SetTargets sets the Targets field's value.
26150func (s *AssociateTargetsWithJobInput) SetTargets(v []*string) *AssociateTargetsWithJobInput {
26151	s.Targets = v
26152	return s
26153}
26154
26155type AssociateTargetsWithJobOutput struct {
26156	_ struct{} `type:"structure"`
26157
26158	// A short text description of the job.
26159	Description *string `locationName:"description" type:"string"`
26160
26161	// An ARN identifying the job.
26162	JobArn *string `locationName:"jobArn" type:"string"`
26163
26164	// The unique identifier you assigned to this job when it was created.
26165	JobId *string `locationName:"jobId" min:"1" type:"string"`
26166}
26167
26168// String returns the string representation
26169func (s AssociateTargetsWithJobOutput) String() string {
26170	return awsutil.Prettify(s)
26171}
26172
26173// GoString returns the string representation
26174func (s AssociateTargetsWithJobOutput) GoString() string {
26175	return s.String()
26176}
26177
26178// SetDescription sets the Description field's value.
26179func (s *AssociateTargetsWithJobOutput) SetDescription(v string) *AssociateTargetsWithJobOutput {
26180	s.Description = &v
26181	return s
26182}
26183
26184// SetJobArn sets the JobArn field's value.
26185func (s *AssociateTargetsWithJobOutput) SetJobArn(v string) *AssociateTargetsWithJobOutput {
26186	s.JobArn = &v
26187	return s
26188}
26189
26190// SetJobId sets the JobId field's value.
26191func (s *AssociateTargetsWithJobOutput) SetJobId(v string) *AssociateTargetsWithJobOutput {
26192	s.JobId = &v
26193	return s
26194}
26195
26196type AttachPolicyInput struct {
26197	_ struct{} `type:"structure"`
26198
26199	// The name of the policy to attach.
26200	//
26201	// PolicyName is a required field
26202	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
26203
26204	// The identity (https://docs.aws.amazon.com/iot/latest/developerguide/security-iam.html)
26205	// to which the policy is attached. For example, a thing group or a certificate.
26206	//
26207	// Target is a required field
26208	Target *string `locationName:"target" type:"string" required:"true"`
26209}
26210
26211// String returns the string representation
26212func (s AttachPolicyInput) String() string {
26213	return awsutil.Prettify(s)
26214}
26215
26216// GoString returns the string representation
26217func (s AttachPolicyInput) GoString() string {
26218	return s.String()
26219}
26220
26221// Validate inspects the fields of the type to determine if they are valid.
26222func (s *AttachPolicyInput) Validate() error {
26223	invalidParams := request.ErrInvalidParams{Context: "AttachPolicyInput"}
26224	if s.PolicyName == nil {
26225		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
26226	}
26227	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
26228		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
26229	}
26230	if s.Target == nil {
26231		invalidParams.Add(request.NewErrParamRequired("Target"))
26232	}
26233
26234	if invalidParams.Len() > 0 {
26235		return invalidParams
26236	}
26237	return nil
26238}
26239
26240// SetPolicyName sets the PolicyName field's value.
26241func (s *AttachPolicyInput) SetPolicyName(v string) *AttachPolicyInput {
26242	s.PolicyName = &v
26243	return s
26244}
26245
26246// SetTarget sets the Target field's value.
26247func (s *AttachPolicyInput) SetTarget(v string) *AttachPolicyInput {
26248	s.Target = &v
26249	return s
26250}
26251
26252type AttachPolicyOutput struct {
26253	_ struct{} `type:"structure"`
26254}
26255
26256// String returns the string representation
26257func (s AttachPolicyOutput) String() string {
26258	return awsutil.Prettify(s)
26259}
26260
26261// GoString returns the string representation
26262func (s AttachPolicyOutput) GoString() string {
26263	return s.String()
26264}
26265
26266// The input for the AttachPrincipalPolicy operation.
26267type AttachPrincipalPolicyInput struct {
26268	_ struct{} `type:"structure"`
26269
26270	// The policy name.
26271	//
26272	// PolicyName is a required field
26273	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
26274
26275	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
26276	// operation) or an Amazon Cognito ID.
26277	//
26278	// Principal is a required field
26279	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
26280}
26281
26282// String returns the string representation
26283func (s AttachPrincipalPolicyInput) String() string {
26284	return awsutil.Prettify(s)
26285}
26286
26287// GoString returns the string representation
26288func (s AttachPrincipalPolicyInput) GoString() string {
26289	return s.String()
26290}
26291
26292// Validate inspects the fields of the type to determine if they are valid.
26293func (s *AttachPrincipalPolicyInput) Validate() error {
26294	invalidParams := request.ErrInvalidParams{Context: "AttachPrincipalPolicyInput"}
26295	if s.PolicyName == nil {
26296		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
26297	}
26298	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
26299		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
26300	}
26301	if s.Principal == nil {
26302		invalidParams.Add(request.NewErrParamRequired("Principal"))
26303	}
26304
26305	if invalidParams.Len() > 0 {
26306		return invalidParams
26307	}
26308	return nil
26309}
26310
26311// SetPolicyName sets the PolicyName field's value.
26312func (s *AttachPrincipalPolicyInput) SetPolicyName(v string) *AttachPrincipalPolicyInput {
26313	s.PolicyName = &v
26314	return s
26315}
26316
26317// SetPrincipal sets the Principal field's value.
26318func (s *AttachPrincipalPolicyInput) SetPrincipal(v string) *AttachPrincipalPolicyInput {
26319	s.Principal = &v
26320	return s
26321}
26322
26323type AttachPrincipalPolicyOutput struct {
26324	_ struct{} `type:"structure"`
26325}
26326
26327// String returns the string representation
26328func (s AttachPrincipalPolicyOutput) String() string {
26329	return awsutil.Prettify(s)
26330}
26331
26332// GoString returns the string representation
26333func (s AttachPrincipalPolicyOutput) GoString() string {
26334	return s.String()
26335}
26336
26337type AttachSecurityProfileInput struct {
26338	_ struct{} `type:"structure"`
26339
26340	// The security profile that is attached.
26341	//
26342	// SecurityProfileName is a required field
26343	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
26344
26345	// The ARN of the target (thing group) to which the security profile is attached.
26346	//
26347	// SecurityProfileTargetArn is a required field
26348	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
26349}
26350
26351// String returns the string representation
26352func (s AttachSecurityProfileInput) String() string {
26353	return awsutil.Prettify(s)
26354}
26355
26356// GoString returns the string representation
26357func (s AttachSecurityProfileInput) GoString() string {
26358	return s.String()
26359}
26360
26361// Validate inspects the fields of the type to determine if they are valid.
26362func (s *AttachSecurityProfileInput) Validate() error {
26363	invalidParams := request.ErrInvalidParams{Context: "AttachSecurityProfileInput"}
26364	if s.SecurityProfileName == nil {
26365		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
26366	}
26367	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
26368		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
26369	}
26370	if s.SecurityProfileTargetArn == nil {
26371		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
26372	}
26373
26374	if invalidParams.Len() > 0 {
26375		return invalidParams
26376	}
26377	return nil
26378}
26379
26380// SetSecurityProfileName sets the SecurityProfileName field's value.
26381func (s *AttachSecurityProfileInput) SetSecurityProfileName(v string) *AttachSecurityProfileInput {
26382	s.SecurityProfileName = &v
26383	return s
26384}
26385
26386// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
26387func (s *AttachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *AttachSecurityProfileInput {
26388	s.SecurityProfileTargetArn = &v
26389	return s
26390}
26391
26392type AttachSecurityProfileOutput struct {
26393	_ struct{} `type:"structure"`
26394}
26395
26396// String returns the string representation
26397func (s AttachSecurityProfileOutput) String() string {
26398	return awsutil.Prettify(s)
26399}
26400
26401// GoString returns the string representation
26402func (s AttachSecurityProfileOutput) GoString() string {
26403	return s.String()
26404}
26405
26406// The input for the AttachThingPrincipal operation.
26407type AttachThingPrincipalInput struct {
26408	_ struct{} `type:"structure"`
26409
26410	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
26411	// operation) or an Amazon Cognito ID.
26412	//
26413	// Principal is a required field
26414	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
26415
26416	// The name of the thing.
26417	//
26418	// ThingName is a required field
26419	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
26420}
26421
26422// String returns the string representation
26423func (s AttachThingPrincipalInput) String() string {
26424	return awsutil.Prettify(s)
26425}
26426
26427// GoString returns the string representation
26428func (s AttachThingPrincipalInput) GoString() string {
26429	return s.String()
26430}
26431
26432// Validate inspects the fields of the type to determine if they are valid.
26433func (s *AttachThingPrincipalInput) Validate() error {
26434	invalidParams := request.ErrInvalidParams{Context: "AttachThingPrincipalInput"}
26435	if s.Principal == nil {
26436		invalidParams.Add(request.NewErrParamRequired("Principal"))
26437	}
26438	if s.ThingName == nil {
26439		invalidParams.Add(request.NewErrParamRequired("ThingName"))
26440	}
26441	if s.ThingName != nil && len(*s.ThingName) < 1 {
26442		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
26443	}
26444
26445	if invalidParams.Len() > 0 {
26446		return invalidParams
26447	}
26448	return nil
26449}
26450
26451// SetPrincipal sets the Principal field's value.
26452func (s *AttachThingPrincipalInput) SetPrincipal(v string) *AttachThingPrincipalInput {
26453	s.Principal = &v
26454	return s
26455}
26456
26457// SetThingName sets the ThingName field's value.
26458func (s *AttachThingPrincipalInput) SetThingName(v string) *AttachThingPrincipalInput {
26459	s.ThingName = &v
26460	return s
26461}
26462
26463// The output from the AttachThingPrincipal operation.
26464type AttachThingPrincipalOutput struct {
26465	_ struct{} `type:"structure"`
26466}
26467
26468// String returns the string representation
26469func (s AttachThingPrincipalOutput) String() string {
26470	return awsutil.Prettify(s)
26471}
26472
26473// GoString returns the string representation
26474func (s AttachThingPrincipalOutput) GoString() string {
26475	return s.String()
26476}
26477
26478// The attribute payload.
26479type AttributePayload struct {
26480	_ struct{} `type:"structure"`
26481
26482	// A JSON string containing up to three key-value pair in JSON format. For example:
26483	//
26484	// {\"attributes\":{\"string1\":\"string2\"}}
26485	Attributes map[string]*string `locationName:"attributes" type:"map"`
26486
26487	// Specifies whether the list of attributes provided in the AttributePayload
26488	// is merged with the attributes stored in the registry, instead of overwriting
26489	// them.
26490	//
26491	// To remove an attribute, call UpdateThing with an empty attribute value.
26492	//
26493	// The merge attribute is only valid when calling UpdateThing or UpdateThingGroup.
26494	Merge *bool `locationName:"merge" type:"boolean"`
26495}
26496
26497// String returns the string representation
26498func (s AttributePayload) String() string {
26499	return awsutil.Prettify(s)
26500}
26501
26502// GoString returns the string representation
26503func (s AttributePayload) GoString() string {
26504	return s.String()
26505}
26506
26507// SetAttributes sets the Attributes field's value.
26508func (s *AttributePayload) SetAttributes(v map[string]*string) *AttributePayload {
26509	s.Attributes = v
26510	return s
26511}
26512
26513// SetMerge sets the Merge field's value.
26514func (s *AttributePayload) SetMerge(v bool) *AttributePayload {
26515	s.Merge = &v
26516	return s
26517}
26518
26519// Which audit checks are enabled and disabled for this account.
26520type AuditCheckConfiguration struct {
26521	_ struct{} `type:"structure"`
26522
26523	// True if this audit check is enabled for this account.
26524	Enabled *bool `locationName:"enabled" type:"boolean"`
26525}
26526
26527// String returns the string representation
26528func (s AuditCheckConfiguration) String() string {
26529	return awsutil.Prettify(s)
26530}
26531
26532// GoString returns the string representation
26533func (s AuditCheckConfiguration) GoString() string {
26534	return s.String()
26535}
26536
26537// SetEnabled sets the Enabled field's value.
26538func (s *AuditCheckConfiguration) SetEnabled(v bool) *AuditCheckConfiguration {
26539	s.Enabled = &v
26540	return s
26541}
26542
26543// Information about the audit check.
26544type AuditCheckDetails struct {
26545	_ struct{} `type:"structure"`
26546
26547	// True if the check is complete and found all resources compliant.
26548	CheckCompliant *bool `locationName:"checkCompliant" type:"boolean"`
26549
26550	// The completion status of this check. One of "IN_PROGRESS", "WAITING_FOR_DATA_COLLECTION",
26551	// "CANCELED", "COMPLETED_COMPLIANT", "COMPLETED_NON_COMPLIANT", or "FAILED".
26552	CheckRunStatus *string `locationName:"checkRunStatus" type:"string" enum:"AuditCheckRunStatus"`
26553
26554	// The code of any error encountered when this check is performed during this
26555	// audit. One of "INSUFFICIENT_PERMISSIONS" or "AUDIT_CHECK_DISABLED".
26556	ErrorCode *string `locationName:"errorCode" type:"string"`
26557
26558	// The message associated with any error encountered when this check is performed
26559	// during this audit.
26560	Message *string `locationName:"message" type:"string"`
26561
26562	// The number of resources that were found noncompliant during the check.
26563	NonCompliantResourcesCount *int64 `locationName:"nonCompliantResourcesCount" type:"long"`
26564
26565	// Describes how many of the non-compliant resources created during the evaluation
26566	// of an audit check were marked as suppressed.
26567	SuppressedNonCompliantResourcesCount *int64 `locationName:"suppressedNonCompliantResourcesCount" type:"long"`
26568
26569	// The number of resources on which the check was performed.
26570	TotalResourcesCount *int64 `locationName:"totalResourcesCount" type:"long"`
26571}
26572
26573// String returns the string representation
26574func (s AuditCheckDetails) String() string {
26575	return awsutil.Prettify(s)
26576}
26577
26578// GoString returns the string representation
26579func (s AuditCheckDetails) GoString() string {
26580	return s.String()
26581}
26582
26583// SetCheckCompliant sets the CheckCompliant field's value.
26584func (s *AuditCheckDetails) SetCheckCompliant(v bool) *AuditCheckDetails {
26585	s.CheckCompliant = &v
26586	return s
26587}
26588
26589// SetCheckRunStatus sets the CheckRunStatus field's value.
26590func (s *AuditCheckDetails) SetCheckRunStatus(v string) *AuditCheckDetails {
26591	s.CheckRunStatus = &v
26592	return s
26593}
26594
26595// SetErrorCode sets the ErrorCode field's value.
26596func (s *AuditCheckDetails) SetErrorCode(v string) *AuditCheckDetails {
26597	s.ErrorCode = &v
26598	return s
26599}
26600
26601// SetMessage sets the Message field's value.
26602func (s *AuditCheckDetails) SetMessage(v string) *AuditCheckDetails {
26603	s.Message = &v
26604	return s
26605}
26606
26607// SetNonCompliantResourcesCount sets the NonCompliantResourcesCount field's value.
26608func (s *AuditCheckDetails) SetNonCompliantResourcesCount(v int64) *AuditCheckDetails {
26609	s.NonCompliantResourcesCount = &v
26610	return s
26611}
26612
26613// SetSuppressedNonCompliantResourcesCount sets the SuppressedNonCompliantResourcesCount field's value.
26614func (s *AuditCheckDetails) SetSuppressedNonCompliantResourcesCount(v int64) *AuditCheckDetails {
26615	s.SuppressedNonCompliantResourcesCount = &v
26616	return s
26617}
26618
26619// SetTotalResourcesCount sets the TotalResourcesCount field's value.
26620func (s *AuditCheckDetails) SetTotalResourcesCount(v int64) *AuditCheckDetails {
26621	s.TotalResourcesCount = &v
26622	return s
26623}
26624
26625// The findings (results) of the audit.
26626type AuditFinding struct {
26627	_ struct{} `type:"structure"`
26628
26629	// The audit check that generated this result.
26630	CheckName *string `locationName:"checkName" type:"string"`
26631
26632	// A unique identifier for this set of audit findings. This identifier is used
26633	// to apply mitigation tasks to one or more sets of findings.
26634	FindingId *string `locationName:"findingId" min:"1" type:"string"`
26635
26636	// The time the result (finding) was discovered.
26637	FindingTime *time.Time `locationName:"findingTime" type:"timestamp"`
26638
26639	// Indicates whether the audit finding was suppressed or not during reporting.
26640	IsSuppressed *bool `locationName:"isSuppressed" type:"boolean"`
26641
26642	// The resource that was found to be noncompliant with the audit check.
26643	NonCompliantResource *NonCompliantResource `locationName:"nonCompliantResource" type:"structure"`
26644
26645	// The reason the resource was noncompliant.
26646	ReasonForNonCompliance *string `locationName:"reasonForNonCompliance" type:"string"`
26647
26648	// A code that indicates the reason that the resource was noncompliant.
26649	ReasonForNonComplianceCode *string `locationName:"reasonForNonComplianceCode" type:"string"`
26650
26651	// The list of related resources.
26652	RelatedResources []*RelatedResource `locationName:"relatedResources" type:"list"`
26653
26654	// The severity of the result (finding).
26655	Severity *string `locationName:"severity" type:"string" enum:"AuditFindingSeverity"`
26656
26657	// The ID of the audit that generated this result (finding).
26658	TaskId *string `locationName:"taskId" min:"1" type:"string"`
26659
26660	// The time the audit started.
26661	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
26662}
26663
26664// String returns the string representation
26665func (s AuditFinding) String() string {
26666	return awsutil.Prettify(s)
26667}
26668
26669// GoString returns the string representation
26670func (s AuditFinding) GoString() string {
26671	return s.String()
26672}
26673
26674// SetCheckName sets the CheckName field's value.
26675func (s *AuditFinding) SetCheckName(v string) *AuditFinding {
26676	s.CheckName = &v
26677	return s
26678}
26679
26680// SetFindingId sets the FindingId field's value.
26681func (s *AuditFinding) SetFindingId(v string) *AuditFinding {
26682	s.FindingId = &v
26683	return s
26684}
26685
26686// SetFindingTime sets the FindingTime field's value.
26687func (s *AuditFinding) SetFindingTime(v time.Time) *AuditFinding {
26688	s.FindingTime = &v
26689	return s
26690}
26691
26692// SetIsSuppressed sets the IsSuppressed field's value.
26693func (s *AuditFinding) SetIsSuppressed(v bool) *AuditFinding {
26694	s.IsSuppressed = &v
26695	return s
26696}
26697
26698// SetNonCompliantResource sets the NonCompliantResource field's value.
26699func (s *AuditFinding) SetNonCompliantResource(v *NonCompliantResource) *AuditFinding {
26700	s.NonCompliantResource = v
26701	return s
26702}
26703
26704// SetReasonForNonCompliance sets the ReasonForNonCompliance field's value.
26705func (s *AuditFinding) SetReasonForNonCompliance(v string) *AuditFinding {
26706	s.ReasonForNonCompliance = &v
26707	return s
26708}
26709
26710// SetReasonForNonComplianceCode sets the ReasonForNonComplianceCode field's value.
26711func (s *AuditFinding) SetReasonForNonComplianceCode(v string) *AuditFinding {
26712	s.ReasonForNonComplianceCode = &v
26713	return s
26714}
26715
26716// SetRelatedResources sets the RelatedResources field's value.
26717func (s *AuditFinding) SetRelatedResources(v []*RelatedResource) *AuditFinding {
26718	s.RelatedResources = v
26719	return s
26720}
26721
26722// SetSeverity sets the Severity field's value.
26723func (s *AuditFinding) SetSeverity(v string) *AuditFinding {
26724	s.Severity = &v
26725	return s
26726}
26727
26728// SetTaskId sets the TaskId field's value.
26729func (s *AuditFinding) SetTaskId(v string) *AuditFinding {
26730	s.TaskId = &v
26731	return s
26732}
26733
26734// SetTaskStartTime sets the TaskStartTime field's value.
26735func (s *AuditFinding) SetTaskStartTime(v time.Time) *AuditFinding {
26736	s.TaskStartTime = &v
26737	return s
26738}
26739
26740// Returned by ListAuditMitigationActionsTask, this object contains information
26741// that describes a mitigation action that has been started.
26742type AuditMitigationActionExecutionMetadata struct {
26743	_ struct{} `type:"structure"`
26744
26745	// The unique identifier for the mitigation action being applied by the task.
26746	ActionId *string `locationName:"actionId" type:"string"`
26747
26748	// The friendly name of the mitigation action being applied by the task.
26749	ActionName *string `locationName:"actionName" type:"string"`
26750
26751	// The date and time when the task was completed or canceled. Blank if the task
26752	// is still running.
26753	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
26754
26755	// If an error occurred, the code that indicates which type of error occurred.
26756	ErrorCode *string `locationName:"errorCode" type:"string"`
26757
26758	// The unique identifier for the findings to which the task and associated mitigation
26759	// action are applied.
26760	FindingId *string `locationName:"findingId" min:"1" type:"string"`
26761
26762	// If an error occurred, a message that describes the error.
26763	Message *string `locationName:"message" type:"string"`
26764
26765	// The date and time when the task was started.
26766	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
26767
26768	// The current status of the task being executed.
26769	Status *string `locationName:"status" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
26770
26771	// The unique identifier for the task that applies the mitigation action.
26772	TaskId *string `locationName:"taskId" min:"1" type:"string"`
26773}
26774
26775// String returns the string representation
26776func (s AuditMitigationActionExecutionMetadata) String() string {
26777	return awsutil.Prettify(s)
26778}
26779
26780// GoString returns the string representation
26781func (s AuditMitigationActionExecutionMetadata) GoString() string {
26782	return s.String()
26783}
26784
26785// SetActionId sets the ActionId field's value.
26786func (s *AuditMitigationActionExecutionMetadata) SetActionId(v string) *AuditMitigationActionExecutionMetadata {
26787	s.ActionId = &v
26788	return s
26789}
26790
26791// SetActionName sets the ActionName field's value.
26792func (s *AuditMitigationActionExecutionMetadata) SetActionName(v string) *AuditMitigationActionExecutionMetadata {
26793	s.ActionName = &v
26794	return s
26795}
26796
26797// SetEndTime sets the EndTime field's value.
26798func (s *AuditMitigationActionExecutionMetadata) SetEndTime(v time.Time) *AuditMitigationActionExecutionMetadata {
26799	s.EndTime = &v
26800	return s
26801}
26802
26803// SetErrorCode sets the ErrorCode field's value.
26804func (s *AuditMitigationActionExecutionMetadata) SetErrorCode(v string) *AuditMitigationActionExecutionMetadata {
26805	s.ErrorCode = &v
26806	return s
26807}
26808
26809// SetFindingId sets the FindingId field's value.
26810func (s *AuditMitigationActionExecutionMetadata) SetFindingId(v string) *AuditMitigationActionExecutionMetadata {
26811	s.FindingId = &v
26812	return s
26813}
26814
26815// SetMessage sets the Message field's value.
26816func (s *AuditMitigationActionExecutionMetadata) SetMessage(v string) *AuditMitigationActionExecutionMetadata {
26817	s.Message = &v
26818	return s
26819}
26820
26821// SetStartTime sets the StartTime field's value.
26822func (s *AuditMitigationActionExecutionMetadata) SetStartTime(v time.Time) *AuditMitigationActionExecutionMetadata {
26823	s.StartTime = &v
26824	return s
26825}
26826
26827// SetStatus sets the Status field's value.
26828func (s *AuditMitigationActionExecutionMetadata) SetStatus(v string) *AuditMitigationActionExecutionMetadata {
26829	s.Status = &v
26830	return s
26831}
26832
26833// SetTaskId sets the TaskId field's value.
26834func (s *AuditMitigationActionExecutionMetadata) SetTaskId(v string) *AuditMitigationActionExecutionMetadata {
26835	s.TaskId = &v
26836	return s
26837}
26838
26839// Information about an audit mitigation actions task that is returned by ListAuditMitigationActionsTasks.
26840type AuditMitigationActionsTaskMetadata struct {
26841	_ struct{} `type:"structure"`
26842
26843	// The time at which the audit mitigation actions task was started.
26844	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
26845
26846	// The unique identifier for the task.
26847	TaskId *string `locationName:"taskId" min:"1" type:"string"`
26848
26849	// The current state of the audit mitigation actions task.
26850	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
26851}
26852
26853// String returns the string representation
26854func (s AuditMitigationActionsTaskMetadata) String() string {
26855	return awsutil.Prettify(s)
26856}
26857
26858// GoString returns the string representation
26859func (s AuditMitigationActionsTaskMetadata) GoString() string {
26860	return s.String()
26861}
26862
26863// SetStartTime sets the StartTime field's value.
26864func (s *AuditMitigationActionsTaskMetadata) SetStartTime(v time.Time) *AuditMitigationActionsTaskMetadata {
26865	s.StartTime = &v
26866	return s
26867}
26868
26869// SetTaskId sets the TaskId field's value.
26870func (s *AuditMitigationActionsTaskMetadata) SetTaskId(v string) *AuditMitigationActionsTaskMetadata {
26871	s.TaskId = &v
26872	return s
26873}
26874
26875// SetTaskStatus sets the TaskStatus field's value.
26876func (s *AuditMitigationActionsTaskMetadata) SetTaskStatus(v string) *AuditMitigationActionsTaskMetadata {
26877	s.TaskStatus = &v
26878	return s
26879}
26880
26881// Used in MitigationActionParams, this information identifies the target findings
26882// to which the mitigation actions are applied. Only one entry appears.
26883type AuditMitigationActionsTaskTarget struct {
26884	_ struct{} `type:"structure"`
26885
26886	// Specifies a filter in the form of an audit check and set of reason codes
26887	// that identify the findings from the audit to which the audit mitigation actions
26888	// task apply.
26889	AuditCheckToReasonCodeFilter map[string][]*string `locationName:"auditCheckToReasonCodeFilter" type:"map"`
26890
26891	// If the task will apply a mitigation action to findings from a specific audit,
26892	// this value uniquely identifies the audit.
26893	AuditTaskId *string `locationName:"auditTaskId" min:"1" type:"string"`
26894
26895	// If the task will apply a mitigation action to one or more listed findings,
26896	// this value uniquely identifies those findings.
26897	FindingIds []*string `locationName:"findingIds" min:"1" type:"list"`
26898}
26899
26900// String returns the string representation
26901func (s AuditMitigationActionsTaskTarget) String() string {
26902	return awsutil.Prettify(s)
26903}
26904
26905// GoString returns the string representation
26906func (s AuditMitigationActionsTaskTarget) GoString() string {
26907	return s.String()
26908}
26909
26910// Validate inspects the fields of the type to determine if they are valid.
26911func (s *AuditMitigationActionsTaskTarget) Validate() error {
26912	invalidParams := request.ErrInvalidParams{Context: "AuditMitigationActionsTaskTarget"}
26913	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
26914		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
26915	}
26916	if s.FindingIds != nil && len(s.FindingIds) < 1 {
26917		invalidParams.Add(request.NewErrParamMinLen("FindingIds", 1))
26918	}
26919
26920	if invalidParams.Len() > 0 {
26921		return invalidParams
26922	}
26923	return nil
26924}
26925
26926// SetAuditCheckToReasonCodeFilter sets the AuditCheckToReasonCodeFilter field's value.
26927func (s *AuditMitigationActionsTaskTarget) SetAuditCheckToReasonCodeFilter(v map[string][]*string) *AuditMitigationActionsTaskTarget {
26928	s.AuditCheckToReasonCodeFilter = v
26929	return s
26930}
26931
26932// SetAuditTaskId sets the AuditTaskId field's value.
26933func (s *AuditMitigationActionsTaskTarget) SetAuditTaskId(v string) *AuditMitigationActionsTaskTarget {
26934	s.AuditTaskId = &v
26935	return s
26936}
26937
26938// SetFindingIds sets the FindingIds field's value.
26939func (s *AuditMitigationActionsTaskTarget) SetFindingIds(v []*string) *AuditMitigationActionsTaskTarget {
26940	s.FindingIds = v
26941	return s
26942}
26943
26944// Information about the targets to which audit notifications are sent.
26945type AuditNotificationTarget struct {
26946	_ struct{} `type:"structure"`
26947
26948	// True if notifications to the target are enabled.
26949	Enabled *bool `locationName:"enabled" type:"boolean"`
26950
26951	// The ARN of the role that grants permission to send notifications to the target.
26952	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
26953
26954	// The ARN of the target (SNS topic) to which audit notifications are sent.
26955	TargetArn *string `locationName:"targetArn" type:"string"`
26956}
26957
26958// String returns the string representation
26959func (s AuditNotificationTarget) String() string {
26960	return awsutil.Prettify(s)
26961}
26962
26963// GoString returns the string representation
26964func (s AuditNotificationTarget) GoString() string {
26965	return s.String()
26966}
26967
26968// Validate inspects the fields of the type to determine if they are valid.
26969func (s *AuditNotificationTarget) Validate() error {
26970	invalidParams := request.ErrInvalidParams{Context: "AuditNotificationTarget"}
26971	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
26972		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
26973	}
26974
26975	if invalidParams.Len() > 0 {
26976		return invalidParams
26977	}
26978	return nil
26979}
26980
26981// SetEnabled sets the Enabled field's value.
26982func (s *AuditNotificationTarget) SetEnabled(v bool) *AuditNotificationTarget {
26983	s.Enabled = &v
26984	return s
26985}
26986
26987// SetRoleArn sets the RoleArn field's value.
26988func (s *AuditNotificationTarget) SetRoleArn(v string) *AuditNotificationTarget {
26989	s.RoleArn = &v
26990	return s
26991}
26992
26993// SetTargetArn sets the TargetArn field's value.
26994func (s *AuditNotificationTarget) SetTargetArn(v string) *AuditNotificationTarget {
26995	s.TargetArn = &v
26996	return s
26997}
26998
26999// Filters out specific findings of a Device Defender audit.
27000type AuditSuppression struct {
27001	_ struct{} `type:"structure"`
27002
27003	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
27004	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
27005	// to select which checks are enabled.)
27006	//
27007	// CheckName is a required field
27008	CheckName *string `locationName:"checkName" type:"string" required:"true"`
27009
27010	// The description of the audit suppression.
27011	Description *string `locationName:"description" type:"string"`
27012
27013	// The expiration date (epoch timestamp in seconds) that you want the suppression
27014	// to adhere to.
27015	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
27016
27017	// Information that identifies the noncompliant resource.
27018	//
27019	// ResourceIdentifier is a required field
27020	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
27021
27022	// Indicates whether a suppression should exist indefinitely or not.
27023	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
27024}
27025
27026// String returns the string representation
27027func (s AuditSuppression) String() string {
27028	return awsutil.Prettify(s)
27029}
27030
27031// GoString returns the string representation
27032func (s AuditSuppression) GoString() string {
27033	return s.String()
27034}
27035
27036// SetCheckName sets the CheckName field's value.
27037func (s *AuditSuppression) SetCheckName(v string) *AuditSuppression {
27038	s.CheckName = &v
27039	return s
27040}
27041
27042// SetDescription sets the Description field's value.
27043func (s *AuditSuppression) SetDescription(v string) *AuditSuppression {
27044	s.Description = &v
27045	return s
27046}
27047
27048// SetExpirationDate sets the ExpirationDate field's value.
27049func (s *AuditSuppression) SetExpirationDate(v time.Time) *AuditSuppression {
27050	s.ExpirationDate = &v
27051	return s
27052}
27053
27054// SetResourceIdentifier sets the ResourceIdentifier field's value.
27055func (s *AuditSuppression) SetResourceIdentifier(v *ResourceIdentifier) *AuditSuppression {
27056	s.ResourceIdentifier = v
27057	return s
27058}
27059
27060// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
27061func (s *AuditSuppression) SetSuppressIndefinitely(v bool) *AuditSuppression {
27062	s.SuppressIndefinitely = &v
27063	return s
27064}
27065
27066// The audits that were performed.
27067type AuditTaskMetadata struct {
27068	_ struct{} `type:"structure"`
27069
27070	// The ID of this audit.
27071	TaskId *string `locationName:"taskId" min:"1" type:"string"`
27072
27073	// The status of this audit. One of "IN_PROGRESS", "COMPLETED", "FAILED", or
27074	// "CANCELED".
27075	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
27076
27077	// The type of this audit. One of "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
27078	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
27079}
27080
27081// String returns the string representation
27082func (s AuditTaskMetadata) String() string {
27083	return awsutil.Prettify(s)
27084}
27085
27086// GoString returns the string representation
27087func (s AuditTaskMetadata) GoString() string {
27088	return s.String()
27089}
27090
27091// SetTaskId sets the TaskId field's value.
27092func (s *AuditTaskMetadata) SetTaskId(v string) *AuditTaskMetadata {
27093	s.TaskId = &v
27094	return s
27095}
27096
27097// SetTaskStatus sets the TaskStatus field's value.
27098func (s *AuditTaskMetadata) SetTaskStatus(v string) *AuditTaskMetadata {
27099	s.TaskStatus = &v
27100	return s
27101}
27102
27103// SetTaskType sets the TaskType field's value.
27104func (s *AuditTaskMetadata) SetTaskType(v string) *AuditTaskMetadata {
27105	s.TaskType = &v
27106	return s
27107}
27108
27109// A collection of authorization information.
27110type AuthInfo struct {
27111	_ struct{} `type:"structure"`
27112
27113	// The type of action for which the principal is being authorized.
27114	ActionType *string `locationName:"actionType" type:"string" enum:"ActionType"`
27115
27116	// The resources for which the principal is being authorized to perform the
27117	// specified action.
27118	//
27119	// Resources is a required field
27120	Resources []*string `locationName:"resources" type:"list" required:"true"`
27121}
27122
27123// String returns the string representation
27124func (s AuthInfo) String() string {
27125	return awsutil.Prettify(s)
27126}
27127
27128// GoString returns the string representation
27129func (s AuthInfo) GoString() string {
27130	return s.String()
27131}
27132
27133// Validate inspects the fields of the type to determine if they are valid.
27134func (s *AuthInfo) Validate() error {
27135	invalidParams := request.ErrInvalidParams{Context: "AuthInfo"}
27136	if s.Resources == nil {
27137		invalidParams.Add(request.NewErrParamRequired("Resources"))
27138	}
27139
27140	if invalidParams.Len() > 0 {
27141		return invalidParams
27142	}
27143	return nil
27144}
27145
27146// SetActionType sets the ActionType field's value.
27147func (s *AuthInfo) SetActionType(v string) *AuthInfo {
27148	s.ActionType = &v
27149	return s
27150}
27151
27152// SetResources sets the Resources field's value.
27153func (s *AuthInfo) SetResources(v []*string) *AuthInfo {
27154	s.Resources = v
27155	return s
27156}
27157
27158// The authorizer result.
27159type AuthResult struct {
27160	_ struct{} `type:"structure"`
27161
27162	// The policies and statements that allowed the specified action.
27163	Allowed *Allowed `locationName:"allowed" type:"structure"`
27164
27165	// The final authorization decision of this scenario. Multiple statements are
27166	// taken into account when determining the authorization decision. An explicit
27167	// deny statement can override multiple allow statements.
27168	AuthDecision *string `locationName:"authDecision" type:"string" enum:"AuthDecision"`
27169
27170	// Authorization information.
27171	AuthInfo *AuthInfo `locationName:"authInfo" type:"structure"`
27172
27173	// The policies and statements that denied the specified action.
27174	Denied *Denied `locationName:"denied" type:"structure"`
27175
27176	// Contains any missing context values found while evaluating policy.
27177	MissingContextValues []*string `locationName:"missingContextValues" type:"list"`
27178}
27179
27180// String returns the string representation
27181func (s AuthResult) String() string {
27182	return awsutil.Prettify(s)
27183}
27184
27185// GoString returns the string representation
27186func (s AuthResult) GoString() string {
27187	return s.String()
27188}
27189
27190// SetAllowed sets the Allowed field's value.
27191func (s *AuthResult) SetAllowed(v *Allowed) *AuthResult {
27192	s.Allowed = v
27193	return s
27194}
27195
27196// SetAuthDecision sets the AuthDecision field's value.
27197func (s *AuthResult) SetAuthDecision(v string) *AuthResult {
27198	s.AuthDecision = &v
27199	return s
27200}
27201
27202// SetAuthInfo sets the AuthInfo field's value.
27203func (s *AuthResult) SetAuthInfo(v *AuthInfo) *AuthResult {
27204	s.AuthInfo = v
27205	return s
27206}
27207
27208// SetDenied sets the Denied field's value.
27209func (s *AuthResult) SetDenied(v *Denied) *AuthResult {
27210	s.Denied = v
27211	return s
27212}
27213
27214// SetMissingContextValues sets the MissingContextValues field's value.
27215func (s *AuthResult) SetMissingContextValues(v []*string) *AuthResult {
27216	s.MissingContextValues = v
27217	return s
27218}
27219
27220// An object that specifies the authorization service for a domain.
27221type AuthorizerConfig struct {
27222	_ struct{} `type:"structure"`
27223
27224	// A Boolean that specifies whether the domain configuration's authorization
27225	// service can be overridden.
27226	AllowAuthorizerOverride *bool `locationName:"allowAuthorizerOverride" type:"boolean"`
27227
27228	// The name of the authorization service for a domain configuration.
27229	DefaultAuthorizerName *string `locationName:"defaultAuthorizerName" min:"1" type:"string"`
27230}
27231
27232// String returns the string representation
27233func (s AuthorizerConfig) String() string {
27234	return awsutil.Prettify(s)
27235}
27236
27237// GoString returns the string representation
27238func (s AuthorizerConfig) GoString() string {
27239	return s.String()
27240}
27241
27242// Validate inspects the fields of the type to determine if they are valid.
27243func (s *AuthorizerConfig) Validate() error {
27244	invalidParams := request.ErrInvalidParams{Context: "AuthorizerConfig"}
27245	if s.DefaultAuthorizerName != nil && len(*s.DefaultAuthorizerName) < 1 {
27246		invalidParams.Add(request.NewErrParamMinLen("DefaultAuthorizerName", 1))
27247	}
27248
27249	if invalidParams.Len() > 0 {
27250		return invalidParams
27251	}
27252	return nil
27253}
27254
27255// SetAllowAuthorizerOverride sets the AllowAuthorizerOverride field's value.
27256func (s *AuthorizerConfig) SetAllowAuthorizerOverride(v bool) *AuthorizerConfig {
27257	s.AllowAuthorizerOverride = &v
27258	return s
27259}
27260
27261// SetDefaultAuthorizerName sets the DefaultAuthorizerName field's value.
27262func (s *AuthorizerConfig) SetDefaultAuthorizerName(v string) *AuthorizerConfig {
27263	s.DefaultAuthorizerName = &v
27264	return s
27265}
27266
27267// The authorizer description.
27268type AuthorizerDescription struct {
27269	_ struct{} `type:"structure"`
27270
27271	// The authorizer ARN.
27272	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
27273
27274	// The authorizer's Lambda function ARN.
27275	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
27276
27277	// The authorizer name.
27278	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
27279
27280	// The UNIX timestamp of when the authorizer was created.
27281	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
27282
27283	// The UNIX timestamp of when the authorizer was last updated.
27284	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
27285
27286	// Specifies whether IoT validates the token signature in an authorization request.
27287	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
27288
27289	// The status of the authorizer.
27290	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
27291
27292	// The key used to extract the token from the HTTP headers.
27293	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
27294
27295	// The public keys used to validate the token signature returned by your custom
27296	// authentication service.
27297	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
27298}
27299
27300// String returns the string representation
27301func (s AuthorizerDescription) String() string {
27302	return awsutil.Prettify(s)
27303}
27304
27305// GoString returns the string representation
27306func (s AuthorizerDescription) GoString() string {
27307	return s.String()
27308}
27309
27310// SetAuthorizerArn sets the AuthorizerArn field's value.
27311func (s *AuthorizerDescription) SetAuthorizerArn(v string) *AuthorizerDescription {
27312	s.AuthorizerArn = &v
27313	return s
27314}
27315
27316// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
27317func (s *AuthorizerDescription) SetAuthorizerFunctionArn(v string) *AuthorizerDescription {
27318	s.AuthorizerFunctionArn = &v
27319	return s
27320}
27321
27322// SetAuthorizerName sets the AuthorizerName field's value.
27323func (s *AuthorizerDescription) SetAuthorizerName(v string) *AuthorizerDescription {
27324	s.AuthorizerName = &v
27325	return s
27326}
27327
27328// SetCreationDate sets the CreationDate field's value.
27329func (s *AuthorizerDescription) SetCreationDate(v time.Time) *AuthorizerDescription {
27330	s.CreationDate = &v
27331	return s
27332}
27333
27334// SetLastModifiedDate sets the LastModifiedDate field's value.
27335func (s *AuthorizerDescription) SetLastModifiedDate(v time.Time) *AuthorizerDescription {
27336	s.LastModifiedDate = &v
27337	return s
27338}
27339
27340// SetSigningDisabled sets the SigningDisabled field's value.
27341func (s *AuthorizerDescription) SetSigningDisabled(v bool) *AuthorizerDescription {
27342	s.SigningDisabled = &v
27343	return s
27344}
27345
27346// SetStatus sets the Status field's value.
27347func (s *AuthorizerDescription) SetStatus(v string) *AuthorizerDescription {
27348	s.Status = &v
27349	return s
27350}
27351
27352// SetTokenKeyName sets the TokenKeyName field's value.
27353func (s *AuthorizerDescription) SetTokenKeyName(v string) *AuthorizerDescription {
27354	s.TokenKeyName = &v
27355	return s
27356}
27357
27358// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
27359func (s *AuthorizerDescription) SetTokenSigningPublicKeys(v map[string]*string) *AuthorizerDescription {
27360	s.TokenSigningPublicKeys = v
27361	return s
27362}
27363
27364// The authorizer summary.
27365type AuthorizerSummary struct {
27366	_ struct{} `type:"structure"`
27367
27368	// The authorizer ARN.
27369	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
27370
27371	// The authorizer name.
27372	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
27373}
27374
27375// String returns the string representation
27376func (s AuthorizerSummary) String() string {
27377	return awsutil.Prettify(s)
27378}
27379
27380// GoString returns the string representation
27381func (s AuthorizerSummary) GoString() string {
27382	return s.String()
27383}
27384
27385// SetAuthorizerArn sets the AuthorizerArn field's value.
27386func (s *AuthorizerSummary) SetAuthorizerArn(v string) *AuthorizerSummary {
27387	s.AuthorizerArn = &v
27388	return s
27389}
27390
27391// SetAuthorizerName sets the AuthorizerName field's value.
27392func (s *AuthorizerSummary) SetAuthorizerName(v string) *AuthorizerSummary {
27393	s.AuthorizerName = &v
27394	return s
27395}
27396
27397// The criteria that determine when and how a job abort takes place.
27398type AwsJobAbortConfig struct {
27399	_ struct{} `type:"structure"`
27400
27401	// The list of criteria that determine when and how to abort the job.
27402	//
27403	// AbortCriteriaList is a required field
27404	AbortCriteriaList []*AwsJobAbortCriteria `locationName:"abortCriteriaList" min:"1" type:"list" required:"true"`
27405}
27406
27407// String returns the string representation
27408func (s AwsJobAbortConfig) String() string {
27409	return awsutil.Prettify(s)
27410}
27411
27412// GoString returns the string representation
27413func (s AwsJobAbortConfig) GoString() string {
27414	return s.String()
27415}
27416
27417// Validate inspects the fields of the type to determine if they are valid.
27418func (s *AwsJobAbortConfig) Validate() error {
27419	invalidParams := request.ErrInvalidParams{Context: "AwsJobAbortConfig"}
27420	if s.AbortCriteriaList == nil {
27421		invalidParams.Add(request.NewErrParamRequired("AbortCriteriaList"))
27422	}
27423	if s.AbortCriteriaList != nil && len(s.AbortCriteriaList) < 1 {
27424		invalidParams.Add(request.NewErrParamMinLen("AbortCriteriaList", 1))
27425	}
27426	if s.AbortCriteriaList != nil {
27427		for i, v := range s.AbortCriteriaList {
27428			if v == nil {
27429				continue
27430			}
27431			if err := v.Validate(); err != nil {
27432				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AbortCriteriaList", i), err.(request.ErrInvalidParams))
27433			}
27434		}
27435	}
27436
27437	if invalidParams.Len() > 0 {
27438		return invalidParams
27439	}
27440	return nil
27441}
27442
27443// SetAbortCriteriaList sets the AbortCriteriaList field's value.
27444func (s *AwsJobAbortConfig) SetAbortCriteriaList(v []*AwsJobAbortCriteria) *AwsJobAbortConfig {
27445	s.AbortCriteriaList = v
27446	return s
27447}
27448
27449// The criteria that determine when and how a job abort takes place.
27450type AwsJobAbortCriteria struct {
27451	_ struct{} `type:"structure"`
27452
27453	// The type of job action to take to initiate the job abort.
27454	//
27455	// Action is a required field
27456	Action *string `locationName:"action" type:"string" required:"true" enum:"AwsJobAbortCriteriaAbortAction"`
27457
27458	// The type of job execution failures that can initiate a job abort.
27459	//
27460	// FailureType is a required field
27461	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"AwsJobAbortCriteriaFailureType"`
27462
27463	// The minimum number of things which must receive job execution notifications
27464	// before the job can be aborted.
27465	//
27466	// MinNumberOfExecutedThings is a required field
27467	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
27468
27469	// The minimum percentage of job execution failures that must occur to initiate
27470	// the job abort.
27471	//
27472	// Amazon Web Services IoT Core supports up to two digits after the decimal
27473	// (for example, 10.9 and 10.99, but not 10.999).
27474	//
27475	// ThresholdPercentage is a required field
27476	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
27477}
27478
27479// String returns the string representation
27480func (s AwsJobAbortCriteria) String() string {
27481	return awsutil.Prettify(s)
27482}
27483
27484// GoString returns the string representation
27485func (s AwsJobAbortCriteria) GoString() string {
27486	return s.String()
27487}
27488
27489// Validate inspects the fields of the type to determine if they are valid.
27490func (s *AwsJobAbortCriteria) Validate() error {
27491	invalidParams := request.ErrInvalidParams{Context: "AwsJobAbortCriteria"}
27492	if s.Action == nil {
27493		invalidParams.Add(request.NewErrParamRequired("Action"))
27494	}
27495	if s.FailureType == nil {
27496		invalidParams.Add(request.NewErrParamRequired("FailureType"))
27497	}
27498	if s.MinNumberOfExecutedThings == nil {
27499		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
27500	}
27501	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
27502		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
27503	}
27504	if s.ThresholdPercentage == nil {
27505		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
27506	}
27507
27508	if invalidParams.Len() > 0 {
27509		return invalidParams
27510	}
27511	return nil
27512}
27513
27514// SetAction sets the Action field's value.
27515func (s *AwsJobAbortCriteria) SetAction(v string) *AwsJobAbortCriteria {
27516	s.Action = &v
27517	return s
27518}
27519
27520// SetFailureType sets the FailureType field's value.
27521func (s *AwsJobAbortCriteria) SetFailureType(v string) *AwsJobAbortCriteria {
27522	s.FailureType = &v
27523	return s
27524}
27525
27526// SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
27527func (s *AwsJobAbortCriteria) SetMinNumberOfExecutedThings(v int64) *AwsJobAbortCriteria {
27528	s.MinNumberOfExecutedThings = &v
27529	return s
27530}
27531
27532// SetThresholdPercentage sets the ThresholdPercentage field's value.
27533func (s *AwsJobAbortCriteria) SetThresholdPercentage(v float64) *AwsJobAbortCriteria {
27534	s.ThresholdPercentage = &v
27535	return s
27536}
27537
27538// Configuration for the rollout of OTA updates.
27539type AwsJobExecutionsRolloutConfig struct {
27540	_ struct{} `type:"structure"`
27541
27542	// The rate of increase for a job rollout. This parameter allows you to define
27543	// an exponential rate increase for a job rollout.
27544	ExponentialRate *AwsJobExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
27545
27546	// The maximum number of OTA update job executions started per minute.
27547	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
27548}
27549
27550// String returns the string representation
27551func (s AwsJobExecutionsRolloutConfig) String() string {
27552	return awsutil.Prettify(s)
27553}
27554
27555// GoString returns the string representation
27556func (s AwsJobExecutionsRolloutConfig) GoString() string {
27557	return s.String()
27558}
27559
27560// Validate inspects the fields of the type to determine if they are valid.
27561func (s *AwsJobExecutionsRolloutConfig) Validate() error {
27562	invalidParams := request.ErrInvalidParams{Context: "AwsJobExecutionsRolloutConfig"}
27563	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
27564		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
27565	}
27566	if s.ExponentialRate != nil {
27567		if err := s.ExponentialRate.Validate(); err != nil {
27568			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
27569		}
27570	}
27571
27572	if invalidParams.Len() > 0 {
27573		return invalidParams
27574	}
27575	return nil
27576}
27577
27578// SetExponentialRate sets the ExponentialRate field's value.
27579func (s *AwsJobExecutionsRolloutConfig) SetExponentialRate(v *AwsJobExponentialRolloutRate) *AwsJobExecutionsRolloutConfig {
27580	s.ExponentialRate = v
27581	return s
27582}
27583
27584// SetMaximumPerMinute sets the MaximumPerMinute field's value.
27585func (s *AwsJobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *AwsJobExecutionsRolloutConfig {
27586	s.MaximumPerMinute = &v
27587	return s
27588}
27589
27590// The rate of increase for a job rollout. This parameter allows you to define
27591// an exponential rate increase for a job rollout.
27592type AwsJobExponentialRolloutRate struct {
27593	_ struct{} `type:"structure"`
27594
27595	// The minimum number of things that will be notified of a pending job, per
27596	// minute, at the start of the job rollout. This is the initial rate of the
27597	// rollout.
27598	//
27599	// BaseRatePerMinute is a required field
27600	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
27601
27602	// The rate of increase for a job rollout. The number of things notified is
27603	// multiplied by this factor.
27604	//
27605	// IncrementFactor is a required field
27606	IncrementFactor *float64 `locationName:"incrementFactor" type:"double" required:"true"`
27607
27608	// The criteria to initiate the increase in rate of rollout for a job.
27609	//
27610	// Amazon Web Services IoT Core supports up to one digit after the decimal (for
27611	// example, 1.5, but not 1.55).
27612	//
27613	// RateIncreaseCriteria is a required field
27614	RateIncreaseCriteria *AwsJobRateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
27615}
27616
27617// String returns the string representation
27618func (s AwsJobExponentialRolloutRate) String() string {
27619	return awsutil.Prettify(s)
27620}
27621
27622// GoString returns the string representation
27623func (s AwsJobExponentialRolloutRate) GoString() string {
27624	return s.String()
27625}
27626
27627// Validate inspects the fields of the type to determine if they are valid.
27628func (s *AwsJobExponentialRolloutRate) Validate() error {
27629	invalidParams := request.ErrInvalidParams{Context: "AwsJobExponentialRolloutRate"}
27630	if s.BaseRatePerMinute == nil {
27631		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
27632	}
27633	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
27634		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
27635	}
27636	if s.IncrementFactor == nil {
27637		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
27638	}
27639	if s.RateIncreaseCriteria == nil {
27640		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
27641	}
27642	if s.RateIncreaseCriteria != nil {
27643		if err := s.RateIncreaseCriteria.Validate(); err != nil {
27644			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
27645		}
27646	}
27647
27648	if invalidParams.Len() > 0 {
27649		return invalidParams
27650	}
27651	return nil
27652}
27653
27654// SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
27655func (s *AwsJobExponentialRolloutRate) SetBaseRatePerMinute(v int64) *AwsJobExponentialRolloutRate {
27656	s.BaseRatePerMinute = &v
27657	return s
27658}
27659
27660// SetIncrementFactor sets the IncrementFactor field's value.
27661func (s *AwsJobExponentialRolloutRate) SetIncrementFactor(v float64) *AwsJobExponentialRolloutRate {
27662	s.IncrementFactor = &v
27663	return s
27664}
27665
27666// SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
27667func (s *AwsJobExponentialRolloutRate) SetRateIncreaseCriteria(v *AwsJobRateIncreaseCriteria) *AwsJobExponentialRolloutRate {
27668	s.RateIncreaseCriteria = v
27669	return s
27670}
27671
27672// Configuration information for pre-signed URLs. Valid when protocols contains
27673// HTTP.
27674type AwsJobPresignedUrlConfig struct {
27675	_ struct{} `type:"structure"`
27676
27677	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
27678	// the default value is 1800 seconds. Pre-signed URLs are generated when a request
27679	// for the job document is received.
27680	ExpiresInSec *int64 `locationName:"expiresInSec" type:"long"`
27681}
27682
27683// String returns the string representation
27684func (s AwsJobPresignedUrlConfig) String() string {
27685	return awsutil.Prettify(s)
27686}
27687
27688// GoString returns the string representation
27689func (s AwsJobPresignedUrlConfig) GoString() string {
27690	return s.String()
27691}
27692
27693// SetExpiresInSec sets the ExpiresInSec field's value.
27694func (s *AwsJobPresignedUrlConfig) SetExpiresInSec(v int64) *AwsJobPresignedUrlConfig {
27695	s.ExpiresInSec = &v
27696	return s
27697}
27698
27699// The criteria to initiate the increase in rate of rollout for a job.
27700type AwsJobRateIncreaseCriteria struct {
27701	_ struct{} `type:"structure"`
27702
27703	// When this number of things have been notified, it will initiate an increase
27704	// in the rollout rate.
27705	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
27706
27707	// When this number of things have succeeded in their job execution, it will
27708	// initiate an increase in the rollout rate.
27709	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
27710}
27711
27712// String returns the string representation
27713func (s AwsJobRateIncreaseCriteria) String() string {
27714	return awsutil.Prettify(s)
27715}
27716
27717// GoString returns the string representation
27718func (s AwsJobRateIncreaseCriteria) GoString() string {
27719	return s.String()
27720}
27721
27722// Validate inspects the fields of the type to determine if they are valid.
27723func (s *AwsJobRateIncreaseCriteria) Validate() error {
27724	invalidParams := request.ErrInvalidParams{Context: "AwsJobRateIncreaseCriteria"}
27725	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
27726		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
27727	}
27728	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
27729		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
27730	}
27731
27732	if invalidParams.Len() > 0 {
27733		return invalidParams
27734	}
27735	return nil
27736}
27737
27738// SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
27739func (s *AwsJobRateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *AwsJobRateIncreaseCriteria {
27740	s.NumberOfNotifiedThings = &v
27741	return s
27742}
27743
27744// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
27745func (s *AwsJobRateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *AwsJobRateIncreaseCriteria {
27746	s.NumberOfSucceededThings = &v
27747	return s
27748}
27749
27750// Specifies the amount of time each device has to finish its execution of the
27751// job. A timer is started when the job execution status is set to IN_PROGRESS.
27752// If the job execution status is not set to another terminal state before the
27753// timer expires, it will be automatically set to TIMED_OUT.
27754type AwsJobTimeoutConfig struct {
27755	_ struct{} `type:"structure"`
27756
27757	// Specifies the amount of time, in minutes, this device has to finish execution
27758	// of this job. The timeout interval can be anywhere between 1 minute and 7
27759	// days (1 to 10080 minutes). The in progress timer can't be updated and will
27760	// apply to all job executions for the job. Whenever a job execution remains
27761	// in the IN_PROGRESS status for longer than this interval, the job execution
27762	// will fail and switch to the terminal TIMED_OUT status.
27763	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
27764}
27765
27766// String returns the string representation
27767func (s AwsJobTimeoutConfig) String() string {
27768	return awsutil.Prettify(s)
27769}
27770
27771// GoString returns the string representation
27772func (s AwsJobTimeoutConfig) GoString() string {
27773	return s.String()
27774}
27775
27776// SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
27777func (s *AwsJobTimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *AwsJobTimeoutConfig {
27778	s.InProgressTimeoutInMinutes = &v
27779	return s
27780}
27781
27782// A Device Defender security profile behavior.
27783type Behavior struct {
27784	_ struct{} `type:"structure"`
27785
27786	// The criteria that determine if a device is behaving normally in regard to
27787	// the metric.
27788	Criteria *BehaviorCriteria `locationName:"criteria" type:"structure"`
27789
27790	// What is measured by the behavior.
27791	Metric *string `locationName:"metric" type:"string"`
27792
27793	// The dimension for a metric in your behavior. For example, using a TOPIC_FILTER
27794	// dimension, you can narrow down the scope of the metric to only MQTT topics
27795	// where the name matches the pattern specified in the dimension. This can't
27796	// be used with custom metrics.
27797	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
27798
27799	// The name you've given to the behavior.
27800	//
27801	// Name is a required field
27802	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
27803
27804	// Suppresses alerts.
27805	SuppressAlerts *bool `locationName:"suppressAlerts" type:"boolean"`
27806}
27807
27808// String returns the string representation
27809func (s Behavior) String() string {
27810	return awsutil.Prettify(s)
27811}
27812
27813// GoString returns the string representation
27814func (s Behavior) GoString() string {
27815	return s.String()
27816}
27817
27818// Validate inspects the fields of the type to determine if they are valid.
27819func (s *Behavior) Validate() error {
27820	invalidParams := request.ErrInvalidParams{Context: "Behavior"}
27821	if s.Name == nil {
27822		invalidParams.Add(request.NewErrParamRequired("Name"))
27823	}
27824	if s.Name != nil && len(*s.Name) < 1 {
27825		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
27826	}
27827	if s.Criteria != nil {
27828		if err := s.Criteria.Validate(); err != nil {
27829			invalidParams.AddNested("Criteria", err.(request.ErrInvalidParams))
27830		}
27831	}
27832	if s.MetricDimension != nil {
27833		if err := s.MetricDimension.Validate(); err != nil {
27834			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
27835		}
27836	}
27837
27838	if invalidParams.Len() > 0 {
27839		return invalidParams
27840	}
27841	return nil
27842}
27843
27844// SetCriteria sets the Criteria field's value.
27845func (s *Behavior) SetCriteria(v *BehaviorCriteria) *Behavior {
27846	s.Criteria = v
27847	return s
27848}
27849
27850// SetMetric sets the Metric field's value.
27851func (s *Behavior) SetMetric(v string) *Behavior {
27852	s.Metric = &v
27853	return s
27854}
27855
27856// SetMetricDimension sets the MetricDimension field's value.
27857func (s *Behavior) SetMetricDimension(v *MetricDimension) *Behavior {
27858	s.MetricDimension = v
27859	return s
27860}
27861
27862// SetName sets the Name field's value.
27863func (s *Behavior) SetName(v string) *Behavior {
27864	s.Name = &v
27865	return s
27866}
27867
27868// SetSuppressAlerts sets the SuppressAlerts field's value.
27869func (s *Behavior) SetSuppressAlerts(v bool) *Behavior {
27870	s.SuppressAlerts = &v
27871	return s
27872}
27873
27874// The criteria by which the behavior is determined to be normal.
27875type BehaviorCriteria struct {
27876	_ struct{} `type:"structure"`
27877
27878	// The operator that relates the thing measured (metric) to the criteria (containing
27879	// a value or statisticalThreshold). Valid operators include:
27880	//
27881	//    * string-list: in-set and not-in-set
27882	//
27883	//    * number-list: in-set and not-in-set
27884	//
27885	//    * ip-address-list: in-cidr-set and not-in-cidr-set
27886	//
27887	//    * number: less-than, less-than-equals, greater-than, and greater-than-equals
27888	ComparisonOperator *string `locationName:"comparisonOperator" type:"string" enum:"ComparisonOperator"`
27889
27890	// If a device is in violation of the behavior for the specified number of consecutive
27891	// datapoints, an alarm occurs. If not specified, the default is 1.
27892	ConsecutiveDatapointsToAlarm *int64 `locationName:"consecutiveDatapointsToAlarm" min:"1" type:"integer"`
27893
27894	// If an alarm has occurred and the offending device is no longer in violation
27895	// of the behavior for the specified number of consecutive datapoints, the alarm
27896	// is cleared. If not specified, the default is 1.
27897	ConsecutiveDatapointsToClear *int64 `locationName:"consecutiveDatapointsToClear" min:"1" type:"integer"`
27898
27899	// Use this to specify the time duration over which the behavior is evaluated,
27900	// for those criteria that have a time dimension (for example, NUM_MESSAGES_SENT).
27901	// For a statisticalThreshhold metric comparison, measurements from all devices
27902	// are accumulated over this time duration before being used to calculate percentiles,
27903	// and later, measurements from an individual device are also accumulated over
27904	// this time duration before being given a percentile rank. Cannot be used with
27905	// list-based metric datatypes.
27906	DurationSeconds *int64 `locationName:"durationSeconds" type:"integer"`
27907
27908	// The configuration of an ML Detect
27909	MlDetectionConfig *MachineLearningDetectionConfig `locationName:"mlDetectionConfig" type:"structure"`
27910
27911	// A statistical ranking (percentile)that indicates a threshold value by which
27912	// a behavior is determined to be in compliance or in violation of the behavior.
27913	StatisticalThreshold *StatisticalThreshold `locationName:"statisticalThreshold" type:"structure"`
27914
27915	// The value to be compared with the metric.
27916	Value *MetricValue `locationName:"value" type:"structure"`
27917}
27918
27919// String returns the string representation
27920func (s BehaviorCriteria) String() string {
27921	return awsutil.Prettify(s)
27922}
27923
27924// GoString returns the string representation
27925func (s BehaviorCriteria) GoString() string {
27926	return s.String()
27927}
27928
27929// Validate inspects the fields of the type to determine if they are valid.
27930func (s *BehaviorCriteria) Validate() error {
27931	invalidParams := request.ErrInvalidParams{Context: "BehaviorCriteria"}
27932	if s.ConsecutiveDatapointsToAlarm != nil && *s.ConsecutiveDatapointsToAlarm < 1 {
27933		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToAlarm", 1))
27934	}
27935	if s.ConsecutiveDatapointsToClear != nil && *s.ConsecutiveDatapointsToClear < 1 {
27936		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToClear", 1))
27937	}
27938	if s.MlDetectionConfig != nil {
27939		if err := s.MlDetectionConfig.Validate(); err != nil {
27940			invalidParams.AddNested("MlDetectionConfig", err.(request.ErrInvalidParams))
27941		}
27942	}
27943
27944	if invalidParams.Len() > 0 {
27945		return invalidParams
27946	}
27947	return nil
27948}
27949
27950// SetComparisonOperator sets the ComparisonOperator field's value.
27951func (s *BehaviorCriteria) SetComparisonOperator(v string) *BehaviorCriteria {
27952	s.ComparisonOperator = &v
27953	return s
27954}
27955
27956// SetConsecutiveDatapointsToAlarm sets the ConsecutiveDatapointsToAlarm field's value.
27957func (s *BehaviorCriteria) SetConsecutiveDatapointsToAlarm(v int64) *BehaviorCriteria {
27958	s.ConsecutiveDatapointsToAlarm = &v
27959	return s
27960}
27961
27962// SetConsecutiveDatapointsToClear sets the ConsecutiveDatapointsToClear field's value.
27963func (s *BehaviorCriteria) SetConsecutiveDatapointsToClear(v int64) *BehaviorCriteria {
27964	s.ConsecutiveDatapointsToClear = &v
27965	return s
27966}
27967
27968// SetDurationSeconds sets the DurationSeconds field's value.
27969func (s *BehaviorCriteria) SetDurationSeconds(v int64) *BehaviorCriteria {
27970	s.DurationSeconds = &v
27971	return s
27972}
27973
27974// SetMlDetectionConfig sets the MlDetectionConfig field's value.
27975func (s *BehaviorCriteria) SetMlDetectionConfig(v *MachineLearningDetectionConfig) *BehaviorCriteria {
27976	s.MlDetectionConfig = v
27977	return s
27978}
27979
27980// SetStatisticalThreshold sets the StatisticalThreshold field's value.
27981func (s *BehaviorCriteria) SetStatisticalThreshold(v *StatisticalThreshold) *BehaviorCriteria {
27982	s.StatisticalThreshold = v
27983	return s
27984}
27985
27986// SetValue sets the Value field's value.
27987func (s *BehaviorCriteria) SetValue(v *MetricValue) *BehaviorCriteria {
27988	s.Value = v
27989	return s
27990}
27991
27992// The summary of an ML Detect behavior model.
27993type BehaviorModelTrainingSummary struct {
27994	_ struct{} `type:"structure"`
27995
27996	// The name of the behavior.
27997	BehaviorName *string `locationName:"behaviorName" min:"1" type:"string"`
27998
27999	// The percentage of datapoints collected.
28000	DatapointsCollectionPercentage *float64 `locationName:"datapointsCollectionPercentage" type:"double"`
28001
28002	// The date the model was last refreshed.
28003	LastModelRefreshDate *time.Time `locationName:"lastModelRefreshDate" type:"timestamp"`
28004
28005	// The status of the behavior model.
28006	ModelStatus *string `locationName:"modelStatus" type:"string" enum:"ModelStatus"`
28007
28008	// The name of the security profile.
28009	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
28010
28011	// The date a training model started collecting data.
28012	TrainingDataCollectionStartDate *time.Time `locationName:"trainingDataCollectionStartDate" type:"timestamp"`
28013}
28014
28015// String returns the string representation
28016func (s BehaviorModelTrainingSummary) String() string {
28017	return awsutil.Prettify(s)
28018}
28019
28020// GoString returns the string representation
28021func (s BehaviorModelTrainingSummary) GoString() string {
28022	return s.String()
28023}
28024
28025// SetBehaviorName sets the BehaviorName field's value.
28026func (s *BehaviorModelTrainingSummary) SetBehaviorName(v string) *BehaviorModelTrainingSummary {
28027	s.BehaviorName = &v
28028	return s
28029}
28030
28031// SetDatapointsCollectionPercentage sets the DatapointsCollectionPercentage field's value.
28032func (s *BehaviorModelTrainingSummary) SetDatapointsCollectionPercentage(v float64) *BehaviorModelTrainingSummary {
28033	s.DatapointsCollectionPercentage = &v
28034	return s
28035}
28036
28037// SetLastModelRefreshDate sets the LastModelRefreshDate field's value.
28038func (s *BehaviorModelTrainingSummary) SetLastModelRefreshDate(v time.Time) *BehaviorModelTrainingSummary {
28039	s.LastModelRefreshDate = &v
28040	return s
28041}
28042
28043// SetModelStatus sets the ModelStatus field's value.
28044func (s *BehaviorModelTrainingSummary) SetModelStatus(v string) *BehaviorModelTrainingSummary {
28045	s.ModelStatus = &v
28046	return s
28047}
28048
28049// SetSecurityProfileName sets the SecurityProfileName field's value.
28050func (s *BehaviorModelTrainingSummary) SetSecurityProfileName(v string) *BehaviorModelTrainingSummary {
28051	s.SecurityProfileName = &v
28052	return s
28053}
28054
28055// SetTrainingDataCollectionStartDate sets the TrainingDataCollectionStartDate field's value.
28056func (s *BehaviorModelTrainingSummary) SetTrainingDataCollectionStartDate(v time.Time) *BehaviorModelTrainingSummary {
28057	s.TrainingDataCollectionStartDate = &v
28058	return s
28059}
28060
28061// Additional information about the billing group.
28062type BillingGroupMetadata struct {
28063	_ struct{} `type:"structure"`
28064
28065	// The date the billing group was created.
28066	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
28067}
28068
28069// String returns the string representation
28070func (s BillingGroupMetadata) String() string {
28071	return awsutil.Prettify(s)
28072}
28073
28074// GoString returns the string representation
28075func (s BillingGroupMetadata) GoString() string {
28076	return s.String()
28077}
28078
28079// SetCreationDate sets the CreationDate field's value.
28080func (s *BillingGroupMetadata) SetCreationDate(v time.Time) *BillingGroupMetadata {
28081	s.CreationDate = &v
28082	return s
28083}
28084
28085// The properties of a billing group.
28086type BillingGroupProperties struct {
28087	_ struct{} `type:"structure"`
28088
28089	// The description of the billing group.
28090	BillingGroupDescription *string `locationName:"billingGroupDescription" type:"string"`
28091}
28092
28093// String returns the string representation
28094func (s BillingGroupProperties) String() string {
28095	return awsutil.Prettify(s)
28096}
28097
28098// GoString returns the string representation
28099func (s BillingGroupProperties) GoString() string {
28100	return s.String()
28101}
28102
28103// SetBillingGroupDescription sets the BillingGroupDescription field's value.
28104func (s *BillingGroupProperties) SetBillingGroupDescription(v string) *BillingGroupProperties {
28105	s.BillingGroupDescription = &v
28106	return s
28107}
28108
28109// A count of documents that meets a specific aggregation criteria.
28110type Bucket struct {
28111	_ struct{} `type:"structure"`
28112
28113	// The number of documents that have the value counted for the particular bucket.
28114	Count *int64 `locationName:"count" type:"integer"`
28115
28116	// The value counted for the particular bucket.
28117	KeyValue *string `locationName:"keyValue" type:"string"`
28118}
28119
28120// String returns the string representation
28121func (s Bucket) String() string {
28122	return awsutil.Prettify(s)
28123}
28124
28125// GoString returns the string representation
28126func (s Bucket) GoString() string {
28127	return s.String()
28128}
28129
28130// SetCount sets the Count field's value.
28131func (s *Bucket) SetCount(v int64) *Bucket {
28132	s.Count = &v
28133	return s
28134}
28135
28136// SetKeyValue sets the KeyValue field's value.
28137func (s *Bucket) SetKeyValue(v string) *Bucket {
28138	s.KeyValue = &v
28139	return s
28140}
28141
28142// The type of bucketed aggregation performed.
28143type BucketsAggregationType struct {
28144	_ struct{} `type:"structure"`
28145
28146	// Performs an aggregation that will return a list of buckets. The list of buckets
28147	// is a ranked list of the number of occurrences of an aggregation field value.
28148	TermsAggregation *TermsAggregation `locationName:"termsAggregation" type:"structure"`
28149}
28150
28151// String returns the string representation
28152func (s BucketsAggregationType) String() string {
28153	return awsutil.Prettify(s)
28154}
28155
28156// GoString returns the string representation
28157func (s BucketsAggregationType) GoString() string {
28158	return s.String()
28159}
28160
28161// Validate inspects the fields of the type to determine if they are valid.
28162func (s *BucketsAggregationType) Validate() error {
28163	invalidParams := request.ErrInvalidParams{Context: "BucketsAggregationType"}
28164	if s.TermsAggregation != nil {
28165		if err := s.TermsAggregation.Validate(); err != nil {
28166			invalidParams.AddNested("TermsAggregation", err.(request.ErrInvalidParams))
28167		}
28168	}
28169
28170	if invalidParams.Len() > 0 {
28171		return invalidParams
28172	}
28173	return nil
28174}
28175
28176// SetTermsAggregation sets the TermsAggregation field's value.
28177func (s *BucketsAggregationType) SetTermsAggregation(v *TermsAggregation) *BucketsAggregationType {
28178	s.TermsAggregation = v
28179	return s
28180}
28181
28182// A CA certificate.
28183type CACertificate struct {
28184	_ struct{} `type:"structure"`
28185
28186	// The ARN of the CA certificate.
28187	CertificateArn *string `locationName:"certificateArn" type:"string"`
28188
28189	// The ID of the CA certificate.
28190	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
28191
28192	// The date the CA certificate was created.
28193	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
28194
28195	// The status of the CA certificate.
28196	//
28197	// The status value REGISTER_INACTIVE is deprecated and should not be used.
28198	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
28199}
28200
28201// String returns the string representation
28202func (s CACertificate) String() string {
28203	return awsutil.Prettify(s)
28204}
28205
28206// GoString returns the string representation
28207func (s CACertificate) GoString() string {
28208	return s.String()
28209}
28210
28211// SetCertificateArn sets the CertificateArn field's value.
28212func (s *CACertificate) SetCertificateArn(v string) *CACertificate {
28213	s.CertificateArn = &v
28214	return s
28215}
28216
28217// SetCertificateId sets the CertificateId field's value.
28218func (s *CACertificate) SetCertificateId(v string) *CACertificate {
28219	s.CertificateId = &v
28220	return s
28221}
28222
28223// SetCreationDate sets the CreationDate field's value.
28224func (s *CACertificate) SetCreationDate(v time.Time) *CACertificate {
28225	s.CreationDate = &v
28226	return s
28227}
28228
28229// SetStatus sets the Status field's value.
28230func (s *CACertificate) SetStatus(v string) *CACertificate {
28231	s.Status = &v
28232	return s
28233}
28234
28235// Describes a CA certificate.
28236type CACertificateDescription struct {
28237	_ struct{} `type:"structure"`
28238
28239	// Whether the CA certificate configured for auto registration of device certificates.
28240	// Valid values are "ENABLE" and "DISABLE"
28241	AutoRegistrationStatus *string `locationName:"autoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
28242
28243	// The CA certificate ARN.
28244	CertificateArn *string `locationName:"certificateArn" type:"string"`
28245
28246	// The CA certificate ID.
28247	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
28248
28249	// The CA certificate data, in PEM format.
28250	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
28251
28252	// The date the CA certificate was created.
28253	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
28254
28255	// The customer version of the CA certificate.
28256	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
28257
28258	// The generation ID of the CA certificate.
28259	GenerationId *string `locationName:"generationId" type:"string"`
28260
28261	// The date the CA certificate was last modified.
28262	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
28263
28264	// The owner of the CA certificate.
28265	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
28266
28267	// The status of a CA certificate.
28268	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
28269
28270	// When the CA certificate is valid.
28271	Validity *CertificateValidity `locationName:"validity" type:"structure"`
28272}
28273
28274// String returns the string representation
28275func (s CACertificateDescription) String() string {
28276	return awsutil.Prettify(s)
28277}
28278
28279// GoString returns the string representation
28280func (s CACertificateDescription) GoString() string {
28281	return s.String()
28282}
28283
28284// SetAutoRegistrationStatus sets the AutoRegistrationStatus field's value.
28285func (s *CACertificateDescription) SetAutoRegistrationStatus(v string) *CACertificateDescription {
28286	s.AutoRegistrationStatus = &v
28287	return s
28288}
28289
28290// SetCertificateArn sets the CertificateArn field's value.
28291func (s *CACertificateDescription) SetCertificateArn(v string) *CACertificateDescription {
28292	s.CertificateArn = &v
28293	return s
28294}
28295
28296// SetCertificateId sets the CertificateId field's value.
28297func (s *CACertificateDescription) SetCertificateId(v string) *CACertificateDescription {
28298	s.CertificateId = &v
28299	return s
28300}
28301
28302// SetCertificatePem sets the CertificatePem field's value.
28303func (s *CACertificateDescription) SetCertificatePem(v string) *CACertificateDescription {
28304	s.CertificatePem = &v
28305	return s
28306}
28307
28308// SetCreationDate sets the CreationDate field's value.
28309func (s *CACertificateDescription) SetCreationDate(v time.Time) *CACertificateDescription {
28310	s.CreationDate = &v
28311	return s
28312}
28313
28314// SetCustomerVersion sets the CustomerVersion field's value.
28315func (s *CACertificateDescription) SetCustomerVersion(v int64) *CACertificateDescription {
28316	s.CustomerVersion = &v
28317	return s
28318}
28319
28320// SetGenerationId sets the GenerationId field's value.
28321func (s *CACertificateDescription) SetGenerationId(v string) *CACertificateDescription {
28322	s.GenerationId = &v
28323	return s
28324}
28325
28326// SetLastModifiedDate sets the LastModifiedDate field's value.
28327func (s *CACertificateDescription) SetLastModifiedDate(v time.Time) *CACertificateDescription {
28328	s.LastModifiedDate = &v
28329	return s
28330}
28331
28332// SetOwnedBy sets the OwnedBy field's value.
28333func (s *CACertificateDescription) SetOwnedBy(v string) *CACertificateDescription {
28334	s.OwnedBy = &v
28335	return s
28336}
28337
28338// SetStatus sets the Status field's value.
28339func (s *CACertificateDescription) SetStatus(v string) *CACertificateDescription {
28340	s.Status = &v
28341	return s
28342}
28343
28344// SetValidity sets the Validity field's value.
28345func (s *CACertificateDescription) SetValidity(v *CertificateValidity) *CACertificateDescription {
28346	s.Validity = v
28347	return s
28348}
28349
28350type CancelAuditMitigationActionsTaskInput struct {
28351	_ struct{} `type:"structure"`
28352
28353	// The unique identifier for the task that you want to cancel.
28354	//
28355	// TaskId is a required field
28356	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
28357}
28358
28359// String returns the string representation
28360func (s CancelAuditMitigationActionsTaskInput) String() string {
28361	return awsutil.Prettify(s)
28362}
28363
28364// GoString returns the string representation
28365func (s CancelAuditMitigationActionsTaskInput) GoString() string {
28366	return s.String()
28367}
28368
28369// Validate inspects the fields of the type to determine if they are valid.
28370func (s *CancelAuditMitigationActionsTaskInput) Validate() error {
28371	invalidParams := request.ErrInvalidParams{Context: "CancelAuditMitigationActionsTaskInput"}
28372	if s.TaskId == nil {
28373		invalidParams.Add(request.NewErrParamRequired("TaskId"))
28374	}
28375	if s.TaskId != nil && len(*s.TaskId) < 1 {
28376		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
28377	}
28378
28379	if invalidParams.Len() > 0 {
28380		return invalidParams
28381	}
28382	return nil
28383}
28384
28385// SetTaskId sets the TaskId field's value.
28386func (s *CancelAuditMitigationActionsTaskInput) SetTaskId(v string) *CancelAuditMitigationActionsTaskInput {
28387	s.TaskId = &v
28388	return s
28389}
28390
28391type CancelAuditMitigationActionsTaskOutput struct {
28392	_ struct{} `type:"structure"`
28393}
28394
28395// String returns the string representation
28396func (s CancelAuditMitigationActionsTaskOutput) String() string {
28397	return awsutil.Prettify(s)
28398}
28399
28400// GoString returns the string representation
28401func (s CancelAuditMitigationActionsTaskOutput) GoString() string {
28402	return s.String()
28403}
28404
28405type CancelAuditTaskInput struct {
28406	_ struct{} `type:"structure"`
28407
28408	// The ID of the audit you want to cancel. You can only cancel an audit that
28409	// is "IN_PROGRESS".
28410	//
28411	// TaskId is a required field
28412	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
28413}
28414
28415// String returns the string representation
28416func (s CancelAuditTaskInput) String() string {
28417	return awsutil.Prettify(s)
28418}
28419
28420// GoString returns the string representation
28421func (s CancelAuditTaskInput) GoString() string {
28422	return s.String()
28423}
28424
28425// Validate inspects the fields of the type to determine if they are valid.
28426func (s *CancelAuditTaskInput) Validate() error {
28427	invalidParams := request.ErrInvalidParams{Context: "CancelAuditTaskInput"}
28428	if s.TaskId == nil {
28429		invalidParams.Add(request.NewErrParamRequired("TaskId"))
28430	}
28431	if s.TaskId != nil && len(*s.TaskId) < 1 {
28432		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
28433	}
28434
28435	if invalidParams.Len() > 0 {
28436		return invalidParams
28437	}
28438	return nil
28439}
28440
28441// SetTaskId sets the TaskId field's value.
28442func (s *CancelAuditTaskInput) SetTaskId(v string) *CancelAuditTaskInput {
28443	s.TaskId = &v
28444	return s
28445}
28446
28447type CancelAuditTaskOutput struct {
28448	_ struct{} `type:"structure"`
28449}
28450
28451// String returns the string representation
28452func (s CancelAuditTaskOutput) String() string {
28453	return awsutil.Prettify(s)
28454}
28455
28456// GoString returns the string representation
28457func (s CancelAuditTaskOutput) GoString() string {
28458	return s.String()
28459}
28460
28461// The input for the CancelCertificateTransfer operation.
28462type CancelCertificateTransferInput struct {
28463	_ struct{} `type:"structure"`
28464
28465	// The ID of the certificate. (The last part of the certificate ARN contains
28466	// the certificate ID.)
28467	//
28468	// CertificateId is a required field
28469	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
28470}
28471
28472// String returns the string representation
28473func (s CancelCertificateTransferInput) String() string {
28474	return awsutil.Prettify(s)
28475}
28476
28477// GoString returns the string representation
28478func (s CancelCertificateTransferInput) GoString() string {
28479	return s.String()
28480}
28481
28482// Validate inspects the fields of the type to determine if they are valid.
28483func (s *CancelCertificateTransferInput) Validate() error {
28484	invalidParams := request.ErrInvalidParams{Context: "CancelCertificateTransferInput"}
28485	if s.CertificateId == nil {
28486		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
28487	}
28488	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
28489		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
28490	}
28491
28492	if invalidParams.Len() > 0 {
28493		return invalidParams
28494	}
28495	return nil
28496}
28497
28498// SetCertificateId sets the CertificateId field's value.
28499func (s *CancelCertificateTransferInput) SetCertificateId(v string) *CancelCertificateTransferInput {
28500	s.CertificateId = &v
28501	return s
28502}
28503
28504type CancelCertificateTransferOutput struct {
28505	_ struct{} `type:"structure"`
28506}
28507
28508// String returns the string representation
28509func (s CancelCertificateTransferOutput) String() string {
28510	return awsutil.Prettify(s)
28511}
28512
28513// GoString returns the string representation
28514func (s CancelCertificateTransferOutput) GoString() string {
28515	return s.String()
28516}
28517
28518type CancelDetectMitigationActionsTaskInput struct {
28519	_ struct{} `type:"structure"`
28520
28521	// The unique identifier of the task.
28522	//
28523	// TaskId is a required field
28524	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
28525}
28526
28527// String returns the string representation
28528func (s CancelDetectMitigationActionsTaskInput) String() string {
28529	return awsutil.Prettify(s)
28530}
28531
28532// GoString returns the string representation
28533func (s CancelDetectMitigationActionsTaskInput) GoString() string {
28534	return s.String()
28535}
28536
28537// Validate inspects the fields of the type to determine if they are valid.
28538func (s *CancelDetectMitigationActionsTaskInput) Validate() error {
28539	invalidParams := request.ErrInvalidParams{Context: "CancelDetectMitigationActionsTaskInput"}
28540	if s.TaskId == nil {
28541		invalidParams.Add(request.NewErrParamRequired("TaskId"))
28542	}
28543	if s.TaskId != nil && len(*s.TaskId) < 1 {
28544		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
28545	}
28546
28547	if invalidParams.Len() > 0 {
28548		return invalidParams
28549	}
28550	return nil
28551}
28552
28553// SetTaskId sets the TaskId field's value.
28554func (s *CancelDetectMitigationActionsTaskInput) SetTaskId(v string) *CancelDetectMitigationActionsTaskInput {
28555	s.TaskId = &v
28556	return s
28557}
28558
28559type CancelDetectMitigationActionsTaskOutput struct {
28560	_ struct{} `type:"structure"`
28561}
28562
28563// String returns the string representation
28564func (s CancelDetectMitigationActionsTaskOutput) String() string {
28565	return awsutil.Prettify(s)
28566}
28567
28568// GoString returns the string representation
28569func (s CancelDetectMitigationActionsTaskOutput) GoString() string {
28570	return s.String()
28571}
28572
28573type CancelJobExecutionInput struct {
28574	_ struct{} `type:"structure"`
28575
28576	// (Optional) The expected current version of the job execution. Each time you
28577	// update the job execution, its version is incremented. If the version of the
28578	// job execution stored in Jobs does not match, the update is rejected with
28579	// a VersionMismatch error, and an ErrorResponse that contains the current job
28580	// execution status data is returned. (This makes it unnecessary to perform
28581	// a separate DescribeJobExecution request in order to obtain the job execution
28582	// status data.)
28583	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
28584
28585	// (Optional) If true the job execution will be canceled if it has status IN_PROGRESS
28586	// or QUEUED, otherwise the job execution will be canceled only if it has status
28587	// QUEUED. If you attempt to cancel a job execution that is IN_PROGRESS, and
28588	// you do not set force to true, then an InvalidStateTransitionException will
28589	// be thrown. The default is false.
28590	//
28591	// Canceling a job execution which is "IN_PROGRESS", will cause the device to
28592	// be unable to update the job execution status. Use caution and ensure that
28593	// the device is able to recover to a valid state.
28594	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
28595
28596	// The ID of the job to be canceled.
28597	//
28598	// JobId is a required field
28599	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
28600
28601	// A collection of name/value pairs that describe the status of the job execution.
28602	// If not specified, the statusDetails are unchanged. You can specify at most
28603	// 10 name/value pairs.
28604	StatusDetails map[string]*string `locationName:"statusDetails" type:"map"`
28605
28606	// The name of the thing whose execution of the job will be canceled.
28607	//
28608	// ThingName is a required field
28609	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
28610}
28611
28612// String returns the string representation
28613func (s CancelJobExecutionInput) String() string {
28614	return awsutil.Prettify(s)
28615}
28616
28617// GoString returns the string representation
28618func (s CancelJobExecutionInput) GoString() string {
28619	return s.String()
28620}
28621
28622// Validate inspects the fields of the type to determine if they are valid.
28623func (s *CancelJobExecutionInput) Validate() error {
28624	invalidParams := request.ErrInvalidParams{Context: "CancelJobExecutionInput"}
28625	if s.JobId == nil {
28626		invalidParams.Add(request.NewErrParamRequired("JobId"))
28627	}
28628	if s.JobId != nil && len(*s.JobId) < 1 {
28629		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
28630	}
28631	if s.ThingName == nil {
28632		invalidParams.Add(request.NewErrParamRequired("ThingName"))
28633	}
28634	if s.ThingName != nil && len(*s.ThingName) < 1 {
28635		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
28636	}
28637
28638	if invalidParams.Len() > 0 {
28639		return invalidParams
28640	}
28641	return nil
28642}
28643
28644// SetExpectedVersion sets the ExpectedVersion field's value.
28645func (s *CancelJobExecutionInput) SetExpectedVersion(v int64) *CancelJobExecutionInput {
28646	s.ExpectedVersion = &v
28647	return s
28648}
28649
28650// SetForce sets the Force field's value.
28651func (s *CancelJobExecutionInput) SetForce(v bool) *CancelJobExecutionInput {
28652	s.Force = &v
28653	return s
28654}
28655
28656// SetJobId sets the JobId field's value.
28657func (s *CancelJobExecutionInput) SetJobId(v string) *CancelJobExecutionInput {
28658	s.JobId = &v
28659	return s
28660}
28661
28662// SetStatusDetails sets the StatusDetails field's value.
28663func (s *CancelJobExecutionInput) SetStatusDetails(v map[string]*string) *CancelJobExecutionInput {
28664	s.StatusDetails = v
28665	return s
28666}
28667
28668// SetThingName sets the ThingName field's value.
28669func (s *CancelJobExecutionInput) SetThingName(v string) *CancelJobExecutionInput {
28670	s.ThingName = &v
28671	return s
28672}
28673
28674type CancelJobExecutionOutput struct {
28675	_ struct{} `type:"structure"`
28676}
28677
28678// String returns the string representation
28679func (s CancelJobExecutionOutput) String() string {
28680	return awsutil.Prettify(s)
28681}
28682
28683// GoString returns the string representation
28684func (s CancelJobExecutionOutput) GoString() string {
28685	return s.String()
28686}
28687
28688type CancelJobInput struct {
28689	_ struct{} `type:"structure"`
28690
28691	// An optional comment string describing why the job was canceled.
28692	Comment *string `locationName:"comment" type:"string"`
28693
28694	// (Optional) If true job executions with status "IN_PROGRESS" and "QUEUED"
28695	// are canceled, otherwise only job executions with status "QUEUED" are canceled.
28696	// The default is false.
28697	//
28698	// Canceling a job which is "IN_PROGRESS", will cause a device which is executing
28699	// the job to be unable to update the job execution status. Use caution and
28700	// ensure that each device executing a job which is canceled is able to recover
28701	// to a valid state.
28702	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
28703
28704	// The unique identifier you assigned to this job when it was created.
28705	//
28706	// JobId is a required field
28707	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
28708
28709	// (Optional)A reason code string that explains why the job was canceled.
28710	ReasonCode *string `locationName:"reasonCode" type:"string"`
28711}
28712
28713// String returns the string representation
28714func (s CancelJobInput) String() string {
28715	return awsutil.Prettify(s)
28716}
28717
28718// GoString returns the string representation
28719func (s CancelJobInput) GoString() string {
28720	return s.String()
28721}
28722
28723// Validate inspects the fields of the type to determine if they are valid.
28724func (s *CancelJobInput) Validate() error {
28725	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
28726	if s.JobId == nil {
28727		invalidParams.Add(request.NewErrParamRequired("JobId"))
28728	}
28729	if s.JobId != nil && len(*s.JobId) < 1 {
28730		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
28731	}
28732
28733	if invalidParams.Len() > 0 {
28734		return invalidParams
28735	}
28736	return nil
28737}
28738
28739// SetComment sets the Comment field's value.
28740func (s *CancelJobInput) SetComment(v string) *CancelJobInput {
28741	s.Comment = &v
28742	return s
28743}
28744
28745// SetForce sets the Force field's value.
28746func (s *CancelJobInput) SetForce(v bool) *CancelJobInput {
28747	s.Force = &v
28748	return s
28749}
28750
28751// SetJobId sets the JobId field's value.
28752func (s *CancelJobInput) SetJobId(v string) *CancelJobInput {
28753	s.JobId = &v
28754	return s
28755}
28756
28757// SetReasonCode sets the ReasonCode field's value.
28758func (s *CancelJobInput) SetReasonCode(v string) *CancelJobInput {
28759	s.ReasonCode = &v
28760	return s
28761}
28762
28763type CancelJobOutput struct {
28764	_ struct{} `type:"structure"`
28765
28766	// A short text description of the job.
28767	Description *string `locationName:"description" type:"string"`
28768
28769	// The job ARN.
28770	JobArn *string `locationName:"jobArn" type:"string"`
28771
28772	// The unique identifier you assigned to this job when it was created.
28773	JobId *string `locationName:"jobId" min:"1" type:"string"`
28774}
28775
28776// String returns the string representation
28777func (s CancelJobOutput) String() string {
28778	return awsutil.Prettify(s)
28779}
28780
28781// GoString returns the string representation
28782func (s CancelJobOutput) GoString() string {
28783	return s.String()
28784}
28785
28786// SetDescription sets the Description field's value.
28787func (s *CancelJobOutput) SetDescription(v string) *CancelJobOutput {
28788	s.Description = &v
28789	return s
28790}
28791
28792// SetJobArn sets the JobArn field's value.
28793func (s *CancelJobOutput) SetJobArn(v string) *CancelJobOutput {
28794	s.JobArn = &v
28795	return s
28796}
28797
28798// SetJobId sets the JobId field's value.
28799func (s *CancelJobOutput) SetJobId(v string) *CancelJobOutput {
28800	s.JobId = &v
28801	return s
28802}
28803
28804// Information about a certificate.
28805type Certificate struct {
28806	_ struct{} `type:"structure"`
28807
28808	// The ARN of the certificate.
28809	CertificateArn *string `locationName:"certificateArn" type:"string"`
28810
28811	// The ID of the certificate. (The last part of the certificate ARN contains
28812	// the certificate ID.)
28813	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
28814
28815	// The mode of the certificate.
28816	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
28817
28818	// The date and time the certificate was created.
28819	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
28820
28821	// The status of the certificate.
28822	//
28823	// The status value REGISTER_INACTIVE is deprecated and should not be used.
28824	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
28825}
28826
28827// String returns the string representation
28828func (s Certificate) String() string {
28829	return awsutil.Prettify(s)
28830}
28831
28832// GoString returns the string representation
28833func (s Certificate) GoString() string {
28834	return s.String()
28835}
28836
28837// SetCertificateArn sets the CertificateArn field's value.
28838func (s *Certificate) SetCertificateArn(v string) *Certificate {
28839	s.CertificateArn = &v
28840	return s
28841}
28842
28843// SetCertificateId sets the CertificateId field's value.
28844func (s *Certificate) SetCertificateId(v string) *Certificate {
28845	s.CertificateId = &v
28846	return s
28847}
28848
28849// SetCertificateMode sets the CertificateMode field's value.
28850func (s *Certificate) SetCertificateMode(v string) *Certificate {
28851	s.CertificateMode = &v
28852	return s
28853}
28854
28855// SetCreationDate sets the CreationDate field's value.
28856func (s *Certificate) SetCreationDate(v time.Time) *Certificate {
28857	s.CreationDate = &v
28858	return s
28859}
28860
28861// SetStatus sets the Status field's value.
28862func (s *Certificate) SetStatus(v string) *Certificate {
28863	s.Status = &v
28864	return s
28865}
28866
28867// Unable to verify the CA certificate used to sign the device certificate you
28868// are attempting to register. This is happens when you have registered more
28869// than one CA certificate that has the same subject field and public key.
28870type CertificateConflictException struct {
28871	_            struct{}                  `type:"structure"`
28872	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
28873
28874	// The message for the exception.
28875	Message_ *string `locationName:"message" type:"string"`
28876}
28877
28878// String returns the string representation
28879func (s CertificateConflictException) String() string {
28880	return awsutil.Prettify(s)
28881}
28882
28883// GoString returns the string representation
28884func (s CertificateConflictException) GoString() string {
28885	return s.String()
28886}
28887
28888func newErrorCertificateConflictException(v protocol.ResponseMetadata) error {
28889	return &CertificateConflictException{
28890		RespMetadata: v,
28891	}
28892}
28893
28894// Code returns the exception type name.
28895func (s *CertificateConflictException) Code() string {
28896	return "CertificateConflictException"
28897}
28898
28899// Message returns the exception's message.
28900func (s *CertificateConflictException) Message() string {
28901	if s.Message_ != nil {
28902		return *s.Message_
28903	}
28904	return ""
28905}
28906
28907// OrigErr always returns nil, satisfies awserr.Error interface.
28908func (s *CertificateConflictException) OrigErr() error {
28909	return nil
28910}
28911
28912func (s *CertificateConflictException) Error() string {
28913	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
28914}
28915
28916// Status code returns the HTTP status code for the request's response error.
28917func (s *CertificateConflictException) StatusCode() int {
28918	return s.RespMetadata.StatusCode
28919}
28920
28921// RequestID returns the service's response RequestID for request.
28922func (s *CertificateConflictException) RequestID() string {
28923	return s.RespMetadata.RequestID
28924}
28925
28926// Describes a certificate.
28927type CertificateDescription struct {
28928	_ struct{} `type:"structure"`
28929
28930	// The certificate ID of the CA certificate used to sign this certificate.
28931	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
28932
28933	// The ARN of the certificate.
28934	CertificateArn *string `locationName:"certificateArn" type:"string"`
28935
28936	// The ID of the certificate.
28937	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
28938
28939	// The mode of the certificate.
28940	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
28941
28942	// The certificate data, in PEM format.
28943	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
28944
28945	// The date and time the certificate was created.
28946	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
28947
28948	// The customer version of the certificate.
28949	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
28950
28951	// The generation ID of the certificate.
28952	GenerationId *string `locationName:"generationId" type:"string"`
28953
28954	// The date and time the certificate was last modified.
28955	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
28956
28957	// The ID of the Amazon Web Services account that owns the certificate.
28958	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
28959
28960	// The ID of the Amazon Web Services account of the previous owner of the certificate.
28961	PreviousOwnedBy *string `locationName:"previousOwnedBy" min:"12" type:"string"`
28962
28963	// The status of the certificate.
28964	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
28965
28966	// The transfer data.
28967	TransferData *TransferData `locationName:"transferData" type:"structure"`
28968
28969	// When the certificate is valid.
28970	Validity *CertificateValidity `locationName:"validity" type:"structure"`
28971}
28972
28973// String returns the string representation
28974func (s CertificateDescription) String() string {
28975	return awsutil.Prettify(s)
28976}
28977
28978// GoString returns the string representation
28979func (s CertificateDescription) GoString() string {
28980	return s.String()
28981}
28982
28983// SetCaCertificateId sets the CaCertificateId field's value.
28984func (s *CertificateDescription) SetCaCertificateId(v string) *CertificateDescription {
28985	s.CaCertificateId = &v
28986	return s
28987}
28988
28989// SetCertificateArn sets the CertificateArn field's value.
28990func (s *CertificateDescription) SetCertificateArn(v string) *CertificateDescription {
28991	s.CertificateArn = &v
28992	return s
28993}
28994
28995// SetCertificateId sets the CertificateId field's value.
28996func (s *CertificateDescription) SetCertificateId(v string) *CertificateDescription {
28997	s.CertificateId = &v
28998	return s
28999}
29000
29001// SetCertificateMode sets the CertificateMode field's value.
29002func (s *CertificateDescription) SetCertificateMode(v string) *CertificateDescription {
29003	s.CertificateMode = &v
29004	return s
29005}
29006
29007// SetCertificatePem sets the CertificatePem field's value.
29008func (s *CertificateDescription) SetCertificatePem(v string) *CertificateDescription {
29009	s.CertificatePem = &v
29010	return s
29011}
29012
29013// SetCreationDate sets the CreationDate field's value.
29014func (s *CertificateDescription) SetCreationDate(v time.Time) *CertificateDescription {
29015	s.CreationDate = &v
29016	return s
29017}
29018
29019// SetCustomerVersion sets the CustomerVersion field's value.
29020func (s *CertificateDescription) SetCustomerVersion(v int64) *CertificateDescription {
29021	s.CustomerVersion = &v
29022	return s
29023}
29024
29025// SetGenerationId sets the GenerationId field's value.
29026func (s *CertificateDescription) SetGenerationId(v string) *CertificateDescription {
29027	s.GenerationId = &v
29028	return s
29029}
29030
29031// SetLastModifiedDate sets the LastModifiedDate field's value.
29032func (s *CertificateDescription) SetLastModifiedDate(v time.Time) *CertificateDescription {
29033	s.LastModifiedDate = &v
29034	return s
29035}
29036
29037// SetOwnedBy sets the OwnedBy field's value.
29038func (s *CertificateDescription) SetOwnedBy(v string) *CertificateDescription {
29039	s.OwnedBy = &v
29040	return s
29041}
29042
29043// SetPreviousOwnedBy sets the PreviousOwnedBy field's value.
29044func (s *CertificateDescription) SetPreviousOwnedBy(v string) *CertificateDescription {
29045	s.PreviousOwnedBy = &v
29046	return s
29047}
29048
29049// SetStatus sets the Status field's value.
29050func (s *CertificateDescription) SetStatus(v string) *CertificateDescription {
29051	s.Status = &v
29052	return s
29053}
29054
29055// SetTransferData sets the TransferData field's value.
29056func (s *CertificateDescription) SetTransferData(v *TransferData) *CertificateDescription {
29057	s.TransferData = v
29058	return s
29059}
29060
29061// SetValidity sets the Validity field's value.
29062func (s *CertificateDescription) SetValidity(v *CertificateValidity) *CertificateDescription {
29063	s.Validity = v
29064	return s
29065}
29066
29067// The certificate operation is not allowed.
29068type CertificateStateException struct {
29069	_            struct{}                  `type:"structure"`
29070	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
29071
29072	// The message for the exception.
29073	Message_ *string `locationName:"message" type:"string"`
29074}
29075
29076// String returns the string representation
29077func (s CertificateStateException) String() string {
29078	return awsutil.Prettify(s)
29079}
29080
29081// GoString returns the string representation
29082func (s CertificateStateException) GoString() string {
29083	return s.String()
29084}
29085
29086func newErrorCertificateStateException(v protocol.ResponseMetadata) error {
29087	return &CertificateStateException{
29088		RespMetadata: v,
29089	}
29090}
29091
29092// Code returns the exception type name.
29093func (s *CertificateStateException) Code() string {
29094	return "CertificateStateException"
29095}
29096
29097// Message returns the exception's message.
29098func (s *CertificateStateException) Message() string {
29099	if s.Message_ != nil {
29100		return *s.Message_
29101	}
29102	return ""
29103}
29104
29105// OrigErr always returns nil, satisfies awserr.Error interface.
29106func (s *CertificateStateException) OrigErr() error {
29107	return nil
29108}
29109
29110func (s *CertificateStateException) Error() string {
29111	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
29112}
29113
29114// Status code returns the HTTP status code for the request's response error.
29115func (s *CertificateStateException) StatusCode() int {
29116	return s.RespMetadata.StatusCode
29117}
29118
29119// RequestID returns the service's response RequestID for request.
29120func (s *CertificateStateException) RequestID() string {
29121	return s.RespMetadata.RequestID
29122}
29123
29124// The certificate is invalid.
29125type CertificateValidationException struct {
29126	_            struct{}                  `type:"structure"`
29127	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
29128
29129	// Additional information about the exception.
29130	Message_ *string `locationName:"message" type:"string"`
29131}
29132
29133// String returns the string representation
29134func (s CertificateValidationException) String() string {
29135	return awsutil.Prettify(s)
29136}
29137
29138// GoString returns the string representation
29139func (s CertificateValidationException) GoString() string {
29140	return s.String()
29141}
29142
29143func newErrorCertificateValidationException(v protocol.ResponseMetadata) error {
29144	return &CertificateValidationException{
29145		RespMetadata: v,
29146	}
29147}
29148
29149// Code returns the exception type name.
29150func (s *CertificateValidationException) Code() string {
29151	return "CertificateValidationException"
29152}
29153
29154// Message returns the exception's message.
29155func (s *CertificateValidationException) Message() string {
29156	if s.Message_ != nil {
29157		return *s.Message_
29158	}
29159	return ""
29160}
29161
29162// OrigErr always returns nil, satisfies awserr.Error interface.
29163func (s *CertificateValidationException) OrigErr() error {
29164	return nil
29165}
29166
29167func (s *CertificateValidationException) Error() string {
29168	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
29169}
29170
29171// Status code returns the HTTP status code for the request's response error.
29172func (s *CertificateValidationException) StatusCode() int {
29173	return s.RespMetadata.StatusCode
29174}
29175
29176// RequestID returns the service's response RequestID for request.
29177func (s *CertificateValidationException) RequestID() string {
29178	return s.RespMetadata.RequestID
29179}
29180
29181// When the certificate is valid.
29182type CertificateValidity struct {
29183	_ struct{} `type:"structure"`
29184
29185	// The certificate is not valid after this date.
29186	NotAfter *time.Time `locationName:"notAfter" type:"timestamp"`
29187
29188	// The certificate is not valid before this date.
29189	NotBefore *time.Time `locationName:"notBefore" type:"timestamp"`
29190}
29191
29192// String returns the string representation
29193func (s CertificateValidity) String() string {
29194	return awsutil.Prettify(s)
29195}
29196
29197// GoString returns the string representation
29198func (s CertificateValidity) GoString() string {
29199	return s.String()
29200}
29201
29202// SetNotAfter sets the NotAfter field's value.
29203func (s *CertificateValidity) SetNotAfter(v time.Time) *CertificateValidity {
29204	s.NotAfter = &v
29205	return s
29206}
29207
29208// SetNotBefore sets the NotBefore field's value.
29209func (s *CertificateValidity) SetNotBefore(v time.Time) *CertificateValidity {
29210	s.NotBefore = &v
29211	return s
29212}
29213
29214type ClearDefaultAuthorizerInput struct {
29215	_ struct{} `type:"structure"`
29216}
29217
29218// String returns the string representation
29219func (s ClearDefaultAuthorizerInput) String() string {
29220	return awsutil.Prettify(s)
29221}
29222
29223// GoString returns the string representation
29224func (s ClearDefaultAuthorizerInput) GoString() string {
29225	return s.String()
29226}
29227
29228type ClearDefaultAuthorizerOutput struct {
29229	_ struct{} `type:"structure"`
29230}
29231
29232// String returns the string representation
29233func (s ClearDefaultAuthorizerOutput) String() string {
29234	return awsutil.Prettify(s)
29235}
29236
29237// GoString returns the string representation
29238func (s ClearDefaultAuthorizerOutput) GoString() string {
29239	return s.String()
29240}
29241
29242// Describes an action that updates a CloudWatch alarm.
29243type CloudwatchAlarmAction struct {
29244	_ struct{} `type:"structure"`
29245
29246	// The CloudWatch alarm name.
29247	//
29248	// AlarmName is a required field
29249	AlarmName *string `locationName:"alarmName" type:"string" required:"true"`
29250
29251	// The IAM role that allows access to the CloudWatch alarm.
29252	//
29253	// RoleArn is a required field
29254	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
29255
29256	// The reason for the alarm change.
29257	//
29258	// StateReason is a required field
29259	StateReason *string `locationName:"stateReason" type:"string" required:"true"`
29260
29261	// The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
29262	//
29263	// StateValue is a required field
29264	StateValue *string `locationName:"stateValue" type:"string" required:"true"`
29265}
29266
29267// String returns the string representation
29268func (s CloudwatchAlarmAction) String() string {
29269	return awsutil.Prettify(s)
29270}
29271
29272// GoString returns the string representation
29273func (s CloudwatchAlarmAction) GoString() string {
29274	return s.String()
29275}
29276
29277// Validate inspects the fields of the type to determine if they are valid.
29278func (s *CloudwatchAlarmAction) Validate() error {
29279	invalidParams := request.ErrInvalidParams{Context: "CloudwatchAlarmAction"}
29280	if s.AlarmName == nil {
29281		invalidParams.Add(request.NewErrParamRequired("AlarmName"))
29282	}
29283	if s.RoleArn == nil {
29284		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
29285	}
29286	if s.StateReason == nil {
29287		invalidParams.Add(request.NewErrParamRequired("StateReason"))
29288	}
29289	if s.StateValue == nil {
29290		invalidParams.Add(request.NewErrParamRequired("StateValue"))
29291	}
29292
29293	if invalidParams.Len() > 0 {
29294		return invalidParams
29295	}
29296	return nil
29297}
29298
29299// SetAlarmName sets the AlarmName field's value.
29300func (s *CloudwatchAlarmAction) SetAlarmName(v string) *CloudwatchAlarmAction {
29301	s.AlarmName = &v
29302	return s
29303}
29304
29305// SetRoleArn sets the RoleArn field's value.
29306func (s *CloudwatchAlarmAction) SetRoleArn(v string) *CloudwatchAlarmAction {
29307	s.RoleArn = &v
29308	return s
29309}
29310
29311// SetStateReason sets the StateReason field's value.
29312func (s *CloudwatchAlarmAction) SetStateReason(v string) *CloudwatchAlarmAction {
29313	s.StateReason = &v
29314	return s
29315}
29316
29317// SetStateValue sets the StateValue field's value.
29318func (s *CloudwatchAlarmAction) SetStateValue(v string) *CloudwatchAlarmAction {
29319	s.StateValue = &v
29320	return s
29321}
29322
29323// Describes an action that sends data to CloudWatch Logs.
29324type CloudwatchLogsAction struct {
29325	_ struct{} `type:"structure"`
29326
29327	// The CloudWatch log group to which the action sends data.
29328	//
29329	// LogGroupName is a required field
29330	LogGroupName *string `locationName:"logGroupName" type:"string" required:"true"`
29331
29332	// The IAM role that allows access to the CloudWatch log.
29333	//
29334	// RoleArn is a required field
29335	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
29336}
29337
29338// String returns the string representation
29339func (s CloudwatchLogsAction) String() string {
29340	return awsutil.Prettify(s)
29341}
29342
29343// GoString returns the string representation
29344func (s CloudwatchLogsAction) GoString() string {
29345	return s.String()
29346}
29347
29348// Validate inspects the fields of the type to determine if they are valid.
29349func (s *CloudwatchLogsAction) Validate() error {
29350	invalidParams := request.ErrInvalidParams{Context: "CloudwatchLogsAction"}
29351	if s.LogGroupName == nil {
29352		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
29353	}
29354	if s.RoleArn == nil {
29355		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
29356	}
29357
29358	if invalidParams.Len() > 0 {
29359		return invalidParams
29360	}
29361	return nil
29362}
29363
29364// SetLogGroupName sets the LogGroupName field's value.
29365func (s *CloudwatchLogsAction) SetLogGroupName(v string) *CloudwatchLogsAction {
29366	s.LogGroupName = &v
29367	return s
29368}
29369
29370// SetRoleArn sets the RoleArn field's value.
29371func (s *CloudwatchLogsAction) SetRoleArn(v string) *CloudwatchLogsAction {
29372	s.RoleArn = &v
29373	return s
29374}
29375
29376// Describes an action that captures a CloudWatch metric.
29377type CloudwatchMetricAction struct {
29378	_ struct{} `type:"structure"`
29379
29380	// The CloudWatch metric name.
29381	//
29382	// MetricName is a required field
29383	MetricName *string `locationName:"metricName" type:"string" required:"true"`
29384
29385	// The CloudWatch metric namespace name.
29386	//
29387	// MetricNamespace is a required field
29388	MetricNamespace *string `locationName:"metricNamespace" type:"string" required:"true"`
29389
29390	// An optional Unix timestamp (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
29391	MetricTimestamp *string `locationName:"metricTimestamp" type:"string"`
29392
29393	// The metric unit (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
29394	// supported by CloudWatch.
29395	//
29396	// MetricUnit is a required field
29397	MetricUnit *string `locationName:"metricUnit" type:"string" required:"true"`
29398
29399	// The CloudWatch metric value.
29400	//
29401	// MetricValue is a required field
29402	MetricValue *string `locationName:"metricValue" type:"string" required:"true"`
29403
29404	// The IAM role that allows access to the CloudWatch metric.
29405	//
29406	// RoleArn is a required field
29407	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
29408}
29409
29410// String returns the string representation
29411func (s CloudwatchMetricAction) String() string {
29412	return awsutil.Prettify(s)
29413}
29414
29415// GoString returns the string representation
29416func (s CloudwatchMetricAction) GoString() string {
29417	return s.String()
29418}
29419
29420// Validate inspects the fields of the type to determine if they are valid.
29421func (s *CloudwatchMetricAction) Validate() error {
29422	invalidParams := request.ErrInvalidParams{Context: "CloudwatchMetricAction"}
29423	if s.MetricName == nil {
29424		invalidParams.Add(request.NewErrParamRequired("MetricName"))
29425	}
29426	if s.MetricNamespace == nil {
29427		invalidParams.Add(request.NewErrParamRequired("MetricNamespace"))
29428	}
29429	if s.MetricUnit == nil {
29430		invalidParams.Add(request.NewErrParamRequired("MetricUnit"))
29431	}
29432	if s.MetricValue == nil {
29433		invalidParams.Add(request.NewErrParamRequired("MetricValue"))
29434	}
29435	if s.RoleArn == nil {
29436		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
29437	}
29438
29439	if invalidParams.Len() > 0 {
29440		return invalidParams
29441	}
29442	return nil
29443}
29444
29445// SetMetricName sets the MetricName field's value.
29446func (s *CloudwatchMetricAction) SetMetricName(v string) *CloudwatchMetricAction {
29447	s.MetricName = &v
29448	return s
29449}
29450
29451// SetMetricNamespace sets the MetricNamespace field's value.
29452func (s *CloudwatchMetricAction) SetMetricNamespace(v string) *CloudwatchMetricAction {
29453	s.MetricNamespace = &v
29454	return s
29455}
29456
29457// SetMetricTimestamp sets the MetricTimestamp field's value.
29458func (s *CloudwatchMetricAction) SetMetricTimestamp(v string) *CloudwatchMetricAction {
29459	s.MetricTimestamp = &v
29460	return s
29461}
29462
29463// SetMetricUnit sets the MetricUnit field's value.
29464func (s *CloudwatchMetricAction) SetMetricUnit(v string) *CloudwatchMetricAction {
29465	s.MetricUnit = &v
29466	return s
29467}
29468
29469// SetMetricValue sets the MetricValue field's value.
29470func (s *CloudwatchMetricAction) SetMetricValue(v string) *CloudwatchMetricAction {
29471	s.MetricValue = &v
29472	return s
29473}
29474
29475// SetRoleArn sets the RoleArn field's value.
29476func (s *CloudwatchMetricAction) SetRoleArn(v string) *CloudwatchMetricAction {
29477	s.RoleArn = &v
29478	return s
29479}
29480
29481// Describes the method to use when code signing a file.
29482type CodeSigning struct {
29483	_ struct{} `type:"structure"`
29484
29485	// The ID of the AWSSignerJob which was created to sign the file.
29486	AwsSignerJobId *string `locationName:"awsSignerJobId" type:"string"`
29487
29488	// A custom method for code signing a file.
29489	CustomCodeSigning *CustomCodeSigning `locationName:"customCodeSigning" type:"structure"`
29490
29491	// Describes the code-signing job.
29492	StartSigningJobParameter *StartSigningJobParameter `locationName:"startSigningJobParameter" type:"structure"`
29493}
29494
29495// String returns the string representation
29496func (s CodeSigning) String() string {
29497	return awsutil.Prettify(s)
29498}
29499
29500// GoString returns the string representation
29501func (s CodeSigning) GoString() string {
29502	return s.String()
29503}
29504
29505// Validate inspects the fields of the type to determine if they are valid.
29506func (s *CodeSigning) Validate() error {
29507	invalidParams := request.ErrInvalidParams{Context: "CodeSigning"}
29508	if s.StartSigningJobParameter != nil {
29509		if err := s.StartSigningJobParameter.Validate(); err != nil {
29510			invalidParams.AddNested("StartSigningJobParameter", err.(request.ErrInvalidParams))
29511		}
29512	}
29513
29514	if invalidParams.Len() > 0 {
29515		return invalidParams
29516	}
29517	return nil
29518}
29519
29520// SetAwsSignerJobId sets the AwsSignerJobId field's value.
29521func (s *CodeSigning) SetAwsSignerJobId(v string) *CodeSigning {
29522	s.AwsSignerJobId = &v
29523	return s
29524}
29525
29526// SetCustomCodeSigning sets the CustomCodeSigning field's value.
29527func (s *CodeSigning) SetCustomCodeSigning(v *CustomCodeSigning) *CodeSigning {
29528	s.CustomCodeSigning = v
29529	return s
29530}
29531
29532// SetStartSigningJobParameter sets the StartSigningJobParameter field's value.
29533func (s *CodeSigning) SetStartSigningJobParameter(v *StartSigningJobParameter) *CodeSigning {
29534	s.StartSigningJobParameter = v
29535	return s
29536}
29537
29538// Describes the certificate chain being used when code signing a file.
29539type CodeSigningCertificateChain struct {
29540	_ struct{} `type:"structure"`
29541
29542	// The name of the certificate.
29543	CertificateName *string `locationName:"certificateName" type:"string"`
29544
29545	// A base64 encoded binary representation of the code signing certificate chain.
29546	InlineDocument *string `locationName:"inlineDocument" type:"string"`
29547}
29548
29549// String returns the string representation
29550func (s CodeSigningCertificateChain) String() string {
29551	return awsutil.Prettify(s)
29552}
29553
29554// GoString returns the string representation
29555func (s CodeSigningCertificateChain) GoString() string {
29556	return s.String()
29557}
29558
29559// SetCertificateName sets the CertificateName field's value.
29560func (s *CodeSigningCertificateChain) SetCertificateName(v string) *CodeSigningCertificateChain {
29561	s.CertificateName = &v
29562	return s
29563}
29564
29565// SetInlineDocument sets the InlineDocument field's value.
29566func (s *CodeSigningCertificateChain) SetInlineDocument(v string) *CodeSigningCertificateChain {
29567	s.InlineDocument = &v
29568	return s
29569}
29570
29571// Describes the signature for a file.
29572type CodeSigningSignature struct {
29573	_ struct{} `type:"structure"`
29574
29575	// A base64 encoded binary representation of the code signing signature.
29576	//
29577	// InlineDocument is automatically base64 encoded/decoded by the SDK.
29578	InlineDocument []byte `locationName:"inlineDocument" type:"blob"`
29579}
29580
29581// String returns the string representation
29582func (s CodeSigningSignature) String() string {
29583	return awsutil.Prettify(s)
29584}
29585
29586// GoString returns the string representation
29587func (s CodeSigningSignature) GoString() string {
29588	return s.String()
29589}
29590
29591// SetInlineDocument sets the InlineDocument field's value.
29592func (s *CodeSigningSignature) SetInlineDocument(v []byte) *CodeSigningSignature {
29593	s.InlineDocument = v
29594	return s
29595}
29596
29597// Configuration.
29598type Configuration struct {
29599	_ struct{} `type:"structure"`
29600
29601	// True to enable the configuration.
29602	Enabled *bool `type:"boolean"`
29603}
29604
29605// String returns the string representation
29606func (s Configuration) String() string {
29607	return awsutil.Prettify(s)
29608}
29609
29610// GoString returns the string representation
29611func (s Configuration) GoString() string {
29612	return s.String()
29613}
29614
29615// SetEnabled sets the Enabled field's value.
29616func (s *Configuration) SetEnabled(v bool) *Configuration {
29617	s.Enabled = &v
29618	return s
29619}
29620
29621type ConfirmTopicRuleDestinationInput struct {
29622	_ struct{} `type:"structure"`
29623
29624	// The token used to confirm ownership or access to the topic rule confirmation
29625	// URL.
29626	//
29627	// ConfirmationToken is a required field
29628	ConfirmationToken *string `location:"uri" locationName:"confirmationToken" min:"1" type:"string" required:"true"`
29629}
29630
29631// String returns the string representation
29632func (s ConfirmTopicRuleDestinationInput) String() string {
29633	return awsutil.Prettify(s)
29634}
29635
29636// GoString returns the string representation
29637func (s ConfirmTopicRuleDestinationInput) GoString() string {
29638	return s.String()
29639}
29640
29641// Validate inspects the fields of the type to determine if they are valid.
29642func (s *ConfirmTopicRuleDestinationInput) Validate() error {
29643	invalidParams := request.ErrInvalidParams{Context: "ConfirmTopicRuleDestinationInput"}
29644	if s.ConfirmationToken == nil {
29645		invalidParams.Add(request.NewErrParamRequired("ConfirmationToken"))
29646	}
29647	if s.ConfirmationToken != nil && len(*s.ConfirmationToken) < 1 {
29648		invalidParams.Add(request.NewErrParamMinLen("ConfirmationToken", 1))
29649	}
29650
29651	if invalidParams.Len() > 0 {
29652		return invalidParams
29653	}
29654	return nil
29655}
29656
29657// SetConfirmationToken sets the ConfirmationToken field's value.
29658func (s *ConfirmTopicRuleDestinationInput) SetConfirmationToken(v string) *ConfirmTopicRuleDestinationInput {
29659	s.ConfirmationToken = &v
29660	return s
29661}
29662
29663type ConfirmTopicRuleDestinationOutput struct {
29664	_ struct{} `type:"structure"`
29665}
29666
29667// String returns the string representation
29668func (s ConfirmTopicRuleDestinationOutput) String() string {
29669	return awsutil.Prettify(s)
29670}
29671
29672// GoString returns the string representation
29673func (s ConfirmTopicRuleDestinationOutput) GoString() string {
29674	return s.String()
29675}
29676
29677// A resource with the same name already exists.
29678type ConflictException struct {
29679	_            struct{}                  `type:"structure"`
29680	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
29681
29682	Message_ *string `locationName:"message" type:"string"`
29683}
29684
29685// String returns the string representation
29686func (s ConflictException) String() string {
29687	return awsutil.Prettify(s)
29688}
29689
29690// GoString returns the string representation
29691func (s ConflictException) GoString() string {
29692	return s.String()
29693}
29694
29695func newErrorConflictException(v protocol.ResponseMetadata) error {
29696	return &ConflictException{
29697		RespMetadata: v,
29698	}
29699}
29700
29701// Code returns the exception type name.
29702func (s *ConflictException) Code() string {
29703	return "ConflictException"
29704}
29705
29706// Message returns the exception's message.
29707func (s *ConflictException) Message() string {
29708	if s.Message_ != nil {
29709		return *s.Message_
29710	}
29711	return ""
29712}
29713
29714// OrigErr always returns nil, satisfies awserr.Error interface.
29715func (s *ConflictException) OrigErr() error {
29716	return nil
29717}
29718
29719func (s *ConflictException) Error() string {
29720	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
29721}
29722
29723// Status code returns the HTTP status code for the request's response error.
29724func (s *ConflictException) StatusCode() int {
29725	return s.RespMetadata.StatusCode
29726}
29727
29728// RequestID returns the service's response RequestID for request.
29729func (s *ConflictException) RequestID() string {
29730	return s.RespMetadata.RequestID
29731}
29732
29733// A conflicting resource update exception. This exception is thrown when two
29734// pending updates cause a conflict.
29735type ConflictingResourceUpdateException struct {
29736	_            struct{}                  `type:"structure"`
29737	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
29738
29739	// The message for the exception.
29740	Message_ *string `locationName:"message" type:"string"`
29741}
29742
29743// String returns the string representation
29744func (s ConflictingResourceUpdateException) String() string {
29745	return awsutil.Prettify(s)
29746}
29747
29748// GoString returns the string representation
29749func (s ConflictingResourceUpdateException) GoString() string {
29750	return s.String()
29751}
29752
29753func newErrorConflictingResourceUpdateException(v protocol.ResponseMetadata) error {
29754	return &ConflictingResourceUpdateException{
29755		RespMetadata: v,
29756	}
29757}
29758
29759// Code returns the exception type name.
29760func (s *ConflictingResourceUpdateException) Code() string {
29761	return "ConflictingResourceUpdateException"
29762}
29763
29764// Message returns the exception's message.
29765func (s *ConflictingResourceUpdateException) Message() string {
29766	if s.Message_ != nil {
29767		return *s.Message_
29768	}
29769	return ""
29770}
29771
29772// OrigErr always returns nil, satisfies awserr.Error interface.
29773func (s *ConflictingResourceUpdateException) OrigErr() error {
29774	return nil
29775}
29776
29777func (s *ConflictingResourceUpdateException) Error() string {
29778	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
29779}
29780
29781// Status code returns the HTTP status code for the request's response error.
29782func (s *ConflictingResourceUpdateException) StatusCode() int {
29783	return s.RespMetadata.StatusCode
29784}
29785
29786// RequestID returns the service's response RequestID for request.
29787func (s *ConflictingResourceUpdateException) RequestID() string {
29788	return s.RespMetadata.RequestID
29789}
29790
29791type CreateAuditSuppressionInput struct {
29792	_ struct{} `type:"structure"`
29793
29794	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
29795	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
29796	// to select which checks are enabled.)
29797	//
29798	// CheckName is a required field
29799	CheckName *string `locationName:"checkName" type:"string" required:"true"`
29800
29801	// The epoch timestamp in seconds at which this suppression expires.
29802	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
29803
29804	// The description of the audit suppression.
29805	Description *string `locationName:"description" type:"string"`
29806
29807	// The epoch timestamp in seconds at which this suppression expires.
29808	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
29809
29810	// Information that identifies the noncompliant resource.
29811	//
29812	// ResourceIdentifier is a required field
29813	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
29814
29815	// Indicates whether a suppression should exist indefinitely or not.
29816	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
29817}
29818
29819// String returns the string representation
29820func (s CreateAuditSuppressionInput) String() string {
29821	return awsutil.Prettify(s)
29822}
29823
29824// GoString returns the string representation
29825func (s CreateAuditSuppressionInput) GoString() string {
29826	return s.String()
29827}
29828
29829// Validate inspects the fields of the type to determine if they are valid.
29830func (s *CreateAuditSuppressionInput) Validate() error {
29831	invalidParams := request.ErrInvalidParams{Context: "CreateAuditSuppressionInput"}
29832	if s.CheckName == nil {
29833		invalidParams.Add(request.NewErrParamRequired("CheckName"))
29834	}
29835	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
29836		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
29837	}
29838	if s.ResourceIdentifier == nil {
29839		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
29840	}
29841	if s.ResourceIdentifier != nil {
29842		if err := s.ResourceIdentifier.Validate(); err != nil {
29843			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
29844		}
29845	}
29846
29847	if invalidParams.Len() > 0 {
29848		return invalidParams
29849	}
29850	return nil
29851}
29852
29853// SetCheckName sets the CheckName field's value.
29854func (s *CreateAuditSuppressionInput) SetCheckName(v string) *CreateAuditSuppressionInput {
29855	s.CheckName = &v
29856	return s
29857}
29858
29859// SetClientRequestToken sets the ClientRequestToken field's value.
29860func (s *CreateAuditSuppressionInput) SetClientRequestToken(v string) *CreateAuditSuppressionInput {
29861	s.ClientRequestToken = &v
29862	return s
29863}
29864
29865// SetDescription sets the Description field's value.
29866func (s *CreateAuditSuppressionInput) SetDescription(v string) *CreateAuditSuppressionInput {
29867	s.Description = &v
29868	return s
29869}
29870
29871// SetExpirationDate sets the ExpirationDate field's value.
29872func (s *CreateAuditSuppressionInput) SetExpirationDate(v time.Time) *CreateAuditSuppressionInput {
29873	s.ExpirationDate = &v
29874	return s
29875}
29876
29877// SetResourceIdentifier sets the ResourceIdentifier field's value.
29878func (s *CreateAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *CreateAuditSuppressionInput {
29879	s.ResourceIdentifier = v
29880	return s
29881}
29882
29883// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
29884func (s *CreateAuditSuppressionInput) SetSuppressIndefinitely(v bool) *CreateAuditSuppressionInput {
29885	s.SuppressIndefinitely = &v
29886	return s
29887}
29888
29889type CreateAuditSuppressionOutput struct {
29890	_ struct{} `type:"structure"`
29891}
29892
29893// String returns the string representation
29894func (s CreateAuditSuppressionOutput) String() string {
29895	return awsutil.Prettify(s)
29896}
29897
29898// GoString returns the string representation
29899func (s CreateAuditSuppressionOutput) GoString() string {
29900	return s.String()
29901}
29902
29903type CreateAuthorizerInput struct {
29904	_ struct{} `type:"structure"`
29905
29906	// The ARN of the authorizer's Lambda function.
29907	//
29908	// AuthorizerFunctionArn is a required field
29909	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string" required:"true"`
29910
29911	// The authorizer name.
29912	//
29913	// AuthorizerName is a required field
29914	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
29915
29916	// Specifies whether IoT validates the token signature in an authorization request.
29917	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
29918
29919	// The status of the create authorizer request.
29920	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
29921
29922	// Metadata which can be used to manage the custom authorizer.
29923	//
29924	// For URI Request parameters use format: ...key1=value1&key2=value2...
29925	//
29926	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
29927	//
29928	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
29929	Tags []*Tag `locationName:"tags" type:"list"`
29930
29931	// The name of the token key used to extract the token from the HTTP headers.
29932	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
29933
29934	// The public keys used to verify the digital signature returned by your custom
29935	// authentication service.
29936	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
29937}
29938
29939// String returns the string representation
29940func (s CreateAuthorizerInput) String() string {
29941	return awsutil.Prettify(s)
29942}
29943
29944// GoString returns the string representation
29945func (s CreateAuthorizerInput) GoString() string {
29946	return s.String()
29947}
29948
29949// Validate inspects the fields of the type to determine if they are valid.
29950func (s *CreateAuthorizerInput) Validate() error {
29951	invalidParams := request.ErrInvalidParams{Context: "CreateAuthorizerInput"}
29952	if s.AuthorizerFunctionArn == nil {
29953		invalidParams.Add(request.NewErrParamRequired("AuthorizerFunctionArn"))
29954	}
29955	if s.AuthorizerName == nil {
29956		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
29957	}
29958	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
29959		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
29960	}
29961	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
29962		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
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// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
29982func (s *CreateAuthorizerInput) SetAuthorizerFunctionArn(v string) *CreateAuthorizerInput {
29983	s.AuthorizerFunctionArn = &v
29984	return s
29985}
29986
29987// SetAuthorizerName sets the AuthorizerName field's value.
29988func (s *CreateAuthorizerInput) SetAuthorizerName(v string) *CreateAuthorizerInput {
29989	s.AuthorizerName = &v
29990	return s
29991}
29992
29993// SetSigningDisabled sets the SigningDisabled field's value.
29994func (s *CreateAuthorizerInput) SetSigningDisabled(v bool) *CreateAuthorizerInput {
29995	s.SigningDisabled = &v
29996	return s
29997}
29998
29999// SetStatus sets the Status field's value.
30000func (s *CreateAuthorizerInput) SetStatus(v string) *CreateAuthorizerInput {
30001	s.Status = &v
30002	return s
30003}
30004
30005// SetTags sets the Tags field's value.
30006func (s *CreateAuthorizerInput) SetTags(v []*Tag) *CreateAuthorizerInput {
30007	s.Tags = v
30008	return s
30009}
30010
30011// SetTokenKeyName sets the TokenKeyName field's value.
30012func (s *CreateAuthorizerInput) SetTokenKeyName(v string) *CreateAuthorizerInput {
30013	s.TokenKeyName = &v
30014	return s
30015}
30016
30017// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
30018func (s *CreateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *CreateAuthorizerInput {
30019	s.TokenSigningPublicKeys = v
30020	return s
30021}
30022
30023type CreateAuthorizerOutput struct {
30024	_ struct{} `type:"structure"`
30025
30026	// The authorizer ARN.
30027	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
30028
30029	// The authorizer's name.
30030	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
30031}
30032
30033// String returns the string representation
30034func (s CreateAuthorizerOutput) String() string {
30035	return awsutil.Prettify(s)
30036}
30037
30038// GoString returns the string representation
30039func (s CreateAuthorizerOutput) GoString() string {
30040	return s.String()
30041}
30042
30043// SetAuthorizerArn sets the AuthorizerArn field's value.
30044func (s *CreateAuthorizerOutput) SetAuthorizerArn(v string) *CreateAuthorizerOutput {
30045	s.AuthorizerArn = &v
30046	return s
30047}
30048
30049// SetAuthorizerName sets the AuthorizerName field's value.
30050func (s *CreateAuthorizerOutput) SetAuthorizerName(v string) *CreateAuthorizerOutput {
30051	s.AuthorizerName = &v
30052	return s
30053}
30054
30055type CreateBillingGroupInput struct {
30056	_ struct{} `type:"structure"`
30057
30058	// The name you wish to give to the billing group.
30059	//
30060	// BillingGroupName is a required field
30061	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
30062
30063	// The properties of the billing group.
30064	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
30065
30066	// Metadata which can be used to manage the billing group.
30067	Tags []*Tag `locationName:"tags" type:"list"`
30068}
30069
30070// String returns the string representation
30071func (s CreateBillingGroupInput) String() string {
30072	return awsutil.Prettify(s)
30073}
30074
30075// GoString returns the string representation
30076func (s CreateBillingGroupInput) GoString() string {
30077	return s.String()
30078}
30079
30080// Validate inspects the fields of the type to determine if they are valid.
30081func (s *CreateBillingGroupInput) Validate() error {
30082	invalidParams := request.ErrInvalidParams{Context: "CreateBillingGroupInput"}
30083	if s.BillingGroupName == nil {
30084		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
30085	}
30086	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
30087		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
30088	}
30089	if s.Tags != nil {
30090		for i, v := range s.Tags {
30091			if v == nil {
30092				continue
30093			}
30094			if err := v.Validate(); err != nil {
30095				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30096			}
30097		}
30098	}
30099
30100	if invalidParams.Len() > 0 {
30101		return invalidParams
30102	}
30103	return nil
30104}
30105
30106// SetBillingGroupName sets the BillingGroupName field's value.
30107func (s *CreateBillingGroupInput) SetBillingGroupName(v string) *CreateBillingGroupInput {
30108	s.BillingGroupName = &v
30109	return s
30110}
30111
30112// SetBillingGroupProperties sets the BillingGroupProperties field's value.
30113func (s *CreateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *CreateBillingGroupInput {
30114	s.BillingGroupProperties = v
30115	return s
30116}
30117
30118// SetTags sets the Tags field's value.
30119func (s *CreateBillingGroupInput) SetTags(v []*Tag) *CreateBillingGroupInput {
30120	s.Tags = v
30121	return s
30122}
30123
30124type CreateBillingGroupOutput struct {
30125	_ struct{} `type:"structure"`
30126
30127	// The ARN of the billing group.
30128	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
30129
30130	// The ID of the billing group.
30131	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
30132
30133	// The name you gave to the billing group.
30134	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
30135}
30136
30137// String returns the string representation
30138func (s CreateBillingGroupOutput) String() string {
30139	return awsutil.Prettify(s)
30140}
30141
30142// GoString returns the string representation
30143func (s CreateBillingGroupOutput) GoString() string {
30144	return s.String()
30145}
30146
30147// SetBillingGroupArn sets the BillingGroupArn field's value.
30148func (s *CreateBillingGroupOutput) SetBillingGroupArn(v string) *CreateBillingGroupOutput {
30149	s.BillingGroupArn = &v
30150	return s
30151}
30152
30153// SetBillingGroupId sets the BillingGroupId field's value.
30154func (s *CreateBillingGroupOutput) SetBillingGroupId(v string) *CreateBillingGroupOutput {
30155	s.BillingGroupId = &v
30156	return s
30157}
30158
30159// SetBillingGroupName sets the BillingGroupName field's value.
30160func (s *CreateBillingGroupOutput) SetBillingGroupName(v string) *CreateBillingGroupOutput {
30161	s.BillingGroupName = &v
30162	return s
30163}
30164
30165// The input for the CreateCertificateFromCsr operation.
30166type CreateCertificateFromCsrInput struct {
30167	_ struct{} `type:"structure"`
30168
30169	// The certificate signing request (CSR).
30170	//
30171	// CertificateSigningRequest is a required field
30172	CertificateSigningRequest *string `locationName:"certificateSigningRequest" min:"1" type:"string" required:"true"`
30173
30174	// Specifies whether the certificate is active.
30175	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
30176}
30177
30178// String returns the string representation
30179func (s CreateCertificateFromCsrInput) String() string {
30180	return awsutil.Prettify(s)
30181}
30182
30183// GoString returns the string representation
30184func (s CreateCertificateFromCsrInput) GoString() string {
30185	return s.String()
30186}
30187
30188// Validate inspects the fields of the type to determine if they are valid.
30189func (s *CreateCertificateFromCsrInput) Validate() error {
30190	invalidParams := request.ErrInvalidParams{Context: "CreateCertificateFromCsrInput"}
30191	if s.CertificateSigningRequest == nil {
30192		invalidParams.Add(request.NewErrParamRequired("CertificateSigningRequest"))
30193	}
30194	if s.CertificateSigningRequest != nil && len(*s.CertificateSigningRequest) < 1 {
30195		invalidParams.Add(request.NewErrParamMinLen("CertificateSigningRequest", 1))
30196	}
30197
30198	if invalidParams.Len() > 0 {
30199		return invalidParams
30200	}
30201	return nil
30202}
30203
30204// SetCertificateSigningRequest sets the CertificateSigningRequest field's value.
30205func (s *CreateCertificateFromCsrInput) SetCertificateSigningRequest(v string) *CreateCertificateFromCsrInput {
30206	s.CertificateSigningRequest = &v
30207	return s
30208}
30209
30210// SetSetAsActive sets the SetAsActive field's value.
30211func (s *CreateCertificateFromCsrInput) SetSetAsActive(v bool) *CreateCertificateFromCsrInput {
30212	s.SetAsActive = &v
30213	return s
30214}
30215
30216// The output from the CreateCertificateFromCsr operation.
30217type CreateCertificateFromCsrOutput struct {
30218	_ struct{} `type:"structure"`
30219
30220	// The Amazon Resource Name (ARN) of the certificate. You can use the ARN as
30221	// a principal for policy operations.
30222	CertificateArn *string `locationName:"certificateArn" type:"string"`
30223
30224	// The ID of the certificate. Certificate management operations only take a
30225	// certificateId.
30226	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
30227
30228	// The certificate data, in PEM format.
30229	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
30230}
30231
30232// String returns the string representation
30233func (s CreateCertificateFromCsrOutput) String() string {
30234	return awsutil.Prettify(s)
30235}
30236
30237// GoString returns the string representation
30238func (s CreateCertificateFromCsrOutput) GoString() string {
30239	return s.String()
30240}
30241
30242// SetCertificateArn sets the CertificateArn field's value.
30243func (s *CreateCertificateFromCsrOutput) SetCertificateArn(v string) *CreateCertificateFromCsrOutput {
30244	s.CertificateArn = &v
30245	return s
30246}
30247
30248// SetCertificateId sets the CertificateId field's value.
30249func (s *CreateCertificateFromCsrOutput) SetCertificateId(v string) *CreateCertificateFromCsrOutput {
30250	s.CertificateId = &v
30251	return s
30252}
30253
30254// SetCertificatePem sets the CertificatePem field's value.
30255func (s *CreateCertificateFromCsrOutput) SetCertificatePem(v string) *CreateCertificateFromCsrOutput {
30256	s.CertificatePem = &v
30257	return s
30258}
30259
30260type CreateCustomMetricInput struct {
30261	_ struct{} `type:"structure"`
30262
30263	// Each custom metric must have a unique client request token. If you try to
30264	// create a new custom metric that already exists with a different token, an
30265	// exception occurs. If you omit this value, Amazon Web Services SDKs will automatically
30266	// generate a unique client request.
30267	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
30268
30269	// Field represents a friendly name in the console for the custom metric; it
30270	// doesn't have to be unique. Don't use this name as the metric identifier in
30271	// the device metric report. Can be updated once defined.
30272	DisplayName *string `locationName:"displayName" type:"string"`
30273
30274	// The name of the custom metric. This will be used in the metric report submitted
30275	// from the device/thing. Shouldn't begin with aws:. Cannot be updated once
30276	// defined.
30277	//
30278	// MetricName is a required field
30279	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
30280
30281	// The type of the custom metric. Types include string-list, ip-address-list,
30282	// number-list, and number.
30283	//
30284	// MetricType is a required field
30285	MetricType *string `locationName:"metricType" type:"string" required:"true" enum:"CustomMetricType"`
30286
30287	// Metadata that can be used to manage the custom metric.
30288	Tags []*Tag `locationName:"tags" type:"list"`
30289}
30290
30291// String returns the string representation
30292func (s CreateCustomMetricInput) String() string {
30293	return awsutil.Prettify(s)
30294}
30295
30296// GoString returns the string representation
30297func (s CreateCustomMetricInput) GoString() string {
30298	return s.String()
30299}
30300
30301// Validate inspects the fields of the type to determine if they are valid.
30302func (s *CreateCustomMetricInput) Validate() error {
30303	invalidParams := request.ErrInvalidParams{Context: "CreateCustomMetricInput"}
30304	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
30305		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
30306	}
30307	if s.MetricName == nil {
30308		invalidParams.Add(request.NewErrParamRequired("MetricName"))
30309	}
30310	if s.MetricName != nil && len(*s.MetricName) < 1 {
30311		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
30312	}
30313	if s.MetricType == nil {
30314		invalidParams.Add(request.NewErrParamRequired("MetricType"))
30315	}
30316	if s.Tags != nil {
30317		for i, v := range s.Tags {
30318			if v == nil {
30319				continue
30320			}
30321			if err := v.Validate(); err != nil {
30322				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30323			}
30324		}
30325	}
30326
30327	if invalidParams.Len() > 0 {
30328		return invalidParams
30329	}
30330	return nil
30331}
30332
30333// SetClientRequestToken sets the ClientRequestToken field's value.
30334func (s *CreateCustomMetricInput) SetClientRequestToken(v string) *CreateCustomMetricInput {
30335	s.ClientRequestToken = &v
30336	return s
30337}
30338
30339// SetDisplayName sets the DisplayName field's value.
30340func (s *CreateCustomMetricInput) SetDisplayName(v string) *CreateCustomMetricInput {
30341	s.DisplayName = &v
30342	return s
30343}
30344
30345// SetMetricName sets the MetricName field's value.
30346func (s *CreateCustomMetricInput) SetMetricName(v string) *CreateCustomMetricInput {
30347	s.MetricName = &v
30348	return s
30349}
30350
30351// SetMetricType sets the MetricType field's value.
30352func (s *CreateCustomMetricInput) SetMetricType(v string) *CreateCustomMetricInput {
30353	s.MetricType = &v
30354	return s
30355}
30356
30357// SetTags sets the Tags field's value.
30358func (s *CreateCustomMetricInput) SetTags(v []*Tag) *CreateCustomMetricInput {
30359	s.Tags = v
30360	return s
30361}
30362
30363type CreateCustomMetricOutput struct {
30364	_ struct{} `type:"structure"`
30365
30366	// The Amazon Resource Number (ARN) of the custom metric, e.g. arn:aws-partition:iot:region:accountId:custommetric/metricName
30367	MetricArn *string `locationName:"metricArn" type:"string"`
30368
30369	// The name of the custom metric to be used in the metric report.
30370	MetricName *string `locationName:"metricName" min:"1" type:"string"`
30371}
30372
30373// String returns the string representation
30374func (s CreateCustomMetricOutput) String() string {
30375	return awsutil.Prettify(s)
30376}
30377
30378// GoString returns the string representation
30379func (s CreateCustomMetricOutput) GoString() string {
30380	return s.String()
30381}
30382
30383// SetMetricArn sets the MetricArn field's value.
30384func (s *CreateCustomMetricOutput) SetMetricArn(v string) *CreateCustomMetricOutput {
30385	s.MetricArn = &v
30386	return s
30387}
30388
30389// SetMetricName sets the MetricName field's value.
30390func (s *CreateCustomMetricOutput) SetMetricName(v string) *CreateCustomMetricOutput {
30391	s.MetricName = &v
30392	return s
30393}
30394
30395type CreateDimensionInput struct {
30396	_ struct{} `type:"structure"`
30397
30398	// Each dimension must have a unique client request token. If you try to create
30399	// a new dimension with the same token as a dimension that already exists, an
30400	// exception occurs. If you omit this value, Amazon Web Services SDKs will automatically
30401	// generate a unique client request.
30402	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
30403
30404	// A unique identifier for the dimension. Choose something that describes the
30405	// type and value to make it easy to remember what it does.
30406	//
30407	// Name is a required field
30408	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
30409
30410	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
30411	// dimensions, this is a pattern used to match the MQTT topic (for example,
30412	// "admin/#").
30413	//
30414	// StringValues is a required field
30415	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
30416
30417	// Metadata that can be used to manage the dimension.
30418	Tags []*Tag `locationName:"tags" type:"list"`
30419
30420	// Specifies the type of dimension. Supported types: TOPIC_FILTER.
30421	//
30422	// Type is a required field
30423	Type *string `locationName:"type" type:"string" required:"true" enum:"DimensionType"`
30424}
30425
30426// String returns the string representation
30427func (s CreateDimensionInput) String() string {
30428	return awsutil.Prettify(s)
30429}
30430
30431// GoString returns the string representation
30432func (s CreateDimensionInput) GoString() string {
30433	return s.String()
30434}
30435
30436// Validate inspects the fields of the type to determine if they are valid.
30437func (s *CreateDimensionInput) Validate() error {
30438	invalidParams := request.ErrInvalidParams{Context: "CreateDimensionInput"}
30439	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
30440		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
30441	}
30442	if s.Name == nil {
30443		invalidParams.Add(request.NewErrParamRequired("Name"))
30444	}
30445	if s.Name != nil && len(*s.Name) < 1 {
30446		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
30447	}
30448	if s.StringValues == nil {
30449		invalidParams.Add(request.NewErrParamRequired("StringValues"))
30450	}
30451	if s.StringValues != nil && len(s.StringValues) < 1 {
30452		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
30453	}
30454	if s.Type == nil {
30455		invalidParams.Add(request.NewErrParamRequired("Type"))
30456	}
30457	if s.Tags != nil {
30458		for i, v := range s.Tags {
30459			if v == nil {
30460				continue
30461			}
30462			if err := v.Validate(); err != nil {
30463				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30464			}
30465		}
30466	}
30467
30468	if invalidParams.Len() > 0 {
30469		return invalidParams
30470	}
30471	return nil
30472}
30473
30474// SetClientRequestToken sets the ClientRequestToken field's value.
30475func (s *CreateDimensionInput) SetClientRequestToken(v string) *CreateDimensionInput {
30476	s.ClientRequestToken = &v
30477	return s
30478}
30479
30480// SetName sets the Name field's value.
30481func (s *CreateDimensionInput) SetName(v string) *CreateDimensionInput {
30482	s.Name = &v
30483	return s
30484}
30485
30486// SetStringValues sets the StringValues field's value.
30487func (s *CreateDimensionInput) SetStringValues(v []*string) *CreateDimensionInput {
30488	s.StringValues = v
30489	return s
30490}
30491
30492// SetTags sets the Tags field's value.
30493func (s *CreateDimensionInput) SetTags(v []*Tag) *CreateDimensionInput {
30494	s.Tags = v
30495	return s
30496}
30497
30498// SetType sets the Type field's value.
30499func (s *CreateDimensionInput) SetType(v string) *CreateDimensionInput {
30500	s.Type = &v
30501	return s
30502}
30503
30504type CreateDimensionOutput struct {
30505	_ struct{} `type:"structure"`
30506
30507	// The Amazon Resource Name (ARN) of the created dimension.
30508	Arn *string `locationName:"arn" type:"string"`
30509
30510	// A unique identifier for the dimension.
30511	Name *string `locationName:"name" min:"1" type:"string"`
30512}
30513
30514// String returns the string representation
30515func (s CreateDimensionOutput) String() string {
30516	return awsutil.Prettify(s)
30517}
30518
30519// GoString returns the string representation
30520func (s CreateDimensionOutput) GoString() string {
30521	return s.String()
30522}
30523
30524// SetArn sets the Arn field's value.
30525func (s *CreateDimensionOutput) SetArn(v string) *CreateDimensionOutput {
30526	s.Arn = &v
30527	return s
30528}
30529
30530// SetName sets the Name field's value.
30531func (s *CreateDimensionOutput) SetName(v string) *CreateDimensionOutput {
30532	s.Name = &v
30533	return s
30534}
30535
30536type CreateDomainConfigurationInput struct {
30537	_ struct{} `type:"structure"`
30538
30539	// An object that specifies the authorization service for a domain.
30540	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
30541
30542	// The name of the domain configuration. This value must be unique to a region.
30543	//
30544	// DomainConfigurationName is a required field
30545	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
30546
30547	// The name of the domain.
30548	DomainName *string `locationName:"domainName" min:"1" type:"string"`
30549
30550	// The ARNs of the certificates that IoT passes to the device during the TLS
30551	// handshake. Currently you can specify only one certificate ARN. This value
30552	// is not required for Amazon Web Services-managed domains.
30553	ServerCertificateArns []*string `locationName:"serverCertificateArns" type:"list"`
30554
30555	// The type of service delivered by the endpoint.
30556	//
30557	// Amazon Web Services IoT Core currently supports only the DATA service type.
30558	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
30559
30560	// Metadata which can be used to manage the domain configuration.
30561	//
30562	// For URI Request parameters use format: ...key1=value1&key2=value2...
30563	//
30564	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
30565	//
30566	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
30567	Tags []*Tag `locationName:"tags" type:"list"`
30568
30569	// The certificate used to validate the server certificate and prove domain
30570	// name ownership. This certificate must be signed by a public certificate authority.
30571	// This value is not required for Amazon Web Services-managed domains.
30572	ValidationCertificateArn *string `locationName:"validationCertificateArn" min:"1" type:"string"`
30573}
30574
30575// String returns the string representation
30576func (s CreateDomainConfigurationInput) String() string {
30577	return awsutil.Prettify(s)
30578}
30579
30580// GoString returns the string representation
30581func (s CreateDomainConfigurationInput) GoString() string {
30582	return s.String()
30583}
30584
30585// Validate inspects the fields of the type to determine if they are valid.
30586func (s *CreateDomainConfigurationInput) Validate() error {
30587	invalidParams := request.ErrInvalidParams{Context: "CreateDomainConfigurationInput"}
30588	if s.DomainConfigurationName == nil {
30589		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
30590	}
30591	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
30592		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
30593	}
30594	if s.DomainName != nil && len(*s.DomainName) < 1 {
30595		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
30596	}
30597	if s.ValidationCertificateArn != nil && len(*s.ValidationCertificateArn) < 1 {
30598		invalidParams.Add(request.NewErrParamMinLen("ValidationCertificateArn", 1))
30599	}
30600	if s.AuthorizerConfig != nil {
30601		if err := s.AuthorizerConfig.Validate(); err != nil {
30602			invalidParams.AddNested("AuthorizerConfig", err.(request.ErrInvalidParams))
30603		}
30604	}
30605	if s.Tags != nil {
30606		for i, v := range s.Tags {
30607			if v == nil {
30608				continue
30609			}
30610			if err := v.Validate(); err != nil {
30611				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30612			}
30613		}
30614	}
30615
30616	if invalidParams.Len() > 0 {
30617		return invalidParams
30618	}
30619	return nil
30620}
30621
30622// SetAuthorizerConfig sets the AuthorizerConfig field's value.
30623func (s *CreateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *CreateDomainConfigurationInput {
30624	s.AuthorizerConfig = v
30625	return s
30626}
30627
30628// SetDomainConfigurationName sets the DomainConfigurationName field's value.
30629func (s *CreateDomainConfigurationInput) SetDomainConfigurationName(v string) *CreateDomainConfigurationInput {
30630	s.DomainConfigurationName = &v
30631	return s
30632}
30633
30634// SetDomainName sets the DomainName field's value.
30635func (s *CreateDomainConfigurationInput) SetDomainName(v string) *CreateDomainConfigurationInput {
30636	s.DomainName = &v
30637	return s
30638}
30639
30640// SetServerCertificateArns sets the ServerCertificateArns field's value.
30641func (s *CreateDomainConfigurationInput) SetServerCertificateArns(v []*string) *CreateDomainConfigurationInput {
30642	s.ServerCertificateArns = v
30643	return s
30644}
30645
30646// SetServiceType sets the ServiceType field's value.
30647func (s *CreateDomainConfigurationInput) SetServiceType(v string) *CreateDomainConfigurationInput {
30648	s.ServiceType = &v
30649	return s
30650}
30651
30652// SetTags sets the Tags field's value.
30653func (s *CreateDomainConfigurationInput) SetTags(v []*Tag) *CreateDomainConfigurationInput {
30654	s.Tags = v
30655	return s
30656}
30657
30658// SetValidationCertificateArn sets the ValidationCertificateArn field's value.
30659func (s *CreateDomainConfigurationInput) SetValidationCertificateArn(v string) *CreateDomainConfigurationInput {
30660	s.ValidationCertificateArn = &v
30661	return s
30662}
30663
30664type CreateDomainConfigurationOutput struct {
30665	_ struct{} `type:"structure"`
30666
30667	// The ARN of the domain configuration.
30668	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
30669
30670	// The name of the domain configuration.
30671	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
30672}
30673
30674// String returns the string representation
30675func (s CreateDomainConfigurationOutput) String() string {
30676	return awsutil.Prettify(s)
30677}
30678
30679// GoString returns the string representation
30680func (s CreateDomainConfigurationOutput) GoString() string {
30681	return s.String()
30682}
30683
30684// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
30685func (s *CreateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *CreateDomainConfigurationOutput {
30686	s.DomainConfigurationArn = &v
30687	return s
30688}
30689
30690// SetDomainConfigurationName sets the DomainConfigurationName field's value.
30691func (s *CreateDomainConfigurationOutput) SetDomainConfigurationName(v string) *CreateDomainConfigurationOutput {
30692	s.DomainConfigurationName = &v
30693	return s
30694}
30695
30696type CreateDynamicThingGroupInput struct {
30697	_ struct{} `type:"structure"`
30698
30699	// The dynamic thing group index name.
30700	//
30701	// Currently one index is supported: AWS_Things.
30702	IndexName *string `locationName:"indexName" min:"1" type:"string"`
30703
30704	// The dynamic thing group search query string.
30705	//
30706	// See Query Syntax (https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)
30707	// for information about query string syntax.
30708	//
30709	// QueryString is a required field
30710	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
30711
30712	// The dynamic thing group query version.
30713	//
30714	// Currently one query version is supported: "2017-09-30". If not specified,
30715	// the query version defaults to this value.
30716	QueryVersion *string `locationName:"queryVersion" type:"string"`
30717
30718	// Metadata which can be used to manage the dynamic thing group.
30719	Tags []*Tag `locationName:"tags" type:"list"`
30720
30721	// The dynamic thing group name to create.
30722	//
30723	// ThingGroupName is a required field
30724	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
30725
30726	// The dynamic thing group properties.
30727	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
30728}
30729
30730// String returns the string representation
30731func (s CreateDynamicThingGroupInput) String() string {
30732	return awsutil.Prettify(s)
30733}
30734
30735// GoString returns the string representation
30736func (s CreateDynamicThingGroupInput) GoString() string {
30737	return s.String()
30738}
30739
30740// Validate inspects the fields of the type to determine if they are valid.
30741func (s *CreateDynamicThingGroupInput) Validate() error {
30742	invalidParams := request.ErrInvalidParams{Context: "CreateDynamicThingGroupInput"}
30743	if s.IndexName != nil && len(*s.IndexName) < 1 {
30744		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
30745	}
30746	if s.QueryString == nil {
30747		invalidParams.Add(request.NewErrParamRequired("QueryString"))
30748	}
30749	if s.QueryString != nil && len(*s.QueryString) < 1 {
30750		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
30751	}
30752	if s.ThingGroupName == nil {
30753		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
30754	}
30755	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
30756		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
30757	}
30758	if s.Tags != nil {
30759		for i, v := range s.Tags {
30760			if v == nil {
30761				continue
30762			}
30763			if err := v.Validate(); err != nil {
30764				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30765			}
30766		}
30767	}
30768
30769	if invalidParams.Len() > 0 {
30770		return invalidParams
30771	}
30772	return nil
30773}
30774
30775// SetIndexName sets the IndexName field's value.
30776func (s *CreateDynamicThingGroupInput) SetIndexName(v string) *CreateDynamicThingGroupInput {
30777	s.IndexName = &v
30778	return s
30779}
30780
30781// SetQueryString sets the QueryString field's value.
30782func (s *CreateDynamicThingGroupInput) SetQueryString(v string) *CreateDynamicThingGroupInput {
30783	s.QueryString = &v
30784	return s
30785}
30786
30787// SetQueryVersion sets the QueryVersion field's value.
30788func (s *CreateDynamicThingGroupInput) SetQueryVersion(v string) *CreateDynamicThingGroupInput {
30789	s.QueryVersion = &v
30790	return s
30791}
30792
30793// SetTags sets the Tags field's value.
30794func (s *CreateDynamicThingGroupInput) SetTags(v []*Tag) *CreateDynamicThingGroupInput {
30795	s.Tags = v
30796	return s
30797}
30798
30799// SetThingGroupName sets the ThingGroupName field's value.
30800func (s *CreateDynamicThingGroupInput) SetThingGroupName(v string) *CreateDynamicThingGroupInput {
30801	s.ThingGroupName = &v
30802	return s
30803}
30804
30805// SetThingGroupProperties sets the ThingGroupProperties field's value.
30806func (s *CreateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateDynamicThingGroupInput {
30807	s.ThingGroupProperties = v
30808	return s
30809}
30810
30811type CreateDynamicThingGroupOutput struct {
30812	_ struct{} `type:"structure"`
30813
30814	// The dynamic thing group index name.
30815	IndexName *string `locationName:"indexName" min:"1" type:"string"`
30816
30817	// The dynamic thing group search query string.
30818	QueryString *string `locationName:"queryString" min:"1" type:"string"`
30819
30820	// The dynamic thing group query version.
30821	QueryVersion *string `locationName:"queryVersion" type:"string"`
30822
30823	// The dynamic thing group ARN.
30824	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
30825
30826	// The dynamic thing group ID.
30827	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
30828
30829	// The dynamic thing group name.
30830	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
30831}
30832
30833// String returns the string representation
30834func (s CreateDynamicThingGroupOutput) String() string {
30835	return awsutil.Prettify(s)
30836}
30837
30838// GoString returns the string representation
30839func (s CreateDynamicThingGroupOutput) GoString() string {
30840	return s.String()
30841}
30842
30843// SetIndexName sets the IndexName field's value.
30844func (s *CreateDynamicThingGroupOutput) SetIndexName(v string) *CreateDynamicThingGroupOutput {
30845	s.IndexName = &v
30846	return s
30847}
30848
30849// SetQueryString sets the QueryString field's value.
30850func (s *CreateDynamicThingGroupOutput) SetQueryString(v string) *CreateDynamicThingGroupOutput {
30851	s.QueryString = &v
30852	return s
30853}
30854
30855// SetQueryVersion sets the QueryVersion field's value.
30856func (s *CreateDynamicThingGroupOutput) SetQueryVersion(v string) *CreateDynamicThingGroupOutput {
30857	s.QueryVersion = &v
30858	return s
30859}
30860
30861// SetThingGroupArn sets the ThingGroupArn field's value.
30862func (s *CreateDynamicThingGroupOutput) SetThingGroupArn(v string) *CreateDynamicThingGroupOutput {
30863	s.ThingGroupArn = &v
30864	return s
30865}
30866
30867// SetThingGroupId sets the ThingGroupId field's value.
30868func (s *CreateDynamicThingGroupOutput) SetThingGroupId(v string) *CreateDynamicThingGroupOutput {
30869	s.ThingGroupId = &v
30870	return s
30871}
30872
30873// SetThingGroupName sets the ThingGroupName field's value.
30874func (s *CreateDynamicThingGroupOutput) SetThingGroupName(v string) *CreateDynamicThingGroupOutput {
30875	s.ThingGroupName = &v
30876	return s
30877}
30878
30879type CreateFleetMetricInput struct {
30880	_ struct{} `type:"structure"`
30881
30882	// The field to aggregate.
30883	//
30884	// AggregationField is a required field
30885	AggregationField *string `locationName:"aggregationField" min:"1" type:"string" required:"true"`
30886
30887	// The type of the aggregation query.
30888	//
30889	// AggregationType is a required field
30890	AggregationType *AggregationType `locationName:"aggregationType" type:"structure" required:"true"`
30891
30892	// The fleet metric description.
30893	Description *string `locationName:"description" type:"string"`
30894
30895	// The name of the index to search.
30896	IndexName *string `locationName:"indexName" min:"1" type:"string"`
30897
30898	// The name of the fleet metric to create.
30899	//
30900	// MetricName is a required field
30901	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
30902
30903	// The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1
30904	// day)] and must be multiple of 60.
30905	//
30906	// Period is a required field
30907	Period *int64 `locationName:"period" min:"60" type:"integer" required:"true"`
30908
30909	// The search query string.
30910	//
30911	// QueryString is a required field
30912	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
30913
30914	// The query version.
30915	QueryVersion *string `locationName:"queryVersion" type:"string"`
30916
30917	// Metadata, which can be used to manage the fleet metric.
30918	Tags []*Tag `locationName:"tags" type:"list"`
30919
30920	// Used to support unit transformation such as milliseconds to seconds. The
30921	// unit must be supported by CW metric (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
30922	// Default to null.
30923	Unit *string `locationName:"unit" type:"string" enum:"FleetMetricUnit"`
30924}
30925
30926// String returns the string representation
30927func (s CreateFleetMetricInput) String() string {
30928	return awsutil.Prettify(s)
30929}
30930
30931// GoString returns the string representation
30932func (s CreateFleetMetricInput) GoString() string {
30933	return s.String()
30934}
30935
30936// Validate inspects the fields of the type to determine if they are valid.
30937func (s *CreateFleetMetricInput) Validate() error {
30938	invalidParams := request.ErrInvalidParams{Context: "CreateFleetMetricInput"}
30939	if s.AggregationField == nil {
30940		invalidParams.Add(request.NewErrParamRequired("AggregationField"))
30941	}
30942	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
30943		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
30944	}
30945	if s.AggregationType == nil {
30946		invalidParams.Add(request.NewErrParamRequired("AggregationType"))
30947	}
30948	if s.IndexName != nil && len(*s.IndexName) < 1 {
30949		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
30950	}
30951	if s.MetricName == nil {
30952		invalidParams.Add(request.NewErrParamRequired("MetricName"))
30953	}
30954	if s.MetricName != nil && len(*s.MetricName) < 1 {
30955		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
30956	}
30957	if s.Period == nil {
30958		invalidParams.Add(request.NewErrParamRequired("Period"))
30959	}
30960	if s.Period != nil && *s.Period < 60 {
30961		invalidParams.Add(request.NewErrParamMinValue("Period", 60))
30962	}
30963	if s.QueryString == nil {
30964		invalidParams.Add(request.NewErrParamRequired("QueryString"))
30965	}
30966	if s.QueryString != nil && len(*s.QueryString) < 1 {
30967		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
30968	}
30969	if s.AggregationType != nil {
30970		if err := s.AggregationType.Validate(); err != nil {
30971			invalidParams.AddNested("AggregationType", err.(request.ErrInvalidParams))
30972		}
30973	}
30974	if s.Tags != nil {
30975		for i, v := range s.Tags {
30976			if v == nil {
30977				continue
30978			}
30979			if err := v.Validate(); err != nil {
30980				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30981			}
30982		}
30983	}
30984
30985	if invalidParams.Len() > 0 {
30986		return invalidParams
30987	}
30988	return nil
30989}
30990
30991// SetAggregationField sets the AggregationField field's value.
30992func (s *CreateFleetMetricInput) SetAggregationField(v string) *CreateFleetMetricInput {
30993	s.AggregationField = &v
30994	return s
30995}
30996
30997// SetAggregationType sets the AggregationType field's value.
30998func (s *CreateFleetMetricInput) SetAggregationType(v *AggregationType) *CreateFleetMetricInput {
30999	s.AggregationType = v
31000	return s
31001}
31002
31003// SetDescription sets the Description field's value.
31004func (s *CreateFleetMetricInput) SetDescription(v string) *CreateFleetMetricInput {
31005	s.Description = &v
31006	return s
31007}
31008
31009// SetIndexName sets the IndexName field's value.
31010func (s *CreateFleetMetricInput) SetIndexName(v string) *CreateFleetMetricInput {
31011	s.IndexName = &v
31012	return s
31013}
31014
31015// SetMetricName sets the MetricName field's value.
31016func (s *CreateFleetMetricInput) SetMetricName(v string) *CreateFleetMetricInput {
31017	s.MetricName = &v
31018	return s
31019}
31020
31021// SetPeriod sets the Period field's value.
31022func (s *CreateFleetMetricInput) SetPeriod(v int64) *CreateFleetMetricInput {
31023	s.Period = &v
31024	return s
31025}
31026
31027// SetQueryString sets the QueryString field's value.
31028func (s *CreateFleetMetricInput) SetQueryString(v string) *CreateFleetMetricInput {
31029	s.QueryString = &v
31030	return s
31031}
31032
31033// SetQueryVersion sets the QueryVersion field's value.
31034func (s *CreateFleetMetricInput) SetQueryVersion(v string) *CreateFleetMetricInput {
31035	s.QueryVersion = &v
31036	return s
31037}
31038
31039// SetTags sets the Tags field's value.
31040func (s *CreateFleetMetricInput) SetTags(v []*Tag) *CreateFleetMetricInput {
31041	s.Tags = v
31042	return s
31043}
31044
31045// SetUnit sets the Unit field's value.
31046func (s *CreateFleetMetricInput) SetUnit(v string) *CreateFleetMetricInput {
31047	s.Unit = &v
31048	return s
31049}
31050
31051type CreateFleetMetricOutput struct {
31052	_ struct{} `type:"structure"`
31053
31054	// The Amazon Resource Name (ARN) of the new fleet metric.
31055	MetricArn *string `locationName:"metricArn" type:"string"`
31056
31057	// The name of the fleet metric to create.
31058	MetricName *string `locationName:"metricName" min:"1" type:"string"`
31059}
31060
31061// String returns the string representation
31062func (s CreateFleetMetricOutput) String() string {
31063	return awsutil.Prettify(s)
31064}
31065
31066// GoString returns the string representation
31067func (s CreateFleetMetricOutput) GoString() string {
31068	return s.String()
31069}
31070
31071// SetMetricArn sets the MetricArn field's value.
31072func (s *CreateFleetMetricOutput) SetMetricArn(v string) *CreateFleetMetricOutput {
31073	s.MetricArn = &v
31074	return s
31075}
31076
31077// SetMetricName sets the MetricName field's value.
31078func (s *CreateFleetMetricOutput) SetMetricName(v string) *CreateFleetMetricOutput {
31079	s.MetricName = &v
31080	return s
31081}
31082
31083type CreateJobInput struct {
31084	_ struct{} `type:"structure"`
31085
31086	// Allows you to create criteria to abort a job.
31087	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
31088
31089	// A short text description of the job.
31090	Description *string `locationName:"description" type:"string"`
31091
31092	// The job document. Required if you don't specify a value for documentSource.
31093	Document *string `locationName:"document" type:"string"`
31094
31095	// An S3 link to the job document. Required if you don't specify a value for
31096	// document.
31097	//
31098	// If the job document resides in an S3 bucket, you must use a placeholder link
31099	// when specifying the document.
31100	//
31101	// The placeholder link is of the following form:
31102	//
31103	// ${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
31104	//
31105	// where bucket is your bucket name and key is the object in the bucket to which
31106	// you are linking.
31107	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
31108
31109	// Allows you to create a staged rollout of the job.
31110	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
31111
31112	// A job identifier which must be unique for your Amazon Web Services account.
31113	// We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid
31114	// for use here.
31115	//
31116	// JobId is a required field
31117	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
31118
31119	// The ARN of the job template used to create the job.
31120	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
31121
31122	// The namespace used to indicate that a job is a customer-managed job.
31123	//
31124	// When you specify a value for this parameter, Amazon Web Services IoT Core
31125	// sends jobs notifications to MQTT topics that contain the value in the following
31126	// format.
31127	//
31128	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
31129	//
31130	// The namespaceId feature is in public preview.
31131	NamespaceId *string `locationName:"namespaceId" min:"1" type:"string"`
31132
31133	// Configuration information for pre-signed S3 URLs.
31134	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
31135
31136	// Metadata which can be used to manage the job.
31137	Tags []*Tag `locationName:"tags" type:"list"`
31138
31139	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
31140	// after all those things specified as targets have completed the job (SNAPSHOT).
31141	// If continuous, the job may also be run on a thing when a change is detected
31142	// in a target. For example, a job will run on a thing when the thing is added
31143	// to a target group, even after the job was completed by all things originally
31144	// in the group.
31145	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
31146
31147	// A list of things and thing groups to which the job should be sent.
31148	//
31149	// Targets is a required field
31150	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
31151
31152	// Specifies the amount of time each device has to finish its execution of the
31153	// job. The timer is started when the job execution status is set to IN_PROGRESS.
31154	// If the job execution status is not set to another terminal state before the
31155	// time expires, it will be automatically set to TIMED_OUT.
31156	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
31157}
31158
31159// String returns the string representation
31160func (s CreateJobInput) String() string {
31161	return awsutil.Prettify(s)
31162}
31163
31164// GoString returns the string representation
31165func (s CreateJobInput) GoString() string {
31166	return s.String()
31167}
31168
31169// Validate inspects the fields of the type to determine if they are valid.
31170func (s *CreateJobInput) Validate() error {
31171	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
31172	if s.DocumentSource != nil && len(*s.DocumentSource) < 1 {
31173		invalidParams.Add(request.NewErrParamMinLen("DocumentSource", 1))
31174	}
31175	if s.JobId == nil {
31176		invalidParams.Add(request.NewErrParamRequired("JobId"))
31177	}
31178	if s.JobId != nil && len(*s.JobId) < 1 {
31179		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
31180	}
31181	if s.JobTemplateArn != nil && len(*s.JobTemplateArn) < 1 {
31182		invalidParams.Add(request.NewErrParamMinLen("JobTemplateArn", 1))
31183	}
31184	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
31185		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
31186	}
31187	if s.Targets == nil {
31188		invalidParams.Add(request.NewErrParamRequired("Targets"))
31189	}
31190	if s.Targets != nil && len(s.Targets) < 1 {
31191		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
31192	}
31193	if s.AbortConfig != nil {
31194		if err := s.AbortConfig.Validate(); err != nil {
31195			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
31196		}
31197	}
31198	if s.JobExecutionsRolloutConfig != nil {
31199		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
31200			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
31201		}
31202	}
31203	if s.PresignedUrlConfig != nil {
31204		if err := s.PresignedUrlConfig.Validate(); err != nil {
31205			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
31206		}
31207	}
31208	if s.Tags != nil {
31209		for i, v := range s.Tags {
31210			if v == nil {
31211				continue
31212			}
31213			if err := v.Validate(); err != nil {
31214				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31215			}
31216		}
31217	}
31218
31219	if invalidParams.Len() > 0 {
31220		return invalidParams
31221	}
31222	return nil
31223}
31224
31225// SetAbortConfig sets the AbortConfig field's value.
31226func (s *CreateJobInput) SetAbortConfig(v *AbortConfig) *CreateJobInput {
31227	s.AbortConfig = v
31228	return s
31229}
31230
31231// SetDescription sets the Description field's value.
31232func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
31233	s.Description = &v
31234	return s
31235}
31236
31237// SetDocument sets the Document field's value.
31238func (s *CreateJobInput) SetDocument(v string) *CreateJobInput {
31239	s.Document = &v
31240	return s
31241}
31242
31243// SetDocumentSource sets the DocumentSource field's value.
31244func (s *CreateJobInput) SetDocumentSource(v string) *CreateJobInput {
31245	s.DocumentSource = &v
31246	return s
31247}
31248
31249// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
31250func (s *CreateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *CreateJobInput {
31251	s.JobExecutionsRolloutConfig = v
31252	return s
31253}
31254
31255// SetJobId sets the JobId field's value.
31256func (s *CreateJobInput) SetJobId(v string) *CreateJobInput {
31257	s.JobId = &v
31258	return s
31259}
31260
31261// SetJobTemplateArn sets the JobTemplateArn field's value.
31262func (s *CreateJobInput) SetJobTemplateArn(v string) *CreateJobInput {
31263	s.JobTemplateArn = &v
31264	return s
31265}
31266
31267// SetNamespaceId sets the NamespaceId field's value.
31268func (s *CreateJobInput) SetNamespaceId(v string) *CreateJobInput {
31269	s.NamespaceId = &v
31270	return s
31271}
31272
31273// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
31274func (s *CreateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *CreateJobInput {
31275	s.PresignedUrlConfig = v
31276	return s
31277}
31278
31279// SetTags sets the Tags field's value.
31280func (s *CreateJobInput) SetTags(v []*Tag) *CreateJobInput {
31281	s.Tags = v
31282	return s
31283}
31284
31285// SetTargetSelection sets the TargetSelection field's value.
31286func (s *CreateJobInput) SetTargetSelection(v string) *CreateJobInput {
31287	s.TargetSelection = &v
31288	return s
31289}
31290
31291// SetTargets sets the Targets field's value.
31292func (s *CreateJobInput) SetTargets(v []*string) *CreateJobInput {
31293	s.Targets = v
31294	return s
31295}
31296
31297// SetTimeoutConfig sets the TimeoutConfig field's value.
31298func (s *CreateJobInput) SetTimeoutConfig(v *TimeoutConfig) *CreateJobInput {
31299	s.TimeoutConfig = v
31300	return s
31301}
31302
31303type CreateJobOutput struct {
31304	_ struct{} `type:"structure"`
31305
31306	// The job description.
31307	Description *string `locationName:"description" type:"string"`
31308
31309	// The job ARN.
31310	JobArn *string `locationName:"jobArn" type:"string"`
31311
31312	// The unique identifier you assigned to this job.
31313	JobId *string `locationName:"jobId" min:"1" type:"string"`
31314}
31315
31316// String returns the string representation
31317func (s CreateJobOutput) String() string {
31318	return awsutil.Prettify(s)
31319}
31320
31321// GoString returns the string representation
31322func (s CreateJobOutput) GoString() string {
31323	return s.String()
31324}
31325
31326// SetDescription sets the Description field's value.
31327func (s *CreateJobOutput) SetDescription(v string) *CreateJobOutput {
31328	s.Description = &v
31329	return s
31330}
31331
31332// SetJobArn sets the JobArn field's value.
31333func (s *CreateJobOutput) SetJobArn(v string) *CreateJobOutput {
31334	s.JobArn = &v
31335	return s
31336}
31337
31338// SetJobId sets the JobId field's value.
31339func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
31340	s.JobId = &v
31341	return s
31342}
31343
31344type CreateJobTemplateInput struct {
31345	_ struct{} `type:"structure"`
31346
31347	// The criteria that determine when and how a job abort takes place.
31348	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
31349
31350	// A description of the job document.
31351	//
31352	// Description is a required field
31353	Description *string `locationName:"description" type:"string" required:"true"`
31354
31355	// The job document. Required if you don't specify a value for documentSource.
31356	Document *string `locationName:"document" type:"string"`
31357
31358	// An S3 link to the job document to use in the template. Required if you don't
31359	// specify a value for document.
31360	//
31361	// If the job document resides in an S3 bucket, you must use a placeholder link
31362	// when specifying the document.
31363	//
31364	// The placeholder link is of the following form:
31365	//
31366	// ${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
31367	//
31368	// where bucket is your bucket name and key is the object in the bucket to which
31369	// you are linking.
31370	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
31371
31372	// The ARN of the job to use as the basis for the job template.
31373	JobArn *string `locationName:"jobArn" type:"string"`
31374
31375	// Allows you to create a staged rollout of a job.
31376	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
31377
31378	// A unique identifier for the job template. We recommend using a UUID. Alpha-numeric
31379	// characters, "-", and "_" are valid for use here.
31380	//
31381	// JobTemplateId is a required field
31382	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
31383
31384	// Configuration for pre-signed S3 URLs.
31385	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
31386
31387	// Metadata that can be used to manage the job template.
31388	Tags []*Tag `locationName:"tags" type:"list"`
31389
31390	// Specifies the amount of time each device has to finish its execution of the
31391	// job. A timer is started when the job execution status is set to IN_PROGRESS.
31392	// If the job execution status is not set to another terminal state before the
31393	// timer expires, it will be automatically set to TIMED_OUT.
31394	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
31395}
31396
31397// String returns the string representation
31398func (s CreateJobTemplateInput) String() string {
31399	return awsutil.Prettify(s)
31400}
31401
31402// GoString returns the string representation
31403func (s CreateJobTemplateInput) GoString() string {
31404	return s.String()
31405}
31406
31407// Validate inspects the fields of the type to determine if they are valid.
31408func (s *CreateJobTemplateInput) Validate() error {
31409	invalidParams := request.ErrInvalidParams{Context: "CreateJobTemplateInput"}
31410	if s.Description == nil {
31411		invalidParams.Add(request.NewErrParamRequired("Description"))
31412	}
31413	if s.DocumentSource != nil && len(*s.DocumentSource) < 1 {
31414		invalidParams.Add(request.NewErrParamMinLen("DocumentSource", 1))
31415	}
31416	if s.JobTemplateId == nil {
31417		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
31418	}
31419	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
31420		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
31421	}
31422	if s.AbortConfig != nil {
31423		if err := s.AbortConfig.Validate(); err != nil {
31424			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
31425		}
31426	}
31427	if s.JobExecutionsRolloutConfig != nil {
31428		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
31429			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
31430		}
31431	}
31432	if s.PresignedUrlConfig != nil {
31433		if err := s.PresignedUrlConfig.Validate(); err != nil {
31434			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
31435		}
31436	}
31437	if s.Tags != nil {
31438		for i, v := range s.Tags {
31439			if v == nil {
31440				continue
31441			}
31442			if err := v.Validate(); err != nil {
31443				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31444			}
31445		}
31446	}
31447
31448	if invalidParams.Len() > 0 {
31449		return invalidParams
31450	}
31451	return nil
31452}
31453
31454// SetAbortConfig sets the AbortConfig field's value.
31455func (s *CreateJobTemplateInput) SetAbortConfig(v *AbortConfig) *CreateJobTemplateInput {
31456	s.AbortConfig = v
31457	return s
31458}
31459
31460// SetDescription sets the Description field's value.
31461func (s *CreateJobTemplateInput) SetDescription(v string) *CreateJobTemplateInput {
31462	s.Description = &v
31463	return s
31464}
31465
31466// SetDocument sets the Document field's value.
31467func (s *CreateJobTemplateInput) SetDocument(v string) *CreateJobTemplateInput {
31468	s.Document = &v
31469	return s
31470}
31471
31472// SetDocumentSource sets the DocumentSource field's value.
31473func (s *CreateJobTemplateInput) SetDocumentSource(v string) *CreateJobTemplateInput {
31474	s.DocumentSource = &v
31475	return s
31476}
31477
31478// SetJobArn sets the JobArn field's value.
31479func (s *CreateJobTemplateInput) SetJobArn(v string) *CreateJobTemplateInput {
31480	s.JobArn = &v
31481	return s
31482}
31483
31484// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
31485func (s *CreateJobTemplateInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *CreateJobTemplateInput {
31486	s.JobExecutionsRolloutConfig = v
31487	return s
31488}
31489
31490// SetJobTemplateId sets the JobTemplateId field's value.
31491func (s *CreateJobTemplateInput) SetJobTemplateId(v string) *CreateJobTemplateInput {
31492	s.JobTemplateId = &v
31493	return s
31494}
31495
31496// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
31497func (s *CreateJobTemplateInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *CreateJobTemplateInput {
31498	s.PresignedUrlConfig = v
31499	return s
31500}
31501
31502// SetTags sets the Tags field's value.
31503func (s *CreateJobTemplateInput) SetTags(v []*Tag) *CreateJobTemplateInput {
31504	s.Tags = v
31505	return s
31506}
31507
31508// SetTimeoutConfig sets the TimeoutConfig field's value.
31509func (s *CreateJobTemplateInput) SetTimeoutConfig(v *TimeoutConfig) *CreateJobTemplateInput {
31510	s.TimeoutConfig = v
31511	return s
31512}
31513
31514type CreateJobTemplateOutput struct {
31515	_ struct{} `type:"structure"`
31516
31517	// The ARN of the job template.
31518	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
31519
31520	// The unique identifier of the job template.
31521	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
31522}
31523
31524// String returns the string representation
31525func (s CreateJobTemplateOutput) String() string {
31526	return awsutil.Prettify(s)
31527}
31528
31529// GoString returns the string representation
31530func (s CreateJobTemplateOutput) GoString() string {
31531	return s.String()
31532}
31533
31534// SetJobTemplateArn sets the JobTemplateArn field's value.
31535func (s *CreateJobTemplateOutput) SetJobTemplateArn(v string) *CreateJobTemplateOutput {
31536	s.JobTemplateArn = &v
31537	return s
31538}
31539
31540// SetJobTemplateId sets the JobTemplateId field's value.
31541func (s *CreateJobTemplateOutput) SetJobTemplateId(v string) *CreateJobTemplateOutput {
31542	s.JobTemplateId = &v
31543	return s
31544}
31545
31546// The input for the CreateKeysAndCertificate operation.
31547//
31548// Requires permission to access the CreateKeysAndCertificateRequest (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
31549// action.
31550type CreateKeysAndCertificateInput struct {
31551	_ struct{} `type:"structure"`
31552
31553	// Specifies whether the certificate is active.
31554	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
31555}
31556
31557// String returns the string representation
31558func (s CreateKeysAndCertificateInput) String() string {
31559	return awsutil.Prettify(s)
31560}
31561
31562// GoString returns the string representation
31563func (s CreateKeysAndCertificateInput) GoString() string {
31564	return s.String()
31565}
31566
31567// SetSetAsActive sets the SetAsActive field's value.
31568func (s *CreateKeysAndCertificateInput) SetSetAsActive(v bool) *CreateKeysAndCertificateInput {
31569	s.SetAsActive = &v
31570	return s
31571}
31572
31573// The output of the CreateKeysAndCertificate operation.
31574type CreateKeysAndCertificateOutput struct {
31575	_ struct{} `type:"structure"`
31576
31577	// The ARN of the certificate.
31578	CertificateArn *string `locationName:"certificateArn" type:"string"`
31579
31580	// The ID of the certificate. IoT issues a default subject name for the certificate
31581	// (for example, IoT Certificate).
31582	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
31583
31584	// The certificate data, in PEM format.
31585	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
31586
31587	// The generated key pair.
31588	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
31589}
31590
31591// String returns the string representation
31592func (s CreateKeysAndCertificateOutput) String() string {
31593	return awsutil.Prettify(s)
31594}
31595
31596// GoString returns the string representation
31597func (s CreateKeysAndCertificateOutput) GoString() string {
31598	return s.String()
31599}
31600
31601// SetCertificateArn sets the CertificateArn field's value.
31602func (s *CreateKeysAndCertificateOutput) SetCertificateArn(v string) *CreateKeysAndCertificateOutput {
31603	s.CertificateArn = &v
31604	return s
31605}
31606
31607// SetCertificateId sets the CertificateId field's value.
31608func (s *CreateKeysAndCertificateOutput) SetCertificateId(v string) *CreateKeysAndCertificateOutput {
31609	s.CertificateId = &v
31610	return s
31611}
31612
31613// SetCertificatePem sets the CertificatePem field's value.
31614func (s *CreateKeysAndCertificateOutput) SetCertificatePem(v string) *CreateKeysAndCertificateOutput {
31615	s.CertificatePem = &v
31616	return s
31617}
31618
31619// SetKeyPair sets the KeyPair field's value.
31620func (s *CreateKeysAndCertificateOutput) SetKeyPair(v *KeyPair) *CreateKeysAndCertificateOutput {
31621	s.KeyPair = v
31622	return s
31623}
31624
31625type CreateMitigationActionInput struct {
31626	_ struct{} `type:"structure"`
31627
31628	// A friendly name for the action. Choose a friendly name that accurately describes
31629	// the action (for example, EnableLoggingAction).
31630	//
31631	// ActionName is a required field
31632	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
31633
31634	// Defines the type of action and the parameters for that action.
31635	//
31636	// ActionParams is a required field
31637	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure" required:"true"`
31638
31639	// The ARN of the IAM role that is used to apply the mitigation action.
31640	//
31641	// RoleArn is a required field
31642	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
31643
31644	// Metadata that can be used to manage the mitigation action.
31645	Tags []*Tag `locationName:"tags" type:"list"`
31646}
31647
31648// String returns the string representation
31649func (s CreateMitigationActionInput) String() string {
31650	return awsutil.Prettify(s)
31651}
31652
31653// GoString returns the string representation
31654func (s CreateMitigationActionInput) GoString() string {
31655	return s.String()
31656}
31657
31658// Validate inspects the fields of the type to determine if they are valid.
31659func (s *CreateMitigationActionInput) Validate() error {
31660	invalidParams := request.ErrInvalidParams{Context: "CreateMitigationActionInput"}
31661	if s.ActionName == nil {
31662		invalidParams.Add(request.NewErrParamRequired("ActionName"))
31663	}
31664	if s.ActionName != nil && len(*s.ActionName) < 1 {
31665		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
31666	}
31667	if s.ActionParams == nil {
31668		invalidParams.Add(request.NewErrParamRequired("ActionParams"))
31669	}
31670	if s.RoleArn == nil {
31671		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
31672	}
31673	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
31674		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
31675	}
31676	if s.ActionParams != nil {
31677		if err := s.ActionParams.Validate(); err != nil {
31678			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
31679		}
31680	}
31681	if s.Tags != nil {
31682		for i, v := range s.Tags {
31683			if v == nil {
31684				continue
31685			}
31686			if err := v.Validate(); err != nil {
31687				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31688			}
31689		}
31690	}
31691
31692	if invalidParams.Len() > 0 {
31693		return invalidParams
31694	}
31695	return nil
31696}
31697
31698// SetActionName sets the ActionName field's value.
31699func (s *CreateMitigationActionInput) SetActionName(v string) *CreateMitigationActionInput {
31700	s.ActionName = &v
31701	return s
31702}
31703
31704// SetActionParams sets the ActionParams field's value.
31705func (s *CreateMitigationActionInput) SetActionParams(v *MitigationActionParams) *CreateMitigationActionInput {
31706	s.ActionParams = v
31707	return s
31708}
31709
31710// SetRoleArn sets the RoleArn field's value.
31711func (s *CreateMitigationActionInput) SetRoleArn(v string) *CreateMitigationActionInput {
31712	s.RoleArn = &v
31713	return s
31714}
31715
31716// SetTags sets the Tags field's value.
31717func (s *CreateMitigationActionInput) SetTags(v []*Tag) *CreateMitigationActionInput {
31718	s.Tags = v
31719	return s
31720}
31721
31722type CreateMitigationActionOutput struct {
31723	_ struct{} `type:"structure"`
31724
31725	// The ARN for the new mitigation action.
31726	ActionArn *string `locationName:"actionArn" type:"string"`
31727
31728	// A unique identifier for the new mitigation action.
31729	ActionId *string `locationName:"actionId" type:"string"`
31730}
31731
31732// String returns the string representation
31733func (s CreateMitigationActionOutput) String() string {
31734	return awsutil.Prettify(s)
31735}
31736
31737// GoString returns the string representation
31738func (s CreateMitigationActionOutput) GoString() string {
31739	return s.String()
31740}
31741
31742// SetActionArn sets the ActionArn field's value.
31743func (s *CreateMitigationActionOutput) SetActionArn(v string) *CreateMitigationActionOutput {
31744	s.ActionArn = &v
31745	return s
31746}
31747
31748// SetActionId sets the ActionId field's value.
31749func (s *CreateMitigationActionOutput) SetActionId(v string) *CreateMitigationActionOutput {
31750	s.ActionId = &v
31751	return s
31752}
31753
31754type CreateOTAUpdateInput struct {
31755	_ struct{} `type:"structure"`
31756
31757	// A list of additional OTA update parameters which are name-value pairs.
31758	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
31759
31760	// The criteria that determine when and how a job abort takes place.
31761	AwsJobAbortConfig *AwsJobAbortConfig `locationName:"awsJobAbortConfig" type:"structure"`
31762
31763	// Configuration for the rollout of OTA updates.
31764	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
31765
31766	// Configuration information for pre-signed URLs.
31767	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
31768
31769	// Specifies the amount of time each device has to finish its execution of the
31770	// job. A timer is started when the job execution status is set to IN_PROGRESS.
31771	// If the job execution status is not set to another terminal state before the
31772	// timer expires, it will be automatically set to TIMED_OUT.
31773	AwsJobTimeoutConfig *AwsJobTimeoutConfig `locationName:"awsJobTimeoutConfig" type:"structure"`
31774
31775	// The description of the OTA update.
31776	Description *string `locationName:"description" type:"string"`
31777
31778	// The files to be streamed by the OTA update.
31779	//
31780	// Files is a required field
31781	Files []*OTAUpdateFile `locationName:"files" min:"1" type:"list" required:"true"`
31782
31783	// The ID of the OTA update to be created.
31784	//
31785	// OtaUpdateId is a required field
31786	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
31787
31788	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
31789	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
31790	// can choose the protocol.
31791	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
31792
31793	// The IAM role that grants Amazon Web Services IoT Core access to the Amazon
31794	// S3, IoT jobs and Amazon Web Services Code Signing resources to create an
31795	// OTA update job.
31796	//
31797	// RoleArn is a required field
31798	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
31799
31800	// Metadata which can be used to manage updates.
31801	Tags []*Tag `locationName:"tags" type:"list"`
31802
31803	// Specifies whether the update will continue to run (CONTINUOUS), or will be
31804	// complete after all the things specified as targets have completed the update
31805	// (SNAPSHOT). If continuous, the update may also be run on a thing when a change
31806	// is detected in a target. For example, an update will run on a thing when
31807	// the thing is added to a target group, even after the update was completed
31808	// by all things originally in the group. Valid values: CONTINUOUS | SNAPSHOT.
31809	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
31810
31811	// The devices targeted to receive OTA updates.
31812	//
31813	// Targets is a required field
31814	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
31815}
31816
31817// String returns the string representation
31818func (s CreateOTAUpdateInput) String() string {
31819	return awsutil.Prettify(s)
31820}
31821
31822// GoString returns the string representation
31823func (s CreateOTAUpdateInput) GoString() string {
31824	return s.String()
31825}
31826
31827// Validate inspects the fields of the type to determine if they are valid.
31828func (s *CreateOTAUpdateInput) Validate() error {
31829	invalidParams := request.ErrInvalidParams{Context: "CreateOTAUpdateInput"}
31830	if s.Files == nil {
31831		invalidParams.Add(request.NewErrParamRequired("Files"))
31832	}
31833	if s.Files != nil && len(s.Files) < 1 {
31834		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
31835	}
31836	if s.OtaUpdateId == nil {
31837		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
31838	}
31839	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
31840		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
31841	}
31842	if s.Protocols != nil && len(s.Protocols) < 1 {
31843		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
31844	}
31845	if s.RoleArn == nil {
31846		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
31847	}
31848	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
31849		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
31850	}
31851	if s.Targets == nil {
31852		invalidParams.Add(request.NewErrParamRequired("Targets"))
31853	}
31854	if s.Targets != nil && len(s.Targets) < 1 {
31855		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
31856	}
31857	if s.AwsJobAbortConfig != nil {
31858		if err := s.AwsJobAbortConfig.Validate(); err != nil {
31859			invalidParams.AddNested("AwsJobAbortConfig", err.(request.ErrInvalidParams))
31860		}
31861	}
31862	if s.AwsJobExecutionsRolloutConfig != nil {
31863		if err := s.AwsJobExecutionsRolloutConfig.Validate(); err != nil {
31864			invalidParams.AddNested("AwsJobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
31865		}
31866	}
31867	if s.Files != nil {
31868		for i, v := range s.Files {
31869			if v == nil {
31870				continue
31871			}
31872			if err := v.Validate(); err != nil {
31873				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
31874			}
31875		}
31876	}
31877	if s.Tags != nil {
31878		for i, v := range s.Tags {
31879			if v == nil {
31880				continue
31881			}
31882			if err := v.Validate(); err != nil {
31883				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31884			}
31885		}
31886	}
31887
31888	if invalidParams.Len() > 0 {
31889		return invalidParams
31890	}
31891	return nil
31892}
31893
31894// SetAdditionalParameters sets the AdditionalParameters field's value.
31895func (s *CreateOTAUpdateInput) SetAdditionalParameters(v map[string]*string) *CreateOTAUpdateInput {
31896	s.AdditionalParameters = v
31897	return s
31898}
31899
31900// SetAwsJobAbortConfig sets the AwsJobAbortConfig field's value.
31901func (s *CreateOTAUpdateInput) SetAwsJobAbortConfig(v *AwsJobAbortConfig) *CreateOTAUpdateInput {
31902	s.AwsJobAbortConfig = v
31903	return s
31904}
31905
31906// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
31907func (s *CreateOTAUpdateInput) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *CreateOTAUpdateInput {
31908	s.AwsJobExecutionsRolloutConfig = v
31909	return s
31910}
31911
31912// SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
31913func (s *CreateOTAUpdateInput) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *CreateOTAUpdateInput {
31914	s.AwsJobPresignedUrlConfig = v
31915	return s
31916}
31917
31918// SetAwsJobTimeoutConfig sets the AwsJobTimeoutConfig field's value.
31919func (s *CreateOTAUpdateInput) SetAwsJobTimeoutConfig(v *AwsJobTimeoutConfig) *CreateOTAUpdateInput {
31920	s.AwsJobTimeoutConfig = v
31921	return s
31922}
31923
31924// SetDescription sets the Description field's value.
31925func (s *CreateOTAUpdateInput) SetDescription(v string) *CreateOTAUpdateInput {
31926	s.Description = &v
31927	return s
31928}
31929
31930// SetFiles sets the Files field's value.
31931func (s *CreateOTAUpdateInput) SetFiles(v []*OTAUpdateFile) *CreateOTAUpdateInput {
31932	s.Files = v
31933	return s
31934}
31935
31936// SetOtaUpdateId sets the OtaUpdateId field's value.
31937func (s *CreateOTAUpdateInput) SetOtaUpdateId(v string) *CreateOTAUpdateInput {
31938	s.OtaUpdateId = &v
31939	return s
31940}
31941
31942// SetProtocols sets the Protocols field's value.
31943func (s *CreateOTAUpdateInput) SetProtocols(v []*string) *CreateOTAUpdateInput {
31944	s.Protocols = v
31945	return s
31946}
31947
31948// SetRoleArn sets the RoleArn field's value.
31949func (s *CreateOTAUpdateInput) SetRoleArn(v string) *CreateOTAUpdateInput {
31950	s.RoleArn = &v
31951	return s
31952}
31953
31954// SetTags sets the Tags field's value.
31955func (s *CreateOTAUpdateInput) SetTags(v []*Tag) *CreateOTAUpdateInput {
31956	s.Tags = v
31957	return s
31958}
31959
31960// SetTargetSelection sets the TargetSelection field's value.
31961func (s *CreateOTAUpdateInput) SetTargetSelection(v string) *CreateOTAUpdateInput {
31962	s.TargetSelection = &v
31963	return s
31964}
31965
31966// SetTargets sets the Targets field's value.
31967func (s *CreateOTAUpdateInput) SetTargets(v []*string) *CreateOTAUpdateInput {
31968	s.Targets = v
31969	return s
31970}
31971
31972type CreateOTAUpdateOutput struct {
31973	_ struct{} `type:"structure"`
31974
31975	// The IoT job ARN associated with the OTA update.
31976	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
31977
31978	// The IoT job ID associated with the OTA update.
31979	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
31980
31981	// The OTA update ARN.
31982	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
31983
31984	// The OTA update ID.
31985	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
31986
31987	// The OTA update status.
31988	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
31989}
31990
31991// String returns the string representation
31992func (s CreateOTAUpdateOutput) String() string {
31993	return awsutil.Prettify(s)
31994}
31995
31996// GoString returns the string representation
31997func (s CreateOTAUpdateOutput) GoString() string {
31998	return s.String()
31999}
32000
32001// SetAwsIotJobArn sets the AwsIotJobArn field's value.
32002func (s *CreateOTAUpdateOutput) SetAwsIotJobArn(v string) *CreateOTAUpdateOutput {
32003	s.AwsIotJobArn = &v
32004	return s
32005}
32006
32007// SetAwsIotJobId sets the AwsIotJobId field's value.
32008func (s *CreateOTAUpdateOutput) SetAwsIotJobId(v string) *CreateOTAUpdateOutput {
32009	s.AwsIotJobId = &v
32010	return s
32011}
32012
32013// SetOtaUpdateArn sets the OtaUpdateArn field's value.
32014func (s *CreateOTAUpdateOutput) SetOtaUpdateArn(v string) *CreateOTAUpdateOutput {
32015	s.OtaUpdateArn = &v
32016	return s
32017}
32018
32019// SetOtaUpdateId sets the OtaUpdateId field's value.
32020func (s *CreateOTAUpdateOutput) SetOtaUpdateId(v string) *CreateOTAUpdateOutput {
32021	s.OtaUpdateId = &v
32022	return s
32023}
32024
32025// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
32026func (s *CreateOTAUpdateOutput) SetOtaUpdateStatus(v string) *CreateOTAUpdateOutput {
32027	s.OtaUpdateStatus = &v
32028	return s
32029}
32030
32031// The input for the CreatePolicy operation.
32032type CreatePolicyInput struct {
32033	_ struct{} `type:"structure"`
32034
32035	// The JSON document that describes the policy. policyDocument must have a minimum
32036	// length of 1, with a maximum length of 2048, excluding whitespace.
32037	//
32038	// PolicyDocument is a required field
32039	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
32040
32041	// The policy name.
32042	//
32043	// PolicyName is a required field
32044	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
32045
32046	// Metadata which can be used to manage the policy.
32047	//
32048	// For URI Request parameters use format: ...key1=value1&key2=value2...
32049	//
32050	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
32051	//
32052	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
32053	Tags []*Tag `locationName:"tags" type:"list"`
32054}
32055
32056// String returns the string representation
32057func (s CreatePolicyInput) String() string {
32058	return awsutil.Prettify(s)
32059}
32060
32061// GoString returns the string representation
32062func (s CreatePolicyInput) GoString() string {
32063	return s.String()
32064}
32065
32066// Validate inspects the fields of the type to determine if they are valid.
32067func (s *CreatePolicyInput) Validate() error {
32068	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyInput"}
32069	if s.PolicyDocument == nil {
32070		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
32071	}
32072	if s.PolicyName == nil {
32073		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
32074	}
32075	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
32076		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
32077	}
32078	if s.Tags != nil {
32079		for i, v := range s.Tags {
32080			if v == nil {
32081				continue
32082			}
32083			if err := v.Validate(); err != nil {
32084				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
32085			}
32086		}
32087	}
32088
32089	if invalidParams.Len() > 0 {
32090		return invalidParams
32091	}
32092	return nil
32093}
32094
32095// SetPolicyDocument sets the PolicyDocument field's value.
32096func (s *CreatePolicyInput) SetPolicyDocument(v string) *CreatePolicyInput {
32097	s.PolicyDocument = &v
32098	return s
32099}
32100
32101// SetPolicyName sets the PolicyName field's value.
32102func (s *CreatePolicyInput) SetPolicyName(v string) *CreatePolicyInput {
32103	s.PolicyName = &v
32104	return s
32105}
32106
32107// SetTags sets the Tags field's value.
32108func (s *CreatePolicyInput) SetTags(v []*Tag) *CreatePolicyInput {
32109	s.Tags = v
32110	return s
32111}
32112
32113// The output from the CreatePolicy operation.
32114type CreatePolicyOutput struct {
32115	_ struct{} `type:"structure"`
32116
32117	// The policy ARN.
32118	PolicyArn *string `locationName:"policyArn" type:"string"`
32119
32120	// The JSON document that describes the policy.
32121	PolicyDocument *string `locationName:"policyDocument" type:"string"`
32122
32123	// The policy name.
32124	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
32125
32126	// The policy version ID.
32127	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
32128}
32129
32130// String returns the string representation
32131func (s CreatePolicyOutput) String() string {
32132	return awsutil.Prettify(s)
32133}
32134
32135// GoString returns the string representation
32136func (s CreatePolicyOutput) GoString() string {
32137	return s.String()
32138}
32139
32140// SetPolicyArn sets the PolicyArn field's value.
32141func (s *CreatePolicyOutput) SetPolicyArn(v string) *CreatePolicyOutput {
32142	s.PolicyArn = &v
32143	return s
32144}
32145
32146// SetPolicyDocument sets the PolicyDocument field's value.
32147func (s *CreatePolicyOutput) SetPolicyDocument(v string) *CreatePolicyOutput {
32148	s.PolicyDocument = &v
32149	return s
32150}
32151
32152// SetPolicyName sets the PolicyName field's value.
32153func (s *CreatePolicyOutput) SetPolicyName(v string) *CreatePolicyOutput {
32154	s.PolicyName = &v
32155	return s
32156}
32157
32158// SetPolicyVersionId sets the PolicyVersionId field's value.
32159func (s *CreatePolicyOutput) SetPolicyVersionId(v string) *CreatePolicyOutput {
32160	s.PolicyVersionId = &v
32161	return s
32162}
32163
32164// The input for the CreatePolicyVersion operation.
32165type CreatePolicyVersionInput struct {
32166	_ struct{} `type:"structure"`
32167
32168	// The JSON document that describes the policy. Minimum length of 1. Maximum
32169	// length of 2048, excluding whitespace.
32170	//
32171	// PolicyDocument is a required field
32172	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
32173
32174	// The policy name.
32175	//
32176	// PolicyName is a required field
32177	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
32178
32179	// Specifies whether the policy version is set as the default. When this parameter
32180	// is true, the new policy version becomes the operative version (that is, the
32181	// version that is in effect for the certificates to which the policy is attached).
32182	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
32183}
32184
32185// String returns the string representation
32186func (s CreatePolicyVersionInput) String() string {
32187	return awsutil.Prettify(s)
32188}
32189
32190// GoString returns the string representation
32191func (s CreatePolicyVersionInput) GoString() string {
32192	return s.String()
32193}
32194
32195// Validate inspects the fields of the type to determine if they are valid.
32196func (s *CreatePolicyVersionInput) Validate() error {
32197	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyVersionInput"}
32198	if s.PolicyDocument == nil {
32199		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
32200	}
32201	if s.PolicyName == nil {
32202		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
32203	}
32204	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
32205		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
32206	}
32207
32208	if invalidParams.Len() > 0 {
32209		return invalidParams
32210	}
32211	return nil
32212}
32213
32214// SetPolicyDocument sets the PolicyDocument field's value.
32215func (s *CreatePolicyVersionInput) SetPolicyDocument(v string) *CreatePolicyVersionInput {
32216	s.PolicyDocument = &v
32217	return s
32218}
32219
32220// SetPolicyName sets the PolicyName field's value.
32221func (s *CreatePolicyVersionInput) SetPolicyName(v string) *CreatePolicyVersionInput {
32222	s.PolicyName = &v
32223	return s
32224}
32225
32226// SetSetAsDefault sets the SetAsDefault field's value.
32227func (s *CreatePolicyVersionInput) SetSetAsDefault(v bool) *CreatePolicyVersionInput {
32228	s.SetAsDefault = &v
32229	return s
32230}
32231
32232// The output of the CreatePolicyVersion operation.
32233type CreatePolicyVersionOutput struct {
32234	_ struct{} `type:"structure"`
32235
32236	// Specifies whether the policy version is the default.
32237	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
32238
32239	// The policy ARN.
32240	PolicyArn *string `locationName:"policyArn" type:"string"`
32241
32242	// The JSON document that describes the policy.
32243	PolicyDocument *string `locationName:"policyDocument" type:"string"`
32244
32245	// The policy version ID.
32246	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
32247}
32248
32249// String returns the string representation
32250func (s CreatePolicyVersionOutput) String() string {
32251	return awsutil.Prettify(s)
32252}
32253
32254// GoString returns the string representation
32255func (s CreatePolicyVersionOutput) GoString() string {
32256	return s.String()
32257}
32258
32259// SetIsDefaultVersion sets the IsDefaultVersion field's value.
32260func (s *CreatePolicyVersionOutput) SetIsDefaultVersion(v bool) *CreatePolicyVersionOutput {
32261	s.IsDefaultVersion = &v
32262	return s
32263}
32264
32265// SetPolicyArn sets the PolicyArn field's value.
32266func (s *CreatePolicyVersionOutput) SetPolicyArn(v string) *CreatePolicyVersionOutput {
32267	s.PolicyArn = &v
32268	return s
32269}
32270
32271// SetPolicyDocument sets the PolicyDocument field's value.
32272func (s *CreatePolicyVersionOutput) SetPolicyDocument(v string) *CreatePolicyVersionOutput {
32273	s.PolicyDocument = &v
32274	return s
32275}
32276
32277// SetPolicyVersionId sets the PolicyVersionId field's value.
32278func (s *CreatePolicyVersionOutput) SetPolicyVersionId(v string) *CreatePolicyVersionOutput {
32279	s.PolicyVersionId = &v
32280	return s
32281}
32282
32283type CreateProvisioningClaimInput struct {
32284	_ struct{} `type:"structure"`
32285
32286	// The name of the provisioning template to use.
32287	//
32288	// TemplateName is a required field
32289	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
32290}
32291
32292// String returns the string representation
32293func (s CreateProvisioningClaimInput) String() string {
32294	return awsutil.Prettify(s)
32295}
32296
32297// GoString returns the string representation
32298func (s CreateProvisioningClaimInput) GoString() string {
32299	return s.String()
32300}
32301
32302// Validate inspects the fields of the type to determine if they are valid.
32303func (s *CreateProvisioningClaimInput) Validate() error {
32304	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningClaimInput"}
32305	if s.TemplateName == nil {
32306		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
32307	}
32308	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
32309		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
32310	}
32311
32312	if invalidParams.Len() > 0 {
32313		return invalidParams
32314	}
32315	return nil
32316}
32317
32318// SetTemplateName sets the TemplateName field's value.
32319func (s *CreateProvisioningClaimInput) SetTemplateName(v string) *CreateProvisioningClaimInput {
32320	s.TemplateName = &v
32321	return s
32322}
32323
32324type CreateProvisioningClaimOutput struct {
32325	_ struct{} `type:"structure"`
32326
32327	// The ID of the certificate.
32328	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
32329
32330	// The provisioning claim certificate.
32331	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
32332
32333	// The provisioning claim expiration time.
32334	Expiration *time.Time `locationName:"expiration" type:"timestamp"`
32335
32336	// The provisioning claim key pair.
32337	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
32338}
32339
32340// String returns the string representation
32341func (s CreateProvisioningClaimOutput) String() string {
32342	return awsutil.Prettify(s)
32343}
32344
32345// GoString returns the string representation
32346func (s CreateProvisioningClaimOutput) GoString() string {
32347	return s.String()
32348}
32349
32350// SetCertificateId sets the CertificateId field's value.
32351func (s *CreateProvisioningClaimOutput) SetCertificateId(v string) *CreateProvisioningClaimOutput {
32352	s.CertificateId = &v
32353	return s
32354}
32355
32356// SetCertificatePem sets the CertificatePem field's value.
32357func (s *CreateProvisioningClaimOutput) SetCertificatePem(v string) *CreateProvisioningClaimOutput {
32358	s.CertificatePem = &v
32359	return s
32360}
32361
32362// SetExpiration sets the Expiration field's value.
32363func (s *CreateProvisioningClaimOutput) SetExpiration(v time.Time) *CreateProvisioningClaimOutput {
32364	s.Expiration = &v
32365	return s
32366}
32367
32368// SetKeyPair sets the KeyPair field's value.
32369func (s *CreateProvisioningClaimOutput) SetKeyPair(v *KeyPair) *CreateProvisioningClaimOutput {
32370	s.KeyPair = v
32371	return s
32372}
32373
32374type CreateProvisioningTemplateInput struct {
32375	_ struct{} `type:"structure"`
32376
32377	// The description of the fleet provisioning template.
32378	Description *string `locationName:"description" type:"string"`
32379
32380	// True to enable the fleet provisioning template, otherwise false.
32381	Enabled *bool `locationName:"enabled" type:"boolean"`
32382
32383	// Creates a pre-provisioning hook template.
32384	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
32385
32386	// The role ARN for the role associated with the fleet provisioning template.
32387	// This IoT role grants permission to provision a device.
32388	//
32389	// ProvisioningRoleArn is a required field
32390	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string" required:"true"`
32391
32392	// Metadata which can be used to manage the fleet provisioning template.
32393	//
32394	// For URI Request parameters use format: ...key1=value1&key2=value2...
32395	//
32396	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
32397	//
32398	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
32399	Tags []*Tag `locationName:"tags" type:"list"`
32400
32401	// The JSON formatted contents of the fleet provisioning template.
32402	//
32403	// TemplateBody is a required field
32404	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
32405
32406	// The name of the fleet provisioning template.
32407	//
32408	// TemplateName is a required field
32409	TemplateName *string `locationName:"templateName" min:"1" type:"string" required:"true"`
32410}
32411
32412// String returns the string representation
32413func (s CreateProvisioningTemplateInput) String() string {
32414	return awsutil.Prettify(s)
32415}
32416
32417// GoString returns the string representation
32418func (s CreateProvisioningTemplateInput) GoString() string {
32419	return s.String()
32420}
32421
32422// Validate inspects the fields of the type to determine if they are valid.
32423func (s *CreateProvisioningTemplateInput) Validate() error {
32424	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateInput"}
32425	if s.ProvisioningRoleArn == nil {
32426		invalidParams.Add(request.NewErrParamRequired("ProvisioningRoleArn"))
32427	}
32428	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
32429		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
32430	}
32431	if s.TemplateBody == nil {
32432		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
32433	}
32434	if s.TemplateName == nil {
32435		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
32436	}
32437	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
32438		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
32439	}
32440	if s.PreProvisioningHook != nil {
32441		if err := s.PreProvisioningHook.Validate(); err != nil {
32442			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
32443		}
32444	}
32445	if s.Tags != nil {
32446		for i, v := range s.Tags {
32447			if v == nil {
32448				continue
32449			}
32450			if err := v.Validate(); err != nil {
32451				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
32452			}
32453		}
32454	}
32455
32456	if invalidParams.Len() > 0 {
32457		return invalidParams
32458	}
32459	return nil
32460}
32461
32462// SetDescription sets the Description field's value.
32463func (s *CreateProvisioningTemplateInput) SetDescription(v string) *CreateProvisioningTemplateInput {
32464	s.Description = &v
32465	return s
32466}
32467
32468// SetEnabled sets the Enabled field's value.
32469func (s *CreateProvisioningTemplateInput) SetEnabled(v bool) *CreateProvisioningTemplateInput {
32470	s.Enabled = &v
32471	return s
32472}
32473
32474// SetPreProvisioningHook sets the PreProvisioningHook field's value.
32475func (s *CreateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *CreateProvisioningTemplateInput {
32476	s.PreProvisioningHook = v
32477	return s
32478}
32479
32480// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
32481func (s *CreateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *CreateProvisioningTemplateInput {
32482	s.ProvisioningRoleArn = &v
32483	return s
32484}
32485
32486// SetTags sets the Tags field's value.
32487func (s *CreateProvisioningTemplateInput) SetTags(v []*Tag) *CreateProvisioningTemplateInput {
32488	s.Tags = v
32489	return s
32490}
32491
32492// SetTemplateBody sets the TemplateBody field's value.
32493func (s *CreateProvisioningTemplateInput) SetTemplateBody(v string) *CreateProvisioningTemplateInput {
32494	s.TemplateBody = &v
32495	return s
32496}
32497
32498// SetTemplateName sets the TemplateName field's value.
32499func (s *CreateProvisioningTemplateInput) SetTemplateName(v string) *CreateProvisioningTemplateInput {
32500	s.TemplateName = &v
32501	return s
32502}
32503
32504type CreateProvisioningTemplateOutput struct {
32505	_ struct{} `type:"structure"`
32506
32507	// The default version of the fleet provisioning template.
32508	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
32509
32510	// The ARN that identifies the provisioning template.
32511	TemplateArn *string `locationName:"templateArn" type:"string"`
32512
32513	// The name of the fleet provisioning template.
32514	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
32515}
32516
32517// String returns the string representation
32518func (s CreateProvisioningTemplateOutput) String() string {
32519	return awsutil.Prettify(s)
32520}
32521
32522// GoString returns the string representation
32523func (s CreateProvisioningTemplateOutput) GoString() string {
32524	return s.String()
32525}
32526
32527// SetDefaultVersionId sets the DefaultVersionId field's value.
32528func (s *CreateProvisioningTemplateOutput) SetDefaultVersionId(v int64) *CreateProvisioningTemplateOutput {
32529	s.DefaultVersionId = &v
32530	return s
32531}
32532
32533// SetTemplateArn sets the TemplateArn field's value.
32534func (s *CreateProvisioningTemplateOutput) SetTemplateArn(v string) *CreateProvisioningTemplateOutput {
32535	s.TemplateArn = &v
32536	return s
32537}
32538
32539// SetTemplateName sets the TemplateName field's value.
32540func (s *CreateProvisioningTemplateOutput) SetTemplateName(v string) *CreateProvisioningTemplateOutput {
32541	s.TemplateName = &v
32542	return s
32543}
32544
32545type CreateProvisioningTemplateVersionInput struct {
32546	_ struct{} `type:"structure"`
32547
32548	// Sets a fleet provision template version as the default version.
32549	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
32550
32551	// The JSON formatted contents of the fleet provisioning template.
32552	//
32553	// TemplateBody is a required field
32554	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
32555
32556	// The name of the fleet provisioning template.
32557	//
32558	// TemplateName is a required field
32559	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
32560}
32561
32562// String returns the string representation
32563func (s CreateProvisioningTemplateVersionInput) String() string {
32564	return awsutil.Prettify(s)
32565}
32566
32567// GoString returns the string representation
32568func (s CreateProvisioningTemplateVersionInput) GoString() string {
32569	return s.String()
32570}
32571
32572// Validate inspects the fields of the type to determine if they are valid.
32573func (s *CreateProvisioningTemplateVersionInput) Validate() error {
32574	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateVersionInput"}
32575	if s.TemplateBody == nil {
32576		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
32577	}
32578	if s.TemplateName == nil {
32579		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
32580	}
32581	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
32582		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
32583	}
32584
32585	if invalidParams.Len() > 0 {
32586		return invalidParams
32587	}
32588	return nil
32589}
32590
32591// SetSetAsDefault sets the SetAsDefault field's value.
32592func (s *CreateProvisioningTemplateVersionInput) SetSetAsDefault(v bool) *CreateProvisioningTemplateVersionInput {
32593	s.SetAsDefault = &v
32594	return s
32595}
32596
32597// SetTemplateBody sets the TemplateBody field's value.
32598func (s *CreateProvisioningTemplateVersionInput) SetTemplateBody(v string) *CreateProvisioningTemplateVersionInput {
32599	s.TemplateBody = &v
32600	return s
32601}
32602
32603// SetTemplateName sets the TemplateName field's value.
32604func (s *CreateProvisioningTemplateVersionInput) SetTemplateName(v string) *CreateProvisioningTemplateVersionInput {
32605	s.TemplateName = &v
32606	return s
32607}
32608
32609type CreateProvisioningTemplateVersionOutput struct {
32610	_ struct{} `type:"structure"`
32611
32612	// True if the fleet provisioning template version is the default version, otherwise
32613	// false.
32614	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
32615
32616	// The ARN that identifies the provisioning template.
32617	TemplateArn *string `locationName:"templateArn" type:"string"`
32618
32619	// The name of the fleet provisioning template.
32620	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
32621
32622	// The version of the fleet provisioning template.
32623	VersionId *int64 `locationName:"versionId" type:"integer"`
32624}
32625
32626// String returns the string representation
32627func (s CreateProvisioningTemplateVersionOutput) String() string {
32628	return awsutil.Prettify(s)
32629}
32630
32631// GoString returns the string representation
32632func (s CreateProvisioningTemplateVersionOutput) GoString() string {
32633	return s.String()
32634}
32635
32636// SetIsDefaultVersion sets the IsDefaultVersion field's value.
32637func (s *CreateProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *CreateProvisioningTemplateVersionOutput {
32638	s.IsDefaultVersion = &v
32639	return s
32640}
32641
32642// SetTemplateArn sets the TemplateArn field's value.
32643func (s *CreateProvisioningTemplateVersionOutput) SetTemplateArn(v string) *CreateProvisioningTemplateVersionOutput {
32644	s.TemplateArn = &v
32645	return s
32646}
32647
32648// SetTemplateName sets the TemplateName field's value.
32649func (s *CreateProvisioningTemplateVersionOutput) SetTemplateName(v string) *CreateProvisioningTemplateVersionOutput {
32650	s.TemplateName = &v
32651	return s
32652}
32653
32654// SetVersionId sets the VersionId field's value.
32655func (s *CreateProvisioningTemplateVersionOutput) SetVersionId(v int64) *CreateProvisioningTemplateVersionOutput {
32656	s.VersionId = &v
32657	return s
32658}
32659
32660type CreateRoleAliasInput struct {
32661	_ struct{} `type:"structure"`
32662
32663	// How long (in seconds) the credentials will be valid. The default value is
32664	// 3,600 seconds.
32665	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
32666
32667	// The role alias that points to a role ARN. This allows you to change the role
32668	// without having to update the device.
32669	//
32670	// RoleAlias is a required field
32671	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
32672
32673	// The role ARN.
32674	//
32675	// RoleArn is a required field
32676	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
32677
32678	// Metadata which can be used to manage the role alias.
32679	//
32680	// For URI Request parameters use format: ...key1=value1&key2=value2...
32681	//
32682	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
32683	//
32684	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
32685	Tags []*Tag `locationName:"tags" type:"list"`
32686}
32687
32688// String returns the string representation
32689func (s CreateRoleAliasInput) String() string {
32690	return awsutil.Prettify(s)
32691}
32692
32693// GoString returns the string representation
32694func (s CreateRoleAliasInput) GoString() string {
32695	return s.String()
32696}
32697
32698// Validate inspects the fields of the type to determine if they are valid.
32699func (s *CreateRoleAliasInput) Validate() error {
32700	invalidParams := request.ErrInvalidParams{Context: "CreateRoleAliasInput"}
32701	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
32702		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
32703	}
32704	if s.RoleAlias == nil {
32705		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
32706	}
32707	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
32708		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
32709	}
32710	if s.RoleArn == nil {
32711		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
32712	}
32713	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
32714		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
32715	}
32716	if s.Tags != nil {
32717		for i, v := range s.Tags {
32718			if v == nil {
32719				continue
32720			}
32721			if err := v.Validate(); err != nil {
32722				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
32723			}
32724		}
32725	}
32726
32727	if invalidParams.Len() > 0 {
32728		return invalidParams
32729	}
32730	return nil
32731}
32732
32733// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
32734func (s *CreateRoleAliasInput) SetCredentialDurationSeconds(v int64) *CreateRoleAliasInput {
32735	s.CredentialDurationSeconds = &v
32736	return s
32737}
32738
32739// SetRoleAlias sets the RoleAlias field's value.
32740func (s *CreateRoleAliasInput) SetRoleAlias(v string) *CreateRoleAliasInput {
32741	s.RoleAlias = &v
32742	return s
32743}
32744
32745// SetRoleArn sets the RoleArn field's value.
32746func (s *CreateRoleAliasInput) SetRoleArn(v string) *CreateRoleAliasInput {
32747	s.RoleArn = &v
32748	return s
32749}
32750
32751// SetTags sets the Tags field's value.
32752func (s *CreateRoleAliasInput) SetTags(v []*Tag) *CreateRoleAliasInput {
32753	s.Tags = v
32754	return s
32755}
32756
32757type CreateRoleAliasOutput struct {
32758	_ struct{} `type:"structure"`
32759
32760	// The role alias.
32761	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
32762
32763	// The role alias ARN.
32764	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
32765}
32766
32767// String returns the string representation
32768func (s CreateRoleAliasOutput) String() string {
32769	return awsutil.Prettify(s)
32770}
32771
32772// GoString returns the string representation
32773func (s CreateRoleAliasOutput) GoString() string {
32774	return s.String()
32775}
32776
32777// SetRoleAlias sets the RoleAlias field's value.
32778func (s *CreateRoleAliasOutput) SetRoleAlias(v string) *CreateRoleAliasOutput {
32779	s.RoleAlias = &v
32780	return s
32781}
32782
32783// SetRoleAliasArn sets the RoleAliasArn field's value.
32784func (s *CreateRoleAliasOutput) SetRoleAliasArn(v string) *CreateRoleAliasOutput {
32785	s.RoleAliasArn = &v
32786	return s
32787}
32788
32789type CreateScheduledAuditInput struct {
32790	_ struct{} `type:"structure"`
32791
32792	// The day of the month on which the scheduled audit takes place. This can be
32793	// "1" through "31" or "LAST". This field is required if the "frequency" parameter
32794	// is set to MONTHLY. If days 29 to 31 are specified, and the month doesn't
32795	// have that many days, the audit takes place on the LAST day of the month.
32796	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
32797
32798	// The day of the week on which the scheduled audit takes place, either SUN,
32799	// MON, TUE, WED, THU, FRI, or SAT. This field is required if the frequency
32800	// parameter is set to WEEKLY or BIWEEKLY.
32801	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
32802
32803	// How often the scheduled audit takes place, either DAILY, WEEKLY, BIWEEKLY
32804	// or MONTHLY. The start time of each audit is determined by the system.
32805	//
32806	// Frequency is a required field
32807	Frequency *string `locationName:"frequency" type:"string" required:"true" enum:"AuditFrequency"`
32808
32809	// The name you want to give to the scheduled audit. (Max. 128 chars)
32810	//
32811	// ScheduledAuditName is a required field
32812	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
32813
32814	// Metadata that can be used to manage the scheduled audit.
32815	Tags []*Tag `locationName:"tags" type:"list"`
32816
32817	// Which checks are performed during the scheduled audit. Checks must be enabled
32818	// for your account. (Use DescribeAccountAuditConfiguration to see the list
32819	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
32820	// to select which checks are enabled.)
32821	//
32822	// TargetCheckNames is a required field
32823	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
32824}
32825
32826// String returns the string representation
32827func (s CreateScheduledAuditInput) String() string {
32828	return awsutil.Prettify(s)
32829}
32830
32831// GoString returns the string representation
32832func (s CreateScheduledAuditInput) GoString() string {
32833	return s.String()
32834}
32835
32836// Validate inspects the fields of the type to determine if they are valid.
32837func (s *CreateScheduledAuditInput) Validate() error {
32838	invalidParams := request.ErrInvalidParams{Context: "CreateScheduledAuditInput"}
32839	if s.Frequency == nil {
32840		invalidParams.Add(request.NewErrParamRequired("Frequency"))
32841	}
32842	if s.ScheduledAuditName == nil {
32843		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
32844	}
32845	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
32846		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
32847	}
32848	if s.TargetCheckNames == nil {
32849		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
32850	}
32851	if s.Tags != nil {
32852		for i, v := range s.Tags {
32853			if v == nil {
32854				continue
32855			}
32856			if err := v.Validate(); err != nil {
32857				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
32858			}
32859		}
32860	}
32861
32862	if invalidParams.Len() > 0 {
32863		return invalidParams
32864	}
32865	return nil
32866}
32867
32868// SetDayOfMonth sets the DayOfMonth field's value.
32869func (s *CreateScheduledAuditInput) SetDayOfMonth(v string) *CreateScheduledAuditInput {
32870	s.DayOfMonth = &v
32871	return s
32872}
32873
32874// SetDayOfWeek sets the DayOfWeek field's value.
32875func (s *CreateScheduledAuditInput) SetDayOfWeek(v string) *CreateScheduledAuditInput {
32876	s.DayOfWeek = &v
32877	return s
32878}
32879
32880// SetFrequency sets the Frequency field's value.
32881func (s *CreateScheduledAuditInput) SetFrequency(v string) *CreateScheduledAuditInput {
32882	s.Frequency = &v
32883	return s
32884}
32885
32886// SetScheduledAuditName sets the ScheduledAuditName field's value.
32887func (s *CreateScheduledAuditInput) SetScheduledAuditName(v string) *CreateScheduledAuditInput {
32888	s.ScheduledAuditName = &v
32889	return s
32890}
32891
32892// SetTags sets the Tags field's value.
32893func (s *CreateScheduledAuditInput) SetTags(v []*Tag) *CreateScheduledAuditInput {
32894	s.Tags = v
32895	return s
32896}
32897
32898// SetTargetCheckNames sets the TargetCheckNames field's value.
32899func (s *CreateScheduledAuditInput) SetTargetCheckNames(v []*string) *CreateScheduledAuditInput {
32900	s.TargetCheckNames = v
32901	return s
32902}
32903
32904type CreateScheduledAuditOutput struct {
32905	_ struct{} `type:"structure"`
32906
32907	// The ARN of the scheduled audit.
32908	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
32909}
32910
32911// String returns the string representation
32912func (s CreateScheduledAuditOutput) String() string {
32913	return awsutil.Prettify(s)
32914}
32915
32916// GoString returns the string representation
32917func (s CreateScheduledAuditOutput) GoString() string {
32918	return s.String()
32919}
32920
32921// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
32922func (s *CreateScheduledAuditOutput) SetScheduledAuditArn(v string) *CreateScheduledAuditOutput {
32923	s.ScheduledAuditArn = &v
32924	return s
32925}
32926
32927type CreateSecurityProfileInput struct {
32928	_ struct{} `type:"structure"`
32929
32930	// Please use CreateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
32931	//
32932	// A list of metrics whose data is retained (stored). By default, data is retained
32933	// for any metric used in the profile's behaviors, but it is also retained for
32934	// any metric specified here. Can be used with custom metrics; cannot be used
32935	// with dimensions.
32936	//
32937	// Deprecated: Use additionalMetricsToRetainV2.
32938	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
32939
32940	// A list of metrics whose data is retained (stored). By default, data is retained
32941	// for any metric used in the profile's behaviors, but it is also retained for
32942	// any metric specified here. Can be used with custom metrics; cannot be used
32943	// with dimensions.
32944	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
32945
32946	// Specifies the destinations to which alerts are sent. (Alerts are always sent
32947	// to the console.) Alerts are generated when a device (thing) violates a behavior.
32948	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
32949
32950	// Specifies the behaviors that, when violated by a device (thing), cause an
32951	// alert.
32952	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
32953
32954	// A description of the security profile.
32955	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
32956
32957	// The name you are giving to the security profile.
32958	//
32959	// SecurityProfileName is a required field
32960	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
32961
32962	// Metadata that can be used to manage the security profile.
32963	Tags []*Tag `locationName:"tags" type:"list"`
32964}
32965
32966// String returns the string representation
32967func (s CreateSecurityProfileInput) String() string {
32968	return awsutil.Prettify(s)
32969}
32970
32971// GoString returns the string representation
32972func (s CreateSecurityProfileInput) GoString() string {
32973	return s.String()
32974}
32975
32976// Validate inspects the fields of the type to determine if they are valid.
32977func (s *CreateSecurityProfileInput) Validate() error {
32978	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityProfileInput"}
32979	if s.SecurityProfileName == nil {
32980		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
32981	}
32982	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
32983		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
32984	}
32985	if s.AdditionalMetricsToRetainV2 != nil {
32986		for i, v := range s.AdditionalMetricsToRetainV2 {
32987			if v == nil {
32988				continue
32989			}
32990			if err := v.Validate(); err != nil {
32991				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
32992			}
32993		}
32994	}
32995	if s.AlertTargets != nil {
32996		for i, v := range s.AlertTargets {
32997			if v == nil {
32998				continue
32999			}
33000			if err := v.Validate(); err != nil {
33001				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
33002			}
33003		}
33004	}
33005	if s.Behaviors != nil {
33006		for i, v := range s.Behaviors {
33007			if v == nil {
33008				continue
33009			}
33010			if err := v.Validate(); err != nil {
33011				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
33012			}
33013		}
33014	}
33015	if s.Tags != nil {
33016		for i, v := range s.Tags {
33017			if v == nil {
33018				continue
33019			}
33020			if err := v.Validate(); err != nil {
33021				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
33022			}
33023		}
33024	}
33025
33026	if invalidParams.Len() > 0 {
33027		return invalidParams
33028	}
33029	return nil
33030}
33031
33032// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
33033func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *CreateSecurityProfileInput {
33034	s.AdditionalMetricsToRetain = v
33035	return s
33036}
33037
33038// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
33039func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *CreateSecurityProfileInput {
33040	s.AdditionalMetricsToRetainV2 = v
33041	return s
33042}
33043
33044// SetAlertTargets sets the AlertTargets field's value.
33045func (s *CreateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *CreateSecurityProfileInput {
33046	s.AlertTargets = v
33047	return s
33048}
33049
33050// SetBehaviors sets the Behaviors field's value.
33051func (s *CreateSecurityProfileInput) SetBehaviors(v []*Behavior) *CreateSecurityProfileInput {
33052	s.Behaviors = v
33053	return s
33054}
33055
33056// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
33057func (s *CreateSecurityProfileInput) SetSecurityProfileDescription(v string) *CreateSecurityProfileInput {
33058	s.SecurityProfileDescription = &v
33059	return s
33060}
33061
33062// SetSecurityProfileName sets the SecurityProfileName field's value.
33063func (s *CreateSecurityProfileInput) SetSecurityProfileName(v string) *CreateSecurityProfileInput {
33064	s.SecurityProfileName = &v
33065	return s
33066}
33067
33068// SetTags sets the Tags field's value.
33069func (s *CreateSecurityProfileInput) SetTags(v []*Tag) *CreateSecurityProfileInput {
33070	s.Tags = v
33071	return s
33072}
33073
33074type CreateSecurityProfileOutput struct {
33075	_ struct{} `type:"structure"`
33076
33077	// The ARN of the security profile.
33078	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
33079
33080	// The name you gave to the security profile.
33081	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
33082}
33083
33084// String returns the string representation
33085func (s CreateSecurityProfileOutput) String() string {
33086	return awsutil.Prettify(s)
33087}
33088
33089// GoString returns the string representation
33090func (s CreateSecurityProfileOutput) GoString() string {
33091	return s.String()
33092}
33093
33094// SetSecurityProfileArn sets the SecurityProfileArn field's value.
33095func (s *CreateSecurityProfileOutput) SetSecurityProfileArn(v string) *CreateSecurityProfileOutput {
33096	s.SecurityProfileArn = &v
33097	return s
33098}
33099
33100// SetSecurityProfileName sets the SecurityProfileName field's value.
33101func (s *CreateSecurityProfileOutput) SetSecurityProfileName(v string) *CreateSecurityProfileOutput {
33102	s.SecurityProfileName = &v
33103	return s
33104}
33105
33106type CreateStreamInput struct {
33107	_ struct{} `type:"structure"`
33108
33109	// A description of the stream.
33110	Description *string `locationName:"description" type:"string"`
33111
33112	// The files to stream.
33113	//
33114	// Files is a required field
33115	Files []*StreamFile `locationName:"files" min:"1" type:"list" required:"true"`
33116
33117	// An IAM role that allows the IoT service principal assumes to access your
33118	// S3 files.
33119	//
33120	// RoleArn is a required field
33121	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
33122
33123	// The stream ID.
33124	//
33125	// StreamId is a required field
33126	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
33127
33128	// Metadata which can be used to manage streams.
33129	Tags []*Tag `locationName:"tags" type:"list"`
33130}
33131
33132// String returns the string representation
33133func (s CreateStreamInput) String() string {
33134	return awsutil.Prettify(s)
33135}
33136
33137// GoString returns the string representation
33138func (s CreateStreamInput) GoString() string {
33139	return s.String()
33140}
33141
33142// Validate inspects the fields of the type to determine if they are valid.
33143func (s *CreateStreamInput) Validate() error {
33144	invalidParams := request.ErrInvalidParams{Context: "CreateStreamInput"}
33145	if s.Files == nil {
33146		invalidParams.Add(request.NewErrParamRequired("Files"))
33147	}
33148	if s.Files != nil && len(s.Files) < 1 {
33149		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
33150	}
33151	if s.RoleArn == nil {
33152		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
33153	}
33154	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
33155		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
33156	}
33157	if s.StreamId == nil {
33158		invalidParams.Add(request.NewErrParamRequired("StreamId"))
33159	}
33160	if s.StreamId != nil && len(*s.StreamId) < 1 {
33161		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
33162	}
33163	if s.Files != nil {
33164		for i, v := range s.Files {
33165			if v == nil {
33166				continue
33167			}
33168			if err := v.Validate(); err != nil {
33169				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
33170			}
33171		}
33172	}
33173	if s.Tags != nil {
33174		for i, v := range s.Tags {
33175			if v == nil {
33176				continue
33177			}
33178			if err := v.Validate(); err != nil {
33179				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
33180			}
33181		}
33182	}
33183
33184	if invalidParams.Len() > 0 {
33185		return invalidParams
33186	}
33187	return nil
33188}
33189
33190// SetDescription sets the Description field's value.
33191func (s *CreateStreamInput) SetDescription(v string) *CreateStreamInput {
33192	s.Description = &v
33193	return s
33194}
33195
33196// SetFiles sets the Files field's value.
33197func (s *CreateStreamInput) SetFiles(v []*StreamFile) *CreateStreamInput {
33198	s.Files = v
33199	return s
33200}
33201
33202// SetRoleArn sets the RoleArn field's value.
33203func (s *CreateStreamInput) SetRoleArn(v string) *CreateStreamInput {
33204	s.RoleArn = &v
33205	return s
33206}
33207
33208// SetStreamId sets the StreamId field's value.
33209func (s *CreateStreamInput) SetStreamId(v string) *CreateStreamInput {
33210	s.StreamId = &v
33211	return s
33212}
33213
33214// SetTags sets the Tags field's value.
33215func (s *CreateStreamInput) SetTags(v []*Tag) *CreateStreamInput {
33216	s.Tags = v
33217	return s
33218}
33219
33220type CreateStreamOutput struct {
33221	_ struct{} `type:"structure"`
33222
33223	// A description of the stream.
33224	Description *string `locationName:"description" type:"string"`
33225
33226	// The stream ARN.
33227	StreamArn *string `locationName:"streamArn" type:"string"`
33228
33229	// The stream ID.
33230	StreamId *string `locationName:"streamId" min:"1" type:"string"`
33231
33232	// The version of the stream.
33233	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
33234}
33235
33236// String returns the string representation
33237func (s CreateStreamOutput) String() string {
33238	return awsutil.Prettify(s)
33239}
33240
33241// GoString returns the string representation
33242func (s CreateStreamOutput) GoString() string {
33243	return s.String()
33244}
33245
33246// SetDescription sets the Description field's value.
33247func (s *CreateStreamOutput) SetDescription(v string) *CreateStreamOutput {
33248	s.Description = &v
33249	return s
33250}
33251
33252// SetStreamArn sets the StreamArn field's value.
33253func (s *CreateStreamOutput) SetStreamArn(v string) *CreateStreamOutput {
33254	s.StreamArn = &v
33255	return s
33256}
33257
33258// SetStreamId sets the StreamId field's value.
33259func (s *CreateStreamOutput) SetStreamId(v string) *CreateStreamOutput {
33260	s.StreamId = &v
33261	return s
33262}
33263
33264// SetStreamVersion sets the StreamVersion field's value.
33265func (s *CreateStreamOutput) SetStreamVersion(v int64) *CreateStreamOutput {
33266	s.StreamVersion = &v
33267	return s
33268}
33269
33270type CreateThingGroupInput struct {
33271	_ struct{} `type:"structure"`
33272
33273	// The name of the parent thing group.
33274	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
33275
33276	// Metadata which can be used to manage the thing group.
33277	Tags []*Tag `locationName:"tags" type:"list"`
33278
33279	// The thing group name to create.
33280	//
33281	// ThingGroupName is a required field
33282	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
33283
33284	// The thing group properties.
33285	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
33286}
33287
33288// String returns the string representation
33289func (s CreateThingGroupInput) String() string {
33290	return awsutil.Prettify(s)
33291}
33292
33293// GoString returns the string representation
33294func (s CreateThingGroupInput) GoString() string {
33295	return s.String()
33296}
33297
33298// Validate inspects the fields of the type to determine if they are valid.
33299func (s *CreateThingGroupInput) Validate() error {
33300	invalidParams := request.ErrInvalidParams{Context: "CreateThingGroupInput"}
33301	if s.ParentGroupName != nil && len(*s.ParentGroupName) < 1 {
33302		invalidParams.Add(request.NewErrParamMinLen("ParentGroupName", 1))
33303	}
33304	if s.ThingGroupName == nil {
33305		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
33306	}
33307	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
33308		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
33309	}
33310	if s.Tags != nil {
33311		for i, v := range s.Tags {
33312			if v == nil {
33313				continue
33314			}
33315			if err := v.Validate(); err != nil {
33316				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
33317			}
33318		}
33319	}
33320
33321	if invalidParams.Len() > 0 {
33322		return invalidParams
33323	}
33324	return nil
33325}
33326
33327// SetParentGroupName sets the ParentGroupName field's value.
33328func (s *CreateThingGroupInput) SetParentGroupName(v string) *CreateThingGroupInput {
33329	s.ParentGroupName = &v
33330	return s
33331}
33332
33333// SetTags sets the Tags field's value.
33334func (s *CreateThingGroupInput) SetTags(v []*Tag) *CreateThingGroupInput {
33335	s.Tags = v
33336	return s
33337}
33338
33339// SetThingGroupName sets the ThingGroupName field's value.
33340func (s *CreateThingGroupInput) SetThingGroupName(v string) *CreateThingGroupInput {
33341	s.ThingGroupName = &v
33342	return s
33343}
33344
33345// SetThingGroupProperties sets the ThingGroupProperties field's value.
33346func (s *CreateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateThingGroupInput {
33347	s.ThingGroupProperties = v
33348	return s
33349}
33350
33351type CreateThingGroupOutput struct {
33352	_ struct{} `type:"structure"`
33353
33354	// The thing group ARN.
33355	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
33356
33357	// The thing group ID.
33358	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
33359
33360	// The thing group name.
33361	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
33362}
33363
33364// String returns the string representation
33365func (s CreateThingGroupOutput) String() string {
33366	return awsutil.Prettify(s)
33367}
33368
33369// GoString returns the string representation
33370func (s CreateThingGroupOutput) GoString() string {
33371	return s.String()
33372}
33373
33374// SetThingGroupArn sets the ThingGroupArn field's value.
33375func (s *CreateThingGroupOutput) SetThingGroupArn(v string) *CreateThingGroupOutput {
33376	s.ThingGroupArn = &v
33377	return s
33378}
33379
33380// SetThingGroupId sets the ThingGroupId field's value.
33381func (s *CreateThingGroupOutput) SetThingGroupId(v string) *CreateThingGroupOutput {
33382	s.ThingGroupId = &v
33383	return s
33384}
33385
33386// SetThingGroupName sets the ThingGroupName field's value.
33387func (s *CreateThingGroupOutput) SetThingGroupName(v string) *CreateThingGroupOutput {
33388	s.ThingGroupName = &v
33389	return s
33390}
33391
33392// The input for the CreateThing operation.
33393type CreateThingInput struct {
33394	_ struct{} `type:"structure"`
33395
33396	// The attribute payload, which consists of up to three name/value pairs in
33397	// a JSON document. For example:
33398	//
33399	// {\"attributes\":{\"string1\":\"string2\"}}
33400	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
33401
33402	// The name of the billing group the thing will be added to.
33403	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
33404
33405	// The name of the thing to create.
33406	//
33407	// You can't change a thing's name after you create it. To change a thing's
33408	// name, you must create a new thing, give it the new name, and then delete
33409	// the old thing.
33410	//
33411	// ThingName is a required field
33412	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
33413
33414	// The name of the thing type associated with the new thing.
33415	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
33416}
33417
33418// String returns the string representation
33419func (s CreateThingInput) String() string {
33420	return awsutil.Prettify(s)
33421}
33422
33423// GoString returns the string representation
33424func (s CreateThingInput) GoString() string {
33425	return s.String()
33426}
33427
33428// Validate inspects the fields of the type to determine if they are valid.
33429func (s *CreateThingInput) Validate() error {
33430	invalidParams := request.ErrInvalidParams{Context: "CreateThingInput"}
33431	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
33432		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
33433	}
33434	if s.ThingName == nil {
33435		invalidParams.Add(request.NewErrParamRequired("ThingName"))
33436	}
33437	if s.ThingName != nil && len(*s.ThingName) < 1 {
33438		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
33439	}
33440	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
33441		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
33442	}
33443
33444	if invalidParams.Len() > 0 {
33445		return invalidParams
33446	}
33447	return nil
33448}
33449
33450// SetAttributePayload sets the AttributePayload field's value.
33451func (s *CreateThingInput) SetAttributePayload(v *AttributePayload) *CreateThingInput {
33452	s.AttributePayload = v
33453	return s
33454}
33455
33456// SetBillingGroupName sets the BillingGroupName field's value.
33457func (s *CreateThingInput) SetBillingGroupName(v string) *CreateThingInput {
33458	s.BillingGroupName = &v
33459	return s
33460}
33461
33462// SetThingName sets the ThingName field's value.
33463func (s *CreateThingInput) SetThingName(v string) *CreateThingInput {
33464	s.ThingName = &v
33465	return s
33466}
33467
33468// SetThingTypeName sets the ThingTypeName field's value.
33469func (s *CreateThingInput) SetThingTypeName(v string) *CreateThingInput {
33470	s.ThingTypeName = &v
33471	return s
33472}
33473
33474// The output of the CreateThing operation.
33475type CreateThingOutput struct {
33476	_ struct{} `type:"structure"`
33477
33478	// The ARN of the new thing.
33479	ThingArn *string `locationName:"thingArn" type:"string"`
33480
33481	// The thing ID.
33482	ThingId *string `locationName:"thingId" type:"string"`
33483
33484	// The name of the new thing.
33485	ThingName *string `locationName:"thingName" min:"1" type:"string"`
33486}
33487
33488// String returns the string representation
33489func (s CreateThingOutput) String() string {
33490	return awsutil.Prettify(s)
33491}
33492
33493// GoString returns the string representation
33494func (s CreateThingOutput) GoString() string {
33495	return s.String()
33496}
33497
33498// SetThingArn sets the ThingArn field's value.
33499func (s *CreateThingOutput) SetThingArn(v string) *CreateThingOutput {
33500	s.ThingArn = &v
33501	return s
33502}
33503
33504// SetThingId sets the ThingId field's value.
33505func (s *CreateThingOutput) SetThingId(v string) *CreateThingOutput {
33506	s.ThingId = &v
33507	return s
33508}
33509
33510// SetThingName sets the ThingName field's value.
33511func (s *CreateThingOutput) SetThingName(v string) *CreateThingOutput {
33512	s.ThingName = &v
33513	return s
33514}
33515
33516// The input for the CreateThingType operation.
33517type CreateThingTypeInput struct {
33518	_ struct{} `type:"structure"`
33519
33520	// Metadata which can be used to manage the thing type.
33521	Tags []*Tag `locationName:"tags" type:"list"`
33522
33523	// The name of the thing type.
33524	//
33525	// ThingTypeName is a required field
33526	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
33527
33528	// The ThingTypeProperties for the thing type to create. It contains information
33529	// about the new thing type including a description, and a list of searchable
33530	// thing attribute names.
33531	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
33532}
33533
33534// String returns the string representation
33535func (s CreateThingTypeInput) String() string {
33536	return awsutil.Prettify(s)
33537}
33538
33539// GoString returns the string representation
33540func (s CreateThingTypeInput) GoString() string {
33541	return s.String()
33542}
33543
33544// Validate inspects the fields of the type to determine if they are valid.
33545func (s *CreateThingTypeInput) Validate() error {
33546	invalidParams := request.ErrInvalidParams{Context: "CreateThingTypeInput"}
33547	if s.ThingTypeName == nil {
33548		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
33549	}
33550	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
33551		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
33552	}
33553	if s.Tags != nil {
33554		for i, v := range s.Tags {
33555			if v == nil {
33556				continue
33557			}
33558			if err := v.Validate(); err != nil {
33559				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
33560			}
33561		}
33562	}
33563
33564	if invalidParams.Len() > 0 {
33565		return invalidParams
33566	}
33567	return nil
33568}
33569
33570// SetTags sets the Tags field's value.
33571func (s *CreateThingTypeInput) SetTags(v []*Tag) *CreateThingTypeInput {
33572	s.Tags = v
33573	return s
33574}
33575
33576// SetThingTypeName sets the ThingTypeName field's value.
33577func (s *CreateThingTypeInput) SetThingTypeName(v string) *CreateThingTypeInput {
33578	s.ThingTypeName = &v
33579	return s
33580}
33581
33582// SetThingTypeProperties sets the ThingTypeProperties field's value.
33583func (s *CreateThingTypeInput) SetThingTypeProperties(v *ThingTypeProperties) *CreateThingTypeInput {
33584	s.ThingTypeProperties = v
33585	return s
33586}
33587
33588// The output of the CreateThingType operation.
33589type CreateThingTypeOutput struct {
33590	_ struct{} `type:"structure"`
33591
33592	// The Amazon Resource Name (ARN) of the thing type.
33593	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
33594
33595	// The thing type ID.
33596	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
33597
33598	// The name of the thing type.
33599	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
33600}
33601
33602// String returns the string representation
33603func (s CreateThingTypeOutput) String() string {
33604	return awsutil.Prettify(s)
33605}
33606
33607// GoString returns the string representation
33608func (s CreateThingTypeOutput) GoString() string {
33609	return s.String()
33610}
33611
33612// SetThingTypeArn sets the ThingTypeArn field's value.
33613func (s *CreateThingTypeOutput) SetThingTypeArn(v string) *CreateThingTypeOutput {
33614	s.ThingTypeArn = &v
33615	return s
33616}
33617
33618// SetThingTypeId sets the ThingTypeId field's value.
33619func (s *CreateThingTypeOutput) SetThingTypeId(v string) *CreateThingTypeOutput {
33620	s.ThingTypeId = &v
33621	return s
33622}
33623
33624// SetThingTypeName sets the ThingTypeName field's value.
33625func (s *CreateThingTypeOutput) SetThingTypeName(v string) *CreateThingTypeOutput {
33626	s.ThingTypeName = &v
33627	return s
33628}
33629
33630type CreateTopicRuleDestinationInput struct {
33631	_ struct{} `type:"structure"`
33632
33633	// The topic rule destination configuration.
33634	//
33635	// DestinationConfiguration is a required field
33636	DestinationConfiguration *TopicRuleDestinationConfiguration `locationName:"destinationConfiguration" type:"structure" required:"true"`
33637}
33638
33639// String returns the string representation
33640func (s CreateTopicRuleDestinationInput) String() string {
33641	return awsutil.Prettify(s)
33642}
33643
33644// GoString returns the string representation
33645func (s CreateTopicRuleDestinationInput) GoString() string {
33646	return s.String()
33647}
33648
33649// Validate inspects the fields of the type to determine if they are valid.
33650func (s *CreateTopicRuleDestinationInput) Validate() error {
33651	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleDestinationInput"}
33652	if s.DestinationConfiguration == nil {
33653		invalidParams.Add(request.NewErrParamRequired("DestinationConfiguration"))
33654	}
33655	if s.DestinationConfiguration != nil {
33656		if err := s.DestinationConfiguration.Validate(); err != nil {
33657			invalidParams.AddNested("DestinationConfiguration", err.(request.ErrInvalidParams))
33658		}
33659	}
33660
33661	if invalidParams.Len() > 0 {
33662		return invalidParams
33663	}
33664	return nil
33665}
33666
33667// SetDestinationConfiguration sets the DestinationConfiguration field's value.
33668func (s *CreateTopicRuleDestinationInput) SetDestinationConfiguration(v *TopicRuleDestinationConfiguration) *CreateTopicRuleDestinationInput {
33669	s.DestinationConfiguration = v
33670	return s
33671}
33672
33673type CreateTopicRuleDestinationOutput struct {
33674	_ struct{} `type:"structure"`
33675
33676	// The topic rule destination.
33677	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
33678}
33679
33680// String returns the string representation
33681func (s CreateTopicRuleDestinationOutput) String() string {
33682	return awsutil.Prettify(s)
33683}
33684
33685// GoString returns the string representation
33686func (s CreateTopicRuleDestinationOutput) GoString() string {
33687	return s.String()
33688}
33689
33690// SetTopicRuleDestination sets the TopicRuleDestination field's value.
33691func (s *CreateTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *CreateTopicRuleDestinationOutput {
33692	s.TopicRuleDestination = v
33693	return s
33694}
33695
33696// The input for the CreateTopicRule operation.
33697type CreateTopicRuleInput struct {
33698	_ struct{} `type:"structure" payload:"TopicRulePayload"`
33699
33700	// The name of the rule.
33701	//
33702	// RuleName is a required field
33703	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
33704
33705	// Metadata which can be used to manage the topic rule.
33706	//
33707	// For URI Request parameters use format: ...key1=value1&key2=value2...
33708	//
33709	// For the CLI command-line parameter use format: --tags "key1=value1&key2=value2..."
33710	//
33711	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
33712	Tags *string `location:"header" locationName:"x-amz-tagging" type:"string"`
33713
33714	// The rule payload.
33715	//
33716	// TopicRulePayload is a required field
33717	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
33718}
33719
33720// String returns the string representation
33721func (s CreateTopicRuleInput) String() string {
33722	return awsutil.Prettify(s)
33723}
33724
33725// GoString returns the string representation
33726func (s CreateTopicRuleInput) GoString() string {
33727	return s.String()
33728}
33729
33730// Validate inspects the fields of the type to determine if they are valid.
33731func (s *CreateTopicRuleInput) Validate() error {
33732	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleInput"}
33733	if s.RuleName == nil {
33734		invalidParams.Add(request.NewErrParamRequired("RuleName"))
33735	}
33736	if s.RuleName != nil && len(*s.RuleName) < 1 {
33737		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
33738	}
33739	if s.TopicRulePayload == nil {
33740		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
33741	}
33742	if s.TopicRulePayload != nil {
33743		if err := s.TopicRulePayload.Validate(); err != nil {
33744			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
33745		}
33746	}
33747
33748	if invalidParams.Len() > 0 {
33749		return invalidParams
33750	}
33751	return nil
33752}
33753
33754// SetRuleName sets the RuleName field's value.
33755func (s *CreateTopicRuleInput) SetRuleName(v string) *CreateTopicRuleInput {
33756	s.RuleName = &v
33757	return s
33758}
33759
33760// SetTags sets the Tags field's value.
33761func (s *CreateTopicRuleInput) SetTags(v string) *CreateTopicRuleInput {
33762	s.Tags = &v
33763	return s
33764}
33765
33766// SetTopicRulePayload sets the TopicRulePayload field's value.
33767func (s *CreateTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *CreateTopicRuleInput {
33768	s.TopicRulePayload = v
33769	return s
33770}
33771
33772type CreateTopicRuleOutput struct {
33773	_ struct{} `type:"structure"`
33774}
33775
33776// String returns the string representation
33777func (s CreateTopicRuleOutput) String() string {
33778	return awsutil.Prettify(s)
33779}
33780
33781// GoString returns the string representation
33782func (s CreateTopicRuleOutput) GoString() string {
33783	return s.String()
33784}
33785
33786// Describes a custom method used to code sign a file.
33787type CustomCodeSigning struct {
33788	_ struct{} `type:"structure"`
33789
33790	// The certificate chain.
33791	CertificateChain *CodeSigningCertificateChain `locationName:"certificateChain" type:"structure"`
33792
33793	// The hash algorithm used to code sign the file.
33794	HashAlgorithm *string `locationName:"hashAlgorithm" type:"string"`
33795
33796	// The signature for the file.
33797	Signature *CodeSigningSignature `locationName:"signature" type:"structure"`
33798
33799	// The signature algorithm used to code sign the file.
33800	SignatureAlgorithm *string `locationName:"signatureAlgorithm" type:"string"`
33801}
33802
33803// String returns the string representation
33804func (s CustomCodeSigning) String() string {
33805	return awsutil.Prettify(s)
33806}
33807
33808// GoString returns the string representation
33809func (s CustomCodeSigning) GoString() string {
33810	return s.String()
33811}
33812
33813// SetCertificateChain sets the CertificateChain field's value.
33814func (s *CustomCodeSigning) SetCertificateChain(v *CodeSigningCertificateChain) *CustomCodeSigning {
33815	s.CertificateChain = v
33816	return s
33817}
33818
33819// SetHashAlgorithm sets the HashAlgorithm field's value.
33820func (s *CustomCodeSigning) SetHashAlgorithm(v string) *CustomCodeSigning {
33821	s.HashAlgorithm = &v
33822	return s
33823}
33824
33825// SetSignature sets the Signature field's value.
33826func (s *CustomCodeSigning) SetSignature(v *CodeSigningSignature) *CustomCodeSigning {
33827	s.Signature = v
33828	return s
33829}
33830
33831// SetSignatureAlgorithm sets the SignatureAlgorithm field's value.
33832func (s *CustomCodeSigning) SetSignatureAlgorithm(v string) *CustomCodeSigning {
33833	s.SignatureAlgorithm = &v
33834	return s
33835}
33836
33837type DeleteAccountAuditConfigurationInput struct {
33838	_ struct{} `type:"structure"`
33839
33840	// If true, all scheduled audits are deleted.
33841	DeleteScheduledAudits *bool `location:"querystring" locationName:"deleteScheduledAudits" type:"boolean"`
33842}
33843
33844// String returns the string representation
33845func (s DeleteAccountAuditConfigurationInput) String() string {
33846	return awsutil.Prettify(s)
33847}
33848
33849// GoString returns the string representation
33850func (s DeleteAccountAuditConfigurationInput) GoString() string {
33851	return s.String()
33852}
33853
33854// SetDeleteScheduledAudits sets the DeleteScheduledAudits field's value.
33855func (s *DeleteAccountAuditConfigurationInput) SetDeleteScheduledAudits(v bool) *DeleteAccountAuditConfigurationInput {
33856	s.DeleteScheduledAudits = &v
33857	return s
33858}
33859
33860type DeleteAccountAuditConfigurationOutput struct {
33861	_ struct{} `type:"structure"`
33862}
33863
33864// String returns the string representation
33865func (s DeleteAccountAuditConfigurationOutput) String() string {
33866	return awsutil.Prettify(s)
33867}
33868
33869// GoString returns the string representation
33870func (s DeleteAccountAuditConfigurationOutput) GoString() string {
33871	return s.String()
33872}
33873
33874type DeleteAuditSuppressionInput struct {
33875	_ struct{} `type:"structure"`
33876
33877	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
33878	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
33879	// to select which checks are enabled.)
33880	//
33881	// CheckName is a required field
33882	CheckName *string `locationName:"checkName" type:"string" required:"true"`
33883
33884	// Information that identifies the noncompliant resource.
33885	//
33886	// ResourceIdentifier is a required field
33887	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
33888}
33889
33890// String returns the string representation
33891func (s DeleteAuditSuppressionInput) String() string {
33892	return awsutil.Prettify(s)
33893}
33894
33895// GoString returns the string representation
33896func (s DeleteAuditSuppressionInput) GoString() string {
33897	return s.String()
33898}
33899
33900// Validate inspects the fields of the type to determine if they are valid.
33901func (s *DeleteAuditSuppressionInput) Validate() error {
33902	invalidParams := request.ErrInvalidParams{Context: "DeleteAuditSuppressionInput"}
33903	if s.CheckName == nil {
33904		invalidParams.Add(request.NewErrParamRequired("CheckName"))
33905	}
33906	if s.ResourceIdentifier == nil {
33907		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
33908	}
33909	if s.ResourceIdentifier != nil {
33910		if err := s.ResourceIdentifier.Validate(); err != nil {
33911			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
33912		}
33913	}
33914
33915	if invalidParams.Len() > 0 {
33916		return invalidParams
33917	}
33918	return nil
33919}
33920
33921// SetCheckName sets the CheckName field's value.
33922func (s *DeleteAuditSuppressionInput) SetCheckName(v string) *DeleteAuditSuppressionInput {
33923	s.CheckName = &v
33924	return s
33925}
33926
33927// SetResourceIdentifier sets the ResourceIdentifier field's value.
33928func (s *DeleteAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *DeleteAuditSuppressionInput {
33929	s.ResourceIdentifier = v
33930	return s
33931}
33932
33933type DeleteAuditSuppressionOutput struct {
33934	_ struct{} `type:"structure"`
33935}
33936
33937// String returns the string representation
33938func (s DeleteAuditSuppressionOutput) String() string {
33939	return awsutil.Prettify(s)
33940}
33941
33942// GoString returns the string representation
33943func (s DeleteAuditSuppressionOutput) GoString() string {
33944	return s.String()
33945}
33946
33947type DeleteAuthorizerInput struct {
33948	_ struct{} `type:"structure"`
33949
33950	// The name of the authorizer to delete.
33951	//
33952	// AuthorizerName is a required field
33953	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
33954}
33955
33956// String returns the string representation
33957func (s DeleteAuthorizerInput) String() string {
33958	return awsutil.Prettify(s)
33959}
33960
33961// GoString returns the string representation
33962func (s DeleteAuthorizerInput) GoString() string {
33963	return s.String()
33964}
33965
33966// Validate inspects the fields of the type to determine if they are valid.
33967func (s *DeleteAuthorizerInput) Validate() error {
33968	invalidParams := request.ErrInvalidParams{Context: "DeleteAuthorizerInput"}
33969	if s.AuthorizerName == nil {
33970		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
33971	}
33972	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
33973		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
33974	}
33975
33976	if invalidParams.Len() > 0 {
33977		return invalidParams
33978	}
33979	return nil
33980}
33981
33982// SetAuthorizerName sets the AuthorizerName field's value.
33983func (s *DeleteAuthorizerInput) SetAuthorizerName(v string) *DeleteAuthorizerInput {
33984	s.AuthorizerName = &v
33985	return s
33986}
33987
33988type DeleteAuthorizerOutput struct {
33989	_ struct{} `type:"structure"`
33990}
33991
33992// String returns the string representation
33993func (s DeleteAuthorizerOutput) String() string {
33994	return awsutil.Prettify(s)
33995}
33996
33997// GoString returns the string representation
33998func (s DeleteAuthorizerOutput) GoString() string {
33999	return s.String()
34000}
34001
34002type DeleteBillingGroupInput struct {
34003	_ struct{} `type:"structure"`
34004
34005	// The name of the billing group.
34006	//
34007	// BillingGroupName is a required field
34008	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
34009
34010	// The expected version of the billing group. If the version of the billing
34011	// group does not match the expected version specified in the request, the DeleteBillingGroup
34012	// request is rejected with a VersionConflictException.
34013	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
34014}
34015
34016// String returns the string representation
34017func (s DeleteBillingGroupInput) String() string {
34018	return awsutil.Prettify(s)
34019}
34020
34021// GoString returns the string representation
34022func (s DeleteBillingGroupInput) GoString() string {
34023	return s.String()
34024}
34025
34026// Validate inspects the fields of the type to determine if they are valid.
34027func (s *DeleteBillingGroupInput) Validate() error {
34028	invalidParams := request.ErrInvalidParams{Context: "DeleteBillingGroupInput"}
34029	if s.BillingGroupName == nil {
34030		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
34031	}
34032	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
34033		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
34034	}
34035
34036	if invalidParams.Len() > 0 {
34037		return invalidParams
34038	}
34039	return nil
34040}
34041
34042// SetBillingGroupName sets the BillingGroupName field's value.
34043func (s *DeleteBillingGroupInput) SetBillingGroupName(v string) *DeleteBillingGroupInput {
34044	s.BillingGroupName = &v
34045	return s
34046}
34047
34048// SetExpectedVersion sets the ExpectedVersion field's value.
34049func (s *DeleteBillingGroupInput) SetExpectedVersion(v int64) *DeleteBillingGroupInput {
34050	s.ExpectedVersion = &v
34051	return s
34052}
34053
34054type DeleteBillingGroupOutput struct {
34055	_ struct{} `type:"structure"`
34056}
34057
34058// String returns the string representation
34059func (s DeleteBillingGroupOutput) String() string {
34060	return awsutil.Prettify(s)
34061}
34062
34063// GoString returns the string representation
34064func (s DeleteBillingGroupOutput) GoString() string {
34065	return s.String()
34066}
34067
34068// Input for the DeleteCACertificate operation.
34069type DeleteCACertificateInput struct {
34070	_ struct{} `type:"structure"`
34071
34072	// The ID of the certificate to delete. (The last part of the certificate ARN
34073	// contains the certificate ID.)
34074	//
34075	// CertificateId is a required field
34076	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
34077}
34078
34079// String returns the string representation
34080func (s DeleteCACertificateInput) String() string {
34081	return awsutil.Prettify(s)
34082}
34083
34084// GoString returns the string representation
34085func (s DeleteCACertificateInput) GoString() string {
34086	return s.String()
34087}
34088
34089// Validate inspects the fields of the type to determine if they are valid.
34090func (s *DeleteCACertificateInput) Validate() error {
34091	invalidParams := request.ErrInvalidParams{Context: "DeleteCACertificateInput"}
34092	if s.CertificateId == nil {
34093		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
34094	}
34095	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
34096		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
34097	}
34098
34099	if invalidParams.Len() > 0 {
34100		return invalidParams
34101	}
34102	return nil
34103}
34104
34105// SetCertificateId sets the CertificateId field's value.
34106func (s *DeleteCACertificateInput) SetCertificateId(v string) *DeleteCACertificateInput {
34107	s.CertificateId = &v
34108	return s
34109}
34110
34111// The output for the DeleteCACertificate operation.
34112type DeleteCACertificateOutput struct {
34113	_ struct{} `type:"structure"`
34114}
34115
34116// String returns the string representation
34117func (s DeleteCACertificateOutput) String() string {
34118	return awsutil.Prettify(s)
34119}
34120
34121// GoString returns the string representation
34122func (s DeleteCACertificateOutput) GoString() string {
34123	return s.String()
34124}
34125
34126// The input for the DeleteCertificate operation.
34127type DeleteCertificateInput struct {
34128	_ struct{} `type:"structure"`
34129
34130	// The ID of the certificate. (The last part of the certificate ARN contains
34131	// the certificate ID.)
34132	//
34133	// CertificateId is a required field
34134	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
34135
34136	// Forces the deletion of a certificate if it is inactive and is not attached
34137	// to an IoT thing.
34138	ForceDelete *bool `location:"querystring" locationName:"forceDelete" type:"boolean"`
34139}
34140
34141// String returns the string representation
34142func (s DeleteCertificateInput) String() string {
34143	return awsutil.Prettify(s)
34144}
34145
34146// GoString returns the string representation
34147func (s DeleteCertificateInput) GoString() string {
34148	return s.String()
34149}
34150
34151// Validate inspects the fields of the type to determine if they are valid.
34152func (s *DeleteCertificateInput) Validate() error {
34153	invalidParams := request.ErrInvalidParams{Context: "DeleteCertificateInput"}
34154	if s.CertificateId == nil {
34155		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
34156	}
34157	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
34158		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
34159	}
34160
34161	if invalidParams.Len() > 0 {
34162		return invalidParams
34163	}
34164	return nil
34165}
34166
34167// SetCertificateId sets the CertificateId field's value.
34168func (s *DeleteCertificateInput) SetCertificateId(v string) *DeleteCertificateInput {
34169	s.CertificateId = &v
34170	return s
34171}
34172
34173// SetForceDelete sets the ForceDelete field's value.
34174func (s *DeleteCertificateInput) SetForceDelete(v bool) *DeleteCertificateInput {
34175	s.ForceDelete = &v
34176	return s
34177}
34178
34179type DeleteCertificateOutput struct {
34180	_ struct{} `type:"structure"`
34181}
34182
34183// String returns the string representation
34184func (s DeleteCertificateOutput) String() string {
34185	return awsutil.Prettify(s)
34186}
34187
34188// GoString returns the string representation
34189func (s DeleteCertificateOutput) GoString() string {
34190	return s.String()
34191}
34192
34193// You can't delete the resource because it is attached to one or more resources.
34194type DeleteConflictException struct {
34195	_            struct{}                  `type:"structure"`
34196	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
34197
34198	// The message for the exception.
34199	Message_ *string `locationName:"message" type:"string"`
34200}
34201
34202// String returns the string representation
34203func (s DeleteConflictException) String() string {
34204	return awsutil.Prettify(s)
34205}
34206
34207// GoString returns the string representation
34208func (s DeleteConflictException) GoString() string {
34209	return s.String()
34210}
34211
34212func newErrorDeleteConflictException(v protocol.ResponseMetadata) error {
34213	return &DeleteConflictException{
34214		RespMetadata: v,
34215	}
34216}
34217
34218// Code returns the exception type name.
34219func (s *DeleteConflictException) Code() string {
34220	return "DeleteConflictException"
34221}
34222
34223// Message returns the exception's message.
34224func (s *DeleteConflictException) Message() string {
34225	if s.Message_ != nil {
34226		return *s.Message_
34227	}
34228	return ""
34229}
34230
34231// OrigErr always returns nil, satisfies awserr.Error interface.
34232func (s *DeleteConflictException) OrigErr() error {
34233	return nil
34234}
34235
34236func (s *DeleteConflictException) Error() string {
34237	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
34238}
34239
34240// Status code returns the HTTP status code for the request's response error.
34241func (s *DeleteConflictException) StatusCode() int {
34242	return s.RespMetadata.StatusCode
34243}
34244
34245// RequestID returns the service's response RequestID for request.
34246func (s *DeleteConflictException) RequestID() string {
34247	return s.RespMetadata.RequestID
34248}
34249
34250type DeleteCustomMetricInput struct {
34251	_ struct{} `type:"structure"`
34252
34253	// The name of the custom metric.
34254	//
34255	// MetricName is a required field
34256	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
34257}
34258
34259// String returns the string representation
34260func (s DeleteCustomMetricInput) String() string {
34261	return awsutil.Prettify(s)
34262}
34263
34264// GoString returns the string representation
34265func (s DeleteCustomMetricInput) GoString() string {
34266	return s.String()
34267}
34268
34269// Validate inspects the fields of the type to determine if they are valid.
34270func (s *DeleteCustomMetricInput) Validate() error {
34271	invalidParams := request.ErrInvalidParams{Context: "DeleteCustomMetricInput"}
34272	if s.MetricName == nil {
34273		invalidParams.Add(request.NewErrParamRequired("MetricName"))
34274	}
34275	if s.MetricName != nil && len(*s.MetricName) < 1 {
34276		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
34277	}
34278
34279	if invalidParams.Len() > 0 {
34280		return invalidParams
34281	}
34282	return nil
34283}
34284
34285// SetMetricName sets the MetricName field's value.
34286func (s *DeleteCustomMetricInput) SetMetricName(v string) *DeleteCustomMetricInput {
34287	s.MetricName = &v
34288	return s
34289}
34290
34291type DeleteCustomMetricOutput struct {
34292	_ struct{} `type:"structure"`
34293}
34294
34295// String returns the string representation
34296func (s DeleteCustomMetricOutput) String() string {
34297	return awsutil.Prettify(s)
34298}
34299
34300// GoString returns the string representation
34301func (s DeleteCustomMetricOutput) GoString() string {
34302	return s.String()
34303}
34304
34305type DeleteDimensionInput struct {
34306	_ struct{} `type:"structure"`
34307
34308	// The unique identifier for the dimension that you want to delete.
34309	//
34310	// Name is a required field
34311	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
34312}
34313
34314// String returns the string representation
34315func (s DeleteDimensionInput) String() string {
34316	return awsutil.Prettify(s)
34317}
34318
34319// GoString returns the string representation
34320func (s DeleteDimensionInput) GoString() string {
34321	return s.String()
34322}
34323
34324// Validate inspects the fields of the type to determine if they are valid.
34325func (s *DeleteDimensionInput) Validate() error {
34326	invalidParams := request.ErrInvalidParams{Context: "DeleteDimensionInput"}
34327	if s.Name == nil {
34328		invalidParams.Add(request.NewErrParamRequired("Name"))
34329	}
34330	if s.Name != nil && len(*s.Name) < 1 {
34331		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
34332	}
34333
34334	if invalidParams.Len() > 0 {
34335		return invalidParams
34336	}
34337	return nil
34338}
34339
34340// SetName sets the Name field's value.
34341func (s *DeleteDimensionInput) SetName(v string) *DeleteDimensionInput {
34342	s.Name = &v
34343	return s
34344}
34345
34346type DeleteDimensionOutput struct {
34347	_ struct{} `type:"structure"`
34348}
34349
34350// String returns the string representation
34351func (s DeleteDimensionOutput) String() string {
34352	return awsutil.Prettify(s)
34353}
34354
34355// GoString returns the string representation
34356func (s DeleteDimensionOutput) GoString() string {
34357	return s.String()
34358}
34359
34360type DeleteDomainConfigurationInput struct {
34361	_ struct{} `type:"structure"`
34362
34363	// The name of the domain configuration to be deleted.
34364	//
34365	// DomainConfigurationName is a required field
34366	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
34367}
34368
34369// String returns the string representation
34370func (s DeleteDomainConfigurationInput) String() string {
34371	return awsutil.Prettify(s)
34372}
34373
34374// GoString returns the string representation
34375func (s DeleteDomainConfigurationInput) GoString() string {
34376	return s.String()
34377}
34378
34379// Validate inspects the fields of the type to determine if they are valid.
34380func (s *DeleteDomainConfigurationInput) Validate() error {
34381	invalidParams := request.ErrInvalidParams{Context: "DeleteDomainConfigurationInput"}
34382	if s.DomainConfigurationName == nil {
34383		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
34384	}
34385	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
34386		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
34387	}
34388
34389	if invalidParams.Len() > 0 {
34390		return invalidParams
34391	}
34392	return nil
34393}
34394
34395// SetDomainConfigurationName sets the DomainConfigurationName field's value.
34396func (s *DeleteDomainConfigurationInput) SetDomainConfigurationName(v string) *DeleteDomainConfigurationInput {
34397	s.DomainConfigurationName = &v
34398	return s
34399}
34400
34401type DeleteDomainConfigurationOutput struct {
34402	_ struct{} `type:"structure"`
34403}
34404
34405// String returns the string representation
34406func (s DeleteDomainConfigurationOutput) String() string {
34407	return awsutil.Prettify(s)
34408}
34409
34410// GoString returns the string representation
34411func (s DeleteDomainConfigurationOutput) GoString() string {
34412	return s.String()
34413}
34414
34415type DeleteDynamicThingGroupInput struct {
34416	_ struct{} `type:"structure"`
34417
34418	// The expected version of the dynamic thing group to delete.
34419	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
34420
34421	// The name of the dynamic thing group to delete.
34422	//
34423	// ThingGroupName is a required field
34424	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
34425}
34426
34427// String returns the string representation
34428func (s DeleteDynamicThingGroupInput) String() string {
34429	return awsutil.Prettify(s)
34430}
34431
34432// GoString returns the string representation
34433func (s DeleteDynamicThingGroupInput) GoString() string {
34434	return s.String()
34435}
34436
34437// Validate inspects the fields of the type to determine if they are valid.
34438func (s *DeleteDynamicThingGroupInput) Validate() error {
34439	invalidParams := request.ErrInvalidParams{Context: "DeleteDynamicThingGroupInput"}
34440	if s.ThingGroupName == nil {
34441		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
34442	}
34443	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
34444		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
34445	}
34446
34447	if invalidParams.Len() > 0 {
34448		return invalidParams
34449	}
34450	return nil
34451}
34452
34453// SetExpectedVersion sets the ExpectedVersion field's value.
34454func (s *DeleteDynamicThingGroupInput) SetExpectedVersion(v int64) *DeleteDynamicThingGroupInput {
34455	s.ExpectedVersion = &v
34456	return s
34457}
34458
34459// SetThingGroupName sets the ThingGroupName field's value.
34460func (s *DeleteDynamicThingGroupInput) SetThingGroupName(v string) *DeleteDynamicThingGroupInput {
34461	s.ThingGroupName = &v
34462	return s
34463}
34464
34465type DeleteDynamicThingGroupOutput struct {
34466	_ struct{} `type:"structure"`
34467}
34468
34469// String returns the string representation
34470func (s DeleteDynamicThingGroupOutput) String() string {
34471	return awsutil.Prettify(s)
34472}
34473
34474// GoString returns the string representation
34475func (s DeleteDynamicThingGroupOutput) GoString() string {
34476	return s.String()
34477}
34478
34479type DeleteFleetMetricInput struct {
34480	_ struct{} `type:"structure"`
34481
34482	// The expected version of the fleet metric to delete.
34483	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
34484
34485	// The name of the fleet metric to delete.
34486	//
34487	// MetricName is a required field
34488	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
34489}
34490
34491// String returns the string representation
34492func (s DeleteFleetMetricInput) String() string {
34493	return awsutil.Prettify(s)
34494}
34495
34496// GoString returns the string representation
34497func (s DeleteFleetMetricInput) GoString() string {
34498	return s.String()
34499}
34500
34501// Validate inspects the fields of the type to determine if they are valid.
34502func (s *DeleteFleetMetricInput) Validate() error {
34503	invalidParams := request.ErrInvalidParams{Context: "DeleteFleetMetricInput"}
34504	if s.MetricName == nil {
34505		invalidParams.Add(request.NewErrParamRequired("MetricName"))
34506	}
34507	if s.MetricName != nil && len(*s.MetricName) < 1 {
34508		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
34509	}
34510
34511	if invalidParams.Len() > 0 {
34512		return invalidParams
34513	}
34514	return nil
34515}
34516
34517// SetExpectedVersion sets the ExpectedVersion field's value.
34518func (s *DeleteFleetMetricInput) SetExpectedVersion(v int64) *DeleteFleetMetricInput {
34519	s.ExpectedVersion = &v
34520	return s
34521}
34522
34523// SetMetricName sets the MetricName field's value.
34524func (s *DeleteFleetMetricInput) SetMetricName(v string) *DeleteFleetMetricInput {
34525	s.MetricName = &v
34526	return s
34527}
34528
34529type DeleteFleetMetricOutput struct {
34530	_ struct{} `type:"structure"`
34531}
34532
34533// String returns the string representation
34534func (s DeleteFleetMetricOutput) String() string {
34535	return awsutil.Prettify(s)
34536}
34537
34538// GoString returns the string representation
34539func (s DeleteFleetMetricOutput) GoString() string {
34540	return s.String()
34541}
34542
34543type DeleteJobExecutionInput struct {
34544	_ struct{} `type:"structure"`
34545
34546	// The ID of the job execution to be deleted. The executionNumber refers to
34547	// the execution of a particular job on a particular device.
34548	//
34549	// Note that once a job execution is deleted, the executionNumber may be reused
34550	// by IoT, so be sure you get and use the correct value here.
34551	//
34552	// ExecutionNumber is a required field
34553	ExecutionNumber *int64 `location:"uri" locationName:"executionNumber" type:"long" required:"true"`
34554
34555	// (Optional) When true, you can delete a job execution which is "IN_PROGRESS".
34556	// Otherwise, you can only delete a job execution which is in a terminal state
34557	// ("SUCCEEDED", "FAILED", "REJECTED", "REMOVED" or "CANCELED") or an exception
34558	// will occur. The default is false.
34559	//
34560	// Deleting a job execution which is "IN_PROGRESS", will cause the device to
34561	// be unable to access job information or update the job execution status. Use
34562	// caution and ensure that the device is able to recover to a valid state.
34563	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
34564
34565	// The ID of the job whose execution on a particular device will be deleted.
34566	//
34567	// JobId is a required field
34568	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
34569
34570	// The namespace used to indicate that a job is a customer-managed job.
34571	//
34572	// When you specify a value for this parameter, Amazon Web Services IoT Core
34573	// sends jobs notifications to MQTT topics that contain the value in the following
34574	// format.
34575	//
34576	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
34577	//
34578	// The namespaceId feature is in public preview.
34579	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
34580
34581	// The name of the thing whose job execution will be deleted.
34582	//
34583	// ThingName is a required field
34584	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
34585}
34586
34587// String returns the string representation
34588func (s DeleteJobExecutionInput) String() string {
34589	return awsutil.Prettify(s)
34590}
34591
34592// GoString returns the string representation
34593func (s DeleteJobExecutionInput) GoString() string {
34594	return s.String()
34595}
34596
34597// Validate inspects the fields of the type to determine if they are valid.
34598func (s *DeleteJobExecutionInput) Validate() error {
34599	invalidParams := request.ErrInvalidParams{Context: "DeleteJobExecutionInput"}
34600	if s.ExecutionNumber == nil {
34601		invalidParams.Add(request.NewErrParamRequired("ExecutionNumber"))
34602	}
34603	if s.JobId == nil {
34604		invalidParams.Add(request.NewErrParamRequired("JobId"))
34605	}
34606	if s.JobId != nil && len(*s.JobId) < 1 {
34607		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
34608	}
34609	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
34610		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
34611	}
34612	if s.ThingName == nil {
34613		invalidParams.Add(request.NewErrParamRequired("ThingName"))
34614	}
34615	if s.ThingName != nil && len(*s.ThingName) < 1 {
34616		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
34617	}
34618
34619	if invalidParams.Len() > 0 {
34620		return invalidParams
34621	}
34622	return nil
34623}
34624
34625// SetExecutionNumber sets the ExecutionNumber field's value.
34626func (s *DeleteJobExecutionInput) SetExecutionNumber(v int64) *DeleteJobExecutionInput {
34627	s.ExecutionNumber = &v
34628	return s
34629}
34630
34631// SetForce sets the Force field's value.
34632func (s *DeleteJobExecutionInput) SetForce(v bool) *DeleteJobExecutionInput {
34633	s.Force = &v
34634	return s
34635}
34636
34637// SetJobId sets the JobId field's value.
34638func (s *DeleteJobExecutionInput) SetJobId(v string) *DeleteJobExecutionInput {
34639	s.JobId = &v
34640	return s
34641}
34642
34643// SetNamespaceId sets the NamespaceId field's value.
34644func (s *DeleteJobExecutionInput) SetNamespaceId(v string) *DeleteJobExecutionInput {
34645	s.NamespaceId = &v
34646	return s
34647}
34648
34649// SetThingName sets the ThingName field's value.
34650func (s *DeleteJobExecutionInput) SetThingName(v string) *DeleteJobExecutionInput {
34651	s.ThingName = &v
34652	return s
34653}
34654
34655type DeleteJobExecutionOutput struct {
34656	_ struct{} `type:"structure"`
34657}
34658
34659// String returns the string representation
34660func (s DeleteJobExecutionOutput) String() string {
34661	return awsutil.Prettify(s)
34662}
34663
34664// GoString returns the string representation
34665func (s DeleteJobExecutionOutput) GoString() string {
34666	return s.String()
34667}
34668
34669type DeleteJobInput struct {
34670	_ struct{} `type:"structure"`
34671
34672	// (Optional) When true, you can delete a job which is "IN_PROGRESS". Otherwise,
34673	// you can only delete a job which is in a terminal state ("COMPLETED" or "CANCELED")
34674	// or an exception will occur. The default is false.
34675	//
34676	// Deleting a job which is "IN_PROGRESS", will cause a device which is executing
34677	// the job to be unable to access job information or update the job execution
34678	// status. Use caution and ensure that each device executing a job which is
34679	// deleted is able to recover to a valid state.
34680	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
34681
34682	// The ID of the job to be deleted.
34683	//
34684	// After a job deletion is completed, you may reuse this jobId when you create
34685	// a new job. However, this is not recommended, and you must ensure that your
34686	// devices are not using the jobId to refer to the deleted job.
34687	//
34688	// JobId is a required field
34689	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
34690
34691	// The namespace used to indicate that a job is a customer-managed job.
34692	//
34693	// When you specify a value for this parameter, Amazon Web Services IoT Core
34694	// sends jobs notifications to MQTT topics that contain the value in the following
34695	// format.
34696	//
34697	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
34698	//
34699	// The namespaceId feature is in public preview.
34700	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
34701}
34702
34703// String returns the string representation
34704func (s DeleteJobInput) String() string {
34705	return awsutil.Prettify(s)
34706}
34707
34708// GoString returns the string representation
34709func (s DeleteJobInput) GoString() string {
34710	return s.String()
34711}
34712
34713// Validate inspects the fields of the type to determine if they are valid.
34714func (s *DeleteJobInput) Validate() error {
34715	invalidParams := request.ErrInvalidParams{Context: "DeleteJobInput"}
34716	if s.JobId == nil {
34717		invalidParams.Add(request.NewErrParamRequired("JobId"))
34718	}
34719	if s.JobId != nil && len(*s.JobId) < 1 {
34720		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
34721	}
34722	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
34723		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
34724	}
34725
34726	if invalidParams.Len() > 0 {
34727		return invalidParams
34728	}
34729	return nil
34730}
34731
34732// SetForce sets the Force field's value.
34733func (s *DeleteJobInput) SetForce(v bool) *DeleteJobInput {
34734	s.Force = &v
34735	return s
34736}
34737
34738// SetJobId sets the JobId field's value.
34739func (s *DeleteJobInput) SetJobId(v string) *DeleteJobInput {
34740	s.JobId = &v
34741	return s
34742}
34743
34744// SetNamespaceId sets the NamespaceId field's value.
34745func (s *DeleteJobInput) SetNamespaceId(v string) *DeleteJobInput {
34746	s.NamespaceId = &v
34747	return s
34748}
34749
34750type DeleteJobOutput struct {
34751	_ struct{} `type:"structure"`
34752}
34753
34754// String returns the string representation
34755func (s DeleteJobOutput) String() string {
34756	return awsutil.Prettify(s)
34757}
34758
34759// GoString returns the string representation
34760func (s DeleteJobOutput) GoString() string {
34761	return s.String()
34762}
34763
34764type DeleteJobTemplateInput struct {
34765	_ struct{} `type:"structure"`
34766
34767	// The unique identifier of the job template to delete.
34768	//
34769	// JobTemplateId is a required field
34770	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
34771}
34772
34773// String returns the string representation
34774func (s DeleteJobTemplateInput) String() string {
34775	return awsutil.Prettify(s)
34776}
34777
34778// GoString returns the string representation
34779func (s DeleteJobTemplateInput) GoString() string {
34780	return s.String()
34781}
34782
34783// Validate inspects the fields of the type to determine if they are valid.
34784func (s *DeleteJobTemplateInput) Validate() error {
34785	invalidParams := request.ErrInvalidParams{Context: "DeleteJobTemplateInput"}
34786	if s.JobTemplateId == nil {
34787		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
34788	}
34789	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
34790		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
34791	}
34792
34793	if invalidParams.Len() > 0 {
34794		return invalidParams
34795	}
34796	return nil
34797}
34798
34799// SetJobTemplateId sets the JobTemplateId field's value.
34800func (s *DeleteJobTemplateInput) SetJobTemplateId(v string) *DeleteJobTemplateInput {
34801	s.JobTemplateId = &v
34802	return s
34803}
34804
34805type DeleteJobTemplateOutput struct {
34806	_ struct{} `type:"structure"`
34807}
34808
34809// String returns the string representation
34810func (s DeleteJobTemplateOutput) String() string {
34811	return awsutil.Prettify(s)
34812}
34813
34814// GoString returns the string representation
34815func (s DeleteJobTemplateOutput) GoString() string {
34816	return s.String()
34817}
34818
34819type DeleteMitigationActionInput struct {
34820	_ struct{} `type:"structure"`
34821
34822	// The name of the mitigation action that you want to delete.
34823	//
34824	// ActionName is a required field
34825	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
34826}
34827
34828// String returns the string representation
34829func (s DeleteMitigationActionInput) String() string {
34830	return awsutil.Prettify(s)
34831}
34832
34833// GoString returns the string representation
34834func (s DeleteMitigationActionInput) GoString() string {
34835	return s.String()
34836}
34837
34838// Validate inspects the fields of the type to determine if they are valid.
34839func (s *DeleteMitigationActionInput) Validate() error {
34840	invalidParams := request.ErrInvalidParams{Context: "DeleteMitigationActionInput"}
34841	if s.ActionName == nil {
34842		invalidParams.Add(request.NewErrParamRequired("ActionName"))
34843	}
34844	if s.ActionName != nil && len(*s.ActionName) < 1 {
34845		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
34846	}
34847
34848	if invalidParams.Len() > 0 {
34849		return invalidParams
34850	}
34851	return nil
34852}
34853
34854// SetActionName sets the ActionName field's value.
34855func (s *DeleteMitigationActionInput) SetActionName(v string) *DeleteMitigationActionInput {
34856	s.ActionName = &v
34857	return s
34858}
34859
34860type DeleteMitigationActionOutput struct {
34861	_ struct{} `type:"structure"`
34862}
34863
34864// String returns the string representation
34865func (s DeleteMitigationActionOutput) String() string {
34866	return awsutil.Prettify(s)
34867}
34868
34869// GoString returns the string representation
34870func (s DeleteMitigationActionOutput) GoString() string {
34871	return s.String()
34872}
34873
34874type DeleteOTAUpdateInput struct {
34875	_ struct{} `type:"structure"`
34876
34877	// When true, the stream created by the OTAUpdate process is deleted when the
34878	// OTA update is deleted. Ignored if the stream specified in the OTAUpdate is
34879	// supplied by the user.
34880	DeleteStream *bool `location:"querystring" locationName:"deleteStream" type:"boolean"`
34881
34882	// When true, deletes the IoT job created by the OTAUpdate process even if it
34883	// is "IN_PROGRESS". Otherwise, if the job is not in a terminal state ("COMPLETED"
34884	// or "CANCELED") an exception will occur. The default is false.
34885	ForceDeleteAWSJob *bool `location:"querystring" locationName:"forceDeleteAWSJob" type:"boolean"`
34886
34887	// The ID of the OTA update to delete.
34888	//
34889	// OtaUpdateId is a required field
34890	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
34891}
34892
34893// String returns the string representation
34894func (s DeleteOTAUpdateInput) String() string {
34895	return awsutil.Prettify(s)
34896}
34897
34898// GoString returns the string representation
34899func (s DeleteOTAUpdateInput) GoString() string {
34900	return s.String()
34901}
34902
34903// Validate inspects the fields of the type to determine if they are valid.
34904func (s *DeleteOTAUpdateInput) Validate() error {
34905	invalidParams := request.ErrInvalidParams{Context: "DeleteOTAUpdateInput"}
34906	if s.OtaUpdateId == nil {
34907		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
34908	}
34909	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
34910		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
34911	}
34912
34913	if invalidParams.Len() > 0 {
34914		return invalidParams
34915	}
34916	return nil
34917}
34918
34919// SetDeleteStream sets the DeleteStream field's value.
34920func (s *DeleteOTAUpdateInput) SetDeleteStream(v bool) *DeleteOTAUpdateInput {
34921	s.DeleteStream = &v
34922	return s
34923}
34924
34925// SetForceDeleteAWSJob sets the ForceDeleteAWSJob field's value.
34926func (s *DeleteOTAUpdateInput) SetForceDeleteAWSJob(v bool) *DeleteOTAUpdateInput {
34927	s.ForceDeleteAWSJob = &v
34928	return s
34929}
34930
34931// SetOtaUpdateId sets the OtaUpdateId field's value.
34932func (s *DeleteOTAUpdateInput) SetOtaUpdateId(v string) *DeleteOTAUpdateInput {
34933	s.OtaUpdateId = &v
34934	return s
34935}
34936
34937type DeleteOTAUpdateOutput struct {
34938	_ struct{} `type:"structure"`
34939}
34940
34941// String returns the string representation
34942func (s DeleteOTAUpdateOutput) String() string {
34943	return awsutil.Prettify(s)
34944}
34945
34946// GoString returns the string representation
34947func (s DeleteOTAUpdateOutput) GoString() string {
34948	return s.String()
34949}
34950
34951// The input for the DeletePolicy operation.
34952type DeletePolicyInput struct {
34953	_ struct{} `type:"structure"`
34954
34955	// The name of the policy to delete.
34956	//
34957	// PolicyName is a required field
34958	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
34959}
34960
34961// String returns the string representation
34962func (s DeletePolicyInput) String() string {
34963	return awsutil.Prettify(s)
34964}
34965
34966// GoString returns the string representation
34967func (s DeletePolicyInput) GoString() string {
34968	return s.String()
34969}
34970
34971// Validate inspects the fields of the type to determine if they are valid.
34972func (s *DeletePolicyInput) Validate() error {
34973	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
34974	if s.PolicyName == nil {
34975		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
34976	}
34977	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
34978		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
34979	}
34980
34981	if invalidParams.Len() > 0 {
34982		return invalidParams
34983	}
34984	return nil
34985}
34986
34987// SetPolicyName sets the PolicyName field's value.
34988func (s *DeletePolicyInput) SetPolicyName(v string) *DeletePolicyInput {
34989	s.PolicyName = &v
34990	return s
34991}
34992
34993type DeletePolicyOutput struct {
34994	_ struct{} `type:"structure"`
34995}
34996
34997// String returns the string representation
34998func (s DeletePolicyOutput) String() string {
34999	return awsutil.Prettify(s)
35000}
35001
35002// GoString returns the string representation
35003func (s DeletePolicyOutput) GoString() string {
35004	return s.String()
35005}
35006
35007// The input for the DeletePolicyVersion operation.
35008type DeletePolicyVersionInput struct {
35009	_ struct{} `type:"structure"`
35010
35011	// The name of the policy.
35012	//
35013	// PolicyName is a required field
35014	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
35015
35016	// The policy version ID.
35017	//
35018	// PolicyVersionId is a required field
35019	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
35020}
35021
35022// String returns the string representation
35023func (s DeletePolicyVersionInput) String() string {
35024	return awsutil.Prettify(s)
35025}
35026
35027// GoString returns the string representation
35028func (s DeletePolicyVersionInput) GoString() string {
35029	return s.String()
35030}
35031
35032// Validate inspects the fields of the type to determine if they are valid.
35033func (s *DeletePolicyVersionInput) Validate() error {
35034	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyVersionInput"}
35035	if s.PolicyName == nil {
35036		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
35037	}
35038	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
35039		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
35040	}
35041	if s.PolicyVersionId == nil {
35042		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
35043	}
35044	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
35045		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
35046	}
35047
35048	if invalidParams.Len() > 0 {
35049		return invalidParams
35050	}
35051	return nil
35052}
35053
35054// SetPolicyName sets the PolicyName field's value.
35055func (s *DeletePolicyVersionInput) SetPolicyName(v string) *DeletePolicyVersionInput {
35056	s.PolicyName = &v
35057	return s
35058}
35059
35060// SetPolicyVersionId sets the PolicyVersionId field's value.
35061func (s *DeletePolicyVersionInput) SetPolicyVersionId(v string) *DeletePolicyVersionInput {
35062	s.PolicyVersionId = &v
35063	return s
35064}
35065
35066type DeletePolicyVersionOutput struct {
35067	_ struct{} `type:"structure"`
35068}
35069
35070// String returns the string representation
35071func (s DeletePolicyVersionOutput) String() string {
35072	return awsutil.Prettify(s)
35073}
35074
35075// GoString returns the string representation
35076func (s DeletePolicyVersionOutput) GoString() string {
35077	return s.String()
35078}
35079
35080type DeleteProvisioningTemplateInput struct {
35081	_ struct{} `type:"structure"`
35082
35083	// The name of the fleet provision template to delete.
35084	//
35085	// TemplateName is a required field
35086	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
35087}
35088
35089// String returns the string representation
35090func (s DeleteProvisioningTemplateInput) String() string {
35091	return awsutil.Prettify(s)
35092}
35093
35094// GoString returns the string representation
35095func (s DeleteProvisioningTemplateInput) GoString() string {
35096	return s.String()
35097}
35098
35099// Validate inspects the fields of the type to determine if they are valid.
35100func (s *DeleteProvisioningTemplateInput) Validate() error {
35101	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateInput"}
35102	if s.TemplateName == nil {
35103		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
35104	}
35105	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
35106		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
35107	}
35108
35109	if invalidParams.Len() > 0 {
35110		return invalidParams
35111	}
35112	return nil
35113}
35114
35115// SetTemplateName sets the TemplateName field's value.
35116func (s *DeleteProvisioningTemplateInput) SetTemplateName(v string) *DeleteProvisioningTemplateInput {
35117	s.TemplateName = &v
35118	return s
35119}
35120
35121type DeleteProvisioningTemplateOutput struct {
35122	_ struct{} `type:"structure"`
35123}
35124
35125// String returns the string representation
35126func (s DeleteProvisioningTemplateOutput) String() string {
35127	return awsutil.Prettify(s)
35128}
35129
35130// GoString returns the string representation
35131func (s DeleteProvisioningTemplateOutput) GoString() string {
35132	return s.String()
35133}
35134
35135type DeleteProvisioningTemplateVersionInput struct {
35136	_ struct{} `type:"structure"`
35137
35138	// The name of the fleet provisioning template version to delete.
35139	//
35140	// TemplateName is a required field
35141	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
35142
35143	// The fleet provisioning template version ID to delete.
35144	//
35145	// VersionId is a required field
35146	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
35147}
35148
35149// String returns the string representation
35150func (s DeleteProvisioningTemplateVersionInput) String() string {
35151	return awsutil.Prettify(s)
35152}
35153
35154// GoString returns the string representation
35155func (s DeleteProvisioningTemplateVersionInput) GoString() string {
35156	return s.String()
35157}
35158
35159// Validate inspects the fields of the type to determine if they are valid.
35160func (s *DeleteProvisioningTemplateVersionInput) Validate() error {
35161	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateVersionInput"}
35162	if s.TemplateName == nil {
35163		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
35164	}
35165	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
35166		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
35167	}
35168	if s.VersionId == nil {
35169		invalidParams.Add(request.NewErrParamRequired("VersionId"))
35170	}
35171
35172	if invalidParams.Len() > 0 {
35173		return invalidParams
35174	}
35175	return nil
35176}
35177
35178// SetTemplateName sets the TemplateName field's value.
35179func (s *DeleteProvisioningTemplateVersionInput) SetTemplateName(v string) *DeleteProvisioningTemplateVersionInput {
35180	s.TemplateName = &v
35181	return s
35182}
35183
35184// SetVersionId sets the VersionId field's value.
35185func (s *DeleteProvisioningTemplateVersionInput) SetVersionId(v int64) *DeleteProvisioningTemplateVersionInput {
35186	s.VersionId = &v
35187	return s
35188}
35189
35190type DeleteProvisioningTemplateVersionOutput struct {
35191	_ struct{} `type:"structure"`
35192}
35193
35194// String returns the string representation
35195func (s DeleteProvisioningTemplateVersionOutput) String() string {
35196	return awsutil.Prettify(s)
35197}
35198
35199// GoString returns the string representation
35200func (s DeleteProvisioningTemplateVersionOutput) GoString() string {
35201	return s.String()
35202}
35203
35204// The input for the DeleteRegistrationCode operation.
35205type DeleteRegistrationCodeInput struct {
35206	_ struct{} `type:"structure"`
35207}
35208
35209// String returns the string representation
35210func (s DeleteRegistrationCodeInput) String() string {
35211	return awsutil.Prettify(s)
35212}
35213
35214// GoString returns the string representation
35215func (s DeleteRegistrationCodeInput) GoString() string {
35216	return s.String()
35217}
35218
35219// The output for the DeleteRegistrationCode operation.
35220type DeleteRegistrationCodeOutput struct {
35221	_ struct{} `type:"structure"`
35222}
35223
35224// String returns the string representation
35225func (s DeleteRegistrationCodeOutput) String() string {
35226	return awsutil.Prettify(s)
35227}
35228
35229// GoString returns the string representation
35230func (s DeleteRegistrationCodeOutput) GoString() string {
35231	return s.String()
35232}
35233
35234type DeleteRoleAliasInput struct {
35235	_ struct{} `type:"structure"`
35236
35237	// The role alias to delete.
35238	//
35239	// RoleAlias is a required field
35240	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
35241}
35242
35243// String returns the string representation
35244func (s DeleteRoleAliasInput) String() string {
35245	return awsutil.Prettify(s)
35246}
35247
35248// GoString returns the string representation
35249func (s DeleteRoleAliasInput) GoString() string {
35250	return s.String()
35251}
35252
35253// Validate inspects the fields of the type to determine if they are valid.
35254func (s *DeleteRoleAliasInput) Validate() error {
35255	invalidParams := request.ErrInvalidParams{Context: "DeleteRoleAliasInput"}
35256	if s.RoleAlias == nil {
35257		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
35258	}
35259	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
35260		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
35261	}
35262
35263	if invalidParams.Len() > 0 {
35264		return invalidParams
35265	}
35266	return nil
35267}
35268
35269// SetRoleAlias sets the RoleAlias field's value.
35270func (s *DeleteRoleAliasInput) SetRoleAlias(v string) *DeleteRoleAliasInput {
35271	s.RoleAlias = &v
35272	return s
35273}
35274
35275type DeleteRoleAliasOutput struct {
35276	_ struct{} `type:"structure"`
35277}
35278
35279// String returns the string representation
35280func (s DeleteRoleAliasOutput) String() string {
35281	return awsutil.Prettify(s)
35282}
35283
35284// GoString returns the string representation
35285func (s DeleteRoleAliasOutput) GoString() string {
35286	return s.String()
35287}
35288
35289type DeleteScheduledAuditInput struct {
35290	_ struct{} `type:"structure"`
35291
35292	// The name of the scheduled audit you want to delete.
35293	//
35294	// ScheduledAuditName is a required field
35295	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
35296}
35297
35298// String returns the string representation
35299func (s DeleteScheduledAuditInput) String() string {
35300	return awsutil.Prettify(s)
35301}
35302
35303// GoString returns the string representation
35304func (s DeleteScheduledAuditInput) GoString() string {
35305	return s.String()
35306}
35307
35308// Validate inspects the fields of the type to determine if they are valid.
35309func (s *DeleteScheduledAuditInput) Validate() error {
35310	invalidParams := request.ErrInvalidParams{Context: "DeleteScheduledAuditInput"}
35311	if s.ScheduledAuditName == nil {
35312		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
35313	}
35314	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
35315		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
35316	}
35317
35318	if invalidParams.Len() > 0 {
35319		return invalidParams
35320	}
35321	return nil
35322}
35323
35324// SetScheduledAuditName sets the ScheduledAuditName field's value.
35325func (s *DeleteScheduledAuditInput) SetScheduledAuditName(v string) *DeleteScheduledAuditInput {
35326	s.ScheduledAuditName = &v
35327	return s
35328}
35329
35330type DeleteScheduledAuditOutput struct {
35331	_ struct{} `type:"structure"`
35332}
35333
35334// String returns the string representation
35335func (s DeleteScheduledAuditOutput) String() string {
35336	return awsutil.Prettify(s)
35337}
35338
35339// GoString returns the string representation
35340func (s DeleteScheduledAuditOutput) GoString() string {
35341	return s.String()
35342}
35343
35344type DeleteSecurityProfileInput struct {
35345	_ struct{} `type:"structure"`
35346
35347	// The expected version of the security profile. A new version is generated
35348	// whenever the security profile is updated. If you specify a value that is
35349	// different from the actual version, a VersionConflictException is thrown.
35350	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
35351
35352	// The name of the security profile to be deleted.
35353	//
35354	// SecurityProfileName is a required field
35355	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
35356}
35357
35358// String returns the string representation
35359func (s DeleteSecurityProfileInput) String() string {
35360	return awsutil.Prettify(s)
35361}
35362
35363// GoString returns the string representation
35364func (s DeleteSecurityProfileInput) GoString() string {
35365	return s.String()
35366}
35367
35368// Validate inspects the fields of the type to determine if they are valid.
35369func (s *DeleteSecurityProfileInput) Validate() error {
35370	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityProfileInput"}
35371	if s.SecurityProfileName == nil {
35372		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
35373	}
35374	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
35375		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
35376	}
35377
35378	if invalidParams.Len() > 0 {
35379		return invalidParams
35380	}
35381	return nil
35382}
35383
35384// SetExpectedVersion sets the ExpectedVersion field's value.
35385func (s *DeleteSecurityProfileInput) SetExpectedVersion(v int64) *DeleteSecurityProfileInput {
35386	s.ExpectedVersion = &v
35387	return s
35388}
35389
35390// SetSecurityProfileName sets the SecurityProfileName field's value.
35391func (s *DeleteSecurityProfileInput) SetSecurityProfileName(v string) *DeleteSecurityProfileInput {
35392	s.SecurityProfileName = &v
35393	return s
35394}
35395
35396type DeleteSecurityProfileOutput struct {
35397	_ struct{} `type:"structure"`
35398}
35399
35400// String returns the string representation
35401func (s DeleteSecurityProfileOutput) String() string {
35402	return awsutil.Prettify(s)
35403}
35404
35405// GoString returns the string representation
35406func (s DeleteSecurityProfileOutput) GoString() string {
35407	return s.String()
35408}
35409
35410type DeleteStreamInput struct {
35411	_ struct{} `type:"structure"`
35412
35413	// The stream ID.
35414	//
35415	// StreamId is a required field
35416	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
35417}
35418
35419// String returns the string representation
35420func (s DeleteStreamInput) String() string {
35421	return awsutil.Prettify(s)
35422}
35423
35424// GoString returns the string representation
35425func (s DeleteStreamInput) GoString() string {
35426	return s.String()
35427}
35428
35429// Validate inspects the fields of the type to determine if they are valid.
35430func (s *DeleteStreamInput) Validate() error {
35431	invalidParams := request.ErrInvalidParams{Context: "DeleteStreamInput"}
35432	if s.StreamId == nil {
35433		invalidParams.Add(request.NewErrParamRequired("StreamId"))
35434	}
35435	if s.StreamId != nil && len(*s.StreamId) < 1 {
35436		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
35437	}
35438
35439	if invalidParams.Len() > 0 {
35440		return invalidParams
35441	}
35442	return nil
35443}
35444
35445// SetStreamId sets the StreamId field's value.
35446func (s *DeleteStreamInput) SetStreamId(v string) *DeleteStreamInput {
35447	s.StreamId = &v
35448	return s
35449}
35450
35451type DeleteStreamOutput struct {
35452	_ struct{} `type:"structure"`
35453}
35454
35455// String returns the string representation
35456func (s DeleteStreamOutput) String() string {
35457	return awsutil.Prettify(s)
35458}
35459
35460// GoString returns the string representation
35461func (s DeleteStreamOutput) GoString() string {
35462	return s.String()
35463}
35464
35465type DeleteThingGroupInput struct {
35466	_ struct{} `type:"structure"`
35467
35468	// The expected version of the thing group to delete.
35469	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
35470
35471	// The name of the thing group to delete.
35472	//
35473	// ThingGroupName is a required field
35474	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
35475}
35476
35477// String returns the string representation
35478func (s DeleteThingGroupInput) String() string {
35479	return awsutil.Prettify(s)
35480}
35481
35482// GoString returns the string representation
35483func (s DeleteThingGroupInput) GoString() string {
35484	return s.String()
35485}
35486
35487// Validate inspects the fields of the type to determine if they are valid.
35488func (s *DeleteThingGroupInput) Validate() error {
35489	invalidParams := request.ErrInvalidParams{Context: "DeleteThingGroupInput"}
35490	if s.ThingGroupName == nil {
35491		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
35492	}
35493	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
35494		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
35495	}
35496
35497	if invalidParams.Len() > 0 {
35498		return invalidParams
35499	}
35500	return nil
35501}
35502
35503// SetExpectedVersion sets the ExpectedVersion field's value.
35504func (s *DeleteThingGroupInput) SetExpectedVersion(v int64) *DeleteThingGroupInput {
35505	s.ExpectedVersion = &v
35506	return s
35507}
35508
35509// SetThingGroupName sets the ThingGroupName field's value.
35510func (s *DeleteThingGroupInput) SetThingGroupName(v string) *DeleteThingGroupInput {
35511	s.ThingGroupName = &v
35512	return s
35513}
35514
35515type DeleteThingGroupOutput struct {
35516	_ struct{} `type:"structure"`
35517}
35518
35519// String returns the string representation
35520func (s DeleteThingGroupOutput) String() string {
35521	return awsutil.Prettify(s)
35522}
35523
35524// GoString returns the string representation
35525func (s DeleteThingGroupOutput) GoString() string {
35526	return s.String()
35527}
35528
35529// The input for the DeleteThing operation.
35530type DeleteThingInput struct {
35531	_ struct{} `type:"structure"`
35532
35533	// The expected version of the thing record in the registry. If the version
35534	// of the record in the registry does not match the expected version specified
35535	// in the request, the DeleteThing request is rejected with a VersionConflictException.
35536	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
35537
35538	// The name of the thing to delete.
35539	//
35540	// ThingName is a required field
35541	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
35542}
35543
35544// String returns the string representation
35545func (s DeleteThingInput) String() string {
35546	return awsutil.Prettify(s)
35547}
35548
35549// GoString returns the string representation
35550func (s DeleteThingInput) GoString() string {
35551	return s.String()
35552}
35553
35554// Validate inspects the fields of the type to determine if they are valid.
35555func (s *DeleteThingInput) Validate() error {
35556	invalidParams := request.ErrInvalidParams{Context: "DeleteThingInput"}
35557	if s.ThingName == nil {
35558		invalidParams.Add(request.NewErrParamRequired("ThingName"))
35559	}
35560	if s.ThingName != nil && len(*s.ThingName) < 1 {
35561		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
35562	}
35563
35564	if invalidParams.Len() > 0 {
35565		return invalidParams
35566	}
35567	return nil
35568}
35569
35570// SetExpectedVersion sets the ExpectedVersion field's value.
35571func (s *DeleteThingInput) SetExpectedVersion(v int64) *DeleteThingInput {
35572	s.ExpectedVersion = &v
35573	return s
35574}
35575
35576// SetThingName sets the ThingName field's value.
35577func (s *DeleteThingInput) SetThingName(v string) *DeleteThingInput {
35578	s.ThingName = &v
35579	return s
35580}
35581
35582// The output of the DeleteThing operation.
35583type DeleteThingOutput struct {
35584	_ struct{} `type:"structure"`
35585}
35586
35587// String returns the string representation
35588func (s DeleteThingOutput) String() string {
35589	return awsutil.Prettify(s)
35590}
35591
35592// GoString returns the string representation
35593func (s DeleteThingOutput) GoString() string {
35594	return s.String()
35595}
35596
35597// The input for the DeleteThingType operation.
35598type DeleteThingTypeInput struct {
35599	_ struct{} `type:"structure"`
35600
35601	// The name of the thing type.
35602	//
35603	// ThingTypeName is a required field
35604	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
35605}
35606
35607// String returns the string representation
35608func (s DeleteThingTypeInput) String() string {
35609	return awsutil.Prettify(s)
35610}
35611
35612// GoString returns the string representation
35613func (s DeleteThingTypeInput) GoString() string {
35614	return s.String()
35615}
35616
35617// Validate inspects the fields of the type to determine if they are valid.
35618func (s *DeleteThingTypeInput) Validate() error {
35619	invalidParams := request.ErrInvalidParams{Context: "DeleteThingTypeInput"}
35620	if s.ThingTypeName == nil {
35621		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
35622	}
35623	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
35624		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
35625	}
35626
35627	if invalidParams.Len() > 0 {
35628		return invalidParams
35629	}
35630	return nil
35631}
35632
35633// SetThingTypeName sets the ThingTypeName field's value.
35634func (s *DeleteThingTypeInput) SetThingTypeName(v string) *DeleteThingTypeInput {
35635	s.ThingTypeName = &v
35636	return s
35637}
35638
35639// The output for the DeleteThingType operation.
35640type DeleteThingTypeOutput struct {
35641	_ struct{} `type:"structure"`
35642}
35643
35644// String returns the string representation
35645func (s DeleteThingTypeOutput) String() string {
35646	return awsutil.Prettify(s)
35647}
35648
35649// GoString returns the string representation
35650func (s DeleteThingTypeOutput) GoString() string {
35651	return s.String()
35652}
35653
35654type DeleteTopicRuleDestinationInput struct {
35655	_ struct{} `type:"structure"`
35656
35657	// The ARN of the topic rule destination to delete.
35658	//
35659	// Arn is a required field
35660	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
35661}
35662
35663// String returns the string representation
35664func (s DeleteTopicRuleDestinationInput) String() string {
35665	return awsutil.Prettify(s)
35666}
35667
35668// GoString returns the string representation
35669func (s DeleteTopicRuleDestinationInput) GoString() string {
35670	return s.String()
35671}
35672
35673// Validate inspects the fields of the type to determine if they are valid.
35674func (s *DeleteTopicRuleDestinationInput) Validate() error {
35675	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleDestinationInput"}
35676	if s.Arn == nil {
35677		invalidParams.Add(request.NewErrParamRequired("Arn"))
35678	}
35679	if s.Arn != nil && len(*s.Arn) < 1 {
35680		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
35681	}
35682
35683	if invalidParams.Len() > 0 {
35684		return invalidParams
35685	}
35686	return nil
35687}
35688
35689// SetArn sets the Arn field's value.
35690func (s *DeleteTopicRuleDestinationInput) SetArn(v string) *DeleteTopicRuleDestinationInput {
35691	s.Arn = &v
35692	return s
35693}
35694
35695type DeleteTopicRuleDestinationOutput struct {
35696	_ struct{} `type:"structure"`
35697}
35698
35699// String returns the string representation
35700func (s DeleteTopicRuleDestinationOutput) String() string {
35701	return awsutil.Prettify(s)
35702}
35703
35704// GoString returns the string representation
35705func (s DeleteTopicRuleDestinationOutput) GoString() string {
35706	return s.String()
35707}
35708
35709// The input for the DeleteTopicRule operation.
35710type DeleteTopicRuleInput struct {
35711	_ struct{} `type:"structure"`
35712
35713	// The name of the rule.
35714	//
35715	// RuleName is a required field
35716	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
35717}
35718
35719// String returns the string representation
35720func (s DeleteTopicRuleInput) String() string {
35721	return awsutil.Prettify(s)
35722}
35723
35724// GoString returns the string representation
35725func (s DeleteTopicRuleInput) GoString() string {
35726	return s.String()
35727}
35728
35729// Validate inspects the fields of the type to determine if they are valid.
35730func (s *DeleteTopicRuleInput) Validate() error {
35731	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleInput"}
35732	if s.RuleName == nil {
35733		invalidParams.Add(request.NewErrParamRequired("RuleName"))
35734	}
35735	if s.RuleName != nil && len(*s.RuleName) < 1 {
35736		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
35737	}
35738
35739	if invalidParams.Len() > 0 {
35740		return invalidParams
35741	}
35742	return nil
35743}
35744
35745// SetRuleName sets the RuleName field's value.
35746func (s *DeleteTopicRuleInput) SetRuleName(v string) *DeleteTopicRuleInput {
35747	s.RuleName = &v
35748	return s
35749}
35750
35751type DeleteTopicRuleOutput struct {
35752	_ struct{} `type:"structure"`
35753}
35754
35755// String returns the string representation
35756func (s DeleteTopicRuleOutput) String() string {
35757	return awsutil.Prettify(s)
35758}
35759
35760// GoString returns the string representation
35761func (s DeleteTopicRuleOutput) GoString() string {
35762	return s.String()
35763}
35764
35765type DeleteV2LoggingLevelInput struct {
35766	_ struct{} `type:"structure"`
35767
35768	// The name of the resource for which you are configuring logging.
35769	//
35770	// TargetName is a required field
35771	TargetName *string `location:"querystring" locationName:"targetName" type:"string" required:"true"`
35772
35773	// The type of resource for which you are configuring logging. Must be THING_Group.
35774	//
35775	// TargetType is a required field
35776	TargetType *string `location:"querystring" locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
35777}
35778
35779// String returns the string representation
35780func (s DeleteV2LoggingLevelInput) String() string {
35781	return awsutil.Prettify(s)
35782}
35783
35784// GoString returns the string representation
35785func (s DeleteV2LoggingLevelInput) GoString() string {
35786	return s.String()
35787}
35788
35789// Validate inspects the fields of the type to determine if they are valid.
35790func (s *DeleteV2LoggingLevelInput) Validate() error {
35791	invalidParams := request.ErrInvalidParams{Context: "DeleteV2LoggingLevelInput"}
35792	if s.TargetName == nil {
35793		invalidParams.Add(request.NewErrParamRequired("TargetName"))
35794	}
35795	if s.TargetType == nil {
35796		invalidParams.Add(request.NewErrParamRequired("TargetType"))
35797	}
35798
35799	if invalidParams.Len() > 0 {
35800		return invalidParams
35801	}
35802	return nil
35803}
35804
35805// SetTargetName sets the TargetName field's value.
35806func (s *DeleteV2LoggingLevelInput) SetTargetName(v string) *DeleteV2LoggingLevelInput {
35807	s.TargetName = &v
35808	return s
35809}
35810
35811// SetTargetType sets the TargetType field's value.
35812func (s *DeleteV2LoggingLevelInput) SetTargetType(v string) *DeleteV2LoggingLevelInput {
35813	s.TargetType = &v
35814	return s
35815}
35816
35817type DeleteV2LoggingLevelOutput struct {
35818	_ struct{} `type:"structure"`
35819}
35820
35821// String returns the string representation
35822func (s DeleteV2LoggingLevelOutput) String() string {
35823	return awsutil.Prettify(s)
35824}
35825
35826// GoString returns the string representation
35827func (s DeleteV2LoggingLevelOutput) GoString() string {
35828	return s.String()
35829}
35830
35831// Contains information that denied the authorization.
35832type Denied struct {
35833	_ struct{} `type:"structure"`
35834
35835	// Information that explicitly denies the authorization.
35836	ExplicitDeny *ExplicitDeny `locationName:"explicitDeny" type:"structure"`
35837
35838	// Information that implicitly denies the authorization. When a policy doesn't
35839	// explicitly deny or allow an action on a resource it is considered an implicit
35840	// deny.
35841	ImplicitDeny *ImplicitDeny `locationName:"implicitDeny" type:"structure"`
35842}
35843
35844// String returns the string representation
35845func (s Denied) String() string {
35846	return awsutil.Prettify(s)
35847}
35848
35849// GoString returns the string representation
35850func (s Denied) GoString() string {
35851	return s.String()
35852}
35853
35854// SetExplicitDeny sets the ExplicitDeny field's value.
35855func (s *Denied) SetExplicitDeny(v *ExplicitDeny) *Denied {
35856	s.ExplicitDeny = v
35857	return s
35858}
35859
35860// SetImplicitDeny sets the ImplicitDeny field's value.
35861func (s *Denied) SetImplicitDeny(v *ImplicitDeny) *Denied {
35862	s.ImplicitDeny = v
35863	return s
35864}
35865
35866// The input for the DeprecateThingType operation.
35867type DeprecateThingTypeInput struct {
35868	_ struct{} `type:"structure"`
35869
35870	// The name of the thing type to deprecate.
35871	//
35872	// ThingTypeName is a required field
35873	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
35874
35875	// Whether to undeprecate a deprecated thing type. If true, the thing type will
35876	// not be deprecated anymore and you can associate it with things.
35877	UndoDeprecate *bool `locationName:"undoDeprecate" type:"boolean"`
35878}
35879
35880// String returns the string representation
35881func (s DeprecateThingTypeInput) String() string {
35882	return awsutil.Prettify(s)
35883}
35884
35885// GoString returns the string representation
35886func (s DeprecateThingTypeInput) GoString() string {
35887	return s.String()
35888}
35889
35890// Validate inspects the fields of the type to determine if they are valid.
35891func (s *DeprecateThingTypeInput) Validate() error {
35892	invalidParams := request.ErrInvalidParams{Context: "DeprecateThingTypeInput"}
35893	if s.ThingTypeName == nil {
35894		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
35895	}
35896	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
35897		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
35898	}
35899
35900	if invalidParams.Len() > 0 {
35901		return invalidParams
35902	}
35903	return nil
35904}
35905
35906// SetThingTypeName sets the ThingTypeName field's value.
35907func (s *DeprecateThingTypeInput) SetThingTypeName(v string) *DeprecateThingTypeInput {
35908	s.ThingTypeName = &v
35909	return s
35910}
35911
35912// SetUndoDeprecate sets the UndoDeprecate field's value.
35913func (s *DeprecateThingTypeInput) SetUndoDeprecate(v bool) *DeprecateThingTypeInput {
35914	s.UndoDeprecate = &v
35915	return s
35916}
35917
35918// The output for the DeprecateThingType operation.
35919type DeprecateThingTypeOutput struct {
35920	_ struct{} `type:"structure"`
35921}
35922
35923// String returns the string representation
35924func (s DeprecateThingTypeOutput) String() string {
35925	return awsutil.Prettify(s)
35926}
35927
35928// GoString returns the string representation
35929func (s DeprecateThingTypeOutput) GoString() string {
35930	return s.String()
35931}
35932
35933type DescribeAccountAuditConfigurationInput struct {
35934	_ struct{} `type:"structure"`
35935}
35936
35937// String returns the string representation
35938func (s DescribeAccountAuditConfigurationInput) String() string {
35939	return awsutil.Prettify(s)
35940}
35941
35942// GoString returns the string representation
35943func (s DescribeAccountAuditConfigurationInput) GoString() string {
35944	return s.String()
35945}
35946
35947type DescribeAccountAuditConfigurationOutput struct {
35948	_ struct{} `type:"structure"`
35949
35950	// Which audit checks are enabled and disabled for this account.
35951	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
35952
35953	// Information about the targets to which audit notifications are sent for this
35954	// account.
35955	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
35956
35957	// The ARN of the role that grants permission to IoT to access information about
35958	// your devices, policies, certificates, and other items as required when performing
35959	// an audit.
35960	//
35961	// On the first call to UpdateAccountAuditConfiguration, this parameter is required.
35962	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
35963}
35964
35965// String returns the string representation
35966func (s DescribeAccountAuditConfigurationOutput) String() string {
35967	return awsutil.Prettify(s)
35968}
35969
35970// GoString returns the string representation
35971func (s DescribeAccountAuditConfigurationOutput) GoString() string {
35972	return s.String()
35973}
35974
35975// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
35976func (s *DescribeAccountAuditConfigurationOutput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *DescribeAccountAuditConfigurationOutput {
35977	s.AuditCheckConfigurations = v
35978	return s
35979}
35980
35981// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
35982func (s *DescribeAccountAuditConfigurationOutput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *DescribeAccountAuditConfigurationOutput {
35983	s.AuditNotificationTargetConfigurations = v
35984	return s
35985}
35986
35987// SetRoleArn sets the RoleArn field's value.
35988func (s *DescribeAccountAuditConfigurationOutput) SetRoleArn(v string) *DescribeAccountAuditConfigurationOutput {
35989	s.RoleArn = &v
35990	return s
35991}
35992
35993type DescribeAuditFindingInput struct {
35994	_ struct{} `type:"structure"`
35995
35996	// A unique identifier for a single audit finding. You can use this identifier
35997	// to apply mitigation actions to the finding.
35998	//
35999	// FindingId is a required field
36000	FindingId *string `location:"uri" locationName:"findingId" min:"1" type:"string" required:"true"`
36001}
36002
36003// String returns the string representation
36004func (s DescribeAuditFindingInput) String() string {
36005	return awsutil.Prettify(s)
36006}
36007
36008// GoString returns the string representation
36009func (s DescribeAuditFindingInput) GoString() string {
36010	return s.String()
36011}
36012
36013// Validate inspects the fields of the type to determine if they are valid.
36014func (s *DescribeAuditFindingInput) Validate() error {
36015	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditFindingInput"}
36016	if s.FindingId == nil {
36017		invalidParams.Add(request.NewErrParamRequired("FindingId"))
36018	}
36019	if s.FindingId != nil && len(*s.FindingId) < 1 {
36020		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
36021	}
36022
36023	if invalidParams.Len() > 0 {
36024		return invalidParams
36025	}
36026	return nil
36027}
36028
36029// SetFindingId sets the FindingId field's value.
36030func (s *DescribeAuditFindingInput) SetFindingId(v string) *DescribeAuditFindingInput {
36031	s.FindingId = &v
36032	return s
36033}
36034
36035type DescribeAuditFindingOutput struct {
36036	_ struct{} `type:"structure"`
36037
36038	// The findings (results) of the audit.
36039	Finding *AuditFinding `locationName:"finding" type:"structure"`
36040}
36041
36042// String returns the string representation
36043func (s DescribeAuditFindingOutput) String() string {
36044	return awsutil.Prettify(s)
36045}
36046
36047// GoString returns the string representation
36048func (s DescribeAuditFindingOutput) GoString() string {
36049	return s.String()
36050}
36051
36052// SetFinding sets the Finding field's value.
36053func (s *DescribeAuditFindingOutput) SetFinding(v *AuditFinding) *DescribeAuditFindingOutput {
36054	s.Finding = v
36055	return s
36056}
36057
36058type DescribeAuditMitigationActionsTaskInput struct {
36059	_ struct{} `type:"structure"`
36060
36061	// The unique identifier for the audit mitigation task.
36062	//
36063	// TaskId is a required field
36064	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
36065}
36066
36067// String returns the string representation
36068func (s DescribeAuditMitigationActionsTaskInput) String() string {
36069	return awsutil.Prettify(s)
36070}
36071
36072// GoString returns the string representation
36073func (s DescribeAuditMitigationActionsTaskInput) GoString() string {
36074	return s.String()
36075}
36076
36077// Validate inspects the fields of the type to determine if they are valid.
36078func (s *DescribeAuditMitigationActionsTaskInput) Validate() error {
36079	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditMitigationActionsTaskInput"}
36080	if s.TaskId == nil {
36081		invalidParams.Add(request.NewErrParamRequired("TaskId"))
36082	}
36083	if s.TaskId != nil && len(*s.TaskId) < 1 {
36084		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
36085	}
36086
36087	if invalidParams.Len() > 0 {
36088		return invalidParams
36089	}
36090	return nil
36091}
36092
36093// SetTaskId sets the TaskId field's value.
36094func (s *DescribeAuditMitigationActionsTaskInput) SetTaskId(v string) *DescribeAuditMitigationActionsTaskInput {
36095	s.TaskId = &v
36096	return s
36097}
36098
36099type DescribeAuditMitigationActionsTaskOutput struct {
36100	_ struct{} `type:"structure"`
36101
36102	// Specifies the mitigation actions and their parameters that are applied as
36103	// part of this task.
36104	ActionsDefinition []*MitigationAction `locationName:"actionsDefinition" type:"list"`
36105
36106	// Specifies the mitigation actions that should be applied to specific audit
36107	// checks.
36108	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map"`
36109
36110	// The date and time when the task was completed or canceled.
36111	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
36112
36113	// The date and time when the task was started.
36114	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
36115
36116	// Identifies the findings to which the mitigation actions are applied. This
36117	// can be by audit checks, by audit task, or a set of findings.
36118	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure"`
36119
36120	// Aggregate counts of the results when the mitigation tasks were applied to
36121	// the findings for this audit mitigation actions task.
36122	TaskStatistics map[string]*TaskStatisticsForAuditCheck `locationName:"taskStatistics" type:"map"`
36123
36124	// The current status of the task.
36125	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
36126}
36127
36128// String returns the string representation
36129func (s DescribeAuditMitigationActionsTaskOutput) String() string {
36130	return awsutil.Prettify(s)
36131}
36132
36133// GoString returns the string representation
36134func (s DescribeAuditMitigationActionsTaskOutput) GoString() string {
36135	return s.String()
36136}
36137
36138// SetActionsDefinition sets the ActionsDefinition field's value.
36139func (s *DescribeAuditMitigationActionsTaskOutput) SetActionsDefinition(v []*MitigationAction) *DescribeAuditMitigationActionsTaskOutput {
36140	s.ActionsDefinition = v
36141	return s
36142}
36143
36144// SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
36145func (s *DescribeAuditMitigationActionsTaskOutput) SetAuditCheckToActionsMapping(v map[string][]*string) *DescribeAuditMitigationActionsTaskOutput {
36146	s.AuditCheckToActionsMapping = v
36147	return s
36148}
36149
36150// SetEndTime sets the EndTime field's value.
36151func (s *DescribeAuditMitigationActionsTaskOutput) SetEndTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
36152	s.EndTime = &v
36153	return s
36154}
36155
36156// SetStartTime sets the StartTime field's value.
36157func (s *DescribeAuditMitigationActionsTaskOutput) SetStartTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
36158	s.StartTime = &v
36159	return s
36160}
36161
36162// SetTarget sets the Target field's value.
36163func (s *DescribeAuditMitigationActionsTaskOutput) SetTarget(v *AuditMitigationActionsTaskTarget) *DescribeAuditMitigationActionsTaskOutput {
36164	s.Target = v
36165	return s
36166}
36167
36168// SetTaskStatistics sets the TaskStatistics field's value.
36169func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatistics(v map[string]*TaskStatisticsForAuditCheck) *DescribeAuditMitigationActionsTaskOutput {
36170	s.TaskStatistics = v
36171	return s
36172}
36173
36174// SetTaskStatus sets the TaskStatus field's value.
36175func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatus(v string) *DescribeAuditMitigationActionsTaskOutput {
36176	s.TaskStatus = &v
36177	return s
36178}
36179
36180type DescribeAuditSuppressionInput struct {
36181	_ struct{} `type:"structure"`
36182
36183	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
36184	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
36185	// to select which checks are enabled.)
36186	//
36187	// CheckName is a required field
36188	CheckName *string `locationName:"checkName" type:"string" required:"true"`
36189
36190	// Information that identifies the noncompliant resource.
36191	//
36192	// ResourceIdentifier is a required field
36193	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
36194}
36195
36196// String returns the string representation
36197func (s DescribeAuditSuppressionInput) String() string {
36198	return awsutil.Prettify(s)
36199}
36200
36201// GoString returns the string representation
36202func (s DescribeAuditSuppressionInput) GoString() string {
36203	return s.String()
36204}
36205
36206// Validate inspects the fields of the type to determine if they are valid.
36207func (s *DescribeAuditSuppressionInput) Validate() error {
36208	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditSuppressionInput"}
36209	if s.CheckName == nil {
36210		invalidParams.Add(request.NewErrParamRequired("CheckName"))
36211	}
36212	if s.ResourceIdentifier == nil {
36213		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
36214	}
36215	if s.ResourceIdentifier != nil {
36216		if err := s.ResourceIdentifier.Validate(); err != nil {
36217			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
36218		}
36219	}
36220
36221	if invalidParams.Len() > 0 {
36222		return invalidParams
36223	}
36224	return nil
36225}
36226
36227// SetCheckName sets the CheckName field's value.
36228func (s *DescribeAuditSuppressionInput) SetCheckName(v string) *DescribeAuditSuppressionInput {
36229	s.CheckName = &v
36230	return s
36231}
36232
36233// SetResourceIdentifier sets the ResourceIdentifier field's value.
36234func (s *DescribeAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *DescribeAuditSuppressionInput {
36235	s.ResourceIdentifier = v
36236	return s
36237}
36238
36239type DescribeAuditSuppressionOutput struct {
36240	_ struct{} `type:"structure"`
36241
36242	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
36243	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
36244	// to select which checks are enabled.)
36245	CheckName *string `locationName:"checkName" type:"string"`
36246
36247	// The description of the audit suppression.
36248	Description *string `locationName:"description" type:"string"`
36249
36250	// The epoch timestamp in seconds at which this suppression expires.
36251	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
36252
36253	// Information that identifies the noncompliant resource.
36254	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
36255
36256	// Indicates whether a suppression should exist indefinitely or not.
36257	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
36258}
36259
36260// String returns the string representation
36261func (s DescribeAuditSuppressionOutput) String() string {
36262	return awsutil.Prettify(s)
36263}
36264
36265// GoString returns the string representation
36266func (s DescribeAuditSuppressionOutput) GoString() string {
36267	return s.String()
36268}
36269
36270// SetCheckName sets the CheckName field's value.
36271func (s *DescribeAuditSuppressionOutput) SetCheckName(v string) *DescribeAuditSuppressionOutput {
36272	s.CheckName = &v
36273	return s
36274}
36275
36276// SetDescription sets the Description field's value.
36277func (s *DescribeAuditSuppressionOutput) SetDescription(v string) *DescribeAuditSuppressionOutput {
36278	s.Description = &v
36279	return s
36280}
36281
36282// SetExpirationDate sets the ExpirationDate field's value.
36283func (s *DescribeAuditSuppressionOutput) SetExpirationDate(v time.Time) *DescribeAuditSuppressionOutput {
36284	s.ExpirationDate = &v
36285	return s
36286}
36287
36288// SetResourceIdentifier sets the ResourceIdentifier field's value.
36289func (s *DescribeAuditSuppressionOutput) SetResourceIdentifier(v *ResourceIdentifier) *DescribeAuditSuppressionOutput {
36290	s.ResourceIdentifier = v
36291	return s
36292}
36293
36294// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
36295func (s *DescribeAuditSuppressionOutput) SetSuppressIndefinitely(v bool) *DescribeAuditSuppressionOutput {
36296	s.SuppressIndefinitely = &v
36297	return s
36298}
36299
36300type DescribeAuditTaskInput struct {
36301	_ struct{} `type:"structure"`
36302
36303	// The ID of the audit whose information you want to get.
36304	//
36305	// TaskId is a required field
36306	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
36307}
36308
36309// String returns the string representation
36310func (s DescribeAuditTaskInput) String() string {
36311	return awsutil.Prettify(s)
36312}
36313
36314// GoString returns the string representation
36315func (s DescribeAuditTaskInput) GoString() string {
36316	return s.String()
36317}
36318
36319// Validate inspects the fields of the type to determine if they are valid.
36320func (s *DescribeAuditTaskInput) Validate() error {
36321	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditTaskInput"}
36322	if s.TaskId == nil {
36323		invalidParams.Add(request.NewErrParamRequired("TaskId"))
36324	}
36325	if s.TaskId != nil && len(*s.TaskId) < 1 {
36326		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
36327	}
36328
36329	if invalidParams.Len() > 0 {
36330		return invalidParams
36331	}
36332	return nil
36333}
36334
36335// SetTaskId sets the TaskId field's value.
36336func (s *DescribeAuditTaskInput) SetTaskId(v string) *DescribeAuditTaskInput {
36337	s.TaskId = &v
36338	return s
36339}
36340
36341type DescribeAuditTaskOutput struct {
36342	_ struct{} `type:"structure"`
36343
36344	// Detailed information about each check performed during this audit.
36345	AuditDetails map[string]*AuditCheckDetails `locationName:"auditDetails" type:"map"`
36346
36347	// The name of the scheduled audit (only if the audit was a scheduled audit).
36348	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
36349
36350	// The time the audit started.
36351	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
36352
36353	// Statistical information about the audit.
36354	TaskStatistics *TaskStatistics `locationName:"taskStatistics" type:"structure"`
36355
36356	// The status of the audit: one of "IN_PROGRESS", "COMPLETED", "FAILED", or
36357	// "CANCELED".
36358	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
36359
36360	// The type of audit: "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
36361	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
36362}
36363
36364// String returns the string representation
36365func (s DescribeAuditTaskOutput) String() string {
36366	return awsutil.Prettify(s)
36367}
36368
36369// GoString returns the string representation
36370func (s DescribeAuditTaskOutput) GoString() string {
36371	return s.String()
36372}
36373
36374// SetAuditDetails sets the AuditDetails field's value.
36375func (s *DescribeAuditTaskOutput) SetAuditDetails(v map[string]*AuditCheckDetails) *DescribeAuditTaskOutput {
36376	s.AuditDetails = v
36377	return s
36378}
36379
36380// SetScheduledAuditName sets the ScheduledAuditName field's value.
36381func (s *DescribeAuditTaskOutput) SetScheduledAuditName(v string) *DescribeAuditTaskOutput {
36382	s.ScheduledAuditName = &v
36383	return s
36384}
36385
36386// SetTaskStartTime sets the TaskStartTime field's value.
36387func (s *DescribeAuditTaskOutput) SetTaskStartTime(v time.Time) *DescribeAuditTaskOutput {
36388	s.TaskStartTime = &v
36389	return s
36390}
36391
36392// SetTaskStatistics sets the TaskStatistics field's value.
36393func (s *DescribeAuditTaskOutput) SetTaskStatistics(v *TaskStatistics) *DescribeAuditTaskOutput {
36394	s.TaskStatistics = v
36395	return s
36396}
36397
36398// SetTaskStatus sets the TaskStatus field's value.
36399func (s *DescribeAuditTaskOutput) SetTaskStatus(v string) *DescribeAuditTaskOutput {
36400	s.TaskStatus = &v
36401	return s
36402}
36403
36404// SetTaskType sets the TaskType field's value.
36405func (s *DescribeAuditTaskOutput) SetTaskType(v string) *DescribeAuditTaskOutput {
36406	s.TaskType = &v
36407	return s
36408}
36409
36410type DescribeAuthorizerInput struct {
36411	_ struct{} `type:"structure"`
36412
36413	// The name of the authorizer to describe.
36414	//
36415	// AuthorizerName is a required field
36416	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
36417}
36418
36419// String returns the string representation
36420func (s DescribeAuthorizerInput) String() string {
36421	return awsutil.Prettify(s)
36422}
36423
36424// GoString returns the string representation
36425func (s DescribeAuthorizerInput) GoString() string {
36426	return s.String()
36427}
36428
36429// Validate inspects the fields of the type to determine if they are valid.
36430func (s *DescribeAuthorizerInput) Validate() error {
36431	invalidParams := request.ErrInvalidParams{Context: "DescribeAuthorizerInput"}
36432	if s.AuthorizerName == nil {
36433		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
36434	}
36435	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
36436		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
36437	}
36438
36439	if invalidParams.Len() > 0 {
36440		return invalidParams
36441	}
36442	return nil
36443}
36444
36445// SetAuthorizerName sets the AuthorizerName field's value.
36446func (s *DescribeAuthorizerInput) SetAuthorizerName(v string) *DescribeAuthorizerInput {
36447	s.AuthorizerName = &v
36448	return s
36449}
36450
36451type DescribeAuthorizerOutput struct {
36452	_ struct{} `type:"structure"`
36453
36454	// The authorizer description.
36455	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
36456}
36457
36458// String returns the string representation
36459func (s DescribeAuthorizerOutput) String() string {
36460	return awsutil.Prettify(s)
36461}
36462
36463// GoString returns the string representation
36464func (s DescribeAuthorizerOutput) GoString() string {
36465	return s.String()
36466}
36467
36468// SetAuthorizerDescription sets the AuthorizerDescription field's value.
36469func (s *DescribeAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeAuthorizerOutput {
36470	s.AuthorizerDescription = v
36471	return s
36472}
36473
36474type DescribeBillingGroupInput struct {
36475	_ struct{} `type:"structure"`
36476
36477	// The name of the billing group.
36478	//
36479	// BillingGroupName is a required field
36480	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
36481}
36482
36483// String returns the string representation
36484func (s DescribeBillingGroupInput) String() string {
36485	return awsutil.Prettify(s)
36486}
36487
36488// GoString returns the string representation
36489func (s DescribeBillingGroupInput) GoString() string {
36490	return s.String()
36491}
36492
36493// Validate inspects the fields of the type to determine if they are valid.
36494func (s *DescribeBillingGroupInput) Validate() error {
36495	invalidParams := request.ErrInvalidParams{Context: "DescribeBillingGroupInput"}
36496	if s.BillingGroupName == nil {
36497		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
36498	}
36499	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
36500		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
36501	}
36502
36503	if invalidParams.Len() > 0 {
36504		return invalidParams
36505	}
36506	return nil
36507}
36508
36509// SetBillingGroupName sets the BillingGroupName field's value.
36510func (s *DescribeBillingGroupInput) SetBillingGroupName(v string) *DescribeBillingGroupInput {
36511	s.BillingGroupName = &v
36512	return s
36513}
36514
36515type DescribeBillingGroupOutput struct {
36516	_ struct{} `type:"structure"`
36517
36518	// The ARN of the billing group.
36519	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
36520
36521	// The ID of the billing group.
36522	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
36523
36524	// Additional information about the billing group.
36525	BillingGroupMetadata *BillingGroupMetadata `locationName:"billingGroupMetadata" type:"structure"`
36526
36527	// The name of the billing group.
36528	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
36529
36530	// The properties of the billing group.
36531	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
36532
36533	// The version of the billing group.
36534	Version *int64 `locationName:"version" type:"long"`
36535}
36536
36537// String returns the string representation
36538func (s DescribeBillingGroupOutput) String() string {
36539	return awsutil.Prettify(s)
36540}
36541
36542// GoString returns the string representation
36543func (s DescribeBillingGroupOutput) GoString() string {
36544	return s.String()
36545}
36546
36547// SetBillingGroupArn sets the BillingGroupArn field's value.
36548func (s *DescribeBillingGroupOutput) SetBillingGroupArn(v string) *DescribeBillingGroupOutput {
36549	s.BillingGroupArn = &v
36550	return s
36551}
36552
36553// SetBillingGroupId sets the BillingGroupId field's value.
36554func (s *DescribeBillingGroupOutput) SetBillingGroupId(v string) *DescribeBillingGroupOutput {
36555	s.BillingGroupId = &v
36556	return s
36557}
36558
36559// SetBillingGroupMetadata sets the BillingGroupMetadata field's value.
36560func (s *DescribeBillingGroupOutput) SetBillingGroupMetadata(v *BillingGroupMetadata) *DescribeBillingGroupOutput {
36561	s.BillingGroupMetadata = v
36562	return s
36563}
36564
36565// SetBillingGroupName sets the BillingGroupName field's value.
36566func (s *DescribeBillingGroupOutput) SetBillingGroupName(v string) *DescribeBillingGroupOutput {
36567	s.BillingGroupName = &v
36568	return s
36569}
36570
36571// SetBillingGroupProperties sets the BillingGroupProperties field's value.
36572func (s *DescribeBillingGroupOutput) SetBillingGroupProperties(v *BillingGroupProperties) *DescribeBillingGroupOutput {
36573	s.BillingGroupProperties = v
36574	return s
36575}
36576
36577// SetVersion sets the Version field's value.
36578func (s *DescribeBillingGroupOutput) SetVersion(v int64) *DescribeBillingGroupOutput {
36579	s.Version = &v
36580	return s
36581}
36582
36583// The input for the DescribeCACertificate operation.
36584type DescribeCACertificateInput struct {
36585	_ struct{} `type:"structure"`
36586
36587	// The CA certificate identifier.
36588	//
36589	// CertificateId is a required field
36590	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
36591}
36592
36593// String returns the string representation
36594func (s DescribeCACertificateInput) String() string {
36595	return awsutil.Prettify(s)
36596}
36597
36598// GoString returns the string representation
36599func (s DescribeCACertificateInput) GoString() string {
36600	return s.String()
36601}
36602
36603// Validate inspects the fields of the type to determine if they are valid.
36604func (s *DescribeCACertificateInput) Validate() error {
36605	invalidParams := request.ErrInvalidParams{Context: "DescribeCACertificateInput"}
36606	if s.CertificateId == nil {
36607		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
36608	}
36609	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
36610		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
36611	}
36612
36613	if invalidParams.Len() > 0 {
36614		return invalidParams
36615	}
36616	return nil
36617}
36618
36619// SetCertificateId sets the CertificateId field's value.
36620func (s *DescribeCACertificateInput) SetCertificateId(v string) *DescribeCACertificateInput {
36621	s.CertificateId = &v
36622	return s
36623}
36624
36625// The output from the DescribeCACertificate operation.
36626type DescribeCACertificateOutput struct {
36627	_ struct{} `type:"structure"`
36628
36629	// The CA certificate description.
36630	CertificateDescription *CACertificateDescription `locationName:"certificateDescription" type:"structure"`
36631
36632	// Information about the registration configuration.
36633	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
36634}
36635
36636// String returns the string representation
36637func (s DescribeCACertificateOutput) String() string {
36638	return awsutil.Prettify(s)
36639}
36640
36641// GoString returns the string representation
36642func (s DescribeCACertificateOutput) GoString() string {
36643	return s.String()
36644}
36645
36646// SetCertificateDescription sets the CertificateDescription field's value.
36647func (s *DescribeCACertificateOutput) SetCertificateDescription(v *CACertificateDescription) *DescribeCACertificateOutput {
36648	s.CertificateDescription = v
36649	return s
36650}
36651
36652// SetRegistrationConfig sets the RegistrationConfig field's value.
36653func (s *DescribeCACertificateOutput) SetRegistrationConfig(v *RegistrationConfig) *DescribeCACertificateOutput {
36654	s.RegistrationConfig = v
36655	return s
36656}
36657
36658// The input for the DescribeCertificate operation.
36659type DescribeCertificateInput struct {
36660	_ struct{} `type:"structure"`
36661
36662	// The ID of the certificate. (The last part of the certificate ARN contains
36663	// the certificate ID.)
36664	//
36665	// CertificateId is a required field
36666	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
36667}
36668
36669// String returns the string representation
36670func (s DescribeCertificateInput) String() string {
36671	return awsutil.Prettify(s)
36672}
36673
36674// GoString returns the string representation
36675func (s DescribeCertificateInput) GoString() string {
36676	return s.String()
36677}
36678
36679// Validate inspects the fields of the type to determine if they are valid.
36680func (s *DescribeCertificateInput) Validate() error {
36681	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateInput"}
36682	if s.CertificateId == nil {
36683		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
36684	}
36685	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
36686		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
36687	}
36688
36689	if invalidParams.Len() > 0 {
36690		return invalidParams
36691	}
36692	return nil
36693}
36694
36695// SetCertificateId sets the CertificateId field's value.
36696func (s *DescribeCertificateInput) SetCertificateId(v string) *DescribeCertificateInput {
36697	s.CertificateId = &v
36698	return s
36699}
36700
36701// The output of the DescribeCertificate operation.
36702type DescribeCertificateOutput struct {
36703	_ struct{} `type:"structure"`
36704
36705	// The description of the certificate.
36706	CertificateDescription *CertificateDescription `locationName:"certificateDescription" type:"structure"`
36707}
36708
36709// String returns the string representation
36710func (s DescribeCertificateOutput) String() string {
36711	return awsutil.Prettify(s)
36712}
36713
36714// GoString returns the string representation
36715func (s DescribeCertificateOutput) GoString() string {
36716	return s.String()
36717}
36718
36719// SetCertificateDescription sets the CertificateDescription field's value.
36720func (s *DescribeCertificateOutput) SetCertificateDescription(v *CertificateDescription) *DescribeCertificateOutput {
36721	s.CertificateDescription = v
36722	return s
36723}
36724
36725type DescribeCustomMetricInput struct {
36726	_ struct{} `type:"structure"`
36727
36728	// The name of the custom metric.
36729	//
36730	// MetricName is a required field
36731	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
36732}
36733
36734// String returns the string representation
36735func (s DescribeCustomMetricInput) String() string {
36736	return awsutil.Prettify(s)
36737}
36738
36739// GoString returns the string representation
36740func (s DescribeCustomMetricInput) GoString() string {
36741	return s.String()
36742}
36743
36744// Validate inspects the fields of the type to determine if they are valid.
36745func (s *DescribeCustomMetricInput) Validate() error {
36746	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomMetricInput"}
36747	if s.MetricName == nil {
36748		invalidParams.Add(request.NewErrParamRequired("MetricName"))
36749	}
36750	if s.MetricName != nil && len(*s.MetricName) < 1 {
36751		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
36752	}
36753
36754	if invalidParams.Len() > 0 {
36755		return invalidParams
36756	}
36757	return nil
36758}
36759
36760// SetMetricName sets the MetricName field's value.
36761func (s *DescribeCustomMetricInput) SetMetricName(v string) *DescribeCustomMetricInput {
36762	s.MetricName = &v
36763	return s
36764}
36765
36766type DescribeCustomMetricOutput struct {
36767	_ struct{} `type:"structure"`
36768
36769	// The creation date of the custom metric in milliseconds since epoch.
36770	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
36771
36772	// Field represents a friendly name in the console for the custom metric; doesn't
36773	// have to be unique. Don't use this name as the metric identifier in the device
36774	// metric report. Can be updated.
36775	DisplayName *string `locationName:"displayName" type:"string"`
36776
36777	// The time the custom metric was last modified in milliseconds since epoch.
36778	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
36779
36780	// The Amazon Resource Number (ARN) of the custom metric.
36781	MetricArn *string `locationName:"metricArn" type:"string"`
36782
36783	// The name of the custom metric.
36784	MetricName *string `locationName:"metricName" min:"1" type:"string"`
36785
36786	// The type of the custom metric. Types include string-list, ip-address-list,
36787	// number-list, and number.
36788	MetricType *string `locationName:"metricType" type:"string" enum:"CustomMetricType"`
36789}
36790
36791// String returns the string representation
36792func (s DescribeCustomMetricOutput) String() string {
36793	return awsutil.Prettify(s)
36794}
36795
36796// GoString returns the string representation
36797func (s DescribeCustomMetricOutput) GoString() string {
36798	return s.String()
36799}
36800
36801// SetCreationDate sets the CreationDate field's value.
36802func (s *DescribeCustomMetricOutput) SetCreationDate(v time.Time) *DescribeCustomMetricOutput {
36803	s.CreationDate = &v
36804	return s
36805}
36806
36807// SetDisplayName sets the DisplayName field's value.
36808func (s *DescribeCustomMetricOutput) SetDisplayName(v string) *DescribeCustomMetricOutput {
36809	s.DisplayName = &v
36810	return s
36811}
36812
36813// SetLastModifiedDate sets the LastModifiedDate field's value.
36814func (s *DescribeCustomMetricOutput) SetLastModifiedDate(v time.Time) *DescribeCustomMetricOutput {
36815	s.LastModifiedDate = &v
36816	return s
36817}
36818
36819// SetMetricArn sets the MetricArn field's value.
36820func (s *DescribeCustomMetricOutput) SetMetricArn(v string) *DescribeCustomMetricOutput {
36821	s.MetricArn = &v
36822	return s
36823}
36824
36825// SetMetricName sets the MetricName field's value.
36826func (s *DescribeCustomMetricOutput) SetMetricName(v string) *DescribeCustomMetricOutput {
36827	s.MetricName = &v
36828	return s
36829}
36830
36831// SetMetricType sets the MetricType field's value.
36832func (s *DescribeCustomMetricOutput) SetMetricType(v string) *DescribeCustomMetricOutput {
36833	s.MetricType = &v
36834	return s
36835}
36836
36837type DescribeDefaultAuthorizerInput struct {
36838	_ struct{} `type:"structure"`
36839}
36840
36841// String returns the string representation
36842func (s DescribeDefaultAuthorizerInput) String() string {
36843	return awsutil.Prettify(s)
36844}
36845
36846// GoString returns the string representation
36847func (s DescribeDefaultAuthorizerInput) GoString() string {
36848	return s.String()
36849}
36850
36851type DescribeDefaultAuthorizerOutput struct {
36852	_ struct{} `type:"structure"`
36853
36854	// The default authorizer's description.
36855	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
36856}
36857
36858// String returns the string representation
36859func (s DescribeDefaultAuthorizerOutput) String() string {
36860	return awsutil.Prettify(s)
36861}
36862
36863// GoString returns the string representation
36864func (s DescribeDefaultAuthorizerOutput) GoString() string {
36865	return s.String()
36866}
36867
36868// SetAuthorizerDescription sets the AuthorizerDescription field's value.
36869func (s *DescribeDefaultAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeDefaultAuthorizerOutput {
36870	s.AuthorizerDescription = v
36871	return s
36872}
36873
36874type DescribeDetectMitigationActionsTaskInput struct {
36875	_ struct{} `type:"structure"`
36876
36877	// The unique identifier of the task.
36878	//
36879	// TaskId is a required field
36880	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
36881}
36882
36883// String returns the string representation
36884func (s DescribeDetectMitigationActionsTaskInput) String() string {
36885	return awsutil.Prettify(s)
36886}
36887
36888// GoString returns the string representation
36889func (s DescribeDetectMitigationActionsTaskInput) GoString() string {
36890	return s.String()
36891}
36892
36893// Validate inspects the fields of the type to determine if they are valid.
36894func (s *DescribeDetectMitigationActionsTaskInput) Validate() error {
36895	invalidParams := request.ErrInvalidParams{Context: "DescribeDetectMitigationActionsTaskInput"}
36896	if s.TaskId == nil {
36897		invalidParams.Add(request.NewErrParamRequired("TaskId"))
36898	}
36899	if s.TaskId != nil && len(*s.TaskId) < 1 {
36900		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
36901	}
36902
36903	if invalidParams.Len() > 0 {
36904		return invalidParams
36905	}
36906	return nil
36907}
36908
36909// SetTaskId sets the TaskId field's value.
36910func (s *DescribeDetectMitigationActionsTaskInput) SetTaskId(v string) *DescribeDetectMitigationActionsTaskInput {
36911	s.TaskId = &v
36912	return s
36913}
36914
36915type DescribeDetectMitigationActionsTaskOutput struct {
36916	_ struct{} `type:"structure"`
36917
36918	// The description of a task.
36919	TaskSummary *DetectMitigationActionsTaskSummary `locationName:"taskSummary" type:"structure"`
36920}
36921
36922// String returns the string representation
36923func (s DescribeDetectMitigationActionsTaskOutput) String() string {
36924	return awsutil.Prettify(s)
36925}
36926
36927// GoString returns the string representation
36928func (s DescribeDetectMitigationActionsTaskOutput) GoString() string {
36929	return s.String()
36930}
36931
36932// SetTaskSummary sets the TaskSummary field's value.
36933func (s *DescribeDetectMitigationActionsTaskOutput) SetTaskSummary(v *DetectMitigationActionsTaskSummary) *DescribeDetectMitigationActionsTaskOutput {
36934	s.TaskSummary = v
36935	return s
36936}
36937
36938type DescribeDimensionInput struct {
36939	_ struct{} `type:"structure"`
36940
36941	// The unique identifier for the dimension.
36942	//
36943	// Name is a required field
36944	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
36945}
36946
36947// String returns the string representation
36948func (s DescribeDimensionInput) String() string {
36949	return awsutil.Prettify(s)
36950}
36951
36952// GoString returns the string representation
36953func (s DescribeDimensionInput) GoString() string {
36954	return s.String()
36955}
36956
36957// Validate inspects the fields of the type to determine if they are valid.
36958func (s *DescribeDimensionInput) Validate() error {
36959	invalidParams := request.ErrInvalidParams{Context: "DescribeDimensionInput"}
36960	if s.Name == nil {
36961		invalidParams.Add(request.NewErrParamRequired("Name"))
36962	}
36963	if s.Name != nil && len(*s.Name) < 1 {
36964		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
36965	}
36966
36967	if invalidParams.Len() > 0 {
36968		return invalidParams
36969	}
36970	return nil
36971}
36972
36973// SetName sets the Name field's value.
36974func (s *DescribeDimensionInput) SetName(v string) *DescribeDimensionInput {
36975	s.Name = &v
36976	return s
36977}
36978
36979type DescribeDimensionOutput struct {
36980	_ struct{} `type:"structure"`
36981
36982	// The Amazon Resource Name (ARN) for the dimension.
36983	Arn *string `locationName:"arn" type:"string"`
36984
36985	// The date the dimension was created.
36986	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
36987
36988	// The date the dimension was last modified.
36989	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
36990
36991	// The unique identifier for the dimension.
36992	Name *string `locationName:"name" min:"1" type:"string"`
36993
36994	// The value or list of values used to scope the dimension. For example, for
36995	// topic filters, this is the pattern used to match the MQTT topic name.
36996	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
36997
36998	// The type of the dimension.
36999	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
37000}
37001
37002// String returns the string representation
37003func (s DescribeDimensionOutput) String() string {
37004	return awsutil.Prettify(s)
37005}
37006
37007// GoString returns the string representation
37008func (s DescribeDimensionOutput) GoString() string {
37009	return s.String()
37010}
37011
37012// SetArn sets the Arn field's value.
37013func (s *DescribeDimensionOutput) SetArn(v string) *DescribeDimensionOutput {
37014	s.Arn = &v
37015	return s
37016}
37017
37018// SetCreationDate sets the CreationDate field's value.
37019func (s *DescribeDimensionOutput) SetCreationDate(v time.Time) *DescribeDimensionOutput {
37020	s.CreationDate = &v
37021	return s
37022}
37023
37024// SetLastModifiedDate sets the LastModifiedDate field's value.
37025func (s *DescribeDimensionOutput) SetLastModifiedDate(v time.Time) *DescribeDimensionOutput {
37026	s.LastModifiedDate = &v
37027	return s
37028}
37029
37030// SetName sets the Name field's value.
37031func (s *DescribeDimensionOutput) SetName(v string) *DescribeDimensionOutput {
37032	s.Name = &v
37033	return s
37034}
37035
37036// SetStringValues sets the StringValues field's value.
37037func (s *DescribeDimensionOutput) SetStringValues(v []*string) *DescribeDimensionOutput {
37038	s.StringValues = v
37039	return s
37040}
37041
37042// SetType sets the Type field's value.
37043func (s *DescribeDimensionOutput) SetType(v string) *DescribeDimensionOutput {
37044	s.Type = &v
37045	return s
37046}
37047
37048type DescribeDomainConfigurationInput struct {
37049	_ struct{} `type:"structure"`
37050
37051	// The name of the domain configuration.
37052	//
37053	// DomainConfigurationName is a required field
37054	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
37055}
37056
37057// String returns the string representation
37058func (s DescribeDomainConfigurationInput) String() string {
37059	return awsutil.Prettify(s)
37060}
37061
37062// GoString returns the string representation
37063func (s DescribeDomainConfigurationInput) GoString() string {
37064	return s.String()
37065}
37066
37067// Validate inspects the fields of the type to determine if they are valid.
37068func (s *DescribeDomainConfigurationInput) Validate() error {
37069	invalidParams := request.ErrInvalidParams{Context: "DescribeDomainConfigurationInput"}
37070	if s.DomainConfigurationName == nil {
37071		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
37072	}
37073	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
37074		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
37075	}
37076
37077	if invalidParams.Len() > 0 {
37078		return invalidParams
37079	}
37080	return nil
37081}
37082
37083// SetDomainConfigurationName sets the DomainConfigurationName field's value.
37084func (s *DescribeDomainConfigurationInput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationInput {
37085	s.DomainConfigurationName = &v
37086	return s
37087}
37088
37089type DescribeDomainConfigurationOutput struct {
37090	_ struct{} `type:"structure"`
37091
37092	// An object that specifies the authorization service for a domain.
37093	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
37094
37095	// The ARN of the domain configuration.
37096	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
37097
37098	// The name of the domain configuration.
37099	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
37100
37101	// A Boolean value that specifies the current state of the domain configuration.
37102	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
37103
37104	// The name of the domain.
37105	DomainName *string `locationName:"domainName" min:"1" type:"string"`
37106
37107	// The type of the domain.
37108	DomainType *string `locationName:"domainType" type:"string" enum:"DomainType"`
37109
37110	// The date and time the domain configuration's status was last changed.
37111	LastStatusChangeDate *time.Time `locationName:"lastStatusChangeDate" type:"timestamp"`
37112
37113	// A list containing summary information about the server certificate included
37114	// in the domain configuration.
37115	ServerCertificates []*ServerCertificateSummary `locationName:"serverCertificates" type:"list"`
37116
37117	// The type of service delivered by the endpoint.
37118	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
37119}
37120
37121// String returns the string representation
37122func (s DescribeDomainConfigurationOutput) String() string {
37123	return awsutil.Prettify(s)
37124}
37125
37126// GoString returns the string representation
37127func (s DescribeDomainConfigurationOutput) GoString() string {
37128	return s.String()
37129}
37130
37131// SetAuthorizerConfig sets the AuthorizerConfig field's value.
37132func (s *DescribeDomainConfigurationOutput) SetAuthorizerConfig(v *AuthorizerConfig) *DescribeDomainConfigurationOutput {
37133	s.AuthorizerConfig = v
37134	return s
37135}
37136
37137// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
37138func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationArn(v string) *DescribeDomainConfigurationOutput {
37139	s.DomainConfigurationArn = &v
37140	return s
37141}
37142
37143// SetDomainConfigurationName sets the DomainConfigurationName field's value.
37144func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationOutput {
37145	s.DomainConfigurationName = &v
37146	return s
37147}
37148
37149// SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
37150func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationStatus(v string) *DescribeDomainConfigurationOutput {
37151	s.DomainConfigurationStatus = &v
37152	return s
37153}
37154
37155// SetDomainName sets the DomainName field's value.
37156func (s *DescribeDomainConfigurationOutput) SetDomainName(v string) *DescribeDomainConfigurationOutput {
37157	s.DomainName = &v
37158	return s
37159}
37160
37161// SetDomainType sets the DomainType field's value.
37162func (s *DescribeDomainConfigurationOutput) SetDomainType(v string) *DescribeDomainConfigurationOutput {
37163	s.DomainType = &v
37164	return s
37165}
37166
37167// SetLastStatusChangeDate sets the LastStatusChangeDate field's value.
37168func (s *DescribeDomainConfigurationOutput) SetLastStatusChangeDate(v time.Time) *DescribeDomainConfigurationOutput {
37169	s.LastStatusChangeDate = &v
37170	return s
37171}
37172
37173// SetServerCertificates sets the ServerCertificates field's value.
37174func (s *DescribeDomainConfigurationOutput) SetServerCertificates(v []*ServerCertificateSummary) *DescribeDomainConfigurationOutput {
37175	s.ServerCertificates = v
37176	return s
37177}
37178
37179// SetServiceType sets the ServiceType field's value.
37180func (s *DescribeDomainConfigurationOutput) SetServiceType(v string) *DescribeDomainConfigurationOutput {
37181	s.ServiceType = &v
37182	return s
37183}
37184
37185// The input for the DescribeEndpoint operation.
37186type DescribeEndpointInput struct {
37187	_ struct{} `type:"structure"`
37188
37189	// The endpoint type. Valid endpoint types include:
37190	//
37191	//    * iot:Data - Returns a VeriSign signed data endpoint.
37192	//
37193	//    * iot:Data-ATS - Returns an ATS signed data endpoint.
37194	//
37195	//    * iot:CredentialProvider - Returns an IoT credentials provider API endpoint.
37196	//
37197	//    * iot:Jobs - Returns an IoT device management Jobs API endpoint.
37198	//
37199	// We strongly recommend that customers use the newer iot:Data-ATS endpoint
37200	// type to avoid issues related to the widespread distrust of Symantec certificate
37201	// authorities.
37202	EndpointType *string `location:"querystring" locationName:"endpointType" type:"string"`
37203}
37204
37205// String returns the string representation
37206func (s DescribeEndpointInput) String() string {
37207	return awsutil.Prettify(s)
37208}
37209
37210// GoString returns the string representation
37211func (s DescribeEndpointInput) GoString() string {
37212	return s.String()
37213}
37214
37215// SetEndpointType sets the EndpointType field's value.
37216func (s *DescribeEndpointInput) SetEndpointType(v string) *DescribeEndpointInput {
37217	s.EndpointType = &v
37218	return s
37219}
37220
37221// The output from the DescribeEndpoint operation.
37222type DescribeEndpointOutput struct {
37223	_ struct{} `type:"structure"`
37224
37225	// The endpoint. The format of the endpoint is as follows: identifier.iot.region.amazonaws.com.
37226	EndpointAddress *string `locationName:"endpointAddress" type:"string"`
37227}
37228
37229// String returns the string representation
37230func (s DescribeEndpointOutput) String() string {
37231	return awsutil.Prettify(s)
37232}
37233
37234// GoString returns the string representation
37235func (s DescribeEndpointOutput) GoString() string {
37236	return s.String()
37237}
37238
37239// SetEndpointAddress sets the EndpointAddress field's value.
37240func (s *DescribeEndpointOutput) SetEndpointAddress(v string) *DescribeEndpointOutput {
37241	s.EndpointAddress = &v
37242	return s
37243}
37244
37245type DescribeEventConfigurationsInput struct {
37246	_ struct{} `type:"structure"`
37247}
37248
37249// String returns the string representation
37250func (s DescribeEventConfigurationsInput) String() string {
37251	return awsutil.Prettify(s)
37252}
37253
37254// GoString returns the string representation
37255func (s DescribeEventConfigurationsInput) GoString() string {
37256	return s.String()
37257}
37258
37259type DescribeEventConfigurationsOutput struct {
37260	_ struct{} `type:"structure"`
37261
37262	// The creation date of the event configuration.
37263	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
37264
37265	// The event configurations.
37266	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
37267
37268	// The date the event configurations were last modified.
37269	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
37270}
37271
37272// String returns the string representation
37273func (s DescribeEventConfigurationsOutput) String() string {
37274	return awsutil.Prettify(s)
37275}
37276
37277// GoString returns the string representation
37278func (s DescribeEventConfigurationsOutput) GoString() string {
37279	return s.String()
37280}
37281
37282// SetCreationDate sets the CreationDate field's value.
37283func (s *DescribeEventConfigurationsOutput) SetCreationDate(v time.Time) *DescribeEventConfigurationsOutput {
37284	s.CreationDate = &v
37285	return s
37286}
37287
37288// SetEventConfigurations sets the EventConfigurations field's value.
37289func (s *DescribeEventConfigurationsOutput) SetEventConfigurations(v map[string]*Configuration) *DescribeEventConfigurationsOutput {
37290	s.EventConfigurations = v
37291	return s
37292}
37293
37294// SetLastModifiedDate sets the LastModifiedDate field's value.
37295func (s *DescribeEventConfigurationsOutput) SetLastModifiedDate(v time.Time) *DescribeEventConfigurationsOutput {
37296	s.LastModifiedDate = &v
37297	return s
37298}
37299
37300type DescribeFleetMetricInput struct {
37301	_ struct{} `type:"structure"`
37302
37303	// The name of the fleet metric to describe.
37304	//
37305	// MetricName is a required field
37306	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
37307}
37308
37309// String returns the string representation
37310func (s DescribeFleetMetricInput) String() string {
37311	return awsutil.Prettify(s)
37312}
37313
37314// GoString returns the string representation
37315func (s DescribeFleetMetricInput) GoString() string {
37316	return s.String()
37317}
37318
37319// Validate inspects the fields of the type to determine if they are valid.
37320func (s *DescribeFleetMetricInput) Validate() error {
37321	invalidParams := request.ErrInvalidParams{Context: "DescribeFleetMetricInput"}
37322	if s.MetricName == nil {
37323		invalidParams.Add(request.NewErrParamRequired("MetricName"))
37324	}
37325	if s.MetricName != nil && len(*s.MetricName) < 1 {
37326		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
37327	}
37328
37329	if invalidParams.Len() > 0 {
37330		return invalidParams
37331	}
37332	return nil
37333}
37334
37335// SetMetricName sets the MetricName field's value.
37336func (s *DescribeFleetMetricInput) SetMetricName(v string) *DescribeFleetMetricInput {
37337	s.MetricName = &v
37338	return s
37339}
37340
37341type DescribeFleetMetricOutput struct {
37342	_ struct{} `type:"structure"`
37343
37344	// The field to aggregate.
37345	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
37346
37347	// The type of the aggregation query.
37348	AggregationType *AggregationType `locationName:"aggregationType" type:"structure"`
37349
37350	// The date when the fleet metric is created.
37351	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
37352
37353	// The fleet metric description.
37354	Description *string `locationName:"description" type:"string"`
37355
37356	// The name of the index to search.
37357	IndexName *string `locationName:"indexName" min:"1" type:"string"`
37358
37359	// The date when the fleet metric is last modified.
37360	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
37361
37362	// The ARN of the fleet metric to describe.
37363	MetricArn *string `locationName:"metricArn" type:"string"`
37364
37365	// The name of the fleet metric to describe.
37366	MetricName *string `locationName:"metricName" min:"1" type:"string"`
37367
37368	// The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1
37369	// day)] and must be multiple of 60.
37370	Period *int64 `locationName:"period" min:"60" type:"integer"`
37371
37372	// The search query string.
37373	QueryString *string `locationName:"queryString" min:"1" type:"string"`
37374
37375	// The query version.
37376	QueryVersion *string `locationName:"queryVersion" type:"string"`
37377
37378	// Used to support unit transformation such as milliseconds to seconds. The
37379	// unit must be supported by CW metric (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
37380	Unit *string `locationName:"unit" type:"string" enum:"FleetMetricUnit"`
37381
37382	// The version of the fleet metric.
37383	Version *int64 `locationName:"version" type:"long"`
37384}
37385
37386// String returns the string representation
37387func (s DescribeFleetMetricOutput) String() string {
37388	return awsutil.Prettify(s)
37389}
37390
37391// GoString returns the string representation
37392func (s DescribeFleetMetricOutput) GoString() string {
37393	return s.String()
37394}
37395
37396// SetAggregationField sets the AggregationField field's value.
37397func (s *DescribeFleetMetricOutput) SetAggregationField(v string) *DescribeFleetMetricOutput {
37398	s.AggregationField = &v
37399	return s
37400}
37401
37402// SetAggregationType sets the AggregationType field's value.
37403func (s *DescribeFleetMetricOutput) SetAggregationType(v *AggregationType) *DescribeFleetMetricOutput {
37404	s.AggregationType = v
37405	return s
37406}
37407
37408// SetCreationDate sets the CreationDate field's value.
37409func (s *DescribeFleetMetricOutput) SetCreationDate(v time.Time) *DescribeFleetMetricOutput {
37410	s.CreationDate = &v
37411	return s
37412}
37413
37414// SetDescription sets the Description field's value.
37415func (s *DescribeFleetMetricOutput) SetDescription(v string) *DescribeFleetMetricOutput {
37416	s.Description = &v
37417	return s
37418}
37419
37420// SetIndexName sets the IndexName field's value.
37421func (s *DescribeFleetMetricOutput) SetIndexName(v string) *DescribeFleetMetricOutput {
37422	s.IndexName = &v
37423	return s
37424}
37425
37426// SetLastModifiedDate sets the LastModifiedDate field's value.
37427func (s *DescribeFleetMetricOutput) SetLastModifiedDate(v time.Time) *DescribeFleetMetricOutput {
37428	s.LastModifiedDate = &v
37429	return s
37430}
37431
37432// SetMetricArn sets the MetricArn field's value.
37433func (s *DescribeFleetMetricOutput) SetMetricArn(v string) *DescribeFleetMetricOutput {
37434	s.MetricArn = &v
37435	return s
37436}
37437
37438// SetMetricName sets the MetricName field's value.
37439func (s *DescribeFleetMetricOutput) SetMetricName(v string) *DescribeFleetMetricOutput {
37440	s.MetricName = &v
37441	return s
37442}
37443
37444// SetPeriod sets the Period field's value.
37445func (s *DescribeFleetMetricOutput) SetPeriod(v int64) *DescribeFleetMetricOutput {
37446	s.Period = &v
37447	return s
37448}
37449
37450// SetQueryString sets the QueryString field's value.
37451func (s *DescribeFleetMetricOutput) SetQueryString(v string) *DescribeFleetMetricOutput {
37452	s.QueryString = &v
37453	return s
37454}
37455
37456// SetQueryVersion sets the QueryVersion field's value.
37457func (s *DescribeFleetMetricOutput) SetQueryVersion(v string) *DescribeFleetMetricOutput {
37458	s.QueryVersion = &v
37459	return s
37460}
37461
37462// SetUnit sets the Unit field's value.
37463func (s *DescribeFleetMetricOutput) SetUnit(v string) *DescribeFleetMetricOutput {
37464	s.Unit = &v
37465	return s
37466}
37467
37468// SetVersion sets the Version field's value.
37469func (s *DescribeFleetMetricOutput) SetVersion(v int64) *DescribeFleetMetricOutput {
37470	s.Version = &v
37471	return s
37472}
37473
37474type DescribeIndexInput struct {
37475	_ struct{} `type:"structure"`
37476
37477	// The index name.
37478	//
37479	// IndexName is a required field
37480	IndexName *string `location:"uri" locationName:"indexName" min:"1" type:"string" required:"true"`
37481}
37482
37483// String returns the string representation
37484func (s DescribeIndexInput) String() string {
37485	return awsutil.Prettify(s)
37486}
37487
37488// GoString returns the string representation
37489func (s DescribeIndexInput) GoString() string {
37490	return s.String()
37491}
37492
37493// Validate inspects the fields of the type to determine if they are valid.
37494func (s *DescribeIndexInput) Validate() error {
37495	invalidParams := request.ErrInvalidParams{Context: "DescribeIndexInput"}
37496	if s.IndexName == nil {
37497		invalidParams.Add(request.NewErrParamRequired("IndexName"))
37498	}
37499	if s.IndexName != nil && len(*s.IndexName) < 1 {
37500		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
37501	}
37502
37503	if invalidParams.Len() > 0 {
37504		return invalidParams
37505	}
37506	return nil
37507}
37508
37509// SetIndexName sets the IndexName field's value.
37510func (s *DescribeIndexInput) SetIndexName(v string) *DescribeIndexInput {
37511	s.IndexName = &v
37512	return s
37513}
37514
37515type DescribeIndexOutput struct {
37516	_ struct{} `type:"structure"`
37517
37518	// The index name.
37519	IndexName *string `locationName:"indexName" min:"1" type:"string"`
37520
37521	// The index status.
37522	IndexStatus *string `locationName:"indexStatus" type:"string" enum:"IndexStatus"`
37523
37524	// Contains a value that specifies the type of indexing performed. Valid values
37525	// are:
37526	//
37527	//    * REGISTRY – Your thing index contains only registry data.
37528	//
37529	//    * REGISTRY_AND_SHADOW - Your thing index contains registry data and shadow
37530	//    data.
37531	//
37532	//    * REGISTRY_AND_CONNECTIVITY_STATUS - Your thing index contains registry
37533	//    data and thing connectivity status data.
37534	//
37535	//    * REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS - Your thing index contains
37536	//    registry data, shadow data, and thing connectivity status data.
37537	Schema *string `locationName:"schema" type:"string"`
37538}
37539
37540// String returns the string representation
37541func (s DescribeIndexOutput) String() string {
37542	return awsutil.Prettify(s)
37543}
37544
37545// GoString returns the string representation
37546func (s DescribeIndexOutput) GoString() string {
37547	return s.String()
37548}
37549
37550// SetIndexName sets the IndexName field's value.
37551func (s *DescribeIndexOutput) SetIndexName(v string) *DescribeIndexOutput {
37552	s.IndexName = &v
37553	return s
37554}
37555
37556// SetIndexStatus sets the IndexStatus field's value.
37557func (s *DescribeIndexOutput) SetIndexStatus(v string) *DescribeIndexOutput {
37558	s.IndexStatus = &v
37559	return s
37560}
37561
37562// SetSchema sets the Schema field's value.
37563func (s *DescribeIndexOutput) SetSchema(v string) *DescribeIndexOutput {
37564	s.Schema = &v
37565	return s
37566}
37567
37568type DescribeJobExecutionInput struct {
37569	_ struct{} `type:"structure"`
37570
37571	// A string (consisting of the digits "0" through "9" which is used to specify
37572	// a particular job execution on a particular device.
37573	ExecutionNumber *int64 `location:"querystring" locationName:"executionNumber" type:"long"`
37574
37575	// The unique identifier you assigned to this job when it was created.
37576	//
37577	// JobId is a required field
37578	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
37579
37580	// The name of the thing on which the job execution is running.
37581	//
37582	// ThingName is a required field
37583	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
37584}
37585
37586// String returns the string representation
37587func (s DescribeJobExecutionInput) String() string {
37588	return awsutil.Prettify(s)
37589}
37590
37591// GoString returns the string representation
37592func (s DescribeJobExecutionInput) GoString() string {
37593	return s.String()
37594}
37595
37596// Validate inspects the fields of the type to determine if they are valid.
37597func (s *DescribeJobExecutionInput) Validate() error {
37598	invalidParams := request.ErrInvalidParams{Context: "DescribeJobExecutionInput"}
37599	if s.JobId == nil {
37600		invalidParams.Add(request.NewErrParamRequired("JobId"))
37601	}
37602	if s.JobId != nil && len(*s.JobId) < 1 {
37603		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
37604	}
37605	if s.ThingName == nil {
37606		invalidParams.Add(request.NewErrParamRequired("ThingName"))
37607	}
37608	if s.ThingName != nil && len(*s.ThingName) < 1 {
37609		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
37610	}
37611
37612	if invalidParams.Len() > 0 {
37613		return invalidParams
37614	}
37615	return nil
37616}
37617
37618// SetExecutionNumber sets the ExecutionNumber field's value.
37619func (s *DescribeJobExecutionInput) SetExecutionNumber(v int64) *DescribeJobExecutionInput {
37620	s.ExecutionNumber = &v
37621	return s
37622}
37623
37624// SetJobId sets the JobId field's value.
37625func (s *DescribeJobExecutionInput) SetJobId(v string) *DescribeJobExecutionInput {
37626	s.JobId = &v
37627	return s
37628}
37629
37630// SetThingName sets the ThingName field's value.
37631func (s *DescribeJobExecutionInput) SetThingName(v string) *DescribeJobExecutionInput {
37632	s.ThingName = &v
37633	return s
37634}
37635
37636type DescribeJobExecutionOutput struct {
37637	_ struct{} `type:"structure"`
37638
37639	// Information about the job execution.
37640	Execution *JobExecution `locationName:"execution" type:"structure"`
37641}
37642
37643// String returns the string representation
37644func (s DescribeJobExecutionOutput) String() string {
37645	return awsutil.Prettify(s)
37646}
37647
37648// GoString returns the string representation
37649func (s DescribeJobExecutionOutput) GoString() string {
37650	return s.String()
37651}
37652
37653// SetExecution sets the Execution field's value.
37654func (s *DescribeJobExecutionOutput) SetExecution(v *JobExecution) *DescribeJobExecutionOutput {
37655	s.Execution = v
37656	return s
37657}
37658
37659type DescribeJobInput struct {
37660	_ struct{} `type:"structure"`
37661
37662	// The unique identifier you assigned to this job when it was created.
37663	//
37664	// JobId is a required field
37665	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
37666}
37667
37668// String returns the string representation
37669func (s DescribeJobInput) String() string {
37670	return awsutil.Prettify(s)
37671}
37672
37673// GoString returns the string representation
37674func (s DescribeJobInput) GoString() string {
37675	return s.String()
37676}
37677
37678// Validate inspects the fields of the type to determine if they are valid.
37679func (s *DescribeJobInput) Validate() error {
37680	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
37681	if s.JobId == nil {
37682		invalidParams.Add(request.NewErrParamRequired("JobId"))
37683	}
37684	if s.JobId != nil && len(*s.JobId) < 1 {
37685		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
37686	}
37687
37688	if invalidParams.Len() > 0 {
37689		return invalidParams
37690	}
37691	return nil
37692}
37693
37694// SetJobId sets the JobId field's value.
37695func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
37696	s.JobId = &v
37697	return s
37698}
37699
37700type DescribeJobOutput struct {
37701	_ struct{} `type:"structure"`
37702
37703	// An S3 link to the job document.
37704	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
37705
37706	// Information about the job.
37707	Job *Job `locationName:"job" type:"structure"`
37708}
37709
37710// String returns the string representation
37711func (s DescribeJobOutput) String() string {
37712	return awsutil.Prettify(s)
37713}
37714
37715// GoString returns the string representation
37716func (s DescribeJobOutput) GoString() string {
37717	return s.String()
37718}
37719
37720// SetDocumentSource sets the DocumentSource field's value.
37721func (s *DescribeJobOutput) SetDocumentSource(v string) *DescribeJobOutput {
37722	s.DocumentSource = &v
37723	return s
37724}
37725
37726// SetJob sets the Job field's value.
37727func (s *DescribeJobOutput) SetJob(v *Job) *DescribeJobOutput {
37728	s.Job = v
37729	return s
37730}
37731
37732type DescribeJobTemplateInput struct {
37733	_ struct{} `type:"structure"`
37734
37735	// The unique identifier of the job template.
37736	//
37737	// JobTemplateId is a required field
37738	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
37739}
37740
37741// String returns the string representation
37742func (s DescribeJobTemplateInput) String() string {
37743	return awsutil.Prettify(s)
37744}
37745
37746// GoString returns the string representation
37747func (s DescribeJobTemplateInput) GoString() string {
37748	return s.String()
37749}
37750
37751// Validate inspects the fields of the type to determine if they are valid.
37752func (s *DescribeJobTemplateInput) Validate() error {
37753	invalidParams := request.ErrInvalidParams{Context: "DescribeJobTemplateInput"}
37754	if s.JobTemplateId == nil {
37755		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
37756	}
37757	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
37758		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
37759	}
37760
37761	if invalidParams.Len() > 0 {
37762		return invalidParams
37763	}
37764	return nil
37765}
37766
37767// SetJobTemplateId sets the JobTemplateId field's value.
37768func (s *DescribeJobTemplateInput) SetJobTemplateId(v string) *DescribeJobTemplateInput {
37769	s.JobTemplateId = &v
37770	return s
37771}
37772
37773type DescribeJobTemplateOutput struct {
37774	_ struct{} `type:"structure"`
37775
37776	// The criteria that determine when and how a job abort takes place.
37777	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
37778
37779	// The time, in seconds since the epoch, when the job template was created.
37780	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
37781
37782	// A description of the job template.
37783	Description *string `locationName:"description" type:"string"`
37784
37785	// The job document.
37786	Document *string `locationName:"document" type:"string"`
37787
37788	// An S3 link to the job document.
37789	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
37790
37791	// Allows you to create a staged rollout of a job.
37792	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
37793
37794	// The ARN of the job template.
37795	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
37796
37797	// The unique identifier of the job template.
37798	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
37799
37800	// Configuration for pre-signed S3 URLs.
37801	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
37802
37803	// Specifies the amount of time each device has to finish its execution of the
37804	// job. A timer is started when the job execution status is set to IN_PROGRESS.
37805	// If the job execution status is not set to another terminal state before the
37806	// timer expires, it will be automatically set to TIMED_OUT.
37807	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
37808}
37809
37810// String returns the string representation
37811func (s DescribeJobTemplateOutput) String() string {
37812	return awsutil.Prettify(s)
37813}
37814
37815// GoString returns the string representation
37816func (s DescribeJobTemplateOutput) GoString() string {
37817	return s.String()
37818}
37819
37820// SetAbortConfig sets the AbortConfig field's value.
37821func (s *DescribeJobTemplateOutput) SetAbortConfig(v *AbortConfig) *DescribeJobTemplateOutput {
37822	s.AbortConfig = v
37823	return s
37824}
37825
37826// SetCreatedAt sets the CreatedAt field's value.
37827func (s *DescribeJobTemplateOutput) SetCreatedAt(v time.Time) *DescribeJobTemplateOutput {
37828	s.CreatedAt = &v
37829	return s
37830}
37831
37832// SetDescription sets the Description field's value.
37833func (s *DescribeJobTemplateOutput) SetDescription(v string) *DescribeJobTemplateOutput {
37834	s.Description = &v
37835	return s
37836}
37837
37838// SetDocument sets the Document field's value.
37839func (s *DescribeJobTemplateOutput) SetDocument(v string) *DescribeJobTemplateOutput {
37840	s.Document = &v
37841	return s
37842}
37843
37844// SetDocumentSource sets the DocumentSource field's value.
37845func (s *DescribeJobTemplateOutput) SetDocumentSource(v string) *DescribeJobTemplateOutput {
37846	s.DocumentSource = &v
37847	return s
37848}
37849
37850// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
37851func (s *DescribeJobTemplateOutput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *DescribeJobTemplateOutput {
37852	s.JobExecutionsRolloutConfig = v
37853	return s
37854}
37855
37856// SetJobTemplateArn sets the JobTemplateArn field's value.
37857func (s *DescribeJobTemplateOutput) SetJobTemplateArn(v string) *DescribeJobTemplateOutput {
37858	s.JobTemplateArn = &v
37859	return s
37860}
37861
37862// SetJobTemplateId sets the JobTemplateId field's value.
37863func (s *DescribeJobTemplateOutput) SetJobTemplateId(v string) *DescribeJobTemplateOutput {
37864	s.JobTemplateId = &v
37865	return s
37866}
37867
37868// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
37869func (s *DescribeJobTemplateOutput) SetPresignedUrlConfig(v *PresignedUrlConfig) *DescribeJobTemplateOutput {
37870	s.PresignedUrlConfig = v
37871	return s
37872}
37873
37874// SetTimeoutConfig sets the TimeoutConfig field's value.
37875func (s *DescribeJobTemplateOutput) SetTimeoutConfig(v *TimeoutConfig) *DescribeJobTemplateOutput {
37876	s.TimeoutConfig = v
37877	return s
37878}
37879
37880type DescribeMitigationActionInput struct {
37881	_ struct{} `type:"structure"`
37882
37883	// The friendly name that uniquely identifies the mitigation action.
37884	//
37885	// ActionName is a required field
37886	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
37887}
37888
37889// String returns the string representation
37890func (s DescribeMitigationActionInput) String() string {
37891	return awsutil.Prettify(s)
37892}
37893
37894// GoString returns the string representation
37895func (s DescribeMitigationActionInput) GoString() string {
37896	return s.String()
37897}
37898
37899// Validate inspects the fields of the type to determine if they are valid.
37900func (s *DescribeMitigationActionInput) Validate() error {
37901	invalidParams := request.ErrInvalidParams{Context: "DescribeMitigationActionInput"}
37902	if s.ActionName == nil {
37903		invalidParams.Add(request.NewErrParamRequired("ActionName"))
37904	}
37905	if s.ActionName != nil && len(*s.ActionName) < 1 {
37906		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
37907	}
37908
37909	if invalidParams.Len() > 0 {
37910		return invalidParams
37911	}
37912	return nil
37913}
37914
37915// SetActionName sets the ActionName field's value.
37916func (s *DescribeMitigationActionInput) SetActionName(v string) *DescribeMitigationActionInput {
37917	s.ActionName = &v
37918	return s
37919}
37920
37921type DescribeMitigationActionOutput struct {
37922	_ struct{} `type:"structure"`
37923
37924	// The ARN that identifies this migration action.
37925	ActionArn *string `locationName:"actionArn" type:"string"`
37926
37927	// A unique identifier for this action.
37928	ActionId *string `locationName:"actionId" type:"string"`
37929
37930	// The friendly name that uniquely identifies the mitigation action.
37931	ActionName *string `locationName:"actionName" type:"string"`
37932
37933	// Parameters that control how the mitigation action is applied, specific to
37934	// the type of mitigation action.
37935	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
37936
37937	// The type of mitigation action.
37938	ActionType *string `locationName:"actionType" type:"string" enum:"MitigationActionType"`
37939
37940	// The date and time when the mitigation action was added to your Amazon Web
37941	// Services accounts.
37942	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
37943
37944	// The date and time when the mitigation action was last changed.
37945	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
37946
37947	// The ARN of the IAM role used to apply this action.
37948	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
37949}
37950
37951// String returns the string representation
37952func (s DescribeMitigationActionOutput) String() string {
37953	return awsutil.Prettify(s)
37954}
37955
37956// GoString returns the string representation
37957func (s DescribeMitigationActionOutput) GoString() string {
37958	return s.String()
37959}
37960
37961// SetActionArn sets the ActionArn field's value.
37962func (s *DescribeMitigationActionOutput) SetActionArn(v string) *DescribeMitigationActionOutput {
37963	s.ActionArn = &v
37964	return s
37965}
37966
37967// SetActionId sets the ActionId field's value.
37968func (s *DescribeMitigationActionOutput) SetActionId(v string) *DescribeMitigationActionOutput {
37969	s.ActionId = &v
37970	return s
37971}
37972
37973// SetActionName sets the ActionName field's value.
37974func (s *DescribeMitigationActionOutput) SetActionName(v string) *DescribeMitigationActionOutput {
37975	s.ActionName = &v
37976	return s
37977}
37978
37979// SetActionParams sets the ActionParams field's value.
37980func (s *DescribeMitigationActionOutput) SetActionParams(v *MitigationActionParams) *DescribeMitigationActionOutput {
37981	s.ActionParams = v
37982	return s
37983}
37984
37985// SetActionType sets the ActionType field's value.
37986func (s *DescribeMitigationActionOutput) SetActionType(v string) *DescribeMitigationActionOutput {
37987	s.ActionType = &v
37988	return s
37989}
37990
37991// SetCreationDate sets the CreationDate field's value.
37992func (s *DescribeMitigationActionOutput) SetCreationDate(v time.Time) *DescribeMitigationActionOutput {
37993	s.CreationDate = &v
37994	return s
37995}
37996
37997// SetLastModifiedDate sets the LastModifiedDate field's value.
37998func (s *DescribeMitigationActionOutput) SetLastModifiedDate(v time.Time) *DescribeMitigationActionOutput {
37999	s.LastModifiedDate = &v
38000	return s
38001}
38002
38003// SetRoleArn sets the RoleArn field's value.
38004func (s *DescribeMitigationActionOutput) SetRoleArn(v string) *DescribeMitigationActionOutput {
38005	s.RoleArn = &v
38006	return s
38007}
38008
38009type DescribeProvisioningTemplateInput struct {
38010	_ struct{} `type:"structure"`
38011
38012	// The name of the fleet provisioning template.
38013	//
38014	// TemplateName is a required field
38015	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
38016}
38017
38018// String returns the string representation
38019func (s DescribeProvisioningTemplateInput) String() string {
38020	return awsutil.Prettify(s)
38021}
38022
38023// GoString returns the string representation
38024func (s DescribeProvisioningTemplateInput) GoString() string {
38025	return s.String()
38026}
38027
38028// Validate inspects the fields of the type to determine if they are valid.
38029func (s *DescribeProvisioningTemplateInput) Validate() error {
38030	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateInput"}
38031	if s.TemplateName == nil {
38032		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
38033	}
38034	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
38035		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
38036	}
38037
38038	if invalidParams.Len() > 0 {
38039		return invalidParams
38040	}
38041	return nil
38042}
38043
38044// SetTemplateName sets the TemplateName field's value.
38045func (s *DescribeProvisioningTemplateInput) SetTemplateName(v string) *DescribeProvisioningTemplateInput {
38046	s.TemplateName = &v
38047	return s
38048}
38049
38050type DescribeProvisioningTemplateOutput struct {
38051	_ struct{} `type:"structure"`
38052
38053	// The date when the fleet provisioning template was created.
38054	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
38055
38056	// The default fleet template version ID.
38057	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
38058
38059	// The description of the fleet provisioning template.
38060	Description *string `locationName:"description" type:"string"`
38061
38062	// True if the fleet provisioning template is enabled, otherwise false.
38063	Enabled *bool `locationName:"enabled" type:"boolean"`
38064
38065	// The date when the fleet provisioning template was last modified.
38066	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
38067
38068	// Gets information about a pre-provisioned hook.
38069	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
38070
38071	// The ARN of the role associated with the provisioning template. This IoT role
38072	// grants permission to provision a device.
38073	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
38074
38075	// The ARN of the fleet provisioning template.
38076	TemplateArn *string `locationName:"templateArn" type:"string"`
38077
38078	// The JSON formatted contents of the fleet provisioning template.
38079	TemplateBody *string `locationName:"templateBody" type:"string"`
38080
38081	// The name of the fleet provisioning template.
38082	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
38083}
38084
38085// String returns the string representation
38086func (s DescribeProvisioningTemplateOutput) String() string {
38087	return awsutil.Prettify(s)
38088}
38089
38090// GoString returns the string representation
38091func (s DescribeProvisioningTemplateOutput) GoString() string {
38092	return s.String()
38093}
38094
38095// SetCreationDate sets the CreationDate field's value.
38096func (s *DescribeProvisioningTemplateOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateOutput {
38097	s.CreationDate = &v
38098	return s
38099}
38100
38101// SetDefaultVersionId sets the DefaultVersionId field's value.
38102func (s *DescribeProvisioningTemplateOutput) SetDefaultVersionId(v int64) *DescribeProvisioningTemplateOutput {
38103	s.DefaultVersionId = &v
38104	return s
38105}
38106
38107// SetDescription sets the Description field's value.
38108func (s *DescribeProvisioningTemplateOutput) SetDescription(v string) *DescribeProvisioningTemplateOutput {
38109	s.Description = &v
38110	return s
38111}
38112
38113// SetEnabled sets the Enabled field's value.
38114func (s *DescribeProvisioningTemplateOutput) SetEnabled(v bool) *DescribeProvisioningTemplateOutput {
38115	s.Enabled = &v
38116	return s
38117}
38118
38119// SetLastModifiedDate sets the LastModifiedDate field's value.
38120func (s *DescribeProvisioningTemplateOutput) SetLastModifiedDate(v time.Time) *DescribeProvisioningTemplateOutput {
38121	s.LastModifiedDate = &v
38122	return s
38123}
38124
38125// SetPreProvisioningHook sets the PreProvisioningHook field's value.
38126func (s *DescribeProvisioningTemplateOutput) SetPreProvisioningHook(v *ProvisioningHook) *DescribeProvisioningTemplateOutput {
38127	s.PreProvisioningHook = v
38128	return s
38129}
38130
38131// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
38132func (s *DescribeProvisioningTemplateOutput) SetProvisioningRoleArn(v string) *DescribeProvisioningTemplateOutput {
38133	s.ProvisioningRoleArn = &v
38134	return s
38135}
38136
38137// SetTemplateArn sets the TemplateArn field's value.
38138func (s *DescribeProvisioningTemplateOutput) SetTemplateArn(v string) *DescribeProvisioningTemplateOutput {
38139	s.TemplateArn = &v
38140	return s
38141}
38142
38143// SetTemplateBody sets the TemplateBody field's value.
38144func (s *DescribeProvisioningTemplateOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateOutput {
38145	s.TemplateBody = &v
38146	return s
38147}
38148
38149// SetTemplateName sets the TemplateName field's value.
38150func (s *DescribeProvisioningTemplateOutput) SetTemplateName(v string) *DescribeProvisioningTemplateOutput {
38151	s.TemplateName = &v
38152	return s
38153}
38154
38155type DescribeProvisioningTemplateVersionInput struct {
38156	_ struct{} `type:"structure"`
38157
38158	// The template name.
38159	//
38160	// TemplateName is a required field
38161	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
38162
38163	// The fleet provisioning template version ID.
38164	//
38165	// VersionId is a required field
38166	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
38167}
38168
38169// String returns the string representation
38170func (s DescribeProvisioningTemplateVersionInput) String() string {
38171	return awsutil.Prettify(s)
38172}
38173
38174// GoString returns the string representation
38175func (s DescribeProvisioningTemplateVersionInput) GoString() string {
38176	return s.String()
38177}
38178
38179// Validate inspects the fields of the type to determine if they are valid.
38180func (s *DescribeProvisioningTemplateVersionInput) Validate() error {
38181	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateVersionInput"}
38182	if s.TemplateName == nil {
38183		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
38184	}
38185	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
38186		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
38187	}
38188	if s.VersionId == nil {
38189		invalidParams.Add(request.NewErrParamRequired("VersionId"))
38190	}
38191
38192	if invalidParams.Len() > 0 {
38193		return invalidParams
38194	}
38195	return nil
38196}
38197
38198// SetTemplateName sets the TemplateName field's value.
38199func (s *DescribeProvisioningTemplateVersionInput) SetTemplateName(v string) *DescribeProvisioningTemplateVersionInput {
38200	s.TemplateName = &v
38201	return s
38202}
38203
38204// SetVersionId sets the VersionId field's value.
38205func (s *DescribeProvisioningTemplateVersionInput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionInput {
38206	s.VersionId = &v
38207	return s
38208}
38209
38210type DescribeProvisioningTemplateVersionOutput struct {
38211	_ struct{} `type:"structure"`
38212
38213	// The date when the fleet provisioning template version was created.
38214	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
38215
38216	// True if the fleet provisioning template version is the default version.
38217	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
38218
38219	// The JSON formatted contents of the fleet provisioning template version.
38220	TemplateBody *string `locationName:"templateBody" type:"string"`
38221
38222	// The fleet provisioning template version ID.
38223	VersionId *int64 `locationName:"versionId" type:"integer"`
38224}
38225
38226// String returns the string representation
38227func (s DescribeProvisioningTemplateVersionOutput) String() string {
38228	return awsutil.Prettify(s)
38229}
38230
38231// GoString returns the string representation
38232func (s DescribeProvisioningTemplateVersionOutput) GoString() string {
38233	return s.String()
38234}
38235
38236// SetCreationDate sets the CreationDate field's value.
38237func (s *DescribeProvisioningTemplateVersionOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateVersionOutput {
38238	s.CreationDate = &v
38239	return s
38240}
38241
38242// SetIsDefaultVersion sets the IsDefaultVersion field's value.
38243func (s *DescribeProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *DescribeProvisioningTemplateVersionOutput {
38244	s.IsDefaultVersion = &v
38245	return s
38246}
38247
38248// SetTemplateBody sets the TemplateBody field's value.
38249func (s *DescribeProvisioningTemplateVersionOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateVersionOutput {
38250	s.TemplateBody = &v
38251	return s
38252}
38253
38254// SetVersionId sets the VersionId field's value.
38255func (s *DescribeProvisioningTemplateVersionOutput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionOutput {
38256	s.VersionId = &v
38257	return s
38258}
38259
38260type DescribeRoleAliasInput struct {
38261	_ struct{} `type:"structure"`
38262
38263	// The role alias to describe.
38264	//
38265	// RoleAlias is a required field
38266	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
38267}
38268
38269// String returns the string representation
38270func (s DescribeRoleAliasInput) String() string {
38271	return awsutil.Prettify(s)
38272}
38273
38274// GoString returns the string representation
38275func (s DescribeRoleAliasInput) GoString() string {
38276	return s.String()
38277}
38278
38279// Validate inspects the fields of the type to determine if they are valid.
38280func (s *DescribeRoleAliasInput) Validate() error {
38281	invalidParams := request.ErrInvalidParams{Context: "DescribeRoleAliasInput"}
38282	if s.RoleAlias == nil {
38283		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
38284	}
38285	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
38286		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
38287	}
38288
38289	if invalidParams.Len() > 0 {
38290		return invalidParams
38291	}
38292	return nil
38293}
38294
38295// SetRoleAlias sets the RoleAlias field's value.
38296func (s *DescribeRoleAliasInput) SetRoleAlias(v string) *DescribeRoleAliasInput {
38297	s.RoleAlias = &v
38298	return s
38299}
38300
38301type DescribeRoleAliasOutput struct {
38302	_ struct{} `type:"structure"`
38303
38304	// The role alias description.
38305	RoleAliasDescription *RoleAliasDescription `locationName:"roleAliasDescription" type:"structure"`
38306}
38307
38308// String returns the string representation
38309func (s DescribeRoleAliasOutput) String() string {
38310	return awsutil.Prettify(s)
38311}
38312
38313// GoString returns the string representation
38314func (s DescribeRoleAliasOutput) GoString() string {
38315	return s.String()
38316}
38317
38318// SetRoleAliasDescription sets the RoleAliasDescription field's value.
38319func (s *DescribeRoleAliasOutput) SetRoleAliasDescription(v *RoleAliasDescription) *DescribeRoleAliasOutput {
38320	s.RoleAliasDescription = v
38321	return s
38322}
38323
38324type DescribeScheduledAuditInput struct {
38325	_ struct{} `type:"structure"`
38326
38327	// The name of the scheduled audit whose information you want to get.
38328	//
38329	// ScheduledAuditName is a required field
38330	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
38331}
38332
38333// String returns the string representation
38334func (s DescribeScheduledAuditInput) String() string {
38335	return awsutil.Prettify(s)
38336}
38337
38338// GoString returns the string representation
38339func (s DescribeScheduledAuditInput) GoString() string {
38340	return s.String()
38341}
38342
38343// Validate inspects the fields of the type to determine if they are valid.
38344func (s *DescribeScheduledAuditInput) Validate() error {
38345	invalidParams := request.ErrInvalidParams{Context: "DescribeScheduledAuditInput"}
38346	if s.ScheduledAuditName == nil {
38347		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
38348	}
38349	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
38350		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
38351	}
38352
38353	if invalidParams.Len() > 0 {
38354		return invalidParams
38355	}
38356	return nil
38357}
38358
38359// SetScheduledAuditName sets the ScheduledAuditName field's value.
38360func (s *DescribeScheduledAuditInput) SetScheduledAuditName(v string) *DescribeScheduledAuditInput {
38361	s.ScheduledAuditName = &v
38362	return s
38363}
38364
38365type DescribeScheduledAuditOutput struct {
38366	_ struct{} `type:"structure"`
38367
38368	// The day of the month on which the scheduled audit takes place. This is will
38369	// be 1 through 31 or LAST. If days 29-31 are specified, and the month does
38370	// not have that many days, the audit takes place on the LAST day of the month.
38371	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
38372
38373	// The day of the week on which the scheduled audit takes place, either one
38374	// of SUN, MON, TUE, WED, THU, FRI, or SAT.
38375	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
38376
38377	// How often the scheduled audit takes place, either one of DAILY, WEEKLY, BIWEEKLY,
38378	// or MONTHLY. The start time of each audit is determined by the system.
38379	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
38380
38381	// The ARN of the scheduled audit.
38382	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
38383
38384	// The name of the scheduled audit.
38385	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
38386
38387	// Which checks are performed during the scheduled audit. Checks must be enabled
38388	// for your account. (Use DescribeAccountAuditConfiguration to see the list
38389	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
38390	// to select which checks are enabled.)
38391	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
38392}
38393
38394// String returns the string representation
38395func (s DescribeScheduledAuditOutput) String() string {
38396	return awsutil.Prettify(s)
38397}
38398
38399// GoString returns the string representation
38400func (s DescribeScheduledAuditOutput) GoString() string {
38401	return s.String()
38402}
38403
38404// SetDayOfMonth sets the DayOfMonth field's value.
38405func (s *DescribeScheduledAuditOutput) SetDayOfMonth(v string) *DescribeScheduledAuditOutput {
38406	s.DayOfMonth = &v
38407	return s
38408}
38409
38410// SetDayOfWeek sets the DayOfWeek field's value.
38411func (s *DescribeScheduledAuditOutput) SetDayOfWeek(v string) *DescribeScheduledAuditOutput {
38412	s.DayOfWeek = &v
38413	return s
38414}
38415
38416// SetFrequency sets the Frequency field's value.
38417func (s *DescribeScheduledAuditOutput) SetFrequency(v string) *DescribeScheduledAuditOutput {
38418	s.Frequency = &v
38419	return s
38420}
38421
38422// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
38423func (s *DescribeScheduledAuditOutput) SetScheduledAuditArn(v string) *DescribeScheduledAuditOutput {
38424	s.ScheduledAuditArn = &v
38425	return s
38426}
38427
38428// SetScheduledAuditName sets the ScheduledAuditName field's value.
38429func (s *DescribeScheduledAuditOutput) SetScheduledAuditName(v string) *DescribeScheduledAuditOutput {
38430	s.ScheduledAuditName = &v
38431	return s
38432}
38433
38434// SetTargetCheckNames sets the TargetCheckNames field's value.
38435func (s *DescribeScheduledAuditOutput) SetTargetCheckNames(v []*string) *DescribeScheduledAuditOutput {
38436	s.TargetCheckNames = v
38437	return s
38438}
38439
38440type DescribeSecurityProfileInput struct {
38441	_ struct{} `type:"structure"`
38442
38443	// The name of the security profile whose information you want to get.
38444	//
38445	// SecurityProfileName is a required field
38446	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
38447}
38448
38449// String returns the string representation
38450func (s DescribeSecurityProfileInput) String() string {
38451	return awsutil.Prettify(s)
38452}
38453
38454// GoString returns the string representation
38455func (s DescribeSecurityProfileInput) GoString() string {
38456	return s.String()
38457}
38458
38459// Validate inspects the fields of the type to determine if they are valid.
38460func (s *DescribeSecurityProfileInput) Validate() error {
38461	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityProfileInput"}
38462	if s.SecurityProfileName == nil {
38463		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
38464	}
38465	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
38466		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
38467	}
38468
38469	if invalidParams.Len() > 0 {
38470		return invalidParams
38471	}
38472	return nil
38473}
38474
38475// SetSecurityProfileName sets the SecurityProfileName field's value.
38476func (s *DescribeSecurityProfileInput) SetSecurityProfileName(v string) *DescribeSecurityProfileInput {
38477	s.SecurityProfileName = &v
38478	return s
38479}
38480
38481type DescribeSecurityProfileOutput struct {
38482	_ struct{} `type:"structure"`
38483
38484	// Please use DescribeSecurityProfileResponse$additionalMetricsToRetainV2 instead.
38485	//
38486	// A list of metrics whose data is retained (stored). By default, data is retained
38487	// for any metric used in the profile's behaviors, but it is also retained for
38488	// any metric specified here.
38489	//
38490	// Deprecated: Use additionalMetricsToRetainV2.
38491	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
38492
38493	// A list of metrics whose data is retained (stored). By default, data is retained
38494	// for any metric used in the profile's behaviors, but it is also retained for
38495	// any metric specified here.
38496	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
38497
38498	// Where the alerts are sent. (Alerts are always sent to the console.)
38499	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
38500
38501	// Specifies the behaviors that, when violated by a device (thing), cause an
38502	// alert.
38503	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
38504
38505	// The time the security profile was created.
38506	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
38507
38508	// The time the security profile was last modified.
38509	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
38510
38511	// The ARN of the security profile.
38512	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
38513
38514	// A description of the security profile (associated with the security profile
38515	// when it was created or updated).
38516	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
38517
38518	// The name of the security profile.
38519	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
38520
38521	// The version of the security profile. A new version is generated whenever
38522	// the security profile is updated.
38523	Version *int64 `locationName:"version" type:"long"`
38524}
38525
38526// String returns the string representation
38527func (s DescribeSecurityProfileOutput) String() string {
38528	return awsutil.Prettify(s)
38529}
38530
38531// GoString returns the string representation
38532func (s DescribeSecurityProfileOutput) GoString() string {
38533	return s.String()
38534}
38535
38536// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
38537func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *DescribeSecurityProfileOutput {
38538	s.AdditionalMetricsToRetain = v
38539	return s
38540}
38541
38542// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
38543func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *DescribeSecurityProfileOutput {
38544	s.AdditionalMetricsToRetainV2 = v
38545	return s
38546}
38547
38548// SetAlertTargets sets the AlertTargets field's value.
38549func (s *DescribeSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *DescribeSecurityProfileOutput {
38550	s.AlertTargets = v
38551	return s
38552}
38553
38554// SetBehaviors sets the Behaviors field's value.
38555func (s *DescribeSecurityProfileOutput) SetBehaviors(v []*Behavior) *DescribeSecurityProfileOutput {
38556	s.Behaviors = v
38557	return s
38558}
38559
38560// SetCreationDate sets the CreationDate field's value.
38561func (s *DescribeSecurityProfileOutput) SetCreationDate(v time.Time) *DescribeSecurityProfileOutput {
38562	s.CreationDate = &v
38563	return s
38564}
38565
38566// SetLastModifiedDate sets the LastModifiedDate field's value.
38567func (s *DescribeSecurityProfileOutput) SetLastModifiedDate(v time.Time) *DescribeSecurityProfileOutput {
38568	s.LastModifiedDate = &v
38569	return s
38570}
38571
38572// SetSecurityProfileArn sets the SecurityProfileArn field's value.
38573func (s *DescribeSecurityProfileOutput) SetSecurityProfileArn(v string) *DescribeSecurityProfileOutput {
38574	s.SecurityProfileArn = &v
38575	return s
38576}
38577
38578// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
38579func (s *DescribeSecurityProfileOutput) SetSecurityProfileDescription(v string) *DescribeSecurityProfileOutput {
38580	s.SecurityProfileDescription = &v
38581	return s
38582}
38583
38584// SetSecurityProfileName sets the SecurityProfileName field's value.
38585func (s *DescribeSecurityProfileOutput) SetSecurityProfileName(v string) *DescribeSecurityProfileOutput {
38586	s.SecurityProfileName = &v
38587	return s
38588}
38589
38590// SetVersion sets the Version field's value.
38591func (s *DescribeSecurityProfileOutput) SetVersion(v int64) *DescribeSecurityProfileOutput {
38592	s.Version = &v
38593	return s
38594}
38595
38596type DescribeStreamInput struct {
38597	_ struct{} `type:"structure"`
38598
38599	// The stream ID.
38600	//
38601	// StreamId is a required field
38602	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
38603}
38604
38605// String returns the string representation
38606func (s DescribeStreamInput) String() string {
38607	return awsutil.Prettify(s)
38608}
38609
38610// GoString returns the string representation
38611func (s DescribeStreamInput) GoString() string {
38612	return s.String()
38613}
38614
38615// Validate inspects the fields of the type to determine if they are valid.
38616func (s *DescribeStreamInput) Validate() error {
38617	invalidParams := request.ErrInvalidParams{Context: "DescribeStreamInput"}
38618	if s.StreamId == nil {
38619		invalidParams.Add(request.NewErrParamRequired("StreamId"))
38620	}
38621	if s.StreamId != nil && len(*s.StreamId) < 1 {
38622		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
38623	}
38624
38625	if invalidParams.Len() > 0 {
38626		return invalidParams
38627	}
38628	return nil
38629}
38630
38631// SetStreamId sets the StreamId field's value.
38632func (s *DescribeStreamInput) SetStreamId(v string) *DescribeStreamInput {
38633	s.StreamId = &v
38634	return s
38635}
38636
38637type DescribeStreamOutput struct {
38638	_ struct{} `type:"structure"`
38639
38640	// Information about the stream.
38641	StreamInfo *StreamInfo `locationName:"streamInfo" type:"structure"`
38642}
38643
38644// String returns the string representation
38645func (s DescribeStreamOutput) String() string {
38646	return awsutil.Prettify(s)
38647}
38648
38649// GoString returns the string representation
38650func (s DescribeStreamOutput) GoString() string {
38651	return s.String()
38652}
38653
38654// SetStreamInfo sets the StreamInfo field's value.
38655func (s *DescribeStreamOutput) SetStreamInfo(v *StreamInfo) *DescribeStreamOutput {
38656	s.StreamInfo = v
38657	return s
38658}
38659
38660type DescribeThingGroupInput struct {
38661	_ struct{} `type:"structure"`
38662
38663	// The name of the thing group.
38664	//
38665	// ThingGroupName is a required field
38666	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
38667}
38668
38669// String returns the string representation
38670func (s DescribeThingGroupInput) String() string {
38671	return awsutil.Prettify(s)
38672}
38673
38674// GoString returns the string representation
38675func (s DescribeThingGroupInput) GoString() string {
38676	return s.String()
38677}
38678
38679// Validate inspects the fields of the type to determine if they are valid.
38680func (s *DescribeThingGroupInput) Validate() error {
38681	invalidParams := request.ErrInvalidParams{Context: "DescribeThingGroupInput"}
38682	if s.ThingGroupName == nil {
38683		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
38684	}
38685	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
38686		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
38687	}
38688
38689	if invalidParams.Len() > 0 {
38690		return invalidParams
38691	}
38692	return nil
38693}
38694
38695// SetThingGroupName sets the ThingGroupName field's value.
38696func (s *DescribeThingGroupInput) SetThingGroupName(v string) *DescribeThingGroupInput {
38697	s.ThingGroupName = &v
38698	return s
38699}
38700
38701type DescribeThingGroupOutput struct {
38702	_ struct{} `type:"structure"`
38703
38704	// The dynamic thing group index name.
38705	IndexName *string `locationName:"indexName" min:"1" type:"string"`
38706
38707	// The dynamic thing group search query string.
38708	QueryString *string `locationName:"queryString" min:"1" type:"string"`
38709
38710	// The dynamic thing group query version.
38711	QueryVersion *string `locationName:"queryVersion" type:"string"`
38712
38713	// The dynamic thing group status.
38714	Status *string `locationName:"status" type:"string" enum:"DynamicGroupStatus"`
38715
38716	// The thing group ARN.
38717	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
38718
38719	// The thing group ID.
38720	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
38721
38722	// Thing group metadata.
38723	ThingGroupMetadata *ThingGroupMetadata `locationName:"thingGroupMetadata" type:"structure"`
38724
38725	// The name of the thing group.
38726	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
38727
38728	// The thing group properties.
38729	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
38730
38731	// The version of the thing group.
38732	Version *int64 `locationName:"version" type:"long"`
38733}
38734
38735// String returns the string representation
38736func (s DescribeThingGroupOutput) String() string {
38737	return awsutil.Prettify(s)
38738}
38739
38740// GoString returns the string representation
38741func (s DescribeThingGroupOutput) GoString() string {
38742	return s.String()
38743}
38744
38745// SetIndexName sets the IndexName field's value.
38746func (s *DescribeThingGroupOutput) SetIndexName(v string) *DescribeThingGroupOutput {
38747	s.IndexName = &v
38748	return s
38749}
38750
38751// SetQueryString sets the QueryString field's value.
38752func (s *DescribeThingGroupOutput) SetQueryString(v string) *DescribeThingGroupOutput {
38753	s.QueryString = &v
38754	return s
38755}
38756
38757// SetQueryVersion sets the QueryVersion field's value.
38758func (s *DescribeThingGroupOutput) SetQueryVersion(v string) *DescribeThingGroupOutput {
38759	s.QueryVersion = &v
38760	return s
38761}
38762
38763// SetStatus sets the Status field's value.
38764func (s *DescribeThingGroupOutput) SetStatus(v string) *DescribeThingGroupOutput {
38765	s.Status = &v
38766	return s
38767}
38768
38769// SetThingGroupArn sets the ThingGroupArn field's value.
38770func (s *DescribeThingGroupOutput) SetThingGroupArn(v string) *DescribeThingGroupOutput {
38771	s.ThingGroupArn = &v
38772	return s
38773}
38774
38775// SetThingGroupId sets the ThingGroupId field's value.
38776func (s *DescribeThingGroupOutput) SetThingGroupId(v string) *DescribeThingGroupOutput {
38777	s.ThingGroupId = &v
38778	return s
38779}
38780
38781// SetThingGroupMetadata sets the ThingGroupMetadata field's value.
38782func (s *DescribeThingGroupOutput) SetThingGroupMetadata(v *ThingGroupMetadata) *DescribeThingGroupOutput {
38783	s.ThingGroupMetadata = v
38784	return s
38785}
38786
38787// SetThingGroupName sets the ThingGroupName field's value.
38788func (s *DescribeThingGroupOutput) SetThingGroupName(v string) *DescribeThingGroupOutput {
38789	s.ThingGroupName = &v
38790	return s
38791}
38792
38793// SetThingGroupProperties sets the ThingGroupProperties field's value.
38794func (s *DescribeThingGroupOutput) SetThingGroupProperties(v *ThingGroupProperties) *DescribeThingGroupOutput {
38795	s.ThingGroupProperties = v
38796	return s
38797}
38798
38799// SetVersion sets the Version field's value.
38800func (s *DescribeThingGroupOutput) SetVersion(v int64) *DescribeThingGroupOutput {
38801	s.Version = &v
38802	return s
38803}
38804
38805// The input for the DescribeThing operation.
38806type DescribeThingInput struct {
38807	_ struct{} `type:"structure"`
38808
38809	// The name of the thing.
38810	//
38811	// ThingName is a required field
38812	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
38813}
38814
38815// String returns the string representation
38816func (s DescribeThingInput) String() string {
38817	return awsutil.Prettify(s)
38818}
38819
38820// GoString returns the string representation
38821func (s DescribeThingInput) GoString() string {
38822	return s.String()
38823}
38824
38825// Validate inspects the fields of the type to determine if they are valid.
38826func (s *DescribeThingInput) Validate() error {
38827	invalidParams := request.ErrInvalidParams{Context: "DescribeThingInput"}
38828	if s.ThingName == nil {
38829		invalidParams.Add(request.NewErrParamRequired("ThingName"))
38830	}
38831	if s.ThingName != nil && len(*s.ThingName) < 1 {
38832		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
38833	}
38834
38835	if invalidParams.Len() > 0 {
38836		return invalidParams
38837	}
38838	return nil
38839}
38840
38841// SetThingName sets the ThingName field's value.
38842func (s *DescribeThingInput) SetThingName(v string) *DescribeThingInput {
38843	s.ThingName = &v
38844	return s
38845}
38846
38847// The output from the DescribeThing operation.
38848type DescribeThingOutput struct {
38849	_ struct{} `type:"structure"`
38850
38851	// The thing attributes.
38852	Attributes map[string]*string `locationName:"attributes" type:"map"`
38853
38854	// The name of the billing group the thing belongs to.
38855	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
38856
38857	// The default MQTT client ID. For a typical device, the thing name is also
38858	// used as the default MQTT client ID. Although we don’t require a mapping
38859	// between a thing's registry name and its use of MQTT client IDs, certificates,
38860	// or shadow state, we recommend that you choose a thing name and use it as
38861	// the MQTT client ID for the registry and the Device Shadow service.
38862	//
38863	// This lets you better organize your IoT fleet without removing the flexibility
38864	// of the underlying device certificate model or shadows.
38865	DefaultClientId *string `locationName:"defaultClientId" type:"string"`
38866
38867	// The ARN of the thing to describe.
38868	ThingArn *string `locationName:"thingArn" type:"string"`
38869
38870	// The ID of the thing to describe.
38871	ThingId *string `locationName:"thingId" type:"string"`
38872
38873	// The name of the thing.
38874	ThingName *string `locationName:"thingName" min:"1" type:"string"`
38875
38876	// The thing type name.
38877	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
38878
38879	// The current version of the thing record in the registry.
38880	//
38881	// To avoid unintentional changes to the information in the registry, you can
38882	// pass the version information in the expectedVersion parameter of the UpdateThing
38883	// and DeleteThing calls.
38884	Version *int64 `locationName:"version" type:"long"`
38885}
38886
38887// String returns the string representation
38888func (s DescribeThingOutput) String() string {
38889	return awsutil.Prettify(s)
38890}
38891
38892// GoString returns the string representation
38893func (s DescribeThingOutput) GoString() string {
38894	return s.String()
38895}
38896
38897// SetAttributes sets the Attributes field's value.
38898func (s *DescribeThingOutput) SetAttributes(v map[string]*string) *DescribeThingOutput {
38899	s.Attributes = v
38900	return s
38901}
38902
38903// SetBillingGroupName sets the BillingGroupName field's value.
38904func (s *DescribeThingOutput) SetBillingGroupName(v string) *DescribeThingOutput {
38905	s.BillingGroupName = &v
38906	return s
38907}
38908
38909// SetDefaultClientId sets the DefaultClientId field's value.
38910func (s *DescribeThingOutput) SetDefaultClientId(v string) *DescribeThingOutput {
38911	s.DefaultClientId = &v
38912	return s
38913}
38914
38915// SetThingArn sets the ThingArn field's value.
38916func (s *DescribeThingOutput) SetThingArn(v string) *DescribeThingOutput {
38917	s.ThingArn = &v
38918	return s
38919}
38920
38921// SetThingId sets the ThingId field's value.
38922func (s *DescribeThingOutput) SetThingId(v string) *DescribeThingOutput {
38923	s.ThingId = &v
38924	return s
38925}
38926
38927// SetThingName sets the ThingName field's value.
38928func (s *DescribeThingOutput) SetThingName(v string) *DescribeThingOutput {
38929	s.ThingName = &v
38930	return s
38931}
38932
38933// SetThingTypeName sets the ThingTypeName field's value.
38934func (s *DescribeThingOutput) SetThingTypeName(v string) *DescribeThingOutput {
38935	s.ThingTypeName = &v
38936	return s
38937}
38938
38939// SetVersion sets the Version field's value.
38940func (s *DescribeThingOutput) SetVersion(v int64) *DescribeThingOutput {
38941	s.Version = &v
38942	return s
38943}
38944
38945type DescribeThingRegistrationTaskInput struct {
38946	_ struct{} `type:"structure"`
38947
38948	// The task ID.
38949	//
38950	// TaskId is a required field
38951	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
38952}
38953
38954// String returns the string representation
38955func (s DescribeThingRegistrationTaskInput) String() string {
38956	return awsutil.Prettify(s)
38957}
38958
38959// GoString returns the string representation
38960func (s DescribeThingRegistrationTaskInput) GoString() string {
38961	return s.String()
38962}
38963
38964// Validate inspects the fields of the type to determine if they are valid.
38965func (s *DescribeThingRegistrationTaskInput) Validate() error {
38966	invalidParams := request.ErrInvalidParams{Context: "DescribeThingRegistrationTaskInput"}
38967	if s.TaskId == nil {
38968		invalidParams.Add(request.NewErrParamRequired("TaskId"))
38969	}
38970	if s.TaskId != nil && len(*s.TaskId) < 1 {
38971		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
38972	}
38973
38974	if invalidParams.Len() > 0 {
38975		return invalidParams
38976	}
38977	return nil
38978}
38979
38980// SetTaskId sets the TaskId field's value.
38981func (s *DescribeThingRegistrationTaskInput) SetTaskId(v string) *DescribeThingRegistrationTaskInput {
38982	s.TaskId = &v
38983	return s
38984}
38985
38986type DescribeThingRegistrationTaskOutput struct {
38987	_ struct{} `type:"structure"`
38988
38989	// The task creation date.
38990	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
38991
38992	// The number of things that failed to be provisioned.
38993	FailureCount *int64 `locationName:"failureCount" type:"integer"`
38994
38995	// The S3 bucket that contains the input file.
38996	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string"`
38997
38998	// The input file key.
38999	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string"`
39000
39001	// The date when the task was last modified.
39002	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
39003
39004	// The message.
39005	Message *string `locationName:"message" type:"string"`
39006
39007	// The progress of the bulk provisioning task expressed as a percentage.
39008	PercentageProgress *int64 `locationName:"percentageProgress" type:"integer"`
39009
39010	// The role ARN that grants access to the input file bucket.
39011	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
39012
39013	// The status of the bulk thing provisioning task.
39014	Status *string `locationName:"status" type:"string" enum:"Status"`
39015
39016	// The number of things successfully provisioned.
39017	SuccessCount *int64 `locationName:"successCount" type:"integer"`
39018
39019	// The task ID.
39020	TaskId *string `locationName:"taskId" type:"string"`
39021
39022	// The task's template.
39023	TemplateBody *string `locationName:"templateBody" type:"string"`
39024}
39025
39026// String returns the string representation
39027func (s DescribeThingRegistrationTaskOutput) String() string {
39028	return awsutil.Prettify(s)
39029}
39030
39031// GoString returns the string representation
39032func (s DescribeThingRegistrationTaskOutput) GoString() string {
39033	return s.String()
39034}
39035
39036// SetCreationDate sets the CreationDate field's value.
39037func (s *DescribeThingRegistrationTaskOutput) SetCreationDate(v time.Time) *DescribeThingRegistrationTaskOutput {
39038	s.CreationDate = &v
39039	return s
39040}
39041
39042// SetFailureCount sets the FailureCount field's value.
39043func (s *DescribeThingRegistrationTaskOutput) SetFailureCount(v int64) *DescribeThingRegistrationTaskOutput {
39044	s.FailureCount = &v
39045	return s
39046}
39047
39048// SetInputFileBucket sets the InputFileBucket field's value.
39049func (s *DescribeThingRegistrationTaskOutput) SetInputFileBucket(v string) *DescribeThingRegistrationTaskOutput {
39050	s.InputFileBucket = &v
39051	return s
39052}
39053
39054// SetInputFileKey sets the InputFileKey field's value.
39055func (s *DescribeThingRegistrationTaskOutput) SetInputFileKey(v string) *DescribeThingRegistrationTaskOutput {
39056	s.InputFileKey = &v
39057	return s
39058}
39059
39060// SetLastModifiedDate sets the LastModifiedDate field's value.
39061func (s *DescribeThingRegistrationTaskOutput) SetLastModifiedDate(v time.Time) *DescribeThingRegistrationTaskOutput {
39062	s.LastModifiedDate = &v
39063	return s
39064}
39065
39066// SetMessage sets the Message field's value.
39067func (s *DescribeThingRegistrationTaskOutput) SetMessage(v string) *DescribeThingRegistrationTaskOutput {
39068	s.Message = &v
39069	return s
39070}
39071
39072// SetPercentageProgress sets the PercentageProgress field's value.
39073func (s *DescribeThingRegistrationTaskOutput) SetPercentageProgress(v int64) *DescribeThingRegistrationTaskOutput {
39074	s.PercentageProgress = &v
39075	return s
39076}
39077
39078// SetRoleArn sets the RoleArn field's value.
39079func (s *DescribeThingRegistrationTaskOutput) SetRoleArn(v string) *DescribeThingRegistrationTaskOutput {
39080	s.RoleArn = &v
39081	return s
39082}
39083
39084// SetStatus sets the Status field's value.
39085func (s *DescribeThingRegistrationTaskOutput) SetStatus(v string) *DescribeThingRegistrationTaskOutput {
39086	s.Status = &v
39087	return s
39088}
39089
39090// SetSuccessCount sets the SuccessCount field's value.
39091func (s *DescribeThingRegistrationTaskOutput) SetSuccessCount(v int64) *DescribeThingRegistrationTaskOutput {
39092	s.SuccessCount = &v
39093	return s
39094}
39095
39096// SetTaskId sets the TaskId field's value.
39097func (s *DescribeThingRegistrationTaskOutput) SetTaskId(v string) *DescribeThingRegistrationTaskOutput {
39098	s.TaskId = &v
39099	return s
39100}
39101
39102// SetTemplateBody sets the TemplateBody field's value.
39103func (s *DescribeThingRegistrationTaskOutput) SetTemplateBody(v string) *DescribeThingRegistrationTaskOutput {
39104	s.TemplateBody = &v
39105	return s
39106}
39107
39108// The input for the DescribeThingType operation.
39109type DescribeThingTypeInput struct {
39110	_ struct{} `type:"structure"`
39111
39112	// The name of the thing type.
39113	//
39114	// ThingTypeName is a required field
39115	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
39116}
39117
39118// String returns the string representation
39119func (s DescribeThingTypeInput) String() string {
39120	return awsutil.Prettify(s)
39121}
39122
39123// GoString returns the string representation
39124func (s DescribeThingTypeInput) GoString() string {
39125	return s.String()
39126}
39127
39128// Validate inspects the fields of the type to determine if they are valid.
39129func (s *DescribeThingTypeInput) Validate() error {
39130	invalidParams := request.ErrInvalidParams{Context: "DescribeThingTypeInput"}
39131	if s.ThingTypeName == nil {
39132		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
39133	}
39134	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
39135		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
39136	}
39137
39138	if invalidParams.Len() > 0 {
39139		return invalidParams
39140	}
39141	return nil
39142}
39143
39144// SetThingTypeName sets the ThingTypeName field's value.
39145func (s *DescribeThingTypeInput) SetThingTypeName(v string) *DescribeThingTypeInput {
39146	s.ThingTypeName = &v
39147	return s
39148}
39149
39150// The output for the DescribeThingType operation.
39151type DescribeThingTypeOutput struct {
39152	_ struct{} `type:"structure"`
39153
39154	// The thing type ARN.
39155	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
39156
39157	// The thing type ID.
39158	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
39159
39160	// The ThingTypeMetadata contains additional information about the thing type
39161	// including: creation date and time, a value indicating whether the thing type
39162	// is deprecated, and a date and time when it was deprecated.
39163	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
39164
39165	// The name of the thing type.
39166	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
39167
39168	// The ThingTypeProperties contains information about the thing type including
39169	// description, and a list of searchable thing attribute names.
39170	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
39171}
39172
39173// String returns the string representation
39174func (s DescribeThingTypeOutput) String() string {
39175	return awsutil.Prettify(s)
39176}
39177
39178// GoString returns the string representation
39179func (s DescribeThingTypeOutput) GoString() string {
39180	return s.String()
39181}
39182
39183// SetThingTypeArn sets the ThingTypeArn field's value.
39184func (s *DescribeThingTypeOutput) SetThingTypeArn(v string) *DescribeThingTypeOutput {
39185	s.ThingTypeArn = &v
39186	return s
39187}
39188
39189// SetThingTypeId sets the ThingTypeId field's value.
39190func (s *DescribeThingTypeOutput) SetThingTypeId(v string) *DescribeThingTypeOutput {
39191	s.ThingTypeId = &v
39192	return s
39193}
39194
39195// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
39196func (s *DescribeThingTypeOutput) SetThingTypeMetadata(v *ThingTypeMetadata) *DescribeThingTypeOutput {
39197	s.ThingTypeMetadata = v
39198	return s
39199}
39200
39201// SetThingTypeName sets the ThingTypeName field's value.
39202func (s *DescribeThingTypeOutput) SetThingTypeName(v string) *DescribeThingTypeOutput {
39203	s.ThingTypeName = &v
39204	return s
39205}
39206
39207// SetThingTypeProperties sets the ThingTypeProperties field's value.
39208func (s *DescribeThingTypeOutput) SetThingTypeProperties(v *ThingTypeProperties) *DescribeThingTypeOutput {
39209	s.ThingTypeProperties = v
39210	return s
39211}
39212
39213// Describes the location of the updated firmware.
39214type Destination struct {
39215	_ struct{} `type:"structure"`
39216
39217	// Describes the location in S3 of the updated firmware.
39218	S3Destination *S3Destination `locationName:"s3Destination" type:"structure"`
39219}
39220
39221// String returns the string representation
39222func (s Destination) String() string {
39223	return awsutil.Prettify(s)
39224}
39225
39226// GoString returns the string representation
39227func (s Destination) GoString() string {
39228	return s.String()
39229}
39230
39231// Validate inspects the fields of the type to determine if they are valid.
39232func (s *Destination) Validate() error {
39233	invalidParams := request.ErrInvalidParams{Context: "Destination"}
39234	if s.S3Destination != nil {
39235		if err := s.S3Destination.Validate(); err != nil {
39236			invalidParams.AddNested("S3Destination", err.(request.ErrInvalidParams))
39237		}
39238	}
39239
39240	if invalidParams.Len() > 0 {
39241		return invalidParams
39242	}
39243	return nil
39244}
39245
39246// SetS3Destination sets the S3Destination field's value.
39247func (s *Destination) SetS3Destination(v *S3Destination) *Destination {
39248	s.S3Destination = v
39249	return s
39250}
39251
39252type DetachPolicyInput struct {
39253	_ struct{} `type:"structure"`
39254
39255	// The policy to detach.
39256	//
39257	// PolicyName is a required field
39258	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
39259
39260	// The target from which the policy will be detached.
39261	//
39262	// Target is a required field
39263	Target *string `locationName:"target" type:"string" required:"true"`
39264}
39265
39266// String returns the string representation
39267func (s DetachPolicyInput) String() string {
39268	return awsutil.Prettify(s)
39269}
39270
39271// GoString returns the string representation
39272func (s DetachPolicyInput) GoString() string {
39273	return s.String()
39274}
39275
39276// Validate inspects the fields of the type to determine if they are valid.
39277func (s *DetachPolicyInput) Validate() error {
39278	invalidParams := request.ErrInvalidParams{Context: "DetachPolicyInput"}
39279	if s.PolicyName == nil {
39280		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
39281	}
39282	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
39283		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
39284	}
39285	if s.Target == nil {
39286		invalidParams.Add(request.NewErrParamRequired("Target"))
39287	}
39288
39289	if invalidParams.Len() > 0 {
39290		return invalidParams
39291	}
39292	return nil
39293}
39294
39295// SetPolicyName sets the PolicyName field's value.
39296func (s *DetachPolicyInput) SetPolicyName(v string) *DetachPolicyInput {
39297	s.PolicyName = &v
39298	return s
39299}
39300
39301// SetTarget sets the Target field's value.
39302func (s *DetachPolicyInput) SetTarget(v string) *DetachPolicyInput {
39303	s.Target = &v
39304	return s
39305}
39306
39307type DetachPolicyOutput struct {
39308	_ struct{} `type:"structure"`
39309}
39310
39311// String returns the string representation
39312func (s DetachPolicyOutput) String() string {
39313	return awsutil.Prettify(s)
39314}
39315
39316// GoString returns the string representation
39317func (s DetachPolicyOutput) GoString() string {
39318	return s.String()
39319}
39320
39321// The input for the DetachPrincipalPolicy operation.
39322type DetachPrincipalPolicyInput struct {
39323	_ struct{} `type:"structure"`
39324
39325	// The name of the policy to detach.
39326	//
39327	// PolicyName is a required field
39328	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
39329
39330	// The principal.
39331	//
39332	// Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
39333	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
39334	// (region:id).
39335	//
39336	// Principal is a required field
39337	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
39338}
39339
39340// String returns the string representation
39341func (s DetachPrincipalPolicyInput) String() string {
39342	return awsutil.Prettify(s)
39343}
39344
39345// GoString returns the string representation
39346func (s DetachPrincipalPolicyInput) GoString() string {
39347	return s.String()
39348}
39349
39350// Validate inspects the fields of the type to determine if they are valid.
39351func (s *DetachPrincipalPolicyInput) Validate() error {
39352	invalidParams := request.ErrInvalidParams{Context: "DetachPrincipalPolicyInput"}
39353	if s.PolicyName == nil {
39354		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
39355	}
39356	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
39357		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
39358	}
39359	if s.Principal == nil {
39360		invalidParams.Add(request.NewErrParamRequired("Principal"))
39361	}
39362
39363	if invalidParams.Len() > 0 {
39364		return invalidParams
39365	}
39366	return nil
39367}
39368
39369// SetPolicyName sets the PolicyName field's value.
39370func (s *DetachPrincipalPolicyInput) SetPolicyName(v string) *DetachPrincipalPolicyInput {
39371	s.PolicyName = &v
39372	return s
39373}
39374
39375// SetPrincipal sets the Principal field's value.
39376func (s *DetachPrincipalPolicyInput) SetPrincipal(v string) *DetachPrincipalPolicyInput {
39377	s.Principal = &v
39378	return s
39379}
39380
39381type DetachPrincipalPolicyOutput struct {
39382	_ struct{} `type:"structure"`
39383}
39384
39385// String returns the string representation
39386func (s DetachPrincipalPolicyOutput) String() string {
39387	return awsutil.Prettify(s)
39388}
39389
39390// GoString returns the string representation
39391func (s DetachPrincipalPolicyOutput) GoString() string {
39392	return s.String()
39393}
39394
39395type DetachSecurityProfileInput struct {
39396	_ struct{} `type:"structure"`
39397
39398	// The security profile that is detached.
39399	//
39400	// SecurityProfileName is a required field
39401	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
39402
39403	// The ARN of the thing group from which the security profile is detached.
39404	//
39405	// SecurityProfileTargetArn is a required field
39406	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
39407}
39408
39409// String returns the string representation
39410func (s DetachSecurityProfileInput) String() string {
39411	return awsutil.Prettify(s)
39412}
39413
39414// GoString returns the string representation
39415func (s DetachSecurityProfileInput) GoString() string {
39416	return s.String()
39417}
39418
39419// Validate inspects the fields of the type to determine if they are valid.
39420func (s *DetachSecurityProfileInput) Validate() error {
39421	invalidParams := request.ErrInvalidParams{Context: "DetachSecurityProfileInput"}
39422	if s.SecurityProfileName == nil {
39423		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
39424	}
39425	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
39426		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
39427	}
39428	if s.SecurityProfileTargetArn == nil {
39429		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
39430	}
39431
39432	if invalidParams.Len() > 0 {
39433		return invalidParams
39434	}
39435	return nil
39436}
39437
39438// SetSecurityProfileName sets the SecurityProfileName field's value.
39439func (s *DetachSecurityProfileInput) SetSecurityProfileName(v string) *DetachSecurityProfileInput {
39440	s.SecurityProfileName = &v
39441	return s
39442}
39443
39444// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
39445func (s *DetachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *DetachSecurityProfileInput {
39446	s.SecurityProfileTargetArn = &v
39447	return s
39448}
39449
39450type DetachSecurityProfileOutput struct {
39451	_ struct{} `type:"structure"`
39452}
39453
39454// String returns the string representation
39455func (s DetachSecurityProfileOutput) String() string {
39456	return awsutil.Prettify(s)
39457}
39458
39459// GoString returns the string representation
39460func (s DetachSecurityProfileOutput) GoString() string {
39461	return s.String()
39462}
39463
39464// The input for the DetachThingPrincipal operation.
39465type DetachThingPrincipalInput struct {
39466	_ struct{} `type:"structure"`
39467
39468	// If the principal is a certificate, this value must be ARN of the certificate.
39469	// If the principal is an Amazon Cognito identity, this value must be the ID
39470	// of the Amazon Cognito identity.
39471	//
39472	// Principal is a required field
39473	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
39474
39475	// The name of the thing.
39476	//
39477	// ThingName is a required field
39478	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
39479}
39480
39481// String returns the string representation
39482func (s DetachThingPrincipalInput) String() string {
39483	return awsutil.Prettify(s)
39484}
39485
39486// GoString returns the string representation
39487func (s DetachThingPrincipalInput) GoString() string {
39488	return s.String()
39489}
39490
39491// Validate inspects the fields of the type to determine if they are valid.
39492func (s *DetachThingPrincipalInput) Validate() error {
39493	invalidParams := request.ErrInvalidParams{Context: "DetachThingPrincipalInput"}
39494	if s.Principal == nil {
39495		invalidParams.Add(request.NewErrParamRequired("Principal"))
39496	}
39497	if s.ThingName == nil {
39498		invalidParams.Add(request.NewErrParamRequired("ThingName"))
39499	}
39500	if s.ThingName != nil && len(*s.ThingName) < 1 {
39501		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
39502	}
39503
39504	if invalidParams.Len() > 0 {
39505		return invalidParams
39506	}
39507	return nil
39508}
39509
39510// SetPrincipal sets the Principal field's value.
39511func (s *DetachThingPrincipalInput) SetPrincipal(v string) *DetachThingPrincipalInput {
39512	s.Principal = &v
39513	return s
39514}
39515
39516// SetThingName sets the ThingName field's value.
39517func (s *DetachThingPrincipalInput) SetThingName(v string) *DetachThingPrincipalInput {
39518	s.ThingName = &v
39519	return s
39520}
39521
39522// The output from the DetachThingPrincipal operation.
39523type DetachThingPrincipalOutput struct {
39524	_ struct{} `type:"structure"`
39525}
39526
39527// String returns the string representation
39528func (s DetachThingPrincipalOutput) String() string {
39529	return awsutil.Prettify(s)
39530}
39531
39532// GoString returns the string representation
39533func (s DetachThingPrincipalOutput) GoString() string {
39534	return s.String()
39535}
39536
39537// Describes which mitigation actions should be executed.
39538type DetectMitigationActionExecution struct {
39539	_ struct{} `type:"structure"`
39540
39541	// The friendly name that uniquely identifies the mitigation action.
39542	ActionName *string `locationName:"actionName" type:"string"`
39543
39544	// The error code of a mitigation action.
39545	ErrorCode *string `locationName:"errorCode" type:"string"`
39546
39547	// The date a mitigation action ended.
39548	ExecutionEndDate *time.Time `locationName:"executionEndDate" type:"timestamp"`
39549
39550	// The date a mitigation action was started.
39551	ExecutionStartDate *time.Time `locationName:"executionStartDate" type:"timestamp"`
39552
39553	// The message of a mitigation action.
39554	Message *string `locationName:"message" type:"string"`
39555
39556	// The status of a mitigation action.
39557	Status *string `locationName:"status" type:"string" enum:"DetectMitigationActionExecutionStatus"`
39558
39559	// The unique identifier of the task.
39560	TaskId *string `locationName:"taskId" min:"1" type:"string"`
39561
39562	// The name of the thing.
39563	ThingName *string `locationName:"thingName" min:"1" type:"string"`
39564
39565	// The unique identifier of the violation.
39566	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
39567}
39568
39569// String returns the string representation
39570func (s DetectMitigationActionExecution) String() string {
39571	return awsutil.Prettify(s)
39572}
39573
39574// GoString returns the string representation
39575func (s DetectMitigationActionExecution) GoString() string {
39576	return s.String()
39577}
39578
39579// SetActionName sets the ActionName field's value.
39580func (s *DetectMitigationActionExecution) SetActionName(v string) *DetectMitigationActionExecution {
39581	s.ActionName = &v
39582	return s
39583}
39584
39585// SetErrorCode sets the ErrorCode field's value.
39586func (s *DetectMitigationActionExecution) SetErrorCode(v string) *DetectMitigationActionExecution {
39587	s.ErrorCode = &v
39588	return s
39589}
39590
39591// SetExecutionEndDate sets the ExecutionEndDate field's value.
39592func (s *DetectMitigationActionExecution) SetExecutionEndDate(v time.Time) *DetectMitigationActionExecution {
39593	s.ExecutionEndDate = &v
39594	return s
39595}
39596
39597// SetExecutionStartDate sets the ExecutionStartDate field's value.
39598func (s *DetectMitigationActionExecution) SetExecutionStartDate(v time.Time) *DetectMitigationActionExecution {
39599	s.ExecutionStartDate = &v
39600	return s
39601}
39602
39603// SetMessage sets the Message field's value.
39604func (s *DetectMitigationActionExecution) SetMessage(v string) *DetectMitigationActionExecution {
39605	s.Message = &v
39606	return s
39607}
39608
39609// SetStatus sets the Status field's value.
39610func (s *DetectMitigationActionExecution) SetStatus(v string) *DetectMitigationActionExecution {
39611	s.Status = &v
39612	return s
39613}
39614
39615// SetTaskId sets the TaskId field's value.
39616func (s *DetectMitigationActionExecution) SetTaskId(v string) *DetectMitigationActionExecution {
39617	s.TaskId = &v
39618	return s
39619}
39620
39621// SetThingName sets the ThingName field's value.
39622func (s *DetectMitigationActionExecution) SetThingName(v string) *DetectMitigationActionExecution {
39623	s.ThingName = &v
39624	return s
39625}
39626
39627// SetViolationId sets the ViolationId field's value.
39628func (s *DetectMitigationActionExecution) SetViolationId(v string) *DetectMitigationActionExecution {
39629	s.ViolationId = &v
39630	return s
39631}
39632
39633// The statistics of a mitigation action task.
39634type DetectMitigationActionsTaskStatistics struct {
39635	_ struct{} `type:"structure"`
39636
39637	// The actions that were performed.
39638	ActionsExecuted *int64 `locationName:"actionsExecuted" type:"long"`
39639
39640	// The actions that failed.
39641	ActionsFailed *int64 `locationName:"actionsFailed" type:"long"`
39642
39643	// The actions that were skipped.
39644	ActionsSkipped *int64 `locationName:"actionsSkipped" type:"long"`
39645}
39646
39647// String returns the string representation
39648func (s DetectMitigationActionsTaskStatistics) String() string {
39649	return awsutil.Prettify(s)
39650}
39651
39652// GoString returns the string representation
39653func (s DetectMitigationActionsTaskStatistics) GoString() string {
39654	return s.String()
39655}
39656
39657// SetActionsExecuted sets the ActionsExecuted field's value.
39658func (s *DetectMitigationActionsTaskStatistics) SetActionsExecuted(v int64) *DetectMitigationActionsTaskStatistics {
39659	s.ActionsExecuted = &v
39660	return s
39661}
39662
39663// SetActionsFailed sets the ActionsFailed field's value.
39664func (s *DetectMitigationActionsTaskStatistics) SetActionsFailed(v int64) *DetectMitigationActionsTaskStatistics {
39665	s.ActionsFailed = &v
39666	return s
39667}
39668
39669// SetActionsSkipped sets the ActionsSkipped field's value.
39670func (s *DetectMitigationActionsTaskStatistics) SetActionsSkipped(v int64) *DetectMitigationActionsTaskStatistics {
39671	s.ActionsSkipped = &v
39672	return s
39673}
39674
39675// The summary of the mitigation action tasks.
39676type DetectMitigationActionsTaskSummary struct {
39677	_ struct{} `type:"structure"`
39678
39679	// The definition of the actions.
39680	ActionsDefinition []*MitigationAction `locationName:"actionsDefinition" type:"list"`
39681
39682	// Includes only active violations.
39683	OnlyActiveViolationsIncluded *bool `locationName:"onlyActiveViolationsIncluded" type:"boolean"`
39684
39685	// Includes suppressed alerts.
39686	SuppressedAlertsIncluded *bool `locationName:"suppressedAlertsIncluded" type:"boolean"`
39687
39688	// Specifies the ML Detect findings to which the mitigation actions are applied.
39689	Target *DetectMitigationActionsTaskTarget `locationName:"target" type:"structure"`
39690
39691	// The date the task ended.
39692	TaskEndTime *time.Time `locationName:"taskEndTime" type:"timestamp"`
39693
39694	// The unique identifier of the task.
39695	TaskId *string `locationName:"taskId" min:"1" type:"string"`
39696
39697	// The date the task started.
39698	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
39699
39700	// The statistics of a mitigation action task.
39701	TaskStatistics *DetectMitigationActionsTaskStatistics `locationName:"taskStatistics" type:"structure"`
39702
39703	// The status of the task.
39704	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"DetectMitigationActionsTaskStatus"`
39705
39706	// Specifies the time period of which violation events occurred between.
39707	ViolationEventOccurrenceRange *ViolationEventOccurrenceRange `locationName:"violationEventOccurrenceRange" type:"structure"`
39708}
39709
39710// String returns the string representation
39711func (s DetectMitigationActionsTaskSummary) String() string {
39712	return awsutil.Prettify(s)
39713}
39714
39715// GoString returns the string representation
39716func (s DetectMitigationActionsTaskSummary) GoString() string {
39717	return s.String()
39718}
39719
39720// SetActionsDefinition sets the ActionsDefinition field's value.
39721func (s *DetectMitigationActionsTaskSummary) SetActionsDefinition(v []*MitigationAction) *DetectMitigationActionsTaskSummary {
39722	s.ActionsDefinition = v
39723	return s
39724}
39725
39726// SetOnlyActiveViolationsIncluded sets the OnlyActiveViolationsIncluded field's value.
39727func (s *DetectMitigationActionsTaskSummary) SetOnlyActiveViolationsIncluded(v bool) *DetectMitigationActionsTaskSummary {
39728	s.OnlyActiveViolationsIncluded = &v
39729	return s
39730}
39731
39732// SetSuppressedAlertsIncluded sets the SuppressedAlertsIncluded field's value.
39733func (s *DetectMitigationActionsTaskSummary) SetSuppressedAlertsIncluded(v bool) *DetectMitigationActionsTaskSummary {
39734	s.SuppressedAlertsIncluded = &v
39735	return s
39736}
39737
39738// SetTarget sets the Target field's value.
39739func (s *DetectMitigationActionsTaskSummary) SetTarget(v *DetectMitigationActionsTaskTarget) *DetectMitigationActionsTaskSummary {
39740	s.Target = v
39741	return s
39742}
39743
39744// SetTaskEndTime sets the TaskEndTime field's value.
39745func (s *DetectMitigationActionsTaskSummary) SetTaskEndTime(v time.Time) *DetectMitigationActionsTaskSummary {
39746	s.TaskEndTime = &v
39747	return s
39748}
39749
39750// SetTaskId sets the TaskId field's value.
39751func (s *DetectMitigationActionsTaskSummary) SetTaskId(v string) *DetectMitigationActionsTaskSummary {
39752	s.TaskId = &v
39753	return s
39754}
39755
39756// SetTaskStartTime sets the TaskStartTime field's value.
39757func (s *DetectMitigationActionsTaskSummary) SetTaskStartTime(v time.Time) *DetectMitigationActionsTaskSummary {
39758	s.TaskStartTime = &v
39759	return s
39760}
39761
39762// SetTaskStatistics sets the TaskStatistics field's value.
39763func (s *DetectMitigationActionsTaskSummary) SetTaskStatistics(v *DetectMitigationActionsTaskStatistics) *DetectMitigationActionsTaskSummary {
39764	s.TaskStatistics = v
39765	return s
39766}
39767
39768// SetTaskStatus sets the TaskStatus field's value.
39769func (s *DetectMitigationActionsTaskSummary) SetTaskStatus(v string) *DetectMitigationActionsTaskSummary {
39770	s.TaskStatus = &v
39771	return s
39772}
39773
39774// SetViolationEventOccurrenceRange sets the ViolationEventOccurrenceRange field's value.
39775func (s *DetectMitigationActionsTaskSummary) SetViolationEventOccurrenceRange(v *ViolationEventOccurrenceRange) *DetectMitigationActionsTaskSummary {
39776	s.ViolationEventOccurrenceRange = v
39777	return s
39778}
39779
39780// The target of a mitigation action task.
39781type DetectMitigationActionsTaskTarget struct {
39782	_ struct{} `type:"structure"`
39783
39784	// The name of the behavior.
39785	BehaviorName *string `locationName:"behaviorName" min:"1" type:"string"`
39786
39787	// The name of the security profile.
39788	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
39789
39790	// The unique identifiers of the violations.
39791	ViolationIds []*string `locationName:"violationIds" min:"1" type:"list"`
39792}
39793
39794// String returns the string representation
39795func (s DetectMitigationActionsTaskTarget) String() string {
39796	return awsutil.Prettify(s)
39797}
39798
39799// GoString returns the string representation
39800func (s DetectMitigationActionsTaskTarget) GoString() string {
39801	return s.String()
39802}
39803
39804// Validate inspects the fields of the type to determine if they are valid.
39805func (s *DetectMitigationActionsTaskTarget) Validate() error {
39806	invalidParams := request.ErrInvalidParams{Context: "DetectMitigationActionsTaskTarget"}
39807	if s.BehaviorName != nil && len(*s.BehaviorName) < 1 {
39808		invalidParams.Add(request.NewErrParamMinLen("BehaviorName", 1))
39809	}
39810	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
39811		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
39812	}
39813	if s.ViolationIds != nil && len(s.ViolationIds) < 1 {
39814		invalidParams.Add(request.NewErrParamMinLen("ViolationIds", 1))
39815	}
39816
39817	if invalidParams.Len() > 0 {
39818		return invalidParams
39819	}
39820	return nil
39821}
39822
39823// SetBehaviorName sets the BehaviorName field's value.
39824func (s *DetectMitigationActionsTaskTarget) SetBehaviorName(v string) *DetectMitigationActionsTaskTarget {
39825	s.BehaviorName = &v
39826	return s
39827}
39828
39829// SetSecurityProfileName sets the SecurityProfileName field's value.
39830func (s *DetectMitigationActionsTaskTarget) SetSecurityProfileName(v string) *DetectMitigationActionsTaskTarget {
39831	s.SecurityProfileName = &v
39832	return s
39833}
39834
39835// SetViolationIds sets the ViolationIds field's value.
39836func (s *DetectMitigationActionsTaskTarget) SetViolationIds(v []*string) *DetectMitigationActionsTaskTarget {
39837	s.ViolationIds = v
39838	return s
39839}
39840
39841// The input for the DisableTopicRuleRequest operation.
39842type DisableTopicRuleInput struct {
39843	_ struct{} `type:"structure"`
39844
39845	// The name of the rule to disable.
39846	//
39847	// RuleName is a required field
39848	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
39849}
39850
39851// String returns the string representation
39852func (s DisableTopicRuleInput) String() string {
39853	return awsutil.Prettify(s)
39854}
39855
39856// GoString returns the string representation
39857func (s DisableTopicRuleInput) GoString() string {
39858	return s.String()
39859}
39860
39861// Validate inspects the fields of the type to determine if they are valid.
39862func (s *DisableTopicRuleInput) Validate() error {
39863	invalidParams := request.ErrInvalidParams{Context: "DisableTopicRuleInput"}
39864	if s.RuleName == nil {
39865		invalidParams.Add(request.NewErrParamRequired("RuleName"))
39866	}
39867	if s.RuleName != nil && len(*s.RuleName) < 1 {
39868		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
39869	}
39870
39871	if invalidParams.Len() > 0 {
39872		return invalidParams
39873	}
39874	return nil
39875}
39876
39877// SetRuleName sets the RuleName field's value.
39878func (s *DisableTopicRuleInput) SetRuleName(v string) *DisableTopicRuleInput {
39879	s.RuleName = &v
39880	return s
39881}
39882
39883type DisableTopicRuleOutput struct {
39884	_ struct{} `type:"structure"`
39885}
39886
39887// String returns the string representation
39888func (s DisableTopicRuleOutput) String() string {
39889	return awsutil.Prettify(s)
39890}
39891
39892// GoString returns the string representation
39893func (s DisableTopicRuleOutput) GoString() string {
39894	return s.String()
39895}
39896
39897// The summary of a domain configuration. A domain configuration specifies custom
39898// IoT-specific information about a domain. A domain configuration can be associated
39899// with an Amazon Web Services-managed domain (for example, dbc123defghijk.iot.us-west-2.amazonaws.com),
39900// a customer managed domain, or a default endpoint.
39901//
39902//    * Data
39903//
39904//    * Jobs
39905//
39906//    * CredentialProvider
39907type DomainConfigurationSummary struct {
39908	_ struct{} `type:"structure"`
39909
39910	// The ARN of the domain configuration.
39911	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
39912
39913	// The name of the domain configuration. This value must be unique to a region.
39914	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
39915
39916	// The type of service delivered by the endpoint.
39917	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
39918}
39919
39920// String returns the string representation
39921func (s DomainConfigurationSummary) String() string {
39922	return awsutil.Prettify(s)
39923}
39924
39925// GoString returns the string representation
39926func (s DomainConfigurationSummary) GoString() string {
39927	return s.String()
39928}
39929
39930// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
39931func (s *DomainConfigurationSummary) SetDomainConfigurationArn(v string) *DomainConfigurationSummary {
39932	s.DomainConfigurationArn = &v
39933	return s
39934}
39935
39936// SetDomainConfigurationName sets the DomainConfigurationName field's value.
39937func (s *DomainConfigurationSummary) SetDomainConfigurationName(v string) *DomainConfigurationSummary {
39938	s.DomainConfigurationName = &v
39939	return s
39940}
39941
39942// SetServiceType sets the ServiceType field's value.
39943func (s *DomainConfigurationSummary) SetServiceType(v string) *DomainConfigurationSummary {
39944	s.ServiceType = &v
39945	return s
39946}
39947
39948// Describes an action to write to a DynamoDB table.
39949//
39950// The tableName, hashKeyField, and rangeKeyField values must match the values
39951// used when you created the table.
39952//
39953// The hashKeyValue and rangeKeyvalue fields use a substitution template syntax.
39954// These templates provide data at runtime. The syntax is as follows: ${sql-expression}.
39955//
39956// You can specify any valid expression in a WHERE or SELECT clause, including
39957// JSON properties, comparisons, calculations, and functions. For example, the
39958// following field uses the third level of the topic:
39959//
39960// "hashKeyValue": "${topic(3)}"
39961//
39962// The following field uses the timestamp:
39963//
39964// "rangeKeyValue": "${timestamp()}"
39965type DynamoDBAction struct {
39966	_ struct{} `type:"structure"`
39967
39968	// The hash key name.
39969	//
39970	// HashKeyField is a required field
39971	HashKeyField *string `locationName:"hashKeyField" type:"string" required:"true"`
39972
39973	// The hash key type. Valid values are "STRING" or "NUMBER"
39974	HashKeyType *string `locationName:"hashKeyType" type:"string" enum:"DynamoKeyType"`
39975
39976	// The hash key value.
39977	//
39978	// HashKeyValue is a required field
39979	HashKeyValue *string `locationName:"hashKeyValue" type:"string" required:"true"`
39980
39981	// The type of operation to be performed. This follows the substitution template,
39982	// so it can be ${operation}, but the substitution must result in one of the
39983	// following: INSERT, UPDATE, or DELETE.
39984	Operation *string `locationName:"operation" type:"string"`
39985
39986	// The action payload. This name can be customized.
39987	PayloadField *string `locationName:"payloadField" type:"string"`
39988
39989	// The range key name.
39990	RangeKeyField *string `locationName:"rangeKeyField" type:"string"`
39991
39992	// The range key type. Valid values are "STRING" or "NUMBER"
39993	RangeKeyType *string `locationName:"rangeKeyType" type:"string" enum:"DynamoKeyType"`
39994
39995	// The range key value.
39996	RangeKeyValue *string `locationName:"rangeKeyValue" type:"string"`
39997
39998	// The ARN of the IAM role that grants access to the DynamoDB table.
39999	//
40000	// RoleArn is a required field
40001	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
40002
40003	// The name of the DynamoDB table.
40004	//
40005	// TableName is a required field
40006	TableName *string `locationName:"tableName" type:"string" required:"true"`
40007}
40008
40009// String returns the string representation
40010func (s DynamoDBAction) String() string {
40011	return awsutil.Prettify(s)
40012}
40013
40014// GoString returns the string representation
40015func (s DynamoDBAction) GoString() string {
40016	return s.String()
40017}
40018
40019// Validate inspects the fields of the type to determine if they are valid.
40020func (s *DynamoDBAction) Validate() error {
40021	invalidParams := request.ErrInvalidParams{Context: "DynamoDBAction"}
40022	if s.HashKeyField == nil {
40023		invalidParams.Add(request.NewErrParamRequired("HashKeyField"))
40024	}
40025	if s.HashKeyValue == nil {
40026		invalidParams.Add(request.NewErrParamRequired("HashKeyValue"))
40027	}
40028	if s.RoleArn == nil {
40029		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
40030	}
40031	if s.TableName == nil {
40032		invalidParams.Add(request.NewErrParamRequired("TableName"))
40033	}
40034
40035	if invalidParams.Len() > 0 {
40036		return invalidParams
40037	}
40038	return nil
40039}
40040
40041// SetHashKeyField sets the HashKeyField field's value.
40042func (s *DynamoDBAction) SetHashKeyField(v string) *DynamoDBAction {
40043	s.HashKeyField = &v
40044	return s
40045}
40046
40047// SetHashKeyType sets the HashKeyType field's value.
40048func (s *DynamoDBAction) SetHashKeyType(v string) *DynamoDBAction {
40049	s.HashKeyType = &v
40050	return s
40051}
40052
40053// SetHashKeyValue sets the HashKeyValue field's value.
40054func (s *DynamoDBAction) SetHashKeyValue(v string) *DynamoDBAction {
40055	s.HashKeyValue = &v
40056	return s
40057}
40058
40059// SetOperation sets the Operation field's value.
40060func (s *DynamoDBAction) SetOperation(v string) *DynamoDBAction {
40061	s.Operation = &v
40062	return s
40063}
40064
40065// SetPayloadField sets the PayloadField field's value.
40066func (s *DynamoDBAction) SetPayloadField(v string) *DynamoDBAction {
40067	s.PayloadField = &v
40068	return s
40069}
40070
40071// SetRangeKeyField sets the RangeKeyField field's value.
40072func (s *DynamoDBAction) SetRangeKeyField(v string) *DynamoDBAction {
40073	s.RangeKeyField = &v
40074	return s
40075}
40076
40077// SetRangeKeyType sets the RangeKeyType field's value.
40078func (s *DynamoDBAction) SetRangeKeyType(v string) *DynamoDBAction {
40079	s.RangeKeyType = &v
40080	return s
40081}
40082
40083// SetRangeKeyValue sets the RangeKeyValue field's value.
40084func (s *DynamoDBAction) SetRangeKeyValue(v string) *DynamoDBAction {
40085	s.RangeKeyValue = &v
40086	return s
40087}
40088
40089// SetRoleArn sets the RoleArn field's value.
40090func (s *DynamoDBAction) SetRoleArn(v string) *DynamoDBAction {
40091	s.RoleArn = &v
40092	return s
40093}
40094
40095// SetTableName sets the TableName field's value.
40096func (s *DynamoDBAction) SetTableName(v string) *DynamoDBAction {
40097	s.TableName = &v
40098	return s
40099}
40100
40101// Describes an action to write to a DynamoDB table.
40102//
40103// This DynamoDB action writes each attribute in the message payload into it's
40104// own column in the DynamoDB table.
40105type DynamoDBv2Action struct {
40106	_ struct{} `type:"structure"`
40107
40108	// Specifies the DynamoDB table to which the message data will be written. For
40109	// example:
40110	//
40111	// { "dynamoDBv2": { "roleArn": "aws:iam:12341251:my-role" "putItem": { "tableName":
40112	// "my-table" } } }
40113	//
40114	// Each attribute in the message payload will be written to a separate column
40115	// in the DynamoDB database.
40116	//
40117	// PutItem is a required field
40118	PutItem *PutItemInput `locationName:"putItem" type:"structure" required:"true"`
40119
40120	// The ARN of the IAM role that grants access to the DynamoDB table.
40121	//
40122	// RoleArn is a required field
40123	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
40124}
40125
40126// String returns the string representation
40127func (s DynamoDBv2Action) String() string {
40128	return awsutil.Prettify(s)
40129}
40130
40131// GoString returns the string representation
40132func (s DynamoDBv2Action) GoString() string {
40133	return s.String()
40134}
40135
40136// Validate inspects the fields of the type to determine if they are valid.
40137func (s *DynamoDBv2Action) Validate() error {
40138	invalidParams := request.ErrInvalidParams{Context: "DynamoDBv2Action"}
40139	if s.PutItem == nil {
40140		invalidParams.Add(request.NewErrParamRequired("PutItem"))
40141	}
40142	if s.RoleArn == nil {
40143		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
40144	}
40145	if s.PutItem != nil {
40146		if err := s.PutItem.Validate(); err != nil {
40147			invalidParams.AddNested("PutItem", err.(request.ErrInvalidParams))
40148		}
40149	}
40150
40151	if invalidParams.Len() > 0 {
40152		return invalidParams
40153	}
40154	return nil
40155}
40156
40157// SetPutItem sets the PutItem field's value.
40158func (s *DynamoDBv2Action) SetPutItem(v *PutItemInput) *DynamoDBv2Action {
40159	s.PutItem = v
40160	return s
40161}
40162
40163// SetRoleArn sets the RoleArn field's value.
40164func (s *DynamoDBv2Action) SetRoleArn(v string) *DynamoDBv2Action {
40165	s.RoleArn = &v
40166	return s
40167}
40168
40169// The policy that has the effect on the authorization results.
40170type EffectivePolicy struct {
40171	_ struct{} `type:"structure"`
40172
40173	// The policy ARN.
40174	PolicyArn *string `locationName:"policyArn" type:"string"`
40175
40176	// The IAM policy document.
40177	PolicyDocument *string `locationName:"policyDocument" type:"string"`
40178
40179	// The policy name.
40180	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
40181}
40182
40183// String returns the string representation
40184func (s EffectivePolicy) String() string {
40185	return awsutil.Prettify(s)
40186}
40187
40188// GoString returns the string representation
40189func (s EffectivePolicy) GoString() string {
40190	return s.String()
40191}
40192
40193// SetPolicyArn sets the PolicyArn field's value.
40194func (s *EffectivePolicy) SetPolicyArn(v string) *EffectivePolicy {
40195	s.PolicyArn = &v
40196	return s
40197}
40198
40199// SetPolicyDocument sets the PolicyDocument field's value.
40200func (s *EffectivePolicy) SetPolicyDocument(v string) *EffectivePolicy {
40201	s.PolicyDocument = &v
40202	return s
40203}
40204
40205// SetPolicyName sets the PolicyName field's value.
40206func (s *EffectivePolicy) SetPolicyName(v string) *EffectivePolicy {
40207	s.PolicyName = &v
40208	return s
40209}
40210
40211// Describes an action that writes data to an Amazon Elasticsearch Service domain.
40212type ElasticsearchAction struct {
40213	_ struct{} `type:"structure"`
40214
40215	// The endpoint of your Elasticsearch domain.
40216	//
40217	// Endpoint is a required field
40218	Endpoint *string `locationName:"endpoint" type:"string" required:"true"`
40219
40220	// The unique identifier for the document you are storing.
40221	//
40222	// Id is a required field
40223	Id *string `locationName:"id" type:"string" required:"true"`
40224
40225	// The Elasticsearch index where you want to store your data.
40226	//
40227	// Index is a required field
40228	Index *string `locationName:"index" type:"string" required:"true"`
40229
40230	// The IAM role ARN that has access to Elasticsearch.
40231	//
40232	// RoleArn is a required field
40233	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
40234
40235	// The type of document you are storing.
40236	//
40237	// Type is a required field
40238	Type *string `locationName:"type" type:"string" required:"true"`
40239}
40240
40241// String returns the string representation
40242func (s ElasticsearchAction) String() string {
40243	return awsutil.Prettify(s)
40244}
40245
40246// GoString returns the string representation
40247func (s ElasticsearchAction) GoString() string {
40248	return s.String()
40249}
40250
40251// Validate inspects the fields of the type to determine if they are valid.
40252func (s *ElasticsearchAction) Validate() error {
40253	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchAction"}
40254	if s.Endpoint == nil {
40255		invalidParams.Add(request.NewErrParamRequired("Endpoint"))
40256	}
40257	if s.Id == nil {
40258		invalidParams.Add(request.NewErrParamRequired("Id"))
40259	}
40260	if s.Index == nil {
40261		invalidParams.Add(request.NewErrParamRequired("Index"))
40262	}
40263	if s.RoleArn == nil {
40264		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
40265	}
40266	if s.Type == nil {
40267		invalidParams.Add(request.NewErrParamRequired("Type"))
40268	}
40269
40270	if invalidParams.Len() > 0 {
40271		return invalidParams
40272	}
40273	return nil
40274}
40275
40276// SetEndpoint sets the Endpoint field's value.
40277func (s *ElasticsearchAction) SetEndpoint(v string) *ElasticsearchAction {
40278	s.Endpoint = &v
40279	return s
40280}
40281
40282// SetId sets the Id field's value.
40283func (s *ElasticsearchAction) SetId(v string) *ElasticsearchAction {
40284	s.Id = &v
40285	return s
40286}
40287
40288// SetIndex sets the Index field's value.
40289func (s *ElasticsearchAction) SetIndex(v string) *ElasticsearchAction {
40290	s.Index = &v
40291	return s
40292}
40293
40294// SetRoleArn sets the RoleArn field's value.
40295func (s *ElasticsearchAction) SetRoleArn(v string) *ElasticsearchAction {
40296	s.RoleArn = &v
40297	return s
40298}
40299
40300// SetType sets the Type field's value.
40301func (s *ElasticsearchAction) SetType(v string) *ElasticsearchAction {
40302	s.Type = &v
40303	return s
40304}
40305
40306// Parameters used when defining a mitigation action that enable Amazon Web
40307// Services IoT Core logging.
40308type EnableIoTLoggingParams struct {
40309	_ struct{} `type:"structure"`
40310
40311	// Specifies the type of information to be logged.
40312	//
40313	// LogLevel is a required field
40314	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
40315
40316	// The Amazon Resource Name (ARN) of the IAM role used for logging.
40317	//
40318	// RoleArnForLogging is a required field
40319	RoleArnForLogging *string `locationName:"roleArnForLogging" min:"20" type:"string" required:"true"`
40320}
40321
40322// String returns the string representation
40323func (s EnableIoTLoggingParams) String() string {
40324	return awsutil.Prettify(s)
40325}
40326
40327// GoString returns the string representation
40328func (s EnableIoTLoggingParams) GoString() string {
40329	return s.String()
40330}
40331
40332// Validate inspects the fields of the type to determine if they are valid.
40333func (s *EnableIoTLoggingParams) Validate() error {
40334	invalidParams := request.ErrInvalidParams{Context: "EnableIoTLoggingParams"}
40335	if s.LogLevel == nil {
40336		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
40337	}
40338	if s.RoleArnForLogging == nil {
40339		invalidParams.Add(request.NewErrParamRequired("RoleArnForLogging"))
40340	}
40341	if s.RoleArnForLogging != nil && len(*s.RoleArnForLogging) < 20 {
40342		invalidParams.Add(request.NewErrParamMinLen("RoleArnForLogging", 20))
40343	}
40344
40345	if invalidParams.Len() > 0 {
40346		return invalidParams
40347	}
40348	return nil
40349}
40350
40351// SetLogLevel sets the LogLevel field's value.
40352func (s *EnableIoTLoggingParams) SetLogLevel(v string) *EnableIoTLoggingParams {
40353	s.LogLevel = &v
40354	return s
40355}
40356
40357// SetRoleArnForLogging sets the RoleArnForLogging field's value.
40358func (s *EnableIoTLoggingParams) SetRoleArnForLogging(v string) *EnableIoTLoggingParams {
40359	s.RoleArnForLogging = &v
40360	return s
40361}
40362
40363// The input for the EnableTopicRuleRequest operation.
40364type EnableTopicRuleInput struct {
40365	_ struct{} `type:"structure"`
40366
40367	// The name of the topic rule to enable.
40368	//
40369	// RuleName is a required field
40370	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
40371}
40372
40373// String returns the string representation
40374func (s EnableTopicRuleInput) String() string {
40375	return awsutil.Prettify(s)
40376}
40377
40378// GoString returns the string representation
40379func (s EnableTopicRuleInput) GoString() string {
40380	return s.String()
40381}
40382
40383// Validate inspects the fields of the type to determine if they are valid.
40384func (s *EnableTopicRuleInput) Validate() error {
40385	invalidParams := request.ErrInvalidParams{Context: "EnableTopicRuleInput"}
40386	if s.RuleName == nil {
40387		invalidParams.Add(request.NewErrParamRequired("RuleName"))
40388	}
40389	if s.RuleName != nil && len(*s.RuleName) < 1 {
40390		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
40391	}
40392
40393	if invalidParams.Len() > 0 {
40394		return invalidParams
40395	}
40396	return nil
40397}
40398
40399// SetRuleName sets the RuleName field's value.
40400func (s *EnableTopicRuleInput) SetRuleName(v string) *EnableTopicRuleInput {
40401	s.RuleName = &v
40402	return s
40403}
40404
40405type EnableTopicRuleOutput struct {
40406	_ struct{} `type:"structure"`
40407}
40408
40409// String returns the string representation
40410func (s EnableTopicRuleOutput) String() string {
40411	return awsutil.Prettify(s)
40412}
40413
40414// GoString returns the string representation
40415func (s EnableTopicRuleOutput) GoString() string {
40416	return s.String()
40417}
40418
40419// Error information.
40420type ErrorInfo struct {
40421	_ struct{} `type:"structure"`
40422
40423	// The error code.
40424	Code *string `locationName:"code" type:"string"`
40425
40426	// The error message.
40427	Message *string `locationName:"message" type:"string"`
40428}
40429
40430// String returns the string representation
40431func (s ErrorInfo) String() string {
40432	return awsutil.Prettify(s)
40433}
40434
40435// GoString returns the string representation
40436func (s ErrorInfo) GoString() string {
40437	return s.String()
40438}
40439
40440// SetCode sets the Code field's value.
40441func (s *ErrorInfo) SetCode(v string) *ErrorInfo {
40442	s.Code = &v
40443	return s
40444}
40445
40446// SetMessage sets the Message field's value.
40447func (s *ErrorInfo) SetMessage(v string) *ErrorInfo {
40448	s.Message = &v
40449	return s
40450}
40451
40452// Information that explicitly denies authorization.
40453type ExplicitDeny struct {
40454	_ struct{} `type:"structure"`
40455
40456	// The policies that denied the authorization.
40457	Policies []*Policy `locationName:"policies" type:"list"`
40458}
40459
40460// String returns the string representation
40461func (s ExplicitDeny) String() string {
40462	return awsutil.Prettify(s)
40463}
40464
40465// GoString returns the string representation
40466func (s ExplicitDeny) GoString() string {
40467	return s.String()
40468}
40469
40470// SetPolicies sets the Policies field's value.
40471func (s *ExplicitDeny) SetPolicies(v []*Policy) *ExplicitDeny {
40472	s.Policies = v
40473	return s
40474}
40475
40476// Allows you to create an exponential rate of rollout for a job.
40477type ExponentialRolloutRate struct {
40478	_ struct{} `type:"structure"`
40479
40480	// The minimum number of things that will be notified of a pending job, per
40481	// minute at the start of job rollout. This parameter allows you to define the
40482	// initial rate of rollout.
40483	//
40484	// BaseRatePerMinute is a required field
40485	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
40486
40487	// The exponential factor to increase the rate of rollout for a job.
40488	//
40489	// Amazon Web Services IoT Core supports up to one digit after the decimal (for
40490	// example, 1.5, but not 1.55).
40491	//
40492	// IncrementFactor is a required field
40493	IncrementFactor *float64 `locationName:"incrementFactor" min:"1" type:"double" required:"true"`
40494
40495	// The criteria to initiate the increase in rate of rollout for a job.
40496	//
40497	// RateIncreaseCriteria is a required field
40498	RateIncreaseCriteria *RateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
40499}
40500
40501// String returns the string representation
40502func (s ExponentialRolloutRate) String() string {
40503	return awsutil.Prettify(s)
40504}
40505
40506// GoString returns the string representation
40507func (s ExponentialRolloutRate) GoString() string {
40508	return s.String()
40509}
40510
40511// Validate inspects the fields of the type to determine if they are valid.
40512func (s *ExponentialRolloutRate) Validate() error {
40513	invalidParams := request.ErrInvalidParams{Context: "ExponentialRolloutRate"}
40514	if s.BaseRatePerMinute == nil {
40515		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
40516	}
40517	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
40518		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
40519	}
40520	if s.IncrementFactor == nil {
40521		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
40522	}
40523	if s.IncrementFactor != nil && *s.IncrementFactor < 1 {
40524		invalidParams.Add(request.NewErrParamMinValue("IncrementFactor", 1))
40525	}
40526	if s.RateIncreaseCriteria == nil {
40527		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
40528	}
40529	if s.RateIncreaseCriteria != nil {
40530		if err := s.RateIncreaseCriteria.Validate(); err != nil {
40531			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
40532		}
40533	}
40534
40535	if invalidParams.Len() > 0 {
40536		return invalidParams
40537	}
40538	return nil
40539}
40540
40541// SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
40542func (s *ExponentialRolloutRate) SetBaseRatePerMinute(v int64) *ExponentialRolloutRate {
40543	s.BaseRatePerMinute = &v
40544	return s
40545}
40546
40547// SetIncrementFactor sets the IncrementFactor field's value.
40548func (s *ExponentialRolloutRate) SetIncrementFactor(v float64) *ExponentialRolloutRate {
40549	s.IncrementFactor = &v
40550	return s
40551}
40552
40553// SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
40554func (s *ExponentialRolloutRate) SetRateIncreaseCriteria(v *RateIncreaseCriteria) *ExponentialRolloutRate {
40555	s.RateIncreaseCriteria = v
40556	return s
40557}
40558
40559// Describes the name and data type at a field.
40560type Field struct {
40561	_ struct{} `type:"structure"`
40562
40563	// The name of the field.
40564	Name *string `locationName:"name" type:"string"`
40565
40566	// The data type of the field.
40567	Type *string `locationName:"type" type:"string" enum:"FieldType"`
40568}
40569
40570// String returns the string representation
40571func (s Field) String() string {
40572	return awsutil.Prettify(s)
40573}
40574
40575// GoString returns the string representation
40576func (s Field) GoString() string {
40577	return s.String()
40578}
40579
40580// SetName sets the Name field's value.
40581func (s *Field) SetName(v string) *Field {
40582	s.Name = &v
40583	return s
40584}
40585
40586// SetType sets the Type field's value.
40587func (s *Field) SetType(v string) *Field {
40588	s.Type = &v
40589	return s
40590}
40591
40592// The location of the OTA update.
40593type FileLocation struct {
40594	_ struct{} `type:"structure"`
40595
40596	// The location of the updated firmware in S3.
40597	S3Location *S3Location `locationName:"s3Location" type:"structure"`
40598
40599	// The stream that contains the OTA update.
40600	Stream *Stream `locationName:"stream" type:"structure"`
40601}
40602
40603// String returns the string representation
40604func (s FileLocation) String() string {
40605	return awsutil.Prettify(s)
40606}
40607
40608// GoString returns the string representation
40609func (s FileLocation) GoString() string {
40610	return s.String()
40611}
40612
40613// Validate inspects the fields of the type to determine if they are valid.
40614func (s *FileLocation) Validate() error {
40615	invalidParams := request.ErrInvalidParams{Context: "FileLocation"}
40616	if s.S3Location != nil {
40617		if err := s.S3Location.Validate(); err != nil {
40618			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
40619		}
40620	}
40621	if s.Stream != nil {
40622		if err := s.Stream.Validate(); err != nil {
40623			invalidParams.AddNested("Stream", err.(request.ErrInvalidParams))
40624		}
40625	}
40626
40627	if invalidParams.Len() > 0 {
40628		return invalidParams
40629	}
40630	return nil
40631}
40632
40633// SetS3Location sets the S3Location field's value.
40634func (s *FileLocation) SetS3Location(v *S3Location) *FileLocation {
40635	s.S3Location = v
40636	return s
40637}
40638
40639// SetStream sets the Stream field's value.
40640func (s *FileLocation) SetStream(v *Stream) *FileLocation {
40641	s.Stream = v
40642	return s
40643}
40644
40645// Describes an action that writes data to an Amazon Kinesis Firehose stream.
40646type FirehoseAction struct {
40647	_ struct{} `type:"structure"`
40648
40649	// Whether to deliver the Kinesis Data Firehose stream as a batch by using PutRecordBatch
40650	// (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html).
40651	// The default value is false.
40652	//
40653	// When batchMode is true and the rule's SQL statement evaluates to an Array,
40654	// each Array element forms one record in the PutRecordBatch (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)
40655	// request. The resulting array can't have more than 500 records.
40656	BatchMode *bool `locationName:"batchMode" type:"boolean"`
40657
40658	// The delivery stream name.
40659	//
40660	// DeliveryStreamName is a required field
40661	DeliveryStreamName *string `locationName:"deliveryStreamName" type:"string" required:"true"`
40662
40663	// The IAM role that grants access to the Amazon Kinesis Firehose stream.
40664	//
40665	// RoleArn is a required field
40666	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
40667
40668	// A character separator that will be used to separate records written to the
40669	// Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows
40670	// newline), ',' (comma).
40671	Separator *string `locationName:"separator" type:"string"`
40672}
40673
40674// String returns the string representation
40675func (s FirehoseAction) String() string {
40676	return awsutil.Prettify(s)
40677}
40678
40679// GoString returns the string representation
40680func (s FirehoseAction) GoString() string {
40681	return s.String()
40682}
40683
40684// Validate inspects the fields of the type to determine if they are valid.
40685func (s *FirehoseAction) Validate() error {
40686	invalidParams := request.ErrInvalidParams{Context: "FirehoseAction"}
40687	if s.DeliveryStreamName == nil {
40688		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
40689	}
40690	if s.RoleArn == nil {
40691		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
40692	}
40693
40694	if invalidParams.Len() > 0 {
40695		return invalidParams
40696	}
40697	return nil
40698}
40699
40700// SetBatchMode sets the BatchMode field's value.
40701func (s *FirehoseAction) SetBatchMode(v bool) *FirehoseAction {
40702	s.BatchMode = &v
40703	return s
40704}
40705
40706// SetDeliveryStreamName sets the DeliveryStreamName field's value.
40707func (s *FirehoseAction) SetDeliveryStreamName(v string) *FirehoseAction {
40708	s.DeliveryStreamName = &v
40709	return s
40710}
40711
40712// SetRoleArn sets the RoleArn field's value.
40713func (s *FirehoseAction) SetRoleArn(v string) *FirehoseAction {
40714	s.RoleArn = &v
40715	return s
40716}
40717
40718// SetSeparator sets the Separator field's value.
40719func (s *FirehoseAction) SetSeparator(v string) *FirehoseAction {
40720	s.Separator = &v
40721	return s
40722}
40723
40724// The name and ARN of a fleet metric.
40725type FleetMetricNameAndArn struct {
40726	_ struct{} `type:"structure"`
40727
40728	// The fleet metric ARN.
40729	MetricArn *string `locationName:"metricArn" type:"string"`
40730
40731	// The fleet metric name.
40732	MetricName *string `locationName:"metricName" min:"1" type:"string"`
40733}
40734
40735// String returns the string representation
40736func (s FleetMetricNameAndArn) String() string {
40737	return awsutil.Prettify(s)
40738}
40739
40740// GoString returns the string representation
40741func (s FleetMetricNameAndArn) GoString() string {
40742	return s.String()
40743}
40744
40745// SetMetricArn sets the MetricArn field's value.
40746func (s *FleetMetricNameAndArn) SetMetricArn(v string) *FleetMetricNameAndArn {
40747	s.MetricArn = &v
40748	return s
40749}
40750
40751// SetMetricName sets the MetricName field's value.
40752func (s *FleetMetricNameAndArn) SetMetricName(v string) *FleetMetricNameAndArn {
40753	s.MetricName = &v
40754	return s
40755}
40756
40757type GetBehaviorModelTrainingSummariesInput struct {
40758	_ struct{} `type:"structure"`
40759
40760	// The maximum number of results to return at one time. The default is 25.
40761	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
40762
40763	// The token for the next set of results.
40764	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
40765
40766	// The name of the security profile.
40767	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
40768}
40769
40770// String returns the string representation
40771func (s GetBehaviorModelTrainingSummariesInput) String() string {
40772	return awsutil.Prettify(s)
40773}
40774
40775// GoString returns the string representation
40776func (s GetBehaviorModelTrainingSummariesInput) GoString() string {
40777	return s.String()
40778}
40779
40780// Validate inspects the fields of the type to determine if they are valid.
40781func (s *GetBehaviorModelTrainingSummariesInput) Validate() error {
40782	invalidParams := request.ErrInvalidParams{Context: "GetBehaviorModelTrainingSummariesInput"}
40783	if s.MaxResults != nil && *s.MaxResults < 1 {
40784		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
40785	}
40786	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
40787		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
40788	}
40789
40790	if invalidParams.Len() > 0 {
40791		return invalidParams
40792	}
40793	return nil
40794}
40795
40796// SetMaxResults sets the MaxResults field's value.
40797func (s *GetBehaviorModelTrainingSummariesInput) SetMaxResults(v int64) *GetBehaviorModelTrainingSummariesInput {
40798	s.MaxResults = &v
40799	return s
40800}
40801
40802// SetNextToken sets the NextToken field's value.
40803func (s *GetBehaviorModelTrainingSummariesInput) SetNextToken(v string) *GetBehaviorModelTrainingSummariesInput {
40804	s.NextToken = &v
40805	return s
40806}
40807
40808// SetSecurityProfileName sets the SecurityProfileName field's value.
40809func (s *GetBehaviorModelTrainingSummariesInput) SetSecurityProfileName(v string) *GetBehaviorModelTrainingSummariesInput {
40810	s.SecurityProfileName = &v
40811	return s
40812}
40813
40814type GetBehaviorModelTrainingSummariesOutput struct {
40815	_ struct{} `type:"structure"`
40816
40817	// A token that can be used to retrieve the next set of results, or null if
40818	// there are no additional results.
40819	NextToken *string `locationName:"nextToken" type:"string"`
40820
40821	// A list of all ML Detect behaviors and their model status for a given Security
40822	// Profile.
40823	Summaries []*BehaviorModelTrainingSummary `locationName:"summaries" type:"list"`
40824}
40825
40826// String returns the string representation
40827func (s GetBehaviorModelTrainingSummariesOutput) String() string {
40828	return awsutil.Prettify(s)
40829}
40830
40831// GoString returns the string representation
40832func (s GetBehaviorModelTrainingSummariesOutput) GoString() string {
40833	return s.String()
40834}
40835
40836// SetNextToken sets the NextToken field's value.
40837func (s *GetBehaviorModelTrainingSummariesOutput) SetNextToken(v string) *GetBehaviorModelTrainingSummariesOutput {
40838	s.NextToken = &v
40839	return s
40840}
40841
40842// SetSummaries sets the Summaries field's value.
40843func (s *GetBehaviorModelTrainingSummariesOutput) SetSummaries(v []*BehaviorModelTrainingSummary) *GetBehaviorModelTrainingSummariesOutput {
40844	s.Summaries = v
40845	return s
40846}
40847
40848type GetBucketsAggregationInput struct {
40849	_ struct{} `type:"structure"`
40850
40851	// The aggregation field.
40852	//
40853	// AggregationField is a required field
40854	AggregationField *string `locationName:"aggregationField" min:"1" type:"string" required:"true"`
40855
40856	// The basic control of the response shape and the bucket aggregation type to
40857	// perform.
40858	//
40859	// BucketsAggregationType is a required field
40860	BucketsAggregationType *BucketsAggregationType `locationName:"bucketsAggregationType" type:"structure" required:"true"`
40861
40862	// The name of the index to search.
40863	IndexName *string `locationName:"indexName" min:"1" type:"string"`
40864
40865	// The search query string.
40866	//
40867	// QueryString is a required field
40868	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
40869
40870	// The version of the query.
40871	QueryVersion *string `locationName:"queryVersion" type:"string"`
40872}
40873
40874// String returns the string representation
40875func (s GetBucketsAggregationInput) String() string {
40876	return awsutil.Prettify(s)
40877}
40878
40879// GoString returns the string representation
40880func (s GetBucketsAggregationInput) GoString() string {
40881	return s.String()
40882}
40883
40884// Validate inspects the fields of the type to determine if they are valid.
40885func (s *GetBucketsAggregationInput) Validate() error {
40886	invalidParams := request.ErrInvalidParams{Context: "GetBucketsAggregationInput"}
40887	if s.AggregationField == nil {
40888		invalidParams.Add(request.NewErrParamRequired("AggregationField"))
40889	}
40890	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
40891		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
40892	}
40893	if s.BucketsAggregationType == nil {
40894		invalidParams.Add(request.NewErrParamRequired("BucketsAggregationType"))
40895	}
40896	if s.IndexName != nil && len(*s.IndexName) < 1 {
40897		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
40898	}
40899	if s.QueryString == nil {
40900		invalidParams.Add(request.NewErrParamRequired("QueryString"))
40901	}
40902	if s.QueryString != nil && len(*s.QueryString) < 1 {
40903		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
40904	}
40905	if s.BucketsAggregationType != nil {
40906		if err := s.BucketsAggregationType.Validate(); err != nil {
40907			invalidParams.AddNested("BucketsAggregationType", err.(request.ErrInvalidParams))
40908		}
40909	}
40910
40911	if invalidParams.Len() > 0 {
40912		return invalidParams
40913	}
40914	return nil
40915}
40916
40917// SetAggregationField sets the AggregationField field's value.
40918func (s *GetBucketsAggregationInput) SetAggregationField(v string) *GetBucketsAggregationInput {
40919	s.AggregationField = &v
40920	return s
40921}
40922
40923// SetBucketsAggregationType sets the BucketsAggregationType field's value.
40924func (s *GetBucketsAggregationInput) SetBucketsAggregationType(v *BucketsAggregationType) *GetBucketsAggregationInput {
40925	s.BucketsAggregationType = v
40926	return s
40927}
40928
40929// SetIndexName sets the IndexName field's value.
40930func (s *GetBucketsAggregationInput) SetIndexName(v string) *GetBucketsAggregationInput {
40931	s.IndexName = &v
40932	return s
40933}
40934
40935// SetQueryString sets the QueryString field's value.
40936func (s *GetBucketsAggregationInput) SetQueryString(v string) *GetBucketsAggregationInput {
40937	s.QueryString = &v
40938	return s
40939}
40940
40941// SetQueryVersion sets the QueryVersion field's value.
40942func (s *GetBucketsAggregationInput) SetQueryVersion(v string) *GetBucketsAggregationInput {
40943	s.QueryVersion = &v
40944	return s
40945}
40946
40947type GetBucketsAggregationOutput struct {
40948	_ struct{} `type:"structure"`
40949
40950	// The main part of the response with a list of buckets. Each bucket contains
40951	// a keyValue and a count.
40952	//
40953	// keyValue: The aggregation field value counted for the particular bucket.
40954	//
40955	// count: The number of documents that have that value.
40956	Buckets []*Bucket `locationName:"buckets" type:"list"`
40957
40958	// The total number of documents that fit the query string criteria and contain
40959	// a value for the Aggregation field targeted in the request.
40960	TotalCount *int64 `locationName:"totalCount" type:"integer"`
40961}
40962
40963// String returns the string representation
40964func (s GetBucketsAggregationOutput) String() string {
40965	return awsutil.Prettify(s)
40966}
40967
40968// GoString returns the string representation
40969func (s GetBucketsAggregationOutput) GoString() string {
40970	return s.String()
40971}
40972
40973// SetBuckets sets the Buckets field's value.
40974func (s *GetBucketsAggregationOutput) SetBuckets(v []*Bucket) *GetBucketsAggregationOutput {
40975	s.Buckets = v
40976	return s
40977}
40978
40979// SetTotalCount sets the TotalCount field's value.
40980func (s *GetBucketsAggregationOutput) SetTotalCount(v int64) *GetBucketsAggregationOutput {
40981	s.TotalCount = &v
40982	return s
40983}
40984
40985type GetCardinalityInput struct {
40986	_ struct{} `type:"structure"`
40987
40988	// The field to aggregate.
40989	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
40990
40991	// The name of the index to search.
40992	IndexName *string `locationName:"indexName" min:"1" type:"string"`
40993
40994	// The search query string.
40995	//
40996	// QueryString is a required field
40997	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
40998
40999	// The query version.
41000	QueryVersion *string `locationName:"queryVersion" type:"string"`
41001}
41002
41003// String returns the string representation
41004func (s GetCardinalityInput) String() string {
41005	return awsutil.Prettify(s)
41006}
41007
41008// GoString returns the string representation
41009func (s GetCardinalityInput) GoString() string {
41010	return s.String()
41011}
41012
41013// Validate inspects the fields of the type to determine if they are valid.
41014func (s *GetCardinalityInput) Validate() error {
41015	invalidParams := request.ErrInvalidParams{Context: "GetCardinalityInput"}
41016	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
41017		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
41018	}
41019	if s.IndexName != nil && len(*s.IndexName) < 1 {
41020		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
41021	}
41022	if s.QueryString == nil {
41023		invalidParams.Add(request.NewErrParamRequired("QueryString"))
41024	}
41025	if s.QueryString != nil && len(*s.QueryString) < 1 {
41026		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
41027	}
41028
41029	if invalidParams.Len() > 0 {
41030		return invalidParams
41031	}
41032	return nil
41033}
41034
41035// SetAggregationField sets the AggregationField field's value.
41036func (s *GetCardinalityInput) SetAggregationField(v string) *GetCardinalityInput {
41037	s.AggregationField = &v
41038	return s
41039}
41040
41041// SetIndexName sets the IndexName field's value.
41042func (s *GetCardinalityInput) SetIndexName(v string) *GetCardinalityInput {
41043	s.IndexName = &v
41044	return s
41045}
41046
41047// SetQueryString sets the QueryString field's value.
41048func (s *GetCardinalityInput) SetQueryString(v string) *GetCardinalityInput {
41049	s.QueryString = &v
41050	return s
41051}
41052
41053// SetQueryVersion sets the QueryVersion field's value.
41054func (s *GetCardinalityInput) SetQueryVersion(v string) *GetCardinalityInput {
41055	s.QueryVersion = &v
41056	return s
41057}
41058
41059type GetCardinalityOutput struct {
41060	_ struct{} `type:"structure"`
41061
41062	// The approximate count of unique values that match the query.
41063	Cardinality *int64 `locationName:"cardinality" type:"integer"`
41064}
41065
41066// String returns the string representation
41067func (s GetCardinalityOutput) String() string {
41068	return awsutil.Prettify(s)
41069}
41070
41071// GoString returns the string representation
41072func (s GetCardinalityOutput) GoString() string {
41073	return s.String()
41074}
41075
41076// SetCardinality sets the Cardinality field's value.
41077func (s *GetCardinalityOutput) SetCardinality(v int64) *GetCardinalityOutput {
41078	s.Cardinality = &v
41079	return s
41080}
41081
41082type GetEffectivePoliciesInput struct {
41083	_ struct{} `type:"structure"`
41084
41085	// The Cognito identity pool ID.
41086	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
41087
41088	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
41089	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
41090	// (region:id).
41091	Principal *string `locationName:"principal" type:"string"`
41092
41093	// The thing name.
41094	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
41095}
41096
41097// String returns the string representation
41098func (s GetEffectivePoliciesInput) String() string {
41099	return awsutil.Prettify(s)
41100}
41101
41102// GoString returns the string representation
41103func (s GetEffectivePoliciesInput) GoString() string {
41104	return s.String()
41105}
41106
41107// Validate inspects the fields of the type to determine if they are valid.
41108func (s *GetEffectivePoliciesInput) Validate() error {
41109	invalidParams := request.ErrInvalidParams{Context: "GetEffectivePoliciesInput"}
41110	if s.ThingName != nil && len(*s.ThingName) < 1 {
41111		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
41112	}
41113
41114	if invalidParams.Len() > 0 {
41115		return invalidParams
41116	}
41117	return nil
41118}
41119
41120// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
41121func (s *GetEffectivePoliciesInput) SetCognitoIdentityPoolId(v string) *GetEffectivePoliciesInput {
41122	s.CognitoIdentityPoolId = &v
41123	return s
41124}
41125
41126// SetPrincipal sets the Principal field's value.
41127func (s *GetEffectivePoliciesInput) SetPrincipal(v string) *GetEffectivePoliciesInput {
41128	s.Principal = &v
41129	return s
41130}
41131
41132// SetThingName sets the ThingName field's value.
41133func (s *GetEffectivePoliciesInput) SetThingName(v string) *GetEffectivePoliciesInput {
41134	s.ThingName = &v
41135	return s
41136}
41137
41138type GetEffectivePoliciesOutput struct {
41139	_ struct{} `type:"structure"`
41140
41141	// The effective policies.
41142	EffectivePolicies []*EffectivePolicy `locationName:"effectivePolicies" type:"list"`
41143}
41144
41145// String returns the string representation
41146func (s GetEffectivePoliciesOutput) String() string {
41147	return awsutil.Prettify(s)
41148}
41149
41150// GoString returns the string representation
41151func (s GetEffectivePoliciesOutput) GoString() string {
41152	return s.String()
41153}
41154
41155// SetEffectivePolicies sets the EffectivePolicies field's value.
41156func (s *GetEffectivePoliciesOutput) SetEffectivePolicies(v []*EffectivePolicy) *GetEffectivePoliciesOutput {
41157	s.EffectivePolicies = v
41158	return s
41159}
41160
41161type GetIndexingConfigurationInput struct {
41162	_ struct{} `type:"structure"`
41163}
41164
41165// String returns the string representation
41166func (s GetIndexingConfigurationInput) String() string {
41167	return awsutil.Prettify(s)
41168}
41169
41170// GoString returns the string representation
41171func (s GetIndexingConfigurationInput) GoString() string {
41172	return s.String()
41173}
41174
41175type GetIndexingConfigurationOutput struct {
41176	_ struct{} `type:"structure"`
41177
41178	// The index configuration.
41179	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
41180
41181	// Thing indexing configuration.
41182	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
41183}
41184
41185// String returns the string representation
41186func (s GetIndexingConfigurationOutput) String() string {
41187	return awsutil.Prettify(s)
41188}
41189
41190// GoString returns the string representation
41191func (s GetIndexingConfigurationOutput) GoString() string {
41192	return s.String()
41193}
41194
41195// SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
41196func (s *GetIndexingConfigurationOutput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *GetIndexingConfigurationOutput {
41197	s.ThingGroupIndexingConfiguration = v
41198	return s
41199}
41200
41201// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
41202func (s *GetIndexingConfigurationOutput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *GetIndexingConfigurationOutput {
41203	s.ThingIndexingConfiguration = v
41204	return s
41205}
41206
41207type GetJobDocumentInput struct {
41208	_ struct{} `type:"structure"`
41209
41210	// The unique identifier you assigned to this job when it was created.
41211	//
41212	// JobId is a required field
41213	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
41214}
41215
41216// String returns the string representation
41217func (s GetJobDocumentInput) String() string {
41218	return awsutil.Prettify(s)
41219}
41220
41221// GoString returns the string representation
41222func (s GetJobDocumentInput) GoString() string {
41223	return s.String()
41224}
41225
41226// Validate inspects the fields of the type to determine if they are valid.
41227func (s *GetJobDocumentInput) Validate() error {
41228	invalidParams := request.ErrInvalidParams{Context: "GetJobDocumentInput"}
41229	if s.JobId == nil {
41230		invalidParams.Add(request.NewErrParamRequired("JobId"))
41231	}
41232	if s.JobId != nil && len(*s.JobId) < 1 {
41233		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
41234	}
41235
41236	if invalidParams.Len() > 0 {
41237		return invalidParams
41238	}
41239	return nil
41240}
41241
41242// SetJobId sets the JobId field's value.
41243func (s *GetJobDocumentInput) SetJobId(v string) *GetJobDocumentInput {
41244	s.JobId = &v
41245	return s
41246}
41247
41248type GetJobDocumentOutput struct {
41249	_ struct{} `type:"structure"`
41250
41251	// The job document content.
41252	Document *string `locationName:"document" type:"string"`
41253}
41254
41255// String returns the string representation
41256func (s GetJobDocumentOutput) String() string {
41257	return awsutil.Prettify(s)
41258}
41259
41260// GoString returns the string representation
41261func (s GetJobDocumentOutput) GoString() string {
41262	return s.String()
41263}
41264
41265// SetDocument sets the Document field's value.
41266func (s *GetJobDocumentOutput) SetDocument(v string) *GetJobDocumentOutput {
41267	s.Document = &v
41268	return s
41269}
41270
41271// The input for the GetLoggingOptions operation.
41272type GetLoggingOptionsInput struct {
41273	_ struct{} `type:"structure"`
41274}
41275
41276// String returns the string representation
41277func (s GetLoggingOptionsInput) String() string {
41278	return awsutil.Prettify(s)
41279}
41280
41281// GoString returns the string representation
41282func (s GetLoggingOptionsInput) GoString() string {
41283	return s.String()
41284}
41285
41286// The output from the GetLoggingOptions operation.
41287type GetLoggingOptionsOutput struct {
41288	_ struct{} `type:"structure"`
41289
41290	// The logging level.
41291	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
41292
41293	// The ARN of the IAM role that grants access.
41294	RoleArn *string `locationName:"roleArn" type:"string"`
41295}
41296
41297// String returns the string representation
41298func (s GetLoggingOptionsOutput) String() string {
41299	return awsutil.Prettify(s)
41300}
41301
41302// GoString returns the string representation
41303func (s GetLoggingOptionsOutput) GoString() string {
41304	return s.String()
41305}
41306
41307// SetLogLevel sets the LogLevel field's value.
41308func (s *GetLoggingOptionsOutput) SetLogLevel(v string) *GetLoggingOptionsOutput {
41309	s.LogLevel = &v
41310	return s
41311}
41312
41313// SetRoleArn sets the RoleArn field's value.
41314func (s *GetLoggingOptionsOutput) SetRoleArn(v string) *GetLoggingOptionsOutput {
41315	s.RoleArn = &v
41316	return s
41317}
41318
41319type GetOTAUpdateInput struct {
41320	_ struct{} `type:"structure"`
41321
41322	// The OTA update ID.
41323	//
41324	// OtaUpdateId is a required field
41325	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
41326}
41327
41328// String returns the string representation
41329func (s GetOTAUpdateInput) String() string {
41330	return awsutil.Prettify(s)
41331}
41332
41333// GoString returns the string representation
41334func (s GetOTAUpdateInput) GoString() string {
41335	return s.String()
41336}
41337
41338// Validate inspects the fields of the type to determine if they are valid.
41339func (s *GetOTAUpdateInput) Validate() error {
41340	invalidParams := request.ErrInvalidParams{Context: "GetOTAUpdateInput"}
41341	if s.OtaUpdateId == nil {
41342		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
41343	}
41344	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
41345		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
41346	}
41347
41348	if invalidParams.Len() > 0 {
41349		return invalidParams
41350	}
41351	return nil
41352}
41353
41354// SetOtaUpdateId sets the OtaUpdateId field's value.
41355func (s *GetOTAUpdateInput) SetOtaUpdateId(v string) *GetOTAUpdateInput {
41356	s.OtaUpdateId = &v
41357	return s
41358}
41359
41360type GetOTAUpdateOutput struct {
41361	_ struct{} `type:"structure"`
41362
41363	// The OTA update info.
41364	OtaUpdateInfo *OTAUpdateInfo `locationName:"otaUpdateInfo" type:"structure"`
41365}
41366
41367// String returns the string representation
41368func (s GetOTAUpdateOutput) String() string {
41369	return awsutil.Prettify(s)
41370}
41371
41372// GoString returns the string representation
41373func (s GetOTAUpdateOutput) GoString() string {
41374	return s.String()
41375}
41376
41377// SetOtaUpdateInfo sets the OtaUpdateInfo field's value.
41378func (s *GetOTAUpdateOutput) SetOtaUpdateInfo(v *OTAUpdateInfo) *GetOTAUpdateOutput {
41379	s.OtaUpdateInfo = v
41380	return s
41381}
41382
41383type GetPercentilesInput struct {
41384	_ struct{} `type:"structure"`
41385
41386	// The field to aggregate.
41387	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
41388
41389	// The name of the index to search.
41390	IndexName *string `locationName:"indexName" min:"1" type:"string"`
41391
41392	// The percentile groups returned.
41393	Percents []*float64 `locationName:"percents" type:"list"`
41394
41395	// The search query string.
41396	//
41397	// QueryString is a required field
41398	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
41399
41400	// The query version.
41401	QueryVersion *string `locationName:"queryVersion" type:"string"`
41402}
41403
41404// String returns the string representation
41405func (s GetPercentilesInput) String() string {
41406	return awsutil.Prettify(s)
41407}
41408
41409// GoString returns the string representation
41410func (s GetPercentilesInput) GoString() string {
41411	return s.String()
41412}
41413
41414// Validate inspects the fields of the type to determine if they are valid.
41415func (s *GetPercentilesInput) Validate() error {
41416	invalidParams := request.ErrInvalidParams{Context: "GetPercentilesInput"}
41417	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
41418		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
41419	}
41420	if s.IndexName != nil && len(*s.IndexName) < 1 {
41421		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
41422	}
41423	if s.QueryString == nil {
41424		invalidParams.Add(request.NewErrParamRequired("QueryString"))
41425	}
41426	if s.QueryString != nil && len(*s.QueryString) < 1 {
41427		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
41428	}
41429
41430	if invalidParams.Len() > 0 {
41431		return invalidParams
41432	}
41433	return nil
41434}
41435
41436// SetAggregationField sets the AggregationField field's value.
41437func (s *GetPercentilesInput) SetAggregationField(v string) *GetPercentilesInput {
41438	s.AggregationField = &v
41439	return s
41440}
41441
41442// SetIndexName sets the IndexName field's value.
41443func (s *GetPercentilesInput) SetIndexName(v string) *GetPercentilesInput {
41444	s.IndexName = &v
41445	return s
41446}
41447
41448// SetPercents sets the Percents field's value.
41449func (s *GetPercentilesInput) SetPercents(v []*float64) *GetPercentilesInput {
41450	s.Percents = v
41451	return s
41452}
41453
41454// SetQueryString sets the QueryString field's value.
41455func (s *GetPercentilesInput) SetQueryString(v string) *GetPercentilesInput {
41456	s.QueryString = &v
41457	return s
41458}
41459
41460// SetQueryVersion sets the QueryVersion field's value.
41461func (s *GetPercentilesInput) SetQueryVersion(v string) *GetPercentilesInput {
41462	s.QueryVersion = &v
41463	return s
41464}
41465
41466type GetPercentilesOutput struct {
41467	_ struct{} `type:"structure"`
41468
41469	// The percentile values of the aggregated fields.
41470	Percentiles []*PercentPair `locationName:"percentiles" type:"list"`
41471}
41472
41473// String returns the string representation
41474func (s GetPercentilesOutput) String() string {
41475	return awsutil.Prettify(s)
41476}
41477
41478// GoString returns the string representation
41479func (s GetPercentilesOutput) GoString() string {
41480	return s.String()
41481}
41482
41483// SetPercentiles sets the Percentiles field's value.
41484func (s *GetPercentilesOutput) SetPercentiles(v []*PercentPair) *GetPercentilesOutput {
41485	s.Percentiles = v
41486	return s
41487}
41488
41489// The input for the GetPolicy operation.
41490type GetPolicyInput struct {
41491	_ struct{} `type:"structure"`
41492
41493	// The name of the policy.
41494	//
41495	// PolicyName is a required field
41496	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
41497}
41498
41499// String returns the string representation
41500func (s GetPolicyInput) String() string {
41501	return awsutil.Prettify(s)
41502}
41503
41504// GoString returns the string representation
41505func (s GetPolicyInput) GoString() string {
41506	return s.String()
41507}
41508
41509// Validate inspects the fields of the type to determine if they are valid.
41510func (s *GetPolicyInput) Validate() error {
41511	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
41512	if s.PolicyName == nil {
41513		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
41514	}
41515	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
41516		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
41517	}
41518
41519	if invalidParams.Len() > 0 {
41520		return invalidParams
41521	}
41522	return nil
41523}
41524
41525// SetPolicyName sets the PolicyName field's value.
41526func (s *GetPolicyInput) SetPolicyName(v string) *GetPolicyInput {
41527	s.PolicyName = &v
41528	return s
41529}
41530
41531// The output from the GetPolicy operation.
41532type GetPolicyOutput struct {
41533	_ struct{} `type:"structure"`
41534
41535	// The date the policy was created.
41536	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
41537
41538	// The default policy version ID.
41539	DefaultVersionId *string `locationName:"defaultVersionId" type:"string"`
41540
41541	// The generation ID of the policy.
41542	GenerationId *string `locationName:"generationId" type:"string"`
41543
41544	// The date the policy was last modified.
41545	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
41546
41547	// The policy ARN.
41548	PolicyArn *string `locationName:"policyArn" type:"string"`
41549
41550	// The JSON document that describes the policy.
41551	PolicyDocument *string `locationName:"policyDocument" type:"string"`
41552
41553	// The policy name.
41554	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
41555}
41556
41557// String returns the string representation
41558func (s GetPolicyOutput) String() string {
41559	return awsutil.Prettify(s)
41560}
41561
41562// GoString returns the string representation
41563func (s GetPolicyOutput) GoString() string {
41564	return s.String()
41565}
41566
41567// SetCreationDate sets the CreationDate field's value.
41568func (s *GetPolicyOutput) SetCreationDate(v time.Time) *GetPolicyOutput {
41569	s.CreationDate = &v
41570	return s
41571}
41572
41573// SetDefaultVersionId sets the DefaultVersionId field's value.
41574func (s *GetPolicyOutput) SetDefaultVersionId(v string) *GetPolicyOutput {
41575	s.DefaultVersionId = &v
41576	return s
41577}
41578
41579// SetGenerationId sets the GenerationId field's value.
41580func (s *GetPolicyOutput) SetGenerationId(v string) *GetPolicyOutput {
41581	s.GenerationId = &v
41582	return s
41583}
41584
41585// SetLastModifiedDate sets the LastModifiedDate field's value.
41586func (s *GetPolicyOutput) SetLastModifiedDate(v time.Time) *GetPolicyOutput {
41587	s.LastModifiedDate = &v
41588	return s
41589}
41590
41591// SetPolicyArn sets the PolicyArn field's value.
41592func (s *GetPolicyOutput) SetPolicyArn(v string) *GetPolicyOutput {
41593	s.PolicyArn = &v
41594	return s
41595}
41596
41597// SetPolicyDocument sets the PolicyDocument field's value.
41598func (s *GetPolicyOutput) SetPolicyDocument(v string) *GetPolicyOutput {
41599	s.PolicyDocument = &v
41600	return s
41601}
41602
41603// SetPolicyName sets the PolicyName field's value.
41604func (s *GetPolicyOutput) SetPolicyName(v string) *GetPolicyOutput {
41605	s.PolicyName = &v
41606	return s
41607}
41608
41609// The input for the GetPolicyVersion operation.
41610type GetPolicyVersionInput struct {
41611	_ struct{} `type:"structure"`
41612
41613	// The name of the policy.
41614	//
41615	// PolicyName is a required field
41616	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
41617
41618	// The policy version ID.
41619	//
41620	// PolicyVersionId is a required field
41621	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
41622}
41623
41624// String returns the string representation
41625func (s GetPolicyVersionInput) String() string {
41626	return awsutil.Prettify(s)
41627}
41628
41629// GoString returns the string representation
41630func (s GetPolicyVersionInput) GoString() string {
41631	return s.String()
41632}
41633
41634// Validate inspects the fields of the type to determine if they are valid.
41635func (s *GetPolicyVersionInput) Validate() error {
41636	invalidParams := request.ErrInvalidParams{Context: "GetPolicyVersionInput"}
41637	if s.PolicyName == nil {
41638		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
41639	}
41640	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
41641		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
41642	}
41643	if s.PolicyVersionId == nil {
41644		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
41645	}
41646	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
41647		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
41648	}
41649
41650	if invalidParams.Len() > 0 {
41651		return invalidParams
41652	}
41653	return nil
41654}
41655
41656// SetPolicyName sets the PolicyName field's value.
41657func (s *GetPolicyVersionInput) SetPolicyName(v string) *GetPolicyVersionInput {
41658	s.PolicyName = &v
41659	return s
41660}
41661
41662// SetPolicyVersionId sets the PolicyVersionId field's value.
41663func (s *GetPolicyVersionInput) SetPolicyVersionId(v string) *GetPolicyVersionInput {
41664	s.PolicyVersionId = &v
41665	return s
41666}
41667
41668// The output from the GetPolicyVersion operation.
41669type GetPolicyVersionOutput struct {
41670	_ struct{} `type:"structure"`
41671
41672	// The date the policy was created.
41673	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
41674
41675	// The generation ID of the policy version.
41676	GenerationId *string `locationName:"generationId" type:"string"`
41677
41678	// Specifies whether the policy version is the default.
41679	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
41680
41681	// The date the policy was last modified.
41682	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
41683
41684	// The policy ARN.
41685	PolicyArn *string `locationName:"policyArn" type:"string"`
41686
41687	// The JSON document that describes the policy.
41688	PolicyDocument *string `locationName:"policyDocument" type:"string"`
41689
41690	// The policy name.
41691	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
41692
41693	// The policy version ID.
41694	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
41695}
41696
41697// String returns the string representation
41698func (s GetPolicyVersionOutput) String() string {
41699	return awsutil.Prettify(s)
41700}
41701
41702// GoString returns the string representation
41703func (s GetPolicyVersionOutput) GoString() string {
41704	return s.String()
41705}
41706
41707// SetCreationDate sets the CreationDate field's value.
41708func (s *GetPolicyVersionOutput) SetCreationDate(v time.Time) *GetPolicyVersionOutput {
41709	s.CreationDate = &v
41710	return s
41711}
41712
41713// SetGenerationId sets the GenerationId field's value.
41714func (s *GetPolicyVersionOutput) SetGenerationId(v string) *GetPolicyVersionOutput {
41715	s.GenerationId = &v
41716	return s
41717}
41718
41719// SetIsDefaultVersion sets the IsDefaultVersion field's value.
41720func (s *GetPolicyVersionOutput) SetIsDefaultVersion(v bool) *GetPolicyVersionOutput {
41721	s.IsDefaultVersion = &v
41722	return s
41723}
41724
41725// SetLastModifiedDate sets the LastModifiedDate field's value.
41726func (s *GetPolicyVersionOutput) SetLastModifiedDate(v time.Time) *GetPolicyVersionOutput {
41727	s.LastModifiedDate = &v
41728	return s
41729}
41730
41731// SetPolicyArn sets the PolicyArn field's value.
41732func (s *GetPolicyVersionOutput) SetPolicyArn(v string) *GetPolicyVersionOutput {
41733	s.PolicyArn = &v
41734	return s
41735}
41736
41737// SetPolicyDocument sets the PolicyDocument field's value.
41738func (s *GetPolicyVersionOutput) SetPolicyDocument(v string) *GetPolicyVersionOutput {
41739	s.PolicyDocument = &v
41740	return s
41741}
41742
41743// SetPolicyName sets the PolicyName field's value.
41744func (s *GetPolicyVersionOutput) SetPolicyName(v string) *GetPolicyVersionOutput {
41745	s.PolicyName = &v
41746	return s
41747}
41748
41749// SetPolicyVersionId sets the PolicyVersionId field's value.
41750func (s *GetPolicyVersionOutput) SetPolicyVersionId(v string) *GetPolicyVersionOutput {
41751	s.PolicyVersionId = &v
41752	return s
41753}
41754
41755// The input to the GetRegistrationCode operation.
41756type GetRegistrationCodeInput struct {
41757	_ struct{} `type:"structure"`
41758}
41759
41760// String returns the string representation
41761func (s GetRegistrationCodeInput) String() string {
41762	return awsutil.Prettify(s)
41763}
41764
41765// GoString returns the string representation
41766func (s GetRegistrationCodeInput) GoString() string {
41767	return s.String()
41768}
41769
41770// The output from the GetRegistrationCode operation.
41771type GetRegistrationCodeOutput struct {
41772	_ struct{} `type:"structure"`
41773
41774	// The CA certificate registration code.
41775	RegistrationCode *string `locationName:"registrationCode" min:"64" type:"string"`
41776}
41777
41778// String returns the string representation
41779func (s GetRegistrationCodeOutput) String() string {
41780	return awsutil.Prettify(s)
41781}
41782
41783// GoString returns the string representation
41784func (s GetRegistrationCodeOutput) GoString() string {
41785	return s.String()
41786}
41787
41788// SetRegistrationCode sets the RegistrationCode field's value.
41789func (s *GetRegistrationCodeOutput) SetRegistrationCode(v string) *GetRegistrationCodeOutput {
41790	s.RegistrationCode = &v
41791	return s
41792}
41793
41794type GetStatisticsInput struct {
41795	_ struct{} `type:"structure"`
41796
41797	// The aggregation field name.
41798	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
41799
41800	// The name of the index to search. The default value is AWS_Things.
41801	IndexName *string `locationName:"indexName" min:"1" type:"string"`
41802
41803	// The query used to search. You can specify "*" for the query string to get
41804	// the count of all indexed things in your Amazon Web Services account.
41805	//
41806	// QueryString is a required field
41807	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
41808
41809	// The version of the query used to search.
41810	QueryVersion *string `locationName:"queryVersion" type:"string"`
41811}
41812
41813// String returns the string representation
41814func (s GetStatisticsInput) String() string {
41815	return awsutil.Prettify(s)
41816}
41817
41818// GoString returns the string representation
41819func (s GetStatisticsInput) GoString() string {
41820	return s.String()
41821}
41822
41823// Validate inspects the fields of the type to determine if they are valid.
41824func (s *GetStatisticsInput) Validate() error {
41825	invalidParams := request.ErrInvalidParams{Context: "GetStatisticsInput"}
41826	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
41827		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
41828	}
41829	if s.IndexName != nil && len(*s.IndexName) < 1 {
41830		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
41831	}
41832	if s.QueryString == nil {
41833		invalidParams.Add(request.NewErrParamRequired("QueryString"))
41834	}
41835	if s.QueryString != nil && len(*s.QueryString) < 1 {
41836		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
41837	}
41838
41839	if invalidParams.Len() > 0 {
41840		return invalidParams
41841	}
41842	return nil
41843}
41844
41845// SetAggregationField sets the AggregationField field's value.
41846func (s *GetStatisticsInput) SetAggregationField(v string) *GetStatisticsInput {
41847	s.AggregationField = &v
41848	return s
41849}
41850
41851// SetIndexName sets the IndexName field's value.
41852func (s *GetStatisticsInput) SetIndexName(v string) *GetStatisticsInput {
41853	s.IndexName = &v
41854	return s
41855}
41856
41857// SetQueryString sets the QueryString field's value.
41858func (s *GetStatisticsInput) SetQueryString(v string) *GetStatisticsInput {
41859	s.QueryString = &v
41860	return s
41861}
41862
41863// SetQueryVersion sets the QueryVersion field's value.
41864func (s *GetStatisticsInput) SetQueryVersion(v string) *GetStatisticsInput {
41865	s.QueryVersion = &v
41866	return s
41867}
41868
41869type GetStatisticsOutput struct {
41870	_ struct{} `type:"structure"`
41871
41872	// The statistics returned by the Fleet Indexing service based on the query
41873	// and aggregation field.
41874	Statistics *Statistics `locationName:"statistics" type:"structure"`
41875}
41876
41877// String returns the string representation
41878func (s GetStatisticsOutput) String() string {
41879	return awsutil.Prettify(s)
41880}
41881
41882// GoString returns the string representation
41883func (s GetStatisticsOutput) GoString() string {
41884	return s.String()
41885}
41886
41887// SetStatistics sets the Statistics field's value.
41888func (s *GetStatisticsOutput) SetStatistics(v *Statistics) *GetStatisticsOutput {
41889	s.Statistics = v
41890	return s
41891}
41892
41893type GetTopicRuleDestinationInput struct {
41894	_ struct{} `type:"structure"`
41895
41896	// The ARN of the topic rule destination.
41897	//
41898	// Arn is a required field
41899	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
41900}
41901
41902// String returns the string representation
41903func (s GetTopicRuleDestinationInput) String() string {
41904	return awsutil.Prettify(s)
41905}
41906
41907// GoString returns the string representation
41908func (s GetTopicRuleDestinationInput) GoString() string {
41909	return s.String()
41910}
41911
41912// Validate inspects the fields of the type to determine if they are valid.
41913func (s *GetTopicRuleDestinationInput) Validate() error {
41914	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleDestinationInput"}
41915	if s.Arn == nil {
41916		invalidParams.Add(request.NewErrParamRequired("Arn"))
41917	}
41918	if s.Arn != nil && len(*s.Arn) < 1 {
41919		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
41920	}
41921
41922	if invalidParams.Len() > 0 {
41923		return invalidParams
41924	}
41925	return nil
41926}
41927
41928// SetArn sets the Arn field's value.
41929func (s *GetTopicRuleDestinationInput) SetArn(v string) *GetTopicRuleDestinationInput {
41930	s.Arn = &v
41931	return s
41932}
41933
41934type GetTopicRuleDestinationOutput struct {
41935	_ struct{} `type:"structure"`
41936
41937	// The topic rule destination.
41938	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
41939}
41940
41941// String returns the string representation
41942func (s GetTopicRuleDestinationOutput) String() string {
41943	return awsutil.Prettify(s)
41944}
41945
41946// GoString returns the string representation
41947func (s GetTopicRuleDestinationOutput) GoString() string {
41948	return s.String()
41949}
41950
41951// SetTopicRuleDestination sets the TopicRuleDestination field's value.
41952func (s *GetTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *GetTopicRuleDestinationOutput {
41953	s.TopicRuleDestination = v
41954	return s
41955}
41956
41957// The input for the GetTopicRule operation.
41958type GetTopicRuleInput struct {
41959	_ struct{} `type:"structure"`
41960
41961	// The name of the rule.
41962	//
41963	// RuleName is a required field
41964	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
41965}
41966
41967// String returns the string representation
41968func (s GetTopicRuleInput) String() string {
41969	return awsutil.Prettify(s)
41970}
41971
41972// GoString returns the string representation
41973func (s GetTopicRuleInput) GoString() string {
41974	return s.String()
41975}
41976
41977// Validate inspects the fields of the type to determine if they are valid.
41978func (s *GetTopicRuleInput) Validate() error {
41979	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleInput"}
41980	if s.RuleName == nil {
41981		invalidParams.Add(request.NewErrParamRequired("RuleName"))
41982	}
41983	if s.RuleName != nil && len(*s.RuleName) < 1 {
41984		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
41985	}
41986
41987	if invalidParams.Len() > 0 {
41988		return invalidParams
41989	}
41990	return nil
41991}
41992
41993// SetRuleName sets the RuleName field's value.
41994func (s *GetTopicRuleInput) SetRuleName(v string) *GetTopicRuleInput {
41995	s.RuleName = &v
41996	return s
41997}
41998
41999// The output from the GetTopicRule operation.
42000type GetTopicRuleOutput struct {
42001	_ struct{} `type:"structure"`
42002
42003	// The rule.
42004	Rule *TopicRule `locationName:"rule" type:"structure"`
42005
42006	// The rule ARN.
42007	RuleArn *string `locationName:"ruleArn" type:"string"`
42008}
42009
42010// String returns the string representation
42011func (s GetTopicRuleOutput) String() string {
42012	return awsutil.Prettify(s)
42013}
42014
42015// GoString returns the string representation
42016func (s GetTopicRuleOutput) GoString() string {
42017	return s.String()
42018}
42019
42020// SetRule sets the Rule field's value.
42021func (s *GetTopicRuleOutput) SetRule(v *TopicRule) *GetTopicRuleOutput {
42022	s.Rule = v
42023	return s
42024}
42025
42026// SetRuleArn sets the RuleArn field's value.
42027func (s *GetTopicRuleOutput) SetRuleArn(v string) *GetTopicRuleOutput {
42028	s.RuleArn = &v
42029	return s
42030}
42031
42032type GetV2LoggingOptionsInput struct {
42033	_ struct{} `type:"structure"`
42034}
42035
42036// String returns the string representation
42037func (s GetV2LoggingOptionsInput) String() string {
42038	return awsutil.Prettify(s)
42039}
42040
42041// GoString returns the string representation
42042func (s GetV2LoggingOptionsInput) GoString() string {
42043	return s.String()
42044}
42045
42046type GetV2LoggingOptionsOutput struct {
42047	_ struct{} `type:"structure"`
42048
42049	// The default log level.
42050	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
42051
42052	// Disables all logs.
42053	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
42054
42055	// The IAM role ARN IoT uses to write to your CloudWatch logs.
42056	RoleArn *string `locationName:"roleArn" type:"string"`
42057}
42058
42059// String returns the string representation
42060func (s GetV2LoggingOptionsOutput) String() string {
42061	return awsutil.Prettify(s)
42062}
42063
42064// GoString returns the string representation
42065func (s GetV2LoggingOptionsOutput) GoString() string {
42066	return s.String()
42067}
42068
42069// SetDefaultLogLevel sets the DefaultLogLevel field's value.
42070func (s *GetV2LoggingOptionsOutput) SetDefaultLogLevel(v string) *GetV2LoggingOptionsOutput {
42071	s.DefaultLogLevel = &v
42072	return s
42073}
42074
42075// SetDisableAllLogs sets the DisableAllLogs field's value.
42076func (s *GetV2LoggingOptionsOutput) SetDisableAllLogs(v bool) *GetV2LoggingOptionsOutput {
42077	s.DisableAllLogs = &v
42078	return s
42079}
42080
42081// SetRoleArn sets the RoleArn field's value.
42082func (s *GetV2LoggingOptionsOutput) SetRoleArn(v string) *GetV2LoggingOptionsOutput {
42083	s.RoleArn = &v
42084	return s
42085}
42086
42087// The name and ARN of a group.
42088type GroupNameAndArn struct {
42089	_ struct{} `type:"structure"`
42090
42091	// The group ARN.
42092	GroupArn *string `locationName:"groupArn" type:"string"`
42093
42094	// The group name.
42095	GroupName *string `locationName:"groupName" min:"1" type:"string"`
42096}
42097
42098// String returns the string representation
42099func (s GroupNameAndArn) String() string {
42100	return awsutil.Prettify(s)
42101}
42102
42103// GoString returns the string representation
42104func (s GroupNameAndArn) GoString() string {
42105	return s.String()
42106}
42107
42108// SetGroupArn sets the GroupArn field's value.
42109func (s *GroupNameAndArn) SetGroupArn(v string) *GroupNameAndArn {
42110	s.GroupArn = &v
42111	return s
42112}
42113
42114// SetGroupName sets the GroupName field's value.
42115func (s *GroupNameAndArn) SetGroupName(v string) *GroupNameAndArn {
42116	s.GroupName = &v
42117	return s
42118}
42119
42120// Send data to an HTTPS endpoint.
42121type HttpAction struct {
42122	_ struct{} `type:"structure"`
42123
42124	// The authentication method to use when sending data to an HTTPS endpoint.
42125	Auth *HttpAuthorization `locationName:"auth" type:"structure"`
42126
42127	// The URL to which IoT sends a confirmation message. The value of the confirmation
42128	// URL must be a prefix of the endpoint URL. If you do not specify a confirmation
42129	// URL IoT uses the endpoint URL as the confirmation URL. If you use substitution
42130	// templates in the confirmationUrl, you must create and enable topic rule destinations
42131	// that match each possible value of the substitution template before traffic
42132	// is allowed to your endpoint URL.
42133	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
42134
42135	// The HTTP headers to send with the message data.
42136	Headers []*HttpActionHeader `locationName:"headers" type:"list"`
42137
42138	// The endpoint URL. If substitution templates are used in the URL, you must
42139	// also specify a confirmationUrl. If this is a new destination, a new TopicRuleDestination
42140	// is created if possible.
42141	//
42142	// Url is a required field
42143	Url *string `locationName:"url" type:"string" required:"true"`
42144}
42145
42146// String returns the string representation
42147func (s HttpAction) String() string {
42148	return awsutil.Prettify(s)
42149}
42150
42151// GoString returns the string representation
42152func (s HttpAction) GoString() string {
42153	return s.String()
42154}
42155
42156// Validate inspects the fields of the type to determine if they are valid.
42157func (s *HttpAction) Validate() error {
42158	invalidParams := request.ErrInvalidParams{Context: "HttpAction"}
42159	if s.Url == nil {
42160		invalidParams.Add(request.NewErrParamRequired("Url"))
42161	}
42162	if s.Auth != nil {
42163		if err := s.Auth.Validate(); err != nil {
42164			invalidParams.AddNested("Auth", err.(request.ErrInvalidParams))
42165		}
42166	}
42167	if s.Headers != nil {
42168		for i, v := range s.Headers {
42169			if v == nil {
42170				continue
42171			}
42172			if err := v.Validate(); err != nil {
42173				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Headers", i), err.(request.ErrInvalidParams))
42174			}
42175		}
42176	}
42177
42178	if invalidParams.Len() > 0 {
42179		return invalidParams
42180	}
42181	return nil
42182}
42183
42184// SetAuth sets the Auth field's value.
42185func (s *HttpAction) SetAuth(v *HttpAuthorization) *HttpAction {
42186	s.Auth = v
42187	return s
42188}
42189
42190// SetConfirmationUrl sets the ConfirmationUrl field's value.
42191func (s *HttpAction) SetConfirmationUrl(v string) *HttpAction {
42192	s.ConfirmationUrl = &v
42193	return s
42194}
42195
42196// SetHeaders sets the Headers field's value.
42197func (s *HttpAction) SetHeaders(v []*HttpActionHeader) *HttpAction {
42198	s.Headers = v
42199	return s
42200}
42201
42202// SetUrl sets the Url field's value.
42203func (s *HttpAction) SetUrl(v string) *HttpAction {
42204	s.Url = &v
42205	return s
42206}
42207
42208// The HTTP action header.
42209type HttpActionHeader struct {
42210	_ struct{} `type:"structure"`
42211
42212	// The HTTP header key.
42213	//
42214	// Key is a required field
42215	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
42216
42217	// The HTTP header value. Substitution templates are supported.
42218	//
42219	// Value is a required field
42220	Value *string `locationName:"value" type:"string" required:"true"`
42221}
42222
42223// String returns the string representation
42224func (s HttpActionHeader) String() string {
42225	return awsutil.Prettify(s)
42226}
42227
42228// GoString returns the string representation
42229func (s HttpActionHeader) GoString() string {
42230	return s.String()
42231}
42232
42233// Validate inspects the fields of the type to determine if they are valid.
42234func (s *HttpActionHeader) Validate() error {
42235	invalidParams := request.ErrInvalidParams{Context: "HttpActionHeader"}
42236	if s.Key == nil {
42237		invalidParams.Add(request.NewErrParamRequired("Key"))
42238	}
42239	if s.Key != nil && len(*s.Key) < 1 {
42240		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
42241	}
42242	if s.Value == nil {
42243		invalidParams.Add(request.NewErrParamRequired("Value"))
42244	}
42245
42246	if invalidParams.Len() > 0 {
42247		return invalidParams
42248	}
42249	return nil
42250}
42251
42252// SetKey sets the Key field's value.
42253func (s *HttpActionHeader) SetKey(v string) *HttpActionHeader {
42254	s.Key = &v
42255	return s
42256}
42257
42258// SetValue sets the Value field's value.
42259func (s *HttpActionHeader) SetValue(v string) *HttpActionHeader {
42260	s.Value = &v
42261	return s
42262}
42263
42264// The authorization method used to send messages.
42265type HttpAuthorization struct {
42266	_ struct{} `type:"structure"`
42267
42268	// Use Sig V4 authorization. For more information, see Signature Version 4 Signing
42269	// Process (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
42270	Sigv4 *SigV4Authorization `locationName:"sigv4" type:"structure"`
42271}
42272
42273// String returns the string representation
42274func (s HttpAuthorization) String() string {
42275	return awsutil.Prettify(s)
42276}
42277
42278// GoString returns the string representation
42279func (s HttpAuthorization) GoString() string {
42280	return s.String()
42281}
42282
42283// Validate inspects the fields of the type to determine if they are valid.
42284func (s *HttpAuthorization) Validate() error {
42285	invalidParams := request.ErrInvalidParams{Context: "HttpAuthorization"}
42286	if s.Sigv4 != nil {
42287		if err := s.Sigv4.Validate(); err != nil {
42288			invalidParams.AddNested("Sigv4", err.(request.ErrInvalidParams))
42289		}
42290	}
42291
42292	if invalidParams.Len() > 0 {
42293		return invalidParams
42294	}
42295	return nil
42296}
42297
42298// SetSigv4 sets the Sigv4 field's value.
42299func (s *HttpAuthorization) SetSigv4(v *SigV4Authorization) *HttpAuthorization {
42300	s.Sigv4 = v
42301	return s
42302}
42303
42304// Specifies the HTTP context to use for the test authorizer request.
42305type HttpContext struct {
42306	_ struct{} `type:"structure"`
42307
42308	// The header keys and values in an HTTP authorization request.
42309	Headers map[string]*string `locationName:"headers" type:"map"`
42310
42311	// The query string keys and values in an HTTP authorization request.
42312	QueryString *string `locationName:"queryString" min:"1" type:"string"`
42313}
42314
42315// String returns the string representation
42316func (s HttpContext) String() string {
42317	return awsutil.Prettify(s)
42318}
42319
42320// GoString returns the string representation
42321func (s HttpContext) GoString() string {
42322	return s.String()
42323}
42324
42325// Validate inspects the fields of the type to determine if they are valid.
42326func (s *HttpContext) Validate() error {
42327	invalidParams := request.ErrInvalidParams{Context: "HttpContext"}
42328	if s.QueryString != nil && len(*s.QueryString) < 1 {
42329		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
42330	}
42331
42332	if invalidParams.Len() > 0 {
42333		return invalidParams
42334	}
42335	return nil
42336}
42337
42338// SetHeaders sets the Headers field's value.
42339func (s *HttpContext) SetHeaders(v map[string]*string) *HttpContext {
42340	s.Headers = v
42341	return s
42342}
42343
42344// SetQueryString sets the QueryString field's value.
42345func (s *HttpContext) SetQueryString(v string) *HttpContext {
42346	s.QueryString = &v
42347	return s
42348}
42349
42350// HTTP URL destination configuration used by the topic rule's HTTP action.
42351type HttpUrlDestinationConfiguration struct {
42352	_ struct{} `type:"structure"`
42353
42354	// The URL IoT uses to confirm ownership of or access to the topic rule destination
42355	// URL.
42356	//
42357	// ConfirmationUrl is a required field
42358	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string" required:"true"`
42359}
42360
42361// String returns the string representation
42362func (s HttpUrlDestinationConfiguration) String() string {
42363	return awsutil.Prettify(s)
42364}
42365
42366// GoString returns the string representation
42367func (s HttpUrlDestinationConfiguration) GoString() string {
42368	return s.String()
42369}
42370
42371// Validate inspects the fields of the type to determine if they are valid.
42372func (s *HttpUrlDestinationConfiguration) Validate() error {
42373	invalidParams := request.ErrInvalidParams{Context: "HttpUrlDestinationConfiguration"}
42374	if s.ConfirmationUrl == nil {
42375		invalidParams.Add(request.NewErrParamRequired("ConfirmationUrl"))
42376	}
42377
42378	if invalidParams.Len() > 0 {
42379		return invalidParams
42380	}
42381	return nil
42382}
42383
42384// SetConfirmationUrl sets the ConfirmationUrl field's value.
42385func (s *HttpUrlDestinationConfiguration) SetConfirmationUrl(v string) *HttpUrlDestinationConfiguration {
42386	s.ConfirmationUrl = &v
42387	return s
42388}
42389
42390// HTTP URL destination properties.
42391type HttpUrlDestinationProperties struct {
42392	_ struct{} `type:"structure"`
42393
42394	// The URL used to confirm the HTTP topic rule destination URL.
42395	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
42396}
42397
42398// String returns the string representation
42399func (s HttpUrlDestinationProperties) String() string {
42400	return awsutil.Prettify(s)
42401}
42402
42403// GoString returns the string representation
42404func (s HttpUrlDestinationProperties) GoString() string {
42405	return s.String()
42406}
42407
42408// SetConfirmationUrl sets the ConfirmationUrl field's value.
42409func (s *HttpUrlDestinationProperties) SetConfirmationUrl(v string) *HttpUrlDestinationProperties {
42410	s.ConfirmationUrl = &v
42411	return s
42412}
42413
42414// Information about an HTTP URL destination.
42415type HttpUrlDestinationSummary struct {
42416	_ struct{} `type:"structure"`
42417
42418	// The URL used to confirm ownership of or access to the HTTP topic rule destination
42419	// URL.
42420	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
42421}
42422
42423// String returns the string representation
42424func (s HttpUrlDestinationSummary) String() string {
42425	return awsutil.Prettify(s)
42426}
42427
42428// GoString returns the string representation
42429func (s HttpUrlDestinationSummary) GoString() string {
42430	return s.String()
42431}
42432
42433// SetConfirmationUrl sets the ConfirmationUrl field's value.
42434func (s *HttpUrlDestinationSummary) SetConfirmationUrl(v string) *HttpUrlDestinationSummary {
42435	s.ConfirmationUrl = &v
42436	return s
42437}
42438
42439// Information that implicitly denies authorization. When policy doesn't explicitly
42440// deny or allow an action on a resource it is considered an implicit deny.
42441type ImplicitDeny struct {
42442	_ struct{} `type:"structure"`
42443
42444	// Policies that don't contain a matching allow or deny statement for the specified
42445	// action on the specified resource.
42446	Policies []*Policy `locationName:"policies" type:"list"`
42447}
42448
42449// String returns the string representation
42450func (s ImplicitDeny) String() string {
42451	return awsutil.Prettify(s)
42452}
42453
42454// GoString returns the string representation
42455func (s ImplicitDeny) GoString() string {
42456	return s.String()
42457}
42458
42459// SetPolicies sets the Policies field's value.
42460func (s *ImplicitDeny) SetPolicies(v []*Policy) *ImplicitDeny {
42461	s.Policies = v
42462	return s
42463}
42464
42465// The index is not ready.
42466type IndexNotReadyException struct {
42467	_            struct{}                  `type:"structure"`
42468	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
42469
42470	// The message for the exception.
42471	Message_ *string `locationName:"message" type:"string"`
42472}
42473
42474// String returns the string representation
42475func (s IndexNotReadyException) String() string {
42476	return awsutil.Prettify(s)
42477}
42478
42479// GoString returns the string representation
42480func (s IndexNotReadyException) GoString() string {
42481	return s.String()
42482}
42483
42484func newErrorIndexNotReadyException(v protocol.ResponseMetadata) error {
42485	return &IndexNotReadyException{
42486		RespMetadata: v,
42487	}
42488}
42489
42490// Code returns the exception type name.
42491func (s *IndexNotReadyException) Code() string {
42492	return "IndexNotReadyException"
42493}
42494
42495// Message returns the exception's message.
42496func (s *IndexNotReadyException) Message() string {
42497	if s.Message_ != nil {
42498		return *s.Message_
42499	}
42500	return ""
42501}
42502
42503// OrigErr always returns nil, satisfies awserr.Error interface.
42504func (s *IndexNotReadyException) OrigErr() error {
42505	return nil
42506}
42507
42508func (s *IndexNotReadyException) Error() string {
42509	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
42510}
42511
42512// Status code returns the HTTP status code for the request's response error.
42513func (s *IndexNotReadyException) StatusCode() int {
42514	return s.RespMetadata.StatusCode
42515}
42516
42517// RequestID returns the service's response RequestID for request.
42518func (s *IndexNotReadyException) RequestID() string {
42519	return s.RespMetadata.RequestID
42520}
42521
42522// An unexpected error has occurred.
42523type InternalException struct {
42524	_            struct{}                  `type:"structure"`
42525	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
42526
42527	// The message for the exception.
42528	Message_ *string `locationName:"message" type:"string"`
42529}
42530
42531// String returns the string representation
42532func (s InternalException) String() string {
42533	return awsutil.Prettify(s)
42534}
42535
42536// GoString returns the string representation
42537func (s InternalException) GoString() string {
42538	return s.String()
42539}
42540
42541func newErrorInternalException(v protocol.ResponseMetadata) error {
42542	return &InternalException{
42543		RespMetadata: v,
42544	}
42545}
42546
42547// Code returns the exception type name.
42548func (s *InternalException) Code() string {
42549	return "InternalException"
42550}
42551
42552// Message returns the exception's message.
42553func (s *InternalException) Message() string {
42554	if s.Message_ != nil {
42555		return *s.Message_
42556	}
42557	return ""
42558}
42559
42560// OrigErr always returns nil, satisfies awserr.Error interface.
42561func (s *InternalException) OrigErr() error {
42562	return nil
42563}
42564
42565func (s *InternalException) Error() string {
42566	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
42567}
42568
42569// Status code returns the HTTP status code for the request's response error.
42570func (s *InternalException) StatusCode() int {
42571	return s.RespMetadata.StatusCode
42572}
42573
42574// RequestID returns the service's response RequestID for request.
42575func (s *InternalException) RequestID() string {
42576	return s.RespMetadata.RequestID
42577}
42578
42579// An unexpected error has occurred.
42580type InternalFailureException struct {
42581	_            struct{}                  `type:"structure"`
42582	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
42583
42584	// The message for the exception.
42585	Message_ *string `locationName:"message" type:"string"`
42586}
42587
42588// String returns the string representation
42589func (s InternalFailureException) String() string {
42590	return awsutil.Prettify(s)
42591}
42592
42593// GoString returns the string representation
42594func (s InternalFailureException) GoString() string {
42595	return s.String()
42596}
42597
42598func newErrorInternalFailureException(v protocol.ResponseMetadata) error {
42599	return &InternalFailureException{
42600		RespMetadata: v,
42601	}
42602}
42603
42604// Code returns the exception type name.
42605func (s *InternalFailureException) Code() string {
42606	return "InternalFailureException"
42607}
42608
42609// Message returns the exception's message.
42610func (s *InternalFailureException) Message() string {
42611	if s.Message_ != nil {
42612		return *s.Message_
42613	}
42614	return ""
42615}
42616
42617// OrigErr always returns nil, satisfies awserr.Error interface.
42618func (s *InternalFailureException) OrigErr() error {
42619	return nil
42620}
42621
42622func (s *InternalFailureException) Error() string {
42623	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
42624}
42625
42626// Status code returns the HTTP status code for the request's response error.
42627func (s *InternalFailureException) StatusCode() int {
42628	return s.RespMetadata.StatusCode
42629}
42630
42631// RequestID returns the service's response RequestID for request.
42632func (s *InternalFailureException) RequestID() string {
42633	return s.RespMetadata.RequestID
42634}
42635
42636// The aggregation is invalid.
42637type InvalidAggregationException struct {
42638	_            struct{}                  `type:"structure"`
42639	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
42640
42641	Message_ *string `locationName:"message" type:"string"`
42642}
42643
42644// String returns the string representation
42645func (s InvalidAggregationException) String() string {
42646	return awsutil.Prettify(s)
42647}
42648
42649// GoString returns the string representation
42650func (s InvalidAggregationException) GoString() string {
42651	return s.String()
42652}
42653
42654func newErrorInvalidAggregationException(v protocol.ResponseMetadata) error {
42655	return &InvalidAggregationException{
42656		RespMetadata: v,
42657	}
42658}
42659
42660// Code returns the exception type name.
42661func (s *InvalidAggregationException) Code() string {
42662	return "InvalidAggregationException"
42663}
42664
42665// Message returns the exception's message.
42666func (s *InvalidAggregationException) Message() string {
42667	if s.Message_ != nil {
42668		return *s.Message_
42669	}
42670	return ""
42671}
42672
42673// OrigErr always returns nil, satisfies awserr.Error interface.
42674func (s *InvalidAggregationException) OrigErr() error {
42675	return nil
42676}
42677
42678func (s *InvalidAggregationException) Error() string {
42679	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
42680}
42681
42682// Status code returns the HTTP status code for the request's response error.
42683func (s *InvalidAggregationException) StatusCode() int {
42684	return s.RespMetadata.StatusCode
42685}
42686
42687// RequestID returns the service's response RequestID for request.
42688func (s *InvalidAggregationException) RequestID() string {
42689	return s.RespMetadata.RequestID
42690}
42691
42692// The query is invalid.
42693type InvalidQueryException struct {
42694	_            struct{}                  `type:"structure"`
42695	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
42696
42697	// The message for the exception.
42698	Message_ *string `locationName:"message" type:"string"`
42699}
42700
42701// String returns the string representation
42702func (s InvalidQueryException) String() string {
42703	return awsutil.Prettify(s)
42704}
42705
42706// GoString returns the string representation
42707func (s InvalidQueryException) GoString() string {
42708	return s.String()
42709}
42710
42711func newErrorInvalidQueryException(v protocol.ResponseMetadata) error {
42712	return &InvalidQueryException{
42713		RespMetadata: v,
42714	}
42715}
42716
42717// Code returns the exception type name.
42718func (s *InvalidQueryException) Code() string {
42719	return "InvalidQueryException"
42720}
42721
42722// Message returns the exception's message.
42723func (s *InvalidQueryException) Message() string {
42724	if s.Message_ != nil {
42725		return *s.Message_
42726	}
42727	return ""
42728}
42729
42730// OrigErr always returns nil, satisfies awserr.Error interface.
42731func (s *InvalidQueryException) OrigErr() error {
42732	return nil
42733}
42734
42735func (s *InvalidQueryException) Error() string {
42736	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
42737}
42738
42739// Status code returns the HTTP status code for the request's response error.
42740func (s *InvalidQueryException) StatusCode() int {
42741	return s.RespMetadata.StatusCode
42742}
42743
42744// RequestID returns the service's response RequestID for request.
42745func (s *InvalidQueryException) RequestID() string {
42746	return s.RespMetadata.RequestID
42747}
42748
42749// The request is not valid.
42750type InvalidRequestException struct {
42751	_            struct{}                  `type:"structure"`
42752	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
42753
42754	// The message for the exception.
42755	Message_ *string `locationName:"message" type:"string"`
42756}
42757
42758// String returns the string representation
42759func (s InvalidRequestException) String() string {
42760	return awsutil.Prettify(s)
42761}
42762
42763// GoString returns the string representation
42764func (s InvalidRequestException) GoString() string {
42765	return s.String()
42766}
42767
42768func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
42769	return &InvalidRequestException{
42770		RespMetadata: v,
42771	}
42772}
42773
42774// Code returns the exception type name.
42775func (s *InvalidRequestException) Code() string {
42776	return "InvalidRequestException"
42777}
42778
42779// Message returns the exception's message.
42780func (s *InvalidRequestException) Message() string {
42781	if s.Message_ != nil {
42782		return *s.Message_
42783	}
42784	return ""
42785}
42786
42787// OrigErr always returns nil, satisfies awserr.Error interface.
42788func (s *InvalidRequestException) OrigErr() error {
42789	return nil
42790}
42791
42792func (s *InvalidRequestException) Error() string {
42793	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
42794}
42795
42796// Status code returns the HTTP status code for the request's response error.
42797func (s *InvalidRequestException) StatusCode() int {
42798	return s.RespMetadata.StatusCode
42799}
42800
42801// RequestID returns the service's response RequestID for request.
42802func (s *InvalidRequestException) RequestID() string {
42803	return s.RespMetadata.RequestID
42804}
42805
42806// The response is invalid.
42807type InvalidResponseException struct {
42808	_            struct{}                  `type:"structure"`
42809	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
42810
42811	// The message for the exception.
42812	Message_ *string `locationName:"message" type:"string"`
42813}
42814
42815// String returns the string representation
42816func (s InvalidResponseException) String() string {
42817	return awsutil.Prettify(s)
42818}
42819
42820// GoString returns the string representation
42821func (s InvalidResponseException) GoString() string {
42822	return s.String()
42823}
42824
42825func newErrorInvalidResponseException(v protocol.ResponseMetadata) error {
42826	return &InvalidResponseException{
42827		RespMetadata: v,
42828	}
42829}
42830
42831// Code returns the exception type name.
42832func (s *InvalidResponseException) Code() string {
42833	return "InvalidResponseException"
42834}
42835
42836// Message returns the exception's message.
42837func (s *InvalidResponseException) Message() string {
42838	if s.Message_ != nil {
42839		return *s.Message_
42840	}
42841	return ""
42842}
42843
42844// OrigErr always returns nil, satisfies awserr.Error interface.
42845func (s *InvalidResponseException) OrigErr() error {
42846	return nil
42847}
42848
42849func (s *InvalidResponseException) Error() string {
42850	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
42851}
42852
42853// Status code returns the HTTP status code for the request's response error.
42854func (s *InvalidResponseException) StatusCode() int {
42855	return s.RespMetadata.StatusCode
42856}
42857
42858// RequestID returns the service's response RequestID for request.
42859func (s *InvalidResponseException) RequestID() string {
42860	return s.RespMetadata.RequestID
42861}
42862
42863// An attempt was made to change to an invalid state, for example by deleting
42864// a job or a job execution which is "IN_PROGRESS" without setting the force
42865// parameter.
42866type InvalidStateTransitionException struct {
42867	_            struct{}                  `type:"structure"`
42868	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
42869
42870	// The message for the exception.
42871	Message_ *string `locationName:"message" type:"string"`
42872}
42873
42874// String returns the string representation
42875func (s InvalidStateTransitionException) String() string {
42876	return awsutil.Prettify(s)
42877}
42878
42879// GoString returns the string representation
42880func (s InvalidStateTransitionException) GoString() string {
42881	return s.String()
42882}
42883
42884func newErrorInvalidStateTransitionException(v protocol.ResponseMetadata) error {
42885	return &InvalidStateTransitionException{
42886		RespMetadata: v,
42887	}
42888}
42889
42890// Code returns the exception type name.
42891func (s *InvalidStateTransitionException) Code() string {
42892	return "InvalidStateTransitionException"
42893}
42894
42895// Message returns the exception's message.
42896func (s *InvalidStateTransitionException) Message() string {
42897	if s.Message_ != nil {
42898		return *s.Message_
42899	}
42900	return ""
42901}
42902
42903// OrigErr always returns nil, satisfies awserr.Error interface.
42904func (s *InvalidStateTransitionException) OrigErr() error {
42905	return nil
42906}
42907
42908func (s *InvalidStateTransitionException) Error() string {
42909	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
42910}
42911
42912// Status code returns the HTTP status code for the request's response error.
42913func (s *InvalidStateTransitionException) StatusCode() int {
42914	return s.RespMetadata.StatusCode
42915}
42916
42917// RequestID returns the service's response RequestID for request.
42918func (s *InvalidStateTransitionException) RequestID() string {
42919	return s.RespMetadata.RequestID
42920}
42921
42922// Sends message data to an IoT Analytics channel.
42923type IotAnalyticsAction struct {
42924	_ struct{} `type:"structure"`
42925
42926	// Whether to process the action as a batch. The default value is false.
42927	//
42928	// When batchMode is true and the rule SQL statement evaluates to an Array,
42929	// each Array element is delivered as a separate message when passed by BatchPutMessage
42930	// (https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html)
42931	// to the IoT Analytics channel. The resulting array can't have more than 100
42932	// messages.
42933	BatchMode *bool `locationName:"batchMode" type:"boolean"`
42934
42935	// (deprecated) The ARN of the IoT Analytics channel to which message data will
42936	// be sent.
42937	ChannelArn *string `locationName:"channelArn" type:"string"`
42938
42939	// The name of the IoT Analytics channel to which message data will be sent.
42940	ChannelName *string `locationName:"channelName" type:"string"`
42941
42942	// The ARN of the role which has a policy that grants IoT Analytics permission
42943	// to send message data via IoT Analytics (iotanalytics:BatchPutMessage).
42944	RoleArn *string `locationName:"roleArn" type:"string"`
42945}
42946
42947// String returns the string representation
42948func (s IotAnalyticsAction) String() string {
42949	return awsutil.Prettify(s)
42950}
42951
42952// GoString returns the string representation
42953func (s IotAnalyticsAction) GoString() string {
42954	return s.String()
42955}
42956
42957// SetBatchMode sets the BatchMode field's value.
42958func (s *IotAnalyticsAction) SetBatchMode(v bool) *IotAnalyticsAction {
42959	s.BatchMode = &v
42960	return s
42961}
42962
42963// SetChannelArn sets the ChannelArn field's value.
42964func (s *IotAnalyticsAction) SetChannelArn(v string) *IotAnalyticsAction {
42965	s.ChannelArn = &v
42966	return s
42967}
42968
42969// SetChannelName sets the ChannelName field's value.
42970func (s *IotAnalyticsAction) SetChannelName(v string) *IotAnalyticsAction {
42971	s.ChannelName = &v
42972	return s
42973}
42974
42975// SetRoleArn sets the RoleArn field's value.
42976func (s *IotAnalyticsAction) SetRoleArn(v string) *IotAnalyticsAction {
42977	s.RoleArn = &v
42978	return s
42979}
42980
42981// Sends an input to an IoT Events detector.
42982type IotEventsAction struct {
42983	_ struct{} `type:"structure"`
42984
42985	// Whether to process the event actions as a batch. The default value is false.
42986	//
42987	// When batchMode is true, you can't specify a messageId.
42988	//
42989	// When batchMode is true and the rule SQL statement evaluates to an Array,
42990	// each Array element is treated as a separate message when it's sent to IoT
42991	// Events by calling BatchPutMessage (https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html).
42992	// The resulting array can't have more than 10 messages.
42993	BatchMode *bool `locationName:"batchMode" type:"boolean"`
42994
42995	// The name of the IoT Events input.
42996	//
42997	// InputName is a required field
42998	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
42999
43000	// The ID of the message. The default messageId is a new UUID value.
43001	//
43002	// When batchMode is true, you can't specify a messageId--a new UUID value will
43003	// be assigned.
43004	//
43005	// Assign a value to this property to ensure that only one input (message) with
43006	// a given messageId will be processed by an IoT Events detector.
43007	MessageId *string `locationName:"messageId" type:"string"`
43008
43009	// The ARN of the role that grants IoT permission to send an input to an IoT
43010	// Events detector. ("Action":"iotevents:BatchPutMessage").
43011	//
43012	// RoleArn is a required field
43013	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
43014}
43015
43016// String returns the string representation
43017func (s IotEventsAction) String() string {
43018	return awsutil.Prettify(s)
43019}
43020
43021// GoString returns the string representation
43022func (s IotEventsAction) GoString() string {
43023	return s.String()
43024}
43025
43026// Validate inspects the fields of the type to determine if they are valid.
43027func (s *IotEventsAction) Validate() error {
43028	invalidParams := request.ErrInvalidParams{Context: "IotEventsAction"}
43029	if s.InputName == nil {
43030		invalidParams.Add(request.NewErrParamRequired("InputName"))
43031	}
43032	if s.InputName != nil && len(*s.InputName) < 1 {
43033		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
43034	}
43035	if s.RoleArn == nil {
43036		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
43037	}
43038
43039	if invalidParams.Len() > 0 {
43040		return invalidParams
43041	}
43042	return nil
43043}
43044
43045// SetBatchMode sets the BatchMode field's value.
43046func (s *IotEventsAction) SetBatchMode(v bool) *IotEventsAction {
43047	s.BatchMode = &v
43048	return s
43049}
43050
43051// SetInputName sets the InputName field's value.
43052func (s *IotEventsAction) SetInputName(v string) *IotEventsAction {
43053	s.InputName = &v
43054	return s
43055}
43056
43057// SetMessageId sets the MessageId field's value.
43058func (s *IotEventsAction) SetMessageId(v string) *IotEventsAction {
43059	s.MessageId = &v
43060	return s
43061}
43062
43063// SetRoleArn sets the RoleArn field's value.
43064func (s *IotEventsAction) SetRoleArn(v string) *IotEventsAction {
43065	s.RoleArn = &v
43066	return s
43067}
43068
43069// Describes an action to send data from an MQTT message that triggered the
43070// rule to IoT SiteWise asset properties.
43071type IotSiteWiseAction struct {
43072	_ struct{} `type:"structure"`
43073
43074	// A list of asset property value entries.
43075	//
43076	// PutAssetPropertyValueEntries is a required field
43077	PutAssetPropertyValueEntries []*PutAssetPropertyValueEntry `locationName:"putAssetPropertyValueEntries" min:"1" type:"list" required:"true"`
43078
43079	// The ARN of the role that grants IoT permission to send an asset property
43080	// value to IoT SiteWise. ("Action": "iotsitewise:BatchPutAssetPropertyValue").
43081	// The trust policy can restrict access to specific asset hierarchy paths.
43082	//
43083	// RoleArn is a required field
43084	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
43085}
43086
43087// String returns the string representation
43088func (s IotSiteWiseAction) String() string {
43089	return awsutil.Prettify(s)
43090}
43091
43092// GoString returns the string representation
43093func (s IotSiteWiseAction) GoString() string {
43094	return s.String()
43095}
43096
43097// Validate inspects the fields of the type to determine if they are valid.
43098func (s *IotSiteWiseAction) Validate() error {
43099	invalidParams := request.ErrInvalidParams{Context: "IotSiteWiseAction"}
43100	if s.PutAssetPropertyValueEntries == nil {
43101		invalidParams.Add(request.NewErrParamRequired("PutAssetPropertyValueEntries"))
43102	}
43103	if s.PutAssetPropertyValueEntries != nil && len(s.PutAssetPropertyValueEntries) < 1 {
43104		invalidParams.Add(request.NewErrParamMinLen("PutAssetPropertyValueEntries", 1))
43105	}
43106	if s.RoleArn == nil {
43107		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
43108	}
43109	if s.PutAssetPropertyValueEntries != nil {
43110		for i, v := range s.PutAssetPropertyValueEntries {
43111			if v == nil {
43112				continue
43113			}
43114			if err := v.Validate(); err != nil {
43115				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PutAssetPropertyValueEntries", i), err.(request.ErrInvalidParams))
43116			}
43117		}
43118	}
43119
43120	if invalidParams.Len() > 0 {
43121		return invalidParams
43122	}
43123	return nil
43124}
43125
43126// SetPutAssetPropertyValueEntries sets the PutAssetPropertyValueEntries field's value.
43127func (s *IotSiteWiseAction) SetPutAssetPropertyValueEntries(v []*PutAssetPropertyValueEntry) *IotSiteWiseAction {
43128	s.PutAssetPropertyValueEntries = v
43129	return s
43130}
43131
43132// SetRoleArn sets the RoleArn field's value.
43133func (s *IotSiteWiseAction) SetRoleArn(v string) *IotSiteWiseAction {
43134	s.RoleArn = &v
43135	return s
43136}
43137
43138// The Job object contains details about a job.
43139type Job struct {
43140	_ struct{} `type:"structure"`
43141
43142	// Configuration for criteria to abort the job.
43143	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
43144
43145	// If the job was updated, describes the reason for the update.
43146	Comment *string `locationName:"comment" type:"string"`
43147
43148	// The time, in seconds since the epoch, when the job was completed.
43149	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
43150
43151	// The time, in seconds since the epoch, when the job was created.
43152	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
43153
43154	// A short text description of the job.
43155	Description *string `locationName:"description" type:"string"`
43156
43157	// Will be true if the job was canceled with the optional force parameter set
43158	// to true.
43159	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
43160
43161	// An ARN identifying the job with format "arn:aws:iot:region:account:job/jobId".
43162	JobArn *string `locationName:"jobArn" type:"string"`
43163
43164	// Allows you to create a staged rollout of a job.
43165	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
43166
43167	// The unique identifier you assigned to this job when it was created.
43168	JobId *string `locationName:"jobId" min:"1" type:"string"`
43169
43170	// Details about the job process.
43171	JobProcessDetails *JobProcessDetails `locationName:"jobProcessDetails" type:"structure"`
43172
43173	// The ARN of the job template used to create the job.
43174	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
43175
43176	// The time, in seconds since the epoch, when the job was last updated.
43177	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
43178
43179	// The namespace used to indicate that a job is a customer-managed job.
43180	//
43181	// When you specify a value for this parameter, Amazon Web Services IoT Core
43182	// sends jobs notifications to MQTT topics that contain the value in the following
43183	// format.
43184	//
43185	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
43186	//
43187	// The namespaceId feature is in public preview.
43188	NamespaceId *string `locationName:"namespaceId" min:"1" type:"string"`
43189
43190	// Configuration for pre-signed S3 URLs.
43191	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
43192
43193	// If the job was updated, provides the reason code for the update.
43194	ReasonCode *string `locationName:"reasonCode" type:"string"`
43195
43196	// The status of the job, one of IN_PROGRESS, CANCELED, DELETION_IN_PROGRESS
43197	// or COMPLETED.
43198	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
43199
43200	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
43201	// after all those things specified as targets have completed the job (SNAPSHOT).
43202	// If continuous, the job may also be run on a thing when a change is detected
43203	// in a target. For example, a job will run on a device when the thing representing
43204	// the device is added to a target group, even after the job was completed by
43205	// all things originally in the group.
43206	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
43207
43208	// A list of IoT things and thing groups to which the job should be sent.
43209	Targets []*string `locationName:"targets" min:"1" type:"list"`
43210
43211	// Specifies the amount of time each device has to finish its execution of the
43212	// job. A timer is started when the job execution status is set to IN_PROGRESS.
43213	// If the job execution status is not set to another terminal state before the
43214	// timer expires, it will be automatically set to TIMED_OUT.
43215	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
43216}
43217
43218// String returns the string representation
43219func (s Job) String() string {
43220	return awsutil.Prettify(s)
43221}
43222
43223// GoString returns the string representation
43224func (s Job) GoString() string {
43225	return s.String()
43226}
43227
43228// SetAbortConfig sets the AbortConfig field's value.
43229func (s *Job) SetAbortConfig(v *AbortConfig) *Job {
43230	s.AbortConfig = v
43231	return s
43232}
43233
43234// SetComment sets the Comment field's value.
43235func (s *Job) SetComment(v string) *Job {
43236	s.Comment = &v
43237	return s
43238}
43239
43240// SetCompletedAt sets the CompletedAt field's value.
43241func (s *Job) SetCompletedAt(v time.Time) *Job {
43242	s.CompletedAt = &v
43243	return s
43244}
43245
43246// SetCreatedAt sets the CreatedAt field's value.
43247func (s *Job) SetCreatedAt(v time.Time) *Job {
43248	s.CreatedAt = &v
43249	return s
43250}
43251
43252// SetDescription sets the Description field's value.
43253func (s *Job) SetDescription(v string) *Job {
43254	s.Description = &v
43255	return s
43256}
43257
43258// SetForceCanceled sets the ForceCanceled field's value.
43259func (s *Job) SetForceCanceled(v bool) *Job {
43260	s.ForceCanceled = &v
43261	return s
43262}
43263
43264// SetJobArn sets the JobArn field's value.
43265func (s *Job) SetJobArn(v string) *Job {
43266	s.JobArn = &v
43267	return s
43268}
43269
43270// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
43271func (s *Job) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *Job {
43272	s.JobExecutionsRolloutConfig = v
43273	return s
43274}
43275
43276// SetJobId sets the JobId field's value.
43277func (s *Job) SetJobId(v string) *Job {
43278	s.JobId = &v
43279	return s
43280}
43281
43282// SetJobProcessDetails sets the JobProcessDetails field's value.
43283func (s *Job) SetJobProcessDetails(v *JobProcessDetails) *Job {
43284	s.JobProcessDetails = v
43285	return s
43286}
43287
43288// SetJobTemplateArn sets the JobTemplateArn field's value.
43289func (s *Job) SetJobTemplateArn(v string) *Job {
43290	s.JobTemplateArn = &v
43291	return s
43292}
43293
43294// SetLastUpdatedAt sets the LastUpdatedAt field's value.
43295func (s *Job) SetLastUpdatedAt(v time.Time) *Job {
43296	s.LastUpdatedAt = &v
43297	return s
43298}
43299
43300// SetNamespaceId sets the NamespaceId field's value.
43301func (s *Job) SetNamespaceId(v string) *Job {
43302	s.NamespaceId = &v
43303	return s
43304}
43305
43306// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
43307func (s *Job) SetPresignedUrlConfig(v *PresignedUrlConfig) *Job {
43308	s.PresignedUrlConfig = v
43309	return s
43310}
43311
43312// SetReasonCode sets the ReasonCode field's value.
43313func (s *Job) SetReasonCode(v string) *Job {
43314	s.ReasonCode = &v
43315	return s
43316}
43317
43318// SetStatus sets the Status field's value.
43319func (s *Job) SetStatus(v string) *Job {
43320	s.Status = &v
43321	return s
43322}
43323
43324// SetTargetSelection sets the TargetSelection field's value.
43325func (s *Job) SetTargetSelection(v string) *Job {
43326	s.TargetSelection = &v
43327	return s
43328}
43329
43330// SetTargets sets the Targets field's value.
43331func (s *Job) SetTargets(v []*string) *Job {
43332	s.Targets = v
43333	return s
43334}
43335
43336// SetTimeoutConfig sets the TimeoutConfig field's value.
43337func (s *Job) SetTimeoutConfig(v *TimeoutConfig) *Job {
43338	s.TimeoutConfig = v
43339	return s
43340}
43341
43342// The job execution object represents the execution of a job on a particular
43343// device.
43344type JobExecution struct {
43345	_ struct{} `type:"structure"`
43346
43347	// The estimated number of seconds that remain before the job execution status
43348	// will be changed to TIMED_OUT. The timeout interval can be anywhere between
43349	// 1 minute and 7 days (1 to 10080 minutes). The actual job execution timeout
43350	// can occur up to 60 seconds later than the estimated duration. This value
43351	// will not be included if the job execution has reached a terminal status.
43352	ApproximateSecondsBeforeTimedOut *int64 `locationName:"approximateSecondsBeforeTimedOut" type:"long"`
43353
43354	// A string (consisting of the digits "0" through "9") which identifies this
43355	// particular job execution on this particular device. It can be used in commands
43356	// which return or update job execution information.
43357	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
43358
43359	// Will be true if the job execution was canceled with the optional force parameter
43360	// set to true.
43361	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
43362
43363	// The unique identifier you assigned to the job when it was created.
43364	JobId *string `locationName:"jobId" min:"1" type:"string"`
43365
43366	// The time, in seconds since the epoch, when the job execution was last updated.
43367	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
43368
43369	// The time, in seconds since the epoch, when the job execution was queued.
43370	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
43371
43372	// The time, in seconds since the epoch, when the job execution started.
43373	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
43374
43375	// The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCEEDED,
43376	// TIMED_OUT, CANCELED, or REJECTED).
43377	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
43378
43379	// A collection of name/value pairs that describe the status of the job execution.
43380	StatusDetails *JobExecutionStatusDetails `locationName:"statusDetails" type:"structure"`
43381
43382	// The ARN of the thing on which the job execution is running.
43383	ThingArn *string `locationName:"thingArn" type:"string"`
43384
43385	// The version of the job execution. Job execution versions are incremented
43386	// each time they are updated by a device.
43387	VersionNumber *int64 `locationName:"versionNumber" type:"long"`
43388}
43389
43390// String returns the string representation
43391func (s JobExecution) String() string {
43392	return awsutil.Prettify(s)
43393}
43394
43395// GoString returns the string representation
43396func (s JobExecution) GoString() string {
43397	return s.String()
43398}
43399
43400// SetApproximateSecondsBeforeTimedOut sets the ApproximateSecondsBeforeTimedOut field's value.
43401func (s *JobExecution) SetApproximateSecondsBeforeTimedOut(v int64) *JobExecution {
43402	s.ApproximateSecondsBeforeTimedOut = &v
43403	return s
43404}
43405
43406// SetExecutionNumber sets the ExecutionNumber field's value.
43407func (s *JobExecution) SetExecutionNumber(v int64) *JobExecution {
43408	s.ExecutionNumber = &v
43409	return s
43410}
43411
43412// SetForceCanceled sets the ForceCanceled field's value.
43413func (s *JobExecution) SetForceCanceled(v bool) *JobExecution {
43414	s.ForceCanceled = &v
43415	return s
43416}
43417
43418// SetJobId sets the JobId field's value.
43419func (s *JobExecution) SetJobId(v string) *JobExecution {
43420	s.JobId = &v
43421	return s
43422}
43423
43424// SetLastUpdatedAt sets the LastUpdatedAt field's value.
43425func (s *JobExecution) SetLastUpdatedAt(v time.Time) *JobExecution {
43426	s.LastUpdatedAt = &v
43427	return s
43428}
43429
43430// SetQueuedAt sets the QueuedAt field's value.
43431func (s *JobExecution) SetQueuedAt(v time.Time) *JobExecution {
43432	s.QueuedAt = &v
43433	return s
43434}
43435
43436// SetStartedAt sets the StartedAt field's value.
43437func (s *JobExecution) SetStartedAt(v time.Time) *JobExecution {
43438	s.StartedAt = &v
43439	return s
43440}
43441
43442// SetStatus sets the Status field's value.
43443func (s *JobExecution) SetStatus(v string) *JobExecution {
43444	s.Status = &v
43445	return s
43446}
43447
43448// SetStatusDetails sets the StatusDetails field's value.
43449func (s *JobExecution) SetStatusDetails(v *JobExecutionStatusDetails) *JobExecution {
43450	s.StatusDetails = v
43451	return s
43452}
43453
43454// SetThingArn sets the ThingArn field's value.
43455func (s *JobExecution) SetThingArn(v string) *JobExecution {
43456	s.ThingArn = &v
43457	return s
43458}
43459
43460// SetVersionNumber sets the VersionNumber field's value.
43461func (s *JobExecution) SetVersionNumber(v int64) *JobExecution {
43462	s.VersionNumber = &v
43463	return s
43464}
43465
43466// Details of the job execution status.
43467type JobExecutionStatusDetails struct {
43468	_ struct{} `type:"structure"`
43469
43470	// The job execution status.
43471	DetailsMap map[string]*string `locationName:"detailsMap" type:"map"`
43472}
43473
43474// String returns the string representation
43475func (s JobExecutionStatusDetails) String() string {
43476	return awsutil.Prettify(s)
43477}
43478
43479// GoString returns the string representation
43480func (s JobExecutionStatusDetails) GoString() string {
43481	return s.String()
43482}
43483
43484// SetDetailsMap sets the DetailsMap field's value.
43485func (s *JobExecutionStatusDetails) SetDetailsMap(v map[string]*string) *JobExecutionStatusDetails {
43486	s.DetailsMap = v
43487	return s
43488}
43489
43490// The job execution summary.
43491type JobExecutionSummary struct {
43492	_ struct{} `type:"structure"`
43493
43494	// A string (consisting of the digits "0" through "9") which identifies this
43495	// particular job execution on this particular device. It can be used later
43496	// in commands which return or update job execution information.
43497	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
43498
43499	// The time, in seconds since the epoch, when the job execution was last updated.
43500	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
43501
43502	// The time, in seconds since the epoch, when the job execution was queued.
43503	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
43504
43505	// The time, in seconds since the epoch, when the job execution started.
43506	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
43507
43508	// The status of the job execution.
43509	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
43510}
43511
43512// String returns the string representation
43513func (s JobExecutionSummary) String() string {
43514	return awsutil.Prettify(s)
43515}
43516
43517// GoString returns the string representation
43518func (s JobExecutionSummary) GoString() string {
43519	return s.String()
43520}
43521
43522// SetExecutionNumber sets the ExecutionNumber field's value.
43523func (s *JobExecutionSummary) SetExecutionNumber(v int64) *JobExecutionSummary {
43524	s.ExecutionNumber = &v
43525	return s
43526}
43527
43528// SetLastUpdatedAt sets the LastUpdatedAt field's value.
43529func (s *JobExecutionSummary) SetLastUpdatedAt(v time.Time) *JobExecutionSummary {
43530	s.LastUpdatedAt = &v
43531	return s
43532}
43533
43534// SetQueuedAt sets the QueuedAt field's value.
43535func (s *JobExecutionSummary) SetQueuedAt(v time.Time) *JobExecutionSummary {
43536	s.QueuedAt = &v
43537	return s
43538}
43539
43540// SetStartedAt sets the StartedAt field's value.
43541func (s *JobExecutionSummary) SetStartedAt(v time.Time) *JobExecutionSummary {
43542	s.StartedAt = &v
43543	return s
43544}
43545
43546// SetStatus sets the Status field's value.
43547func (s *JobExecutionSummary) SetStatus(v string) *JobExecutionSummary {
43548	s.Status = &v
43549	return s
43550}
43551
43552// Contains a summary of information about job executions for a specific job.
43553type JobExecutionSummaryForJob struct {
43554	_ struct{} `type:"structure"`
43555
43556	// Contains a subset of information about a job execution.
43557	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
43558
43559	// The ARN of the thing on which the job execution is running.
43560	ThingArn *string `locationName:"thingArn" type:"string"`
43561}
43562
43563// String returns the string representation
43564func (s JobExecutionSummaryForJob) String() string {
43565	return awsutil.Prettify(s)
43566}
43567
43568// GoString returns the string representation
43569func (s JobExecutionSummaryForJob) GoString() string {
43570	return s.String()
43571}
43572
43573// SetJobExecutionSummary sets the JobExecutionSummary field's value.
43574func (s *JobExecutionSummaryForJob) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForJob {
43575	s.JobExecutionSummary = v
43576	return s
43577}
43578
43579// SetThingArn sets the ThingArn field's value.
43580func (s *JobExecutionSummaryForJob) SetThingArn(v string) *JobExecutionSummaryForJob {
43581	s.ThingArn = &v
43582	return s
43583}
43584
43585// The job execution summary for a thing.
43586type JobExecutionSummaryForThing struct {
43587	_ struct{} `type:"structure"`
43588
43589	// Contains a subset of information about a job execution.
43590	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
43591
43592	// The unique identifier you assigned to this job when it was created.
43593	JobId *string `locationName:"jobId" min:"1" type:"string"`
43594}
43595
43596// String returns the string representation
43597func (s JobExecutionSummaryForThing) String() string {
43598	return awsutil.Prettify(s)
43599}
43600
43601// GoString returns the string representation
43602func (s JobExecutionSummaryForThing) GoString() string {
43603	return s.String()
43604}
43605
43606// SetJobExecutionSummary sets the JobExecutionSummary field's value.
43607func (s *JobExecutionSummaryForThing) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForThing {
43608	s.JobExecutionSummary = v
43609	return s
43610}
43611
43612// SetJobId sets the JobId field's value.
43613func (s *JobExecutionSummaryForThing) SetJobId(v string) *JobExecutionSummaryForThing {
43614	s.JobId = &v
43615	return s
43616}
43617
43618// Allows you to create a staged rollout of a job.
43619type JobExecutionsRolloutConfig struct {
43620	_ struct{} `type:"structure"`
43621
43622	// The rate of increase for a job rollout. This parameter allows you to define
43623	// an exponential rate for a job rollout.
43624	ExponentialRate *ExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
43625
43626	// The maximum number of things that will be notified of a pending job, per
43627	// minute. This parameter allows you to create a staged rollout.
43628	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
43629}
43630
43631// String returns the string representation
43632func (s JobExecutionsRolloutConfig) String() string {
43633	return awsutil.Prettify(s)
43634}
43635
43636// GoString returns the string representation
43637func (s JobExecutionsRolloutConfig) GoString() string {
43638	return s.String()
43639}
43640
43641// Validate inspects the fields of the type to determine if they are valid.
43642func (s *JobExecutionsRolloutConfig) Validate() error {
43643	invalidParams := request.ErrInvalidParams{Context: "JobExecutionsRolloutConfig"}
43644	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
43645		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
43646	}
43647	if s.ExponentialRate != nil {
43648		if err := s.ExponentialRate.Validate(); err != nil {
43649			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
43650		}
43651	}
43652
43653	if invalidParams.Len() > 0 {
43654		return invalidParams
43655	}
43656	return nil
43657}
43658
43659// SetExponentialRate sets the ExponentialRate field's value.
43660func (s *JobExecutionsRolloutConfig) SetExponentialRate(v *ExponentialRolloutRate) *JobExecutionsRolloutConfig {
43661	s.ExponentialRate = v
43662	return s
43663}
43664
43665// SetMaximumPerMinute sets the MaximumPerMinute field's value.
43666func (s *JobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *JobExecutionsRolloutConfig {
43667	s.MaximumPerMinute = &v
43668	return s
43669}
43670
43671// The job process details.
43672type JobProcessDetails struct {
43673	_ struct{} `type:"structure"`
43674
43675	// The number of things that cancelled the job.
43676	NumberOfCanceledThings *int64 `locationName:"numberOfCanceledThings" type:"integer"`
43677
43678	// The number of things that failed executing the job.
43679	NumberOfFailedThings *int64 `locationName:"numberOfFailedThings" type:"integer"`
43680
43681	// The number of things currently executing the job.
43682	NumberOfInProgressThings *int64 `locationName:"numberOfInProgressThings" type:"integer"`
43683
43684	// The number of things that are awaiting execution of the job.
43685	NumberOfQueuedThings *int64 `locationName:"numberOfQueuedThings" type:"integer"`
43686
43687	// The number of things that rejected the job.
43688	NumberOfRejectedThings *int64 `locationName:"numberOfRejectedThings" type:"integer"`
43689
43690	// The number of things that are no longer scheduled to execute the job because
43691	// they have been deleted or have been removed from the group that was a target
43692	// of the job.
43693	NumberOfRemovedThings *int64 `locationName:"numberOfRemovedThings" type:"integer"`
43694
43695	// The number of things which successfully completed the job.
43696	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" type:"integer"`
43697
43698	// The number of things whose job execution status is TIMED_OUT.
43699	NumberOfTimedOutThings *int64 `locationName:"numberOfTimedOutThings" type:"integer"`
43700
43701	// The target devices to which the job execution is being rolled out. This value
43702	// will be null after the job execution has finished rolling out to all the
43703	// target devices.
43704	ProcessingTargets []*string `locationName:"processingTargets" type:"list"`
43705}
43706
43707// String returns the string representation
43708func (s JobProcessDetails) String() string {
43709	return awsutil.Prettify(s)
43710}
43711
43712// GoString returns the string representation
43713func (s JobProcessDetails) GoString() string {
43714	return s.String()
43715}
43716
43717// SetNumberOfCanceledThings sets the NumberOfCanceledThings field's value.
43718func (s *JobProcessDetails) SetNumberOfCanceledThings(v int64) *JobProcessDetails {
43719	s.NumberOfCanceledThings = &v
43720	return s
43721}
43722
43723// SetNumberOfFailedThings sets the NumberOfFailedThings field's value.
43724func (s *JobProcessDetails) SetNumberOfFailedThings(v int64) *JobProcessDetails {
43725	s.NumberOfFailedThings = &v
43726	return s
43727}
43728
43729// SetNumberOfInProgressThings sets the NumberOfInProgressThings field's value.
43730func (s *JobProcessDetails) SetNumberOfInProgressThings(v int64) *JobProcessDetails {
43731	s.NumberOfInProgressThings = &v
43732	return s
43733}
43734
43735// SetNumberOfQueuedThings sets the NumberOfQueuedThings field's value.
43736func (s *JobProcessDetails) SetNumberOfQueuedThings(v int64) *JobProcessDetails {
43737	s.NumberOfQueuedThings = &v
43738	return s
43739}
43740
43741// SetNumberOfRejectedThings sets the NumberOfRejectedThings field's value.
43742func (s *JobProcessDetails) SetNumberOfRejectedThings(v int64) *JobProcessDetails {
43743	s.NumberOfRejectedThings = &v
43744	return s
43745}
43746
43747// SetNumberOfRemovedThings sets the NumberOfRemovedThings field's value.
43748func (s *JobProcessDetails) SetNumberOfRemovedThings(v int64) *JobProcessDetails {
43749	s.NumberOfRemovedThings = &v
43750	return s
43751}
43752
43753// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
43754func (s *JobProcessDetails) SetNumberOfSucceededThings(v int64) *JobProcessDetails {
43755	s.NumberOfSucceededThings = &v
43756	return s
43757}
43758
43759// SetNumberOfTimedOutThings sets the NumberOfTimedOutThings field's value.
43760func (s *JobProcessDetails) SetNumberOfTimedOutThings(v int64) *JobProcessDetails {
43761	s.NumberOfTimedOutThings = &v
43762	return s
43763}
43764
43765// SetProcessingTargets sets the ProcessingTargets field's value.
43766func (s *JobProcessDetails) SetProcessingTargets(v []*string) *JobProcessDetails {
43767	s.ProcessingTargets = v
43768	return s
43769}
43770
43771// The job summary.
43772type JobSummary struct {
43773	_ struct{} `type:"structure"`
43774
43775	// The time, in seconds since the epoch, when the job completed.
43776	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
43777
43778	// The time, in seconds since the epoch, when the job was created.
43779	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
43780
43781	// The job ARN.
43782	JobArn *string `locationName:"jobArn" type:"string"`
43783
43784	// The unique identifier you assigned to this job when it was created.
43785	JobId *string `locationName:"jobId" min:"1" type:"string"`
43786
43787	// The time, in seconds since the epoch, when the job was last updated.
43788	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
43789
43790	// The job summary status.
43791	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
43792
43793	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
43794	// after all those things specified as targets have completed the job (SNAPSHOT).
43795	// If continuous, the job may also be run on a thing when a change is detected
43796	// in a target. For example, a job will run on a thing when the thing is added
43797	// to a target group, even after the job was completed by all things originally
43798	// in the group.
43799	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
43800
43801	// The ID of the thing group.
43802	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
43803}
43804
43805// String returns the string representation
43806func (s JobSummary) String() string {
43807	return awsutil.Prettify(s)
43808}
43809
43810// GoString returns the string representation
43811func (s JobSummary) GoString() string {
43812	return s.String()
43813}
43814
43815// SetCompletedAt sets the CompletedAt field's value.
43816func (s *JobSummary) SetCompletedAt(v time.Time) *JobSummary {
43817	s.CompletedAt = &v
43818	return s
43819}
43820
43821// SetCreatedAt sets the CreatedAt field's value.
43822func (s *JobSummary) SetCreatedAt(v time.Time) *JobSummary {
43823	s.CreatedAt = &v
43824	return s
43825}
43826
43827// SetJobArn sets the JobArn field's value.
43828func (s *JobSummary) SetJobArn(v string) *JobSummary {
43829	s.JobArn = &v
43830	return s
43831}
43832
43833// SetJobId sets the JobId field's value.
43834func (s *JobSummary) SetJobId(v string) *JobSummary {
43835	s.JobId = &v
43836	return s
43837}
43838
43839// SetLastUpdatedAt sets the LastUpdatedAt field's value.
43840func (s *JobSummary) SetLastUpdatedAt(v time.Time) *JobSummary {
43841	s.LastUpdatedAt = &v
43842	return s
43843}
43844
43845// SetStatus sets the Status field's value.
43846func (s *JobSummary) SetStatus(v string) *JobSummary {
43847	s.Status = &v
43848	return s
43849}
43850
43851// SetTargetSelection sets the TargetSelection field's value.
43852func (s *JobSummary) SetTargetSelection(v string) *JobSummary {
43853	s.TargetSelection = &v
43854	return s
43855}
43856
43857// SetThingGroupId sets the ThingGroupId field's value.
43858func (s *JobSummary) SetThingGroupId(v string) *JobSummary {
43859	s.ThingGroupId = &v
43860	return s
43861}
43862
43863// An object that contains information about the job template.
43864type JobTemplateSummary struct {
43865	_ struct{} `type:"structure"`
43866
43867	// The time, in seconds since the epoch, when the job template was created.
43868	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
43869
43870	// A description of the job template.
43871	Description *string `locationName:"description" type:"string"`
43872
43873	// The ARN of the job template.
43874	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
43875
43876	// The unique identifier of the job template.
43877	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
43878}
43879
43880// String returns the string representation
43881func (s JobTemplateSummary) String() string {
43882	return awsutil.Prettify(s)
43883}
43884
43885// GoString returns the string representation
43886func (s JobTemplateSummary) GoString() string {
43887	return s.String()
43888}
43889
43890// SetCreatedAt sets the CreatedAt field's value.
43891func (s *JobTemplateSummary) SetCreatedAt(v time.Time) *JobTemplateSummary {
43892	s.CreatedAt = &v
43893	return s
43894}
43895
43896// SetDescription sets the Description field's value.
43897func (s *JobTemplateSummary) SetDescription(v string) *JobTemplateSummary {
43898	s.Description = &v
43899	return s
43900}
43901
43902// SetJobTemplateArn sets the JobTemplateArn field's value.
43903func (s *JobTemplateSummary) SetJobTemplateArn(v string) *JobTemplateSummary {
43904	s.JobTemplateArn = &v
43905	return s
43906}
43907
43908// SetJobTemplateId sets the JobTemplateId field's value.
43909func (s *JobTemplateSummary) SetJobTemplateId(v string) *JobTemplateSummary {
43910	s.JobTemplateId = &v
43911	return s
43912}
43913
43914// Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK)
43915// or self-managed Apache Kafka cluster.
43916type KafkaAction struct {
43917	_ struct{} `type:"structure"`
43918
43919	// Properties of the Apache Kafka producer client.
43920	//
43921	// ClientProperties is a required field
43922	ClientProperties map[string]*string `locationName:"clientProperties" type:"map" required:"true"`
43923
43924	// The ARN of Kafka action's VPC TopicRuleDestination.
43925	//
43926	// DestinationArn is a required field
43927	DestinationArn *string `locationName:"destinationArn" type:"string" required:"true"`
43928
43929	// The Kafka message key.
43930	Key *string `locationName:"key" type:"string"`
43931
43932	// The Kafka message partition.
43933	Partition *string `locationName:"partition" type:"string"`
43934
43935	// The Kafka topic for messages to be sent to the Kafka broker.
43936	//
43937	// Topic is a required field
43938	Topic *string `locationName:"topic" type:"string" required:"true"`
43939}
43940
43941// String returns the string representation
43942func (s KafkaAction) String() string {
43943	return awsutil.Prettify(s)
43944}
43945
43946// GoString returns the string representation
43947func (s KafkaAction) GoString() string {
43948	return s.String()
43949}
43950
43951// Validate inspects the fields of the type to determine if they are valid.
43952func (s *KafkaAction) Validate() error {
43953	invalidParams := request.ErrInvalidParams{Context: "KafkaAction"}
43954	if s.ClientProperties == nil {
43955		invalidParams.Add(request.NewErrParamRequired("ClientProperties"))
43956	}
43957	if s.DestinationArn == nil {
43958		invalidParams.Add(request.NewErrParamRequired("DestinationArn"))
43959	}
43960	if s.Topic == nil {
43961		invalidParams.Add(request.NewErrParamRequired("Topic"))
43962	}
43963
43964	if invalidParams.Len() > 0 {
43965		return invalidParams
43966	}
43967	return nil
43968}
43969
43970// SetClientProperties sets the ClientProperties field's value.
43971func (s *KafkaAction) SetClientProperties(v map[string]*string) *KafkaAction {
43972	s.ClientProperties = v
43973	return s
43974}
43975
43976// SetDestinationArn sets the DestinationArn field's value.
43977func (s *KafkaAction) SetDestinationArn(v string) *KafkaAction {
43978	s.DestinationArn = &v
43979	return s
43980}
43981
43982// SetKey sets the Key field's value.
43983func (s *KafkaAction) SetKey(v string) *KafkaAction {
43984	s.Key = &v
43985	return s
43986}
43987
43988// SetPartition sets the Partition field's value.
43989func (s *KafkaAction) SetPartition(v string) *KafkaAction {
43990	s.Partition = &v
43991	return s
43992}
43993
43994// SetTopic sets the Topic field's value.
43995func (s *KafkaAction) SetTopic(v string) *KafkaAction {
43996	s.Topic = &v
43997	return s
43998}
43999
44000// Describes a key pair.
44001type KeyPair struct {
44002	_ struct{} `type:"structure"`
44003
44004	// The private key.
44005	PrivateKey *string `min:"1" type:"string" sensitive:"true"`
44006
44007	// The public key.
44008	PublicKey *string `min:"1" type:"string"`
44009}
44010
44011// String returns the string representation
44012func (s KeyPair) String() string {
44013	return awsutil.Prettify(s)
44014}
44015
44016// GoString returns the string representation
44017func (s KeyPair) GoString() string {
44018	return s.String()
44019}
44020
44021// SetPrivateKey sets the PrivateKey field's value.
44022func (s *KeyPair) SetPrivateKey(v string) *KeyPair {
44023	s.PrivateKey = &v
44024	return s
44025}
44026
44027// SetPublicKey sets the PublicKey field's value.
44028func (s *KeyPair) SetPublicKey(v string) *KeyPair {
44029	s.PublicKey = &v
44030	return s
44031}
44032
44033// Describes an action to write data to an Amazon Kinesis stream.
44034type KinesisAction struct {
44035	_ struct{} `type:"structure"`
44036
44037	// The partition key.
44038	PartitionKey *string `locationName:"partitionKey" type:"string"`
44039
44040	// The ARN of the IAM role that grants access to the Amazon Kinesis stream.
44041	//
44042	// RoleArn is a required field
44043	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
44044
44045	// The name of the Amazon Kinesis stream.
44046	//
44047	// StreamName is a required field
44048	StreamName *string `locationName:"streamName" type:"string" required:"true"`
44049}
44050
44051// String returns the string representation
44052func (s KinesisAction) String() string {
44053	return awsutil.Prettify(s)
44054}
44055
44056// GoString returns the string representation
44057func (s KinesisAction) GoString() string {
44058	return s.String()
44059}
44060
44061// Validate inspects the fields of the type to determine if they are valid.
44062func (s *KinesisAction) Validate() error {
44063	invalidParams := request.ErrInvalidParams{Context: "KinesisAction"}
44064	if s.RoleArn == nil {
44065		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
44066	}
44067	if s.StreamName == nil {
44068		invalidParams.Add(request.NewErrParamRequired("StreamName"))
44069	}
44070
44071	if invalidParams.Len() > 0 {
44072		return invalidParams
44073	}
44074	return nil
44075}
44076
44077// SetPartitionKey sets the PartitionKey field's value.
44078func (s *KinesisAction) SetPartitionKey(v string) *KinesisAction {
44079	s.PartitionKey = &v
44080	return s
44081}
44082
44083// SetRoleArn sets the RoleArn field's value.
44084func (s *KinesisAction) SetRoleArn(v string) *KinesisAction {
44085	s.RoleArn = &v
44086	return s
44087}
44088
44089// SetStreamName sets the StreamName field's value.
44090func (s *KinesisAction) SetStreamName(v string) *KinesisAction {
44091	s.StreamName = &v
44092	return s
44093}
44094
44095// Describes an action to invoke a Lambda function.
44096type LambdaAction struct {
44097	_ struct{} `type:"structure"`
44098
44099	// The ARN of the Lambda function.
44100	//
44101	// FunctionArn is a required field
44102	FunctionArn *string `locationName:"functionArn" type:"string" required:"true"`
44103}
44104
44105// String returns the string representation
44106func (s LambdaAction) String() string {
44107	return awsutil.Prettify(s)
44108}
44109
44110// GoString returns the string representation
44111func (s LambdaAction) GoString() string {
44112	return s.String()
44113}
44114
44115// Validate inspects the fields of the type to determine if they are valid.
44116func (s *LambdaAction) Validate() error {
44117	invalidParams := request.ErrInvalidParams{Context: "LambdaAction"}
44118	if s.FunctionArn == nil {
44119		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
44120	}
44121
44122	if invalidParams.Len() > 0 {
44123		return invalidParams
44124	}
44125	return nil
44126}
44127
44128// SetFunctionArn sets the FunctionArn field's value.
44129func (s *LambdaAction) SetFunctionArn(v string) *LambdaAction {
44130	s.FunctionArn = &v
44131	return s
44132}
44133
44134// A limit has been exceeded.
44135type LimitExceededException struct {
44136	_            struct{}                  `type:"structure"`
44137	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
44138
44139	// The message for the exception.
44140	Message_ *string `locationName:"message" type:"string"`
44141}
44142
44143// String returns the string representation
44144func (s LimitExceededException) String() string {
44145	return awsutil.Prettify(s)
44146}
44147
44148// GoString returns the string representation
44149func (s LimitExceededException) GoString() string {
44150	return s.String()
44151}
44152
44153func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
44154	return &LimitExceededException{
44155		RespMetadata: v,
44156	}
44157}
44158
44159// Code returns the exception type name.
44160func (s *LimitExceededException) Code() string {
44161	return "LimitExceededException"
44162}
44163
44164// Message returns the exception's message.
44165func (s *LimitExceededException) Message() string {
44166	if s.Message_ != nil {
44167		return *s.Message_
44168	}
44169	return ""
44170}
44171
44172// OrigErr always returns nil, satisfies awserr.Error interface.
44173func (s *LimitExceededException) OrigErr() error {
44174	return nil
44175}
44176
44177func (s *LimitExceededException) Error() string {
44178	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
44179}
44180
44181// Status code returns the HTTP status code for the request's response error.
44182func (s *LimitExceededException) StatusCode() int {
44183	return s.RespMetadata.StatusCode
44184}
44185
44186// RequestID returns the service's response RequestID for request.
44187func (s *LimitExceededException) RequestID() string {
44188	return s.RespMetadata.RequestID
44189}
44190
44191type ListActiveViolationsInput struct {
44192	_ struct{} `type:"structure"`
44193
44194	// The criteria for a behavior.
44195	BehaviorCriteriaType *string `location:"querystring" locationName:"behaviorCriteriaType" type:"string" enum:"BehaviorCriteriaType"`
44196
44197	// A list of all suppressed alerts.
44198	ListSuppressedAlerts *bool `location:"querystring" locationName:"listSuppressedAlerts" type:"boolean"`
44199
44200	// The maximum number of results to return at one time.
44201	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44202
44203	// The token for the next set of results.
44204	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44205
44206	// The name of the Device Defender security profile for which violations are
44207	// listed.
44208	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
44209
44210	// The name of the thing whose active violations are listed.
44211	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
44212}
44213
44214// String returns the string representation
44215func (s ListActiveViolationsInput) String() string {
44216	return awsutil.Prettify(s)
44217}
44218
44219// GoString returns the string representation
44220func (s ListActiveViolationsInput) GoString() string {
44221	return s.String()
44222}
44223
44224// Validate inspects the fields of the type to determine if they are valid.
44225func (s *ListActiveViolationsInput) Validate() error {
44226	invalidParams := request.ErrInvalidParams{Context: "ListActiveViolationsInput"}
44227	if s.MaxResults != nil && *s.MaxResults < 1 {
44228		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44229	}
44230	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
44231		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
44232	}
44233	if s.ThingName != nil && len(*s.ThingName) < 1 {
44234		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
44235	}
44236
44237	if invalidParams.Len() > 0 {
44238		return invalidParams
44239	}
44240	return nil
44241}
44242
44243// SetBehaviorCriteriaType sets the BehaviorCriteriaType field's value.
44244func (s *ListActiveViolationsInput) SetBehaviorCriteriaType(v string) *ListActiveViolationsInput {
44245	s.BehaviorCriteriaType = &v
44246	return s
44247}
44248
44249// SetListSuppressedAlerts sets the ListSuppressedAlerts field's value.
44250func (s *ListActiveViolationsInput) SetListSuppressedAlerts(v bool) *ListActiveViolationsInput {
44251	s.ListSuppressedAlerts = &v
44252	return s
44253}
44254
44255// SetMaxResults sets the MaxResults field's value.
44256func (s *ListActiveViolationsInput) SetMaxResults(v int64) *ListActiveViolationsInput {
44257	s.MaxResults = &v
44258	return s
44259}
44260
44261// SetNextToken sets the NextToken field's value.
44262func (s *ListActiveViolationsInput) SetNextToken(v string) *ListActiveViolationsInput {
44263	s.NextToken = &v
44264	return s
44265}
44266
44267// SetSecurityProfileName sets the SecurityProfileName field's value.
44268func (s *ListActiveViolationsInput) SetSecurityProfileName(v string) *ListActiveViolationsInput {
44269	s.SecurityProfileName = &v
44270	return s
44271}
44272
44273// SetThingName sets the ThingName field's value.
44274func (s *ListActiveViolationsInput) SetThingName(v string) *ListActiveViolationsInput {
44275	s.ThingName = &v
44276	return s
44277}
44278
44279type ListActiveViolationsOutput struct {
44280	_ struct{} `type:"structure"`
44281
44282	// The list of active violations.
44283	ActiveViolations []*ActiveViolation `locationName:"activeViolations" type:"list"`
44284
44285	// A token that can be used to retrieve the next set of results, or null if
44286	// there are no additional results.
44287	NextToken *string `locationName:"nextToken" type:"string"`
44288}
44289
44290// String returns the string representation
44291func (s ListActiveViolationsOutput) String() string {
44292	return awsutil.Prettify(s)
44293}
44294
44295// GoString returns the string representation
44296func (s ListActiveViolationsOutput) GoString() string {
44297	return s.String()
44298}
44299
44300// SetActiveViolations sets the ActiveViolations field's value.
44301func (s *ListActiveViolationsOutput) SetActiveViolations(v []*ActiveViolation) *ListActiveViolationsOutput {
44302	s.ActiveViolations = v
44303	return s
44304}
44305
44306// SetNextToken sets the NextToken field's value.
44307func (s *ListActiveViolationsOutput) SetNextToken(v string) *ListActiveViolationsOutput {
44308	s.NextToken = &v
44309	return s
44310}
44311
44312type ListAttachedPoliciesInput struct {
44313	_ struct{} `type:"structure"`
44314
44315	// The token to retrieve the next set of results.
44316	Marker *string `location:"querystring" locationName:"marker" type:"string"`
44317
44318	// The maximum number of results to be returned per request.
44319	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
44320
44321	// When true, recursively list attached policies.
44322	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
44323
44324	// The group or principal for which the policies will be listed. Valid principals
44325	// are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId), thingGroupArn
44326	// (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId (region:id).
44327	//
44328	// Target is a required field
44329	Target *string `location:"uri" locationName:"target" type:"string" required:"true"`
44330}
44331
44332// String returns the string representation
44333func (s ListAttachedPoliciesInput) String() string {
44334	return awsutil.Prettify(s)
44335}
44336
44337// GoString returns the string representation
44338func (s ListAttachedPoliciesInput) GoString() string {
44339	return s.String()
44340}
44341
44342// Validate inspects the fields of the type to determine if they are valid.
44343func (s *ListAttachedPoliciesInput) Validate() error {
44344	invalidParams := request.ErrInvalidParams{Context: "ListAttachedPoliciesInput"}
44345	if s.PageSize != nil && *s.PageSize < 1 {
44346		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
44347	}
44348	if s.Target == nil {
44349		invalidParams.Add(request.NewErrParamRequired("Target"))
44350	}
44351	if s.Target != nil && len(*s.Target) < 1 {
44352		invalidParams.Add(request.NewErrParamMinLen("Target", 1))
44353	}
44354
44355	if invalidParams.Len() > 0 {
44356		return invalidParams
44357	}
44358	return nil
44359}
44360
44361// SetMarker sets the Marker field's value.
44362func (s *ListAttachedPoliciesInput) SetMarker(v string) *ListAttachedPoliciesInput {
44363	s.Marker = &v
44364	return s
44365}
44366
44367// SetPageSize sets the PageSize field's value.
44368func (s *ListAttachedPoliciesInput) SetPageSize(v int64) *ListAttachedPoliciesInput {
44369	s.PageSize = &v
44370	return s
44371}
44372
44373// SetRecursive sets the Recursive field's value.
44374func (s *ListAttachedPoliciesInput) SetRecursive(v bool) *ListAttachedPoliciesInput {
44375	s.Recursive = &v
44376	return s
44377}
44378
44379// SetTarget sets the Target field's value.
44380func (s *ListAttachedPoliciesInput) SetTarget(v string) *ListAttachedPoliciesInput {
44381	s.Target = &v
44382	return s
44383}
44384
44385type ListAttachedPoliciesOutput struct {
44386	_ struct{} `type:"structure"`
44387
44388	// The token to retrieve the next set of results, or ``null`` if there are no
44389	// more results.
44390	NextMarker *string `locationName:"nextMarker" type:"string"`
44391
44392	// The policies.
44393	Policies []*Policy `locationName:"policies" type:"list"`
44394}
44395
44396// String returns the string representation
44397func (s ListAttachedPoliciesOutput) String() string {
44398	return awsutil.Prettify(s)
44399}
44400
44401// GoString returns the string representation
44402func (s ListAttachedPoliciesOutput) GoString() string {
44403	return s.String()
44404}
44405
44406// SetNextMarker sets the NextMarker field's value.
44407func (s *ListAttachedPoliciesOutput) SetNextMarker(v string) *ListAttachedPoliciesOutput {
44408	s.NextMarker = &v
44409	return s
44410}
44411
44412// SetPolicies sets the Policies field's value.
44413func (s *ListAttachedPoliciesOutput) SetPolicies(v []*Policy) *ListAttachedPoliciesOutput {
44414	s.Policies = v
44415	return s
44416}
44417
44418type ListAuditFindingsInput struct {
44419	_ struct{} `type:"structure"`
44420
44421	// A filter to limit results to the findings for the specified audit check.
44422	CheckName *string `locationName:"checkName" type:"string"`
44423
44424	// A filter to limit results to those found before the specified time. You must
44425	// specify either the startTime and endTime or the taskId, but not both.
44426	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
44427
44428	// Boolean flag indicating whether only the suppressed findings or the unsuppressed
44429	// findings should be listed. If this parameter isn't provided, the response
44430	// will list both suppressed and unsuppressed findings.
44431	ListSuppressedFindings *bool `locationName:"listSuppressedFindings" type:"boolean"`
44432
44433	// The maximum number of results to return at one time. The default is 25.
44434	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
44435
44436	// The token for the next set of results.
44437	NextToken *string `locationName:"nextToken" type:"string"`
44438
44439	// Information identifying the noncompliant resource.
44440	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
44441
44442	// A filter to limit results to those found after the specified time. You must
44443	// specify either the startTime and endTime or the taskId, but not both.
44444	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
44445
44446	// A filter to limit results to the audit with the specified ID. You must specify
44447	// either the taskId or the startTime and endTime, but not both.
44448	TaskId *string `locationName:"taskId" min:"1" type:"string"`
44449}
44450
44451// String returns the string representation
44452func (s ListAuditFindingsInput) String() string {
44453	return awsutil.Prettify(s)
44454}
44455
44456// GoString returns the string representation
44457func (s ListAuditFindingsInput) GoString() string {
44458	return s.String()
44459}
44460
44461// Validate inspects the fields of the type to determine if they are valid.
44462func (s *ListAuditFindingsInput) Validate() error {
44463	invalidParams := request.ErrInvalidParams{Context: "ListAuditFindingsInput"}
44464	if s.MaxResults != nil && *s.MaxResults < 1 {
44465		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44466	}
44467	if s.TaskId != nil && len(*s.TaskId) < 1 {
44468		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
44469	}
44470	if s.ResourceIdentifier != nil {
44471		if err := s.ResourceIdentifier.Validate(); err != nil {
44472			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
44473		}
44474	}
44475
44476	if invalidParams.Len() > 0 {
44477		return invalidParams
44478	}
44479	return nil
44480}
44481
44482// SetCheckName sets the CheckName field's value.
44483func (s *ListAuditFindingsInput) SetCheckName(v string) *ListAuditFindingsInput {
44484	s.CheckName = &v
44485	return s
44486}
44487
44488// SetEndTime sets the EndTime field's value.
44489func (s *ListAuditFindingsInput) SetEndTime(v time.Time) *ListAuditFindingsInput {
44490	s.EndTime = &v
44491	return s
44492}
44493
44494// SetListSuppressedFindings sets the ListSuppressedFindings field's value.
44495func (s *ListAuditFindingsInput) SetListSuppressedFindings(v bool) *ListAuditFindingsInput {
44496	s.ListSuppressedFindings = &v
44497	return s
44498}
44499
44500// SetMaxResults sets the MaxResults field's value.
44501func (s *ListAuditFindingsInput) SetMaxResults(v int64) *ListAuditFindingsInput {
44502	s.MaxResults = &v
44503	return s
44504}
44505
44506// SetNextToken sets the NextToken field's value.
44507func (s *ListAuditFindingsInput) SetNextToken(v string) *ListAuditFindingsInput {
44508	s.NextToken = &v
44509	return s
44510}
44511
44512// SetResourceIdentifier sets the ResourceIdentifier field's value.
44513func (s *ListAuditFindingsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditFindingsInput {
44514	s.ResourceIdentifier = v
44515	return s
44516}
44517
44518// SetStartTime sets the StartTime field's value.
44519func (s *ListAuditFindingsInput) SetStartTime(v time.Time) *ListAuditFindingsInput {
44520	s.StartTime = &v
44521	return s
44522}
44523
44524// SetTaskId sets the TaskId field's value.
44525func (s *ListAuditFindingsInput) SetTaskId(v string) *ListAuditFindingsInput {
44526	s.TaskId = &v
44527	return s
44528}
44529
44530type ListAuditFindingsOutput struct {
44531	_ struct{} `type:"structure"`
44532
44533	// The findings (results) of the audit.
44534	Findings []*AuditFinding `locationName:"findings" type:"list"`
44535
44536	// A token that can be used to retrieve the next set of results, or null if
44537	// there are no additional results.
44538	NextToken *string `locationName:"nextToken" type:"string"`
44539}
44540
44541// String returns the string representation
44542func (s ListAuditFindingsOutput) String() string {
44543	return awsutil.Prettify(s)
44544}
44545
44546// GoString returns the string representation
44547func (s ListAuditFindingsOutput) GoString() string {
44548	return s.String()
44549}
44550
44551// SetFindings sets the Findings field's value.
44552func (s *ListAuditFindingsOutput) SetFindings(v []*AuditFinding) *ListAuditFindingsOutput {
44553	s.Findings = v
44554	return s
44555}
44556
44557// SetNextToken sets the NextToken field's value.
44558func (s *ListAuditFindingsOutput) SetNextToken(v string) *ListAuditFindingsOutput {
44559	s.NextToken = &v
44560	return s
44561}
44562
44563type ListAuditMitigationActionsExecutionsInput struct {
44564	_ struct{} `type:"structure"`
44565
44566	// Specify this filter to limit results to those with a specific status.
44567	ActionStatus *string `location:"querystring" locationName:"actionStatus" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
44568
44569	// Specify this filter to limit results to those that were applied to a specific
44570	// audit finding.
44571	//
44572	// FindingId is a required field
44573	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string" required:"true"`
44574
44575	// The maximum number of results to return at one time. The default is 25.
44576	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44577
44578	// The token for the next set of results.
44579	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44580
44581	// Specify this filter to limit results to actions for a specific audit mitigation
44582	// actions task.
44583	//
44584	// TaskId is a required field
44585	TaskId *string `location:"querystring" locationName:"taskId" min:"1" type:"string" required:"true"`
44586}
44587
44588// String returns the string representation
44589func (s ListAuditMitigationActionsExecutionsInput) String() string {
44590	return awsutil.Prettify(s)
44591}
44592
44593// GoString returns the string representation
44594func (s ListAuditMitigationActionsExecutionsInput) GoString() string {
44595	return s.String()
44596}
44597
44598// Validate inspects the fields of the type to determine if they are valid.
44599func (s *ListAuditMitigationActionsExecutionsInput) Validate() error {
44600	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsExecutionsInput"}
44601	if s.FindingId == nil {
44602		invalidParams.Add(request.NewErrParamRequired("FindingId"))
44603	}
44604	if s.FindingId != nil && len(*s.FindingId) < 1 {
44605		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
44606	}
44607	if s.MaxResults != nil && *s.MaxResults < 1 {
44608		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44609	}
44610	if s.TaskId == nil {
44611		invalidParams.Add(request.NewErrParamRequired("TaskId"))
44612	}
44613	if s.TaskId != nil && len(*s.TaskId) < 1 {
44614		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
44615	}
44616
44617	if invalidParams.Len() > 0 {
44618		return invalidParams
44619	}
44620	return nil
44621}
44622
44623// SetActionStatus sets the ActionStatus field's value.
44624func (s *ListAuditMitigationActionsExecutionsInput) SetActionStatus(v string) *ListAuditMitigationActionsExecutionsInput {
44625	s.ActionStatus = &v
44626	return s
44627}
44628
44629// SetFindingId sets the FindingId field's value.
44630func (s *ListAuditMitigationActionsExecutionsInput) SetFindingId(v string) *ListAuditMitigationActionsExecutionsInput {
44631	s.FindingId = &v
44632	return s
44633}
44634
44635// SetMaxResults sets the MaxResults field's value.
44636func (s *ListAuditMitigationActionsExecutionsInput) SetMaxResults(v int64) *ListAuditMitigationActionsExecutionsInput {
44637	s.MaxResults = &v
44638	return s
44639}
44640
44641// SetNextToken sets the NextToken field's value.
44642func (s *ListAuditMitigationActionsExecutionsInput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsInput {
44643	s.NextToken = &v
44644	return s
44645}
44646
44647// SetTaskId sets the TaskId field's value.
44648func (s *ListAuditMitigationActionsExecutionsInput) SetTaskId(v string) *ListAuditMitigationActionsExecutionsInput {
44649	s.TaskId = &v
44650	return s
44651}
44652
44653type ListAuditMitigationActionsExecutionsOutput struct {
44654	_ struct{} `type:"structure"`
44655
44656	// A set of task execution results based on the input parameters. Details include
44657	// the mitigation action applied, start time, and task status.
44658	ActionsExecutions []*AuditMitigationActionExecutionMetadata `locationName:"actionsExecutions" type:"list"`
44659
44660	// The token for the next set of results.
44661	NextToken *string `locationName:"nextToken" type:"string"`
44662}
44663
44664// String returns the string representation
44665func (s ListAuditMitigationActionsExecutionsOutput) String() string {
44666	return awsutil.Prettify(s)
44667}
44668
44669// GoString returns the string representation
44670func (s ListAuditMitigationActionsExecutionsOutput) GoString() string {
44671	return s.String()
44672}
44673
44674// SetActionsExecutions sets the ActionsExecutions field's value.
44675func (s *ListAuditMitigationActionsExecutionsOutput) SetActionsExecutions(v []*AuditMitigationActionExecutionMetadata) *ListAuditMitigationActionsExecutionsOutput {
44676	s.ActionsExecutions = v
44677	return s
44678}
44679
44680// SetNextToken sets the NextToken field's value.
44681func (s *ListAuditMitigationActionsExecutionsOutput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsOutput {
44682	s.NextToken = &v
44683	return s
44684}
44685
44686type ListAuditMitigationActionsTasksInput struct {
44687	_ struct{} `type:"structure"`
44688
44689	// Specify this filter to limit results to tasks that were applied to results
44690	// for a specific audit.
44691	AuditTaskId *string `location:"querystring" locationName:"auditTaskId" min:"1" type:"string"`
44692
44693	// Specify this filter to limit results to tasks that were completed or canceled
44694	// on or before a specific date and time.
44695	//
44696	// EndTime is a required field
44697	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
44698
44699	// Specify this filter to limit results to tasks that were applied to a specific
44700	// audit finding.
44701	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string"`
44702
44703	// The maximum number of results to return at one time. The default is 25.
44704	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44705
44706	// The token for the next set of results.
44707	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44708
44709	// Specify this filter to limit results to tasks that began on or after a specific
44710	// date and time.
44711	//
44712	// StartTime is a required field
44713	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
44714
44715	// Specify this filter to limit results to tasks that are in a specific state.
44716	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
44717}
44718
44719// String returns the string representation
44720func (s ListAuditMitigationActionsTasksInput) String() string {
44721	return awsutil.Prettify(s)
44722}
44723
44724// GoString returns the string representation
44725func (s ListAuditMitigationActionsTasksInput) GoString() string {
44726	return s.String()
44727}
44728
44729// Validate inspects the fields of the type to determine if they are valid.
44730func (s *ListAuditMitigationActionsTasksInput) Validate() error {
44731	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsTasksInput"}
44732	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
44733		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
44734	}
44735	if s.EndTime == nil {
44736		invalidParams.Add(request.NewErrParamRequired("EndTime"))
44737	}
44738	if s.FindingId != nil && len(*s.FindingId) < 1 {
44739		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
44740	}
44741	if s.MaxResults != nil && *s.MaxResults < 1 {
44742		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44743	}
44744	if s.StartTime == nil {
44745		invalidParams.Add(request.NewErrParamRequired("StartTime"))
44746	}
44747
44748	if invalidParams.Len() > 0 {
44749		return invalidParams
44750	}
44751	return nil
44752}
44753
44754// SetAuditTaskId sets the AuditTaskId field's value.
44755func (s *ListAuditMitigationActionsTasksInput) SetAuditTaskId(v string) *ListAuditMitigationActionsTasksInput {
44756	s.AuditTaskId = &v
44757	return s
44758}
44759
44760// SetEndTime sets the EndTime field's value.
44761func (s *ListAuditMitigationActionsTasksInput) SetEndTime(v time.Time) *ListAuditMitigationActionsTasksInput {
44762	s.EndTime = &v
44763	return s
44764}
44765
44766// SetFindingId sets the FindingId field's value.
44767func (s *ListAuditMitigationActionsTasksInput) SetFindingId(v string) *ListAuditMitigationActionsTasksInput {
44768	s.FindingId = &v
44769	return s
44770}
44771
44772// SetMaxResults sets the MaxResults field's value.
44773func (s *ListAuditMitigationActionsTasksInput) SetMaxResults(v int64) *ListAuditMitigationActionsTasksInput {
44774	s.MaxResults = &v
44775	return s
44776}
44777
44778// SetNextToken sets the NextToken field's value.
44779func (s *ListAuditMitigationActionsTasksInput) SetNextToken(v string) *ListAuditMitigationActionsTasksInput {
44780	s.NextToken = &v
44781	return s
44782}
44783
44784// SetStartTime sets the StartTime field's value.
44785func (s *ListAuditMitigationActionsTasksInput) SetStartTime(v time.Time) *ListAuditMitigationActionsTasksInput {
44786	s.StartTime = &v
44787	return s
44788}
44789
44790// SetTaskStatus sets the TaskStatus field's value.
44791func (s *ListAuditMitigationActionsTasksInput) SetTaskStatus(v string) *ListAuditMitigationActionsTasksInput {
44792	s.TaskStatus = &v
44793	return s
44794}
44795
44796type ListAuditMitigationActionsTasksOutput struct {
44797	_ struct{} `type:"structure"`
44798
44799	// The token for the next set of results.
44800	NextToken *string `locationName:"nextToken" type:"string"`
44801
44802	// The collection of audit mitigation tasks that matched the filter criteria.
44803	Tasks []*AuditMitigationActionsTaskMetadata `locationName:"tasks" type:"list"`
44804}
44805
44806// String returns the string representation
44807func (s ListAuditMitigationActionsTasksOutput) String() string {
44808	return awsutil.Prettify(s)
44809}
44810
44811// GoString returns the string representation
44812func (s ListAuditMitigationActionsTasksOutput) GoString() string {
44813	return s.String()
44814}
44815
44816// SetNextToken sets the NextToken field's value.
44817func (s *ListAuditMitigationActionsTasksOutput) SetNextToken(v string) *ListAuditMitigationActionsTasksOutput {
44818	s.NextToken = &v
44819	return s
44820}
44821
44822// SetTasks sets the Tasks field's value.
44823func (s *ListAuditMitigationActionsTasksOutput) SetTasks(v []*AuditMitigationActionsTaskMetadata) *ListAuditMitigationActionsTasksOutput {
44824	s.Tasks = v
44825	return s
44826}
44827
44828type ListAuditSuppressionsInput struct {
44829	_ struct{} `type:"structure"`
44830
44831	// Determines whether suppressions are listed in ascending order by expiration
44832	// date or not. If parameter isn't provided, ascendingOrder=true.
44833	AscendingOrder *bool `locationName:"ascendingOrder" type:"boolean"`
44834
44835	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
44836	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
44837	// to select which checks are enabled.)
44838	CheckName *string `locationName:"checkName" type:"string"`
44839
44840	// The maximum number of results to return at one time. The default is 25.
44841	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
44842
44843	// The token for the next set of results.
44844	NextToken *string `locationName:"nextToken" type:"string"`
44845
44846	// Information that identifies the noncompliant resource.
44847	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
44848}
44849
44850// String returns the string representation
44851func (s ListAuditSuppressionsInput) String() string {
44852	return awsutil.Prettify(s)
44853}
44854
44855// GoString returns the string representation
44856func (s ListAuditSuppressionsInput) GoString() string {
44857	return s.String()
44858}
44859
44860// Validate inspects the fields of the type to determine if they are valid.
44861func (s *ListAuditSuppressionsInput) Validate() error {
44862	invalidParams := request.ErrInvalidParams{Context: "ListAuditSuppressionsInput"}
44863	if s.MaxResults != nil && *s.MaxResults < 1 {
44864		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44865	}
44866	if s.ResourceIdentifier != nil {
44867		if err := s.ResourceIdentifier.Validate(); err != nil {
44868			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
44869		}
44870	}
44871
44872	if invalidParams.Len() > 0 {
44873		return invalidParams
44874	}
44875	return nil
44876}
44877
44878// SetAscendingOrder sets the AscendingOrder field's value.
44879func (s *ListAuditSuppressionsInput) SetAscendingOrder(v bool) *ListAuditSuppressionsInput {
44880	s.AscendingOrder = &v
44881	return s
44882}
44883
44884// SetCheckName sets the CheckName field's value.
44885func (s *ListAuditSuppressionsInput) SetCheckName(v string) *ListAuditSuppressionsInput {
44886	s.CheckName = &v
44887	return s
44888}
44889
44890// SetMaxResults sets the MaxResults field's value.
44891func (s *ListAuditSuppressionsInput) SetMaxResults(v int64) *ListAuditSuppressionsInput {
44892	s.MaxResults = &v
44893	return s
44894}
44895
44896// SetNextToken sets the NextToken field's value.
44897func (s *ListAuditSuppressionsInput) SetNextToken(v string) *ListAuditSuppressionsInput {
44898	s.NextToken = &v
44899	return s
44900}
44901
44902// SetResourceIdentifier sets the ResourceIdentifier field's value.
44903func (s *ListAuditSuppressionsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditSuppressionsInput {
44904	s.ResourceIdentifier = v
44905	return s
44906}
44907
44908type ListAuditSuppressionsOutput struct {
44909	_ struct{} `type:"structure"`
44910
44911	// A token that can be used to retrieve the next set of results, or null if
44912	// there are no additional results.
44913	NextToken *string `locationName:"nextToken" type:"string"`
44914
44915	// List of audit suppressions.
44916	Suppressions []*AuditSuppression `locationName:"suppressions" type:"list"`
44917}
44918
44919// String returns the string representation
44920func (s ListAuditSuppressionsOutput) String() string {
44921	return awsutil.Prettify(s)
44922}
44923
44924// GoString returns the string representation
44925func (s ListAuditSuppressionsOutput) GoString() string {
44926	return s.String()
44927}
44928
44929// SetNextToken sets the NextToken field's value.
44930func (s *ListAuditSuppressionsOutput) SetNextToken(v string) *ListAuditSuppressionsOutput {
44931	s.NextToken = &v
44932	return s
44933}
44934
44935// SetSuppressions sets the Suppressions field's value.
44936func (s *ListAuditSuppressionsOutput) SetSuppressions(v []*AuditSuppression) *ListAuditSuppressionsOutput {
44937	s.Suppressions = v
44938	return s
44939}
44940
44941type ListAuditTasksInput struct {
44942	_ struct{} `type:"structure"`
44943
44944	// The end of the time period.
44945	//
44946	// EndTime is a required field
44947	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
44948
44949	// The maximum number of results to return at one time. The default is 25.
44950	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
44951
44952	// The token for the next set of results.
44953	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
44954
44955	// The beginning of the time period. Audit information is retained for a limited
44956	// time (90 days). Requesting a start time prior to what is retained results
44957	// in an "InvalidRequestException".
44958	//
44959	// StartTime is a required field
44960	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
44961
44962	// A filter to limit the output to audits with the specified completion status:
44963	// can be one of "IN_PROGRESS", "COMPLETED", "FAILED", or "CANCELED".
44964	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
44965
44966	// A filter to limit the output to the specified type of audit: can be one of
44967	// "ON_DEMAND_AUDIT_TASK" or "SCHEDULED__AUDIT_TASK".
44968	TaskType *string `location:"querystring" locationName:"taskType" type:"string" enum:"AuditTaskType"`
44969}
44970
44971// String returns the string representation
44972func (s ListAuditTasksInput) String() string {
44973	return awsutil.Prettify(s)
44974}
44975
44976// GoString returns the string representation
44977func (s ListAuditTasksInput) GoString() string {
44978	return s.String()
44979}
44980
44981// Validate inspects the fields of the type to determine if they are valid.
44982func (s *ListAuditTasksInput) Validate() error {
44983	invalidParams := request.ErrInvalidParams{Context: "ListAuditTasksInput"}
44984	if s.EndTime == nil {
44985		invalidParams.Add(request.NewErrParamRequired("EndTime"))
44986	}
44987	if s.MaxResults != nil && *s.MaxResults < 1 {
44988		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
44989	}
44990	if s.StartTime == nil {
44991		invalidParams.Add(request.NewErrParamRequired("StartTime"))
44992	}
44993
44994	if invalidParams.Len() > 0 {
44995		return invalidParams
44996	}
44997	return nil
44998}
44999
45000// SetEndTime sets the EndTime field's value.
45001func (s *ListAuditTasksInput) SetEndTime(v time.Time) *ListAuditTasksInput {
45002	s.EndTime = &v
45003	return s
45004}
45005
45006// SetMaxResults sets the MaxResults field's value.
45007func (s *ListAuditTasksInput) SetMaxResults(v int64) *ListAuditTasksInput {
45008	s.MaxResults = &v
45009	return s
45010}
45011
45012// SetNextToken sets the NextToken field's value.
45013func (s *ListAuditTasksInput) SetNextToken(v string) *ListAuditTasksInput {
45014	s.NextToken = &v
45015	return s
45016}
45017
45018// SetStartTime sets the StartTime field's value.
45019func (s *ListAuditTasksInput) SetStartTime(v time.Time) *ListAuditTasksInput {
45020	s.StartTime = &v
45021	return s
45022}
45023
45024// SetTaskStatus sets the TaskStatus field's value.
45025func (s *ListAuditTasksInput) SetTaskStatus(v string) *ListAuditTasksInput {
45026	s.TaskStatus = &v
45027	return s
45028}
45029
45030// SetTaskType sets the TaskType field's value.
45031func (s *ListAuditTasksInput) SetTaskType(v string) *ListAuditTasksInput {
45032	s.TaskType = &v
45033	return s
45034}
45035
45036type ListAuditTasksOutput struct {
45037	_ struct{} `type:"structure"`
45038
45039	// A token that can be used to retrieve the next set of results, or null if
45040	// there are no additional results.
45041	NextToken *string `locationName:"nextToken" type:"string"`
45042
45043	// The audits that were performed during the specified time period.
45044	Tasks []*AuditTaskMetadata `locationName:"tasks" type:"list"`
45045}
45046
45047// String returns the string representation
45048func (s ListAuditTasksOutput) String() string {
45049	return awsutil.Prettify(s)
45050}
45051
45052// GoString returns the string representation
45053func (s ListAuditTasksOutput) GoString() string {
45054	return s.String()
45055}
45056
45057// SetNextToken sets the NextToken field's value.
45058func (s *ListAuditTasksOutput) SetNextToken(v string) *ListAuditTasksOutput {
45059	s.NextToken = &v
45060	return s
45061}
45062
45063// SetTasks sets the Tasks field's value.
45064func (s *ListAuditTasksOutput) SetTasks(v []*AuditTaskMetadata) *ListAuditTasksOutput {
45065	s.Tasks = v
45066	return s
45067}
45068
45069type ListAuthorizersInput struct {
45070	_ struct{} `type:"structure"`
45071
45072	// Return the list of authorizers in ascending alphabetical order.
45073	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
45074
45075	// A marker used to get the next set of results.
45076	Marker *string `location:"querystring" locationName:"marker" type:"string"`
45077
45078	// The maximum number of results to return at one time.
45079	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
45080
45081	// The status of the list authorizers request.
45082	Status *string `location:"querystring" locationName:"status" type:"string" enum:"AuthorizerStatus"`
45083}
45084
45085// String returns the string representation
45086func (s ListAuthorizersInput) String() string {
45087	return awsutil.Prettify(s)
45088}
45089
45090// GoString returns the string representation
45091func (s ListAuthorizersInput) GoString() string {
45092	return s.String()
45093}
45094
45095// Validate inspects the fields of the type to determine if they are valid.
45096func (s *ListAuthorizersInput) Validate() error {
45097	invalidParams := request.ErrInvalidParams{Context: "ListAuthorizersInput"}
45098	if s.PageSize != nil && *s.PageSize < 1 {
45099		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
45100	}
45101
45102	if invalidParams.Len() > 0 {
45103		return invalidParams
45104	}
45105	return nil
45106}
45107
45108// SetAscendingOrder sets the AscendingOrder field's value.
45109func (s *ListAuthorizersInput) SetAscendingOrder(v bool) *ListAuthorizersInput {
45110	s.AscendingOrder = &v
45111	return s
45112}
45113
45114// SetMarker sets the Marker field's value.
45115func (s *ListAuthorizersInput) SetMarker(v string) *ListAuthorizersInput {
45116	s.Marker = &v
45117	return s
45118}
45119
45120// SetPageSize sets the PageSize field's value.
45121func (s *ListAuthorizersInput) SetPageSize(v int64) *ListAuthorizersInput {
45122	s.PageSize = &v
45123	return s
45124}
45125
45126// SetStatus sets the Status field's value.
45127func (s *ListAuthorizersInput) SetStatus(v string) *ListAuthorizersInput {
45128	s.Status = &v
45129	return s
45130}
45131
45132type ListAuthorizersOutput struct {
45133	_ struct{} `type:"structure"`
45134
45135	// The authorizers.
45136	Authorizers []*AuthorizerSummary `locationName:"authorizers" type:"list"`
45137
45138	// A marker used to get the next set of results.
45139	NextMarker *string `locationName:"nextMarker" type:"string"`
45140}
45141
45142// String returns the string representation
45143func (s ListAuthorizersOutput) String() string {
45144	return awsutil.Prettify(s)
45145}
45146
45147// GoString returns the string representation
45148func (s ListAuthorizersOutput) GoString() string {
45149	return s.String()
45150}
45151
45152// SetAuthorizers sets the Authorizers field's value.
45153func (s *ListAuthorizersOutput) SetAuthorizers(v []*AuthorizerSummary) *ListAuthorizersOutput {
45154	s.Authorizers = v
45155	return s
45156}
45157
45158// SetNextMarker sets the NextMarker field's value.
45159func (s *ListAuthorizersOutput) SetNextMarker(v string) *ListAuthorizersOutput {
45160	s.NextMarker = &v
45161	return s
45162}
45163
45164type ListBillingGroupsInput struct {
45165	_ struct{} `type:"structure"`
45166
45167	// The maximum number of results to return per request.
45168	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45169
45170	// Limit the results to billing groups whose names have the given prefix.
45171	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
45172
45173	// To retrieve the next set of results, the nextToken value from a previous
45174	// response; otherwise null to receive the first set of results.
45175	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45176}
45177
45178// String returns the string representation
45179func (s ListBillingGroupsInput) String() string {
45180	return awsutil.Prettify(s)
45181}
45182
45183// GoString returns the string representation
45184func (s ListBillingGroupsInput) GoString() string {
45185	return s.String()
45186}
45187
45188// Validate inspects the fields of the type to determine if they are valid.
45189func (s *ListBillingGroupsInput) Validate() error {
45190	invalidParams := request.ErrInvalidParams{Context: "ListBillingGroupsInput"}
45191	if s.MaxResults != nil && *s.MaxResults < 1 {
45192		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45193	}
45194	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
45195		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
45196	}
45197
45198	if invalidParams.Len() > 0 {
45199		return invalidParams
45200	}
45201	return nil
45202}
45203
45204// SetMaxResults sets the MaxResults field's value.
45205func (s *ListBillingGroupsInput) SetMaxResults(v int64) *ListBillingGroupsInput {
45206	s.MaxResults = &v
45207	return s
45208}
45209
45210// SetNamePrefixFilter sets the NamePrefixFilter field's value.
45211func (s *ListBillingGroupsInput) SetNamePrefixFilter(v string) *ListBillingGroupsInput {
45212	s.NamePrefixFilter = &v
45213	return s
45214}
45215
45216// SetNextToken sets the NextToken field's value.
45217func (s *ListBillingGroupsInput) SetNextToken(v string) *ListBillingGroupsInput {
45218	s.NextToken = &v
45219	return s
45220}
45221
45222type ListBillingGroupsOutput struct {
45223	_ struct{} `type:"structure"`
45224
45225	// The list of billing groups.
45226	BillingGroups []*GroupNameAndArn `locationName:"billingGroups" type:"list"`
45227
45228	// The token to use to get the next set of results, or null if there are no
45229	// additional results.
45230	NextToken *string `locationName:"nextToken" type:"string"`
45231}
45232
45233// String returns the string representation
45234func (s ListBillingGroupsOutput) String() string {
45235	return awsutil.Prettify(s)
45236}
45237
45238// GoString returns the string representation
45239func (s ListBillingGroupsOutput) GoString() string {
45240	return s.String()
45241}
45242
45243// SetBillingGroups sets the BillingGroups field's value.
45244func (s *ListBillingGroupsOutput) SetBillingGroups(v []*GroupNameAndArn) *ListBillingGroupsOutput {
45245	s.BillingGroups = v
45246	return s
45247}
45248
45249// SetNextToken sets the NextToken field's value.
45250func (s *ListBillingGroupsOutput) SetNextToken(v string) *ListBillingGroupsOutput {
45251	s.NextToken = &v
45252	return s
45253}
45254
45255// Input for the ListCACertificates operation.
45256type ListCACertificatesInput struct {
45257	_ struct{} `type:"structure"`
45258
45259	// Determines the order of the results.
45260	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
45261
45262	// The marker for the next set of results.
45263	Marker *string `location:"querystring" locationName:"marker" type:"string"`
45264
45265	// The result page size.
45266	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
45267}
45268
45269// String returns the string representation
45270func (s ListCACertificatesInput) String() string {
45271	return awsutil.Prettify(s)
45272}
45273
45274// GoString returns the string representation
45275func (s ListCACertificatesInput) GoString() string {
45276	return s.String()
45277}
45278
45279// Validate inspects the fields of the type to determine if they are valid.
45280func (s *ListCACertificatesInput) Validate() error {
45281	invalidParams := request.ErrInvalidParams{Context: "ListCACertificatesInput"}
45282	if s.PageSize != nil && *s.PageSize < 1 {
45283		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
45284	}
45285
45286	if invalidParams.Len() > 0 {
45287		return invalidParams
45288	}
45289	return nil
45290}
45291
45292// SetAscendingOrder sets the AscendingOrder field's value.
45293func (s *ListCACertificatesInput) SetAscendingOrder(v bool) *ListCACertificatesInput {
45294	s.AscendingOrder = &v
45295	return s
45296}
45297
45298// SetMarker sets the Marker field's value.
45299func (s *ListCACertificatesInput) SetMarker(v string) *ListCACertificatesInput {
45300	s.Marker = &v
45301	return s
45302}
45303
45304// SetPageSize sets the PageSize field's value.
45305func (s *ListCACertificatesInput) SetPageSize(v int64) *ListCACertificatesInput {
45306	s.PageSize = &v
45307	return s
45308}
45309
45310// The output from the ListCACertificates operation.
45311type ListCACertificatesOutput struct {
45312	_ struct{} `type:"structure"`
45313
45314	// The CA certificates registered in your Amazon Web Services account.
45315	Certificates []*CACertificate `locationName:"certificates" type:"list"`
45316
45317	// The current position within the list of CA certificates.
45318	NextMarker *string `locationName:"nextMarker" type:"string"`
45319}
45320
45321// String returns the string representation
45322func (s ListCACertificatesOutput) String() string {
45323	return awsutil.Prettify(s)
45324}
45325
45326// GoString returns the string representation
45327func (s ListCACertificatesOutput) GoString() string {
45328	return s.String()
45329}
45330
45331// SetCertificates sets the Certificates field's value.
45332func (s *ListCACertificatesOutput) SetCertificates(v []*CACertificate) *ListCACertificatesOutput {
45333	s.Certificates = v
45334	return s
45335}
45336
45337// SetNextMarker sets the NextMarker field's value.
45338func (s *ListCACertificatesOutput) SetNextMarker(v string) *ListCACertificatesOutput {
45339	s.NextMarker = &v
45340	return s
45341}
45342
45343// The input to the ListCertificatesByCA operation.
45344type ListCertificatesByCAInput struct {
45345	_ struct{} `type:"structure"`
45346
45347	// Specifies the order for results. If True, the results are returned in ascending
45348	// order, based on the creation date.
45349	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
45350
45351	// The ID of the CA certificate. This operation will list all registered device
45352	// certificate that were signed by this CA certificate.
45353	//
45354	// CaCertificateId is a required field
45355	CaCertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
45356
45357	// The marker for the next set of results.
45358	Marker *string `location:"querystring" locationName:"marker" type:"string"`
45359
45360	// The result page size.
45361	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
45362}
45363
45364// String returns the string representation
45365func (s ListCertificatesByCAInput) String() string {
45366	return awsutil.Prettify(s)
45367}
45368
45369// GoString returns the string representation
45370func (s ListCertificatesByCAInput) GoString() string {
45371	return s.String()
45372}
45373
45374// Validate inspects the fields of the type to determine if they are valid.
45375func (s *ListCertificatesByCAInput) Validate() error {
45376	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesByCAInput"}
45377	if s.CaCertificateId == nil {
45378		invalidParams.Add(request.NewErrParamRequired("CaCertificateId"))
45379	}
45380	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
45381		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
45382	}
45383	if s.PageSize != nil && *s.PageSize < 1 {
45384		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
45385	}
45386
45387	if invalidParams.Len() > 0 {
45388		return invalidParams
45389	}
45390	return nil
45391}
45392
45393// SetAscendingOrder sets the AscendingOrder field's value.
45394func (s *ListCertificatesByCAInput) SetAscendingOrder(v bool) *ListCertificatesByCAInput {
45395	s.AscendingOrder = &v
45396	return s
45397}
45398
45399// SetCaCertificateId sets the CaCertificateId field's value.
45400func (s *ListCertificatesByCAInput) SetCaCertificateId(v string) *ListCertificatesByCAInput {
45401	s.CaCertificateId = &v
45402	return s
45403}
45404
45405// SetMarker sets the Marker field's value.
45406func (s *ListCertificatesByCAInput) SetMarker(v string) *ListCertificatesByCAInput {
45407	s.Marker = &v
45408	return s
45409}
45410
45411// SetPageSize sets the PageSize field's value.
45412func (s *ListCertificatesByCAInput) SetPageSize(v int64) *ListCertificatesByCAInput {
45413	s.PageSize = &v
45414	return s
45415}
45416
45417// The output of the ListCertificatesByCA operation.
45418type ListCertificatesByCAOutput struct {
45419	_ struct{} `type:"structure"`
45420
45421	// The device certificates signed by the specified CA certificate.
45422	Certificates []*Certificate `locationName:"certificates" type:"list"`
45423
45424	// The marker for the next set of results, or null if there are no additional
45425	// results.
45426	NextMarker *string `locationName:"nextMarker" type:"string"`
45427}
45428
45429// String returns the string representation
45430func (s ListCertificatesByCAOutput) String() string {
45431	return awsutil.Prettify(s)
45432}
45433
45434// GoString returns the string representation
45435func (s ListCertificatesByCAOutput) GoString() string {
45436	return s.String()
45437}
45438
45439// SetCertificates sets the Certificates field's value.
45440func (s *ListCertificatesByCAOutput) SetCertificates(v []*Certificate) *ListCertificatesByCAOutput {
45441	s.Certificates = v
45442	return s
45443}
45444
45445// SetNextMarker sets the NextMarker field's value.
45446func (s *ListCertificatesByCAOutput) SetNextMarker(v string) *ListCertificatesByCAOutput {
45447	s.NextMarker = &v
45448	return s
45449}
45450
45451// The input for the ListCertificates operation.
45452type ListCertificatesInput struct {
45453	_ struct{} `type:"structure"`
45454
45455	// Specifies the order for results. If True, the results are returned in ascending
45456	// order, based on the creation date.
45457	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
45458
45459	// The marker for the next set of results.
45460	Marker *string `location:"querystring" locationName:"marker" type:"string"`
45461
45462	// The result page size.
45463	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
45464}
45465
45466// String returns the string representation
45467func (s ListCertificatesInput) String() string {
45468	return awsutil.Prettify(s)
45469}
45470
45471// GoString returns the string representation
45472func (s ListCertificatesInput) GoString() string {
45473	return s.String()
45474}
45475
45476// Validate inspects the fields of the type to determine if they are valid.
45477func (s *ListCertificatesInput) Validate() error {
45478	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesInput"}
45479	if s.PageSize != nil && *s.PageSize < 1 {
45480		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
45481	}
45482
45483	if invalidParams.Len() > 0 {
45484		return invalidParams
45485	}
45486	return nil
45487}
45488
45489// SetAscendingOrder sets the AscendingOrder field's value.
45490func (s *ListCertificatesInput) SetAscendingOrder(v bool) *ListCertificatesInput {
45491	s.AscendingOrder = &v
45492	return s
45493}
45494
45495// SetMarker sets the Marker field's value.
45496func (s *ListCertificatesInput) SetMarker(v string) *ListCertificatesInput {
45497	s.Marker = &v
45498	return s
45499}
45500
45501// SetPageSize sets the PageSize field's value.
45502func (s *ListCertificatesInput) SetPageSize(v int64) *ListCertificatesInput {
45503	s.PageSize = &v
45504	return s
45505}
45506
45507// The output of the ListCertificates operation.
45508type ListCertificatesOutput struct {
45509	_ struct{} `type:"structure"`
45510
45511	// The descriptions of the certificates.
45512	Certificates []*Certificate `locationName:"certificates" type:"list"`
45513
45514	// The marker for the next set of results, or null if there are no additional
45515	// results.
45516	NextMarker *string `locationName:"nextMarker" type:"string"`
45517}
45518
45519// String returns the string representation
45520func (s ListCertificatesOutput) String() string {
45521	return awsutil.Prettify(s)
45522}
45523
45524// GoString returns the string representation
45525func (s ListCertificatesOutput) GoString() string {
45526	return s.String()
45527}
45528
45529// SetCertificates sets the Certificates field's value.
45530func (s *ListCertificatesOutput) SetCertificates(v []*Certificate) *ListCertificatesOutput {
45531	s.Certificates = v
45532	return s
45533}
45534
45535// SetNextMarker sets the NextMarker field's value.
45536func (s *ListCertificatesOutput) SetNextMarker(v string) *ListCertificatesOutput {
45537	s.NextMarker = &v
45538	return s
45539}
45540
45541type ListCustomMetricsInput struct {
45542	_ struct{} `type:"structure"`
45543
45544	// The maximum number of results to return at one time. The default is 25.
45545	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45546
45547	// The token for the next set of results.
45548	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45549}
45550
45551// String returns the string representation
45552func (s ListCustomMetricsInput) String() string {
45553	return awsutil.Prettify(s)
45554}
45555
45556// GoString returns the string representation
45557func (s ListCustomMetricsInput) GoString() string {
45558	return s.String()
45559}
45560
45561// Validate inspects the fields of the type to determine if they are valid.
45562func (s *ListCustomMetricsInput) Validate() error {
45563	invalidParams := request.ErrInvalidParams{Context: "ListCustomMetricsInput"}
45564	if s.MaxResults != nil && *s.MaxResults < 1 {
45565		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45566	}
45567
45568	if invalidParams.Len() > 0 {
45569		return invalidParams
45570	}
45571	return nil
45572}
45573
45574// SetMaxResults sets the MaxResults field's value.
45575func (s *ListCustomMetricsInput) SetMaxResults(v int64) *ListCustomMetricsInput {
45576	s.MaxResults = &v
45577	return s
45578}
45579
45580// SetNextToken sets the NextToken field's value.
45581func (s *ListCustomMetricsInput) SetNextToken(v string) *ListCustomMetricsInput {
45582	s.NextToken = &v
45583	return s
45584}
45585
45586type ListCustomMetricsOutput struct {
45587	_ struct{} `type:"structure"`
45588
45589	// The name of the custom metric.
45590	MetricNames []*string `locationName:"metricNames" type:"list"`
45591
45592	// A token that can be used to retrieve the next set of results, or null if
45593	// there are no additional results.
45594	NextToken *string `locationName:"nextToken" type:"string"`
45595}
45596
45597// String returns the string representation
45598func (s ListCustomMetricsOutput) String() string {
45599	return awsutil.Prettify(s)
45600}
45601
45602// GoString returns the string representation
45603func (s ListCustomMetricsOutput) GoString() string {
45604	return s.String()
45605}
45606
45607// SetMetricNames sets the MetricNames field's value.
45608func (s *ListCustomMetricsOutput) SetMetricNames(v []*string) *ListCustomMetricsOutput {
45609	s.MetricNames = v
45610	return s
45611}
45612
45613// SetNextToken sets the NextToken field's value.
45614func (s *ListCustomMetricsOutput) SetNextToken(v string) *ListCustomMetricsOutput {
45615	s.NextToken = &v
45616	return s
45617}
45618
45619type ListDetectMitigationActionsExecutionsInput struct {
45620	_ struct{} `type:"structure"`
45621
45622	// The end of the time period for which ML Detect mitigation actions executions
45623	// are returned.
45624	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp"`
45625
45626	// The maximum number of results to return at one time. The default is 25.
45627	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45628
45629	// The token for the next set of results.
45630	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45631
45632	// A filter to limit results to those found after the specified time. You must
45633	// specify either the startTime and endTime or the taskId, but not both.
45634	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp"`
45635
45636	// The unique identifier of the task.
45637	TaskId *string `location:"querystring" locationName:"taskId" min:"1" type:"string"`
45638
45639	// The name of the thing whose mitigation actions are listed.
45640	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
45641
45642	// The unique identifier of the violation.
45643	ViolationId *string `location:"querystring" locationName:"violationId" min:"1" type:"string"`
45644}
45645
45646// String returns the string representation
45647func (s ListDetectMitigationActionsExecutionsInput) String() string {
45648	return awsutil.Prettify(s)
45649}
45650
45651// GoString returns the string representation
45652func (s ListDetectMitigationActionsExecutionsInput) GoString() string {
45653	return s.String()
45654}
45655
45656// Validate inspects the fields of the type to determine if they are valid.
45657func (s *ListDetectMitigationActionsExecutionsInput) Validate() error {
45658	invalidParams := request.ErrInvalidParams{Context: "ListDetectMitigationActionsExecutionsInput"}
45659	if s.MaxResults != nil && *s.MaxResults < 1 {
45660		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45661	}
45662	if s.TaskId != nil && len(*s.TaskId) < 1 {
45663		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
45664	}
45665	if s.ThingName != nil && len(*s.ThingName) < 1 {
45666		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
45667	}
45668	if s.ViolationId != nil && len(*s.ViolationId) < 1 {
45669		invalidParams.Add(request.NewErrParamMinLen("ViolationId", 1))
45670	}
45671
45672	if invalidParams.Len() > 0 {
45673		return invalidParams
45674	}
45675	return nil
45676}
45677
45678// SetEndTime sets the EndTime field's value.
45679func (s *ListDetectMitigationActionsExecutionsInput) SetEndTime(v time.Time) *ListDetectMitigationActionsExecutionsInput {
45680	s.EndTime = &v
45681	return s
45682}
45683
45684// SetMaxResults sets the MaxResults field's value.
45685func (s *ListDetectMitigationActionsExecutionsInput) SetMaxResults(v int64) *ListDetectMitigationActionsExecutionsInput {
45686	s.MaxResults = &v
45687	return s
45688}
45689
45690// SetNextToken sets the NextToken field's value.
45691func (s *ListDetectMitigationActionsExecutionsInput) SetNextToken(v string) *ListDetectMitigationActionsExecutionsInput {
45692	s.NextToken = &v
45693	return s
45694}
45695
45696// SetStartTime sets the StartTime field's value.
45697func (s *ListDetectMitigationActionsExecutionsInput) SetStartTime(v time.Time) *ListDetectMitigationActionsExecutionsInput {
45698	s.StartTime = &v
45699	return s
45700}
45701
45702// SetTaskId sets the TaskId field's value.
45703func (s *ListDetectMitigationActionsExecutionsInput) SetTaskId(v string) *ListDetectMitigationActionsExecutionsInput {
45704	s.TaskId = &v
45705	return s
45706}
45707
45708// SetThingName sets the ThingName field's value.
45709func (s *ListDetectMitigationActionsExecutionsInput) SetThingName(v string) *ListDetectMitigationActionsExecutionsInput {
45710	s.ThingName = &v
45711	return s
45712}
45713
45714// SetViolationId sets the ViolationId field's value.
45715func (s *ListDetectMitigationActionsExecutionsInput) SetViolationId(v string) *ListDetectMitigationActionsExecutionsInput {
45716	s.ViolationId = &v
45717	return s
45718}
45719
45720type ListDetectMitigationActionsExecutionsOutput struct {
45721	_ struct{} `type:"structure"`
45722
45723	// List of actions executions.
45724	ActionsExecutions []*DetectMitigationActionExecution `locationName:"actionsExecutions" type:"list"`
45725
45726	// A token that can be used to retrieve the next set of results, or null if
45727	// there are no additional results.
45728	NextToken *string `locationName:"nextToken" type:"string"`
45729}
45730
45731// String returns the string representation
45732func (s ListDetectMitigationActionsExecutionsOutput) String() string {
45733	return awsutil.Prettify(s)
45734}
45735
45736// GoString returns the string representation
45737func (s ListDetectMitigationActionsExecutionsOutput) GoString() string {
45738	return s.String()
45739}
45740
45741// SetActionsExecutions sets the ActionsExecutions field's value.
45742func (s *ListDetectMitigationActionsExecutionsOutput) SetActionsExecutions(v []*DetectMitigationActionExecution) *ListDetectMitigationActionsExecutionsOutput {
45743	s.ActionsExecutions = v
45744	return s
45745}
45746
45747// SetNextToken sets the NextToken field's value.
45748func (s *ListDetectMitigationActionsExecutionsOutput) SetNextToken(v string) *ListDetectMitigationActionsExecutionsOutput {
45749	s.NextToken = &v
45750	return s
45751}
45752
45753type ListDetectMitigationActionsTasksInput struct {
45754	_ struct{} `type:"structure"`
45755
45756	// The end of the time period for which ML Detect mitigation actions tasks are
45757	// returned.
45758	//
45759	// EndTime is a required field
45760	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
45761
45762	// The maximum number of results to return at one time. The default is 25.
45763	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45764
45765	// The token for the next set of results.
45766	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45767
45768	// A filter to limit results to those found after the specified time. You must
45769	// specify either the startTime and endTime or the taskId, but not both.
45770	//
45771	// StartTime is a required field
45772	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
45773}
45774
45775// String returns the string representation
45776func (s ListDetectMitigationActionsTasksInput) String() string {
45777	return awsutil.Prettify(s)
45778}
45779
45780// GoString returns the string representation
45781func (s ListDetectMitigationActionsTasksInput) GoString() string {
45782	return s.String()
45783}
45784
45785// Validate inspects the fields of the type to determine if they are valid.
45786func (s *ListDetectMitigationActionsTasksInput) Validate() error {
45787	invalidParams := request.ErrInvalidParams{Context: "ListDetectMitigationActionsTasksInput"}
45788	if s.EndTime == nil {
45789		invalidParams.Add(request.NewErrParamRequired("EndTime"))
45790	}
45791	if s.MaxResults != nil && *s.MaxResults < 1 {
45792		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45793	}
45794	if s.StartTime == nil {
45795		invalidParams.Add(request.NewErrParamRequired("StartTime"))
45796	}
45797
45798	if invalidParams.Len() > 0 {
45799		return invalidParams
45800	}
45801	return nil
45802}
45803
45804// SetEndTime sets the EndTime field's value.
45805func (s *ListDetectMitigationActionsTasksInput) SetEndTime(v time.Time) *ListDetectMitigationActionsTasksInput {
45806	s.EndTime = &v
45807	return s
45808}
45809
45810// SetMaxResults sets the MaxResults field's value.
45811func (s *ListDetectMitigationActionsTasksInput) SetMaxResults(v int64) *ListDetectMitigationActionsTasksInput {
45812	s.MaxResults = &v
45813	return s
45814}
45815
45816// SetNextToken sets the NextToken field's value.
45817func (s *ListDetectMitigationActionsTasksInput) SetNextToken(v string) *ListDetectMitigationActionsTasksInput {
45818	s.NextToken = &v
45819	return s
45820}
45821
45822// SetStartTime sets the StartTime field's value.
45823func (s *ListDetectMitigationActionsTasksInput) SetStartTime(v time.Time) *ListDetectMitigationActionsTasksInput {
45824	s.StartTime = &v
45825	return s
45826}
45827
45828type ListDetectMitigationActionsTasksOutput struct {
45829	_ struct{} `type:"structure"`
45830
45831	// A token that can be used to retrieve the next set of results, or null if
45832	// there are no additional results.
45833	NextToken *string `locationName:"nextToken" type:"string"`
45834
45835	// The collection of ML Detect mitigation tasks that matched the filter criteria.
45836	Tasks []*DetectMitigationActionsTaskSummary `locationName:"tasks" type:"list"`
45837}
45838
45839// String returns the string representation
45840func (s ListDetectMitigationActionsTasksOutput) String() string {
45841	return awsutil.Prettify(s)
45842}
45843
45844// GoString returns the string representation
45845func (s ListDetectMitigationActionsTasksOutput) GoString() string {
45846	return s.String()
45847}
45848
45849// SetNextToken sets the NextToken field's value.
45850func (s *ListDetectMitigationActionsTasksOutput) SetNextToken(v string) *ListDetectMitigationActionsTasksOutput {
45851	s.NextToken = &v
45852	return s
45853}
45854
45855// SetTasks sets the Tasks field's value.
45856func (s *ListDetectMitigationActionsTasksOutput) SetTasks(v []*DetectMitigationActionsTaskSummary) *ListDetectMitigationActionsTasksOutput {
45857	s.Tasks = v
45858	return s
45859}
45860
45861type ListDimensionsInput struct {
45862	_ struct{} `type:"structure"`
45863
45864	// The maximum number of results to retrieve at one time.
45865	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
45866
45867	// The token for the next set of results.
45868	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
45869}
45870
45871// String returns the string representation
45872func (s ListDimensionsInput) String() string {
45873	return awsutil.Prettify(s)
45874}
45875
45876// GoString returns the string representation
45877func (s ListDimensionsInput) GoString() string {
45878	return s.String()
45879}
45880
45881// Validate inspects the fields of the type to determine if they are valid.
45882func (s *ListDimensionsInput) Validate() error {
45883	invalidParams := request.ErrInvalidParams{Context: "ListDimensionsInput"}
45884	if s.MaxResults != nil && *s.MaxResults < 1 {
45885		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
45886	}
45887
45888	if invalidParams.Len() > 0 {
45889		return invalidParams
45890	}
45891	return nil
45892}
45893
45894// SetMaxResults sets the MaxResults field's value.
45895func (s *ListDimensionsInput) SetMaxResults(v int64) *ListDimensionsInput {
45896	s.MaxResults = &v
45897	return s
45898}
45899
45900// SetNextToken sets the NextToken field's value.
45901func (s *ListDimensionsInput) SetNextToken(v string) *ListDimensionsInput {
45902	s.NextToken = &v
45903	return s
45904}
45905
45906type ListDimensionsOutput struct {
45907	_ struct{} `type:"structure"`
45908
45909	// A list of the names of the defined dimensions. Use DescribeDimension to get
45910	// details for a dimension.
45911	DimensionNames []*string `locationName:"dimensionNames" type:"list"`
45912
45913	// A token that can be used to retrieve the next set of results, or null if
45914	// there are no additional results.
45915	NextToken *string `locationName:"nextToken" type:"string"`
45916}
45917
45918// String returns the string representation
45919func (s ListDimensionsOutput) String() string {
45920	return awsutil.Prettify(s)
45921}
45922
45923// GoString returns the string representation
45924func (s ListDimensionsOutput) GoString() string {
45925	return s.String()
45926}
45927
45928// SetDimensionNames sets the DimensionNames field's value.
45929func (s *ListDimensionsOutput) SetDimensionNames(v []*string) *ListDimensionsOutput {
45930	s.DimensionNames = v
45931	return s
45932}
45933
45934// SetNextToken sets the NextToken field's value.
45935func (s *ListDimensionsOutput) SetNextToken(v string) *ListDimensionsOutput {
45936	s.NextToken = &v
45937	return s
45938}
45939
45940type ListDomainConfigurationsInput struct {
45941	_ struct{} `type:"structure"`
45942
45943	// The marker for the next set of results.
45944	Marker *string `location:"querystring" locationName:"marker" type:"string"`
45945
45946	// The result page size.
45947	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
45948
45949	// The type of service delivered by the endpoint.
45950	ServiceType *string `location:"querystring" locationName:"serviceType" type:"string" enum:"ServiceType"`
45951}
45952
45953// String returns the string representation
45954func (s ListDomainConfigurationsInput) String() string {
45955	return awsutil.Prettify(s)
45956}
45957
45958// GoString returns the string representation
45959func (s ListDomainConfigurationsInput) GoString() string {
45960	return s.String()
45961}
45962
45963// Validate inspects the fields of the type to determine if they are valid.
45964func (s *ListDomainConfigurationsInput) Validate() error {
45965	invalidParams := request.ErrInvalidParams{Context: "ListDomainConfigurationsInput"}
45966	if s.PageSize != nil && *s.PageSize < 1 {
45967		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
45968	}
45969
45970	if invalidParams.Len() > 0 {
45971		return invalidParams
45972	}
45973	return nil
45974}
45975
45976// SetMarker sets the Marker field's value.
45977func (s *ListDomainConfigurationsInput) SetMarker(v string) *ListDomainConfigurationsInput {
45978	s.Marker = &v
45979	return s
45980}
45981
45982// SetPageSize sets the PageSize field's value.
45983func (s *ListDomainConfigurationsInput) SetPageSize(v int64) *ListDomainConfigurationsInput {
45984	s.PageSize = &v
45985	return s
45986}
45987
45988// SetServiceType sets the ServiceType field's value.
45989func (s *ListDomainConfigurationsInput) SetServiceType(v string) *ListDomainConfigurationsInput {
45990	s.ServiceType = &v
45991	return s
45992}
45993
45994type ListDomainConfigurationsOutput struct {
45995	_ struct{} `type:"structure"`
45996
45997	// A list of objects that contain summary information about the user's domain
45998	// configurations.
45999	DomainConfigurations []*DomainConfigurationSummary `locationName:"domainConfigurations" type:"list"`
46000
46001	// The marker for the next set of results.
46002	NextMarker *string `locationName:"nextMarker" type:"string"`
46003}
46004
46005// String returns the string representation
46006func (s ListDomainConfigurationsOutput) String() string {
46007	return awsutil.Prettify(s)
46008}
46009
46010// GoString returns the string representation
46011func (s ListDomainConfigurationsOutput) GoString() string {
46012	return s.String()
46013}
46014
46015// SetDomainConfigurations sets the DomainConfigurations field's value.
46016func (s *ListDomainConfigurationsOutput) SetDomainConfigurations(v []*DomainConfigurationSummary) *ListDomainConfigurationsOutput {
46017	s.DomainConfigurations = v
46018	return s
46019}
46020
46021// SetNextMarker sets the NextMarker field's value.
46022func (s *ListDomainConfigurationsOutput) SetNextMarker(v string) *ListDomainConfigurationsOutput {
46023	s.NextMarker = &v
46024	return s
46025}
46026
46027type ListFleetMetricsInput struct {
46028	_ struct{} `type:"structure"`
46029
46030	// The maximum number of results to return in this operation.
46031	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46032
46033	// To retrieve the next set of results, the nextToken value from a previous
46034	// response; otherwise null to receive the first set of results.
46035	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46036}
46037
46038// String returns the string representation
46039func (s ListFleetMetricsInput) String() string {
46040	return awsutil.Prettify(s)
46041}
46042
46043// GoString returns the string representation
46044func (s ListFleetMetricsInput) GoString() string {
46045	return s.String()
46046}
46047
46048// Validate inspects the fields of the type to determine if they are valid.
46049func (s *ListFleetMetricsInput) Validate() error {
46050	invalidParams := request.ErrInvalidParams{Context: "ListFleetMetricsInput"}
46051	if s.MaxResults != nil && *s.MaxResults < 1 {
46052		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46053	}
46054
46055	if invalidParams.Len() > 0 {
46056		return invalidParams
46057	}
46058	return nil
46059}
46060
46061// SetMaxResults sets the MaxResults field's value.
46062func (s *ListFleetMetricsInput) SetMaxResults(v int64) *ListFleetMetricsInput {
46063	s.MaxResults = &v
46064	return s
46065}
46066
46067// SetNextToken sets the NextToken field's value.
46068func (s *ListFleetMetricsInput) SetNextToken(v string) *ListFleetMetricsInput {
46069	s.NextToken = &v
46070	return s
46071}
46072
46073type ListFleetMetricsOutput struct {
46074	_ struct{} `type:"structure"`
46075
46076	// The list of fleet metrics objects.
46077	FleetMetrics []*FleetMetricNameAndArn `locationName:"fleetMetrics" type:"list"`
46078
46079	// The token for the next set of results. Will not be returned if the operation
46080	// has returned all results.
46081	NextToken *string `locationName:"nextToken" type:"string"`
46082}
46083
46084// String returns the string representation
46085func (s ListFleetMetricsOutput) String() string {
46086	return awsutil.Prettify(s)
46087}
46088
46089// GoString returns the string representation
46090func (s ListFleetMetricsOutput) GoString() string {
46091	return s.String()
46092}
46093
46094// SetFleetMetrics sets the FleetMetrics field's value.
46095func (s *ListFleetMetricsOutput) SetFleetMetrics(v []*FleetMetricNameAndArn) *ListFleetMetricsOutput {
46096	s.FleetMetrics = v
46097	return s
46098}
46099
46100// SetNextToken sets the NextToken field's value.
46101func (s *ListFleetMetricsOutput) SetNextToken(v string) *ListFleetMetricsOutput {
46102	s.NextToken = &v
46103	return s
46104}
46105
46106type ListIndicesInput struct {
46107	_ struct{} `type:"structure"`
46108
46109	// The maximum number of results to return at one time.
46110	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46111
46112	// The token used to get the next set of results, or null if there are no additional
46113	// results.
46114	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46115}
46116
46117// String returns the string representation
46118func (s ListIndicesInput) String() string {
46119	return awsutil.Prettify(s)
46120}
46121
46122// GoString returns the string representation
46123func (s ListIndicesInput) GoString() string {
46124	return s.String()
46125}
46126
46127// Validate inspects the fields of the type to determine if they are valid.
46128func (s *ListIndicesInput) Validate() error {
46129	invalidParams := request.ErrInvalidParams{Context: "ListIndicesInput"}
46130	if s.MaxResults != nil && *s.MaxResults < 1 {
46131		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46132	}
46133
46134	if invalidParams.Len() > 0 {
46135		return invalidParams
46136	}
46137	return nil
46138}
46139
46140// SetMaxResults sets the MaxResults field's value.
46141func (s *ListIndicesInput) SetMaxResults(v int64) *ListIndicesInput {
46142	s.MaxResults = &v
46143	return s
46144}
46145
46146// SetNextToken sets the NextToken field's value.
46147func (s *ListIndicesInput) SetNextToken(v string) *ListIndicesInput {
46148	s.NextToken = &v
46149	return s
46150}
46151
46152type ListIndicesOutput struct {
46153	_ struct{} `type:"structure"`
46154
46155	// The index names.
46156	IndexNames []*string `locationName:"indexNames" type:"list"`
46157
46158	// The token used to get the next set of results, or null if there are no additional
46159	// results.
46160	NextToken *string `locationName:"nextToken" type:"string"`
46161}
46162
46163// String returns the string representation
46164func (s ListIndicesOutput) String() string {
46165	return awsutil.Prettify(s)
46166}
46167
46168// GoString returns the string representation
46169func (s ListIndicesOutput) GoString() string {
46170	return s.String()
46171}
46172
46173// SetIndexNames sets the IndexNames field's value.
46174func (s *ListIndicesOutput) SetIndexNames(v []*string) *ListIndicesOutput {
46175	s.IndexNames = v
46176	return s
46177}
46178
46179// SetNextToken sets the NextToken field's value.
46180func (s *ListIndicesOutput) SetNextToken(v string) *ListIndicesOutput {
46181	s.NextToken = &v
46182	return s
46183}
46184
46185type ListJobExecutionsForJobInput struct {
46186	_ struct{} `type:"structure"`
46187
46188	// The unique identifier you assigned to this job when it was created.
46189	//
46190	// JobId is a required field
46191	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
46192
46193	// The maximum number of results to be returned per request.
46194	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46195
46196	// The token to retrieve the next set of results.
46197	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46198
46199	// The status of the job.
46200	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
46201}
46202
46203// String returns the string representation
46204func (s ListJobExecutionsForJobInput) String() string {
46205	return awsutil.Prettify(s)
46206}
46207
46208// GoString returns the string representation
46209func (s ListJobExecutionsForJobInput) GoString() string {
46210	return s.String()
46211}
46212
46213// Validate inspects the fields of the type to determine if they are valid.
46214func (s *ListJobExecutionsForJobInput) Validate() error {
46215	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForJobInput"}
46216	if s.JobId == nil {
46217		invalidParams.Add(request.NewErrParamRequired("JobId"))
46218	}
46219	if s.JobId != nil && len(*s.JobId) < 1 {
46220		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
46221	}
46222	if s.MaxResults != nil && *s.MaxResults < 1 {
46223		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46224	}
46225
46226	if invalidParams.Len() > 0 {
46227		return invalidParams
46228	}
46229	return nil
46230}
46231
46232// SetJobId sets the JobId field's value.
46233func (s *ListJobExecutionsForJobInput) SetJobId(v string) *ListJobExecutionsForJobInput {
46234	s.JobId = &v
46235	return s
46236}
46237
46238// SetMaxResults sets the MaxResults field's value.
46239func (s *ListJobExecutionsForJobInput) SetMaxResults(v int64) *ListJobExecutionsForJobInput {
46240	s.MaxResults = &v
46241	return s
46242}
46243
46244// SetNextToken sets the NextToken field's value.
46245func (s *ListJobExecutionsForJobInput) SetNextToken(v string) *ListJobExecutionsForJobInput {
46246	s.NextToken = &v
46247	return s
46248}
46249
46250// SetStatus sets the Status field's value.
46251func (s *ListJobExecutionsForJobInput) SetStatus(v string) *ListJobExecutionsForJobInput {
46252	s.Status = &v
46253	return s
46254}
46255
46256type ListJobExecutionsForJobOutput struct {
46257	_ struct{} `type:"structure"`
46258
46259	// A list of job execution summaries.
46260	ExecutionSummaries []*JobExecutionSummaryForJob `locationName:"executionSummaries" type:"list"`
46261
46262	// The token for the next set of results, or null if there are no additional
46263	// results.
46264	NextToken *string `locationName:"nextToken" type:"string"`
46265}
46266
46267// String returns the string representation
46268func (s ListJobExecutionsForJobOutput) String() string {
46269	return awsutil.Prettify(s)
46270}
46271
46272// GoString returns the string representation
46273func (s ListJobExecutionsForJobOutput) GoString() string {
46274	return s.String()
46275}
46276
46277// SetExecutionSummaries sets the ExecutionSummaries field's value.
46278func (s *ListJobExecutionsForJobOutput) SetExecutionSummaries(v []*JobExecutionSummaryForJob) *ListJobExecutionsForJobOutput {
46279	s.ExecutionSummaries = v
46280	return s
46281}
46282
46283// SetNextToken sets the NextToken field's value.
46284func (s *ListJobExecutionsForJobOutput) SetNextToken(v string) *ListJobExecutionsForJobOutput {
46285	s.NextToken = &v
46286	return s
46287}
46288
46289type ListJobExecutionsForThingInput struct {
46290	_ struct{} `type:"structure"`
46291
46292	// The maximum number of results to be returned per request.
46293	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46294
46295	// The namespace used to indicate that a job is a customer-managed job.
46296	//
46297	// When you specify a value for this parameter, Amazon Web Services IoT Core
46298	// sends jobs notifications to MQTT topics that contain the value in the following
46299	// format.
46300	//
46301	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
46302	//
46303	// The namespaceId feature is in public preview.
46304	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
46305
46306	// The token to retrieve the next set of results.
46307	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46308
46309	// An optional filter that lets you search for jobs that have the specified
46310	// status.
46311	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
46312
46313	// The thing name.
46314	//
46315	// ThingName is a required field
46316	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
46317}
46318
46319// String returns the string representation
46320func (s ListJobExecutionsForThingInput) String() string {
46321	return awsutil.Prettify(s)
46322}
46323
46324// GoString returns the string representation
46325func (s ListJobExecutionsForThingInput) GoString() string {
46326	return s.String()
46327}
46328
46329// Validate inspects the fields of the type to determine if they are valid.
46330func (s *ListJobExecutionsForThingInput) Validate() error {
46331	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForThingInput"}
46332	if s.MaxResults != nil && *s.MaxResults < 1 {
46333		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46334	}
46335	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
46336		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
46337	}
46338	if s.ThingName == nil {
46339		invalidParams.Add(request.NewErrParamRequired("ThingName"))
46340	}
46341	if s.ThingName != nil && len(*s.ThingName) < 1 {
46342		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
46343	}
46344
46345	if invalidParams.Len() > 0 {
46346		return invalidParams
46347	}
46348	return nil
46349}
46350
46351// SetMaxResults sets the MaxResults field's value.
46352func (s *ListJobExecutionsForThingInput) SetMaxResults(v int64) *ListJobExecutionsForThingInput {
46353	s.MaxResults = &v
46354	return s
46355}
46356
46357// SetNamespaceId sets the NamespaceId field's value.
46358func (s *ListJobExecutionsForThingInput) SetNamespaceId(v string) *ListJobExecutionsForThingInput {
46359	s.NamespaceId = &v
46360	return s
46361}
46362
46363// SetNextToken sets the NextToken field's value.
46364func (s *ListJobExecutionsForThingInput) SetNextToken(v string) *ListJobExecutionsForThingInput {
46365	s.NextToken = &v
46366	return s
46367}
46368
46369// SetStatus sets the Status field's value.
46370func (s *ListJobExecutionsForThingInput) SetStatus(v string) *ListJobExecutionsForThingInput {
46371	s.Status = &v
46372	return s
46373}
46374
46375// SetThingName sets the ThingName field's value.
46376func (s *ListJobExecutionsForThingInput) SetThingName(v string) *ListJobExecutionsForThingInput {
46377	s.ThingName = &v
46378	return s
46379}
46380
46381type ListJobExecutionsForThingOutput struct {
46382	_ struct{} `type:"structure"`
46383
46384	// A list of job execution summaries.
46385	ExecutionSummaries []*JobExecutionSummaryForThing `locationName:"executionSummaries" type:"list"`
46386
46387	// The token for the next set of results, or null if there are no additional
46388	// results.
46389	NextToken *string `locationName:"nextToken" type:"string"`
46390}
46391
46392// String returns the string representation
46393func (s ListJobExecutionsForThingOutput) String() string {
46394	return awsutil.Prettify(s)
46395}
46396
46397// GoString returns the string representation
46398func (s ListJobExecutionsForThingOutput) GoString() string {
46399	return s.String()
46400}
46401
46402// SetExecutionSummaries sets the ExecutionSummaries field's value.
46403func (s *ListJobExecutionsForThingOutput) SetExecutionSummaries(v []*JobExecutionSummaryForThing) *ListJobExecutionsForThingOutput {
46404	s.ExecutionSummaries = v
46405	return s
46406}
46407
46408// SetNextToken sets the NextToken field's value.
46409func (s *ListJobExecutionsForThingOutput) SetNextToken(v string) *ListJobExecutionsForThingOutput {
46410	s.NextToken = &v
46411	return s
46412}
46413
46414type ListJobTemplatesInput struct {
46415	_ struct{} `type:"structure"`
46416
46417	// The maximum number of results to return in the list.
46418	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46419
46420	// The token to use to return the next set of results in the list.
46421	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46422}
46423
46424// String returns the string representation
46425func (s ListJobTemplatesInput) String() string {
46426	return awsutil.Prettify(s)
46427}
46428
46429// GoString returns the string representation
46430func (s ListJobTemplatesInput) GoString() string {
46431	return s.String()
46432}
46433
46434// Validate inspects the fields of the type to determine if they are valid.
46435func (s *ListJobTemplatesInput) Validate() error {
46436	invalidParams := request.ErrInvalidParams{Context: "ListJobTemplatesInput"}
46437	if s.MaxResults != nil && *s.MaxResults < 1 {
46438		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46439	}
46440
46441	if invalidParams.Len() > 0 {
46442		return invalidParams
46443	}
46444	return nil
46445}
46446
46447// SetMaxResults sets the MaxResults field's value.
46448func (s *ListJobTemplatesInput) SetMaxResults(v int64) *ListJobTemplatesInput {
46449	s.MaxResults = &v
46450	return s
46451}
46452
46453// SetNextToken sets the NextToken field's value.
46454func (s *ListJobTemplatesInput) SetNextToken(v string) *ListJobTemplatesInput {
46455	s.NextToken = &v
46456	return s
46457}
46458
46459type ListJobTemplatesOutput struct {
46460	_ struct{} `type:"structure"`
46461
46462	// A list of objects that contain information about the job templates.
46463	JobTemplates []*JobTemplateSummary `locationName:"jobTemplates" type:"list"`
46464
46465	// The token for the next set of results, or null if there are no additional
46466	// results.
46467	NextToken *string `locationName:"nextToken" type:"string"`
46468}
46469
46470// String returns the string representation
46471func (s ListJobTemplatesOutput) String() string {
46472	return awsutil.Prettify(s)
46473}
46474
46475// GoString returns the string representation
46476func (s ListJobTemplatesOutput) GoString() string {
46477	return s.String()
46478}
46479
46480// SetJobTemplates sets the JobTemplates field's value.
46481func (s *ListJobTemplatesOutput) SetJobTemplates(v []*JobTemplateSummary) *ListJobTemplatesOutput {
46482	s.JobTemplates = v
46483	return s
46484}
46485
46486// SetNextToken sets the NextToken field's value.
46487func (s *ListJobTemplatesOutput) SetNextToken(v string) *ListJobTemplatesOutput {
46488	s.NextToken = &v
46489	return s
46490}
46491
46492type ListJobsInput struct {
46493	_ struct{} `type:"structure"`
46494
46495	// The maximum number of results to return per request.
46496	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46497
46498	// The namespace used to indicate that a job is a customer-managed job.
46499	//
46500	// When you specify a value for this parameter, Amazon Web Services IoT Core
46501	// sends jobs notifications to MQTT topics that contain the value in the following
46502	// format.
46503	//
46504	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
46505	//
46506	// The namespaceId feature is in public preview.
46507	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
46508
46509	// The token to retrieve the next set of results.
46510	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46511
46512	// An optional filter that lets you search for jobs that have the specified
46513	// status.
46514	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobStatus"`
46515
46516	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
46517	// after all those things specified as targets have completed the job (SNAPSHOT).
46518	// If continuous, the job may also be run on a thing when a change is detected
46519	// in a target. For example, a job will run on a thing when the thing is added
46520	// to a target group, even after the job was completed by all things originally
46521	// in the group.
46522	TargetSelection *string `location:"querystring" locationName:"targetSelection" type:"string" enum:"TargetSelection"`
46523
46524	// A filter that limits the returned jobs to those for the specified group.
46525	ThingGroupId *string `location:"querystring" locationName:"thingGroupId" min:"1" type:"string"`
46526
46527	// A filter that limits the returned jobs to those for the specified group.
46528	ThingGroupName *string `location:"querystring" locationName:"thingGroupName" min:"1" type:"string"`
46529}
46530
46531// String returns the string representation
46532func (s ListJobsInput) String() string {
46533	return awsutil.Prettify(s)
46534}
46535
46536// GoString returns the string representation
46537func (s ListJobsInput) GoString() string {
46538	return s.String()
46539}
46540
46541// Validate inspects the fields of the type to determine if they are valid.
46542func (s *ListJobsInput) Validate() error {
46543	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
46544	if s.MaxResults != nil && *s.MaxResults < 1 {
46545		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46546	}
46547	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
46548		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
46549	}
46550	if s.ThingGroupId != nil && len(*s.ThingGroupId) < 1 {
46551		invalidParams.Add(request.NewErrParamMinLen("ThingGroupId", 1))
46552	}
46553	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
46554		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
46555	}
46556
46557	if invalidParams.Len() > 0 {
46558		return invalidParams
46559	}
46560	return nil
46561}
46562
46563// SetMaxResults sets the MaxResults field's value.
46564func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
46565	s.MaxResults = &v
46566	return s
46567}
46568
46569// SetNamespaceId sets the NamespaceId field's value.
46570func (s *ListJobsInput) SetNamespaceId(v string) *ListJobsInput {
46571	s.NamespaceId = &v
46572	return s
46573}
46574
46575// SetNextToken sets the NextToken field's value.
46576func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
46577	s.NextToken = &v
46578	return s
46579}
46580
46581// SetStatus sets the Status field's value.
46582func (s *ListJobsInput) SetStatus(v string) *ListJobsInput {
46583	s.Status = &v
46584	return s
46585}
46586
46587// SetTargetSelection sets the TargetSelection field's value.
46588func (s *ListJobsInput) SetTargetSelection(v string) *ListJobsInput {
46589	s.TargetSelection = &v
46590	return s
46591}
46592
46593// SetThingGroupId sets the ThingGroupId field's value.
46594func (s *ListJobsInput) SetThingGroupId(v string) *ListJobsInput {
46595	s.ThingGroupId = &v
46596	return s
46597}
46598
46599// SetThingGroupName sets the ThingGroupName field's value.
46600func (s *ListJobsInput) SetThingGroupName(v string) *ListJobsInput {
46601	s.ThingGroupName = &v
46602	return s
46603}
46604
46605type ListJobsOutput struct {
46606	_ struct{} `type:"structure"`
46607
46608	// A list of jobs.
46609	Jobs []*JobSummary `locationName:"jobs" type:"list"`
46610
46611	// The token for the next set of results, or null if there are no additional
46612	// results.
46613	NextToken *string `locationName:"nextToken" type:"string"`
46614}
46615
46616// String returns the string representation
46617func (s ListJobsOutput) String() string {
46618	return awsutil.Prettify(s)
46619}
46620
46621// GoString returns the string representation
46622func (s ListJobsOutput) GoString() string {
46623	return s.String()
46624}
46625
46626// SetJobs sets the Jobs field's value.
46627func (s *ListJobsOutput) SetJobs(v []*JobSummary) *ListJobsOutput {
46628	s.Jobs = v
46629	return s
46630}
46631
46632// SetNextToken sets the NextToken field's value.
46633func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
46634	s.NextToken = &v
46635	return s
46636}
46637
46638type ListMitigationActionsInput struct {
46639	_ struct{} `type:"structure"`
46640
46641	// Specify a value to limit the result to mitigation actions with a specific
46642	// action type.
46643	ActionType *string `location:"querystring" locationName:"actionType" type:"string" enum:"MitigationActionType"`
46644
46645	// The maximum number of results to return at one time. The default is 25.
46646	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46647
46648	// The token for the next set of results.
46649	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46650}
46651
46652// String returns the string representation
46653func (s ListMitigationActionsInput) String() string {
46654	return awsutil.Prettify(s)
46655}
46656
46657// GoString returns the string representation
46658func (s ListMitigationActionsInput) GoString() string {
46659	return s.String()
46660}
46661
46662// Validate inspects the fields of the type to determine if they are valid.
46663func (s *ListMitigationActionsInput) Validate() error {
46664	invalidParams := request.ErrInvalidParams{Context: "ListMitigationActionsInput"}
46665	if s.MaxResults != nil && *s.MaxResults < 1 {
46666		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46667	}
46668
46669	if invalidParams.Len() > 0 {
46670		return invalidParams
46671	}
46672	return nil
46673}
46674
46675// SetActionType sets the ActionType field's value.
46676func (s *ListMitigationActionsInput) SetActionType(v string) *ListMitigationActionsInput {
46677	s.ActionType = &v
46678	return s
46679}
46680
46681// SetMaxResults sets the MaxResults field's value.
46682func (s *ListMitigationActionsInput) SetMaxResults(v int64) *ListMitigationActionsInput {
46683	s.MaxResults = &v
46684	return s
46685}
46686
46687// SetNextToken sets the NextToken field's value.
46688func (s *ListMitigationActionsInput) SetNextToken(v string) *ListMitigationActionsInput {
46689	s.NextToken = &v
46690	return s
46691}
46692
46693type ListMitigationActionsOutput struct {
46694	_ struct{} `type:"structure"`
46695
46696	// A set of actions that matched the specified filter criteria.
46697	ActionIdentifiers []*MitigationActionIdentifier `locationName:"actionIdentifiers" type:"list"`
46698
46699	// The token for the next set of results.
46700	NextToken *string `locationName:"nextToken" type:"string"`
46701}
46702
46703// String returns the string representation
46704func (s ListMitigationActionsOutput) String() string {
46705	return awsutil.Prettify(s)
46706}
46707
46708// GoString returns the string representation
46709func (s ListMitigationActionsOutput) GoString() string {
46710	return s.String()
46711}
46712
46713// SetActionIdentifiers sets the ActionIdentifiers field's value.
46714func (s *ListMitigationActionsOutput) SetActionIdentifiers(v []*MitigationActionIdentifier) *ListMitigationActionsOutput {
46715	s.ActionIdentifiers = v
46716	return s
46717}
46718
46719// SetNextToken sets the NextToken field's value.
46720func (s *ListMitigationActionsOutput) SetNextToken(v string) *ListMitigationActionsOutput {
46721	s.NextToken = &v
46722	return s
46723}
46724
46725type ListOTAUpdatesInput struct {
46726	_ struct{} `type:"structure"`
46727
46728	// The maximum number of results to return at one time.
46729	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
46730
46731	// A token used to retrieve the next set of results.
46732	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
46733
46734	// The OTA update job status.
46735	OtaUpdateStatus *string `location:"querystring" locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
46736}
46737
46738// String returns the string representation
46739func (s ListOTAUpdatesInput) String() string {
46740	return awsutil.Prettify(s)
46741}
46742
46743// GoString returns the string representation
46744func (s ListOTAUpdatesInput) GoString() string {
46745	return s.String()
46746}
46747
46748// Validate inspects the fields of the type to determine if they are valid.
46749func (s *ListOTAUpdatesInput) Validate() error {
46750	invalidParams := request.ErrInvalidParams{Context: "ListOTAUpdatesInput"}
46751	if s.MaxResults != nil && *s.MaxResults < 1 {
46752		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
46753	}
46754
46755	if invalidParams.Len() > 0 {
46756		return invalidParams
46757	}
46758	return nil
46759}
46760
46761// SetMaxResults sets the MaxResults field's value.
46762func (s *ListOTAUpdatesInput) SetMaxResults(v int64) *ListOTAUpdatesInput {
46763	s.MaxResults = &v
46764	return s
46765}
46766
46767// SetNextToken sets the NextToken field's value.
46768func (s *ListOTAUpdatesInput) SetNextToken(v string) *ListOTAUpdatesInput {
46769	s.NextToken = &v
46770	return s
46771}
46772
46773// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
46774func (s *ListOTAUpdatesInput) SetOtaUpdateStatus(v string) *ListOTAUpdatesInput {
46775	s.OtaUpdateStatus = &v
46776	return s
46777}
46778
46779type ListOTAUpdatesOutput struct {
46780	_ struct{} `type:"structure"`
46781
46782	// A token to use to get the next set of results.
46783	NextToken *string `locationName:"nextToken" type:"string"`
46784
46785	// A list of OTA update jobs.
46786	OtaUpdates []*OTAUpdateSummary `locationName:"otaUpdates" type:"list"`
46787}
46788
46789// String returns the string representation
46790func (s ListOTAUpdatesOutput) String() string {
46791	return awsutil.Prettify(s)
46792}
46793
46794// GoString returns the string representation
46795func (s ListOTAUpdatesOutput) GoString() string {
46796	return s.String()
46797}
46798
46799// SetNextToken sets the NextToken field's value.
46800func (s *ListOTAUpdatesOutput) SetNextToken(v string) *ListOTAUpdatesOutput {
46801	s.NextToken = &v
46802	return s
46803}
46804
46805// SetOtaUpdates sets the OtaUpdates field's value.
46806func (s *ListOTAUpdatesOutput) SetOtaUpdates(v []*OTAUpdateSummary) *ListOTAUpdatesOutput {
46807	s.OtaUpdates = v
46808	return s
46809}
46810
46811// The input to the ListOutgoingCertificates operation.
46812type ListOutgoingCertificatesInput struct {
46813	_ struct{} `type:"structure"`
46814
46815	// Specifies the order for results. If True, the results are returned in ascending
46816	// order, based on the creation date.
46817	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
46818
46819	// The marker for the next set of results.
46820	Marker *string `location:"querystring" locationName:"marker" type:"string"`
46821
46822	// The result page size.
46823	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
46824}
46825
46826// String returns the string representation
46827func (s ListOutgoingCertificatesInput) String() string {
46828	return awsutil.Prettify(s)
46829}
46830
46831// GoString returns the string representation
46832func (s ListOutgoingCertificatesInput) GoString() string {
46833	return s.String()
46834}
46835
46836// Validate inspects the fields of the type to determine if they are valid.
46837func (s *ListOutgoingCertificatesInput) Validate() error {
46838	invalidParams := request.ErrInvalidParams{Context: "ListOutgoingCertificatesInput"}
46839	if s.PageSize != nil && *s.PageSize < 1 {
46840		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
46841	}
46842
46843	if invalidParams.Len() > 0 {
46844		return invalidParams
46845	}
46846	return nil
46847}
46848
46849// SetAscendingOrder sets the AscendingOrder field's value.
46850func (s *ListOutgoingCertificatesInput) SetAscendingOrder(v bool) *ListOutgoingCertificatesInput {
46851	s.AscendingOrder = &v
46852	return s
46853}
46854
46855// SetMarker sets the Marker field's value.
46856func (s *ListOutgoingCertificatesInput) SetMarker(v string) *ListOutgoingCertificatesInput {
46857	s.Marker = &v
46858	return s
46859}
46860
46861// SetPageSize sets the PageSize field's value.
46862func (s *ListOutgoingCertificatesInput) SetPageSize(v int64) *ListOutgoingCertificatesInput {
46863	s.PageSize = &v
46864	return s
46865}
46866
46867// The output from the ListOutgoingCertificates operation.
46868type ListOutgoingCertificatesOutput struct {
46869	_ struct{} `type:"structure"`
46870
46871	// The marker for the next set of results.
46872	NextMarker *string `locationName:"nextMarker" type:"string"`
46873
46874	// The certificates that are being transferred but not yet accepted.
46875	OutgoingCertificates []*OutgoingCertificate `locationName:"outgoingCertificates" type:"list"`
46876}
46877
46878// String returns the string representation
46879func (s ListOutgoingCertificatesOutput) String() string {
46880	return awsutil.Prettify(s)
46881}
46882
46883// GoString returns the string representation
46884func (s ListOutgoingCertificatesOutput) GoString() string {
46885	return s.String()
46886}
46887
46888// SetNextMarker sets the NextMarker field's value.
46889func (s *ListOutgoingCertificatesOutput) SetNextMarker(v string) *ListOutgoingCertificatesOutput {
46890	s.NextMarker = &v
46891	return s
46892}
46893
46894// SetOutgoingCertificates sets the OutgoingCertificates field's value.
46895func (s *ListOutgoingCertificatesOutput) SetOutgoingCertificates(v []*OutgoingCertificate) *ListOutgoingCertificatesOutput {
46896	s.OutgoingCertificates = v
46897	return s
46898}
46899
46900// The input for the ListPolicies operation.
46901type ListPoliciesInput struct {
46902	_ struct{} `type:"structure"`
46903
46904	// Specifies the order for results. If true, the results are returned in ascending
46905	// creation order.
46906	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
46907
46908	// The marker for the next set of results.
46909	Marker *string `location:"querystring" locationName:"marker" type:"string"`
46910
46911	// The result page size.
46912	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
46913}
46914
46915// String returns the string representation
46916func (s ListPoliciesInput) String() string {
46917	return awsutil.Prettify(s)
46918}
46919
46920// GoString returns the string representation
46921func (s ListPoliciesInput) GoString() string {
46922	return s.String()
46923}
46924
46925// Validate inspects the fields of the type to determine if they are valid.
46926func (s *ListPoliciesInput) Validate() error {
46927	invalidParams := request.ErrInvalidParams{Context: "ListPoliciesInput"}
46928	if s.PageSize != nil && *s.PageSize < 1 {
46929		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
46930	}
46931
46932	if invalidParams.Len() > 0 {
46933		return invalidParams
46934	}
46935	return nil
46936}
46937
46938// SetAscendingOrder sets the AscendingOrder field's value.
46939func (s *ListPoliciesInput) SetAscendingOrder(v bool) *ListPoliciesInput {
46940	s.AscendingOrder = &v
46941	return s
46942}
46943
46944// SetMarker sets the Marker field's value.
46945func (s *ListPoliciesInput) SetMarker(v string) *ListPoliciesInput {
46946	s.Marker = &v
46947	return s
46948}
46949
46950// SetPageSize sets the PageSize field's value.
46951func (s *ListPoliciesInput) SetPageSize(v int64) *ListPoliciesInput {
46952	s.PageSize = &v
46953	return s
46954}
46955
46956// The output from the ListPolicies operation.
46957type ListPoliciesOutput struct {
46958	_ struct{} `type:"structure"`
46959
46960	// The marker for the next set of results, or null if there are no additional
46961	// results.
46962	NextMarker *string `locationName:"nextMarker" type:"string"`
46963
46964	// The descriptions of the policies.
46965	Policies []*Policy `locationName:"policies" type:"list"`
46966}
46967
46968// String returns the string representation
46969func (s ListPoliciesOutput) String() string {
46970	return awsutil.Prettify(s)
46971}
46972
46973// GoString returns the string representation
46974func (s ListPoliciesOutput) GoString() string {
46975	return s.String()
46976}
46977
46978// SetNextMarker sets the NextMarker field's value.
46979func (s *ListPoliciesOutput) SetNextMarker(v string) *ListPoliciesOutput {
46980	s.NextMarker = &v
46981	return s
46982}
46983
46984// SetPolicies sets the Policies field's value.
46985func (s *ListPoliciesOutput) SetPolicies(v []*Policy) *ListPoliciesOutput {
46986	s.Policies = v
46987	return s
46988}
46989
46990// The input for the ListPolicyPrincipals operation.
46991type ListPolicyPrincipalsInput struct {
46992	_ struct{} `type:"structure"`
46993
46994	// Specifies the order for results. If true, the results are returned in ascending
46995	// creation order.
46996	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
46997
46998	// The marker for the next set of results.
46999	Marker *string `location:"querystring" locationName:"marker" type:"string"`
47000
47001	// The result page size.
47002	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
47003
47004	// The policy name.
47005	//
47006	// PolicyName is a required field
47007	PolicyName *string `location:"header" locationName:"x-amzn-iot-policy" min:"1" type:"string" required:"true"`
47008}
47009
47010// String returns the string representation
47011func (s ListPolicyPrincipalsInput) String() string {
47012	return awsutil.Prettify(s)
47013}
47014
47015// GoString returns the string representation
47016func (s ListPolicyPrincipalsInput) GoString() string {
47017	return s.String()
47018}
47019
47020// Validate inspects the fields of the type to determine if they are valid.
47021func (s *ListPolicyPrincipalsInput) Validate() error {
47022	invalidParams := request.ErrInvalidParams{Context: "ListPolicyPrincipalsInput"}
47023	if s.PageSize != nil && *s.PageSize < 1 {
47024		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
47025	}
47026	if s.PolicyName == nil {
47027		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
47028	}
47029	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
47030		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
47031	}
47032
47033	if invalidParams.Len() > 0 {
47034		return invalidParams
47035	}
47036	return nil
47037}
47038
47039// SetAscendingOrder sets the AscendingOrder field's value.
47040func (s *ListPolicyPrincipalsInput) SetAscendingOrder(v bool) *ListPolicyPrincipalsInput {
47041	s.AscendingOrder = &v
47042	return s
47043}
47044
47045// SetMarker sets the Marker field's value.
47046func (s *ListPolicyPrincipalsInput) SetMarker(v string) *ListPolicyPrincipalsInput {
47047	s.Marker = &v
47048	return s
47049}
47050
47051// SetPageSize sets the PageSize field's value.
47052func (s *ListPolicyPrincipalsInput) SetPageSize(v int64) *ListPolicyPrincipalsInput {
47053	s.PageSize = &v
47054	return s
47055}
47056
47057// SetPolicyName sets the PolicyName field's value.
47058func (s *ListPolicyPrincipalsInput) SetPolicyName(v string) *ListPolicyPrincipalsInput {
47059	s.PolicyName = &v
47060	return s
47061}
47062
47063// The output from the ListPolicyPrincipals operation.
47064type ListPolicyPrincipalsOutput struct {
47065	_ struct{} `type:"structure"`
47066
47067	// The marker for the next set of results, or null if there are no additional
47068	// results.
47069	NextMarker *string `locationName:"nextMarker" type:"string"`
47070
47071	// The descriptions of the principals.
47072	Principals []*string `locationName:"principals" type:"list"`
47073}
47074
47075// String returns the string representation
47076func (s ListPolicyPrincipalsOutput) String() string {
47077	return awsutil.Prettify(s)
47078}
47079
47080// GoString returns the string representation
47081func (s ListPolicyPrincipalsOutput) GoString() string {
47082	return s.String()
47083}
47084
47085// SetNextMarker sets the NextMarker field's value.
47086func (s *ListPolicyPrincipalsOutput) SetNextMarker(v string) *ListPolicyPrincipalsOutput {
47087	s.NextMarker = &v
47088	return s
47089}
47090
47091// SetPrincipals sets the Principals field's value.
47092func (s *ListPolicyPrincipalsOutput) SetPrincipals(v []*string) *ListPolicyPrincipalsOutput {
47093	s.Principals = v
47094	return s
47095}
47096
47097// The input for the ListPolicyVersions operation.
47098type ListPolicyVersionsInput struct {
47099	_ struct{} `type:"structure"`
47100
47101	// The policy name.
47102	//
47103	// PolicyName is a required field
47104	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
47105}
47106
47107// String returns the string representation
47108func (s ListPolicyVersionsInput) String() string {
47109	return awsutil.Prettify(s)
47110}
47111
47112// GoString returns the string representation
47113func (s ListPolicyVersionsInput) GoString() string {
47114	return s.String()
47115}
47116
47117// Validate inspects the fields of the type to determine if they are valid.
47118func (s *ListPolicyVersionsInput) Validate() error {
47119	invalidParams := request.ErrInvalidParams{Context: "ListPolicyVersionsInput"}
47120	if s.PolicyName == nil {
47121		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
47122	}
47123	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
47124		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
47125	}
47126
47127	if invalidParams.Len() > 0 {
47128		return invalidParams
47129	}
47130	return nil
47131}
47132
47133// SetPolicyName sets the PolicyName field's value.
47134func (s *ListPolicyVersionsInput) SetPolicyName(v string) *ListPolicyVersionsInput {
47135	s.PolicyName = &v
47136	return s
47137}
47138
47139// The output from the ListPolicyVersions operation.
47140type ListPolicyVersionsOutput struct {
47141	_ struct{} `type:"structure"`
47142
47143	// The policy versions.
47144	PolicyVersions []*PolicyVersion `locationName:"policyVersions" type:"list"`
47145}
47146
47147// String returns the string representation
47148func (s ListPolicyVersionsOutput) String() string {
47149	return awsutil.Prettify(s)
47150}
47151
47152// GoString returns the string representation
47153func (s ListPolicyVersionsOutput) GoString() string {
47154	return s.String()
47155}
47156
47157// SetPolicyVersions sets the PolicyVersions field's value.
47158func (s *ListPolicyVersionsOutput) SetPolicyVersions(v []*PolicyVersion) *ListPolicyVersionsOutput {
47159	s.PolicyVersions = v
47160	return s
47161}
47162
47163// The input for the ListPrincipalPolicies operation.
47164type ListPrincipalPoliciesInput struct {
47165	_ struct{} `type:"structure"`
47166
47167	// Specifies the order for results. If true, results are returned in ascending
47168	// creation order.
47169	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
47170
47171	// The marker for the next set of results.
47172	Marker *string `location:"querystring" locationName:"marker" type:"string"`
47173
47174	// The result page size.
47175	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
47176
47177	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
47178	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
47179	// (region:id).
47180	//
47181	// Principal is a required field
47182	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
47183}
47184
47185// String returns the string representation
47186func (s ListPrincipalPoliciesInput) String() string {
47187	return awsutil.Prettify(s)
47188}
47189
47190// GoString returns the string representation
47191func (s ListPrincipalPoliciesInput) GoString() string {
47192	return s.String()
47193}
47194
47195// Validate inspects the fields of the type to determine if they are valid.
47196func (s *ListPrincipalPoliciesInput) Validate() error {
47197	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalPoliciesInput"}
47198	if s.PageSize != nil && *s.PageSize < 1 {
47199		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
47200	}
47201	if s.Principal == nil {
47202		invalidParams.Add(request.NewErrParamRequired("Principal"))
47203	}
47204
47205	if invalidParams.Len() > 0 {
47206		return invalidParams
47207	}
47208	return nil
47209}
47210
47211// SetAscendingOrder sets the AscendingOrder field's value.
47212func (s *ListPrincipalPoliciesInput) SetAscendingOrder(v bool) *ListPrincipalPoliciesInput {
47213	s.AscendingOrder = &v
47214	return s
47215}
47216
47217// SetMarker sets the Marker field's value.
47218func (s *ListPrincipalPoliciesInput) SetMarker(v string) *ListPrincipalPoliciesInput {
47219	s.Marker = &v
47220	return s
47221}
47222
47223// SetPageSize sets the PageSize field's value.
47224func (s *ListPrincipalPoliciesInput) SetPageSize(v int64) *ListPrincipalPoliciesInput {
47225	s.PageSize = &v
47226	return s
47227}
47228
47229// SetPrincipal sets the Principal field's value.
47230func (s *ListPrincipalPoliciesInput) SetPrincipal(v string) *ListPrincipalPoliciesInput {
47231	s.Principal = &v
47232	return s
47233}
47234
47235// The output from the ListPrincipalPolicies operation.
47236type ListPrincipalPoliciesOutput struct {
47237	_ struct{} `type:"structure"`
47238
47239	// The marker for the next set of results, or null if there are no additional
47240	// results.
47241	NextMarker *string `locationName:"nextMarker" type:"string"`
47242
47243	// The policies.
47244	Policies []*Policy `locationName:"policies" type:"list"`
47245}
47246
47247// String returns the string representation
47248func (s ListPrincipalPoliciesOutput) String() string {
47249	return awsutil.Prettify(s)
47250}
47251
47252// GoString returns the string representation
47253func (s ListPrincipalPoliciesOutput) GoString() string {
47254	return s.String()
47255}
47256
47257// SetNextMarker sets the NextMarker field's value.
47258func (s *ListPrincipalPoliciesOutput) SetNextMarker(v string) *ListPrincipalPoliciesOutput {
47259	s.NextMarker = &v
47260	return s
47261}
47262
47263// SetPolicies sets the Policies field's value.
47264func (s *ListPrincipalPoliciesOutput) SetPolicies(v []*Policy) *ListPrincipalPoliciesOutput {
47265	s.Policies = v
47266	return s
47267}
47268
47269// The input for the ListPrincipalThings operation.
47270type ListPrincipalThingsInput struct {
47271	_ struct{} `type:"structure"`
47272
47273	// The maximum number of results to return in this operation.
47274	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47275
47276	// To retrieve the next set of results, the nextToken value from a previous
47277	// response; otherwise null to receive the first set of results.
47278	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47279
47280	// The principal.
47281	//
47282	// Principal is a required field
47283	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
47284}
47285
47286// String returns the string representation
47287func (s ListPrincipalThingsInput) String() string {
47288	return awsutil.Prettify(s)
47289}
47290
47291// GoString returns the string representation
47292func (s ListPrincipalThingsInput) GoString() string {
47293	return s.String()
47294}
47295
47296// Validate inspects the fields of the type to determine if they are valid.
47297func (s *ListPrincipalThingsInput) Validate() error {
47298	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalThingsInput"}
47299	if s.MaxResults != nil && *s.MaxResults < 1 {
47300		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47301	}
47302	if s.Principal == nil {
47303		invalidParams.Add(request.NewErrParamRequired("Principal"))
47304	}
47305
47306	if invalidParams.Len() > 0 {
47307		return invalidParams
47308	}
47309	return nil
47310}
47311
47312// SetMaxResults sets the MaxResults field's value.
47313func (s *ListPrincipalThingsInput) SetMaxResults(v int64) *ListPrincipalThingsInput {
47314	s.MaxResults = &v
47315	return s
47316}
47317
47318// SetNextToken sets the NextToken field's value.
47319func (s *ListPrincipalThingsInput) SetNextToken(v string) *ListPrincipalThingsInput {
47320	s.NextToken = &v
47321	return s
47322}
47323
47324// SetPrincipal sets the Principal field's value.
47325func (s *ListPrincipalThingsInput) SetPrincipal(v string) *ListPrincipalThingsInput {
47326	s.Principal = &v
47327	return s
47328}
47329
47330// The output from the ListPrincipalThings operation.
47331type ListPrincipalThingsOutput struct {
47332	_ struct{} `type:"structure"`
47333
47334	// The token to use to get the next set of results, or null if there are no
47335	// additional results.
47336	NextToken *string `locationName:"nextToken" type:"string"`
47337
47338	// The things.
47339	Things []*string `locationName:"things" type:"list"`
47340}
47341
47342// String returns the string representation
47343func (s ListPrincipalThingsOutput) String() string {
47344	return awsutil.Prettify(s)
47345}
47346
47347// GoString returns the string representation
47348func (s ListPrincipalThingsOutput) GoString() string {
47349	return s.String()
47350}
47351
47352// SetNextToken sets the NextToken field's value.
47353func (s *ListPrincipalThingsOutput) SetNextToken(v string) *ListPrincipalThingsOutput {
47354	s.NextToken = &v
47355	return s
47356}
47357
47358// SetThings sets the Things field's value.
47359func (s *ListPrincipalThingsOutput) SetThings(v []*string) *ListPrincipalThingsOutput {
47360	s.Things = v
47361	return s
47362}
47363
47364type ListProvisioningTemplateVersionsInput struct {
47365	_ struct{} `type:"structure"`
47366
47367	// The maximum number of results to return at one time.
47368	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47369
47370	// A token to retrieve the next set of results.
47371	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47372
47373	// The name of the fleet provisioning template.
47374	//
47375	// TemplateName is a required field
47376	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
47377}
47378
47379// String returns the string representation
47380func (s ListProvisioningTemplateVersionsInput) String() string {
47381	return awsutil.Prettify(s)
47382}
47383
47384// GoString returns the string representation
47385func (s ListProvisioningTemplateVersionsInput) GoString() string {
47386	return s.String()
47387}
47388
47389// Validate inspects the fields of the type to determine if they are valid.
47390func (s *ListProvisioningTemplateVersionsInput) Validate() error {
47391	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplateVersionsInput"}
47392	if s.MaxResults != nil && *s.MaxResults < 1 {
47393		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47394	}
47395	if s.TemplateName == nil {
47396		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
47397	}
47398	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
47399		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
47400	}
47401
47402	if invalidParams.Len() > 0 {
47403		return invalidParams
47404	}
47405	return nil
47406}
47407
47408// SetMaxResults sets the MaxResults field's value.
47409func (s *ListProvisioningTemplateVersionsInput) SetMaxResults(v int64) *ListProvisioningTemplateVersionsInput {
47410	s.MaxResults = &v
47411	return s
47412}
47413
47414// SetNextToken sets the NextToken field's value.
47415func (s *ListProvisioningTemplateVersionsInput) SetNextToken(v string) *ListProvisioningTemplateVersionsInput {
47416	s.NextToken = &v
47417	return s
47418}
47419
47420// SetTemplateName sets the TemplateName field's value.
47421func (s *ListProvisioningTemplateVersionsInput) SetTemplateName(v string) *ListProvisioningTemplateVersionsInput {
47422	s.TemplateName = &v
47423	return s
47424}
47425
47426type ListProvisioningTemplateVersionsOutput struct {
47427	_ struct{} `type:"structure"`
47428
47429	// A token to retrieve the next set of results.
47430	NextToken *string `locationName:"nextToken" type:"string"`
47431
47432	// The list of fleet provisioning template versions.
47433	Versions []*ProvisioningTemplateVersionSummary `locationName:"versions" type:"list"`
47434}
47435
47436// String returns the string representation
47437func (s ListProvisioningTemplateVersionsOutput) String() string {
47438	return awsutil.Prettify(s)
47439}
47440
47441// GoString returns the string representation
47442func (s ListProvisioningTemplateVersionsOutput) GoString() string {
47443	return s.String()
47444}
47445
47446// SetNextToken sets the NextToken field's value.
47447func (s *ListProvisioningTemplateVersionsOutput) SetNextToken(v string) *ListProvisioningTemplateVersionsOutput {
47448	s.NextToken = &v
47449	return s
47450}
47451
47452// SetVersions sets the Versions field's value.
47453func (s *ListProvisioningTemplateVersionsOutput) SetVersions(v []*ProvisioningTemplateVersionSummary) *ListProvisioningTemplateVersionsOutput {
47454	s.Versions = v
47455	return s
47456}
47457
47458type ListProvisioningTemplatesInput struct {
47459	_ struct{} `type:"structure"`
47460
47461	// The maximum number of results to return at one time.
47462	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47463
47464	// A token to retrieve the next set of results.
47465	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47466}
47467
47468// String returns the string representation
47469func (s ListProvisioningTemplatesInput) String() string {
47470	return awsutil.Prettify(s)
47471}
47472
47473// GoString returns the string representation
47474func (s ListProvisioningTemplatesInput) GoString() string {
47475	return s.String()
47476}
47477
47478// Validate inspects the fields of the type to determine if they are valid.
47479func (s *ListProvisioningTemplatesInput) Validate() error {
47480	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplatesInput"}
47481	if s.MaxResults != nil && *s.MaxResults < 1 {
47482		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47483	}
47484
47485	if invalidParams.Len() > 0 {
47486		return invalidParams
47487	}
47488	return nil
47489}
47490
47491// SetMaxResults sets the MaxResults field's value.
47492func (s *ListProvisioningTemplatesInput) SetMaxResults(v int64) *ListProvisioningTemplatesInput {
47493	s.MaxResults = &v
47494	return s
47495}
47496
47497// SetNextToken sets the NextToken field's value.
47498func (s *ListProvisioningTemplatesInput) SetNextToken(v string) *ListProvisioningTemplatesInput {
47499	s.NextToken = &v
47500	return s
47501}
47502
47503type ListProvisioningTemplatesOutput struct {
47504	_ struct{} `type:"structure"`
47505
47506	// A token to retrieve the next set of results.
47507	NextToken *string `locationName:"nextToken" type:"string"`
47508
47509	// A list of fleet provisioning templates
47510	Templates []*ProvisioningTemplateSummary `locationName:"templates" type:"list"`
47511}
47512
47513// String returns the string representation
47514func (s ListProvisioningTemplatesOutput) String() string {
47515	return awsutil.Prettify(s)
47516}
47517
47518// GoString returns the string representation
47519func (s ListProvisioningTemplatesOutput) GoString() string {
47520	return s.String()
47521}
47522
47523// SetNextToken sets the NextToken field's value.
47524func (s *ListProvisioningTemplatesOutput) SetNextToken(v string) *ListProvisioningTemplatesOutput {
47525	s.NextToken = &v
47526	return s
47527}
47528
47529// SetTemplates sets the Templates field's value.
47530func (s *ListProvisioningTemplatesOutput) SetTemplates(v []*ProvisioningTemplateSummary) *ListProvisioningTemplatesOutput {
47531	s.Templates = v
47532	return s
47533}
47534
47535type ListRoleAliasesInput struct {
47536	_ struct{} `type:"structure"`
47537
47538	// Return the list of role aliases in ascending alphabetical order.
47539	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
47540
47541	// A marker used to get the next set of results.
47542	Marker *string `location:"querystring" locationName:"marker" type:"string"`
47543
47544	// The maximum number of results to return at one time.
47545	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
47546}
47547
47548// String returns the string representation
47549func (s ListRoleAliasesInput) String() string {
47550	return awsutil.Prettify(s)
47551}
47552
47553// GoString returns the string representation
47554func (s ListRoleAliasesInput) GoString() string {
47555	return s.String()
47556}
47557
47558// Validate inspects the fields of the type to determine if they are valid.
47559func (s *ListRoleAliasesInput) Validate() error {
47560	invalidParams := request.ErrInvalidParams{Context: "ListRoleAliasesInput"}
47561	if s.PageSize != nil && *s.PageSize < 1 {
47562		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
47563	}
47564
47565	if invalidParams.Len() > 0 {
47566		return invalidParams
47567	}
47568	return nil
47569}
47570
47571// SetAscendingOrder sets the AscendingOrder field's value.
47572func (s *ListRoleAliasesInput) SetAscendingOrder(v bool) *ListRoleAliasesInput {
47573	s.AscendingOrder = &v
47574	return s
47575}
47576
47577// SetMarker sets the Marker field's value.
47578func (s *ListRoleAliasesInput) SetMarker(v string) *ListRoleAliasesInput {
47579	s.Marker = &v
47580	return s
47581}
47582
47583// SetPageSize sets the PageSize field's value.
47584func (s *ListRoleAliasesInput) SetPageSize(v int64) *ListRoleAliasesInput {
47585	s.PageSize = &v
47586	return s
47587}
47588
47589type ListRoleAliasesOutput struct {
47590	_ struct{} `type:"structure"`
47591
47592	// A marker used to get the next set of results.
47593	NextMarker *string `locationName:"nextMarker" type:"string"`
47594
47595	// The role aliases.
47596	RoleAliases []*string `locationName:"roleAliases" type:"list"`
47597}
47598
47599// String returns the string representation
47600func (s ListRoleAliasesOutput) String() string {
47601	return awsutil.Prettify(s)
47602}
47603
47604// GoString returns the string representation
47605func (s ListRoleAliasesOutput) GoString() string {
47606	return s.String()
47607}
47608
47609// SetNextMarker sets the NextMarker field's value.
47610func (s *ListRoleAliasesOutput) SetNextMarker(v string) *ListRoleAliasesOutput {
47611	s.NextMarker = &v
47612	return s
47613}
47614
47615// SetRoleAliases sets the RoleAliases field's value.
47616func (s *ListRoleAliasesOutput) SetRoleAliases(v []*string) *ListRoleAliasesOutput {
47617	s.RoleAliases = v
47618	return s
47619}
47620
47621type ListScheduledAuditsInput struct {
47622	_ struct{} `type:"structure"`
47623
47624	// The maximum number of results to return at one time. The default is 25.
47625	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47626
47627	// The token for the next set of results.
47628	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47629}
47630
47631// String returns the string representation
47632func (s ListScheduledAuditsInput) String() string {
47633	return awsutil.Prettify(s)
47634}
47635
47636// GoString returns the string representation
47637func (s ListScheduledAuditsInput) GoString() string {
47638	return s.String()
47639}
47640
47641// Validate inspects the fields of the type to determine if they are valid.
47642func (s *ListScheduledAuditsInput) Validate() error {
47643	invalidParams := request.ErrInvalidParams{Context: "ListScheduledAuditsInput"}
47644	if s.MaxResults != nil && *s.MaxResults < 1 {
47645		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47646	}
47647
47648	if invalidParams.Len() > 0 {
47649		return invalidParams
47650	}
47651	return nil
47652}
47653
47654// SetMaxResults sets the MaxResults field's value.
47655func (s *ListScheduledAuditsInput) SetMaxResults(v int64) *ListScheduledAuditsInput {
47656	s.MaxResults = &v
47657	return s
47658}
47659
47660// SetNextToken sets the NextToken field's value.
47661func (s *ListScheduledAuditsInput) SetNextToken(v string) *ListScheduledAuditsInput {
47662	s.NextToken = &v
47663	return s
47664}
47665
47666type ListScheduledAuditsOutput struct {
47667	_ struct{} `type:"structure"`
47668
47669	// A token that can be used to retrieve the next set of results, or null if
47670	// there are no additional results.
47671	NextToken *string `locationName:"nextToken" type:"string"`
47672
47673	// The list of scheduled audits.
47674	ScheduledAudits []*ScheduledAuditMetadata `locationName:"scheduledAudits" type:"list"`
47675}
47676
47677// String returns the string representation
47678func (s ListScheduledAuditsOutput) String() string {
47679	return awsutil.Prettify(s)
47680}
47681
47682// GoString returns the string representation
47683func (s ListScheduledAuditsOutput) GoString() string {
47684	return s.String()
47685}
47686
47687// SetNextToken sets the NextToken field's value.
47688func (s *ListScheduledAuditsOutput) SetNextToken(v string) *ListScheduledAuditsOutput {
47689	s.NextToken = &v
47690	return s
47691}
47692
47693// SetScheduledAudits sets the ScheduledAudits field's value.
47694func (s *ListScheduledAuditsOutput) SetScheduledAudits(v []*ScheduledAuditMetadata) *ListScheduledAuditsOutput {
47695	s.ScheduledAudits = v
47696	return s
47697}
47698
47699type ListSecurityProfilesForTargetInput struct {
47700	_ struct{} `type:"structure"`
47701
47702	// The maximum number of results to return at one time.
47703	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47704
47705	// The token for the next set of results.
47706	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47707
47708	// If true, return child groups too.
47709	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
47710
47711	// The ARN of the target (thing group) whose attached security profiles you
47712	// want to get.
47713	//
47714	// SecurityProfileTargetArn is a required field
47715	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
47716}
47717
47718// String returns the string representation
47719func (s ListSecurityProfilesForTargetInput) String() string {
47720	return awsutil.Prettify(s)
47721}
47722
47723// GoString returns the string representation
47724func (s ListSecurityProfilesForTargetInput) GoString() string {
47725	return s.String()
47726}
47727
47728// Validate inspects the fields of the type to determine if they are valid.
47729func (s *ListSecurityProfilesForTargetInput) Validate() error {
47730	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesForTargetInput"}
47731	if s.MaxResults != nil && *s.MaxResults < 1 {
47732		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47733	}
47734	if s.SecurityProfileTargetArn == nil {
47735		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
47736	}
47737
47738	if invalidParams.Len() > 0 {
47739		return invalidParams
47740	}
47741	return nil
47742}
47743
47744// SetMaxResults sets the MaxResults field's value.
47745func (s *ListSecurityProfilesForTargetInput) SetMaxResults(v int64) *ListSecurityProfilesForTargetInput {
47746	s.MaxResults = &v
47747	return s
47748}
47749
47750// SetNextToken sets the NextToken field's value.
47751func (s *ListSecurityProfilesForTargetInput) SetNextToken(v string) *ListSecurityProfilesForTargetInput {
47752	s.NextToken = &v
47753	return s
47754}
47755
47756// SetRecursive sets the Recursive field's value.
47757func (s *ListSecurityProfilesForTargetInput) SetRecursive(v bool) *ListSecurityProfilesForTargetInput {
47758	s.Recursive = &v
47759	return s
47760}
47761
47762// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
47763func (s *ListSecurityProfilesForTargetInput) SetSecurityProfileTargetArn(v string) *ListSecurityProfilesForTargetInput {
47764	s.SecurityProfileTargetArn = &v
47765	return s
47766}
47767
47768type ListSecurityProfilesForTargetOutput struct {
47769	_ struct{} `type:"structure"`
47770
47771	// A token that can be used to retrieve the next set of results, or null if
47772	// there are no additional results.
47773	NextToken *string `locationName:"nextToken" type:"string"`
47774
47775	// A list of security profiles and their associated targets.
47776	SecurityProfileTargetMappings []*SecurityProfileTargetMapping `locationName:"securityProfileTargetMappings" type:"list"`
47777}
47778
47779// String returns the string representation
47780func (s ListSecurityProfilesForTargetOutput) String() string {
47781	return awsutil.Prettify(s)
47782}
47783
47784// GoString returns the string representation
47785func (s ListSecurityProfilesForTargetOutput) GoString() string {
47786	return s.String()
47787}
47788
47789// SetNextToken sets the NextToken field's value.
47790func (s *ListSecurityProfilesForTargetOutput) SetNextToken(v string) *ListSecurityProfilesForTargetOutput {
47791	s.NextToken = &v
47792	return s
47793}
47794
47795// SetSecurityProfileTargetMappings sets the SecurityProfileTargetMappings field's value.
47796func (s *ListSecurityProfilesForTargetOutput) SetSecurityProfileTargetMappings(v []*SecurityProfileTargetMapping) *ListSecurityProfilesForTargetOutput {
47797	s.SecurityProfileTargetMappings = v
47798	return s
47799}
47800
47801type ListSecurityProfilesInput struct {
47802	_ struct{} `type:"structure"`
47803
47804	// A filter to limit results to the security profiles that use the defined dimension.
47805	// Cannot be used with metricName
47806	DimensionName *string `location:"querystring" locationName:"dimensionName" min:"1" type:"string"`
47807
47808	// The maximum number of results to return at one time.
47809	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47810
47811	// The name of the custom metric. Cannot be used with dimensionName.
47812	MetricName *string `location:"querystring" locationName:"metricName" min:"1" type:"string"`
47813
47814	// The token for the next set of results.
47815	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47816}
47817
47818// String returns the string representation
47819func (s ListSecurityProfilesInput) String() string {
47820	return awsutil.Prettify(s)
47821}
47822
47823// GoString returns the string representation
47824func (s ListSecurityProfilesInput) GoString() string {
47825	return s.String()
47826}
47827
47828// Validate inspects the fields of the type to determine if they are valid.
47829func (s *ListSecurityProfilesInput) Validate() error {
47830	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesInput"}
47831	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
47832		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
47833	}
47834	if s.MaxResults != nil && *s.MaxResults < 1 {
47835		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47836	}
47837	if s.MetricName != nil && len(*s.MetricName) < 1 {
47838		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
47839	}
47840
47841	if invalidParams.Len() > 0 {
47842		return invalidParams
47843	}
47844	return nil
47845}
47846
47847// SetDimensionName sets the DimensionName field's value.
47848func (s *ListSecurityProfilesInput) SetDimensionName(v string) *ListSecurityProfilesInput {
47849	s.DimensionName = &v
47850	return s
47851}
47852
47853// SetMaxResults sets the MaxResults field's value.
47854func (s *ListSecurityProfilesInput) SetMaxResults(v int64) *ListSecurityProfilesInput {
47855	s.MaxResults = &v
47856	return s
47857}
47858
47859// SetMetricName sets the MetricName field's value.
47860func (s *ListSecurityProfilesInput) SetMetricName(v string) *ListSecurityProfilesInput {
47861	s.MetricName = &v
47862	return s
47863}
47864
47865// SetNextToken sets the NextToken field's value.
47866func (s *ListSecurityProfilesInput) SetNextToken(v string) *ListSecurityProfilesInput {
47867	s.NextToken = &v
47868	return s
47869}
47870
47871type ListSecurityProfilesOutput struct {
47872	_ struct{} `type:"structure"`
47873
47874	// A token that can be used to retrieve the next set of results, or null if
47875	// there are no additional results.
47876	NextToken *string `locationName:"nextToken" type:"string"`
47877
47878	// A list of security profile identifiers (names and ARNs).
47879	SecurityProfileIdentifiers []*SecurityProfileIdentifier `locationName:"securityProfileIdentifiers" type:"list"`
47880}
47881
47882// String returns the string representation
47883func (s ListSecurityProfilesOutput) String() string {
47884	return awsutil.Prettify(s)
47885}
47886
47887// GoString returns the string representation
47888func (s ListSecurityProfilesOutput) GoString() string {
47889	return s.String()
47890}
47891
47892// SetNextToken sets the NextToken field's value.
47893func (s *ListSecurityProfilesOutput) SetNextToken(v string) *ListSecurityProfilesOutput {
47894	s.NextToken = &v
47895	return s
47896}
47897
47898// SetSecurityProfileIdentifiers sets the SecurityProfileIdentifiers field's value.
47899func (s *ListSecurityProfilesOutput) SetSecurityProfileIdentifiers(v []*SecurityProfileIdentifier) *ListSecurityProfilesOutput {
47900	s.SecurityProfileIdentifiers = v
47901	return s
47902}
47903
47904type ListStreamsInput struct {
47905	_ struct{} `type:"structure"`
47906
47907	// Set to true to return the list of streams in ascending order.
47908	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
47909
47910	// The maximum number of results to return at a time.
47911	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47912
47913	// A token used to get the next set of results.
47914	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47915}
47916
47917// String returns the string representation
47918func (s ListStreamsInput) String() string {
47919	return awsutil.Prettify(s)
47920}
47921
47922// GoString returns the string representation
47923func (s ListStreamsInput) GoString() string {
47924	return s.String()
47925}
47926
47927// Validate inspects the fields of the type to determine if they are valid.
47928func (s *ListStreamsInput) Validate() error {
47929	invalidParams := request.ErrInvalidParams{Context: "ListStreamsInput"}
47930	if s.MaxResults != nil && *s.MaxResults < 1 {
47931		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47932	}
47933
47934	if invalidParams.Len() > 0 {
47935		return invalidParams
47936	}
47937	return nil
47938}
47939
47940// SetAscendingOrder sets the AscendingOrder field's value.
47941func (s *ListStreamsInput) SetAscendingOrder(v bool) *ListStreamsInput {
47942	s.AscendingOrder = &v
47943	return s
47944}
47945
47946// SetMaxResults sets the MaxResults field's value.
47947func (s *ListStreamsInput) SetMaxResults(v int64) *ListStreamsInput {
47948	s.MaxResults = &v
47949	return s
47950}
47951
47952// SetNextToken sets the NextToken field's value.
47953func (s *ListStreamsInput) SetNextToken(v string) *ListStreamsInput {
47954	s.NextToken = &v
47955	return s
47956}
47957
47958type ListStreamsOutput struct {
47959	_ struct{} `type:"structure"`
47960
47961	// A token used to get the next set of results.
47962	NextToken *string `locationName:"nextToken" type:"string"`
47963
47964	// A list of streams.
47965	Streams []*StreamSummary `locationName:"streams" type:"list"`
47966}
47967
47968// String returns the string representation
47969func (s ListStreamsOutput) String() string {
47970	return awsutil.Prettify(s)
47971}
47972
47973// GoString returns the string representation
47974func (s ListStreamsOutput) GoString() string {
47975	return s.String()
47976}
47977
47978// SetNextToken sets the NextToken field's value.
47979func (s *ListStreamsOutput) SetNextToken(v string) *ListStreamsOutput {
47980	s.NextToken = &v
47981	return s
47982}
47983
47984// SetStreams sets the Streams field's value.
47985func (s *ListStreamsOutput) SetStreams(v []*StreamSummary) *ListStreamsOutput {
47986	s.Streams = v
47987	return s
47988}
47989
47990type ListTagsForResourceInput struct {
47991	_ struct{} `type:"structure"`
47992
47993	// To retrieve the next set of results, the nextToken value from a previous
47994	// response; otherwise null to receive the first set of results.
47995	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47996
47997	// The ARN of the resource.
47998	//
47999	// ResourceArn is a required field
48000	ResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string" required:"true"`
48001}
48002
48003// String returns the string representation
48004func (s ListTagsForResourceInput) String() string {
48005	return awsutil.Prettify(s)
48006}
48007
48008// GoString returns the string representation
48009func (s ListTagsForResourceInput) GoString() string {
48010	return s.String()
48011}
48012
48013// Validate inspects the fields of the type to determine if they are valid.
48014func (s *ListTagsForResourceInput) Validate() error {
48015	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
48016	if s.ResourceArn == nil {
48017		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
48018	}
48019
48020	if invalidParams.Len() > 0 {
48021		return invalidParams
48022	}
48023	return nil
48024}
48025
48026// SetNextToken sets the NextToken field's value.
48027func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
48028	s.NextToken = &v
48029	return s
48030}
48031
48032// SetResourceArn sets the ResourceArn field's value.
48033func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
48034	s.ResourceArn = &v
48035	return s
48036}
48037
48038type ListTagsForResourceOutput struct {
48039	_ struct{} `type:"structure"`
48040
48041	// The token to use to get the next set of results, or null if there are no
48042	// additional results.
48043	NextToken *string `locationName:"nextToken" type:"string"`
48044
48045	// The list of tags assigned to the resource.
48046	Tags []*Tag `locationName:"tags" type:"list"`
48047}
48048
48049// String returns the string representation
48050func (s ListTagsForResourceOutput) String() string {
48051	return awsutil.Prettify(s)
48052}
48053
48054// GoString returns the string representation
48055func (s ListTagsForResourceOutput) GoString() string {
48056	return s.String()
48057}
48058
48059// SetNextToken sets the NextToken field's value.
48060func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
48061	s.NextToken = &v
48062	return s
48063}
48064
48065// SetTags sets the Tags field's value.
48066func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
48067	s.Tags = v
48068	return s
48069}
48070
48071type ListTargetsForPolicyInput struct {
48072	_ struct{} `type:"structure"`
48073
48074	// A marker used to get the next set of results.
48075	Marker *string `location:"querystring" locationName:"marker" type:"string"`
48076
48077	// The maximum number of results to return at one time.
48078	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
48079
48080	// The policy name.
48081	//
48082	// PolicyName is a required field
48083	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
48084}
48085
48086// String returns the string representation
48087func (s ListTargetsForPolicyInput) String() string {
48088	return awsutil.Prettify(s)
48089}
48090
48091// GoString returns the string representation
48092func (s ListTargetsForPolicyInput) GoString() string {
48093	return s.String()
48094}
48095
48096// Validate inspects the fields of the type to determine if they are valid.
48097func (s *ListTargetsForPolicyInput) Validate() error {
48098	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForPolicyInput"}
48099	if s.PageSize != nil && *s.PageSize < 1 {
48100		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
48101	}
48102	if s.PolicyName == nil {
48103		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
48104	}
48105	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
48106		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
48107	}
48108
48109	if invalidParams.Len() > 0 {
48110		return invalidParams
48111	}
48112	return nil
48113}
48114
48115// SetMarker sets the Marker field's value.
48116func (s *ListTargetsForPolicyInput) SetMarker(v string) *ListTargetsForPolicyInput {
48117	s.Marker = &v
48118	return s
48119}
48120
48121// SetPageSize sets the PageSize field's value.
48122func (s *ListTargetsForPolicyInput) SetPageSize(v int64) *ListTargetsForPolicyInput {
48123	s.PageSize = &v
48124	return s
48125}
48126
48127// SetPolicyName sets the PolicyName field's value.
48128func (s *ListTargetsForPolicyInput) SetPolicyName(v string) *ListTargetsForPolicyInput {
48129	s.PolicyName = &v
48130	return s
48131}
48132
48133type ListTargetsForPolicyOutput struct {
48134	_ struct{} `type:"structure"`
48135
48136	// A marker used to get the next set of results.
48137	NextMarker *string `locationName:"nextMarker" type:"string"`
48138
48139	// The policy targets.
48140	Targets []*string `locationName:"targets" type:"list"`
48141}
48142
48143// String returns the string representation
48144func (s ListTargetsForPolicyOutput) String() string {
48145	return awsutil.Prettify(s)
48146}
48147
48148// GoString returns the string representation
48149func (s ListTargetsForPolicyOutput) GoString() string {
48150	return s.String()
48151}
48152
48153// SetNextMarker sets the NextMarker field's value.
48154func (s *ListTargetsForPolicyOutput) SetNextMarker(v string) *ListTargetsForPolicyOutput {
48155	s.NextMarker = &v
48156	return s
48157}
48158
48159// SetTargets sets the Targets field's value.
48160func (s *ListTargetsForPolicyOutput) SetTargets(v []*string) *ListTargetsForPolicyOutput {
48161	s.Targets = v
48162	return s
48163}
48164
48165type ListTargetsForSecurityProfileInput struct {
48166	_ struct{} `type:"structure"`
48167
48168	// The maximum number of results to return at one time.
48169	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
48170
48171	// The token for the next set of results.
48172	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
48173
48174	// The security profile.
48175	//
48176	// SecurityProfileName is a required field
48177	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
48178}
48179
48180// String returns the string representation
48181func (s ListTargetsForSecurityProfileInput) String() string {
48182	return awsutil.Prettify(s)
48183}
48184
48185// GoString returns the string representation
48186func (s ListTargetsForSecurityProfileInput) GoString() string {
48187	return s.String()
48188}
48189
48190// Validate inspects the fields of the type to determine if they are valid.
48191func (s *ListTargetsForSecurityProfileInput) Validate() error {
48192	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForSecurityProfileInput"}
48193	if s.MaxResults != nil && *s.MaxResults < 1 {
48194		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
48195	}
48196	if s.SecurityProfileName == nil {
48197		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
48198	}
48199	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
48200		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
48201	}
48202
48203	if invalidParams.Len() > 0 {
48204		return invalidParams
48205	}
48206	return nil
48207}
48208
48209// SetMaxResults sets the MaxResults field's value.
48210func (s *ListTargetsForSecurityProfileInput) SetMaxResults(v int64) *ListTargetsForSecurityProfileInput {
48211	s.MaxResults = &v
48212	return s
48213}
48214
48215// SetNextToken sets the NextToken field's value.
48216func (s *ListTargetsForSecurityProfileInput) SetNextToken(v string) *ListTargetsForSecurityProfileInput {
48217	s.NextToken = &v
48218	return s
48219}
48220
48221// SetSecurityProfileName sets the SecurityProfileName field's value.
48222func (s *ListTargetsForSecurityProfileInput) SetSecurityProfileName(v string) *ListTargetsForSecurityProfileInput {
48223	s.SecurityProfileName = &v
48224	return s
48225}
48226
48227type ListTargetsForSecurityProfileOutput struct {
48228	_ struct{} `type:"structure"`
48229
48230	// A token that can be used to retrieve the next set of results, or null if
48231	// there are no additional results.
48232	NextToken *string `locationName:"nextToken" type:"string"`
48233
48234	// The thing groups to which the security profile is attached.
48235	SecurityProfileTargets []*SecurityProfileTarget `locationName:"securityProfileTargets" type:"list"`
48236}
48237
48238// String returns the string representation
48239func (s ListTargetsForSecurityProfileOutput) String() string {
48240	return awsutil.Prettify(s)
48241}
48242
48243// GoString returns the string representation
48244func (s ListTargetsForSecurityProfileOutput) GoString() string {
48245	return s.String()
48246}
48247
48248// SetNextToken sets the NextToken field's value.
48249func (s *ListTargetsForSecurityProfileOutput) SetNextToken(v string) *ListTargetsForSecurityProfileOutput {
48250	s.NextToken = &v
48251	return s
48252}
48253
48254// SetSecurityProfileTargets sets the SecurityProfileTargets field's value.
48255func (s *ListTargetsForSecurityProfileOutput) SetSecurityProfileTargets(v []*SecurityProfileTarget) *ListTargetsForSecurityProfileOutput {
48256	s.SecurityProfileTargets = v
48257	return s
48258}
48259
48260type ListThingGroupsForThingInput struct {
48261	_ struct{} `type:"structure"`
48262
48263	// The maximum number of results to return at one time.
48264	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
48265
48266	// To retrieve the next set of results, the nextToken value from a previous
48267	// response; otherwise null to receive the first set of results.
48268	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
48269
48270	// The thing name.
48271	//
48272	// ThingName is a required field
48273	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
48274}
48275
48276// String returns the string representation
48277func (s ListThingGroupsForThingInput) String() string {
48278	return awsutil.Prettify(s)
48279}
48280
48281// GoString returns the string representation
48282func (s ListThingGroupsForThingInput) GoString() string {
48283	return s.String()
48284}
48285
48286// Validate inspects the fields of the type to determine if they are valid.
48287func (s *ListThingGroupsForThingInput) Validate() error {
48288	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsForThingInput"}
48289	if s.MaxResults != nil && *s.MaxResults < 1 {
48290		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
48291	}
48292	if s.ThingName == nil {
48293		invalidParams.Add(request.NewErrParamRequired("ThingName"))
48294	}
48295	if s.ThingName != nil && len(*s.ThingName) < 1 {
48296		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
48297	}
48298
48299	if invalidParams.Len() > 0 {
48300		return invalidParams
48301	}
48302	return nil
48303}
48304
48305// SetMaxResults sets the MaxResults field's value.
48306func (s *ListThingGroupsForThingInput) SetMaxResults(v int64) *ListThingGroupsForThingInput {
48307	s.MaxResults = &v
48308	return s
48309}
48310
48311// SetNextToken sets the NextToken field's value.
48312func (s *ListThingGroupsForThingInput) SetNextToken(v string) *ListThingGroupsForThingInput {
48313	s.NextToken = &v
48314	return s
48315}
48316
48317// SetThingName sets the ThingName field's value.
48318func (s *ListThingGroupsForThingInput) SetThingName(v string) *ListThingGroupsForThingInput {
48319	s.ThingName = &v
48320	return s
48321}
48322
48323type ListThingGroupsForThingOutput struct {
48324	_ struct{} `type:"structure"`
48325
48326	// The token to use to get the next set of results, or null if there are no
48327	// additional results.
48328	NextToken *string `locationName:"nextToken" type:"string"`
48329
48330	// The thing groups.
48331	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
48332}
48333
48334// String returns the string representation
48335func (s ListThingGroupsForThingOutput) String() string {
48336	return awsutil.Prettify(s)
48337}
48338
48339// GoString returns the string representation
48340func (s ListThingGroupsForThingOutput) GoString() string {
48341	return s.String()
48342}
48343
48344// SetNextToken sets the NextToken field's value.
48345func (s *ListThingGroupsForThingOutput) SetNextToken(v string) *ListThingGroupsForThingOutput {
48346	s.NextToken = &v
48347	return s
48348}
48349
48350// SetThingGroups sets the ThingGroups field's value.
48351func (s *ListThingGroupsForThingOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsForThingOutput {
48352	s.ThingGroups = v
48353	return s
48354}
48355
48356type ListThingGroupsInput struct {
48357	_ struct{} `type:"structure"`
48358
48359	// The maximum number of results to return at one time.
48360	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
48361
48362	// A filter that limits the results to those with the specified name prefix.
48363	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
48364
48365	// To retrieve the next set of results, the nextToken value from a previous
48366	// response; otherwise null to receive the first set of results.
48367	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
48368
48369	// A filter that limits the results to those with the specified parent group.
48370	ParentGroup *string `location:"querystring" locationName:"parentGroup" min:"1" type:"string"`
48371
48372	// If true, return child groups as well.
48373	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
48374}
48375
48376// String returns the string representation
48377func (s ListThingGroupsInput) String() string {
48378	return awsutil.Prettify(s)
48379}
48380
48381// GoString returns the string representation
48382func (s ListThingGroupsInput) GoString() string {
48383	return s.String()
48384}
48385
48386// Validate inspects the fields of the type to determine if they are valid.
48387func (s *ListThingGroupsInput) Validate() error {
48388	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsInput"}
48389	if s.MaxResults != nil && *s.MaxResults < 1 {
48390		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
48391	}
48392	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
48393		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
48394	}
48395	if s.ParentGroup != nil && len(*s.ParentGroup) < 1 {
48396		invalidParams.Add(request.NewErrParamMinLen("ParentGroup", 1))
48397	}
48398
48399	if invalidParams.Len() > 0 {
48400		return invalidParams
48401	}
48402	return nil
48403}
48404
48405// SetMaxResults sets the MaxResults field's value.
48406func (s *ListThingGroupsInput) SetMaxResults(v int64) *ListThingGroupsInput {
48407	s.MaxResults = &v
48408	return s
48409}
48410
48411// SetNamePrefixFilter sets the NamePrefixFilter field's value.
48412func (s *ListThingGroupsInput) SetNamePrefixFilter(v string) *ListThingGroupsInput {
48413	s.NamePrefixFilter = &v
48414	return s
48415}
48416
48417// SetNextToken sets the NextToken field's value.
48418func (s *ListThingGroupsInput) SetNextToken(v string) *ListThingGroupsInput {
48419	s.NextToken = &v
48420	return s
48421}
48422
48423// SetParentGroup sets the ParentGroup field's value.
48424func (s *ListThingGroupsInput) SetParentGroup(v string) *ListThingGroupsInput {
48425	s.ParentGroup = &v
48426	return s
48427}
48428
48429// SetRecursive sets the Recursive field's value.
48430func (s *ListThingGroupsInput) SetRecursive(v bool) *ListThingGroupsInput {
48431	s.Recursive = &v
48432	return s
48433}
48434
48435type ListThingGroupsOutput struct {
48436	_ struct{} `type:"structure"`
48437
48438	// The token to use to get the next set of results. Will not be returned if
48439	// operation has returned all results.
48440	NextToken *string `locationName:"nextToken" type:"string"`
48441
48442	// The thing groups.
48443	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
48444}
48445
48446// String returns the string representation
48447func (s ListThingGroupsOutput) String() string {
48448	return awsutil.Prettify(s)
48449}
48450
48451// GoString returns the string representation
48452func (s ListThingGroupsOutput) GoString() string {
48453	return s.String()
48454}
48455
48456// SetNextToken sets the NextToken field's value.
48457func (s *ListThingGroupsOutput) SetNextToken(v string) *ListThingGroupsOutput {
48458	s.NextToken = &v
48459	return s
48460}
48461
48462// SetThingGroups sets the ThingGroups field's value.
48463func (s *ListThingGroupsOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsOutput {
48464	s.ThingGroups = v
48465	return s
48466}
48467
48468// The input for the ListThingPrincipal operation.
48469type ListThingPrincipalsInput struct {
48470	_ struct{} `type:"structure"`
48471
48472	// The maximum number of results to return in this operation.
48473	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
48474
48475	// To retrieve the next set of results, the nextToken value from a previous
48476	// response; otherwise null to receive the first set of results.
48477	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
48478
48479	// The name of the thing.
48480	//
48481	// ThingName is a required field
48482	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
48483}
48484
48485// String returns the string representation
48486func (s ListThingPrincipalsInput) String() string {
48487	return awsutil.Prettify(s)
48488}
48489
48490// GoString returns the string representation
48491func (s ListThingPrincipalsInput) GoString() string {
48492	return s.String()
48493}
48494
48495// Validate inspects the fields of the type to determine if they are valid.
48496func (s *ListThingPrincipalsInput) Validate() error {
48497	invalidParams := request.ErrInvalidParams{Context: "ListThingPrincipalsInput"}
48498	if s.MaxResults != nil && *s.MaxResults < 1 {
48499		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
48500	}
48501	if s.ThingName == nil {
48502		invalidParams.Add(request.NewErrParamRequired("ThingName"))
48503	}
48504	if s.ThingName != nil && len(*s.ThingName) < 1 {
48505		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
48506	}
48507
48508	if invalidParams.Len() > 0 {
48509		return invalidParams
48510	}
48511	return nil
48512}
48513
48514// SetMaxResults sets the MaxResults field's value.
48515func (s *ListThingPrincipalsInput) SetMaxResults(v int64) *ListThingPrincipalsInput {
48516	s.MaxResults = &v
48517	return s
48518}
48519
48520// SetNextToken sets the NextToken field's value.
48521func (s *ListThingPrincipalsInput) SetNextToken(v string) *ListThingPrincipalsInput {
48522	s.NextToken = &v
48523	return s
48524}
48525
48526// SetThingName sets the ThingName field's value.
48527func (s *ListThingPrincipalsInput) SetThingName(v string) *ListThingPrincipalsInput {
48528	s.ThingName = &v
48529	return s
48530}
48531
48532// The output from the ListThingPrincipals operation.
48533type ListThingPrincipalsOutput struct {
48534	_ struct{} `type:"structure"`
48535
48536	// The token to use to get the next set of results, or null if there are no
48537	// additional results.
48538	NextToken *string `locationName:"nextToken" type:"string"`
48539
48540	// The principals associated with the thing.
48541	Principals []*string `locationName:"principals" type:"list"`
48542}
48543
48544// String returns the string representation
48545func (s ListThingPrincipalsOutput) String() string {
48546	return awsutil.Prettify(s)
48547}
48548
48549// GoString returns the string representation
48550func (s ListThingPrincipalsOutput) GoString() string {
48551	return s.String()
48552}
48553
48554// SetNextToken sets the NextToken field's value.
48555func (s *ListThingPrincipalsOutput) SetNextToken(v string) *ListThingPrincipalsOutput {
48556	s.NextToken = &v
48557	return s
48558}
48559
48560// SetPrincipals sets the Principals field's value.
48561func (s *ListThingPrincipalsOutput) SetPrincipals(v []*string) *ListThingPrincipalsOutput {
48562	s.Principals = v
48563	return s
48564}
48565
48566type ListThingRegistrationTaskReportsInput struct {
48567	_ struct{} `type:"structure"`
48568
48569	// The maximum number of results to return per request.
48570	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
48571
48572	// To retrieve the next set of results, the nextToken value from a previous
48573	// response; otherwise null to receive the first set of results.
48574	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
48575
48576	// The type of task report.
48577	//
48578	// ReportType is a required field
48579	ReportType *string `location:"querystring" locationName:"reportType" type:"string" required:"true" enum:"ReportType"`
48580
48581	// The id of the task.
48582	//
48583	// TaskId is a required field
48584	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
48585}
48586
48587// String returns the string representation
48588func (s ListThingRegistrationTaskReportsInput) String() string {
48589	return awsutil.Prettify(s)
48590}
48591
48592// GoString returns the string representation
48593func (s ListThingRegistrationTaskReportsInput) GoString() string {
48594	return s.String()
48595}
48596
48597// Validate inspects the fields of the type to determine if they are valid.
48598func (s *ListThingRegistrationTaskReportsInput) Validate() error {
48599	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTaskReportsInput"}
48600	if s.MaxResults != nil && *s.MaxResults < 1 {
48601		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
48602	}
48603	if s.ReportType == nil {
48604		invalidParams.Add(request.NewErrParamRequired("ReportType"))
48605	}
48606	if s.TaskId == nil {
48607		invalidParams.Add(request.NewErrParamRequired("TaskId"))
48608	}
48609	if s.TaskId != nil && len(*s.TaskId) < 1 {
48610		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
48611	}
48612
48613	if invalidParams.Len() > 0 {
48614		return invalidParams
48615	}
48616	return nil
48617}
48618
48619// SetMaxResults sets the MaxResults field's value.
48620func (s *ListThingRegistrationTaskReportsInput) SetMaxResults(v int64) *ListThingRegistrationTaskReportsInput {
48621	s.MaxResults = &v
48622	return s
48623}
48624
48625// SetNextToken sets the NextToken field's value.
48626func (s *ListThingRegistrationTaskReportsInput) SetNextToken(v string) *ListThingRegistrationTaskReportsInput {
48627	s.NextToken = &v
48628	return s
48629}
48630
48631// SetReportType sets the ReportType field's value.
48632func (s *ListThingRegistrationTaskReportsInput) SetReportType(v string) *ListThingRegistrationTaskReportsInput {
48633	s.ReportType = &v
48634	return s
48635}
48636
48637// SetTaskId sets the TaskId field's value.
48638func (s *ListThingRegistrationTaskReportsInput) SetTaskId(v string) *ListThingRegistrationTaskReportsInput {
48639	s.TaskId = &v
48640	return s
48641}
48642
48643type ListThingRegistrationTaskReportsOutput struct {
48644	_ struct{} `type:"structure"`
48645
48646	// The token to use to get the next set of results, or null if there are no
48647	// additional results.
48648	NextToken *string `locationName:"nextToken" type:"string"`
48649
48650	// The type of task report.
48651	ReportType *string `locationName:"reportType" type:"string" enum:"ReportType"`
48652
48653	// Links to the task resources.
48654	ResourceLinks []*string `locationName:"resourceLinks" type:"list"`
48655}
48656
48657// String returns the string representation
48658func (s ListThingRegistrationTaskReportsOutput) String() string {
48659	return awsutil.Prettify(s)
48660}
48661
48662// GoString returns the string representation
48663func (s ListThingRegistrationTaskReportsOutput) GoString() string {
48664	return s.String()
48665}
48666
48667// SetNextToken sets the NextToken field's value.
48668func (s *ListThingRegistrationTaskReportsOutput) SetNextToken(v string) *ListThingRegistrationTaskReportsOutput {
48669	s.NextToken = &v
48670	return s
48671}
48672
48673// SetReportType sets the ReportType field's value.
48674func (s *ListThingRegistrationTaskReportsOutput) SetReportType(v string) *ListThingRegistrationTaskReportsOutput {
48675	s.ReportType = &v
48676	return s
48677}
48678
48679// SetResourceLinks sets the ResourceLinks field's value.
48680func (s *ListThingRegistrationTaskReportsOutput) SetResourceLinks(v []*string) *ListThingRegistrationTaskReportsOutput {
48681	s.ResourceLinks = v
48682	return s
48683}
48684
48685type ListThingRegistrationTasksInput struct {
48686	_ struct{} `type:"structure"`
48687
48688	// The maximum number of results to return at one time.
48689	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
48690
48691	// To retrieve the next set of results, the nextToken value from a previous
48692	// response; otherwise null to receive the first set of results.
48693	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
48694
48695	// The status of the bulk thing provisioning task.
48696	Status *string `location:"querystring" locationName:"status" type:"string" enum:"Status"`
48697}
48698
48699// String returns the string representation
48700func (s ListThingRegistrationTasksInput) String() string {
48701	return awsutil.Prettify(s)
48702}
48703
48704// GoString returns the string representation
48705func (s ListThingRegistrationTasksInput) GoString() string {
48706	return s.String()
48707}
48708
48709// Validate inspects the fields of the type to determine if they are valid.
48710func (s *ListThingRegistrationTasksInput) Validate() error {
48711	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTasksInput"}
48712	if s.MaxResults != nil && *s.MaxResults < 1 {
48713		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
48714	}
48715
48716	if invalidParams.Len() > 0 {
48717		return invalidParams
48718	}
48719	return nil
48720}
48721
48722// SetMaxResults sets the MaxResults field's value.
48723func (s *ListThingRegistrationTasksInput) SetMaxResults(v int64) *ListThingRegistrationTasksInput {
48724	s.MaxResults = &v
48725	return s
48726}
48727
48728// SetNextToken sets the NextToken field's value.
48729func (s *ListThingRegistrationTasksInput) SetNextToken(v string) *ListThingRegistrationTasksInput {
48730	s.NextToken = &v
48731	return s
48732}
48733
48734// SetStatus sets the Status field's value.
48735func (s *ListThingRegistrationTasksInput) SetStatus(v string) *ListThingRegistrationTasksInput {
48736	s.Status = &v
48737	return s
48738}
48739
48740type ListThingRegistrationTasksOutput struct {
48741	_ struct{} `type:"structure"`
48742
48743	// The token to use to get the next set of results, or null if there are no
48744	// additional results.
48745	NextToken *string `locationName:"nextToken" type:"string"`
48746
48747	// A list of bulk thing provisioning task IDs.
48748	TaskIds []*string `locationName:"taskIds" type:"list"`
48749}
48750
48751// String returns the string representation
48752func (s ListThingRegistrationTasksOutput) String() string {
48753	return awsutil.Prettify(s)
48754}
48755
48756// GoString returns the string representation
48757func (s ListThingRegistrationTasksOutput) GoString() string {
48758	return s.String()
48759}
48760
48761// SetNextToken sets the NextToken field's value.
48762func (s *ListThingRegistrationTasksOutput) SetNextToken(v string) *ListThingRegistrationTasksOutput {
48763	s.NextToken = &v
48764	return s
48765}
48766
48767// SetTaskIds sets the TaskIds field's value.
48768func (s *ListThingRegistrationTasksOutput) SetTaskIds(v []*string) *ListThingRegistrationTasksOutput {
48769	s.TaskIds = v
48770	return s
48771}
48772
48773// The input for the ListThingTypes operation.
48774type ListThingTypesInput struct {
48775	_ struct{} `type:"structure"`
48776
48777	// The maximum number of results to return in this operation.
48778	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
48779
48780	// To retrieve the next set of results, the nextToken value from a previous
48781	// response; otherwise null to receive the first set of results.
48782	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
48783
48784	// The name of the thing type.
48785	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
48786}
48787
48788// String returns the string representation
48789func (s ListThingTypesInput) String() string {
48790	return awsutil.Prettify(s)
48791}
48792
48793// GoString returns the string representation
48794func (s ListThingTypesInput) GoString() string {
48795	return s.String()
48796}
48797
48798// Validate inspects the fields of the type to determine if they are valid.
48799func (s *ListThingTypesInput) Validate() error {
48800	invalidParams := request.ErrInvalidParams{Context: "ListThingTypesInput"}
48801	if s.MaxResults != nil && *s.MaxResults < 1 {
48802		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
48803	}
48804	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
48805		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
48806	}
48807
48808	if invalidParams.Len() > 0 {
48809		return invalidParams
48810	}
48811	return nil
48812}
48813
48814// SetMaxResults sets the MaxResults field's value.
48815func (s *ListThingTypesInput) SetMaxResults(v int64) *ListThingTypesInput {
48816	s.MaxResults = &v
48817	return s
48818}
48819
48820// SetNextToken sets the NextToken field's value.
48821func (s *ListThingTypesInput) SetNextToken(v string) *ListThingTypesInput {
48822	s.NextToken = &v
48823	return s
48824}
48825
48826// SetThingTypeName sets the ThingTypeName field's value.
48827func (s *ListThingTypesInput) SetThingTypeName(v string) *ListThingTypesInput {
48828	s.ThingTypeName = &v
48829	return s
48830}
48831
48832// The output for the ListThingTypes operation.
48833type ListThingTypesOutput struct {
48834	_ struct{} `type:"structure"`
48835
48836	// The token for the next set of results. Will not be returned if operation
48837	// has returned all results.
48838	NextToken *string `locationName:"nextToken" type:"string"`
48839
48840	// The thing types.
48841	ThingTypes []*ThingTypeDefinition `locationName:"thingTypes" type:"list"`
48842}
48843
48844// String returns the string representation
48845func (s ListThingTypesOutput) String() string {
48846	return awsutil.Prettify(s)
48847}
48848
48849// GoString returns the string representation
48850func (s ListThingTypesOutput) GoString() string {
48851	return s.String()
48852}
48853
48854// SetNextToken sets the NextToken field's value.
48855func (s *ListThingTypesOutput) SetNextToken(v string) *ListThingTypesOutput {
48856	s.NextToken = &v
48857	return s
48858}
48859
48860// SetThingTypes sets the ThingTypes field's value.
48861func (s *ListThingTypesOutput) SetThingTypes(v []*ThingTypeDefinition) *ListThingTypesOutput {
48862	s.ThingTypes = v
48863	return s
48864}
48865
48866type ListThingsInBillingGroupInput struct {
48867	_ struct{} `type:"structure"`
48868
48869	// The name of the billing group.
48870	//
48871	// BillingGroupName is a required field
48872	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
48873
48874	// The maximum number of results to return per request.
48875	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
48876
48877	// To retrieve the next set of results, the nextToken value from a previous
48878	// response; otherwise null to receive the first set of results.
48879	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
48880}
48881
48882// String returns the string representation
48883func (s ListThingsInBillingGroupInput) String() string {
48884	return awsutil.Prettify(s)
48885}
48886
48887// GoString returns the string representation
48888func (s ListThingsInBillingGroupInput) GoString() string {
48889	return s.String()
48890}
48891
48892// Validate inspects the fields of the type to determine if they are valid.
48893func (s *ListThingsInBillingGroupInput) Validate() error {
48894	invalidParams := request.ErrInvalidParams{Context: "ListThingsInBillingGroupInput"}
48895	if s.BillingGroupName == nil {
48896		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
48897	}
48898	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
48899		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
48900	}
48901	if s.MaxResults != nil && *s.MaxResults < 1 {
48902		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
48903	}
48904
48905	if invalidParams.Len() > 0 {
48906		return invalidParams
48907	}
48908	return nil
48909}
48910
48911// SetBillingGroupName sets the BillingGroupName field's value.
48912func (s *ListThingsInBillingGroupInput) SetBillingGroupName(v string) *ListThingsInBillingGroupInput {
48913	s.BillingGroupName = &v
48914	return s
48915}
48916
48917// SetMaxResults sets the MaxResults field's value.
48918func (s *ListThingsInBillingGroupInput) SetMaxResults(v int64) *ListThingsInBillingGroupInput {
48919	s.MaxResults = &v
48920	return s
48921}
48922
48923// SetNextToken sets the NextToken field's value.
48924func (s *ListThingsInBillingGroupInput) SetNextToken(v string) *ListThingsInBillingGroupInput {
48925	s.NextToken = &v
48926	return s
48927}
48928
48929type ListThingsInBillingGroupOutput struct {
48930	_ struct{} `type:"structure"`
48931
48932	// The token to use to get the next set of results. Will not be returned if
48933	// operation has returned all results.
48934	NextToken *string `locationName:"nextToken" type:"string"`
48935
48936	// A list of things in the billing group.
48937	Things []*string `locationName:"things" type:"list"`
48938}
48939
48940// String returns the string representation
48941func (s ListThingsInBillingGroupOutput) String() string {
48942	return awsutil.Prettify(s)
48943}
48944
48945// GoString returns the string representation
48946func (s ListThingsInBillingGroupOutput) GoString() string {
48947	return s.String()
48948}
48949
48950// SetNextToken sets the NextToken field's value.
48951func (s *ListThingsInBillingGroupOutput) SetNextToken(v string) *ListThingsInBillingGroupOutput {
48952	s.NextToken = &v
48953	return s
48954}
48955
48956// SetThings sets the Things field's value.
48957func (s *ListThingsInBillingGroupOutput) SetThings(v []*string) *ListThingsInBillingGroupOutput {
48958	s.Things = v
48959	return s
48960}
48961
48962type ListThingsInThingGroupInput struct {
48963	_ struct{} `type:"structure"`
48964
48965	// The maximum number of results to return at one time.
48966	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
48967
48968	// To retrieve the next set of results, the nextToken value from a previous
48969	// response; otherwise null to receive the first set of results.
48970	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
48971
48972	// When true, list things in this thing group and in all child groups as well.
48973	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
48974
48975	// The thing group name.
48976	//
48977	// ThingGroupName is a required field
48978	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
48979}
48980
48981// String returns the string representation
48982func (s ListThingsInThingGroupInput) String() string {
48983	return awsutil.Prettify(s)
48984}
48985
48986// GoString returns the string representation
48987func (s ListThingsInThingGroupInput) GoString() string {
48988	return s.String()
48989}
48990
48991// Validate inspects the fields of the type to determine if they are valid.
48992func (s *ListThingsInThingGroupInput) Validate() error {
48993	invalidParams := request.ErrInvalidParams{Context: "ListThingsInThingGroupInput"}
48994	if s.MaxResults != nil && *s.MaxResults < 1 {
48995		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
48996	}
48997	if s.ThingGroupName == nil {
48998		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
48999	}
49000	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
49001		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
49002	}
49003
49004	if invalidParams.Len() > 0 {
49005		return invalidParams
49006	}
49007	return nil
49008}
49009
49010// SetMaxResults sets the MaxResults field's value.
49011func (s *ListThingsInThingGroupInput) SetMaxResults(v int64) *ListThingsInThingGroupInput {
49012	s.MaxResults = &v
49013	return s
49014}
49015
49016// SetNextToken sets the NextToken field's value.
49017func (s *ListThingsInThingGroupInput) SetNextToken(v string) *ListThingsInThingGroupInput {
49018	s.NextToken = &v
49019	return s
49020}
49021
49022// SetRecursive sets the Recursive field's value.
49023func (s *ListThingsInThingGroupInput) SetRecursive(v bool) *ListThingsInThingGroupInput {
49024	s.Recursive = &v
49025	return s
49026}
49027
49028// SetThingGroupName sets the ThingGroupName field's value.
49029func (s *ListThingsInThingGroupInput) SetThingGroupName(v string) *ListThingsInThingGroupInput {
49030	s.ThingGroupName = &v
49031	return s
49032}
49033
49034type ListThingsInThingGroupOutput struct {
49035	_ struct{} `type:"structure"`
49036
49037	// The token to use to get the next set of results, or null if there are no
49038	// additional results.
49039	NextToken *string `locationName:"nextToken" type:"string"`
49040
49041	// The things in the specified thing group.
49042	Things []*string `locationName:"things" type:"list"`
49043}
49044
49045// String returns the string representation
49046func (s ListThingsInThingGroupOutput) String() string {
49047	return awsutil.Prettify(s)
49048}
49049
49050// GoString returns the string representation
49051func (s ListThingsInThingGroupOutput) GoString() string {
49052	return s.String()
49053}
49054
49055// SetNextToken sets the NextToken field's value.
49056func (s *ListThingsInThingGroupOutput) SetNextToken(v string) *ListThingsInThingGroupOutput {
49057	s.NextToken = &v
49058	return s
49059}
49060
49061// SetThings sets the Things field's value.
49062func (s *ListThingsInThingGroupOutput) SetThings(v []*string) *ListThingsInThingGroupOutput {
49063	s.Things = v
49064	return s
49065}
49066
49067// The input for the ListThings operation.
49068type ListThingsInput struct {
49069	_ struct{} `type:"structure"`
49070
49071	// The attribute name used to search for things.
49072	AttributeName *string `location:"querystring" locationName:"attributeName" type:"string"`
49073
49074	// The attribute value used to search for things.
49075	AttributeValue *string `location:"querystring" locationName:"attributeValue" type:"string"`
49076
49077	// The maximum number of results to return in this operation.
49078	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
49079
49080	// To retrieve the next set of results, the nextToken value from a previous
49081	// response; otherwise null to receive the first set of results.
49082	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
49083
49084	// The name of the thing type used to search for things.
49085	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
49086
49087	// When true, the action returns the thing resources with attribute values that
49088	// start with the attributeValue provided.
49089	//
49090	// When false, or not present, the action returns only the thing resources with
49091	// attribute values that match the entire attributeValue provided.
49092	UsePrefixAttributeValue *bool `location:"querystring" locationName:"usePrefixAttributeValue" type:"boolean"`
49093}
49094
49095// String returns the string representation
49096func (s ListThingsInput) String() string {
49097	return awsutil.Prettify(s)
49098}
49099
49100// GoString returns the string representation
49101func (s ListThingsInput) GoString() string {
49102	return s.String()
49103}
49104
49105// Validate inspects the fields of the type to determine if they are valid.
49106func (s *ListThingsInput) Validate() error {
49107	invalidParams := request.ErrInvalidParams{Context: "ListThingsInput"}
49108	if s.MaxResults != nil && *s.MaxResults < 1 {
49109		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49110	}
49111	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
49112		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
49113	}
49114
49115	if invalidParams.Len() > 0 {
49116		return invalidParams
49117	}
49118	return nil
49119}
49120
49121// SetAttributeName sets the AttributeName field's value.
49122func (s *ListThingsInput) SetAttributeName(v string) *ListThingsInput {
49123	s.AttributeName = &v
49124	return s
49125}
49126
49127// SetAttributeValue sets the AttributeValue field's value.
49128func (s *ListThingsInput) SetAttributeValue(v string) *ListThingsInput {
49129	s.AttributeValue = &v
49130	return s
49131}
49132
49133// SetMaxResults sets the MaxResults field's value.
49134func (s *ListThingsInput) SetMaxResults(v int64) *ListThingsInput {
49135	s.MaxResults = &v
49136	return s
49137}
49138
49139// SetNextToken sets the NextToken field's value.
49140func (s *ListThingsInput) SetNextToken(v string) *ListThingsInput {
49141	s.NextToken = &v
49142	return s
49143}
49144
49145// SetThingTypeName sets the ThingTypeName field's value.
49146func (s *ListThingsInput) SetThingTypeName(v string) *ListThingsInput {
49147	s.ThingTypeName = &v
49148	return s
49149}
49150
49151// SetUsePrefixAttributeValue sets the UsePrefixAttributeValue field's value.
49152func (s *ListThingsInput) SetUsePrefixAttributeValue(v bool) *ListThingsInput {
49153	s.UsePrefixAttributeValue = &v
49154	return s
49155}
49156
49157// The output from the ListThings operation.
49158type ListThingsOutput struct {
49159	_ struct{} `type:"structure"`
49160
49161	// The token to use to get the next set of results. Will not be returned if
49162	// operation has returned all results.
49163	NextToken *string `locationName:"nextToken" type:"string"`
49164
49165	// The things.
49166	Things []*ThingAttribute `locationName:"things" type:"list"`
49167}
49168
49169// String returns the string representation
49170func (s ListThingsOutput) String() string {
49171	return awsutil.Prettify(s)
49172}
49173
49174// GoString returns the string representation
49175func (s ListThingsOutput) GoString() string {
49176	return s.String()
49177}
49178
49179// SetNextToken sets the NextToken field's value.
49180func (s *ListThingsOutput) SetNextToken(v string) *ListThingsOutput {
49181	s.NextToken = &v
49182	return s
49183}
49184
49185// SetThings sets the Things field's value.
49186func (s *ListThingsOutput) SetThings(v []*ThingAttribute) *ListThingsOutput {
49187	s.Things = v
49188	return s
49189}
49190
49191type ListTopicRuleDestinationsInput struct {
49192	_ struct{} `type:"structure"`
49193
49194	// The maximum number of results to return at one time.
49195	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
49196
49197	// To retrieve the next set of results, the nextToken value from a previous
49198	// response; otherwise null to receive the first set of results.
49199	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
49200}
49201
49202// String returns the string representation
49203func (s ListTopicRuleDestinationsInput) String() string {
49204	return awsutil.Prettify(s)
49205}
49206
49207// GoString returns the string representation
49208func (s ListTopicRuleDestinationsInput) GoString() string {
49209	return s.String()
49210}
49211
49212// Validate inspects the fields of the type to determine if they are valid.
49213func (s *ListTopicRuleDestinationsInput) Validate() error {
49214	invalidParams := request.ErrInvalidParams{Context: "ListTopicRuleDestinationsInput"}
49215	if s.MaxResults != nil && *s.MaxResults < 1 {
49216		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49217	}
49218
49219	if invalidParams.Len() > 0 {
49220		return invalidParams
49221	}
49222	return nil
49223}
49224
49225// SetMaxResults sets the MaxResults field's value.
49226func (s *ListTopicRuleDestinationsInput) SetMaxResults(v int64) *ListTopicRuleDestinationsInput {
49227	s.MaxResults = &v
49228	return s
49229}
49230
49231// SetNextToken sets the NextToken field's value.
49232func (s *ListTopicRuleDestinationsInput) SetNextToken(v string) *ListTopicRuleDestinationsInput {
49233	s.NextToken = &v
49234	return s
49235}
49236
49237type ListTopicRuleDestinationsOutput struct {
49238	_ struct{} `type:"structure"`
49239
49240	// Information about a topic rule destination.
49241	DestinationSummaries []*TopicRuleDestinationSummary `locationName:"destinationSummaries" type:"list"`
49242
49243	// The token to use to get the next set of results, or null if there are no
49244	// additional results.
49245	NextToken *string `locationName:"nextToken" type:"string"`
49246}
49247
49248// String returns the string representation
49249func (s ListTopicRuleDestinationsOutput) String() string {
49250	return awsutil.Prettify(s)
49251}
49252
49253// GoString returns the string representation
49254func (s ListTopicRuleDestinationsOutput) GoString() string {
49255	return s.String()
49256}
49257
49258// SetDestinationSummaries sets the DestinationSummaries field's value.
49259func (s *ListTopicRuleDestinationsOutput) SetDestinationSummaries(v []*TopicRuleDestinationSummary) *ListTopicRuleDestinationsOutput {
49260	s.DestinationSummaries = v
49261	return s
49262}
49263
49264// SetNextToken sets the NextToken field's value.
49265func (s *ListTopicRuleDestinationsOutput) SetNextToken(v string) *ListTopicRuleDestinationsOutput {
49266	s.NextToken = &v
49267	return s
49268}
49269
49270// The input for the ListTopicRules operation.
49271type ListTopicRulesInput struct {
49272	_ struct{} `type:"structure"`
49273
49274	// The maximum number of results to return.
49275	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
49276
49277	// To retrieve the next set of results, the nextToken value from a previous
49278	// response; otherwise null to receive the first set of results.
49279	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
49280
49281	// Specifies whether the rule is disabled.
49282	RuleDisabled *bool `location:"querystring" locationName:"ruleDisabled" type:"boolean"`
49283
49284	// The topic.
49285	Topic *string `location:"querystring" locationName:"topic" type:"string"`
49286}
49287
49288// String returns the string representation
49289func (s ListTopicRulesInput) String() string {
49290	return awsutil.Prettify(s)
49291}
49292
49293// GoString returns the string representation
49294func (s ListTopicRulesInput) GoString() string {
49295	return s.String()
49296}
49297
49298// Validate inspects the fields of the type to determine if they are valid.
49299func (s *ListTopicRulesInput) Validate() error {
49300	invalidParams := request.ErrInvalidParams{Context: "ListTopicRulesInput"}
49301	if s.MaxResults != nil && *s.MaxResults < 1 {
49302		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49303	}
49304
49305	if invalidParams.Len() > 0 {
49306		return invalidParams
49307	}
49308	return nil
49309}
49310
49311// SetMaxResults sets the MaxResults field's value.
49312func (s *ListTopicRulesInput) SetMaxResults(v int64) *ListTopicRulesInput {
49313	s.MaxResults = &v
49314	return s
49315}
49316
49317// SetNextToken sets the NextToken field's value.
49318func (s *ListTopicRulesInput) SetNextToken(v string) *ListTopicRulesInput {
49319	s.NextToken = &v
49320	return s
49321}
49322
49323// SetRuleDisabled sets the RuleDisabled field's value.
49324func (s *ListTopicRulesInput) SetRuleDisabled(v bool) *ListTopicRulesInput {
49325	s.RuleDisabled = &v
49326	return s
49327}
49328
49329// SetTopic sets the Topic field's value.
49330func (s *ListTopicRulesInput) SetTopic(v string) *ListTopicRulesInput {
49331	s.Topic = &v
49332	return s
49333}
49334
49335// The output from the ListTopicRules operation.
49336type ListTopicRulesOutput struct {
49337	_ struct{} `type:"structure"`
49338
49339	// The token to use to get the next set of results, or null if there are no
49340	// additional results.
49341	NextToken *string `locationName:"nextToken" type:"string"`
49342
49343	// The rules.
49344	Rules []*TopicRuleListItem `locationName:"rules" type:"list"`
49345}
49346
49347// String returns the string representation
49348func (s ListTopicRulesOutput) String() string {
49349	return awsutil.Prettify(s)
49350}
49351
49352// GoString returns the string representation
49353func (s ListTopicRulesOutput) GoString() string {
49354	return s.String()
49355}
49356
49357// SetNextToken sets the NextToken field's value.
49358func (s *ListTopicRulesOutput) SetNextToken(v string) *ListTopicRulesOutput {
49359	s.NextToken = &v
49360	return s
49361}
49362
49363// SetRules sets the Rules field's value.
49364func (s *ListTopicRulesOutput) SetRules(v []*TopicRuleListItem) *ListTopicRulesOutput {
49365	s.Rules = v
49366	return s
49367}
49368
49369type ListV2LoggingLevelsInput struct {
49370	_ struct{} `type:"structure"`
49371
49372	// The maximum number of results to return at one time.
49373	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
49374
49375	// To retrieve the next set of results, the nextToken value from a previous
49376	// response; otherwise null to receive the first set of results.
49377	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
49378
49379	// The type of resource for which you are configuring logging. Must be THING_Group.
49380	TargetType *string `location:"querystring" locationName:"targetType" type:"string" enum:"LogTargetType"`
49381}
49382
49383// String returns the string representation
49384func (s ListV2LoggingLevelsInput) String() string {
49385	return awsutil.Prettify(s)
49386}
49387
49388// GoString returns the string representation
49389func (s ListV2LoggingLevelsInput) GoString() string {
49390	return s.String()
49391}
49392
49393// Validate inspects the fields of the type to determine if they are valid.
49394func (s *ListV2LoggingLevelsInput) Validate() error {
49395	invalidParams := request.ErrInvalidParams{Context: "ListV2LoggingLevelsInput"}
49396	if s.MaxResults != nil && *s.MaxResults < 1 {
49397		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49398	}
49399
49400	if invalidParams.Len() > 0 {
49401		return invalidParams
49402	}
49403	return nil
49404}
49405
49406// SetMaxResults sets the MaxResults field's value.
49407func (s *ListV2LoggingLevelsInput) SetMaxResults(v int64) *ListV2LoggingLevelsInput {
49408	s.MaxResults = &v
49409	return s
49410}
49411
49412// SetNextToken sets the NextToken field's value.
49413func (s *ListV2LoggingLevelsInput) SetNextToken(v string) *ListV2LoggingLevelsInput {
49414	s.NextToken = &v
49415	return s
49416}
49417
49418// SetTargetType sets the TargetType field's value.
49419func (s *ListV2LoggingLevelsInput) SetTargetType(v string) *ListV2LoggingLevelsInput {
49420	s.TargetType = &v
49421	return s
49422}
49423
49424type ListV2LoggingLevelsOutput struct {
49425	_ struct{} `type:"structure"`
49426
49427	// The logging configuration for a target.
49428	LogTargetConfigurations []*LogTargetConfiguration `locationName:"logTargetConfigurations" type:"list"`
49429
49430	// The token to use to get the next set of results, or null if there are no
49431	// additional results.
49432	NextToken *string `locationName:"nextToken" type:"string"`
49433}
49434
49435// String returns the string representation
49436func (s ListV2LoggingLevelsOutput) String() string {
49437	return awsutil.Prettify(s)
49438}
49439
49440// GoString returns the string representation
49441func (s ListV2LoggingLevelsOutput) GoString() string {
49442	return s.String()
49443}
49444
49445// SetLogTargetConfigurations sets the LogTargetConfigurations field's value.
49446func (s *ListV2LoggingLevelsOutput) SetLogTargetConfigurations(v []*LogTargetConfiguration) *ListV2LoggingLevelsOutput {
49447	s.LogTargetConfigurations = v
49448	return s
49449}
49450
49451// SetNextToken sets the NextToken field's value.
49452func (s *ListV2LoggingLevelsOutput) SetNextToken(v string) *ListV2LoggingLevelsOutput {
49453	s.NextToken = &v
49454	return s
49455}
49456
49457type ListViolationEventsInput struct {
49458	_ struct{} `type:"structure"`
49459
49460	// The criteria for a behavior.
49461	BehaviorCriteriaType *string `location:"querystring" locationName:"behaviorCriteriaType" type:"string" enum:"BehaviorCriteriaType"`
49462
49463	// The end time for the alerts to be listed.
49464	//
49465	// EndTime is a required field
49466	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
49467
49468	// A list of all suppressed alerts.
49469	ListSuppressedAlerts *bool `location:"querystring" locationName:"listSuppressedAlerts" type:"boolean"`
49470
49471	// The maximum number of results to return at one time.
49472	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
49473
49474	// The token for the next set of results.
49475	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
49476
49477	// A filter to limit results to those alerts generated by the specified security
49478	// profile.
49479	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
49480
49481	// The start time for the alerts to be listed.
49482	//
49483	// StartTime is a required field
49484	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
49485
49486	// A filter to limit results to those alerts caused by the specified thing.
49487	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
49488}
49489
49490// String returns the string representation
49491func (s ListViolationEventsInput) String() string {
49492	return awsutil.Prettify(s)
49493}
49494
49495// GoString returns the string representation
49496func (s ListViolationEventsInput) GoString() string {
49497	return s.String()
49498}
49499
49500// Validate inspects the fields of the type to determine if they are valid.
49501func (s *ListViolationEventsInput) Validate() error {
49502	invalidParams := request.ErrInvalidParams{Context: "ListViolationEventsInput"}
49503	if s.EndTime == nil {
49504		invalidParams.Add(request.NewErrParamRequired("EndTime"))
49505	}
49506	if s.MaxResults != nil && *s.MaxResults < 1 {
49507		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49508	}
49509	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
49510		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
49511	}
49512	if s.StartTime == nil {
49513		invalidParams.Add(request.NewErrParamRequired("StartTime"))
49514	}
49515	if s.ThingName != nil && len(*s.ThingName) < 1 {
49516		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
49517	}
49518
49519	if invalidParams.Len() > 0 {
49520		return invalidParams
49521	}
49522	return nil
49523}
49524
49525// SetBehaviorCriteriaType sets the BehaviorCriteriaType field's value.
49526func (s *ListViolationEventsInput) SetBehaviorCriteriaType(v string) *ListViolationEventsInput {
49527	s.BehaviorCriteriaType = &v
49528	return s
49529}
49530
49531// SetEndTime sets the EndTime field's value.
49532func (s *ListViolationEventsInput) SetEndTime(v time.Time) *ListViolationEventsInput {
49533	s.EndTime = &v
49534	return s
49535}
49536
49537// SetListSuppressedAlerts sets the ListSuppressedAlerts field's value.
49538func (s *ListViolationEventsInput) SetListSuppressedAlerts(v bool) *ListViolationEventsInput {
49539	s.ListSuppressedAlerts = &v
49540	return s
49541}
49542
49543// SetMaxResults sets the MaxResults field's value.
49544func (s *ListViolationEventsInput) SetMaxResults(v int64) *ListViolationEventsInput {
49545	s.MaxResults = &v
49546	return s
49547}
49548
49549// SetNextToken sets the NextToken field's value.
49550func (s *ListViolationEventsInput) SetNextToken(v string) *ListViolationEventsInput {
49551	s.NextToken = &v
49552	return s
49553}
49554
49555// SetSecurityProfileName sets the SecurityProfileName field's value.
49556func (s *ListViolationEventsInput) SetSecurityProfileName(v string) *ListViolationEventsInput {
49557	s.SecurityProfileName = &v
49558	return s
49559}
49560
49561// SetStartTime sets the StartTime field's value.
49562func (s *ListViolationEventsInput) SetStartTime(v time.Time) *ListViolationEventsInput {
49563	s.StartTime = &v
49564	return s
49565}
49566
49567// SetThingName sets the ThingName field's value.
49568func (s *ListViolationEventsInput) SetThingName(v string) *ListViolationEventsInput {
49569	s.ThingName = &v
49570	return s
49571}
49572
49573type ListViolationEventsOutput struct {
49574	_ struct{} `type:"structure"`
49575
49576	// A token that can be used to retrieve the next set of results, or null if
49577	// there are no additional results.
49578	NextToken *string `locationName:"nextToken" type:"string"`
49579
49580	// The security profile violation alerts issued for this account during the
49581	// given time period, potentially filtered by security profile, behavior violated,
49582	// or thing (device) violating.
49583	ViolationEvents []*ViolationEvent `locationName:"violationEvents" type:"list"`
49584}
49585
49586// String returns the string representation
49587func (s ListViolationEventsOutput) String() string {
49588	return awsutil.Prettify(s)
49589}
49590
49591// GoString returns the string representation
49592func (s ListViolationEventsOutput) GoString() string {
49593	return s.String()
49594}
49595
49596// SetNextToken sets the NextToken field's value.
49597func (s *ListViolationEventsOutput) SetNextToken(v string) *ListViolationEventsOutput {
49598	s.NextToken = &v
49599	return s
49600}
49601
49602// SetViolationEvents sets the ViolationEvents field's value.
49603func (s *ListViolationEventsOutput) SetViolationEvents(v []*ViolationEvent) *ListViolationEventsOutput {
49604	s.ViolationEvents = v
49605	return s
49606}
49607
49608// A log target.
49609type LogTarget struct {
49610	_ struct{} `type:"structure"`
49611
49612	// The target name.
49613	TargetName *string `locationName:"targetName" type:"string"`
49614
49615	// The target type.
49616	//
49617	// TargetType is a required field
49618	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
49619}
49620
49621// String returns the string representation
49622func (s LogTarget) String() string {
49623	return awsutil.Prettify(s)
49624}
49625
49626// GoString returns the string representation
49627func (s LogTarget) GoString() string {
49628	return s.String()
49629}
49630
49631// Validate inspects the fields of the type to determine if they are valid.
49632func (s *LogTarget) Validate() error {
49633	invalidParams := request.ErrInvalidParams{Context: "LogTarget"}
49634	if s.TargetType == nil {
49635		invalidParams.Add(request.NewErrParamRequired("TargetType"))
49636	}
49637
49638	if invalidParams.Len() > 0 {
49639		return invalidParams
49640	}
49641	return nil
49642}
49643
49644// SetTargetName sets the TargetName field's value.
49645func (s *LogTarget) SetTargetName(v string) *LogTarget {
49646	s.TargetName = &v
49647	return s
49648}
49649
49650// SetTargetType sets the TargetType field's value.
49651func (s *LogTarget) SetTargetType(v string) *LogTarget {
49652	s.TargetType = &v
49653	return s
49654}
49655
49656// The target configuration.
49657type LogTargetConfiguration struct {
49658	_ struct{} `type:"structure"`
49659
49660	// The logging level.
49661	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
49662
49663	// A log target
49664	LogTarget *LogTarget `locationName:"logTarget" type:"structure"`
49665}
49666
49667// String returns the string representation
49668func (s LogTargetConfiguration) String() string {
49669	return awsutil.Prettify(s)
49670}
49671
49672// GoString returns the string representation
49673func (s LogTargetConfiguration) GoString() string {
49674	return s.String()
49675}
49676
49677// SetLogLevel sets the LogLevel field's value.
49678func (s *LogTargetConfiguration) SetLogLevel(v string) *LogTargetConfiguration {
49679	s.LogLevel = &v
49680	return s
49681}
49682
49683// SetLogTarget sets the LogTarget field's value.
49684func (s *LogTargetConfiguration) SetLogTarget(v *LogTarget) *LogTargetConfiguration {
49685	s.LogTarget = v
49686	return s
49687}
49688
49689// Describes the logging options payload.
49690type LoggingOptionsPayload struct {
49691	_ struct{} `type:"structure"`
49692
49693	// The log level.
49694	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
49695
49696	// The ARN of the IAM role that grants access.
49697	//
49698	// RoleArn is a required field
49699	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
49700}
49701
49702// String returns the string representation
49703func (s LoggingOptionsPayload) String() string {
49704	return awsutil.Prettify(s)
49705}
49706
49707// GoString returns the string representation
49708func (s LoggingOptionsPayload) GoString() string {
49709	return s.String()
49710}
49711
49712// Validate inspects the fields of the type to determine if they are valid.
49713func (s *LoggingOptionsPayload) Validate() error {
49714	invalidParams := request.ErrInvalidParams{Context: "LoggingOptionsPayload"}
49715	if s.RoleArn == nil {
49716		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
49717	}
49718
49719	if invalidParams.Len() > 0 {
49720		return invalidParams
49721	}
49722	return nil
49723}
49724
49725// SetLogLevel sets the LogLevel field's value.
49726func (s *LoggingOptionsPayload) SetLogLevel(v string) *LoggingOptionsPayload {
49727	s.LogLevel = &v
49728	return s
49729}
49730
49731// SetRoleArn sets the RoleArn field's value.
49732func (s *LoggingOptionsPayload) SetRoleArn(v string) *LoggingOptionsPayload {
49733	s.RoleArn = &v
49734	return s
49735}
49736
49737// The configuration of an ML Detect Security Profile.
49738type MachineLearningDetectionConfig struct {
49739	_ struct{} `type:"structure"`
49740
49741	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or
49742	// High.
49743	//
49744	// ConfidenceLevel is a required field
49745	ConfidenceLevel *string `locationName:"confidenceLevel" type:"string" required:"true" enum:"ConfidenceLevel"`
49746}
49747
49748// String returns the string representation
49749func (s MachineLearningDetectionConfig) String() string {
49750	return awsutil.Prettify(s)
49751}
49752
49753// GoString returns the string representation
49754func (s MachineLearningDetectionConfig) GoString() string {
49755	return s.String()
49756}
49757
49758// Validate inspects the fields of the type to determine if they are valid.
49759func (s *MachineLearningDetectionConfig) Validate() error {
49760	invalidParams := request.ErrInvalidParams{Context: "MachineLearningDetectionConfig"}
49761	if s.ConfidenceLevel == nil {
49762		invalidParams.Add(request.NewErrParamRequired("ConfidenceLevel"))
49763	}
49764
49765	if invalidParams.Len() > 0 {
49766		return invalidParams
49767	}
49768	return nil
49769}
49770
49771// SetConfidenceLevel sets the ConfidenceLevel field's value.
49772func (s *MachineLearningDetectionConfig) SetConfidenceLevel(v string) *MachineLearningDetectionConfig {
49773	s.ConfidenceLevel = &v
49774	return s
49775}
49776
49777// The policy documentation is not valid.
49778type MalformedPolicyException struct {
49779	_            struct{}                  `type:"structure"`
49780	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
49781
49782	// The message for the exception.
49783	Message_ *string `locationName:"message" type:"string"`
49784}
49785
49786// String returns the string representation
49787func (s MalformedPolicyException) String() string {
49788	return awsutil.Prettify(s)
49789}
49790
49791// GoString returns the string representation
49792func (s MalformedPolicyException) GoString() string {
49793	return s.String()
49794}
49795
49796func newErrorMalformedPolicyException(v protocol.ResponseMetadata) error {
49797	return &MalformedPolicyException{
49798		RespMetadata: v,
49799	}
49800}
49801
49802// Code returns the exception type name.
49803func (s *MalformedPolicyException) Code() string {
49804	return "MalformedPolicyException"
49805}
49806
49807// Message returns the exception's message.
49808func (s *MalformedPolicyException) Message() string {
49809	if s.Message_ != nil {
49810		return *s.Message_
49811	}
49812	return ""
49813}
49814
49815// OrigErr always returns nil, satisfies awserr.Error interface.
49816func (s *MalformedPolicyException) OrigErr() error {
49817	return nil
49818}
49819
49820func (s *MalformedPolicyException) Error() string {
49821	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
49822}
49823
49824// Status code returns the HTTP status code for the request's response error.
49825func (s *MalformedPolicyException) StatusCode() int {
49826	return s.RespMetadata.StatusCode
49827}
49828
49829// RequestID returns the service's response RequestID for request.
49830func (s *MalformedPolicyException) RequestID() string {
49831	return s.RespMetadata.RequestID
49832}
49833
49834// The dimension of a metric.
49835type MetricDimension struct {
49836	_ struct{} `type:"structure"`
49837
49838	// A unique identifier for the dimension.
49839	//
49840	// DimensionName is a required field
49841	DimensionName *string `locationName:"dimensionName" min:"1" type:"string" required:"true"`
49842
49843	// Defines how the dimensionValues of a dimension are interpreted. For example,
49844	// for dimension type TOPIC_FILTER, the IN operator, a message will be counted
49845	// only if its topic matches one of the topic filters. With NOT_IN operator,
49846	// a message will be counted only if it doesn't match any of the topic filters.
49847	// The operator is optional: if it's not provided (is null), it will be interpreted
49848	// as IN.
49849	Operator *string `locationName:"operator" type:"string" enum:"DimensionValueOperator"`
49850}
49851
49852// String returns the string representation
49853func (s MetricDimension) String() string {
49854	return awsutil.Prettify(s)
49855}
49856
49857// GoString returns the string representation
49858func (s MetricDimension) GoString() string {
49859	return s.String()
49860}
49861
49862// Validate inspects the fields of the type to determine if they are valid.
49863func (s *MetricDimension) Validate() error {
49864	invalidParams := request.ErrInvalidParams{Context: "MetricDimension"}
49865	if s.DimensionName == nil {
49866		invalidParams.Add(request.NewErrParamRequired("DimensionName"))
49867	}
49868	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
49869		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
49870	}
49871
49872	if invalidParams.Len() > 0 {
49873		return invalidParams
49874	}
49875	return nil
49876}
49877
49878// SetDimensionName sets the DimensionName field's value.
49879func (s *MetricDimension) SetDimensionName(v string) *MetricDimension {
49880	s.DimensionName = &v
49881	return s
49882}
49883
49884// SetOperator sets the Operator field's value.
49885func (s *MetricDimension) SetOperator(v string) *MetricDimension {
49886	s.Operator = &v
49887	return s
49888}
49889
49890// The metric you want to retain. Dimensions are optional.
49891type MetricToRetain struct {
49892	_ struct{} `type:"structure"`
49893
49894	// What is measured by the behavior.
49895	//
49896	// Metric is a required field
49897	Metric *string `locationName:"metric" type:"string" required:"true"`
49898
49899	// The dimension of a metric. This can't be used with custom metrics.
49900	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
49901}
49902
49903// String returns the string representation
49904func (s MetricToRetain) String() string {
49905	return awsutil.Prettify(s)
49906}
49907
49908// GoString returns the string representation
49909func (s MetricToRetain) GoString() string {
49910	return s.String()
49911}
49912
49913// Validate inspects the fields of the type to determine if they are valid.
49914func (s *MetricToRetain) Validate() error {
49915	invalidParams := request.ErrInvalidParams{Context: "MetricToRetain"}
49916	if s.Metric == nil {
49917		invalidParams.Add(request.NewErrParamRequired("Metric"))
49918	}
49919	if s.MetricDimension != nil {
49920		if err := s.MetricDimension.Validate(); err != nil {
49921			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
49922		}
49923	}
49924
49925	if invalidParams.Len() > 0 {
49926		return invalidParams
49927	}
49928	return nil
49929}
49930
49931// SetMetric sets the Metric field's value.
49932func (s *MetricToRetain) SetMetric(v string) *MetricToRetain {
49933	s.Metric = &v
49934	return s
49935}
49936
49937// SetMetricDimension sets the MetricDimension field's value.
49938func (s *MetricToRetain) SetMetricDimension(v *MetricDimension) *MetricToRetain {
49939	s.MetricDimension = v
49940	return s
49941}
49942
49943// The value to be compared with the metric.
49944type MetricValue struct {
49945	_ struct{} `type:"structure"`
49946
49947	// If the comparisonOperator calls for a set of CIDRs, use this to specify that
49948	// set to be compared with the metric.
49949	Cidrs []*string `locationName:"cidrs" type:"list"`
49950
49951	// If the comparisonOperator calls for a numeric value, use this to specify
49952	// that numeric value to be compared with the metric.
49953	Count *int64 `locationName:"count" type:"long"`
49954
49955	// The numeral value of a metric.
49956	Number *float64 `locationName:"number" type:"double"`
49957
49958	// The numeral values of a metric.
49959	Numbers []*float64 `locationName:"numbers" type:"list"`
49960
49961	// If the comparisonOperator calls for a set of ports, use this to specify that
49962	// set to be compared with the metric.
49963	Ports []*int64 `locationName:"ports" type:"list"`
49964
49965	// The string values of a metric.
49966	Strings []*string `locationName:"strings" type:"list"`
49967}
49968
49969// String returns the string representation
49970func (s MetricValue) String() string {
49971	return awsutil.Prettify(s)
49972}
49973
49974// GoString returns the string representation
49975func (s MetricValue) GoString() string {
49976	return s.String()
49977}
49978
49979// SetCidrs sets the Cidrs field's value.
49980func (s *MetricValue) SetCidrs(v []*string) *MetricValue {
49981	s.Cidrs = v
49982	return s
49983}
49984
49985// SetCount sets the Count field's value.
49986func (s *MetricValue) SetCount(v int64) *MetricValue {
49987	s.Count = &v
49988	return s
49989}
49990
49991// SetNumber sets the Number field's value.
49992func (s *MetricValue) SetNumber(v float64) *MetricValue {
49993	s.Number = &v
49994	return s
49995}
49996
49997// SetNumbers sets the Numbers field's value.
49998func (s *MetricValue) SetNumbers(v []*float64) *MetricValue {
49999	s.Numbers = v
50000	return s
50001}
50002
50003// SetPorts sets the Ports field's value.
50004func (s *MetricValue) SetPorts(v []*int64) *MetricValue {
50005	s.Ports = v
50006	return s
50007}
50008
50009// SetStrings sets the Strings field's value.
50010func (s *MetricValue) SetStrings(v []*string) *MetricValue {
50011	s.Strings = v
50012	return s
50013}
50014
50015// Describes which changes should be applied as part of a mitigation action.
50016type MitigationAction struct {
50017	_ struct{} `type:"structure"`
50018
50019	// The set of parameters for this mitigation action. The parameters vary, depending
50020	// on the kind of action you apply.
50021	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
50022
50023	// A unique identifier for the mitigation action.
50024	Id *string `locationName:"id" type:"string"`
50025
50026	// A user-friendly name for the mitigation action.
50027	Name *string `locationName:"name" type:"string"`
50028
50029	// The IAM role ARN used to apply this mitigation action.
50030	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
50031}
50032
50033// String returns the string representation
50034func (s MitigationAction) String() string {
50035	return awsutil.Prettify(s)
50036}
50037
50038// GoString returns the string representation
50039func (s MitigationAction) GoString() string {
50040	return s.String()
50041}
50042
50043// SetActionParams sets the ActionParams field's value.
50044func (s *MitigationAction) SetActionParams(v *MitigationActionParams) *MitigationAction {
50045	s.ActionParams = v
50046	return s
50047}
50048
50049// SetId sets the Id field's value.
50050func (s *MitigationAction) SetId(v string) *MitigationAction {
50051	s.Id = &v
50052	return s
50053}
50054
50055// SetName sets the Name field's value.
50056func (s *MitigationAction) SetName(v string) *MitigationAction {
50057	s.Name = &v
50058	return s
50059}
50060
50061// SetRoleArn sets the RoleArn field's value.
50062func (s *MitigationAction) SetRoleArn(v string) *MitigationAction {
50063	s.RoleArn = &v
50064	return s
50065}
50066
50067// Information that identifies a mitigation action. This information is returned
50068// by ListMitigationActions.
50069type MitigationActionIdentifier struct {
50070	_ struct{} `type:"structure"`
50071
50072	// The IAM role ARN used to apply this mitigation action.
50073	ActionArn *string `locationName:"actionArn" type:"string"`
50074
50075	// The friendly name of the mitigation action.
50076	ActionName *string `locationName:"actionName" type:"string"`
50077
50078	// The date when this mitigation action was created.
50079	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
50080}
50081
50082// String returns the string representation
50083func (s MitigationActionIdentifier) String() string {
50084	return awsutil.Prettify(s)
50085}
50086
50087// GoString returns the string representation
50088func (s MitigationActionIdentifier) GoString() string {
50089	return s.String()
50090}
50091
50092// SetActionArn sets the ActionArn field's value.
50093func (s *MitigationActionIdentifier) SetActionArn(v string) *MitigationActionIdentifier {
50094	s.ActionArn = &v
50095	return s
50096}
50097
50098// SetActionName sets the ActionName field's value.
50099func (s *MitigationActionIdentifier) SetActionName(v string) *MitigationActionIdentifier {
50100	s.ActionName = &v
50101	return s
50102}
50103
50104// SetCreationDate sets the CreationDate field's value.
50105func (s *MitigationActionIdentifier) SetCreationDate(v time.Time) *MitigationActionIdentifier {
50106	s.CreationDate = &v
50107	return s
50108}
50109
50110// The set of parameters for this mitigation action. You can specify only one
50111// type of parameter (in other words, you can apply only one action for each
50112// defined mitigation action).
50113type MitigationActionParams struct {
50114	_ struct{} `type:"structure"`
50115
50116	// Parameters to define a mitigation action that moves devices associated with
50117	// a certificate to one or more specified thing groups, typically for quarantine.
50118	AddThingsToThingGroupParams *AddThingsToThingGroupParams `locationName:"addThingsToThingGroupParams" type:"structure"`
50119
50120	// Parameters to define a mitigation action that enables Amazon Web Services
50121	// IoT Core logging at a specified level of detail.
50122	EnableIoTLoggingParams *EnableIoTLoggingParams `locationName:"enableIoTLoggingParams" type:"structure"`
50123
50124	// Parameters to define a mitigation action that publishes findings to Amazon
50125	// Simple Notification Service (Amazon SNS. You can implement your own custom
50126	// actions in response to the Amazon SNS messages.
50127	PublishFindingToSnsParams *PublishFindingToSnsParams `locationName:"publishFindingToSnsParams" type:"structure"`
50128
50129	// Parameters to define a mitigation action that adds a blank policy to restrict
50130	// permissions.
50131	ReplaceDefaultPolicyVersionParams *ReplaceDefaultPolicyVersionParams `locationName:"replaceDefaultPolicyVersionParams" type:"structure"`
50132
50133	// Parameters to define a mitigation action that changes the state of the CA
50134	// certificate to inactive.
50135	UpdateCACertificateParams *UpdateCACertificateParams `locationName:"updateCACertificateParams" type:"structure"`
50136
50137	// Parameters to define a mitigation action that changes the state of the device
50138	// certificate to inactive.
50139	UpdateDeviceCertificateParams *UpdateDeviceCertificateParams `locationName:"updateDeviceCertificateParams" type:"structure"`
50140}
50141
50142// String returns the string representation
50143func (s MitigationActionParams) String() string {
50144	return awsutil.Prettify(s)
50145}
50146
50147// GoString returns the string representation
50148func (s MitigationActionParams) GoString() string {
50149	return s.String()
50150}
50151
50152// Validate inspects the fields of the type to determine if they are valid.
50153func (s *MitigationActionParams) Validate() error {
50154	invalidParams := request.ErrInvalidParams{Context: "MitigationActionParams"}
50155	if s.AddThingsToThingGroupParams != nil {
50156		if err := s.AddThingsToThingGroupParams.Validate(); err != nil {
50157			invalidParams.AddNested("AddThingsToThingGroupParams", err.(request.ErrInvalidParams))
50158		}
50159	}
50160	if s.EnableIoTLoggingParams != nil {
50161		if err := s.EnableIoTLoggingParams.Validate(); err != nil {
50162			invalidParams.AddNested("EnableIoTLoggingParams", err.(request.ErrInvalidParams))
50163		}
50164	}
50165	if s.PublishFindingToSnsParams != nil {
50166		if err := s.PublishFindingToSnsParams.Validate(); err != nil {
50167			invalidParams.AddNested("PublishFindingToSnsParams", err.(request.ErrInvalidParams))
50168		}
50169	}
50170	if s.ReplaceDefaultPolicyVersionParams != nil {
50171		if err := s.ReplaceDefaultPolicyVersionParams.Validate(); err != nil {
50172			invalidParams.AddNested("ReplaceDefaultPolicyVersionParams", err.(request.ErrInvalidParams))
50173		}
50174	}
50175	if s.UpdateCACertificateParams != nil {
50176		if err := s.UpdateCACertificateParams.Validate(); err != nil {
50177			invalidParams.AddNested("UpdateCACertificateParams", err.(request.ErrInvalidParams))
50178		}
50179	}
50180	if s.UpdateDeviceCertificateParams != nil {
50181		if err := s.UpdateDeviceCertificateParams.Validate(); err != nil {
50182			invalidParams.AddNested("UpdateDeviceCertificateParams", err.(request.ErrInvalidParams))
50183		}
50184	}
50185
50186	if invalidParams.Len() > 0 {
50187		return invalidParams
50188	}
50189	return nil
50190}
50191
50192// SetAddThingsToThingGroupParams sets the AddThingsToThingGroupParams field's value.
50193func (s *MitigationActionParams) SetAddThingsToThingGroupParams(v *AddThingsToThingGroupParams) *MitigationActionParams {
50194	s.AddThingsToThingGroupParams = v
50195	return s
50196}
50197
50198// SetEnableIoTLoggingParams sets the EnableIoTLoggingParams field's value.
50199func (s *MitigationActionParams) SetEnableIoTLoggingParams(v *EnableIoTLoggingParams) *MitigationActionParams {
50200	s.EnableIoTLoggingParams = v
50201	return s
50202}
50203
50204// SetPublishFindingToSnsParams sets the PublishFindingToSnsParams field's value.
50205func (s *MitigationActionParams) SetPublishFindingToSnsParams(v *PublishFindingToSnsParams) *MitigationActionParams {
50206	s.PublishFindingToSnsParams = v
50207	return s
50208}
50209
50210// SetReplaceDefaultPolicyVersionParams sets the ReplaceDefaultPolicyVersionParams field's value.
50211func (s *MitigationActionParams) SetReplaceDefaultPolicyVersionParams(v *ReplaceDefaultPolicyVersionParams) *MitigationActionParams {
50212	s.ReplaceDefaultPolicyVersionParams = v
50213	return s
50214}
50215
50216// SetUpdateCACertificateParams sets the UpdateCACertificateParams field's value.
50217func (s *MitigationActionParams) SetUpdateCACertificateParams(v *UpdateCACertificateParams) *MitigationActionParams {
50218	s.UpdateCACertificateParams = v
50219	return s
50220}
50221
50222// SetUpdateDeviceCertificateParams sets the UpdateDeviceCertificateParams field's value.
50223func (s *MitigationActionParams) SetUpdateDeviceCertificateParams(v *UpdateDeviceCertificateParams) *MitigationActionParams {
50224	s.UpdateDeviceCertificateParams = v
50225	return s
50226}
50227
50228// Specifies the MQTT context to use for the test authorizer request
50229type MqttContext struct {
50230	_ struct{} `type:"structure"`
50231
50232	// The value of the clientId key in an MQTT authorization request.
50233	ClientId *string `locationName:"clientId" min:"1" type:"string"`
50234
50235	// The value of the password key in an MQTT authorization request.
50236	//
50237	// Password is automatically base64 encoded/decoded by the SDK.
50238	Password []byte `locationName:"password" min:"1" type:"blob"`
50239
50240	// The value of the username key in an MQTT authorization request.
50241	Username *string `locationName:"username" min:"1" type:"string"`
50242}
50243
50244// String returns the string representation
50245func (s MqttContext) String() string {
50246	return awsutil.Prettify(s)
50247}
50248
50249// GoString returns the string representation
50250func (s MqttContext) GoString() string {
50251	return s.String()
50252}
50253
50254// Validate inspects the fields of the type to determine if they are valid.
50255func (s *MqttContext) Validate() error {
50256	invalidParams := request.ErrInvalidParams{Context: "MqttContext"}
50257	if s.ClientId != nil && len(*s.ClientId) < 1 {
50258		invalidParams.Add(request.NewErrParamMinLen("ClientId", 1))
50259	}
50260	if s.Password != nil && len(s.Password) < 1 {
50261		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
50262	}
50263	if s.Username != nil && len(*s.Username) < 1 {
50264		invalidParams.Add(request.NewErrParamMinLen("Username", 1))
50265	}
50266
50267	if invalidParams.Len() > 0 {
50268		return invalidParams
50269	}
50270	return nil
50271}
50272
50273// SetClientId sets the ClientId field's value.
50274func (s *MqttContext) SetClientId(v string) *MqttContext {
50275	s.ClientId = &v
50276	return s
50277}
50278
50279// SetPassword sets the Password field's value.
50280func (s *MqttContext) SetPassword(v []byte) *MqttContext {
50281	s.Password = v
50282	return s
50283}
50284
50285// SetUsername sets the Username field's value.
50286func (s *MqttContext) SetUsername(v string) *MqttContext {
50287	s.Username = &v
50288	return s
50289}
50290
50291// Information about the resource that was noncompliant with the audit check.
50292type NonCompliantResource struct {
50293	_ struct{} `type:"structure"`
50294
50295	// Other information about the noncompliant resource.
50296	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
50297
50298	// Information that identifies the noncompliant resource.
50299	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
50300
50301	// The type of the noncompliant resource.
50302	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
50303}
50304
50305// String returns the string representation
50306func (s NonCompliantResource) String() string {
50307	return awsutil.Prettify(s)
50308}
50309
50310// GoString returns the string representation
50311func (s NonCompliantResource) GoString() string {
50312	return s.String()
50313}
50314
50315// SetAdditionalInfo sets the AdditionalInfo field's value.
50316func (s *NonCompliantResource) SetAdditionalInfo(v map[string]*string) *NonCompliantResource {
50317	s.AdditionalInfo = v
50318	return s
50319}
50320
50321// SetResourceIdentifier sets the ResourceIdentifier field's value.
50322func (s *NonCompliantResource) SetResourceIdentifier(v *ResourceIdentifier) *NonCompliantResource {
50323	s.ResourceIdentifier = v
50324	return s
50325}
50326
50327// SetResourceType sets the ResourceType field's value.
50328func (s *NonCompliantResource) SetResourceType(v string) *NonCompliantResource {
50329	s.ResourceType = &v
50330	return s
50331}
50332
50333// The resource is not configured.
50334type NotConfiguredException struct {
50335	_            struct{}                  `type:"structure"`
50336	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
50337
50338	// The message for the exception.
50339	Message_ *string `locationName:"message" type:"string"`
50340}
50341
50342// String returns the string representation
50343func (s NotConfiguredException) String() string {
50344	return awsutil.Prettify(s)
50345}
50346
50347// GoString returns the string representation
50348func (s NotConfiguredException) GoString() string {
50349	return s.String()
50350}
50351
50352func newErrorNotConfiguredException(v protocol.ResponseMetadata) error {
50353	return &NotConfiguredException{
50354		RespMetadata: v,
50355	}
50356}
50357
50358// Code returns the exception type name.
50359func (s *NotConfiguredException) Code() string {
50360	return "NotConfiguredException"
50361}
50362
50363// Message returns the exception's message.
50364func (s *NotConfiguredException) Message() string {
50365	if s.Message_ != nil {
50366		return *s.Message_
50367	}
50368	return ""
50369}
50370
50371// OrigErr always returns nil, satisfies awserr.Error interface.
50372func (s *NotConfiguredException) OrigErr() error {
50373	return nil
50374}
50375
50376func (s *NotConfiguredException) Error() string {
50377	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
50378}
50379
50380// Status code returns the HTTP status code for the request's response error.
50381func (s *NotConfiguredException) StatusCode() int {
50382	return s.RespMetadata.StatusCode
50383}
50384
50385// RequestID returns the service's response RequestID for request.
50386func (s *NotConfiguredException) RequestID() string {
50387	return s.RespMetadata.RequestID
50388}
50389
50390// Describes a file to be associated with an OTA update.
50391type OTAUpdateFile struct {
50392	_ struct{} `type:"structure"`
50393
50394	// A list of name/attribute pairs.
50395	Attributes map[string]*string `locationName:"attributes" type:"map"`
50396
50397	// The code signing method of the file.
50398	CodeSigning *CodeSigning `locationName:"codeSigning" type:"structure"`
50399
50400	// The location of the updated firmware.
50401	FileLocation *FileLocation `locationName:"fileLocation" type:"structure"`
50402
50403	// The name of the file.
50404	FileName *string `locationName:"fileName" type:"string"`
50405
50406	// An integer value you can include in the job document to allow your devices
50407	// to identify the type of file received from the cloud.
50408	FileType *int64 `locationName:"fileType" type:"integer"`
50409
50410	// The file version.
50411	FileVersion *string `locationName:"fileVersion" type:"string"`
50412}
50413
50414// String returns the string representation
50415func (s OTAUpdateFile) String() string {
50416	return awsutil.Prettify(s)
50417}
50418
50419// GoString returns the string representation
50420func (s OTAUpdateFile) GoString() string {
50421	return s.String()
50422}
50423
50424// Validate inspects the fields of the type to determine if they are valid.
50425func (s *OTAUpdateFile) Validate() error {
50426	invalidParams := request.ErrInvalidParams{Context: "OTAUpdateFile"}
50427	if s.CodeSigning != nil {
50428		if err := s.CodeSigning.Validate(); err != nil {
50429			invalidParams.AddNested("CodeSigning", err.(request.ErrInvalidParams))
50430		}
50431	}
50432	if s.FileLocation != nil {
50433		if err := s.FileLocation.Validate(); err != nil {
50434			invalidParams.AddNested("FileLocation", err.(request.ErrInvalidParams))
50435		}
50436	}
50437
50438	if invalidParams.Len() > 0 {
50439		return invalidParams
50440	}
50441	return nil
50442}
50443
50444// SetAttributes sets the Attributes field's value.
50445func (s *OTAUpdateFile) SetAttributes(v map[string]*string) *OTAUpdateFile {
50446	s.Attributes = v
50447	return s
50448}
50449
50450// SetCodeSigning sets the CodeSigning field's value.
50451func (s *OTAUpdateFile) SetCodeSigning(v *CodeSigning) *OTAUpdateFile {
50452	s.CodeSigning = v
50453	return s
50454}
50455
50456// SetFileLocation sets the FileLocation field's value.
50457func (s *OTAUpdateFile) SetFileLocation(v *FileLocation) *OTAUpdateFile {
50458	s.FileLocation = v
50459	return s
50460}
50461
50462// SetFileName sets the FileName field's value.
50463func (s *OTAUpdateFile) SetFileName(v string) *OTAUpdateFile {
50464	s.FileName = &v
50465	return s
50466}
50467
50468// SetFileType sets the FileType field's value.
50469func (s *OTAUpdateFile) SetFileType(v int64) *OTAUpdateFile {
50470	s.FileType = &v
50471	return s
50472}
50473
50474// SetFileVersion sets the FileVersion field's value.
50475func (s *OTAUpdateFile) SetFileVersion(v string) *OTAUpdateFile {
50476	s.FileVersion = &v
50477	return s
50478}
50479
50480// Information about an OTA update.
50481type OTAUpdateInfo struct {
50482	_ struct{} `type:"structure"`
50483
50484	// A collection of name/value pairs
50485	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
50486
50487	// The IoT job ARN associated with the OTA update.
50488	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
50489
50490	// The IoT job ID associated with the OTA update.
50491	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
50492
50493	// Configuration for the rollout of OTA updates.
50494	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
50495
50496	// Configuration information for pre-signed URLs. Valid when protocols contains
50497	// HTTP.
50498	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
50499
50500	// The date when the OTA update was created.
50501	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
50502
50503	// A description of the OTA update.
50504	Description *string `locationName:"description" type:"string"`
50505
50506	// Error information associated with the OTA update.
50507	ErrorInfo *ErrorInfo `locationName:"errorInfo" type:"structure"`
50508
50509	// The date when the OTA update was last updated.
50510	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
50511
50512	// The OTA update ARN.
50513	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
50514
50515	// A list of files associated with the OTA update.
50516	OtaUpdateFiles []*OTAUpdateFile `locationName:"otaUpdateFiles" min:"1" type:"list"`
50517
50518	// The OTA update ID.
50519	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
50520
50521	// The status of the OTA update.
50522	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
50523
50524	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
50525	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
50526	// can choose the protocol.
50527	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
50528
50529	// Specifies whether the OTA update will continue to run (CONTINUOUS), or will
50530	// be complete after all those things specified as targets have completed the
50531	// OTA update (SNAPSHOT). If continuous, the OTA update may also be run on a
50532	// thing when a change is detected in a target. For example, an OTA update will
50533	// run on a thing when the thing is added to a target group, even after the
50534	// OTA update was completed by all things originally in the group.
50535	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
50536
50537	// The targets of the OTA update.
50538	Targets []*string `locationName:"targets" min:"1" type:"list"`
50539}
50540
50541// String returns the string representation
50542func (s OTAUpdateInfo) String() string {
50543	return awsutil.Prettify(s)
50544}
50545
50546// GoString returns the string representation
50547func (s OTAUpdateInfo) GoString() string {
50548	return s.String()
50549}
50550
50551// SetAdditionalParameters sets the AdditionalParameters field's value.
50552func (s *OTAUpdateInfo) SetAdditionalParameters(v map[string]*string) *OTAUpdateInfo {
50553	s.AdditionalParameters = v
50554	return s
50555}
50556
50557// SetAwsIotJobArn sets the AwsIotJobArn field's value.
50558func (s *OTAUpdateInfo) SetAwsIotJobArn(v string) *OTAUpdateInfo {
50559	s.AwsIotJobArn = &v
50560	return s
50561}
50562
50563// SetAwsIotJobId sets the AwsIotJobId field's value.
50564func (s *OTAUpdateInfo) SetAwsIotJobId(v string) *OTAUpdateInfo {
50565	s.AwsIotJobId = &v
50566	return s
50567}
50568
50569// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
50570func (s *OTAUpdateInfo) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *OTAUpdateInfo {
50571	s.AwsJobExecutionsRolloutConfig = v
50572	return s
50573}
50574
50575// SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
50576func (s *OTAUpdateInfo) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *OTAUpdateInfo {
50577	s.AwsJobPresignedUrlConfig = v
50578	return s
50579}
50580
50581// SetCreationDate sets the CreationDate field's value.
50582func (s *OTAUpdateInfo) SetCreationDate(v time.Time) *OTAUpdateInfo {
50583	s.CreationDate = &v
50584	return s
50585}
50586
50587// SetDescription sets the Description field's value.
50588func (s *OTAUpdateInfo) SetDescription(v string) *OTAUpdateInfo {
50589	s.Description = &v
50590	return s
50591}
50592
50593// SetErrorInfo sets the ErrorInfo field's value.
50594func (s *OTAUpdateInfo) SetErrorInfo(v *ErrorInfo) *OTAUpdateInfo {
50595	s.ErrorInfo = v
50596	return s
50597}
50598
50599// SetLastModifiedDate sets the LastModifiedDate field's value.
50600func (s *OTAUpdateInfo) SetLastModifiedDate(v time.Time) *OTAUpdateInfo {
50601	s.LastModifiedDate = &v
50602	return s
50603}
50604
50605// SetOtaUpdateArn sets the OtaUpdateArn field's value.
50606func (s *OTAUpdateInfo) SetOtaUpdateArn(v string) *OTAUpdateInfo {
50607	s.OtaUpdateArn = &v
50608	return s
50609}
50610
50611// SetOtaUpdateFiles sets the OtaUpdateFiles field's value.
50612func (s *OTAUpdateInfo) SetOtaUpdateFiles(v []*OTAUpdateFile) *OTAUpdateInfo {
50613	s.OtaUpdateFiles = v
50614	return s
50615}
50616
50617// SetOtaUpdateId sets the OtaUpdateId field's value.
50618func (s *OTAUpdateInfo) SetOtaUpdateId(v string) *OTAUpdateInfo {
50619	s.OtaUpdateId = &v
50620	return s
50621}
50622
50623// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
50624func (s *OTAUpdateInfo) SetOtaUpdateStatus(v string) *OTAUpdateInfo {
50625	s.OtaUpdateStatus = &v
50626	return s
50627}
50628
50629// SetProtocols sets the Protocols field's value.
50630func (s *OTAUpdateInfo) SetProtocols(v []*string) *OTAUpdateInfo {
50631	s.Protocols = v
50632	return s
50633}
50634
50635// SetTargetSelection sets the TargetSelection field's value.
50636func (s *OTAUpdateInfo) SetTargetSelection(v string) *OTAUpdateInfo {
50637	s.TargetSelection = &v
50638	return s
50639}
50640
50641// SetTargets sets the Targets field's value.
50642func (s *OTAUpdateInfo) SetTargets(v []*string) *OTAUpdateInfo {
50643	s.Targets = v
50644	return s
50645}
50646
50647// An OTA update summary.
50648type OTAUpdateSummary struct {
50649	_ struct{} `type:"structure"`
50650
50651	// The date when the OTA update was created.
50652	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
50653
50654	// The OTA update ARN.
50655	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
50656
50657	// The OTA update ID.
50658	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
50659}
50660
50661// String returns the string representation
50662func (s OTAUpdateSummary) String() string {
50663	return awsutil.Prettify(s)
50664}
50665
50666// GoString returns the string representation
50667func (s OTAUpdateSummary) GoString() string {
50668	return s.String()
50669}
50670
50671// SetCreationDate sets the CreationDate field's value.
50672func (s *OTAUpdateSummary) SetCreationDate(v time.Time) *OTAUpdateSummary {
50673	s.CreationDate = &v
50674	return s
50675}
50676
50677// SetOtaUpdateArn sets the OtaUpdateArn field's value.
50678func (s *OTAUpdateSummary) SetOtaUpdateArn(v string) *OTAUpdateSummary {
50679	s.OtaUpdateArn = &v
50680	return s
50681}
50682
50683// SetOtaUpdateId sets the OtaUpdateId field's value.
50684func (s *OTAUpdateSummary) SetOtaUpdateId(v string) *OTAUpdateSummary {
50685	s.OtaUpdateId = &v
50686	return s
50687}
50688
50689// A certificate that has been transferred but not yet accepted.
50690type OutgoingCertificate struct {
50691	_ struct{} `type:"structure"`
50692
50693	// The certificate ARN.
50694	CertificateArn *string `locationName:"certificateArn" type:"string"`
50695
50696	// The certificate ID.
50697	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
50698
50699	// The certificate creation date.
50700	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
50701
50702	// The date the transfer was initiated.
50703	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
50704
50705	// The transfer message.
50706	TransferMessage *string `locationName:"transferMessage" type:"string"`
50707
50708	// The Amazon Web Services account to which the transfer was made.
50709	TransferredTo *string `locationName:"transferredTo" min:"12" type:"string"`
50710}
50711
50712// String returns the string representation
50713func (s OutgoingCertificate) String() string {
50714	return awsutil.Prettify(s)
50715}
50716
50717// GoString returns the string representation
50718func (s OutgoingCertificate) GoString() string {
50719	return s.String()
50720}
50721
50722// SetCertificateArn sets the CertificateArn field's value.
50723func (s *OutgoingCertificate) SetCertificateArn(v string) *OutgoingCertificate {
50724	s.CertificateArn = &v
50725	return s
50726}
50727
50728// SetCertificateId sets the CertificateId field's value.
50729func (s *OutgoingCertificate) SetCertificateId(v string) *OutgoingCertificate {
50730	s.CertificateId = &v
50731	return s
50732}
50733
50734// SetCreationDate sets the CreationDate field's value.
50735func (s *OutgoingCertificate) SetCreationDate(v time.Time) *OutgoingCertificate {
50736	s.CreationDate = &v
50737	return s
50738}
50739
50740// SetTransferDate sets the TransferDate field's value.
50741func (s *OutgoingCertificate) SetTransferDate(v time.Time) *OutgoingCertificate {
50742	s.TransferDate = &v
50743	return s
50744}
50745
50746// SetTransferMessage sets the TransferMessage field's value.
50747func (s *OutgoingCertificate) SetTransferMessage(v string) *OutgoingCertificate {
50748	s.TransferMessage = &v
50749	return s
50750}
50751
50752// SetTransferredTo sets the TransferredTo field's value.
50753func (s *OutgoingCertificate) SetTransferredTo(v string) *OutgoingCertificate {
50754	s.TransferredTo = &v
50755	return s
50756}
50757
50758// Describes the percentile and percentile value.
50759type PercentPair struct {
50760	_ struct{} `type:"structure"`
50761
50762	// The percentile.
50763	Percent *float64 `locationName:"percent" type:"double"`
50764
50765	// The value of the percentile.
50766	Value *float64 `locationName:"value" type:"double"`
50767}
50768
50769// String returns the string representation
50770func (s PercentPair) String() string {
50771	return awsutil.Prettify(s)
50772}
50773
50774// GoString returns the string representation
50775func (s PercentPair) GoString() string {
50776	return s.String()
50777}
50778
50779// SetPercent sets the Percent field's value.
50780func (s *PercentPair) SetPercent(v float64) *PercentPair {
50781	s.Percent = &v
50782	return s
50783}
50784
50785// SetValue sets the Value field's value.
50786func (s *PercentPair) SetValue(v float64) *PercentPair {
50787	s.Value = &v
50788	return s
50789}
50790
50791// Describes an IoT policy.
50792type Policy struct {
50793	_ struct{} `type:"structure"`
50794
50795	// The policy ARN.
50796	PolicyArn *string `locationName:"policyArn" type:"string"`
50797
50798	// The policy name.
50799	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
50800}
50801
50802// String returns the string representation
50803func (s Policy) String() string {
50804	return awsutil.Prettify(s)
50805}
50806
50807// GoString returns the string representation
50808func (s Policy) GoString() string {
50809	return s.String()
50810}
50811
50812// SetPolicyArn sets the PolicyArn field's value.
50813func (s *Policy) SetPolicyArn(v string) *Policy {
50814	s.PolicyArn = &v
50815	return s
50816}
50817
50818// SetPolicyName sets the PolicyName field's value.
50819func (s *Policy) SetPolicyName(v string) *Policy {
50820	s.PolicyName = &v
50821	return s
50822}
50823
50824// Describes a policy version.
50825type PolicyVersion struct {
50826	_ struct{} `type:"structure"`
50827
50828	// The date and time the policy was created.
50829	CreateDate *time.Time `locationName:"createDate" type:"timestamp"`
50830
50831	// Specifies whether the policy version is the default.
50832	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
50833
50834	// The policy version ID.
50835	VersionId *string `locationName:"versionId" type:"string"`
50836}
50837
50838// String returns the string representation
50839func (s PolicyVersion) String() string {
50840	return awsutil.Prettify(s)
50841}
50842
50843// GoString returns the string representation
50844func (s PolicyVersion) GoString() string {
50845	return s.String()
50846}
50847
50848// SetCreateDate sets the CreateDate field's value.
50849func (s *PolicyVersion) SetCreateDate(v time.Time) *PolicyVersion {
50850	s.CreateDate = &v
50851	return s
50852}
50853
50854// SetIsDefaultVersion sets the IsDefaultVersion field's value.
50855func (s *PolicyVersion) SetIsDefaultVersion(v bool) *PolicyVersion {
50856	s.IsDefaultVersion = &v
50857	return s
50858}
50859
50860// SetVersionId sets the VersionId field's value.
50861func (s *PolicyVersion) SetVersionId(v string) *PolicyVersion {
50862	s.VersionId = &v
50863	return s
50864}
50865
50866// Information about the version of the policy associated with the resource.
50867type PolicyVersionIdentifier struct {
50868	_ struct{} `type:"structure"`
50869
50870	// The name of the policy.
50871	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
50872
50873	// The ID of the version of the policy associated with the resource.
50874	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
50875}
50876
50877// String returns the string representation
50878func (s PolicyVersionIdentifier) String() string {
50879	return awsutil.Prettify(s)
50880}
50881
50882// GoString returns the string representation
50883func (s PolicyVersionIdentifier) GoString() string {
50884	return s.String()
50885}
50886
50887// Validate inspects the fields of the type to determine if they are valid.
50888func (s *PolicyVersionIdentifier) Validate() error {
50889	invalidParams := request.ErrInvalidParams{Context: "PolicyVersionIdentifier"}
50890	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
50891		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
50892	}
50893
50894	if invalidParams.Len() > 0 {
50895		return invalidParams
50896	}
50897	return nil
50898}
50899
50900// SetPolicyName sets the PolicyName field's value.
50901func (s *PolicyVersionIdentifier) SetPolicyName(v string) *PolicyVersionIdentifier {
50902	s.PolicyName = &v
50903	return s
50904}
50905
50906// SetPolicyVersionId sets the PolicyVersionId field's value.
50907func (s *PolicyVersionIdentifier) SetPolicyVersionId(v string) *PolicyVersionIdentifier {
50908	s.PolicyVersionId = &v
50909	return s
50910}
50911
50912// Configuration for pre-signed S3 URLs.
50913type PresignedUrlConfig struct {
50914	_ struct{} `type:"structure"`
50915
50916	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
50917	// the default value is 3600 seconds. Pre-signed URLs are generated when Jobs
50918	// receives an MQTT request for the job document.
50919	ExpiresInSec *int64 `locationName:"expiresInSec" min:"60" type:"long"`
50920
50921	// The ARN of an IAM role that grants grants permission to download files from
50922	// the S3 bucket where the job data/updates are stored. The role must also grant
50923	// permission for IoT to download the files.
50924	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
50925}
50926
50927// String returns the string representation
50928func (s PresignedUrlConfig) String() string {
50929	return awsutil.Prettify(s)
50930}
50931
50932// GoString returns the string representation
50933func (s PresignedUrlConfig) GoString() string {
50934	return s.String()
50935}
50936
50937// Validate inspects the fields of the type to determine if they are valid.
50938func (s *PresignedUrlConfig) Validate() error {
50939	invalidParams := request.ErrInvalidParams{Context: "PresignedUrlConfig"}
50940	if s.ExpiresInSec != nil && *s.ExpiresInSec < 60 {
50941		invalidParams.Add(request.NewErrParamMinValue("ExpiresInSec", 60))
50942	}
50943	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
50944		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
50945	}
50946
50947	if invalidParams.Len() > 0 {
50948		return invalidParams
50949	}
50950	return nil
50951}
50952
50953// SetExpiresInSec sets the ExpiresInSec field's value.
50954func (s *PresignedUrlConfig) SetExpiresInSec(v int64) *PresignedUrlConfig {
50955	s.ExpiresInSec = &v
50956	return s
50957}
50958
50959// SetRoleArn sets the RoleArn field's value.
50960func (s *PresignedUrlConfig) SetRoleArn(v string) *PresignedUrlConfig {
50961	s.RoleArn = &v
50962	return s
50963}
50964
50965// Structure that contains payloadVersion and targetArn.
50966type ProvisioningHook struct {
50967	_ struct{} `type:"structure"`
50968
50969	// The payload that was sent to the target function.
50970	//
50971	// Note: Only Lambda functions are currently supported.
50972	PayloadVersion *string `locationName:"payloadVersion" min:"10" type:"string"`
50973
50974	// The ARN of the target function.
50975	//
50976	// Note: Only Lambda functions are currently supported.
50977	//
50978	// TargetArn is a required field
50979	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
50980}
50981
50982// String returns the string representation
50983func (s ProvisioningHook) String() string {
50984	return awsutil.Prettify(s)
50985}
50986
50987// GoString returns the string representation
50988func (s ProvisioningHook) GoString() string {
50989	return s.String()
50990}
50991
50992// Validate inspects the fields of the type to determine if they are valid.
50993func (s *ProvisioningHook) Validate() error {
50994	invalidParams := request.ErrInvalidParams{Context: "ProvisioningHook"}
50995	if s.PayloadVersion != nil && len(*s.PayloadVersion) < 10 {
50996		invalidParams.Add(request.NewErrParamMinLen("PayloadVersion", 10))
50997	}
50998	if s.TargetArn == nil {
50999		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
51000	}
51001
51002	if invalidParams.Len() > 0 {
51003		return invalidParams
51004	}
51005	return nil
51006}
51007
51008// SetPayloadVersion sets the PayloadVersion field's value.
51009func (s *ProvisioningHook) SetPayloadVersion(v string) *ProvisioningHook {
51010	s.PayloadVersion = &v
51011	return s
51012}
51013
51014// SetTargetArn sets the TargetArn field's value.
51015func (s *ProvisioningHook) SetTargetArn(v string) *ProvisioningHook {
51016	s.TargetArn = &v
51017	return s
51018}
51019
51020// A summary of information about a fleet provisioning template.
51021type ProvisioningTemplateSummary struct {
51022	_ struct{} `type:"structure"`
51023
51024	// The date when the fleet provisioning template summary was created.
51025	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
51026
51027	// The description of the fleet provisioning template.
51028	Description *string `locationName:"description" type:"string"`
51029
51030	// True if the fleet provision template is enabled, otherwise false.
51031	Enabled *bool `locationName:"enabled" type:"boolean"`
51032
51033	// The date when the fleet provisioning template summary was last modified.
51034	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
51035
51036	// The ARN of the fleet provisioning template.
51037	TemplateArn *string `locationName:"templateArn" type:"string"`
51038
51039	// The name of the fleet provisioning template.
51040	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
51041}
51042
51043// String returns the string representation
51044func (s ProvisioningTemplateSummary) String() string {
51045	return awsutil.Prettify(s)
51046}
51047
51048// GoString returns the string representation
51049func (s ProvisioningTemplateSummary) GoString() string {
51050	return s.String()
51051}
51052
51053// SetCreationDate sets the CreationDate field's value.
51054func (s *ProvisioningTemplateSummary) SetCreationDate(v time.Time) *ProvisioningTemplateSummary {
51055	s.CreationDate = &v
51056	return s
51057}
51058
51059// SetDescription sets the Description field's value.
51060func (s *ProvisioningTemplateSummary) SetDescription(v string) *ProvisioningTemplateSummary {
51061	s.Description = &v
51062	return s
51063}
51064
51065// SetEnabled sets the Enabled field's value.
51066func (s *ProvisioningTemplateSummary) SetEnabled(v bool) *ProvisioningTemplateSummary {
51067	s.Enabled = &v
51068	return s
51069}
51070
51071// SetLastModifiedDate sets the LastModifiedDate field's value.
51072func (s *ProvisioningTemplateSummary) SetLastModifiedDate(v time.Time) *ProvisioningTemplateSummary {
51073	s.LastModifiedDate = &v
51074	return s
51075}
51076
51077// SetTemplateArn sets the TemplateArn field's value.
51078func (s *ProvisioningTemplateSummary) SetTemplateArn(v string) *ProvisioningTemplateSummary {
51079	s.TemplateArn = &v
51080	return s
51081}
51082
51083// SetTemplateName sets the TemplateName field's value.
51084func (s *ProvisioningTemplateSummary) SetTemplateName(v string) *ProvisioningTemplateSummary {
51085	s.TemplateName = &v
51086	return s
51087}
51088
51089// A summary of information about a fleet provision template version.
51090type ProvisioningTemplateVersionSummary struct {
51091	_ struct{} `type:"structure"`
51092
51093	// The date when the fleet provisioning template version was created
51094	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
51095
51096	// True if the fleet provisioning template version is the default version, otherwise
51097	// false.
51098	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
51099
51100	// The ID of the fleet privisioning template version.
51101	VersionId *int64 `locationName:"versionId" type:"integer"`
51102}
51103
51104// String returns the string representation
51105func (s ProvisioningTemplateVersionSummary) String() string {
51106	return awsutil.Prettify(s)
51107}
51108
51109// GoString returns the string representation
51110func (s ProvisioningTemplateVersionSummary) GoString() string {
51111	return s.String()
51112}
51113
51114// SetCreationDate sets the CreationDate field's value.
51115func (s *ProvisioningTemplateVersionSummary) SetCreationDate(v time.Time) *ProvisioningTemplateVersionSummary {
51116	s.CreationDate = &v
51117	return s
51118}
51119
51120// SetIsDefaultVersion sets the IsDefaultVersion field's value.
51121func (s *ProvisioningTemplateVersionSummary) SetIsDefaultVersion(v bool) *ProvisioningTemplateVersionSummary {
51122	s.IsDefaultVersion = &v
51123	return s
51124}
51125
51126// SetVersionId sets the VersionId field's value.
51127func (s *ProvisioningTemplateVersionSummary) SetVersionId(v int64) *ProvisioningTemplateVersionSummary {
51128	s.VersionId = &v
51129	return s
51130}
51131
51132// Parameters to define a mitigation action that publishes findings to Amazon
51133// SNS. You can implement your own custom actions in response to the Amazon
51134// SNS messages.
51135type PublishFindingToSnsParams struct {
51136	_ struct{} `type:"structure"`
51137
51138	// The ARN of the topic to which you want to publish the findings.
51139	//
51140	// TopicArn is a required field
51141	TopicArn *string `locationName:"topicArn" type:"string" required:"true"`
51142}
51143
51144// String returns the string representation
51145func (s PublishFindingToSnsParams) String() string {
51146	return awsutil.Prettify(s)
51147}
51148
51149// GoString returns the string representation
51150func (s PublishFindingToSnsParams) GoString() string {
51151	return s.String()
51152}
51153
51154// Validate inspects the fields of the type to determine if they are valid.
51155func (s *PublishFindingToSnsParams) Validate() error {
51156	invalidParams := request.ErrInvalidParams{Context: "PublishFindingToSnsParams"}
51157	if s.TopicArn == nil {
51158		invalidParams.Add(request.NewErrParamRequired("TopicArn"))
51159	}
51160
51161	if invalidParams.Len() > 0 {
51162		return invalidParams
51163	}
51164	return nil
51165}
51166
51167// SetTopicArn sets the TopicArn field's value.
51168func (s *PublishFindingToSnsParams) SetTopicArn(v string) *PublishFindingToSnsParams {
51169	s.TopicArn = &v
51170	return s
51171}
51172
51173// An asset property value entry containing the following information.
51174type PutAssetPropertyValueEntry struct {
51175	_ struct{} `type:"structure"`
51176
51177	// The ID of the IoT SiteWise asset. You must specify either a propertyAlias
51178	// or both an aliasId and a propertyId. Accepts substitution templates.
51179	AssetId *string `locationName:"assetId" type:"string"`
51180
51181	// Optional. A unique identifier for this entry that you can define to better
51182	// track which message caused an error in case of failure. Accepts substitution
51183	// templates. Defaults to a new UUID.
51184	EntryId *string `locationName:"entryId" type:"string"`
51185
51186	// The name of the property alias associated with your asset property. You must
51187	// specify either a propertyAlias or both an aliasId and a propertyId. Accepts
51188	// substitution templates.
51189	PropertyAlias *string `locationName:"propertyAlias" min:"1" type:"string"`
51190
51191	// The ID of the asset's property. You must specify either a propertyAlias or
51192	// both an aliasId and a propertyId. Accepts substitution templates.
51193	PropertyId *string `locationName:"propertyId" type:"string"`
51194
51195	// A list of property values to insert that each contain timestamp, quality,
51196	// and value (TQV) information.
51197	//
51198	// PropertyValues is a required field
51199	PropertyValues []*AssetPropertyValue `locationName:"propertyValues" min:"1" type:"list" required:"true"`
51200}
51201
51202// String returns the string representation
51203func (s PutAssetPropertyValueEntry) String() string {
51204	return awsutil.Prettify(s)
51205}
51206
51207// GoString returns the string representation
51208func (s PutAssetPropertyValueEntry) GoString() string {
51209	return s.String()
51210}
51211
51212// Validate inspects the fields of the type to determine if they are valid.
51213func (s *PutAssetPropertyValueEntry) Validate() error {
51214	invalidParams := request.ErrInvalidParams{Context: "PutAssetPropertyValueEntry"}
51215	if s.PropertyAlias != nil && len(*s.PropertyAlias) < 1 {
51216		invalidParams.Add(request.NewErrParamMinLen("PropertyAlias", 1))
51217	}
51218	if s.PropertyValues == nil {
51219		invalidParams.Add(request.NewErrParamRequired("PropertyValues"))
51220	}
51221	if s.PropertyValues != nil && len(s.PropertyValues) < 1 {
51222		invalidParams.Add(request.NewErrParamMinLen("PropertyValues", 1))
51223	}
51224	if s.PropertyValues != nil {
51225		for i, v := range s.PropertyValues {
51226			if v == nil {
51227				continue
51228			}
51229			if err := v.Validate(); err != nil {
51230				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PropertyValues", i), err.(request.ErrInvalidParams))
51231			}
51232		}
51233	}
51234
51235	if invalidParams.Len() > 0 {
51236		return invalidParams
51237	}
51238	return nil
51239}
51240
51241// SetAssetId sets the AssetId field's value.
51242func (s *PutAssetPropertyValueEntry) SetAssetId(v string) *PutAssetPropertyValueEntry {
51243	s.AssetId = &v
51244	return s
51245}
51246
51247// SetEntryId sets the EntryId field's value.
51248func (s *PutAssetPropertyValueEntry) SetEntryId(v string) *PutAssetPropertyValueEntry {
51249	s.EntryId = &v
51250	return s
51251}
51252
51253// SetPropertyAlias sets the PropertyAlias field's value.
51254func (s *PutAssetPropertyValueEntry) SetPropertyAlias(v string) *PutAssetPropertyValueEntry {
51255	s.PropertyAlias = &v
51256	return s
51257}
51258
51259// SetPropertyId sets the PropertyId field's value.
51260func (s *PutAssetPropertyValueEntry) SetPropertyId(v string) *PutAssetPropertyValueEntry {
51261	s.PropertyId = &v
51262	return s
51263}
51264
51265// SetPropertyValues sets the PropertyValues field's value.
51266func (s *PutAssetPropertyValueEntry) SetPropertyValues(v []*AssetPropertyValue) *PutAssetPropertyValueEntry {
51267	s.PropertyValues = v
51268	return s
51269}
51270
51271// The input for the DynamoActionVS action that specifies the DynamoDB table
51272// to which the message data will be written.
51273type PutItemInput struct {
51274	_ struct{} `type:"structure"`
51275
51276	// The table where the message data will be written.
51277	//
51278	// TableName is a required field
51279	TableName *string `locationName:"tableName" type:"string" required:"true"`
51280}
51281
51282// String returns the string representation
51283func (s PutItemInput) String() string {
51284	return awsutil.Prettify(s)
51285}
51286
51287// GoString returns the string representation
51288func (s PutItemInput) GoString() string {
51289	return s.String()
51290}
51291
51292// Validate inspects the fields of the type to determine if they are valid.
51293func (s *PutItemInput) Validate() error {
51294	invalidParams := request.ErrInvalidParams{Context: "PutItemInput"}
51295	if s.TableName == nil {
51296		invalidParams.Add(request.NewErrParamRequired("TableName"))
51297	}
51298
51299	if invalidParams.Len() > 0 {
51300		return invalidParams
51301	}
51302	return nil
51303}
51304
51305// SetTableName sets the TableName field's value.
51306func (s *PutItemInput) SetTableName(v string) *PutItemInput {
51307	s.TableName = &v
51308	return s
51309}
51310
51311// Allows you to define a criteria to initiate the increase in rate of rollout
51312// for a job.
51313type RateIncreaseCriteria struct {
51314	_ struct{} `type:"structure"`
51315
51316	// The threshold for number of notified things that will initiate the increase
51317	// in rate of rollout.
51318	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
51319
51320	// The threshold for number of succeeded things that will initiate the increase
51321	// in rate of rollout.
51322	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
51323}
51324
51325// String returns the string representation
51326func (s RateIncreaseCriteria) String() string {
51327	return awsutil.Prettify(s)
51328}
51329
51330// GoString returns the string representation
51331func (s RateIncreaseCriteria) GoString() string {
51332	return s.String()
51333}
51334
51335// Validate inspects the fields of the type to determine if they are valid.
51336func (s *RateIncreaseCriteria) Validate() error {
51337	invalidParams := request.ErrInvalidParams{Context: "RateIncreaseCriteria"}
51338	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
51339		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
51340	}
51341	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
51342		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
51343	}
51344
51345	if invalidParams.Len() > 0 {
51346		return invalidParams
51347	}
51348	return nil
51349}
51350
51351// SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
51352func (s *RateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *RateIncreaseCriteria {
51353	s.NumberOfNotifiedThings = &v
51354	return s
51355}
51356
51357// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
51358func (s *RateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *RateIncreaseCriteria {
51359	s.NumberOfSucceededThings = &v
51360	return s
51361}
51362
51363// The input to the RegisterCACertificate operation.
51364type RegisterCACertificateInput struct {
51365	_ struct{} `type:"structure"`
51366
51367	// Allows this CA certificate to be used for auto registration of device certificates.
51368	AllowAutoRegistration *bool `location:"querystring" locationName:"allowAutoRegistration" type:"boolean"`
51369
51370	// The CA certificate.
51371	//
51372	// CaCertificate is a required field
51373	CaCertificate *string `locationName:"caCertificate" min:"1" type:"string" required:"true"`
51374
51375	// Information about the registration configuration.
51376	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
51377
51378	// A boolean value that specifies if the CA certificate is set to active.
51379	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
51380
51381	// Metadata which can be used to manage the CA certificate.
51382	//
51383	// For URI Request parameters use format: ...key1=value1&key2=value2...
51384	//
51385	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
51386	//
51387	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
51388	Tags []*Tag `locationName:"tags" type:"list"`
51389
51390	// The private key verification certificate.
51391	//
51392	// VerificationCertificate is a required field
51393	VerificationCertificate *string `locationName:"verificationCertificate" min:"1" type:"string" required:"true"`
51394}
51395
51396// String returns the string representation
51397func (s RegisterCACertificateInput) String() string {
51398	return awsutil.Prettify(s)
51399}
51400
51401// GoString returns the string representation
51402func (s RegisterCACertificateInput) GoString() string {
51403	return s.String()
51404}
51405
51406// Validate inspects the fields of the type to determine if they are valid.
51407func (s *RegisterCACertificateInput) Validate() error {
51408	invalidParams := request.ErrInvalidParams{Context: "RegisterCACertificateInput"}
51409	if s.CaCertificate == nil {
51410		invalidParams.Add(request.NewErrParamRequired("CaCertificate"))
51411	}
51412	if s.CaCertificate != nil && len(*s.CaCertificate) < 1 {
51413		invalidParams.Add(request.NewErrParamMinLen("CaCertificate", 1))
51414	}
51415	if s.VerificationCertificate == nil {
51416		invalidParams.Add(request.NewErrParamRequired("VerificationCertificate"))
51417	}
51418	if s.VerificationCertificate != nil && len(*s.VerificationCertificate) < 1 {
51419		invalidParams.Add(request.NewErrParamMinLen("VerificationCertificate", 1))
51420	}
51421	if s.RegistrationConfig != nil {
51422		if err := s.RegistrationConfig.Validate(); err != nil {
51423			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
51424		}
51425	}
51426	if s.Tags != nil {
51427		for i, v := range s.Tags {
51428			if v == nil {
51429				continue
51430			}
51431			if err := v.Validate(); err != nil {
51432				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
51433			}
51434		}
51435	}
51436
51437	if invalidParams.Len() > 0 {
51438		return invalidParams
51439	}
51440	return nil
51441}
51442
51443// SetAllowAutoRegistration sets the AllowAutoRegistration field's value.
51444func (s *RegisterCACertificateInput) SetAllowAutoRegistration(v bool) *RegisterCACertificateInput {
51445	s.AllowAutoRegistration = &v
51446	return s
51447}
51448
51449// SetCaCertificate sets the CaCertificate field's value.
51450func (s *RegisterCACertificateInput) SetCaCertificate(v string) *RegisterCACertificateInput {
51451	s.CaCertificate = &v
51452	return s
51453}
51454
51455// SetRegistrationConfig sets the RegistrationConfig field's value.
51456func (s *RegisterCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *RegisterCACertificateInput {
51457	s.RegistrationConfig = v
51458	return s
51459}
51460
51461// SetSetAsActive sets the SetAsActive field's value.
51462func (s *RegisterCACertificateInput) SetSetAsActive(v bool) *RegisterCACertificateInput {
51463	s.SetAsActive = &v
51464	return s
51465}
51466
51467// SetTags sets the Tags field's value.
51468func (s *RegisterCACertificateInput) SetTags(v []*Tag) *RegisterCACertificateInput {
51469	s.Tags = v
51470	return s
51471}
51472
51473// SetVerificationCertificate sets the VerificationCertificate field's value.
51474func (s *RegisterCACertificateInput) SetVerificationCertificate(v string) *RegisterCACertificateInput {
51475	s.VerificationCertificate = &v
51476	return s
51477}
51478
51479// The output from the RegisterCACertificateResponse operation.
51480type RegisterCACertificateOutput struct {
51481	_ struct{} `type:"structure"`
51482
51483	// The CA certificate ARN.
51484	CertificateArn *string `locationName:"certificateArn" type:"string"`
51485
51486	// The CA certificate identifier.
51487	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
51488}
51489
51490// String returns the string representation
51491func (s RegisterCACertificateOutput) String() string {
51492	return awsutil.Prettify(s)
51493}
51494
51495// GoString returns the string representation
51496func (s RegisterCACertificateOutput) GoString() string {
51497	return s.String()
51498}
51499
51500// SetCertificateArn sets the CertificateArn field's value.
51501func (s *RegisterCACertificateOutput) SetCertificateArn(v string) *RegisterCACertificateOutput {
51502	s.CertificateArn = &v
51503	return s
51504}
51505
51506// SetCertificateId sets the CertificateId field's value.
51507func (s *RegisterCACertificateOutput) SetCertificateId(v string) *RegisterCACertificateOutput {
51508	s.CertificateId = &v
51509	return s
51510}
51511
51512// The input to the RegisterCertificate operation.
51513type RegisterCertificateInput struct {
51514	_ struct{} `type:"structure"`
51515
51516	// The CA certificate used to sign the device certificate being registered.
51517	CaCertificatePem *string `locationName:"caCertificatePem" min:"1" type:"string"`
51518
51519	// The certificate data, in PEM format.
51520	//
51521	// CertificatePem is a required field
51522	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
51523
51524	// A boolean value that specifies if the certificate is set to active.
51525	//
51526	// Deprecated: SetAsActive has been deprecated
51527	SetAsActive *bool `location:"querystring" locationName:"setAsActive" deprecated:"true" type:"boolean"`
51528
51529	// The status of the register certificate request.
51530	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
51531}
51532
51533// String returns the string representation
51534func (s RegisterCertificateInput) String() string {
51535	return awsutil.Prettify(s)
51536}
51537
51538// GoString returns the string representation
51539func (s RegisterCertificateInput) GoString() string {
51540	return s.String()
51541}
51542
51543// Validate inspects the fields of the type to determine if they are valid.
51544func (s *RegisterCertificateInput) Validate() error {
51545	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateInput"}
51546	if s.CaCertificatePem != nil && len(*s.CaCertificatePem) < 1 {
51547		invalidParams.Add(request.NewErrParamMinLen("CaCertificatePem", 1))
51548	}
51549	if s.CertificatePem == nil {
51550		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
51551	}
51552	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
51553		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
51554	}
51555
51556	if invalidParams.Len() > 0 {
51557		return invalidParams
51558	}
51559	return nil
51560}
51561
51562// SetCaCertificatePem sets the CaCertificatePem field's value.
51563func (s *RegisterCertificateInput) SetCaCertificatePem(v string) *RegisterCertificateInput {
51564	s.CaCertificatePem = &v
51565	return s
51566}
51567
51568// SetCertificatePem sets the CertificatePem field's value.
51569func (s *RegisterCertificateInput) SetCertificatePem(v string) *RegisterCertificateInput {
51570	s.CertificatePem = &v
51571	return s
51572}
51573
51574// SetSetAsActive sets the SetAsActive field's value.
51575func (s *RegisterCertificateInput) SetSetAsActive(v bool) *RegisterCertificateInput {
51576	s.SetAsActive = &v
51577	return s
51578}
51579
51580// SetStatus sets the Status field's value.
51581func (s *RegisterCertificateInput) SetStatus(v string) *RegisterCertificateInput {
51582	s.Status = &v
51583	return s
51584}
51585
51586// The output from the RegisterCertificate operation.
51587type RegisterCertificateOutput struct {
51588	_ struct{} `type:"structure"`
51589
51590	// The certificate ARN.
51591	CertificateArn *string `locationName:"certificateArn" type:"string"`
51592
51593	// The certificate identifier.
51594	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
51595}
51596
51597// String returns the string representation
51598func (s RegisterCertificateOutput) String() string {
51599	return awsutil.Prettify(s)
51600}
51601
51602// GoString returns the string representation
51603func (s RegisterCertificateOutput) GoString() string {
51604	return s.String()
51605}
51606
51607// SetCertificateArn sets the CertificateArn field's value.
51608func (s *RegisterCertificateOutput) SetCertificateArn(v string) *RegisterCertificateOutput {
51609	s.CertificateArn = &v
51610	return s
51611}
51612
51613// SetCertificateId sets the CertificateId field's value.
51614func (s *RegisterCertificateOutput) SetCertificateId(v string) *RegisterCertificateOutput {
51615	s.CertificateId = &v
51616	return s
51617}
51618
51619type RegisterCertificateWithoutCAInput struct {
51620	_ struct{} `type:"structure"`
51621
51622	// The certificate data, in PEM format.
51623	//
51624	// CertificatePem is a required field
51625	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
51626
51627	// The status of the register certificate request.
51628	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
51629}
51630
51631// String returns the string representation
51632func (s RegisterCertificateWithoutCAInput) String() string {
51633	return awsutil.Prettify(s)
51634}
51635
51636// GoString returns the string representation
51637func (s RegisterCertificateWithoutCAInput) GoString() string {
51638	return s.String()
51639}
51640
51641// Validate inspects the fields of the type to determine if they are valid.
51642func (s *RegisterCertificateWithoutCAInput) Validate() error {
51643	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateWithoutCAInput"}
51644	if s.CertificatePem == nil {
51645		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
51646	}
51647	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
51648		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
51649	}
51650
51651	if invalidParams.Len() > 0 {
51652		return invalidParams
51653	}
51654	return nil
51655}
51656
51657// SetCertificatePem sets the CertificatePem field's value.
51658func (s *RegisterCertificateWithoutCAInput) SetCertificatePem(v string) *RegisterCertificateWithoutCAInput {
51659	s.CertificatePem = &v
51660	return s
51661}
51662
51663// SetStatus sets the Status field's value.
51664func (s *RegisterCertificateWithoutCAInput) SetStatus(v string) *RegisterCertificateWithoutCAInput {
51665	s.Status = &v
51666	return s
51667}
51668
51669type RegisterCertificateWithoutCAOutput struct {
51670	_ struct{} `type:"structure"`
51671
51672	// The Amazon Resource Name (ARN) of the registered certificate.
51673	CertificateArn *string `locationName:"certificateArn" type:"string"`
51674
51675	// The ID of the registered certificate. (The last part of the certificate ARN
51676	// contains the certificate ID.
51677	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
51678}
51679
51680// String returns the string representation
51681func (s RegisterCertificateWithoutCAOutput) String() string {
51682	return awsutil.Prettify(s)
51683}
51684
51685// GoString returns the string representation
51686func (s RegisterCertificateWithoutCAOutput) GoString() string {
51687	return s.String()
51688}
51689
51690// SetCertificateArn sets the CertificateArn field's value.
51691func (s *RegisterCertificateWithoutCAOutput) SetCertificateArn(v string) *RegisterCertificateWithoutCAOutput {
51692	s.CertificateArn = &v
51693	return s
51694}
51695
51696// SetCertificateId sets the CertificateId field's value.
51697func (s *RegisterCertificateWithoutCAOutput) SetCertificateId(v string) *RegisterCertificateWithoutCAOutput {
51698	s.CertificateId = &v
51699	return s
51700}
51701
51702type RegisterThingInput struct {
51703	_ struct{} `type:"structure"`
51704
51705	// The parameters for provisioning a thing. See Provisioning Templates (https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html)
51706	// for more information.
51707	Parameters map[string]*string `locationName:"parameters" type:"map"`
51708
51709	// The provisioning template. See Provisioning Devices That Have Device Certificates
51710	// (https://docs.aws.amazon.com/iot/latest/developerguide/provision-w-cert.html)
51711	// for more information.
51712	//
51713	// TemplateBody is a required field
51714	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
51715}
51716
51717// String returns the string representation
51718func (s RegisterThingInput) String() string {
51719	return awsutil.Prettify(s)
51720}
51721
51722// GoString returns the string representation
51723func (s RegisterThingInput) GoString() string {
51724	return s.String()
51725}
51726
51727// Validate inspects the fields of the type to determine if they are valid.
51728func (s *RegisterThingInput) Validate() error {
51729	invalidParams := request.ErrInvalidParams{Context: "RegisterThingInput"}
51730	if s.TemplateBody == nil {
51731		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
51732	}
51733
51734	if invalidParams.Len() > 0 {
51735		return invalidParams
51736	}
51737	return nil
51738}
51739
51740// SetParameters sets the Parameters field's value.
51741func (s *RegisterThingInput) SetParameters(v map[string]*string) *RegisterThingInput {
51742	s.Parameters = v
51743	return s
51744}
51745
51746// SetTemplateBody sets the TemplateBody field's value.
51747func (s *RegisterThingInput) SetTemplateBody(v string) *RegisterThingInput {
51748	s.TemplateBody = &v
51749	return s
51750}
51751
51752type RegisterThingOutput struct {
51753	_ struct{} `type:"structure"`
51754
51755	// The certificate data, in PEM format.
51756	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
51757
51758	// ARNs for the generated resources.
51759	ResourceArns map[string]*string `locationName:"resourceArns" type:"map"`
51760}
51761
51762// String returns the string representation
51763func (s RegisterThingOutput) String() string {
51764	return awsutil.Prettify(s)
51765}
51766
51767// GoString returns the string representation
51768func (s RegisterThingOutput) GoString() string {
51769	return s.String()
51770}
51771
51772// SetCertificatePem sets the CertificatePem field's value.
51773func (s *RegisterThingOutput) SetCertificatePem(v string) *RegisterThingOutput {
51774	s.CertificatePem = &v
51775	return s
51776}
51777
51778// SetResourceArns sets the ResourceArns field's value.
51779func (s *RegisterThingOutput) SetResourceArns(v map[string]*string) *RegisterThingOutput {
51780	s.ResourceArns = v
51781	return s
51782}
51783
51784// The registration code is invalid.
51785type RegistrationCodeValidationException struct {
51786	_            struct{}                  `type:"structure"`
51787	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
51788
51789	// Additional information about the exception.
51790	Message_ *string `locationName:"message" type:"string"`
51791}
51792
51793// String returns the string representation
51794func (s RegistrationCodeValidationException) String() string {
51795	return awsutil.Prettify(s)
51796}
51797
51798// GoString returns the string representation
51799func (s RegistrationCodeValidationException) GoString() string {
51800	return s.String()
51801}
51802
51803func newErrorRegistrationCodeValidationException(v protocol.ResponseMetadata) error {
51804	return &RegistrationCodeValidationException{
51805		RespMetadata: v,
51806	}
51807}
51808
51809// Code returns the exception type name.
51810func (s *RegistrationCodeValidationException) Code() string {
51811	return "RegistrationCodeValidationException"
51812}
51813
51814// Message returns the exception's message.
51815func (s *RegistrationCodeValidationException) Message() string {
51816	if s.Message_ != nil {
51817		return *s.Message_
51818	}
51819	return ""
51820}
51821
51822// OrigErr always returns nil, satisfies awserr.Error interface.
51823func (s *RegistrationCodeValidationException) OrigErr() error {
51824	return nil
51825}
51826
51827func (s *RegistrationCodeValidationException) Error() string {
51828	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
51829}
51830
51831// Status code returns the HTTP status code for the request's response error.
51832func (s *RegistrationCodeValidationException) StatusCode() int {
51833	return s.RespMetadata.StatusCode
51834}
51835
51836// RequestID returns the service's response RequestID for request.
51837func (s *RegistrationCodeValidationException) RequestID() string {
51838	return s.RespMetadata.RequestID
51839}
51840
51841// The registration configuration.
51842type RegistrationConfig struct {
51843	_ struct{} `type:"structure"`
51844
51845	// The ARN of the role.
51846	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
51847
51848	// The template body.
51849	TemplateBody *string `locationName:"templateBody" type:"string"`
51850}
51851
51852// String returns the string representation
51853func (s RegistrationConfig) String() string {
51854	return awsutil.Prettify(s)
51855}
51856
51857// GoString returns the string representation
51858func (s RegistrationConfig) GoString() string {
51859	return s.String()
51860}
51861
51862// Validate inspects the fields of the type to determine if they are valid.
51863func (s *RegistrationConfig) Validate() error {
51864	invalidParams := request.ErrInvalidParams{Context: "RegistrationConfig"}
51865	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
51866		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
51867	}
51868
51869	if invalidParams.Len() > 0 {
51870		return invalidParams
51871	}
51872	return nil
51873}
51874
51875// SetRoleArn sets the RoleArn field's value.
51876func (s *RegistrationConfig) SetRoleArn(v string) *RegistrationConfig {
51877	s.RoleArn = &v
51878	return s
51879}
51880
51881// SetTemplateBody sets the TemplateBody field's value.
51882func (s *RegistrationConfig) SetTemplateBody(v string) *RegistrationConfig {
51883	s.TemplateBody = &v
51884	return s
51885}
51886
51887// The input for the RejectCertificateTransfer operation.
51888type RejectCertificateTransferInput struct {
51889	_ struct{} `type:"structure"`
51890
51891	// The ID of the certificate. (The last part of the certificate ARN contains
51892	// the certificate ID.)
51893	//
51894	// CertificateId is a required field
51895	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
51896
51897	// The reason the certificate transfer was rejected.
51898	RejectReason *string `locationName:"rejectReason" type:"string"`
51899}
51900
51901// String returns the string representation
51902func (s RejectCertificateTransferInput) String() string {
51903	return awsutil.Prettify(s)
51904}
51905
51906// GoString returns the string representation
51907func (s RejectCertificateTransferInput) GoString() string {
51908	return s.String()
51909}
51910
51911// Validate inspects the fields of the type to determine if they are valid.
51912func (s *RejectCertificateTransferInput) Validate() error {
51913	invalidParams := request.ErrInvalidParams{Context: "RejectCertificateTransferInput"}
51914	if s.CertificateId == nil {
51915		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
51916	}
51917	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
51918		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
51919	}
51920
51921	if invalidParams.Len() > 0 {
51922		return invalidParams
51923	}
51924	return nil
51925}
51926
51927// SetCertificateId sets the CertificateId field's value.
51928func (s *RejectCertificateTransferInput) SetCertificateId(v string) *RejectCertificateTransferInput {
51929	s.CertificateId = &v
51930	return s
51931}
51932
51933// SetRejectReason sets the RejectReason field's value.
51934func (s *RejectCertificateTransferInput) SetRejectReason(v string) *RejectCertificateTransferInput {
51935	s.RejectReason = &v
51936	return s
51937}
51938
51939type RejectCertificateTransferOutput struct {
51940	_ struct{} `type:"structure"`
51941}
51942
51943// String returns the string representation
51944func (s RejectCertificateTransferOutput) String() string {
51945	return awsutil.Prettify(s)
51946}
51947
51948// GoString returns the string representation
51949func (s RejectCertificateTransferOutput) GoString() string {
51950	return s.String()
51951}
51952
51953// Information about a related resource.
51954type RelatedResource struct {
51955	_ struct{} `type:"structure"`
51956
51957	// Other information about the resource.
51958	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
51959
51960	// Information that identifies the resource.
51961	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
51962
51963	// The type of resource.
51964	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
51965}
51966
51967// String returns the string representation
51968func (s RelatedResource) String() string {
51969	return awsutil.Prettify(s)
51970}
51971
51972// GoString returns the string representation
51973func (s RelatedResource) GoString() string {
51974	return s.String()
51975}
51976
51977// SetAdditionalInfo sets the AdditionalInfo field's value.
51978func (s *RelatedResource) SetAdditionalInfo(v map[string]*string) *RelatedResource {
51979	s.AdditionalInfo = v
51980	return s
51981}
51982
51983// SetResourceIdentifier sets the ResourceIdentifier field's value.
51984func (s *RelatedResource) SetResourceIdentifier(v *ResourceIdentifier) *RelatedResource {
51985	s.ResourceIdentifier = v
51986	return s
51987}
51988
51989// SetResourceType sets the ResourceType field's value.
51990func (s *RelatedResource) SetResourceType(v string) *RelatedResource {
51991	s.ResourceType = &v
51992	return s
51993}
51994
51995type RemoveThingFromBillingGroupInput struct {
51996	_ struct{} `type:"structure"`
51997
51998	// The ARN of the billing group.
51999	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
52000
52001	// The name of the billing group.
52002	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
52003
52004	// The ARN of the thing to be removed from the billing group.
52005	ThingArn *string `locationName:"thingArn" type:"string"`
52006
52007	// The name of the thing to be removed from the billing group.
52008	ThingName *string `locationName:"thingName" min:"1" type:"string"`
52009}
52010
52011// String returns the string representation
52012func (s RemoveThingFromBillingGroupInput) String() string {
52013	return awsutil.Prettify(s)
52014}
52015
52016// GoString returns the string representation
52017func (s RemoveThingFromBillingGroupInput) GoString() string {
52018	return s.String()
52019}
52020
52021// Validate inspects the fields of the type to determine if they are valid.
52022func (s *RemoveThingFromBillingGroupInput) Validate() error {
52023	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromBillingGroupInput"}
52024	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
52025		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
52026	}
52027	if s.ThingName != nil && len(*s.ThingName) < 1 {
52028		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
52029	}
52030
52031	if invalidParams.Len() > 0 {
52032		return invalidParams
52033	}
52034	return nil
52035}
52036
52037// SetBillingGroupArn sets the BillingGroupArn field's value.
52038func (s *RemoveThingFromBillingGroupInput) SetBillingGroupArn(v string) *RemoveThingFromBillingGroupInput {
52039	s.BillingGroupArn = &v
52040	return s
52041}
52042
52043// SetBillingGroupName sets the BillingGroupName field's value.
52044func (s *RemoveThingFromBillingGroupInput) SetBillingGroupName(v string) *RemoveThingFromBillingGroupInput {
52045	s.BillingGroupName = &v
52046	return s
52047}
52048
52049// SetThingArn sets the ThingArn field's value.
52050func (s *RemoveThingFromBillingGroupInput) SetThingArn(v string) *RemoveThingFromBillingGroupInput {
52051	s.ThingArn = &v
52052	return s
52053}
52054
52055// SetThingName sets the ThingName field's value.
52056func (s *RemoveThingFromBillingGroupInput) SetThingName(v string) *RemoveThingFromBillingGroupInput {
52057	s.ThingName = &v
52058	return s
52059}
52060
52061type RemoveThingFromBillingGroupOutput struct {
52062	_ struct{} `type:"structure"`
52063}
52064
52065// String returns the string representation
52066func (s RemoveThingFromBillingGroupOutput) String() string {
52067	return awsutil.Prettify(s)
52068}
52069
52070// GoString returns the string representation
52071func (s RemoveThingFromBillingGroupOutput) GoString() string {
52072	return s.String()
52073}
52074
52075type RemoveThingFromThingGroupInput struct {
52076	_ struct{} `type:"structure"`
52077
52078	// The ARN of the thing to remove from the group.
52079	ThingArn *string `locationName:"thingArn" type:"string"`
52080
52081	// The group ARN.
52082	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
52083
52084	// The group name.
52085	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
52086
52087	// The name of the thing to remove from the group.
52088	ThingName *string `locationName:"thingName" min:"1" type:"string"`
52089}
52090
52091// String returns the string representation
52092func (s RemoveThingFromThingGroupInput) String() string {
52093	return awsutil.Prettify(s)
52094}
52095
52096// GoString returns the string representation
52097func (s RemoveThingFromThingGroupInput) GoString() string {
52098	return s.String()
52099}
52100
52101// Validate inspects the fields of the type to determine if they are valid.
52102func (s *RemoveThingFromThingGroupInput) Validate() error {
52103	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromThingGroupInput"}
52104	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
52105		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
52106	}
52107	if s.ThingName != nil && len(*s.ThingName) < 1 {
52108		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
52109	}
52110
52111	if invalidParams.Len() > 0 {
52112		return invalidParams
52113	}
52114	return nil
52115}
52116
52117// SetThingArn sets the ThingArn field's value.
52118func (s *RemoveThingFromThingGroupInput) SetThingArn(v string) *RemoveThingFromThingGroupInput {
52119	s.ThingArn = &v
52120	return s
52121}
52122
52123// SetThingGroupArn sets the ThingGroupArn field's value.
52124func (s *RemoveThingFromThingGroupInput) SetThingGroupArn(v string) *RemoveThingFromThingGroupInput {
52125	s.ThingGroupArn = &v
52126	return s
52127}
52128
52129// SetThingGroupName sets the ThingGroupName field's value.
52130func (s *RemoveThingFromThingGroupInput) SetThingGroupName(v string) *RemoveThingFromThingGroupInput {
52131	s.ThingGroupName = &v
52132	return s
52133}
52134
52135// SetThingName sets the ThingName field's value.
52136func (s *RemoveThingFromThingGroupInput) SetThingName(v string) *RemoveThingFromThingGroupInput {
52137	s.ThingName = &v
52138	return s
52139}
52140
52141type RemoveThingFromThingGroupOutput struct {
52142	_ struct{} `type:"structure"`
52143}
52144
52145// String returns the string representation
52146func (s RemoveThingFromThingGroupOutput) String() string {
52147	return awsutil.Prettify(s)
52148}
52149
52150// GoString returns the string representation
52151func (s RemoveThingFromThingGroupOutput) GoString() string {
52152	return s.String()
52153}
52154
52155// Parameters to define a mitigation action that adds a blank policy to restrict
52156// permissions.
52157type ReplaceDefaultPolicyVersionParams struct {
52158	_ struct{} `type:"structure"`
52159
52160	// The name of the template to be applied. The only supported value is BLANK_POLICY.
52161	//
52162	// TemplateName is a required field
52163	TemplateName *string `locationName:"templateName" type:"string" required:"true" enum:"PolicyTemplateName"`
52164}
52165
52166// String returns the string representation
52167func (s ReplaceDefaultPolicyVersionParams) String() string {
52168	return awsutil.Prettify(s)
52169}
52170
52171// GoString returns the string representation
52172func (s ReplaceDefaultPolicyVersionParams) GoString() string {
52173	return s.String()
52174}
52175
52176// Validate inspects the fields of the type to determine if they are valid.
52177func (s *ReplaceDefaultPolicyVersionParams) Validate() error {
52178	invalidParams := request.ErrInvalidParams{Context: "ReplaceDefaultPolicyVersionParams"}
52179	if s.TemplateName == nil {
52180		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
52181	}
52182
52183	if invalidParams.Len() > 0 {
52184		return invalidParams
52185	}
52186	return nil
52187}
52188
52189// SetTemplateName sets the TemplateName field's value.
52190func (s *ReplaceDefaultPolicyVersionParams) SetTemplateName(v string) *ReplaceDefaultPolicyVersionParams {
52191	s.TemplateName = &v
52192	return s
52193}
52194
52195// The input for the ReplaceTopicRule operation.
52196type ReplaceTopicRuleInput struct {
52197	_ struct{} `type:"structure" payload:"TopicRulePayload"`
52198
52199	// The name of the rule.
52200	//
52201	// RuleName is a required field
52202	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
52203
52204	// The rule payload.
52205	//
52206	// TopicRulePayload is a required field
52207	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
52208}
52209
52210// String returns the string representation
52211func (s ReplaceTopicRuleInput) String() string {
52212	return awsutil.Prettify(s)
52213}
52214
52215// GoString returns the string representation
52216func (s ReplaceTopicRuleInput) GoString() string {
52217	return s.String()
52218}
52219
52220// Validate inspects the fields of the type to determine if they are valid.
52221func (s *ReplaceTopicRuleInput) Validate() error {
52222	invalidParams := request.ErrInvalidParams{Context: "ReplaceTopicRuleInput"}
52223	if s.RuleName == nil {
52224		invalidParams.Add(request.NewErrParamRequired("RuleName"))
52225	}
52226	if s.RuleName != nil && len(*s.RuleName) < 1 {
52227		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
52228	}
52229	if s.TopicRulePayload == nil {
52230		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
52231	}
52232	if s.TopicRulePayload != nil {
52233		if err := s.TopicRulePayload.Validate(); err != nil {
52234			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
52235		}
52236	}
52237
52238	if invalidParams.Len() > 0 {
52239		return invalidParams
52240	}
52241	return nil
52242}
52243
52244// SetRuleName sets the RuleName field's value.
52245func (s *ReplaceTopicRuleInput) SetRuleName(v string) *ReplaceTopicRuleInput {
52246	s.RuleName = &v
52247	return s
52248}
52249
52250// SetTopicRulePayload sets the TopicRulePayload field's value.
52251func (s *ReplaceTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *ReplaceTopicRuleInput {
52252	s.TopicRulePayload = v
52253	return s
52254}
52255
52256type ReplaceTopicRuleOutput struct {
52257	_ struct{} `type:"structure"`
52258}
52259
52260// String returns the string representation
52261func (s ReplaceTopicRuleOutput) String() string {
52262	return awsutil.Prettify(s)
52263}
52264
52265// GoString returns the string representation
52266func (s ReplaceTopicRuleOutput) GoString() string {
52267	return s.String()
52268}
52269
52270// Describes an action to republish to another topic.
52271type RepublishAction struct {
52272	_ struct{} `type:"structure"`
52273
52274	// The Quality of Service (QoS) level to use when republishing messages. The
52275	// default value is 0.
52276	Qos *int64 `locationName:"qos" type:"integer"`
52277
52278	// The ARN of the IAM role that grants access.
52279	//
52280	// RoleArn is a required field
52281	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
52282
52283	// The name of the MQTT topic.
52284	//
52285	// Topic is a required field
52286	Topic *string `locationName:"topic" type:"string" required:"true"`
52287}
52288
52289// String returns the string representation
52290func (s RepublishAction) String() string {
52291	return awsutil.Prettify(s)
52292}
52293
52294// GoString returns the string representation
52295func (s RepublishAction) GoString() string {
52296	return s.String()
52297}
52298
52299// Validate inspects the fields of the type to determine if they are valid.
52300func (s *RepublishAction) Validate() error {
52301	invalidParams := request.ErrInvalidParams{Context: "RepublishAction"}
52302	if s.RoleArn == nil {
52303		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
52304	}
52305	if s.Topic == nil {
52306		invalidParams.Add(request.NewErrParamRequired("Topic"))
52307	}
52308
52309	if invalidParams.Len() > 0 {
52310		return invalidParams
52311	}
52312	return nil
52313}
52314
52315// SetQos sets the Qos field's value.
52316func (s *RepublishAction) SetQos(v int64) *RepublishAction {
52317	s.Qos = &v
52318	return s
52319}
52320
52321// SetRoleArn sets the RoleArn field's value.
52322func (s *RepublishAction) SetRoleArn(v string) *RepublishAction {
52323	s.RoleArn = &v
52324	return s
52325}
52326
52327// SetTopic sets the Topic field's value.
52328func (s *RepublishAction) SetTopic(v string) *RepublishAction {
52329	s.Topic = &v
52330	return s
52331}
52332
52333// The resource already exists.
52334type ResourceAlreadyExistsException struct {
52335	_            struct{}                  `type:"structure"`
52336	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
52337
52338	// The message for the exception.
52339	Message_ *string `locationName:"message" type:"string"`
52340
52341	// The ARN of the resource that caused the exception.
52342	ResourceArn *string `locationName:"resourceArn" type:"string"`
52343
52344	// The ID of the resource that caused the exception.
52345	ResourceId *string `locationName:"resourceId" type:"string"`
52346}
52347
52348// String returns the string representation
52349func (s ResourceAlreadyExistsException) String() string {
52350	return awsutil.Prettify(s)
52351}
52352
52353// GoString returns the string representation
52354func (s ResourceAlreadyExistsException) GoString() string {
52355	return s.String()
52356}
52357
52358func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
52359	return &ResourceAlreadyExistsException{
52360		RespMetadata: v,
52361	}
52362}
52363
52364// Code returns the exception type name.
52365func (s *ResourceAlreadyExistsException) Code() string {
52366	return "ResourceAlreadyExistsException"
52367}
52368
52369// Message returns the exception's message.
52370func (s *ResourceAlreadyExistsException) Message() string {
52371	if s.Message_ != nil {
52372		return *s.Message_
52373	}
52374	return ""
52375}
52376
52377// OrigErr always returns nil, satisfies awserr.Error interface.
52378func (s *ResourceAlreadyExistsException) OrigErr() error {
52379	return nil
52380}
52381
52382func (s *ResourceAlreadyExistsException) Error() string {
52383	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
52384}
52385
52386// Status code returns the HTTP status code for the request's response error.
52387func (s *ResourceAlreadyExistsException) StatusCode() int {
52388	return s.RespMetadata.StatusCode
52389}
52390
52391// RequestID returns the service's response RequestID for request.
52392func (s *ResourceAlreadyExistsException) RequestID() string {
52393	return s.RespMetadata.RequestID
52394}
52395
52396// Information that identifies the noncompliant resource.
52397type ResourceIdentifier struct {
52398	_ struct{} `type:"structure"`
52399
52400	// The account with which the resource is associated.
52401	Account *string `locationName:"account" min:"12" type:"string"`
52402
52403	// The ID of the CA certificate used to authorize the certificate.
52404	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
52405
52406	// The client ID.
52407	ClientId *string `locationName:"clientId" type:"string"`
52408
52409	// The ID of the Amazon Cognito identity pool.
52410	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
52411
52412	// The ID of the certificate attached to the resource.
52413	DeviceCertificateId *string `locationName:"deviceCertificateId" min:"64" type:"string"`
52414
52415	// The ARN of the IAM role that has overly permissive actions.
52416	IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string"`
52417
52418	// The version of the policy associated with the resource.
52419	PolicyVersionIdentifier *PolicyVersionIdentifier `locationName:"policyVersionIdentifier" type:"structure"`
52420
52421	// The ARN of the role alias that has overly permissive actions.
52422	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
52423}
52424
52425// String returns the string representation
52426func (s ResourceIdentifier) String() string {
52427	return awsutil.Prettify(s)
52428}
52429
52430// GoString returns the string representation
52431func (s ResourceIdentifier) GoString() string {
52432	return s.String()
52433}
52434
52435// Validate inspects the fields of the type to determine if they are valid.
52436func (s *ResourceIdentifier) Validate() error {
52437	invalidParams := request.ErrInvalidParams{Context: "ResourceIdentifier"}
52438	if s.Account != nil && len(*s.Account) < 12 {
52439		invalidParams.Add(request.NewErrParamMinLen("Account", 12))
52440	}
52441	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
52442		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
52443	}
52444	if s.DeviceCertificateId != nil && len(*s.DeviceCertificateId) < 64 {
52445		invalidParams.Add(request.NewErrParamMinLen("DeviceCertificateId", 64))
52446	}
52447	if s.IamRoleArn != nil && len(*s.IamRoleArn) < 20 {
52448		invalidParams.Add(request.NewErrParamMinLen("IamRoleArn", 20))
52449	}
52450	if s.RoleAliasArn != nil && len(*s.RoleAliasArn) < 1 {
52451		invalidParams.Add(request.NewErrParamMinLen("RoleAliasArn", 1))
52452	}
52453	if s.PolicyVersionIdentifier != nil {
52454		if err := s.PolicyVersionIdentifier.Validate(); err != nil {
52455			invalidParams.AddNested("PolicyVersionIdentifier", err.(request.ErrInvalidParams))
52456		}
52457	}
52458
52459	if invalidParams.Len() > 0 {
52460		return invalidParams
52461	}
52462	return nil
52463}
52464
52465// SetAccount sets the Account field's value.
52466func (s *ResourceIdentifier) SetAccount(v string) *ResourceIdentifier {
52467	s.Account = &v
52468	return s
52469}
52470
52471// SetCaCertificateId sets the CaCertificateId field's value.
52472func (s *ResourceIdentifier) SetCaCertificateId(v string) *ResourceIdentifier {
52473	s.CaCertificateId = &v
52474	return s
52475}
52476
52477// SetClientId sets the ClientId field's value.
52478func (s *ResourceIdentifier) SetClientId(v string) *ResourceIdentifier {
52479	s.ClientId = &v
52480	return s
52481}
52482
52483// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
52484func (s *ResourceIdentifier) SetCognitoIdentityPoolId(v string) *ResourceIdentifier {
52485	s.CognitoIdentityPoolId = &v
52486	return s
52487}
52488
52489// SetDeviceCertificateId sets the DeviceCertificateId field's value.
52490func (s *ResourceIdentifier) SetDeviceCertificateId(v string) *ResourceIdentifier {
52491	s.DeviceCertificateId = &v
52492	return s
52493}
52494
52495// SetIamRoleArn sets the IamRoleArn field's value.
52496func (s *ResourceIdentifier) SetIamRoleArn(v string) *ResourceIdentifier {
52497	s.IamRoleArn = &v
52498	return s
52499}
52500
52501// SetPolicyVersionIdentifier sets the PolicyVersionIdentifier field's value.
52502func (s *ResourceIdentifier) SetPolicyVersionIdentifier(v *PolicyVersionIdentifier) *ResourceIdentifier {
52503	s.PolicyVersionIdentifier = v
52504	return s
52505}
52506
52507// SetRoleAliasArn sets the RoleAliasArn field's value.
52508func (s *ResourceIdentifier) SetRoleAliasArn(v string) *ResourceIdentifier {
52509	s.RoleAliasArn = &v
52510	return s
52511}
52512
52513// The specified resource does not exist.
52514type ResourceNotFoundException struct {
52515	_            struct{}                  `type:"structure"`
52516	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
52517
52518	// The message for the exception.
52519	Message_ *string `locationName:"message" type:"string"`
52520}
52521
52522// String returns the string representation
52523func (s ResourceNotFoundException) String() string {
52524	return awsutil.Prettify(s)
52525}
52526
52527// GoString returns the string representation
52528func (s ResourceNotFoundException) GoString() string {
52529	return s.String()
52530}
52531
52532func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
52533	return &ResourceNotFoundException{
52534		RespMetadata: v,
52535	}
52536}
52537
52538// Code returns the exception type name.
52539func (s *ResourceNotFoundException) Code() string {
52540	return "ResourceNotFoundException"
52541}
52542
52543// Message returns the exception's message.
52544func (s *ResourceNotFoundException) Message() string {
52545	if s.Message_ != nil {
52546		return *s.Message_
52547	}
52548	return ""
52549}
52550
52551// OrigErr always returns nil, satisfies awserr.Error interface.
52552func (s *ResourceNotFoundException) OrigErr() error {
52553	return nil
52554}
52555
52556func (s *ResourceNotFoundException) Error() string {
52557	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
52558}
52559
52560// Status code returns the HTTP status code for the request's response error.
52561func (s *ResourceNotFoundException) StatusCode() int {
52562	return s.RespMetadata.StatusCode
52563}
52564
52565// RequestID returns the service's response RequestID for request.
52566func (s *ResourceNotFoundException) RequestID() string {
52567	return s.RespMetadata.RequestID
52568}
52569
52570// The resource registration failed.
52571type ResourceRegistrationFailureException struct {
52572	_            struct{}                  `type:"structure"`
52573	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
52574
52575	// The message for the exception.
52576	Message_ *string `locationName:"message" type:"string"`
52577}
52578
52579// String returns the string representation
52580func (s ResourceRegistrationFailureException) String() string {
52581	return awsutil.Prettify(s)
52582}
52583
52584// GoString returns the string representation
52585func (s ResourceRegistrationFailureException) GoString() string {
52586	return s.String()
52587}
52588
52589func newErrorResourceRegistrationFailureException(v protocol.ResponseMetadata) error {
52590	return &ResourceRegistrationFailureException{
52591		RespMetadata: v,
52592	}
52593}
52594
52595// Code returns the exception type name.
52596func (s *ResourceRegistrationFailureException) Code() string {
52597	return "ResourceRegistrationFailureException"
52598}
52599
52600// Message returns the exception's message.
52601func (s *ResourceRegistrationFailureException) Message() string {
52602	if s.Message_ != nil {
52603		return *s.Message_
52604	}
52605	return ""
52606}
52607
52608// OrigErr always returns nil, satisfies awserr.Error interface.
52609func (s *ResourceRegistrationFailureException) OrigErr() error {
52610	return nil
52611}
52612
52613func (s *ResourceRegistrationFailureException) Error() string {
52614	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
52615}
52616
52617// Status code returns the HTTP status code for the request's response error.
52618func (s *ResourceRegistrationFailureException) StatusCode() int {
52619	return s.RespMetadata.StatusCode
52620}
52621
52622// RequestID returns the service's response RequestID for request.
52623func (s *ResourceRegistrationFailureException) RequestID() string {
52624	return s.RespMetadata.RequestID
52625}
52626
52627// Role alias description.
52628type RoleAliasDescription struct {
52629	_ struct{} `type:"structure"`
52630
52631	// The UNIX timestamp of when the role alias was created.
52632	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
52633
52634	// The number of seconds for which the credential is valid.
52635	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
52636
52637	// The UNIX timestamp of when the role alias was last modified.
52638	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
52639
52640	// The role alias owner.
52641	Owner *string `locationName:"owner" min:"12" type:"string"`
52642
52643	// The role alias.
52644	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
52645
52646	// The ARN of the role alias.
52647	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
52648
52649	// The role ARN.
52650	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
52651}
52652
52653// String returns the string representation
52654func (s RoleAliasDescription) String() string {
52655	return awsutil.Prettify(s)
52656}
52657
52658// GoString returns the string representation
52659func (s RoleAliasDescription) GoString() string {
52660	return s.String()
52661}
52662
52663// SetCreationDate sets the CreationDate field's value.
52664func (s *RoleAliasDescription) SetCreationDate(v time.Time) *RoleAliasDescription {
52665	s.CreationDate = &v
52666	return s
52667}
52668
52669// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
52670func (s *RoleAliasDescription) SetCredentialDurationSeconds(v int64) *RoleAliasDescription {
52671	s.CredentialDurationSeconds = &v
52672	return s
52673}
52674
52675// SetLastModifiedDate sets the LastModifiedDate field's value.
52676func (s *RoleAliasDescription) SetLastModifiedDate(v time.Time) *RoleAliasDescription {
52677	s.LastModifiedDate = &v
52678	return s
52679}
52680
52681// SetOwner sets the Owner field's value.
52682func (s *RoleAliasDescription) SetOwner(v string) *RoleAliasDescription {
52683	s.Owner = &v
52684	return s
52685}
52686
52687// SetRoleAlias sets the RoleAlias field's value.
52688func (s *RoleAliasDescription) SetRoleAlias(v string) *RoleAliasDescription {
52689	s.RoleAlias = &v
52690	return s
52691}
52692
52693// SetRoleAliasArn sets the RoleAliasArn field's value.
52694func (s *RoleAliasDescription) SetRoleAliasArn(v string) *RoleAliasDescription {
52695	s.RoleAliasArn = &v
52696	return s
52697}
52698
52699// SetRoleArn sets the RoleArn field's value.
52700func (s *RoleAliasDescription) SetRoleArn(v string) *RoleAliasDescription {
52701	s.RoleArn = &v
52702	return s
52703}
52704
52705// Describes an action to write data to an Amazon S3 bucket.
52706type S3Action struct {
52707	_ struct{} `type:"structure"`
52708
52709	// The Amazon S3 bucket.
52710	//
52711	// BucketName is a required field
52712	BucketName *string `locationName:"bucketName" type:"string" required:"true"`
52713
52714	// The Amazon S3 canned ACL that controls access to the object identified by
52715	// the object key. For more information, see S3 canned ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl).
52716	CannedAcl *string `locationName:"cannedAcl" type:"string" enum:"CannedAccessControlList"`
52717
52718	// The object key. For more information, see Actions, resources, and condition
52719	// keys for Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html).
52720	//
52721	// Key is a required field
52722	Key *string `locationName:"key" type:"string" required:"true"`
52723
52724	// The ARN of the IAM role that grants access.
52725	//
52726	// RoleArn is a required field
52727	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
52728}
52729
52730// String returns the string representation
52731func (s S3Action) String() string {
52732	return awsutil.Prettify(s)
52733}
52734
52735// GoString returns the string representation
52736func (s S3Action) GoString() string {
52737	return s.String()
52738}
52739
52740// Validate inspects the fields of the type to determine if they are valid.
52741func (s *S3Action) Validate() error {
52742	invalidParams := request.ErrInvalidParams{Context: "S3Action"}
52743	if s.BucketName == nil {
52744		invalidParams.Add(request.NewErrParamRequired("BucketName"))
52745	}
52746	if s.Key == nil {
52747		invalidParams.Add(request.NewErrParamRequired("Key"))
52748	}
52749	if s.RoleArn == nil {
52750		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
52751	}
52752
52753	if invalidParams.Len() > 0 {
52754		return invalidParams
52755	}
52756	return nil
52757}
52758
52759// SetBucketName sets the BucketName field's value.
52760func (s *S3Action) SetBucketName(v string) *S3Action {
52761	s.BucketName = &v
52762	return s
52763}
52764
52765// SetCannedAcl sets the CannedAcl field's value.
52766func (s *S3Action) SetCannedAcl(v string) *S3Action {
52767	s.CannedAcl = &v
52768	return s
52769}
52770
52771// SetKey sets the Key field's value.
52772func (s *S3Action) SetKey(v string) *S3Action {
52773	s.Key = &v
52774	return s
52775}
52776
52777// SetRoleArn sets the RoleArn field's value.
52778func (s *S3Action) SetRoleArn(v string) *S3Action {
52779	s.RoleArn = &v
52780	return s
52781}
52782
52783// Describes the location of updated firmware in S3.
52784type S3Destination struct {
52785	_ struct{} `type:"structure"`
52786
52787	// The S3 bucket that contains the updated firmware.
52788	Bucket *string `locationName:"bucket" min:"1" type:"string"`
52789
52790	// The S3 prefix.
52791	Prefix *string `locationName:"prefix" type:"string"`
52792}
52793
52794// String returns the string representation
52795func (s S3Destination) String() string {
52796	return awsutil.Prettify(s)
52797}
52798
52799// GoString returns the string representation
52800func (s S3Destination) GoString() string {
52801	return s.String()
52802}
52803
52804// Validate inspects the fields of the type to determine if they are valid.
52805func (s *S3Destination) Validate() error {
52806	invalidParams := request.ErrInvalidParams{Context: "S3Destination"}
52807	if s.Bucket != nil && len(*s.Bucket) < 1 {
52808		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
52809	}
52810
52811	if invalidParams.Len() > 0 {
52812		return invalidParams
52813	}
52814	return nil
52815}
52816
52817// SetBucket sets the Bucket field's value.
52818func (s *S3Destination) SetBucket(v string) *S3Destination {
52819	s.Bucket = &v
52820	return s
52821}
52822
52823// SetPrefix sets the Prefix field's value.
52824func (s *S3Destination) SetPrefix(v string) *S3Destination {
52825	s.Prefix = &v
52826	return s
52827}
52828
52829// The S3 location.
52830type S3Location struct {
52831	_ struct{} `type:"structure"`
52832
52833	// The S3 bucket.
52834	Bucket *string `locationName:"bucket" min:"1" type:"string"`
52835
52836	// The S3 key.
52837	Key *string `locationName:"key" min:"1" type:"string"`
52838
52839	// The S3 bucket version.
52840	Version *string `locationName:"version" type:"string"`
52841}
52842
52843// String returns the string representation
52844func (s S3Location) String() string {
52845	return awsutil.Prettify(s)
52846}
52847
52848// GoString returns the string representation
52849func (s S3Location) GoString() string {
52850	return s.String()
52851}
52852
52853// Validate inspects the fields of the type to determine if they are valid.
52854func (s *S3Location) Validate() error {
52855	invalidParams := request.ErrInvalidParams{Context: "S3Location"}
52856	if s.Bucket != nil && len(*s.Bucket) < 1 {
52857		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
52858	}
52859	if s.Key != nil && len(*s.Key) < 1 {
52860		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
52861	}
52862
52863	if invalidParams.Len() > 0 {
52864		return invalidParams
52865	}
52866	return nil
52867}
52868
52869// SetBucket sets the Bucket field's value.
52870func (s *S3Location) SetBucket(v string) *S3Location {
52871	s.Bucket = &v
52872	return s
52873}
52874
52875// SetKey sets the Key field's value.
52876func (s *S3Location) SetKey(v string) *S3Location {
52877	s.Key = &v
52878	return s
52879}
52880
52881// SetVersion sets the Version field's value.
52882func (s *S3Location) SetVersion(v string) *S3Location {
52883	s.Version = &v
52884	return s
52885}
52886
52887// Describes an action to write a message to a Salesforce IoT Cloud Input Stream.
52888type SalesforceAction struct {
52889	_ struct{} `type:"structure"`
52890
52891	// The token used to authenticate access to the Salesforce IoT Cloud Input Stream.
52892	// The token is available from the Salesforce IoT Cloud platform after creation
52893	// of the Input Stream.
52894	//
52895	// Token is a required field
52896	Token *string `locationName:"token" min:"40" type:"string" required:"true"`
52897
52898	// The URL exposed by the Salesforce IoT Cloud Input Stream. The URL is available
52899	// from the Salesforce IoT Cloud platform after creation of the Input Stream.
52900	//
52901	// Url is a required field
52902	Url *string `locationName:"url" type:"string" required:"true"`
52903}
52904
52905// String returns the string representation
52906func (s SalesforceAction) String() string {
52907	return awsutil.Prettify(s)
52908}
52909
52910// GoString returns the string representation
52911func (s SalesforceAction) GoString() string {
52912	return s.String()
52913}
52914
52915// Validate inspects the fields of the type to determine if they are valid.
52916func (s *SalesforceAction) Validate() error {
52917	invalidParams := request.ErrInvalidParams{Context: "SalesforceAction"}
52918	if s.Token == nil {
52919		invalidParams.Add(request.NewErrParamRequired("Token"))
52920	}
52921	if s.Token != nil && len(*s.Token) < 40 {
52922		invalidParams.Add(request.NewErrParamMinLen("Token", 40))
52923	}
52924	if s.Url == nil {
52925		invalidParams.Add(request.NewErrParamRequired("Url"))
52926	}
52927
52928	if invalidParams.Len() > 0 {
52929		return invalidParams
52930	}
52931	return nil
52932}
52933
52934// SetToken sets the Token field's value.
52935func (s *SalesforceAction) SetToken(v string) *SalesforceAction {
52936	s.Token = &v
52937	return s
52938}
52939
52940// SetUrl sets the Url field's value.
52941func (s *SalesforceAction) SetUrl(v string) *SalesforceAction {
52942	s.Url = &v
52943	return s
52944}
52945
52946// Information about the scheduled audit.
52947type ScheduledAuditMetadata struct {
52948	_ struct{} `type:"structure"`
52949
52950	// The day of the month on which the scheduled audit is run (if the frequency
52951	// is "MONTHLY"). If days 29-31 are specified, and the month does not have that
52952	// many days, the audit takes place on the "LAST" day of the month.
52953	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
52954
52955	// The day of the week on which the scheduled audit is run (if the frequency
52956	// is "WEEKLY" or "BIWEEKLY").
52957	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
52958
52959	// How often the scheduled audit occurs.
52960	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
52961
52962	// The ARN of the scheduled audit.
52963	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
52964
52965	// The name of the scheduled audit.
52966	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
52967}
52968
52969// String returns the string representation
52970func (s ScheduledAuditMetadata) String() string {
52971	return awsutil.Prettify(s)
52972}
52973
52974// GoString returns the string representation
52975func (s ScheduledAuditMetadata) GoString() string {
52976	return s.String()
52977}
52978
52979// SetDayOfMonth sets the DayOfMonth field's value.
52980func (s *ScheduledAuditMetadata) SetDayOfMonth(v string) *ScheduledAuditMetadata {
52981	s.DayOfMonth = &v
52982	return s
52983}
52984
52985// SetDayOfWeek sets the DayOfWeek field's value.
52986func (s *ScheduledAuditMetadata) SetDayOfWeek(v string) *ScheduledAuditMetadata {
52987	s.DayOfWeek = &v
52988	return s
52989}
52990
52991// SetFrequency sets the Frequency field's value.
52992func (s *ScheduledAuditMetadata) SetFrequency(v string) *ScheduledAuditMetadata {
52993	s.Frequency = &v
52994	return s
52995}
52996
52997// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
52998func (s *ScheduledAuditMetadata) SetScheduledAuditArn(v string) *ScheduledAuditMetadata {
52999	s.ScheduledAuditArn = &v
53000	return s
53001}
53002
53003// SetScheduledAuditName sets the ScheduledAuditName field's value.
53004func (s *ScheduledAuditMetadata) SetScheduledAuditName(v string) *ScheduledAuditMetadata {
53005	s.ScheduledAuditName = &v
53006	return s
53007}
53008
53009type SearchIndexInput struct {
53010	_ struct{} `type:"structure"`
53011
53012	// The search index name.
53013	IndexName *string `locationName:"indexName" min:"1" type:"string"`
53014
53015	// The maximum number of results to return at one time.
53016	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
53017
53018	// The token used to get the next set of results, or null if there are no additional
53019	// results.
53020	NextToken *string `locationName:"nextToken" type:"string"`
53021
53022	// The search query string.
53023	//
53024	// QueryString is a required field
53025	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
53026
53027	// The query version.
53028	QueryVersion *string `locationName:"queryVersion" type:"string"`
53029}
53030
53031// String returns the string representation
53032func (s SearchIndexInput) String() string {
53033	return awsutil.Prettify(s)
53034}
53035
53036// GoString returns the string representation
53037func (s SearchIndexInput) GoString() string {
53038	return s.String()
53039}
53040
53041// Validate inspects the fields of the type to determine if they are valid.
53042func (s *SearchIndexInput) Validate() error {
53043	invalidParams := request.ErrInvalidParams{Context: "SearchIndexInput"}
53044	if s.IndexName != nil && len(*s.IndexName) < 1 {
53045		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
53046	}
53047	if s.MaxResults != nil && *s.MaxResults < 1 {
53048		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
53049	}
53050	if s.QueryString == nil {
53051		invalidParams.Add(request.NewErrParamRequired("QueryString"))
53052	}
53053	if s.QueryString != nil && len(*s.QueryString) < 1 {
53054		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
53055	}
53056
53057	if invalidParams.Len() > 0 {
53058		return invalidParams
53059	}
53060	return nil
53061}
53062
53063// SetIndexName sets the IndexName field's value.
53064func (s *SearchIndexInput) SetIndexName(v string) *SearchIndexInput {
53065	s.IndexName = &v
53066	return s
53067}
53068
53069// SetMaxResults sets the MaxResults field's value.
53070func (s *SearchIndexInput) SetMaxResults(v int64) *SearchIndexInput {
53071	s.MaxResults = &v
53072	return s
53073}
53074
53075// SetNextToken sets the NextToken field's value.
53076func (s *SearchIndexInput) SetNextToken(v string) *SearchIndexInput {
53077	s.NextToken = &v
53078	return s
53079}
53080
53081// SetQueryString sets the QueryString field's value.
53082func (s *SearchIndexInput) SetQueryString(v string) *SearchIndexInput {
53083	s.QueryString = &v
53084	return s
53085}
53086
53087// SetQueryVersion sets the QueryVersion field's value.
53088func (s *SearchIndexInput) SetQueryVersion(v string) *SearchIndexInput {
53089	s.QueryVersion = &v
53090	return s
53091}
53092
53093type SearchIndexOutput struct {
53094	_ struct{} `type:"structure"`
53095
53096	// The token used to get the next set of results, or null if there are no additional
53097	// results.
53098	NextToken *string `locationName:"nextToken" type:"string"`
53099
53100	// The thing groups that match the search query.
53101	ThingGroups []*ThingGroupDocument `locationName:"thingGroups" type:"list"`
53102
53103	// The things that match the search query.
53104	Things []*ThingDocument `locationName:"things" type:"list"`
53105}
53106
53107// String returns the string representation
53108func (s SearchIndexOutput) String() string {
53109	return awsutil.Prettify(s)
53110}
53111
53112// GoString returns the string representation
53113func (s SearchIndexOutput) GoString() string {
53114	return s.String()
53115}
53116
53117// SetNextToken sets the NextToken field's value.
53118func (s *SearchIndexOutput) SetNextToken(v string) *SearchIndexOutput {
53119	s.NextToken = &v
53120	return s
53121}
53122
53123// SetThingGroups sets the ThingGroups field's value.
53124func (s *SearchIndexOutput) SetThingGroups(v []*ThingGroupDocument) *SearchIndexOutput {
53125	s.ThingGroups = v
53126	return s
53127}
53128
53129// SetThings sets the Things field's value.
53130func (s *SearchIndexOutput) SetThings(v []*ThingDocument) *SearchIndexOutput {
53131	s.Things = v
53132	return s
53133}
53134
53135// Identifying information for a Device Defender security profile.
53136type SecurityProfileIdentifier struct {
53137	_ struct{} `type:"structure"`
53138
53139	// The ARN of the security profile.
53140	//
53141	// Arn is a required field
53142	Arn *string `locationName:"arn" type:"string" required:"true"`
53143
53144	// The name you've given to the security profile.
53145	//
53146	// Name is a required field
53147	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
53148}
53149
53150// String returns the string representation
53151func (s SecurityProfileIdentifier) String() string {
53152	return awsutil.Prettify(s)
53153}
53154
53155// GoString returns the string representation
53156func (s SecurityProfileIdentifier) GoString() string {
53157	return s.String()
53158}
53159
53160// SetArn sets the Arn field's value.
53161func (s *SecurityProfileIdentifier) SetArn(v string) *SecurityProfileIdentifier {
53162	s.Arn = &v
53163	return s
53164}
53165
53166// SetName sets the Name field's value.
53167func (s *SecurityProfileIdentifier) SetName(v string) *SecurityProfileIdentifier {
53168	s.Name = &v
53169	return s
53170}
53171
53172// A target to which an alert is sent when a security profile behavior is violated.
53173type SecurityProfileTarget struct {
53174	_ struct{} `type:"structure"`
53175
53176	// The ARN of the security profile.
53177	//
53178	// Arn is a required field
53179	Arn *string `locationName:"arn" type:"string" required:"true"`
53180}
53181
53182// String returns the string representation
53183func (s SecurityProfileTarget) String() string {
53184	return awsutil.Prettify(s)
53185}
53186
53187// GoString returns the string representation
53188func (s SecurityProfileTarget) GoString() string {
53189	return s.String()
53190}
53191
53192// SetArn sets the Arn field's value.
53193func (s *SecurityProfileTarget) SetArn(v string) *SecurityProfileTarget {
53194	s.Arn = &v
53195	return s
53196}
53197
53198// Information about a security profile and the target associated with it.
53199type SecurityProfileTargetMapping struct {
53200	_ struct{} `type:"structure"`
53201
53202	// Information that identifies the security profile.
53203	SecurityProfileIdentifier *SecurityProfileIdentifier `locationName:"securityProfileIdentifier" type:"structure"`
53204
53205	// Information about the target (thing group) associated with the security profile.
53206	Target *SecurityProfileTarget `locationName:"target" type:"structure"`
53207}
53208
53209// String returns the string representation
53210func (s SecurityProfileTargetMapping) String() string {
53211	return awsutil.Prettify(s)
53212}
53213
53214// GoString returns the string representation
53215func (s SecurityProfileTargetMapping) GoString() string {
53216	return s.String()
53217}
53218
53219// SetSecurityProfileIdentifier sets the SecurityProfileIdentifier field's value.
53220func (s *SecurityProfileTargetMapping) SetSecurityProfileIdentifier(v *SecurityProfileIdentifier) *SecurityProfileTargetMapping {
53221	s.SecurityProfileIdentifier = v
53222	return s
53223}
53224
53225// SetTarget sets the Target field's value.
53226func (s *SecurityProfileTargetMapping) SetTarget(v *SecurityProfileTarget) *SecurityProfileTargetMapping {
53227	s.Target = v
53228	return s
53229}
53230
53231// An object that contains information about a server certificate.
53232type ServerCertificateSummary struct {
53233	_ struct{} `type:"structure"`
53234
53235	// The ARN of the server certificate.
53236	ServerCertificateArn *string `locationName:"serverCertificateArn" min:"1" type:"string"`
53237
53238	// The status of the server certificate.
53239	ServerCertificateStatus *string `locationName:"serverCertificateStatus" type:"string" enum:"ServerCertificateStatus"`
53240
53241	// Details that explain the status of the server certificate.
53242	ServerCertificateStatusDetail *string `locationName:"serverCertificateStatusDetail" type:"string"`
53243}
53244
53245// String returns the string representation
53246func (s ServerCertificateSummary) String() string {
53247	return awsutil.Prettify(s)
53248}
53249
53250// GoString returns the string representation
53251func (s ServerCertificateSummary) GoString() string {
53252	return s.String()
53253}
53254
53255// SetServerCertificateArn sets the ServerCertificateArn field's value.
53256func (s *ServerCertificateSummary) SetServerCertificateArn(v string) *ServerCertificateSummary {
53257	s.ServerCertificateArn = &v
53258	return s
53259}
53260
53261// SetServerCertificateStatus sets the ServerCertificateStatus field's value.
53262func (s *ServerCertificateSummary) SetServerCertificateStatus(v string) *ServerCertificateSummary {
53263	s.ServerCertificateStatus = &v
53264	return s
53265}
53266
53267// SetServerCertificateStatusDetail sets the ServerCertificateStatusDetail field's value.
53268func (s *ServerCertificateSummary) SetServerCertificateStatusDetail(v string) *ServerCertificateSummary {
53269	s.ServerCertificateStatusDetail = &v
53270	return s
53271}
53272
53273// The service is temporarily unavailable.
53274type ServiceUnavailableException struct {
53275	_            struct{}                  `type:"structure"`
53276	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
53277
53278	// The message for the exception.
53279	Message_ *string `locationName:"message" type:"string"`
53280}
53281
53282// String returns the string representation
53283func (s ServiceUnavailableException) String() string {
53284	return awsutil.Prettify(s)
53285}
53286
53287// GoString returns the string representation
53288func (s ServiceUnavailableException) GoString() string {
53289	return s.String()
53290}
53291
53292func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
53293	return &ServiceUnavailableException{
53294		RespMetadata: v,
53295	}
53296}
53297
53298// Code returns the exception type name.
53299func (s *ServiceUnavailableException) Code() string {
53300	return "ServiceUnavailableException"
53301}
53302
53303// Message returns the exception's message.
53304func (s *ServiceUnavailableException) Message() string {
53305	if s.Message_ != nil {
53306		return *s.Message_
53307	}
53308	return ""
53309}
53310
53311// OrigErr always returns nil, satisfies awserr.Error interface.
53312func (s *ServiceUnavailableException) OrigErr() error {
53313	return nil
53314}
53315
53316func (s *ServiceUnavailableException) Error() string {
53317	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
53318}
53319
53320// Status code returns the HTTP status code for the request's response error.
53321func (s *ServiceUnavailableException) StatusCode() int {
53322	return s.RespMetadata.StatusCode
53323}
53324
53325// RequestID returns the service's response RequestID for request.
53326func (s *ServiceUnavailableException) RequestID() string {
53327	return s.RespMetadata.RequestID
53328}
53329
53330type SetDefaultAuthorizerInput struct {
53331	_ struct{} `type:"structure"`
53332
53333	// The authorizer name.
53334	//
53335	// AuthorizerName is a required field
53336	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string" required:"true"`
53337}
53338
53339// String returns the string representation
53340func (s SetDefaultAuthorizerInput) String() string {
53341	return awsutil.Prettify(s)
53342}
53343
53344// GoString returns the string representation
53345func (s SetDefaultAuthorizerInput) GoString() string {
53346	return s.String()
53347}
53348
53349// Validate inspects the fields of the type to determine if they are valid.
53350func (s *SetDefaultAuthorizerInput) Validate() error {
53351	invalidParams := request.ErrInvalidParams{Context: "SetDefaultAuthorizerInput"}
53352	if s.AuthorizerName == nil {
53353		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
53354	}
53355	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
53356		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
53357	}
53358
53359	if invalidParams.Len() > 0 {
53360		return invalidParams
53361	}
53362	return nil
53363}
53364
53365// SetAuthorizerName sets the AuthorizerName field's value.
53366func (s *SetDefaultAuthorizerInput) SetAuthorizerName(v string) *SetDefaultAuthorizerInput {
53367	s.AuthorizerName = &v
53368	return s
53369}
53370
53371type SetDefaultAuthorizerOutput struct {
53372	_ struct{} `type:"structure"`
53373
53374	// The authorizer ARN.
53375	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
53376
53377	// The authorizer name.
53378	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
53379}
53380
53381// String returns the string representation
53382func (s SetDefaultAuthorizerOutput) String() string {
53383	return awsutil.Prettify(s)
53384}
53385
53386// GoString returns the string representation
53387func (s SetDefaultAuthorizerOutput) GoString() string {
53388	return s.String()
53389}
53390
53391// SetAuthorizerArn sets the AuthorizerArn field's value.
53392func (s *SetDefaultAuthorizerOutput) SetAuthorizerArn(v string) *SetDefaultAuthorizerOutput {
53393	s.AuthorizerArn = &v
53394	return s
53395}
53396
53397// SetAuthorizerName sets the AuthorizerName field's value.
53398func (s *SetDefaultAuthorizerOutput) SetAuthorizerName(v string) *SetDefaultAuthorizerOutput {
53399	s.AuthorizerName = &v
53400	return s
53401}
53402
53403// The input for the SetDefaultPolicyVersion operation.
53404type SetDefaultPolicyVersionInput struct {
53405	_ struct{} `type:"structure"`
53406
53407	// The policy name.
53408	//
53409	// PolicyName is a required field
53410	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
53411
53412	// The policy version ID.
53413	//
53414	// PolicyVersionId is a required field
53415	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
53416}
53417
53418// String returns the string representation
53419func (s SetDefaultPolicyVersionInput) String() string {
53420	return awsutil.Prettify(s)
53421}
53422
53423// GoString returns the string representation
53424func (s SetDefaultPolicyVersionInput) GoString() string {
53425	return s.String()
53426}
53427
53428// Validate inspects the fields of the type to determine if they are valid.
53429func (s *SetDefaultPolicyVersionInput) Validate() error {
53430	invalidParams := request.ErrInvalidParams{Context: "SetDefaultPolicyVersionInput"}
53431	if s.PolicyName == nil {
53432		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
53433	}
53434	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
53435		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
53436	}
53437	if s.PolicyVersionId == nil {
53438		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
53439	}
53440	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
53441		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
53442	}
53443
53444	if invalidParams.Len() > 0 {
53445		return invalidParams
53446	}
53447	return nil
53448}
53449
53450// SetPolicyName sets the PolicyName field's value.
53451func (s *SetDefaultPolicyVersionInput) SetPolicyName(v string) *SetDefaultPolicyVersionInput {
53452	s.PolicyName = &v
53453	return s
53454}
53455
53456// SetPolicyVersionId sets the PolicyVersionId field's value.
53457func (s *SetDefaultPolicyVersionInput) SetPolicyVersionId(v string) *SetDefaultPolicyVersionInput {
53458	s.PolicyVersionId = &v
53459	return s
53460}
53461
53462type SetDefaultPolicyVersionOutput struct {
53463	_ struct{} `type:"structure"`
53464}
53465
53466// String returns the string representation
53467func (s SetDefaultPolicyVersionOutput) String() string {
53468	return awsutil.Prettify(s)
53469}
53470
53471// GoString returns the string representation
53472func (s SetDefaultPolicyVersionOutput) GoString() string {
53473	return s.String()
53474}
53475
53476// The input for the SetLoggingOptions operation.
53477type SetLoggingOptionsInput struct {
53478	_ struct{} `type:"structure" payload:"LoggingOptionsPayload"`
53479
53480	// The logging options payload.
53481	//
53482	// LoggingOptionsPayload is a required field
53483	LoggingOptionsPayload *LoggingOptionsPayload `locationName:"loggingOptionsPayload" type:"structure" required:"true"`
53484}
53485
53486// String returns the string representation
53487func (s SetLoggingOptionsInput) String() string {
53488	return awsutil.Prettify(s)
53489}
53490
53491// GoString returns the string representation
53492func (s SetLoggingOptionsInput) GoString() string {
53493	return s.String()
53494}
53495
53496// Validate inspects the fields of the type to determine if they are valid.
53497func (s *SetLoggingOptionsInput) Validate() error {
53498	invalidParams := request.ErrInvalidParams{Context: "SetLoggingOptionsInput"}
53499	if s.LoggingOptionsPayload == nil {
53500		invalidParams.Add(request.NewErrParamRequired("LoggingOptionsPayload"))
53501	}
53502	if s.LoggingOptionsPayload != nil {
53503		if err := s.LoggingOptionsPayload.Validate(); err != nil {
53504			invalidParams.AddNested("LoggingOptionsPayload", err.(request.ErrInvalidParams))
53505		}
53506	}
53507
53508	if invalidParams.Len() > 0 {
53509		return invalidParams
53510	}
53511	return nil
53512}
53513
53514// SetLoggingOptionsPayload sets the LoggingOptionsPayload field's value.
53515func (s *SetLoggingOptionsInput) SetLoggingOptionsPayload(v *LoggingOptionsPayload) *SetLoggingOptionsInput {
53516	s.LoggingOptionsPayload = v
53517	return s
53518}
53519
53520type SetLoggingOptionsOutput struct {
53521	_ struct{} `type:"structure"`
53522}
53523
53524// String returns the string representation
53525func (s SetLoggingOptionsOutput) String() string {
53526	return awsutil.Prettify(s)
53527}
53528
53529// GoString returns the string representation
53530func (s SetLoggingOptionsOutput) GoString() string {
53531	return s.String()
53532}
53533
53534type SetV2LoggingLevelInput struct {
53535	_ struct{} `type:"structure"`
53536
53537	// The log level.
53538	//
53539	// LogLevel is a required field
53540	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
53541
53542	// The log target.
53543	//
53544	// LogTarget is a required field
53545	LogTarget *LogTarget `locationName:"logTarget" type:"structure" required:"true"`
53546}
53547
53548// String returns the string representation
53549func (s SetV2LoggingLevelInput) String() string {
53550	return awsutil.Prettify(s)
53551}
53552
53553// GoString returns the string representation
53554func (s SetV2LoggingLevelInput) GoString() string {
53555	return s.String()
53556}
53557
53558// Validate inspects the fields of the type to determine if they are valid.
53559func (s *SetV2LoggingLevelInput) Validate() error {
53560	invalidParams := request.ErrInvalidParams{Context: "SetV2LoggingLevelInput"}
53561	if s.LogLevel == nil {
53562		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
53563	}
53564	if s.LogTarget == nil {
53565		invalidParams.Add(request.NewErrParamRequired("LogTarget"))
53566	}
53567	if s.LogTarget != nil {
53568		if err := s.LogTarget.Validate(); err != nil {
53569			invalidParams.AddNested("LogTarget", err.(request.ErrInvalidParams))
53570		}
53571	}
53572
53573	if invalidParams.Len() > 0 {
53574		return invalidParams
53575	}
53576	return nil
53577}
53578
53579// SetLogLevel sets the LogLevel field's value.
53580func (s *SetV2LoggingLevelInput) SetLogLevel(v string) *SetV2LoggingLevelInput {
53581	s.LogLevel = &v
53582	return s
53583}
53584
53585// SetLogTarget sets the LogTarget field's value.
53586func (s *SetV2LoggingLevelInput) SetLogTarget(v *LogTarget) *SetV2LoggingLevelInput {
53587	s.LogTarget = v
53588	return s
53589}
53590
53591type SetV2LoggingLevelOutput struct {
53592	_ struct{} `type:"structure"`
53593}
53594
53595// String returns the string representation
53596func (s SetV2LoggingLevelOutput) String() string {
53597	return awsutil.Prettify(s)
53598}
53599
53600// GoString returns the string representation
53601func (s SetV2LoggingLevelOutput) GoString() string {
53602	return s.String()
53603}
53604
53605type SetV2LoggingOptionsInput struct {
53606	_ struct{} `type:"structure"`
53607
53608	// The default logging level.
53609	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
53610
53611	// If true all logs are disabled. The default is false.
53612	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
53613
53614	// The ARN of the role that allows IoT to write to Cloudwatch logs.
53615	RoleArn *string `locationName:"roleArn" type:"string"`
53616}
53617
53618// String returns the string representation
53619func (s SetV2LoggingOptionsInput) String() string {
53620	return awsutil.Prettify(s)
53621}
53622
53623// GoString returns the string representation
53624func (s SetV2LoggingOptionsInput) GoString() string {
53625	return s.String()
53626}
53627
53628// SetDefaultLogLevel sets the DefaultLogLevel field's value.
53629func (s *SetV2LoggingOptionsInput) SetDefaultLogLevel(v string) *SetV2LoggingOptionsInput {
53630	s.DefaultLogLevel = &v
53631	return s
53632}
53633
53634// SetDisableAllLogs sets the DisableAllLogs field's value.
53635func (s *SetV2LoggingOptionsInput) SetDisableAllLogs(v bool) *SetV2LoggingOptionsInput {
53636	s.DisableAllLogs = &v
53637	return s
53638}
53639
53640// SetRoleArn sets the RoleArn field's value.
53641func (s *SetV2LoggingOptionsInput) SetRoleArn(v string) *SetV2LoggingOptionsInput {
53642	s.RoleArn = &v
53643	return s
53644}
53645
53646type SetV2LoggingOptionsOutput struct {
53647	_ struct{} `type:"structure"`
53648}
53649
53650// String returns the string representation
53651func (s SetV2LoggingOptionsOutput) String() string {
53652	return awsutil.Prettify(s)
53653}
53654
53655// GoString returns the string representation
53656func (s SetV2LoggingOptionsOutput) GoString() string {
53657	return s.String()
53658}
53659
53660// For more information, see Signature Version 4 signing process (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
53661type SigV4Authorization struct {
53662	_ struct{} `type:"structure"`
53663
53664	// The ARN of the signing role.
53665	//
53666	// RoleArn is a required field
53667	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
53668
53669	// The service name to use while signing with Sig V4.
53670	//
53671	// ServiceName is a required field
53672	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
53673
53674	// The signing region.
53675	//
53676	// SigningRegion is a required field
53677	SigningRegion *string `locationName:"signingRegion" type:"string" required:"true"`
53678}
53679
53680// String returns the string representation
53681func (s SigV4Authorization) String() string {
53682	return awsutil.Prettify(s)
53683}
53684
53685// GoString returns the string representation
53686func (s SigV4Authorization) GoString() string {
53687	return s.String()
53688}
53689
53690// Validate inspects the fields of the type to determine if they are valid.
53691func (s *SigV4Authorization) Validate() error {
53692	invalidParams := request.ErrInvalidParams{Context: "SigV4Authorization"}
53693	if s.RoleArn == nil {
53694		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
53695	}
53696	if s.ServiceName == nil {
53697		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
53698	}
53699	if s.SigningRegion == nil {
53700		invalidParams.Add(request.NewErrParamRequired("SigningRegion"))
53701	}
53702
53703	if invalidParams.Len() > 0 {
53704		return invalidParams
53705	}
53706	return nil
53707}
53708
53709// SetRoleArn sets the RoleArn field's value.
53710func (s *SigV4Authorization) SetRoleArn(v string) *SigV4Authorization {
53711	s.RoleArn = &v
53712	return s
53713}
53714
53715// SetServiceName sets the ServiceName field's value.
53716func (s *SigV4Authorization) SetServiceName(v string) *SigV4Authorization {
53717	s.ServiceName = &v
53718	return s
53719}
53720
53721// SetSigningRegion sets the SigningRegion field's value.
53722func (s *SigV4Authorization) SetSigningRegion(v string) *SigV4Authorization {
53723	s.SigningRegion = &v
53724	return s
53725}
53726
53727// Describes the code-signing profile.
53728type SigningProfileParameter struct {
53729	_ struct{} `type:"structure"`
53730
53731	// Certificate ARN.
53732	CertificateArn *string `locationName:"certificateArn" type:"string"`
53733
53734	// The location of the code-signing certificate on your device.
53735	CertificatePathOnDevice *string `locationName:"certificatePathOnDevice" type:"string"`
53736
53737	// The hardware platform of your device.
53738	Platform *string `locationName:"platform" type:"string"`
53739}
53740
53741// String returns the string representation
53742func (s SigningProfileParameter) String() string {
53743	return awsutil.Prettify(s)
53744}
53745
53746// GoString returns the string representation
53747func (s SigningProfileParameter) GoString() string {
53748	return s.String()
53749}
53750
53751// SetCertificateArn sets the CertificateArn field's value.
53752func (s *SigningProfileParameter) SetCertificateArn(v string) *SigningProfileParameter {
53753	s.CertificateArn = &v
53754	return s
53755}
53756
53757// SetCertificatePathOnDevice sets the CertificatePathOnDevice field's value.
53758func (s *SigningProfileParameter) SetCertificatePathOnDevice(v string) *SigningProfileParameter {
53759	s.CertificatePathOnDevice = &v
53760	return s
53761}
53762
53763// SetPlatform sets the Platform field's value.
53764func (s *SigningProfileParameter) SetPlatform(v string) *SigningProfileParameter {
53765	s.Platform = &v
53766	return s
53767}
53768
53769// Describes an action to publish to an Amazon SNS topic.
53770type SnsAction struct {
53771	_ struct{} `type:"structure"`
53772
53773	// (Optional) The message format of the message to publish. Accepted values
53774	// are "JSON" and "RAW". The default value of the attribute is "RAW". SNS uses
53775	// this setting to determine if the payload should be parsed and relevant platform-specific
53776	// bits of the payload should be extracted. To read more about SNS message formats,
53777	// see https://docs.aws.amazon.com/sns/latest/dg/json-formats.html (https://docs.aws.amazon.com/sns/latest/dg/json-formats.html)
53778	// refer to their official documentation.
53779	MessageFormat *string `locationName:"messageFormat" type:"string" enum:"MessageFormat"`
53780
53781	// The ARN of the IAM role that grants access.
53782	//
53783	// RoleArn is a required field
53784	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
53785
53786	// The ARN of the SNS topic.
53787	//
53788	// TargetArn is a required field
53789	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
53790}
53791
53792// String returns the string representation
53793func (s SnsAction) String() string {
53794	return awsutil.Prettify(s)
53795}
53796
53797// GoString returns the string representation
53798func (s SnsAction) GoString() string {
53799	return s.String()
53800}
53801
53802// Validate inspects the fields of the type to determine if they are valid.
53803func (s *SnsAction) Validate() error {
53804	invalidParams := request.ErrInvalidParams{Context: "SnsAction"}
53805	if s.RoleArn == nil {
53806		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
53807	}
53808	if s.TargetArn == nil {
53809		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
53810	}
53811
53812	if invalidParams.Len() > 0 {
53813		return invalidParams
53814	}
53815	return nil
53816}
53817
53818// SetMessageFormat sets the MessageFormat field's value.
53819func (s *SnsAction) SetMessageFormat(v string) *SnsAction {
53820	s.MessageFormat = &v
53821	return s
53822}
53823
53824// SetRoleArn sets the RoleArn field's value.
53825func (s *SnsAction) SetRoleArn(v string) *SnsAction {
53826	s.RoleArn = &v
53827	return s
53828}
53829
53830// SetTargetArn sets the TargetArn field's value.
53831func (s *SnsAction) SetTargetArn(v string) *SnsAction {
53832	s.TargetArn = &v
53833	return s
53834}
53835
53836// The Rule-SQL expression can't be parsed correctly.
53837type SqlParseException struct {
53838	_            struct{}                  `type:"structure"`
53839	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
53840
53841	// The message for the exception.
53842	Message_ *string `locationName:"message" type:"string"`
53843}
53844
53845// String returns the string representation
53846func (s SqlParseException) String() string {
53847	return awsutil.Prettify(s)
53848}
53849
53850// GoString returns the string representation
53851func (s SqlParseException) GoString() string {
53852	return s.String()
53853}
53854
53855func newErrorSqlParseException(v protocol.ResponseMetadata) error {
53856	return &SqlParseException{
53857		RespMetadata: v,
53858	}
53859}
53860
53861// Code returns the exception type name.
53862func (s *SqlParseException) Code() string {
53863	return "SqlParseException"
53864}
53865
53866// Message returns the exception's message.
53867func (s *SqlParseException) Message() string {
53868	if s.Message_ != nil {
53869		return *s.Message_
53870	}
53871	return ""
53872}
53873
53874// OrigErr always returns nil, satisfies awserr.Error interface.
53875func (s *SqlParseException) OrigErr() error {
53876	return nil
53877}
53878
53879func (s *SqlParseException) Error() string {
53880	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
53881}
53882
53883// Status code returns the HTTP status code for the request's response error.
53884func (s *SqlParseException) StatusCode() int {
53885	return s.RespMetadata.StatusCode
53886}
53887
53888// RequestID returns the service's response RequestID for request.
53889func (s *SqlParseException) RequestID() string {
53890	return s.RespMetadata.RequestID
53891}
53892
53893// Describes an action to publish data to an Amazon SQS queue.
53894type SqsAction struct {
53895	_ struct{} `type:"structure"`
53896
53897	// The URL of the Amazon SQS queue.
53898	//
53899	// QueueUrl is a required field
53900	QueueUrl *string `locationName:"queueUrl" type:"string" required:"true"`
53901
53902	// The ARN of the IAM role that grants access.
53903	//
53904	// RoleArn is a required field
53905	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
53906
53907	// Specifies whether to use Base64 encoding.
53908	UseBase64 *bool `locationName:"useBase64" type:"boolean"`
53909}
53910
53911// String returns the string representation
53912func (s SqsAction) String() string {
53913	return awsutil.Prettify(s)
53914}
53915
53916// GoString returns the string representation
53917func (s SqsAction) GoString() string {
53918	return s.String()
53919}
53920
53921// Validate inspects the fields of the type to determine if they are valid.
53922func (s *SqsAction) Validate() error {
53923	invalidParams := request.ErrInvalidParams{Context: "SqsAction"}
53924	if s.QueueUrl == nil {
53925		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
53926	}
53927	if s.RoleArn == nil {
53928		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
53929	}
53930
53931	if invalidParams.Len() > 0 {
53932		return invalidParams
53933	}
53934	return nil
53935}
53936
53937// SetQueueUrl sets the QueueUrl field's value.
53938func (s *SqsAction) SetQueueUrl(v string) *SqsAction {
53939	s.QueueUrl = &v
53940	return s
53941}
53942
53943// SetRoleArn sets the RoleArn field's value.
53944func (s *SqsAction) SetRoleArn(v string) *SqsAction {
53945	s.RoleArn = &v
53946	return s
53947}
53948
53949// SetUseBase64 sets the UseBase64 field's value.
53950func (s *SqsAction) SetUseBase64(v bool) *SqsAction {
53951	s.UseBase64 = &v
53952	return s
53953}
53954
53955type StartAuditMitigationActionsTaskInput struct {
53956	_ struct{} `type:"structure"`
53957
53958	// For an audit check, specifies which mitigation actions to apply. Those actions
53959	// must be defined in your Amazon Web Services accounts.
53960	//
53961	// AuditCheckToActionsMapping is a required field
53962	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map" required:"true"`
53963
53964	// Each audit mitigation task must have a unique client request token. If you
53965	// try to start a new task with the same token as a task that already exists,
53966	// an exception occurs. If you omit this value, a unique client request token
53967	// is generated automatically.
53968	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
53969
53970	// Specifies the audit findings to which the mitigation actions are applied.
53971	// You can apply them to a type of audit check, to all findings from an audit,
53972	// or to a specific set of findings.
53973	//
53974	// Target is a required field
53975	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure" required:"true"`
53976
53977	// A unique identifier for the task. You can use this identifier to check the
53978	// status of the task or to cancel it.
53979	//
53980	// TaskId is a required field
53981	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
53982}
53983
53984// String returns the string representation
53985func (s StartAuditMitigationActionsTaskInput) String() string {
53986	return awsutil.Prettify(s)
53987}
53988
53989// GoString returns the string representation
53990func (s StartAuditMitigationActionsTaskInput) GoString() string {
53991	return s.String()
53992}
53993
53994// Validate inspects the fields of the type to determine if they are valid.
53995func (s *StartAuditMitigationActionsTaskInput) Validate() error {
53996	invalidParams := request.ErrInvalidParams{Context: "StartAuditMitigationActionsTaskInput"}
53997	if s.AuditCheckToActionsMapping == nil {
53998		invalidParams.Add(request.NewErrParamRequired("AuditCheckToActionsMapping"))
53999	}
54000	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
54001		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
54002	}
54003	if s.Target == nil {
54004		invalidParams.Add(request.NewErrParamRequired("Target"))
54005	}
54006	if s.TaskId == nil {
54007		invalidParams.Add(request.NewErrParamRequired("TaskId"))
54008	}
54009	if s.TaskId != nil && len(*s.TaskId) < 1 {
54010		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
54011	}
54012	if s.Target != nil {
54013		if err := s.Target.Validate(); err != nil {
54014			invalidParams.AddNested("Target", err.(request.ErrInvalidParams))
54015		}
54016	}
54017
54018	if invalidParams.Len() > 0 {
54019		return invalidParams
54020	}
54021	return nil
54022}
54023
54024// SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
54025func (s *StartAuditMitigationActionsTaskInput) SetAuditCheckToActionsMapping(v map[string][]*string) *StartAuditMitigationActionsTaskInput {
54026	s.AuditCheckToActionsMapping = v
54027	return s
54028}
54029
54030// SetClientRequestToken sets the ClientRequestToken field's value.
54031func (s *StartAuditMitigationActionsTaskInput) SetClientRequestToken(v string) *StartAuditMitigationActionsTaskInput {
54032	s.ClientRequestToken = &v
54033	return s
54034}
54035
54036// SetTarget sets the Target field's value.
54037func (s *StartAuditMitigationActionsTaskInput) SetTarget(v *AuditMitigationActionsTaskTarget) *StartAuditMitigationActionsTaskInput {
54038	s.Target = v
54039	return s
54040}
54041
54042// SetTaskId sets the TaskId field's value.
54043func (s *StartAuditMitigationActionsTaskInput) SetTaskId(v string) *StartAuditMitigationActionsTaskInput {
54044	s.TaskId = &v
54045	return s
54046}
54047
54048type StartAuditMitigationActionsTaskOutput struct {
54049	_ struct{} `type:"structure"`
54050
54051	// The unique identifier for the audit mitigation task. This matches the taskId
54052	// that you specified in the request.
54053	TaskId *string `locationName:"taskId" min:"1" type:"string"`
54054}
54055
54056// String returns the string representation
54057func (s StartAuditMitigationActionsTaskOutput) String() string {
54058	return awsutil.Prettify(s)
54059}
54060
54061// GoString returns the string representation
54062func (s StartAuditMitigationActionsTaskOutput) GoString() string {
54063	return s.String()
54064}
54065
54066// SetTaskId sets the TaskId field's value.
54067func (s *StartAuditMitigationActionsTaskOutput) SetTaskId(v string) *StartAuditMitigationActionsTaskOutput {
54068	s.TaskId = &v
54069	return s
54070}
54071
54072type StartDetectMitigationActionsTaskInput struct {
54073	_ struct{} `type:"structure"`
54074
54075	// The actions to be performed when a device has unexpected behavior.
54076	//
54077	// Actions is a required field
54078	Actions []*string `locationName:"actions" min:"1" type:"list" required:"true"`
54079
54080	// Each mitigation action task must have a unique client request token. If you
54081	// try to create a new task with the same token as a task that already exists,
54082	// an exception occurs. If you omit this value, Amazon Web Services SDKs will
54083	// automatically generate a unique client request.
54084	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
54085
54086	// Specifies to list only active violations.
54087	IncludeOnlyActiveViolations *bool `locationName:"includeOnlyActiveViolations" type:"boolean"`
54088
54089	// Specifies to include suppressed alerts.
54090	IncludeSuppressedAlerts *bool `locationName:"includeSuppressedAlerts" type:"boolean"`
54091
54092	// Specifies the ML Detect findings to which the mitigation actions are applied.
54093	//
54094	// Target is a required field
54095	Target *DetectMitigationActionsTaskTarget `locationName:"target" type:"structure" required:"true"`
54096
54097	// The unique identifier of the task.
54098	//
54099	// TaskId is a required field
54100	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
54101
54102	// Specifies the time period of which violation events occurred between.
54103	ViolationEventOccurrenceRange *ViolationEventOccurrenceRange `locationName:"violationEventOccurrenceRange" type:"structure"`
54104}
54105
54106// String returns the string representation
54107func (s StartDetectMitigationActionsTaskInput) String() string {
54108	return awsutil.Prettify(s)
54109}
54110
54111// GoString returns the string representation
54112func (s StartDetectMitigationActionsTaskInput) GoString() string {
54113	return s.String()
54114}
54115
54116// Validate inspects the fields of the type to determine if they are valid.
54117func (s *StartDetectMitigationActionsTaskInput) Validate() error {
54118	invalidParams := request.ErrInvalidParams{Context: "StartDetectMitigationActionsTaskInput"}
54119	if s.Actions == nil {
54120		invalidParams.Add(request.NewErrParamRequired("Actions"))
54121	}
54122	if s.Actions != nil && len(s.Actions) < 1 {
54123		invalidParams.Add(request.NewErrParamMinLen("Actions", 1))
54124	}
54125	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
54126		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
54127	}
54128	if s.Target == nil {
54129		invalidParams.Add(request.NewErrParamRequired("Target"))
54130	}
54131	if s.TaskId == nil {
54132		invalidParams.Add(request.NewErrParamRequired("TaskId"))
54133	}
54134	if s.TaskId != nil && len(*s.TaskId) < 1 {
54135		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
54136	}
54137	if s.Target != nil {
54138		if err := s.Target.Validate(); err != nil {
54139			invalidParams.AddNested("Target", err.(request.ErrInvalidParams))
54140		}
54141	}
54142	if s.ViolationEventOccurrenceRange != nil {
54143		if err := s.ViolationEventOccurrenceRange.Validate(); err != nil {
54144			invalidParams.AddNested("ViolationEventOccurrenceRange", err.(request.ErrInvalidParams))
54145		}
54146	}
54147
54148	if invalidParams.Len() > 0 {
54149		return invalidParams
54150	}
54151	return nil
54152}
54153
54154// SetActions sets the Actions field's value.
54155func (s *StartDetectMitigationActionsTaskInput) SetActions(v []*string) *StartDetectMitigationActionsTaskInput {
54156	s.Actions = v
54157	return s
54158}
54159
54160// SetClientRequestToken sets the ClientRequestToken field's value.
54161func (s *StartDetectMitigationActionsTaskInput) SetClientRequestToken(v string) *StartDetectMitigationActionsTaskInput {
54162	s.ClientRequestToken = &v
54163	return s
54164}
54165
54166// SetIncludeOnlyActiveViolations sets the IncludeOnlyActiveViolations field's value.
54167func (s *StartDetectMitigationActionsTaskInput) SetIncludeOnlyActiveViolations(v bool) *StartDetectMitigationActionsTaskInput {
54168	s.IncludeOnlyActiveViolations = &v
54169	return s
54170}
54171
54172// SetIncludeSuppressedAlerts sets the IncludeSuppressedAlerts field's value.
54173func (s *StartDetectMitigationActionsTaskInput) SetIncludeSuppressedAlerts(v bool) *StartDetectMitigationActionsTaskInput {
54174	s.IncludeSuppressedAlerts = &v
54175	return s
54176}
54177
54178// SetTarget sets the Target field's value.
54179func (s *StartDetectMitigationActionsTaskInput) SetTarget(v *DetectMitigationActionsTaskTarget) *StartDetectMitigationActionsTaskInput {
54180	s.Target = v
54181	return s
54182}
54183
54184// SetTaskId sets the TaskId field's value.
54185func (s *StartDetectMitigationActionsTaskInput) SetTaskId(v string) *StartDetectMitigationActionsTaskInput {
54186	s.TaskId = &v
54187	return s
54188}
54189
54190// SetViolationEventOccurrenceRange sets the ViolationEventOccurrenceRange field's value.
54191func (s *StartDetectMitigationActionsTaskInput) SetViolationEventOccurrenceRange(v *ViolationEventOccurrenceRange) *StartDetectMitigationActionsTaskInput {
54192	s.ViolationEventOccurrenceRange = v
54193	return s
54194}
54195
54196type StartDetectMitigationActionsTaskOutput struct {
54197	_ struct{} `type:"structure"`
54198
54199	// The unique identifier of the task.
54200	TaskId *string `locationName:"taskId" min:"1" type:"string"`
54201}
54202
54203// String returns the string representation
54204func (s StartDetectMitigationActionsTaskOutput) String() string {
54205	return awsutil.Prettify(s)
54206}
54207
54208// GoString returns the string representation
54209func (s StartDetectMitigationActionsTaskOutput) GoString() string {
54210	return s.String()
54211}
54212
54213// SetTaskId sets the TaskId field's value.
54214func (s *StartDetectMitigationActionsTaskOutput) SetTaskId(v string) *StartDetectMitigationActionsTaskOutput {
54215	s.TaskId = &v
54216	return s
54217}
54218
54219type StartOnDemandAuditTaskInput struct {
54220	_ struct{} `type:"structure"`
54221
54222	// Which checks are performed during the audit. The checks you specify must
54223	// be enabled for your account or an exception occurs. Use DescribeAccountAuditConfiguration
54224	// to see the list of all checks, including those that are enabled or UpdateAccountAuditConfiguration
54225	// to select which checks are enabled.
54226	//
54227	// TargetCheckNames is a required field
54228	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
54229}
54230
54231// String returns the string representation
54232func (s StartOnDemandAuditTaskInput) String() string {
54233	return awsutil.Prettify(s)
54234}
54235
54236// GoString returns the string representation
54237func (s StartOnDemandAuditTaskInput) GoString() string {
54238	return s.String()
54239}
54240
54241// Validate inspects the fields of the type to determine if they are valid.
54242func (s *StartOnDemandAuditTaskInput) Validate() error {
54243	invalidParams := request.ErrInvalidParams{Context: "StartOnDemandAuditTaskInput"}
54244	if s.TargetCheckNames == nil {
54245		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
54246	}
54247
54248	if invalidParams.Len() > 0 {
54249		return invalidParams
54250	}
54251	return nil
54252}
54253
54254// SetTargetCheckNames sets the TargetCheckNames field's value.
54255func (s *StartOnDemandAuditTaskInput) SetTargetCheckNames(v []*string) *StartOnDemandAuditTaskInput {
54256	s.TargetCheckNames = v
54257	return s
54258}
54259
54260type StartOnDemandAuditTaskOutput struct {
54261	_ struct{} `type:"structure"`
54262
54263	// The ID of the on-demand audit you started.
54264	TaskId *string `locationName:"taskId" min:"1" type:"string"`
54265}
54266
54267// String returns the string representation
54268func (s StartOnDemandAuditTaskOutput) String() string {
54269	return awsutil.Prettify(s)
54270}
54271
54272// GoString returns the string representation
54273func (s StartOnDemandAuditTaskOutput) GoString() string {
54274	return s.String()
54275}
54276
54277// SetTaskId sets the TaskId field's value.
54278func (s *StartOnDemandAuditTaskOutput) SetTaskId(v string) *StartOnDemandAuditTaskOutput {
54279	s.TaskId = &v
54280	return s
54281}
54282
54283// Information required to start a signing job.
54284type StartSigningJobParameter struct {
54285	_ struct{} `type:"structure"`
54286
54287	// The location to write the code-signed file.
54288	Destination *Destination `locationName:"destination" type:"structure"`
54289
54290	// The code-signing profile name.
54291	SigningProfileName *string `locationName:"signingProfileName" type:"string"`
54292
54293	// Describes the code-signing profile.
54294	SigningProfileParameter *SigningProfileParameter `locationName:"signingProfileParameter" type:"structure"`
54295}
54296
54297// String returns the string representation
54298func (s StartSigningJobParameter) String() string {
54299	return awsutil.Prettify(s)
54300}
54301
54302// GoString returns the string representation
54303func (s StartSigningJobParameter) GoString() string {
54304	return s.String()
54305}
54306
54307// Validate inspects the fields of the type to determine if they are valid.
54308func (s *StartSigningJobParameter) Validate() error {
54309	invalidParams := request.ErrInvalidParams{Context: "StartSigningJobParameter"}
54310	if s.Destination != nil {
54311		if err := s.Destination.Validate(); err != nil {
54312			invalidParams.AddNested("Destination", err.(request.ErrInvalidParams))
54313		}
54314	}
54315
54316	if invalidParams.Len() > 0 {
54317		return invalidParams
54318	}
54319	return nil
54320}
54321
54322// SetDestination sets the Destination field's value.
54323func (s *StartSigningJobParameter) SetDestination(v *Destination) *StartSigningJobParameter {
54324	s.Destination = v
54325	return s
54326}
54327
54328// SetSigningProfileName sets the SigningProfileName field's value.
54329func (s *StartSigningJobParameter) SetSigningProfileName(v string) *StartSigningJobParameter {
54330	s.SigningProfileName = &v
54331	return s
54332}
54333
54334// SetSigningProfileParameter sets the SigningProfileParameter field's value.
54335func (s *StartSigningJobParameter) SetSigningProfileParameter(v *SigningProfileParameter) *StartSigningJobParameter {
54336	s.SigningProfileParameter = v
54337	return s
54338}
54339
54340type StartThingRegistrationTaskInput struct {
54341	_ struct{} `type:"structure"`
54342
54343	// The S3 bucket that contains the input file.
54344	//
54345	// InputFileBucket is a required field
54346	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string" required:"true"`
54347
54348	// The name of input file within the S3 bucket. This file contains a newline
54349	// delimited JSON file. Each line contains the parameter values to provision
54350	// one device (thing).
54351	//
54352	// InputFileKey is a required field
54353	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string" required:"true"`
54354
54355	// The IAM role ARN that grants permission the input file.
54356	//
54357	// RoleArn is a required field
54358	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
54359
54360	// The provisioning template.
54361	//
54362	// TemplateBody is a required field
54363	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
54364}
54365
54366// String returns the string representation
54367func (s StartThingRegistrationTaskInput) String() string {
54368	return awsutil.Prettify(s)
54369}
54370
54371// GoString returns the string representation
54372func (s StartThingRegistrationTaskInput) GoString() string {
54373	return s.String()
54374}
54375
54376// Validate inspects the fields of the type to determine if they are valid.
54377func (s *StartThingRegistrationTaskInput) Validate() error {
54378	invalidParams := request.ErrInvalidParams{Context: "StartThingRegistrationTaskInput"}
54379	if s.InputFileBucket == nil {
54380		invalidParams.Add(request.NewErrParamRequired("InputFileBucket"))
54381	}
54382	if s.InputFileBucket != nil && len(*s.InputFileBucket) < 3 {
54383		invalidParams.Add(request.NewErrParamMinLen("InputFileBucket", 3))
54384	}
54385	if s.InputFileKey == nil {
54386		invalidParams.Add(request.NewErrParamRequired("InputFileKey"))
54387	}
54388	if s.InputFileKey != nil && len(*s.InputFileKey) < 1 {
54389		invalidParams.Add(request.NewErrParamMinLen("InputFileKey", 1))
54390	}
54391	if s.RoleArn == nil {
54392		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
54393	}
54394	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
54395		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
54396	}
54397	if s.TemplateBody == nil {
54398		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
54399	}
54400
54401	if invalidParams.Len() > 0 {
54402		return invalidParams
54403	}
54404	return nil
54405}
54406
54407// SetInputFileBucket sets the InputFileBucket field's value.
54408func (s *StartThingRegistrationTaskInput) SetInputFileBucket(v string) *StartThingRegistrationTaskInput {
54409	s.InputFileBucket = &v
54410	return s
54411}
54412
54413// SetInputFileKey sets the InputFileKey field's value.
54414func (s *StartThingRegistrationTaskInput) SetInputFileKey(v string) *StartThingRegistrationTaskInput {
54415	s.InputFileKey = &v
54416	return s
54417}
54418
54419// SetRoleArn sets the RoleArn field's value.
54420func (s *StartThingRegistrationTaskInput) SetRoleArn(v string) *StartThingRegistrationTaskInput {
54421	s.RoleArn = &v
54422	return s
54423}
54424
54425// SetTemplateBody sets the TemplateBody field's value.
54426func (s *StartThingRegistrationTaskInput) SetTemplateBody(v string) *StartThingRegistrationTaskInput {
54427	s.TemplateBody = &v
54428	return s
54429}
54430
54431type StartThingRegistrationTaskOutput struct {
54432	_ struct{} `type:"structure"`
54433
54434	// The bulk thing provisioning task ID.
54435	TaskId *string `locationName:"taskId" type:"string"`
54436}
54437
54438// String returns the string representation
54439func (s StartThingRegistrationTaskOutput) String() string {
54440	return awsutil.Prettify(s)
54441}
54442
54443// GoString returns the string representation
54444func (s StartThingRegistrationTaskOutput) GoString() string {
54445	return s.String()
54446}
54447
54448// SetTaskId sets the TaskId field's value.
54449func (s *StartThingRegistrationTaskOutput) SetTaskId(v string) *StartThingRegistrationTaskOutput {
54450	s.TaskId = &v
54451	return s
54452}
54453
54454// A statistical ranking (percentile) that indicates a threshold value by which
54455// a behavior is determined to be in compliance or in violation of the behavior.
54456type StatisticalThreshold struct {
54457	_ struct{} `type:"structure"`
54458
54459	// The percentile that resolves to a threshold value by which compliance with
54460	// a behavior is determined. Metrics are collected over the specified period
54461	// (durationSeconds) from all reporting devices in your account and statistical
54462	// ranks are calculated. Then, the measurements from a device are collected
54463	// over the same period. If the accumulated measurements from the device fall
54464	// above or below (comparisonOperator) the value associated with the percentile
54465	// specified, then the device is considered to be in compliance with the behavior,
54466	// otherwise a violation occurs.
54467	Statistic *string `locationName:"statistic" type:"string"`
54468}
54469
54470// String returns the string representation
54471func (s StatisticalThreshold) String() string {
54472	return awsutil.Prettify(s)
54473}
54474
54475// GoString returns the string representation
54476func (s StatisticalThreshold) GoString() string {
54477	return s.String()
54478}
54479
54480// SetStatistic sets the Statistic field's value.
54481func (s *StatisticalThreshold) SetStatistic(v string) *StatisticalThreshold {
54482	s.Statistic = &v
54483	return s
54484}
54485
54486// A map of key-value pairs for all supported statistics. Currently, only count
54487// is supported.
54488type Statistics struct {
54489	_ struct{} `type:"structure"`
54490
54491	// The average of the aggregated field values.
54492	Average *float64 `locationName:"average" type:"double"`
54493
54494	// The count of things that match the query.
54495	Count *int64 `locationName:"count" type:"integer"`
54496
54497	// The maximum aggregated field value.
54498	Maximum *float64 `locationName:"maximum" type:"double"`
54499
54500	// The minimum aggregated field value.
54501	Minimum *float64 `locationName:"minimum" type:"double"`
54502
54503	// The standard deviation of the aggregated field values.
54504	StdDeviation *float64 `locationName:"stdDeviation" type:"double"`
54505
54506	// The sum of the aggregated field values.
54507	Sum *float64 `locationName:"sum" type:"double"`
54508
54509	// The sum of the squares of the aggregated field values.
54510	SumOfSquares *float64 `locationName:"sumOfSquares" type:"double"`
54511
54512	// The variance of the aggregated field values.
54513	Variance *float64 `locationName:"variance" type:"double"`
54514}
54515
54516// String returns the string representation
54517func (s Statistics) String() string {
54518	return awsutil.Prettify(s)
54519}
54520
54521// GoString returns the string representation
54522func (s Statistics) GoString() string {
54523	return s.String()
54524}
54525
54526// SetAverage sets the Average field's value.
54527func (s *Statistics) SetAverage(v float64) *Statistics {
54528	s.Average = &v
54529	return s
54530}
54531
54532// SetCount sets the Count field's value.
54533func (s *Statistics) SetCount(v int64) *Statistics {
54534	s.Count = &v
54535	return s
54536}
54537
54538// SetMaximum sets the Maximum field's value.
54539func (s *Statistics) SetMaximum(v float64) *Statistics {
54540	s.Maximum = &v
54541	return s
54542}
54543
54544// SetMinimum sets the Minimum field's value.
54545func (s *Statistics) SetMinimum(v float64) *Statistics {
54546	s.Minimum = &v
54547	return s
54548}
54549
54550// SetStdDeviation sets the StdDeviation field's value.
54551func (s *Statistics) SetStdDeviation(v float64) *Statistics {
54552	s.StdDeviation = &v
54553	return s
54554}
54555
54556// SetSum sets the Sum field's value.
54557func (s *Statistics) SetSum(v float64) *Statistics {
54558	s.Sum = &v
54559	return s
54560}
54561
54562// SetSumOfSquares sets the SumOfSquares field's value.
54563func (s *Statistics) SetSumOfSquares(v float64) *Statistics {
54564	s.SumOfSquares = &v
54565	return s
54566}
54567
54568// SetVariance sets the Variance field's value.
54569func (s *Statistics) SetVariance(v float64) *Statistics {
54570	s.Variance = &v
54571	return s
54572}
54573
54574// Starts execution of a Step Functions state machine.
54575type StepFunctionsAction struct {
54576	_ struct{} `type:"structure"`
54577
54578	// (Optional) A name will be given to the state machine execution consisting
54579	// of this prefix followed by a UUID. Step Functions automatically creates a
54580	// unique name for each state machine execution if one is not provided.
54581	ExecutionNamePrefix *string `locationName:"executionNamePrefix" type:"string"`
54582
54583	// The ARN of the role that grants IoT permission to start execution of a state
54584	// machine ("Action":"states:StartExecution").
54585	//
54586	// RoleArn is a required field
54587	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
54588
54589	// The name of the Step Functions state machine whose execution will be started.
54590	//
54591	// StateMachineName is a required field
54592	StateMachineName *string `locationName:"stateMachineName" type:"string" required:"true"`
54593}
54594
54595// String returns the string representation
54596func (s StepFunctionsAction) String() string {
54597	return awsutil.Prettify(s)
54598}
54599
54600// GoString returns the string representation
54601func (s StepFunctionsAction) GoString() string {
54602	return s.String()
54603}
54604
54605// Validate inspects the fields of the type to determine if they are valid.
54606func (s *StepFunctionsAction) Validate() error {
54607	invalidParams := request.ErrInvalidParams{Context: "StepFunctionsAction"}
54608	if s.RoleArn == nil {
54609		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
54610	}
54611	if s.StateMachineName == nil {
54612		invalidParams.Add(request.NewErrParamRequired("StateMachineName"))
54613	}
54614
54615	if invalidParams.Len() > 0 {
54616		return invalidParams
54617	}
54618	return nil
54619}
54620
54621// SetExecutionNamePrefix sets the ExecutionNamePrefix field's value.
54622func (s *StepFunctionsAction) SetExecutionNamePrefix(v string) *StepFunctionsAction {
54623	s.ExecutionNamePrefix = &v
54624	return s
54625}
54626
54627// SetRoleArn sets the RoleArn field's value.
54628func (s *StepFunctionsAction) SetRoleArn(v string) *StepFunctionsAction {
54629	s.RoleArn = &v
54630	return s
54631}
54632
54633// SetStateMachineName sets the StateMachineName field's value.
54634func (s *StepFunctionsAction) SetStateMachineName(v string) *StepFunctionsAction {
54635	s.StateMachineName = &v
54636	return s
54637}
54638
54639type StopThingRegistrationTaskInput struct {
54640	_ struct{} `type:"structure"`
54641
54642	// The bulk thing provisioning task ID.
54643	//
54644	// TaskId is a required field
54645	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
54646}
54647
54648// String returns the string representation
54649func (s StopThingRegistrationTaskInput) String() string {
54650	return awsutil.Prettify(s)
54651}
54652
54653// GoString returns the string representation
54654func (s StopThingRegistrationTaskInput) GoString() string {
54655	return s.String()
54656}
54657
54658// Validate inspects the fields of the type to determine if they are valid.
54659func (s *StopThingRegistrationTaskInput) Validate() error {
54660	invalidParams := request.ErrInvalidParams{Context: "StopThingRegistrationTaskInput"}
54661	if s.TaskId == nil {
54662		invalidParams.Add(request.NewErrParamRequired("TaskId"))
54663	}
54664	if s.TaskId != nil && len(*s.TaskId) < 1 {
54665		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
54666	}
54667
54668	if invalidParams.Len() > 0 {
54669		return invalidParams
54670	}
54671	return nil
54672}
54673
54674// SetTaskId sets the TaskId field's value.
54675func (s *StopThingRegistrationTaskInput) SetTaskId(v string) *StopThingRegistrationTaskInput {
54676	s.TaskId = &v
54677	return s
54678}
54679
54680type StopThingRegistrationTaskOutput struct {
54681	_ struct{} `type:"structure"`
54682}
54683
54684// String returns the string representation
54685func (s StopThingRegistrationTaskOutput) String() string {
54686	return awsutil.Prettify(s)
54687}
54688
54689// GoString returns the string representation
54690func (s StopThingRegistrationTaskOutput) GoString() string {
54691	return s.String()
54692}
54693
54694// Describes a group of files that can be streamed.
54695type Stream struct {
54696	_ struct{} `type:"structure"`
54697
54698	// The ID of a file associated with a stream.
54699	FileId *int64 `locationName:"fileId" type:"integer"`
54700
54701	// The stream ID.
54702	StreamId *string `locationName:"streamId" min:"1" type:"string"`
54703}
54704
54705// String returns the string representation
54706func (s Stream) String() string {
54707	return awsutil.Prettify(s)
54708}
54709
54710// GoString returns the string representation
54711func (s Stream) GoString() string {
54712	return s.String()
54713}
54714
54715// Validate inspects the fields of the type to determine if they are valid.
54716func (s *Stream) Validate() error {
54717	invalidParams := request.ErrInvalidParams{Context: "Stream"}
54718	if s.StreamId != nil && len(*s.StreamId) < 1 {
54719		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
54720	}
54721
54722	if invalidParams.Len() > 0 {
54723		return invalidParams
54724	}
54725	return nil
54726}
54727
54728// SetFileId sets the FileId field's value.
54729func (s *Stream) SetFileId(v int64) *Stream {
54730	s.FileId = &v
54731	return s
54732}
54733
54734// SetStreamId sets the StreamId field's value.
54735func (s *Stream) SetStreamId(v string) *Stream {
54736	s.StreamId = &v
54737	return s
54738}
54739
54740// Represents a file to stream.
54741type StreamFile struct {
54742	_ struct{} `type:"structure"`
54743
54744	// The file ID.
54745	FileId *int64 `locationName:"fileId" type:"integer"`
54746
54747	// The location of the file in S3.
54748	S3Location *S3Location `locationName:"s3Location" type:"structure"`
54749}
54750
54751// String returns the string representation
54752func (s StreamFile) String() string {
54753	return awsutil.Prettify(s)
54754}
54755
54756// GoString returns the string representation
54757func (s StreamFile) GoString() string {
54758	return s.String()
54759}
54760
54761// Validate inspects the fields of the type to determine if they are valid.
54762func (s *StreamFile) Validate() error {
54763	invalidParams := request.ErrInvalidParams{Context: "StreamFile"}
54764	if s.S3Location != nil {
54765		if err := s.S3Location.Validate(); err != nil {
54766			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
54767		}
54768	}
54769
54770	if invalidParams.Len() > 0 {
54771		return invalidParams
54772	}
54773	return nil
54774}
54775
54776// SetFileId sets the FileId field's value.
54777func (s *StreamFile) SetFileId(v int64) *StreamFile {
54778	s.FileId = &v
54779	return s
54780}
54781
54782// SetS3Location sets the S3Location field's value.
54783func (s *StreamFile) SetS3Location(v *S3Location) *StreamFile {
54784	s.S3Location = v
54785	return s
54786}
54787
54788// Information about a stream.
54789type StreamInfo struct {
54790	_ struct{} `type:"structure"`
54791
54792	// The date when the stream was created.
54793	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
54794
54795	// The description of the stream.
54796	Description *string `locationName:"description" type:"string"`
54797
54798	// The files to stream.
54799	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
54800
54801	// The date when the stream was last updated.
54802	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
54803
54804	// An IAM role IoT assumes to access your S3 files.
54805	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
54806
54807	// The stream ARN.
54808	StreamArn *string `locationName:"streamArn" type:"string"`
54809
54810	// The stream ID.
54811	StreamId *string `locationName:"streamId" min:"1" type:"string"`
54812
54813	// The stream version.
54814	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
54815}
54816
54817// String returns the string representation
54818func (s StreamInfo) String() string {
54819	return awsutil.Prettify(s)
54820}
54821
54822// GoString returns the string representation
54823func (s StreamInfo) GoString() string {
54824	return s.String()
54825}
54826
54827// SetCreatedAt sets the CreatedAt field's value.
54828func (s *StreamInfo) SetCreatedAt(v time.Time) *StreamInfo {
54829	s.CreatedAt = &v
54830	return s
54831}
54832
54833// SetDescription sets the Description field's value.
54834func (s *StreamInfo) SetDescription(v string) *StreamInfo {
54835	s.Description = &v
54836	return s
54837}
54838
54839// SetFiles sets the Files field's value.
54840func (s *StreamInfo) SetFiles(v []*StreamFile) *StreamInfo {
54841	s.Files = v
54842	return s
54843}
54844
54845// SetLastUpdatedAt sets the LastUpdatedAt field's value.
54846func (s *StreamInfo) SetLastUpdatedAt(v time.Time) *StreamInfo {
54847	s.LastUpdatedAt = &v
54848	return s
54849}
54850
54851// SetRoleArn sets the RoleArn field's value.
54852func (s *StreamInfo) SetRoleArn(v string) *StreamInfo {
54853	s.RoleArn = &v
54854	return s
54855}
54856
54857// SetStreamArn sets the StreamArn field's value.
54858func (s *StreamInfo) SetStreamArn(v string) *StreamInfo {
54859	s.StreamArn = &v
54860	return s
54861}
54862
54863// SetStreamId sets the StreamId field's value.
54864func (s *StreamInfo) SetStreamId(v string) *StreamInfo {
54865	s.StreamId = &v
54866	return s
54867}
54868
54869// SetStreamVersion sets the StreamVersion field's value.
54870func (s *StreamInfo) SetStreamVersion(v int64) *StreamInfo {
54871	s.StreamVersion = &v
54872	return s
54873}
54874
54875// A summary of a stream.
54876type StreamSummary struct {
54877	_ struct{} `type:"structure"`
54878
54879	// A description of the stream.
54880	Description *string `locationName:"description" type:"string"`
54881
54882	// The stream ARN.
54883	StreamArn *string `locationName:"streamArn" type:"string"`
54884
54885	// The stream ID.
54886	StreamId *string `locationName:"streamId" min:"1" type:"string"`
54887
54888	// The stream version.
54889	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
54890}
54891
54892// String returns the string representation
54893func (s StreamSummary) String() string {
54894	return awsutil.Prettify(s)
54895}
54896
54897// GoString returns the string representation
54898func (s StreamSummary) GoString() string {
54899	return s.String()
54900}
54901
54902// SetDescription sets the Description field's value.
54903func (s *StreamSummary) SetDescription(v string) *StreamSummary {
54904	s.Description = &v
54905	return s
54906}
54907
54908// SetStreamArn sets the StreamArn field's value.
54909func (s *StreamSummary) SetStreamArn(v string) *StreamSummary {
54910	s.StreamArn = &v
54911	return s
54912}
54913
54914// SetStreamId sets the StreamId field's value.
54915func (s *StreamSummary) SetStreamId(v string) *StreamSummary {
54916	s.StreamId = &v
54917	return s
54918}
54919
54920// SetStreamVersion sets the StreamVersion field's value.
54921func (s *StreamSummary) SetStreamVersion(v int64) *StreamSummary {
54922	s.StreamVersion = &v
54923	return s
54924}
54925
54926// A set of key/value pairs that are used to manage the resource.
54927type Tag struct {
54928	_ struct{} `type:"structure"`
54929
54930	// The tag's key.
54931	//
54932	// Key is a required field
54933	Key *string `min:"1" type:"string" required:"true"`
54934
54935	// The tag's value.
54936	Value *string `min:"1" type:"string"`
54937}
54938
54939// String returns the string representation
54940func (s Tag) String() string {
54941	return awsutil.Prettify(s)
54942}
54943
54944// GoString returns the string representation
54945func (s Tag) GoString() string {
54946	return s.String()
54947}
54948
54949// Validate inspects the fields of the type to determine if they are valid.
54950func (s *Tag) Validate() error {
54951	invalidParams := request.ErrInvalidParams{Context: "Tag"}
54952	if s.Key == nil {
54953		invalidParams.Add(request.NewErrParamRequired("Key"))
54954	}
54955	if s.Key != nil && len(*s.Key) < 1 {
54956		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
54957	}
54958	if s.Value != nil && len(*s.Value) < 1 {
54959		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
54960	}
54961
54962	if invalidParams.Len() > 0 {
54963		return invalidParams
54964	}
54965	return nil
54966}
54967
54968// SetKey sets the Key field's value.
54969func (s *Tag) SetKey(v string) *Tag {
54970	s.Key = &v
54971	return s
54972}
54973
54974// SetValue sets the Value field's value.
54975func (s *Tag) SetValue(v string) *Tag {
54976	s.Value = &v
54977	return s
54978}
54979
54980type TagResourceInput struct {
54981	_ struct{} `type:"structure"`
54982
54983	// The ARN of the resource.
54984	//
54985	// ResourceArn is a required field
54986	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
54987
54988	// The new or modified tags for the resource.
54989	//
54990	// Tags is a required field
54991	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
54992}
54993
54994// String returns the string representation
54995func (s TagResourceInput) String() string {
54996	return awsutil.Prettify(s)
54997}
54998
54999// GoString returns the string representation
55000func (s TagResourceInput) GoString() string {
55001	return s.String()
55002}
55003
55004// Validate inspects the fields of the type to determine if they are valid.
55005func (s *TagResourceInput) Validate() error {
55006	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
55007	if s.ResourceArn == nil {
55008		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
55009	}
55010	if s.Tags == nil {
55011		invalidParams.Add(request.NewErrParamRequired("Tags"))
55012	}
55013	if s.Tags != nil {
55014		for i, v := range s.Tags {
55015			if v == nil {
55016				continue
55017			}
55018			if err := v.Validate(); err != nil {
55019				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
55020			}
55021		}
55022	}
55023
55024	if invalidParams.Len() > 0 {
55025		return invalidParams
55026	}
55027	return nil
55028}
55029
55030// SetResourceArn sets the ResourceArn field's value.
55031func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
55032	s.ResourceArn = &v
55033	return s
55034}
55035
55036// SetTags sets the Tags field's value.
55037func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
55038	s.Tags = v
55039	return s
55040}
55041
55042type TagResourceOutput struct {
55043	_ struct{} `type:"structure"`
55044}
55045
55046// String returns the string representation
55047func (s TagResourceOutput) String() string {
55048	return awsutil.Prettify(s)
55049}
55050
55051// GoString returns the string representation
55052func (s TagResourceOutput) GoString() string {
55053	return s.String()
55054}
55055
55056// This exception occurs if you attempt to start a task with the same task-id
55057// as an existing task but with a different clientRequestToken.
55058type TaskAlreadyExistsException struct {
55059	_            struct{}                  `type:"structure"`
55060	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
55061
55062	Message_ *string `locationName:"message" type:"string"`
55063}
55064
55065// String returns the string representation
55066func (s TaskAlreadyExistsException) String() string {
55067	return awsutil.Prettify(s)
55068}
55069
55070// GoString returns the string representation
55071func (s TaskAlreadyExistsException) GoString() string {
55072	return s.String()
55073}
55074
55075func newErrorTaskAlreadyExistsException(v protocol.ResponseMetadata) error {
55076	return &TaskAlreadyExistsException{
55077		RespMetadata: v,
55078	}
55079}
55080
55081// Code returns the exception type name.
55082func (s *TaskAlreadyExistsException) Code() string {
55083	return "TaskAlreadyExistsException"
55084}
55085
55086// Message returns the exception's message.
55087func (s *TaskAlreadyExistsException) Message() string {
55088	if s.Message_ != nil {
55089		return *s.Message_
55090	}
55091	return ""
55092}
55093
55094// OrigErr always returns nil, satisfies awserr.Error interface.
55095func (s *TaskAlreadyExistsException) OrigErr() error {
55096	return nil
55097}
55098
55099func (s *TaskAlreadyExistsException) Error() string {
55100	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
55101}
55102
55103// Status code returns the HTTP status code for the request's response error.
55104func (s *TaskAlreadyExistsException) StatusCode() int {
55105	return s.RespMetadata.StatusCode
55106}
55107
55108// RequestID returns the service's response RequestID for request.
55109func (s *TaskAlreadyExistsException) RequestID() string {
55110	return s.RespMetadata.RequestID
55111}
55112
55113// Statistics for the checks performed during the audit.
55114type TaskStatistics struct {
55115	_ struct{} `type:"structure"`
55116
55117	// The number of checks that did not run because the audit was canceled.
55118	CanceledChecks *int64 `locationName:"canceledChecks" type:"integer"`
55119
55120	// The number of checks that found compliant resources.
55121	CompliantChecks *int64 `locationName:"compliantChecks" type:"integer"`
55122
55123	// The number of checks.
55124	FailedChecks *int64 `locationName:"failedChecks" type:"integer"`
55125
55126	// The number of checks in progress.
55127	InProgressChecks *int64 `locationName:"inProgressChecks" type:"integer"`
55128
55129	// The number of checks that found noncompliant resources.
55130	NonCompliantChecks *int64 `locationName:"nonCompliantChecks" type:"integer"`
55131
55132	// The number of checks in this audit.
55133	TotalChecks *int64 `locationName:"totalChecks" type:"integer"`
55134
55135	// The number of checks waiting for data collection.
55136	WaitingForDataCollectionChecks *int64 `locationName:"waitingForDataCollectionChecks" type:"integer"`
55137}
55138
55139// String returns the string representation
55140func (s TaskStatistics) String() string {
55141	return awsutil.Prettify(s)
55142}
55143
55144// GoString returns the string representation
55145func (s TaskStatistics) GoString() string {
55146	return s.String()
55147}
55148
55149// SetCanceledChecks sets the CanceledChecks field's value.
55150func (s *TaskStatistics) SetCanceledChecks(v int64) *TaskStatistics {
55151	s.CanceledChecks = &v
55152	return s
55153}
55154
55155// SetCompliantChecks sets the CompliantChecks field's value.
55156func (s *TaskStatistics) SetCompliantChecks(v int64) *TaskStatistics {
55157	s.CompliantChecks = &v
55158	return s
55159}
55160
55161// SetFailedChecks sets the FailedChecks field's value.
55162func (s *TaskStatistics) SetFailedChecks(v int64) *TaskStatistics {
55163	s.FailedChecks = &v
55164	return s
55165}
55166
55167// SetInProgressChecks sets the InProgressChecks field's value.
55168func (s *TaskStatistics) SetInProgressChecks(v int64) *TaskStatistics {
55169	s.InProgressChecks = &v
55170	return s
55171}
55172
55173// SetNonCompliantChecks sets the NonCompliantChecks field's value.
55174func (s *TaskStatistics) SetNonCompliantChecks(v int64) *TaskStatistics {
55175	s.NonCompliantChecks = &v
55176	return s
55177}
55178
55179// SetTotalChecks sets the TotalChecks field's value.
55180func (s *TaskStatistics) SetTotalChecks(v int64) *TaskStatistics {
55181	s.TotalChecks = &v
55182	return s
55183}
55184
55185// SetWaitingForDataCollectionChecks sets the WaitingForDataCollectionChecks field's value.
55186func (s *TaskStatistics) SetWaitingForDataCollectionChecks(v int64) *TaskStatistics {
55187	s.WaitingForDataCollectionChecks = &v
55188	return s
55189}
55190
55191// Provides summary counts of how many tasks for findings are in a particular
55192// state. This information is included in the response from DescribeAuditMitigationActionsTask.
55193type TaskStatisticsForAuditCheck struct {
55194	_ struct{} `type:"structure"`
55195
55196	// The number of findings to which the mitigation action task was canceled when
55197	// applied.
55198	CanceledFindingsCount *int64 `locationName:"canceledFindingsCount" type:"long"`
55199
55200	// The number of findings for which at least one of the actions failed when
55201	// applied.
55202	FailedFindingsCount *int64 `locationName:"failedFindingsCount" type:"long"`
55203
55204	// The number of findings skipped because of filter conditions provided in the
55205	// parameters to the command.
55206	SkippedFindingsCount *int64 `locationName:"skippedFindingsCount" type:"long"`
55207
55208	// The number of findings for which all mitigation actions succeeded when applied.
55209	SucceededFindingsCount *int64 `locationName:"succeededFindingsCount" type:"long"`
55210
55211	// The total number of findings to which a task is being applied.
55212	TotalFindingsCount *int64 `locationName:"totalFindingsCount" type:"long"`
55213}
55214
55215// String returns the string representation
55216func (s TaskStatisticsForAuditCheck) String() string {
55217	return awsutil.Prettify(s)
55218}
55219
55220// GoString returns the string representation
55221func (s TaskStatisticsForAuditCheck) GoString() string {
55222	return s.String()
55223}
55224
55225// SetCanceledFindingsCount sets the CanceledFindingsCount field's value.
55226func (s *TaskStatisticsForAuditCheck) SetCanceledFindingsCount(v int64) *TaskStatisticsForAuditCheck {
55227	s.CanceledFindingsCount = &v
55228	return s
55229}
55230
55231// SetFailedFindingsCount sets the FailedFindingsCount field's value.
55232func (s *TaskStatisticsForAuditCheck) SetFailedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
55233	s.FailedFindingsCount = &v
55234	return s
55235}
55236
55237// SetSkippedFindingsCount sets the SkippedFindingsCount field's value.
55238func (s *TaskStatisticsForAuditCheck) SetSkippedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
55239	s.SkippedFindingsCount = &v
55240	return s
55241}
55242
55243// SetSucceededFindingsCount sets the SucceededFindingsCount field's value.
55244func (s *TaskStatisticsForAuditCheck) SetSucceededFindingsCount(v int64) *TaskStatisticsForAuditCheck {
55245	s.SucceededFindingsCount = &v
55246	return s
55247}
55248
55249// SetTotalFindingsCount sets the TotalFindingsCount field's value.
55250func (s *TaskStatisticsForAuditCheck) SetTotalFindingsCount(v int64) *TaskStatisticsForAuditCheck {
55251	s.TotalFindingsCount = &v
55252	return s
55253}
55254
55255// Performs an aggregation that will return a list of buckets. The list of buckets
55256// is a ranked list of the number of occurrences of an aggregation field value.
55257type TermsAggregation struct {
55258	_ struct{} `type:"structure"`
55259
55260	// The number of buckets to return in the response. Default to 10.
55261	MaxBuckets *int64 `locationName:"maxBuckets" min:"1" type:"integer"`
55262}
55263
55264// String returns the string representation
55265func (s TermsAggregation) String() string {
55266	return awsutil.Prettify(s)
55267}
55268
55269// GoString returns the string representation
55270func (s TermsAggregation) GoString() string {
55271	return s.String()
55272}
55273
55274// Validate inspects the fields of the type to determine if they are valid.
55275func (s *TermsAggregation) Validate() error {
55276	invalidParams := request.ErrInvalidParams{Context: "TermsAggregation"}
55277	if s.MaxBuckets != nil && *s.MaxBuckets < 1 {
55278		invalidParams.Add(request.NewErrParamMinValue("MaxBuckets", 1))
55279	}
55280
55281	if invalidParams.Len() > 0 {
55282		return invalidParams
55283	}
55284	return nil
55285}
55286
55287// SetMaxBuckets sets the MaxBuckets field's value.
55288func (s *TermsAggregation) SetMaxBuckets(v int64) *TermsAggregation {
55289	s.MaxBuckets = &v
55290	return s
55291}
55292
55293type TestAuthorizationInput struct {
55294	_ struct{} `type:"structure"`
55295
55296	// A list of authorization info objects. Simulating authorization will create
55297	// a response for each authInfo object in the list.
55298	//
55299	// AuthInfos is a required field
55300	AuthInfos []*AuthInfo `locationName:"authInfos" min:"1" type:"list" required:"true"`
55301
55302	// The MQTT client ID.
55303	ClientId *string `location:"querystring" locationName:"clientId" type:"string"`
55304
55305	// The Cognito identity pool ID.
55306	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
55307
55308	// When testing custom authorization, the policies specified here are treated
55309	// as if they are attached to the principal being authorized.
55310	PolicyNamesToAdd []*string `locationName:"policyNamesToAdd" type:"list"`
55311
55312	// When testing custom authorization, the policies specified here are treated
55313	// as if they are not attached to the principal being authorized.
55314	PolicyNamesToSkip []*string `locationName:"policyNamesToSkip" type:"list"`
55315
55316	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
55317	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
55318	// (region:id).
55319	Principal *string `locationName:"principal" type:"string"`
55320}
55321
55322// String returns the string representation
55323func (s TestAuthorizationInput) String() string {
55324	return awsutil.Prettify(s)
55325}
55326
55327// GoString returns the string representation
55328func (s TestAuthorizationInput) GoString() string {
55329	return s.String()
55330}
55331
55332// Validate inspects the fields of the type to determine if they are valid.
55333func (s *TestAuthorizationInput) Validate() error {
55334	invalidParams := request.ErrInvalidParams{Context: "TestAuthorizationInput"}
55335	if s.AuthInfos == nil {
55336		invalidParams.Add(request.NewErrParamRequired("AuthInfos"))
55337	}
55338	if s.AuthInfos != nil && len(s.AuthInfos) < 1 {
55339		invalidParams.Add(request.NewErrParamMinLen("AuthInfos", 1))
55340	}
55341	if s.AuthInfos != nil {
55342		for i, v := range s.AuthInfos {
55343			if v == nil {
55344				continue
55345			}
55346			if err := v.Validate(); err != nil {
55347				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuthInfos", i), err.(request.ErrInvalidParams))
55348			}
55349		}
55350	}
55351
55352	if invalidParams.Len() > 0 {
55353		return invalidParams
55354	}
55355	return nil
55356}
55357
55358// SetAuthInfos sets the AuthInfos field's value.
55359func (s *TestAuthorizationInput) SetAuthInfos(v []*AuthInfo) *TestAuthorizationInput {
55360	s.AuthInfos = v
55361	return s
55362}
55363
55364// SetClientId sets the ClientId field's value.
55365func (s *TestAuthorizationInput) SetClientId(v string) *TestAuthorizationInput {
55366	s.ClientId = &v
55367	return s
55368}
55369
55370// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
55371func (s *TestAuthorizationInput) SetCognitoIdentityPoolId(v string) *TestAuthorizationInput {
55372	s.CognitoIdentityPoolId = &v
55373	return s
55374}
55375
55376// SetPolicyNamesToAdd sets the PolicyNamesToAdd field's value.
55377func (s *TestAuthorizationInput) SetPolicyNamesToAdd(v []*string) *TestAuthorizationInput {
55378	s.PolicyNamesToAdd = v
55379	return s
55380}
55381
55382// SetPolicyNamesToSkip sets the PolicyNamesToSkip field's value.
55383func (s *TestAuthorizationInput) SetPolicyNamesToSkip(v []*string) *TestAuthorizationInput {
55384	s.PolicyNamesToSkip = v
55385	return s
55386}
55387
55388// SetPrincipal sets the Principal field's value.
55389func (s *TestAuthorizationInput) SetPrincipal(v string) *TestAuthorizationInput {
55390	s.Principal = &v
55391	return s
55392}
55393
55394type TestAuthorizationOutput struct {
55395	_ struct{} `type:"structure"`
55396
55397	// The authentication results.
55398	AuthResults []*AuthResult `locationName:"authResults" type:"list"`
55399}
55400
55401// String returns the string representation
55402func (s TestAuthorizationOutput) String() string {
55403	return awsutil.Prettify(s)
55404}
55405
55406// GoString returns the string representation
55407func (s TestAuthorizationOutput) GoString() string {
55408	return s.String()
55409}
55410
55411// SetAuthResults sets the AuthResults field's value.
55412func (s *TestAuthorizationOutput) SetAuthResults(v []*AuthResult) *TestAuthorizationOutput {
55413	s.AuthResults = v
55414	return s
55415}
55416
55417type TestInvokeAuthorizerInput struct {
55418	_ struct{} `type:"structure"`
55419
55420	// The custom authorizer name.
55421	//
55422	// AuthorizerName is a required field
55423	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
55424
55425	// Specifies a test HTTP authorization request.
55426	HttpContext *HttpContext `locationName:"httpContext" type:"structure"`
55427
55428	// Specifies a test MQTT authorization request.
55429	MqttContext *MqttContext `locationName:"mqttContext" type:"structure"`
55430
55431	// Specifies a test TLS authorization request.
55432	TlsContext *TlsContext `locationName:"tlsContext" type:"structure"`
55433
55434	// The token returned by your custom authentication service.
55435	Token *string `locationName:"token" min:"1" type:"string"`
55436
55437	// The signature made with the token and your custom authentication service's
55438	// private key. This value must be Base-64-encoded.
55439	TokenSignature *string `locationName:"tokenSignature" min:"1" type:"string"`
55440}
55441
55442// String returns the string representation
55443func (s TestInvokeAuthorizerInput) String() string {
55444	return awsutil.Prettify(s)
55445}
55446
55447// GoString returns the string representation
55448func (s TestInvokeAuthorizerInput) GoString() string {
55449	return s.String()
55450}
55451
55452// Validate inspects the fields of the type to determine if they are valid.
55453func (s *TestInvokeAuthorizerInput) Validate() error {
55454	invalidParams := request.ErrInvalidParams{Context: "TestInvokeAuthorizerInput"}
55455	if s.AuthorizerName == nil {
55456		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
55457	}
55458	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
55459		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
55460	}
55461	if s.Token != nil && len(*s.Token) < 1 {
55462		invalidParams.Add(request.NewErrParamMinLen("Token", 1))
55463	}
55464	if s.TokenSignature != nil && len(*s.TokenSignature) < 1 {
55465		invalidParams.Add(request.NewErrParamMinLen("TokenSignature", 1))
55466	}
55467	if s.HttpContext != nil {
55468		if err := s.HttpContext.Validate(); err != nil {
55469			invalidParams.AddNested("HttpContext", err.(request.ErrInvalidParams))
55470		}
55471	}
55472	if s.MqttContext != nil {
55473		if err := s.MqttContext.Validate(); err != nil {
55474			invalidParams.AddNested("MqttContext", err.(request.ErrInvalidParams))
55475		}
55476	}
55477	if s.TlsContext != nil {
55478		if err := s.TlsContext.Validate(); err != nil {
55479			invalidParams.AddNested("TlsContext", err.(request.ErrInvalidParams))
55480		}
55481	}
55482
55483	if invalidParams.Len() > 0 {
55484		return invalidParams
55485	}
55486	return nil
55487}
55488
55489// SetAuthorizerName sets the AuthorizerName field's value.
55490func (s *TestInvokeAuthorizerInput) SetAuthorizerName(v string) *TestInvokeAuthorizerInput {
55491	s.AuthorizerName = &v
55492	return s
55493}
55494
55495// SetHttpContext sets the HttpContext field's value.
55496func (s *TestInvokeAuthorizerInput) SetHttpContext(v *HttpContext) *TestInvokeAuthorizerInput {
55497	s.HttpContext = v
55498	return s
55499}
55500
55501// SetMqttContext sets the MqttContext field's value.
55502func (s *TestInvokeAuthorizerInput) SetMqttContext(v *MqttContext) *TestInvokeAuthorizerInput {
55503	s.MqttContext = v
55504	return s
55505}
55506
55507// SetTlsContext sets the TlsContext field's value.
55508func (s *TestInvokeAuthorizerInput) SetTlsContext(v *TlsContext) *TestInvokeAuthorizerInput {
55509	s.TlsContext = v
55510	return s
55511}
55512
55513// SetToken sets the Token field's value.
55514func (s *TestInvokeAuthorizerInput) SetToken(v string) *TestInvokeAuthorizerInput {
55515	s.Token = &v
55516	return s
55517}
55518
55519// SetTokenSignature sets the TokenSignature field's value.
55520func (s *TestInvokeAuthorizerInput) SetTokenSignature(v string) *TestInvokeAuthorizerInput {
55521	s.TokenSignature = &v
55522	return s
55523}
55524
55525type TestInvokeAuthorizerOutput struct {
55526	_ struct{} `type:"structure"`
55527
55528	// The number of seconds after which the connection is terminated.
55529	DisconnectAfterInSeconds *int64 `locationName:"disconnectAfterInSeconds" type:"integer"`
55530
55531	// True if the token is authenticated, otherwise false.
55532	IsAuthenticated *bool `locationName:"isAuthenticated" type:"boolean"`
55533
55534	// IAM policy documents.
55535	PolicyDocuments []*string `locationName:"policyDocuments" type:"list"`
55536
55537	// The principal ID.
55538	PrincipalId *string `locationName:"principalId" min:"1" type:"string"`
55539
55540	// The number of seconds after which the temporary credentials are refreshed.
55541	RefreshAfterInSeconds *int64 `locationName:"refreshAfterInSeconds" type:"integer"`
55542}
55543
55544// String returns the string representation
55545func (s TestInvokeAuthorizerOutput) String() string {
55546	return awsutil.Prettify(s)
55547}
55548
55549// GoString returns the string representation
55550func (s TestInvokeAuthorizerOutput) GoString() string {
55551	return s.String()
55552}
55553
55554// SetDisconnectAfterInSeconds sets the DisconnectAfterInSeconds field's value.
55555func (s *TestInvokeAuthorizerOutput) SetDisconnectAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
55556	s.DisconnectAfterInSeconds = &v
55557	return s
55558}
55559
55560// SetIsAuthenticated sets the IsAuthenticated field's value.
55561func (s *TestInvokeAuthorizerOutput) SetIsAuthenticated(v bool) *TestInvokeAuthorizerOutput {
55562	s.IsAuthenticated = &v
55563	return s
55564}
55565
55566// SetPolicyDocuments sets the PolicyDocuments field's value.
55567func (s *TestInvokeAuthorizerOutput) SetPolicyDocuments(v []*string) *TestInvokeAuthorizerOutput {
55568	s.PolicyDocuments = v
55569	return s
55570}
55571
55572// SetPrincipalId sets the PrincipalId field's value.
55573func (s *TestInvokeAuthorizerOutput) SetPrincipalId(v string) *TestInvokeAuthorizerOutput {
55574	s.PrincipalId = &v
55575	return s
55576}
55577
55578// SetRefreshAfterInSeconds sets the RefreshAfterInSeconds field's value.
55579func (s *TestInvokeAuthorizerOutput) SetRefreshAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
55580	s.RefreshAfterInSeconds = &v
55581	return s
55582}
55583
55584// The properties of the thing, including thing name, thing type name, and a
55585// list of thing attributes.
55586type ThingAttribute struct {
55587	_ struct{} `type:"structure"`
55588
55589	// A list of thing attributes which are name-value pairs.
55590	Attributes map[string]*string `locationName:"attributes" type:"map"`
55591
55592	// The thing ARN.
55593	ThingArn *string `locationName:"thingArn" type:"string"`
55594
55595	// The name of the thing.
55596	ThingName *string `locationName:"thingName" min:"1" type:"string"`
55597
55598	// The name of the thing type, if the thing has been associated with a type.
55599	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
55600
55601	// The version of the thing record in the registry.
55602	Version *int64 `locationName:"version" type:"long"`
55603}
55604
55605// String returns the string representation
55606func (s ThingAttribute) String() string {
55607	return awsutil.Prettify(s)
55608}
55609
55610// GoString returns the string representation
55611func (s ThingAttribute) GoString() string {
55612	return s.String()
55613}
55614
55615// SetAttributes sets the Attributes field's value.
55616func (s *ThingAttribute) SetAttributes(v map[string]*string) *ThingAttribute {
55617	s.Attributes = v
55618	return s
55619}
55620
55621// SetThingArn sets the ThingArn field's value.
55622func (s *ThingAttribute) SetThingArn(v string) *ThingAttribute {
55623	s.ThingArn = &v
55624	return s
55625}
55626
55627// SetThingName sets the ThingName field's value.
55628func (s *ThingAttribute) SetThingName(v string) *ThingAttribute {
55629	s.ThingName = &v
55630	return s
55631}
55632
55633// SetThingTypeName sets the ThingTypeName field's value.
55634func (s *ThingAttribute) SetThingTypeName(v string) *ThingAttribute {
55635	s.ThingTypeName = &v
55636	return s
55637}
55638
55639// SetVersion sets the Version field's value.
55640func (s *ThingAttribute) SetVersion(v int64) *ThingAttribute {
55641	s.Version = &v
55642	return s
55643}
55644
55645// The connectivity status of the thing.
55646type ThingConnectivity struct {
55647	_ struct{} `type:"structure"`
55648
55649	// True if the thing is connected to the Amazon Web Services IoT Core service;
55650	// false if it is not connected.
55651	Connected *bool `locationName:"connected" type:"boolean"`
55652
55653	// The reason why the client is disconnected.
55654	DisconnectReason *string `locationName:"disconnectReason" type:"string"`
55655
55656	// The epoch time (in milliseconds) when the thing last connected or disconnected.
55657	// If the thing has been disconnected for approximately an hour, the time value
55658	// might be missing.
55659	Timestamp *int64 `locationName:"timestamp" type:"long"`
55660}
55661
55662// String returns the string representation
55663func (s ThingConnectivity) String() string {
55664	return awsutil.Prettify(s)
55665}
55666
55667// GoString returns the string representation
55668func (s ThingConnectivity) GoString() string {
55669	return s.String()
55670}
55671
55672// SetConnected sets the Connected field's value.
55673func (s *ThingConnectivity) SetConnected(v bool) *ThingConnectivity {
55674	s.Connected = &v
55675	return s
55676}
55677
55678// SetDisconnectReason sets the DisconnectReason field's value.
55679func (s *ThingConnectivity) SetDisconnectReason(v string) *ThingConnectivity {
55680	s.DisconnectReason = &v
55681	return s
55682}
55683
55684// SetTimestamp sets the Timestamp field's value.
55685func (s *ThingConnectivity) SetTimestamp(v int64) *ThingConnectivity {
55686	s.Timestamp = &v
55687	return s
55688}
55689
55690// The thing search index document.
55691type ThingDocument struct {
55692	_ struct{} `type:"structure"`
55693
55694	// The attributes.
55695	Attributes map[string]*string `locationName:"attributes" type:"map"`
55696
55697	// Indicates whether the thing is connected to the Amazon Web Services IoT Core
55698	// service.
55699	Connectivity *ThingConnectivity `locationName:"connectivity" type:"structure"`
55700
55701	// The shadow.
55702	Shadow *string `locationName:"shadow" type:"string"`
55703
55704	// Thing group names.
55705	ThingGroupNames []*string `locationName:"thingGroupNames" type:"list"`
55706
55707	// The thing ID.
55708	ThingId *string `locationName:"thingId" type:"string"`
55709
55710	// The thing name.
55711	ThingName *string `locationName:"thingName" min:"1" type:"string"`
55712
55713	// The thing type name.
55714	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
55715}
55716
55717// String returns the string representation
55718func (s ThingDocument) String() string {
55719	return awsutil.Prettify(s)
55720}
55721
55722// GoString returns the string representation
55723func (s ThingDocument) GoString() string {
55724	return s.String()
55725}
55726
55727// SetAttributes sets the Attributes field's value.
55728func (s *ThingDocument) SetAttributes(v map[string]*string) *ThingDocument {
55729	s.Attributes = v
55730	return s
55731}
55732
55733// SetConnectivity sets the Connectivity field's value.
55734func (s *ThingDocument) SetConnectivity(v *ThingConnectivity) *ThingDocument {
55735	s.Connectivity = v
55736	return s
55737}
55738
55739// SetShadow sets the Shadow field's value.
55740func (s *ThingDocument) SetShadow(v string) *ThingDocument {
55741	s.Shadow = &v
55742	return s
55743}
55744
55745// SetThingGroupNames sets the ThingGroupNames field's value.
55746func (s *ThingDocument) SetThingGroupNames(v []*string) *ThingDocument {
55747	s.ThingGroupNames = v
55748	return s
55749}
55750
55751// SetThingId sets the ThingId field's value.
55752func (s *ThingDocument) SetThingId(v string) *ThingDocument {
55753	s.ThingId = &v
55754	return s
55755}
55756
55757// SetThingName sets the ThingName field's value.
55758func (s *ThingDocument) SetThingName(v string) *ThingDocument {
55759	s.ThingName = &v
55760	return s
55761}
55762
55763// SetThingTypeName sets the ThingTypeName field's value.
55764func (s *ThingDocument) SetThingTypeName(v string) *ThingDocument {
55765	s.ThingTypeName = &v
55766	return s
55767}
55768
55769// The thing group search index document.
55770type ThingGroupDocument struct {
55771	_ struct{} `type:"structure"`
55772
55773	// The thing group attributes.
55774	Attributes map[string]*string `locationName:"attributes" type:"map"`
55775
55776	// Parent group names.
55777	ParentGroupNames []*string `locationName:"parentGroupNames" type:"list"`
55778
55779	// The thing group description.
55780	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
55781
55782	// The thing group ID.
55783	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
55784
55785	// The thing group name.
55786	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
55787}
55788
55789// String returns the string representation
55790func (s ThingGroupDocument) String() string {
55791	return awsutil.Prettify(s)
55792}
55793
55794// GoString returns the string representation
55795func (s ThingGroupDocument) GoString() string {
55796	return s.String()
55797}
55798
55799// SetAttributes sets the Attributes field's value.
55800func (s *ThingGroupDocument) SetAttributes(v map[string]*string) *ThingGroupDocument {
55801	s.Attributes = v
55802	return s
55803}
55804
55805// SetParentGroupNames sets the ParentGroupNames field's value.
55806func (s *ThingGroupDocument) SetParentGroupNames(v []*string) *ThingGroupDocument {
55807	s.ParentGroupNames = v
55808	return s
55809}
55810
55811// SetThingGroupDescription sets the ThingGroupDescription field's value.
55812func (s *ThingGroupDocument) SetThingGroupDescription(v string) *ThingGroupDocument {
55813	s.ThingGroupDescription = &v
55814	return s
55815}
55816
55817// SetThingGroupId sets the ThingGroupId field's value.
55818func (s *ThingGroupDocument) SetThingGroupId(v string) *ThingGroupDocument {
55819	s.ThingGroupId = &v
55820	return s
55821}
55822
55823// SetThingGroupName sets the ThingGroupName field's value.
55824func (s *ThingGroupDocument) SetThingGroupName(v string) *ThingGroupDocument {
55825	s.ThingGroupName = &v
55826	return s
55827}
55828
55829// Thing group indexing configuration.
55830type ThingGroupIndexingConfiguration struct {
55831	_ struct{} `type:"structure"`
55832
55833	// A list of thing group fields to index. This list cannot contain any managed
55834	// fields. Use the GetIndexingConfiguration API to get a list of managed fields.
55835	//
55836	// Contains custom field names and their data type.
55837	CustomFields []*Field `locationName:"customFields" type:"list"`
55838
55839	// Contains fields that are indexed and whose types are already known by the
55840	// Fleet Indexing service.
55841	ManagedFields []*Field `locationName:"managedFields" type:"list"`
55842
55843	// Thing group indexing mode.
55844	//
55845	// ThingGroupIndexingMode is a required field
55846	ThingGroupIndexingMode *string `locationName:"thingGroupIndexingMode" type:"string" required:"true" enum:"ThingGroupIndexingMode"`
55847}
55848
55849// String returns the string representation
55850func (s ThingGroupIndexingConfiguration) String() string {
55851	return awsutil.Prettify(s)
55852}
55853
55854// GoString returns the string representation
55855func (s ThingGroupIndexingConfiguration) GoString() string {
55856	return s.String()
55857}
55858
55859// Validate inspects the fields of the type to determine if they are valid.
55860func (s *ThingGroupIndexingConfiguration) Validate() error {
55861	invalidParams := request.ErrInvalidParams{Context: "ThingGroupIndexingConfiguration"}
55862	if s.ThingGroupIndexingMode == nil {
55863		invalidParams.Add(request.NewErrParamRequired("ThingGroupIndexingMode"))
55864	}
55865
55866	if invalidParams.Len() > 0 {
55867		return invalidParams
55868	}
55869	return nil
55870}
55871
55872// SetCustomFields sets the CustomFields field's value.
55873func (s *ThingGroupIndexingConfiguration) SetCustomFields(v []*Field) *ThingGroupIndexingConfiguration {
55874	s.CustomFields = v
55875	return s
55876}
55877
55878// SetManagedFields sets the ManagedFields field's value.
55879func (s *ThingGroupIndexingConfiguration) SetManagedFields(v []*Field) *ThingGroupIndexingConfiguration {
55880	s.ManagedFields = v
55881	return s
55882}
55883
55884// SetThingGroupIndexingMode sets the ThingGroupIndexingMode field's value.
55885func (s *ThingGroupIndexingConfiguration) SetThingGroupIndexingMode(v string) *ThingGroupIndexingConfiguration {
55886	s.ThingGroupIndexingMode = &v
55887	return s
55888}
55889
55890// Thing group metadata.
55891type ThingGroupMetadata struct {
55892	_ struct{} `type:"structure"`
55893
55894	// The UNIX timestamp of when the thing group was created.
55895	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
55896
55897	// The parent thing group name.
55898	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
55899
55900	// The root parent thing group.
55901	RootToParentThingGroups []*GroupNameAndArn `locationName:"rootToParentThingGroups" type:"list"`
55902}
55903
55904// String returns the string representation
55905func (s ThingGroupMetadata) String() string {
55906	return awsutil.Prettify(s)
55907}
55908
55909// GoString returns the string representation
55910func (s ThingGroupMetadata) GoString() string {
55911	return s.String()
55912}
55913
55914// SetCreationDate sets the CreationDate field's value.
55915func (s *ThingGroupMetadata) SetCreationDate(v time.Time) *ThingGroupMetadata {
55916	s.CreationDate = &v
55917	return s
55918}
55919
55920// SetParentGroupName sets the ParentGroupName field's value.
55921func (s *ThingGroupMetadata) SetParentGroupName(v string) *ThingGroupMetadata {
55922	s.ParentGroupName = &v
55923	return s
55924}
55925
55926// SetRootToParentThingGroups sets the RootToParentThingGroups field's value.
55927func (s *ThingGroupMetadata) SetRootToParentThingGroups(v []*GroupNameAndArn) *ThingGroupMetadata {
55928	s.RootToParentThingGroups = v
55929	return s
55930}
55931
55932// Thing group properties.
55933type ThingGroupProperties struct {
55934	_ struct{} `type:"structure"`
55935
55936	// The thing group attributes in JSON format.
55937	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
55938
55939	// The thing group description.
55940	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
55941}
55942
55943// String returns the string representation
55944func (s ThingGroupProperties) String() string {
55945	return awsutil.Prettify(s)
55946}
55947
55948// GoString returns the string representation
55949func (s ThingGroupProperties) GoString() string {
55950	return s.String()
55951}
55952
55953// SetAttributePayload sets the AttributePayload field's value.
55954func (s *ThingGroupProperties) SetAttributePayload(v *AttributePayload) *ThingGroupProperties {
55955	s.AttributePayload = v
55956	return s
55957}
55958
55959// SetThingGroupDescription sets the ThingGroupDescription field's value.
55960func (s *ThingGroupProperties) SetThingGroupDescription(v string) *ThingGroupProperties {
55961	s.ThingGroupDescription = &v
55962	return s
55963}
55964
55965// The thing indexing configuration. For more information, see Managing Thing
55966// Indexing (https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html).
55967type ThingIndexingConfiguration struct {
55968	_ struct{} `type:"structure"`
55969
55970	// Contains custom field names and their data type.
55971	CustomFields []*Field `locationName:"customFields" type:"list"`
55972
55973	// Contains fields that are indexed and whose types are already known by the
55974	// Fleet Indexing service.
55975	ManagedFields []*Field `locationName:"managedFields" type:"list"`
55976
55977	// Thing connectivity indexing mode. Valid values are:
55978	//
55979	//    * STATUS – Your thing index contains connectivity status. To enable
55980	//    thing connectivity indexing, thingIndexMode must not be set to OFF.
55981	//
55982	//    * OFF - Thing connectivity status indexing is disabled.
55983	ThingConnectivityIndexingMode *string `locationName:"thingConnectivityIndexingMode" type:"string" enum:"ThingConnectivityIndexingMode"`
55984
55985	// Thing indexing mode. Valid values are:
55986	//
55987	//    * REGISTRY – Your thing index contains registry data only.
55988	//
55989	//    * REGISTRY_AND_SHADOW - Your thing index contains registry and shadow
55990	//    data.
55991	//
55992	//    * OFF - Thing indexing is disabled.
55993	//
55994	// ThingIndexingMode is a required field
55995	ThingIndexingMode *string `locationName:"thingIndexingMode" type:"string" required:"true" enum:"ThingIndexingMode"`
55996}
55997
55998// String returns the string representation
55999func (s ThingIndexingConfiguration) String() string {
56000	return awsutil.Prettify(s)
56001}
56002
56003// GoString returns the string representation
56004func (s ThingIndexingConfiguration) GoString() string {
56005	return s.String()
56006}
56007
56008// Validate inspects the fields of the type to determine if they are valid.
56009func (s *ThingIndexingConfiguration) Validate() error {
56010	invalidParams := request.ErrInvalidParams{Context: "ThingIndexingConfiguration"}
56011	if s.ThingIndexingMode == nil {
56012		invalidParams.Add(request.NewErrParamRequired("ThingIndexingMode"))
56013	}
56014
56015	if invalidParams.Len() > 0 {
56016		return invalidParams
56017	}
56018	return nil
56019}
56020
56021// SetCustomFields sets the CustomFields field's value.
56022func (s *ThingIndexingConfiguration) SetCustomFields(v []*Field) *ThingIndexingConfiguration {
56023	s.CustomFields = v
56024	return s
56025}
56026
56027// SetManagedFields sets the ManagedFields field's value.
56028func (s *ThingIndexingConfiguration) SetManagedFields(v []*Field) *ThingIndexingConfiguration {
56029	s.ManagedFields = v
56030	return s
56031}
56032
56033// SetThingConnectivityIndexingMode sets the ThingConnectivityIndexingMode field's value.
56034func (s *ThingIndexingConfiguration) SetThingConnectivityIndexingMode(v string) *ThingIndexingConfiguration {
56035	s.ThingConnectivityIndexingMode = &v
56036	return s
56037}
56038
56039// SetThingIndexingMode sets the ThingIndexingMode field's value.
56040func (s *ThingIndexingConfiguration) SetThingIndexingMode(v string) *ThingIndexingConfiguration {
56041	s.ThingIndexingMode = &v
56042	return s
56043}
56044
56045// The definition of the thing type, including thing type name and description.
56046type ThingTypeDefinition struct {
56047	_ struct{} `type:"structure"`
56048
56049	// The thing type ARN.
56050	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
56051
56052	// The ThingTypeMetadata contains additional information about the thing type
56053	// including: creation date and time, a value indicating whether the thing type
56054	// is deprecated, and a date and time when it was deprecated.
56055	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
56056
56057	// The name of the thing type.
56058	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
56059
56060	// The ThingTypeProperties for the thing type.
56061	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
56062}
56063
56064// String returns the string representation
56065func (s ThingTypeDefinition) String() string {
56066	return awsutil.Prettify(s)
56067}
56068
56069// GoString returns the string representation
56070func (s ThingTypeDefinition) GoString() string {
56071	return s.String()
56072}
56073
56074// SetThingTypeArn sets the ThingTypeArn field's value.
56075func (s *ThingTypeDefinition) SetThingTypeArn(v string) *ThingTypeDefinition {
56076	s.ThingTypeArn = &v
56077	return s
56078}
56079
56080// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
56081func (s *ThingTypeDefinition) SetThingTypeMetadata(v *ThingTypeMetadata) *ThingTypeDefinition {
56082	s.ThingTypeMetadata = v
56083	return s
56084}
56085
56086// SetThingTypeName sets the ThingTypeName field's value.
56087func (s *ThingTypeDefinition) SetThingTypeName(v string) *ThingTypeDefinition {
56088	s.ThingTypeName = &v
56089	return s
56090}
56091
56092// SetThingTypeProperties sets the ThingTypeProperties field's value.
56093func (s *ThingTypeDefinition) SetThingTypeProperties(v *ThingTypeProperties) *ThingTypeDefinition {
56094	s.ThingTypeProperties = v
56095	return s
56096}
56097
56098// The ThingTypeMetadata contains additional information about the thing type
56099// including: creation date and time, a value indicating whether the thing type
56100// is deprecated, and a date and time when time was deprecated.
56101type ThingTypeMetadata struct {
56102	_ struct{} `type:"structure"`
56103
56104	// The date and time when the thing type was created.
56105	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
56106
56107	// Whether the thing type is deprecated. If true, no new things could be associated
56108	// with this type.
56109	Deprecated *bool `locationName:"deprecated" type:"boolean"`
56110
56111	// The date and time when the thing type was deprecated.
56112	DeprecationDate *time.Time `locationName:"deprecationDate" type:"timestamp"`
56113}
56114
56115// String returns the string representation
56116func (s ThingTypeMetadata) String() string {
56117	return awsutil.Prettify(s)
56118}
56119
56120// GoString returns the string representation
56121func (s ThingTypeMetadata) GoString() string {
56122	return s.String()
56123}
56124
56125// SetCreationDate sets the CreationDate field's value.
56126func (s *ThingTypeMetadata) SetCreationDate(v time.Time) *ThingTypeMetadata {
56127	s.CreationDate = &v
56128	return s
56129}
56130
56131// SetDeprecated sets the Deprecated field's value.
56132func (s *ThingTypeMetadata) SetDeprecated(v bool) *ThingTypeMetadata {
56133	s.Deprecated = &v
56134	return s
56135}
56136
56137// SetDeprecationDate sets the DeprecationDate field's value.
56138func (s *ThingTypeMetadata) SetDeprecationDate(v time.Time) *ThingTypeMetadata {
56139	s.DeprecationDate = &v
56140	return s
56141}
56142
56143// The ThingTypeProperties contains information about the thing type including:
56144// a thing type description, and a list of searchable thing attribute names.
56145type ThingTypeProperties struct {
56146	_ struct{} `type:"structure"`
56147
56148	// A list of searchable thing attribute names.
56149	SearchableAttributes []*string `locationName:"searchableAttributes" type:"list"`
56150
56151	// The description of the thing type.
56152	ThingTypeDescription *string `locationName:"thingTypeDescription" type:"string"`
56153}
56154
56155// String returns the string representation
56156func (s ThingTypeProperties) String() string {
56157	return awsutil.Prettify(s)
56158}
56159
56160// GoString returns the string representation
56161func (s ThingTypeProperties) GoString() string {
56162	return s.String()
56163}
56164
56165// SetSearchableAttributes sets the SearchableAttributes field's value.
56166func (s *ThingTypeProperties) SetSearchableAttributes(v []*string) *ThingTypeProperties {
56167	s.SearchableAttributes = v
56168	return s
56169}
56170
56171// SetThingTypeDescription sets the ThingTypeDescription field's value.
56172func (s *ThingTypeProperties) SetThingTypeDescription(v string) *ThingTypeProperties {
56173	s.ThingTypeDescription = &v
56174	return s
56175}
56176
56177// The rate exceeds the limit.
56178type ThrottlingException struct {
56179	_            struct{}                  `type:"structure"`
56180	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
56181
56182	// The message for the exception.
56183	Message_ *string `locationName:"message" type:"string"`
56184}
56185
56186// String returns the string representation
56187func (s ThrottlingException) String() string {
56188	return awsutil.Prettify(s)
56189}
56190
56191// GoString returns the string representation
56192func (s ThrottlingException) GoString() string {
56193	return s.String()
56194}
56195
56196func newErrorThrottlingException(v protocol.ResponseMetadata) error {
56197	return &ThrottlingException{
56198		RespMetadata: v,
56199	}
56200}
56201
56202// Code returns the exception type name.
56203func (s *ThrottlingException) Code() string {
56204	return "ThrottlingException"
56205}
56206
56207// Message returns the exception's message.
56208func (s *ThrottlingException) Message() string {
56209	if s.Message_ != nil {
56210		return *s.Message_
56211	}
56212	return ""
56213}
56214
56215// OrigErr always returns nil, satisfies awserr.Error interface.
56216func (s *ThrottlingException) OrigErr() error {
56217	return nil
56218}
56219
56220func (s *ThrottlingException) Error() string {
56221	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
56222}
56223
56224// Status code returns the HTTP status code for the request's response error.
56225func (s *ThrottlingException) StatusCode() int {
56226	return s.RespMetadata.StatusCode
56227}
56228
56229// RequestID returns the service's response RequestID for request.
56230func (s *ThrottlingException) RequestID() string {
56231	return s.RespMetadata.RequestID
56232}
56233
56234// Specifies the amount of time each device has to finish its execution of the
56235// job. A timer is started when the job execution status is set to IN_PROGRESS.
56236// If the job execution status is not set to another terminal state before the
56237// timer expires, it will be automatically set to TIMED_OUT.
56238type TimeoutConfig struct {
56239	_ struct{} `type:"structure"`
56240
56241	// Specifies the amount of time, in minutes, this device has to finish execution
56242	// of this job. The timeout interval can be anywhere between 1 minute and 7
56243	// days (1 to 10080 minutes). The in progress timer can't be updated and will
56244	// apply to all job executions for the job. Whenever a job execution remains
56245	// in the IN_PROGRESS status for longer than this interval, the job execution
56246	// will fail and switch to the terminal TIMED_OUT status.
56247	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
56248}
56249
56250// String returns the string representation
56251func (s TimeoutConfig) String() string {
56252	return awsutil.Prettify(s)
56253}
56254
56255// GoString returns the string representation
56256func (s TimeoutConfig) GoString() string {
56257	return s.String()
56258}
56259
56260// SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
56261func (s *TimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *TimeoutConfig {
56262	s.InProgressTimeoutInMinutes = &v
56263	return s
56264}
56265
56266// The Timestream rule action writes attributes (measures) from an MQTT message
56267// into an Amazon Timestream table. For more information, see the Timestream
56268// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
56269// topic rule action documentation.
56270type TimestreamAction struct {
56271	_ struct{} `type:"structure"`
56272
56273	// The name of an Amazon Timestream database.
56274	//
56275	// DatabaseName is a required field
56276	DatabaseName *string `locationName:"databaseName" type:"string" required:"true"`
56277
56278	// Metadata attributes of the time series that are written in each measure record.
56279	//
56280	// Dimensions is a required field
56281	Dimensions []*TimestreamDimension `locationName:"dimensions" min:"1" type:"list" required:"true"`
56282
56283	// The ARN of the role that grants permission to write to the Amazon Timestream
56284	// database table.
56285	//
56286	// RoleArn is a required field
56287	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
56288
56289	// The name of the database table into which to write the measure records.
56290	//
56291	// TableName is a required field
56292	TableName *string `locationName:"tableName" type:"string" required:"true"`
56293
56294	// Specifies an application-defined value to replace the default value assigned
56295	// to the Timestream record's timestamp in the time column.
56296	//
56297	// You can use this property to specify the value and the precision of the Timestream
56298	// record's timestamp. You can specify a value from the message payload or a
56299	// value computed by a substitution template.
56300	//
56301	// If omitted, the topic rule action assigns the timestamp, in milliseconds,
56302	// at the time it processed the rule.
56303	Timestamp *TimestreamTimestamp `locationName:"timestamp" type:"structure"`
56304}
56305
56306// String returns the string representation
56307func (s TimestreamAction) String() string {
56308	return awsutil.Prettify(s)
56309}
56310
56311// GoString returns the string representation
56312func (s TimestreamAction) GoString() string {
56313	return s.String()
56314}
56315
56316// Validate inspects the fields of the type to determine if they are valid.
56317func (s *TimestreamAction) Validate() error {
56318	invalidParams := request.ErrInvalidParams{Context: "TimestreamAction"}
56319	if s.DatabaseName == nil {
56320		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
56321	}
56322	if s.Dimensions == nil {
56323		invalidParams.Add(request.NewErrParamRequired("Dimensions"))
56324	}
56325	if s.Dimensions != nil && len(s.Dimensions) < 1 {
56326		invalidParams.Add(request.NewErrParamMinLen("Dimensions", 1))
56327	}
56328	if s.RoleArn == nil {
56329		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
56330	}
56331	if s.TableName == nil {
56332		invalidParams.Add(request.NewErrParamRequired("TableName"))
56333	}
56334	if s.Dimensions != nil {
56335		for i, v := range s.Dimensions {
56336			if v == nil {
56337				continue
56338			}
56339			if err := v.Validate(); err != nil {
56340				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
56341			}
56342		}
56343	}
56344	if s.Timestamp != nil {
56345		if err := s.Timestamp.Validate(); err != nil {
56346			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
56347		}
56348	}
56349
56350	if invalidParams.Len() > 0 {
56351		return invalidParams
56352	}
56353	return nil
56354}
56355
56356// SetDatabaseName sets the DatabaseName field's value.
56357func (s *TimestreamAction) SetDatabaseName(v string) *TimestreamAction {
56358	s.DatabaseName = &v
56359	return s
56360}
56361
56362// SetDimensions sets the Dimensions field's value.
56363func (s *TimestreamAction) SetDimensions(v []*TimestreamDimension) *TimestreamAction {
56364	s.Dimensions = v
56365	return s
56366}
56367
56368// SetRoleArn sets the RoleArn field's value.
56369func (s *TimestreamAction) SetRoleArn(v string) *TimestreamAction {
56370	s.RoleArn = &v
56371	return s
56372}
56373
56374// SetTableName sets the TableName field's value.
56375func (s *TimestreamAction) SetTableName(v string) *TimestreamAction {
56376	s.TableName = &v
56377	return s
56378}
56379
56380// SetTimestamp sets the Timestamp field's value.
56381func (s *TimestreamAction) SetTimestamp(v *TimestreamTimestamp) *TimestreamAction {
56382	s.Timestamp = v
56383	return s
56384}
56385
56386// Metadata attributes of the time series that are written in each measure record.
56387type TimestreamDimension struct {
56388	_ struct{} `type:"structure"`
56389
56390	// The metadata dimension name. This is the name of the column in the Amazon
56391	// Timestream database table record.
56392	//
56393	// Dimensions cannot be named: measure_name, measure_value, or time. These names
56394	// are reserved. Dimension names cannot start with ts_ or measure_value and
56395	// they cannot contain the colon (:) character.
56396	//
56397	// Name is a required field
56398	Name *string `locationName:"name" type:"string" required:"true"`
56399
56400	// The value to write in this column of the database record.
56401	//
56402	// Value is a required field
56403	Value *string `locationName:"value" type:"string" required:"true"`
56404}
56405
56406// String returns the string representation
56407func (s TimestreamDimension) String() string {
56408	return awsutil.Prettify(s)
56409}
56410
56411// GoString returns the string representation
56412func (s TimestreamDimension) GoString() string {
56413	return s.String()
56414}
56415
56416// Validate inspects the fields of the type to determine if they are valid.
56417func (s *TimestreamDimension) Validate() error {
56418	invalidParams := request.ErrInvalidParams{Context: "TimestreamDimension"}
56419	if s.Name == nil {
56420		invalidParams.Add(request.NewErrParamRequired("Name"))
56421	}
56422	if s.Value == nil {
56423		invalidParams.Add(request.NewErrParamRequired("Value"))
56424	}
56425
56426	if invalidParams.Len() > 0 {
56427		return invalidParams
56428	}
56429	return nil
56430}
56431
56432// SetName sets the Name field's value.
56433func (s *TimestreamDimension) SetName(v string) *TimestreamDimension {
56434	s.Name = &v
56435	return s
56436}
56437
56438// SetValue sets the Value field's value.
56439func (s *TimestreamDimension) SetValue(v string) *TimestreamDimension {
56440	s.Value = &v
56441	return s
56442}
56443
56444// Describes how to interpret an application-defined timestamp value from an
56445// MQTT message payload and the precision of that value.
56446type TimestreamTimestamp struct {
56447	_ struct{} `type:"structure"`
56448
56449	// The precision of the timestamp value that results from the expression described
56450	// in value.
56451	//
56452	// Valid values: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. The default
56453	// is MILLISECONDS.
56454	//
56455	// Unit is a required field
56456	Unit *string `locationName:"unit" type:"string" required:"true"`
56457
56458	// An expression that returns a long epoch time value.
56459	//
56460	// Value is a required field
56461	Value *string `locationName:"value" type:"string" required:"true"`
56462}
56463
56464// String returns the string representation
56465func (s TimestreamTimestamp) String() string {
56466	return awsutil.Prettify(s)
56467}
56468
56469// GoString returns the string representation
56470func (s TimestreamTimestamp) GoString() string {
56471	return s.String()
56472}
56473
56474// Validate inspects the fields of the type to determine if they are valid.
56475func (s *TimestreamTimestamp) Validate() error {
56476	invalidParams := request.ErrInvalidParams{Context: "TimestreamTimestamp"}
56477	if s.Unit == nil {
56478		invalidParams.Add(request.NewErrParamRequired("Unit"))
56479	}
56480	if s.Value == nil {
56481		invalidParams.Add(request.NewErrParamRequired("Value"))
56482	}
56483
56484	if invalidParams.Len() > 0 {
56485		return invalidParams
56486	}
56487	return nil
56488}
56489
56490// SetUnit sets the Unit field's value.
56491func (s *TimestreamTimestamp) SetUnit(v string) *TimestreamTimestamp {
56492	s.Unit = &v
56493	return s
56494}
56495
56496// SetValue sets the Value field's value.
56497func (s *TimestreamTimestamp) SetValue(v string) *TimestreamTimestamp {
56498	s.Value = &v
56499	return s
56500}
56501
56502// Specifies the TLS context to use for the test authorizer request.
56503type TlsContext struct {
56504	_ struct{} `type:"structure"`
56505
56506	// The value of the serverName key in a TLS authorization request.
56507	ServerName *string `locationName:"serverName" min:"1" type:"string"`
56508}
56509
56510// String returns the string representation
56511func (s TlsContext) String() string {
56512	return awsutil.Prettify(s)
56513}
56514
56515// GoString returns the string representation
56516func (s TlsContext) GoString() string {
56517	return s.String()
56518}
56519
56520// Validate inspects the fields of the type to determine if they are valid.
56521func (s *TlsContext) Validate() error {
56522	invalidParams := request.ErrInvalidParams{Context: "TlsContext"}
56523	if s.ServerName != nil && len(*s.ServerName) < 1 {
56524		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
56525	}
56526
56527	if invalidParams.Len() > 0 {
56528		return invalidParams
56529	}
56530	return nil
56531}
56532
56533// SetServerName sets the ServerName field's value.
56534func (s *TlsContext) SetServerName(v string) *TlsContext {
56535	s.ServerName = &v
56536	return s
56537}
56538
56539// Describes a rule.
56540type TopicRule struct {
56541	_ struct{} `type:"structure"`
56542
56543	// The actions associated with the rule.
56544	Actions []*Action `locationName:"actions" type:"list"`
56545
56546	// The version of the SQL rules engine to use when evaluating the rule.
56547	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
56548
56549	// The date and time the rule was created.
56550	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
56551
56552	// The description of the rule.
56553	Description *string `locationName:"description" type:"string"`
56554
56555	// The action to perform when an error occurs.
56556	ErrorAction *Action `locationName:"errorAction" type:"structure"`
56557
56558	// Specifies whether the rule is disabled.
56559	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
56560
56561	// The name of the rule.
56562	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
56563
56564	// The SQL statement used to query the topic. When using a SQL query with multiple
56565	// lines, be sure to escape the newline characters.
56566	Sql *string `locationName:"sql" type:"string"`
56567}
56568
56569// String returns the string representation
56570func (s TopicRule) String() string {
56571	return awsutil.Prettify(s)
56572}
56573
56574// GoString returns the string representation
56575func (s TopicRule) GoString() string {
56576	return s.String()
56577}
56578
56579// SetActions sets the Actions field's value.
56580func (s *TopicRule) SetActions(v []*Action) *TopicRule {
56581	s.Actions = v
56582	return s
56583}
56584
56585// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
56586func (s *TopicRule) SetAwsIotSqlVersion(v string) *TopicRule {
56587	s.AwsIotSqlVersion = &v
56588	return s
56589}
56590
56591// SetCreatedAt sets the CreatedAt field's value.
56592func (s *TopicRule) SetCreatedAt(v time.Time) *TopicRule {
56593	s.CreatedAt = &v
56594	return s
56595}
56596
56597// SetDescription sets the Description field's value.
56598func (s *TopicRule) SetDescription(v string) *TopicRule {
56599	s.Description = &v
56600	return s
56601}
56602
56603// SetErrorAction sets the ErrorAction field's value.
56604func (s *TopicRule) SetErrorAction(v *Action) *TopicRule {
56605	s.ErrorAction = v
56606	return s
56607}
56608
56609// SetRuleDisabled sets the RuleDisabled field's value.
56610func (s *TopicRule) SetRuleDisabled(v bool) *TopicRule {
56611	s.RuleDisabled = &v
56612	return s
56613}
56614
56615// SetRuleName sets the RuleName field's value.
56616func (s *TopicRule) SetRuleName(v string) *TopicRule {
56617	s.RuleName = &v
56618	return s
56619}
56620
56621// SetSql sets the Sql field's value.
56622func (s *TopicRule) SetSql(v string) *TopicRule {
56623	s.Sql = &v
56624	return s
56625}
56626
56627// A topic rule destination.
56628type TopicRuleDestination struct {
56629	_ struct{} `type:"structure"`
56630
56631	// The topic rule destination URL.
56632	Arn *string `locationName:"arn" type:"string"`
56633
56634	// The date and time when the topic rule destination was created.
56635	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
56636
56637	// Properties of the HTTP URL.
56638	HttpUrlProperties *HttpUrlDestinationProperties `locationName:"httpUrlProperties" type:"structure"`
56639
56640	// The date and time when the topic rule destination was last updated.
56641	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
56642
56643	// The status of the topic rule destination. Valid values are:
56644	//
56645	// IN_PROGRESS
56646	//
56647	// A topic rule destination was created but has not been confirmed. You can
56648	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
56649	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
56650	// to your confirmation endpoint.
56651	//
56652	// ENABLED
56653	//
56654	// Confirmation was completed, and traffic to this destination is allowed. You
56655	// can set status to DISABLED by calling UpdateTopicRuleDestination.
56656	//
56657	// DISABLED
56658	//
56659	// Confirmation was completed, and traffic to this destination is not allowed.
56660	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
56661	//
56662	// ERROR
56663	//
56664	// Confirmation could not be completed, for example if the confirmation timed
56665	// out. You can call GetTopicRuleDestination for details about the error. You
56666	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
56667	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
56668	// to your confirmation endpoint.
56669	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
56670
56671	// Additional details or reason why the topic rule destination is in the current
56672	// status.
56673	StatusReason *string `locationName:"statusReason" type:"string"`
56674
56675	// Properties of the virtual private cloud (VPC) connection.
56676	VpcProperties *VpcDestinationProperties `locationName:"vpcProperties" type:"structure"`
56677}
56678
56679// String returns the string representation
56680func (s TopicRuleDestination) String() string {
56681	return awsutil.Prettify(s)
56682}
56683
56684// GoString returns the string representation
56685func (s TopicRuleDestination) GoString() string {
56686	return s.String()
56687}
56688
56689// SetArn sets the Arn field's value.
56690func (s *TopicRuleDestination) SetArn(v string) *TopicRuleDestination {
56691	s.Arn = &v
56692	return s
56693}
56694
56695// SetCreatedAt sets the CreatedAt field's value.
56696func (s *TopicRuleDestination) SetCreatedAt(v time.Time) *TopicRuleDestination {
56697	s.CreatedAt = &v
56698	return s
56699}
56700
56701// SetHttpUrlProperties sets the HttpUrlProperties field's value.
56702func (s *TopicRuleDestination) SetHttpUrlProperties(v *HttpUrlDestinationProperties) *TopicRuleDestination {
56703	s.HttpUrlProperties = v
56704	return s
56705}
56706
56707// SetLastUpdatedAt sets the LastUpdatedAt field's value.
56708func (s *TopicRuleDestination) SetLastUpdatedAt(v time.Time) *TopicRuleDestination {
56709	s.LastUpdatedAt = &v
56710	return s
56711}
56712
56713// SetStatus sets the Status field's value.
56714func (s *TopicRuleDestination) SetStatus(v string) *TopicRuleDestination {
56715	s.Status = &v
56716	return s
56717}
56718
56719// SetStatusReason sets the StatusReason field's value.
56720func (s *TopicRuleDestination) SetStatusReason(v string) *TopicRuleDestination {
56721	s.StatusReason = &v
56722	return s
56723}
56724
56725// SetVpcProperties sets the VpcProperties field's value.
56726func (s *TopicRuleDestination) SetVpcProperties(v *VpcDestinationProperties) *TopicRuleDestination {
56727	s.VpcProperties = v
56728	return s
56729}
56730
56731// Configuration of the topic rule destination.
56732type TopicRuleDestinationConfiguration struct {
56733	_ struct{} `type:"structure"`
56734
56735	// Configuration of the HTTP URL.
56736	HttpUrlConfiguration *HttpUrlDestinationConfiguration `locationName:"httpUrlConfiguration" type:"structure"`
56737
56738	// Configuration of the virtual private cloud (VPC) connection.
56739	VpcConfiguration *VpcDestinationConfiguration `locationName:"vpcConfiguration" type:"structure"`
56740}
56741
56742// String returns the string representation
56743func (s TopicRuleDestinationConfiguration) String() string {
56744	return awsutil.Prettify(s)
56745}
56746
56747// GoString returns the string representation
56748func (s TopicRuleDestinationConfiguration) GoString() string {
56749	return s.String()
56750}
56751
56752// Validate inspects the fields of the type to determine if they are valid.
56753func (s *TopicRuleDestinationConfiguration) Validate() error {
56754	invalidParams := request.ErrInvalidParams{Context: "TopicRuleDestinationConfiguration"}
56755	if s.HttpUrlConfiguration != nil {
56756		if err := s.HttpUrlConfiguration.Validate(); err != nil {
56757			invalidParams.AddNested("HttpUrlConfiguration", err.(request.ErrInvalidParams))
56758		}
56759	}
56760	if s.VpcConfiguration != nil {
56761		if err := s.VpcConfiguration.Validate(); err != nil {
56762			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
56763		}
56764	}
56765
56766	if invalidParams.Len() > 0 {
56767		return invalidParams
56768	}
56769	return nil
56770}
56771
56772// SetHttpUrlConfiguration sets the HttpUrlConfiguration field's value.
56773func (s *TopicRuleDestinationConfiguration) SetHttpUrlConfiguration(v *HttpUrlDestinationConfiguration) *TopicRuleDestinationConfiguration {
56774	s.HttpUrlConfiguration = v
56775	return s
56776}
56777
56778// SetVpcConfiguration sets the VpcConfiguration field's value.
56779func (s *TopicRuleDestinationConfiguration) SetVpcConfiguration(v *VpcDestinationConfiguration) *TopicRuleDestinationConfiguration {
56780	s.VpcConfiguration = v
56781	return s
56782}
56783
56784// Information about the topic rule destination.
56785type TopicRuleDestinationSummary struct {
56786	_ struct{} `type:"structure"`
56787
56788	// The topic rule destination ARN.
56789	Arn *string `locationName:"arn" type:"string"`
56790
56791	// The date and time when the topic rule destination was created.
56792	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
56793
56794	// Information about the HTTP URL.
56795	HttpUrlSummary *HttpUrlDestinationSummary `locationName:"httpUrlSummary" type:"structure"`
56796
56797	// The date and time when the topic rule destination was last updated.
56798	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
56799
56800	// The status of the topic rule destination. Valid values are:
56801	//
56802	// IN_PROGRESS
56803	//
56804	// A topic rule destination was created but has not been confirmed. You can
56805	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
56806	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
56807	// to your confirmation endpoint.
56808	//
56809	// ENABLED
56810	//
56811	// Confirmation was completed, and traffic to this destination is allowed. You
56812	// can set status to DISABLED by calling UpdateTopicRuleDestination.
56813	//
56814	// DISABLED
56815	//
56816	// Confirmation was completed, and traffic to this destination is not allowed.
56817	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
56818	//
56819	// ERROR
56820	//
56821	// Confirmation could not be completed, for example if the confirmation timed
56822	// out. You can call GetTopicRuleDestination for details about the error. You
56823	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
56824	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
56825	// to your confirmation endpoint.
56826	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
56827
56828	// The reason the topic rule destination is in the current status.
56829	StatusReason *string `locationName:"statusReason" type:"string"`
56830
56831	// Information about the virtual private cloud (VPC) connection.
56832	VpcDestinationSummary *VpcDestinationSummary `locationName:"vpcDestinationSummary" type:"structure"`
56833}
56834
56835// String returns the string representation
56836func (s TopicRuleDestinationSummary) String() string {
56837	return awsutil.Prettify(s)
56838}
56839
56840// GoString returns the string representation
56841func (s TopicRuleDestinationSummary) GoString() string {
56842	return s.String()
56843}
56844
56845// SetArn sets the Arn field's value.
56846func (s *TopicRuleDestinationSummary) SetArn(v string) *TopicRuleDestinationSummary {
56847	s.Arn = &v
56848	return s
56849}
56850
56851// SetCreatedAt sets the CreatedAt field's value.
56852func (s *TopicRuleDestinationSummary) SetCreatedAt(v time.Time) *TopicRuleDestinationSummary {
56853	s.CreatedAt = &v
56854	return s
56855}
56856
56857// SetHttpUrlSummary sets the HttpUrlSummary field's value.
56858func (s *TopicRuleDestinationSummary) SetHttpUrlSummary(v *HttpUrlDestinationSummary) *TopicRuleDestinationSummary {
56859	s.HttpUrlSummary = v
56860	return s
56861}
56862
56863// SetLastUpdatedAt sets the LastUpdatedAt field's value.
56864func (s *TopicRuleDestinationSummary) SetLastUpdatedAt(v time.Time) *TopicRuleDestinationSummary {
56865	s.LastUpdatedAt = &v
56866	return s
56867}
56868
56869// SetStatus sets the Status field's value.
56870func (s *TopicRuleDestinationSummary) SetStatus(v string) *TopicRuleDestinationSummary {
56871	s.Status = &v
56872	return s
56873}
56874
56875// SetStatusReason sets the StatusReason field's value.
56876func (s *TopicRuleDestinationSummary) SetStatusReason(v string) *TopicRuleDestinationSummary {
56877	s.StatusReason = &v
56878	return s
56879}
56880
56881// SetVpcDestinationSummary sets the VpcDestinationSummary field's value.
56882func (s *TopicRuleDestinationSummary) SetVpcDestinationSummary(v *VpcDestinationSummary) *TopicRuleDestinationSummary {
56883	s.VpcDestinationSummary = v
56884	return s
56885}
56886
56887// Describes a rule.
56888type TopicRuleListItem struct {
56889	_ struct{} `type:"structure"`
56890
56891	// The date and time the rule was created.
56892	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
56893
56894	// The rule ARN.
56895	RuleArn *string `locationName:"ruleArn" type:"string"`
56896
56897	// Specifies whether the rule is disabled.
56898	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
56899
56900	// The name of the rule.
56901	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
56902
56903	// The pattern for the topic names that apply.
56904	TopicPattern *string `locationName:"topicPattern" type:"string"`
56905}
56906
56907// String returns the string representation
56908func (s TopicRuleListItem) String() string {
56909	return awsutil.Prettify(s)
56910}
56911
56912// GoString returns the string representation
56913func (s TopicRuleListItem) GoString() string {
56914	return s.String()
56915}
56916
56917// SetCreatedAt sets the CreatedAt field's value.
56918func (s *TopicRuleListItem) SetCreatedAt(v time.Time) *TopicRuleListItem {
56919	s.CreatedAt = &v
56920	return s
56921}
56922
56923// SetRuleArn sets the RuleArn field's value.
56924func (s *TopicRuleListItem) SetRuleArn(v string) *TopicRuleListItem {
56925	s.RuleArn = &v
56926	return s
56927}
56928
56929// SetRuleDisabled sets the RuleDisabled field's value.
56930func (s *TopicRuleListItem) SetRuleDisabled(v bool) *TopicRuleListItem {
56931	s.RuleDisabled = &v
56932	return s
56933}
56934
56935// SetRuleName sets the RuleName field's value.
56936func (s *TopicRuleListItem) SetRuleName(v string) *TopicRuleListItem {
56937	s.RuleName = &v
56938	return s
56939}
56940
56941// SetTopicPattern sets the TopicPattern field's value.
56942func (s *TopicRuleListItem) SetTopicPattern(v string) *TopicRuleListItem {
56943	s.TopicPattern = &v
56944	return s
56945}
56946
56947// Describes a rule.
56948type TopicRulePayload struct {
56949	_ struct{} `type:"structure"`
56950
56951	// The actions associated with the rule.
56952	//
56953	// Actions is a required field
56954	Actions []*Action `locationName:"actions" type:"list" required:"true"`
56955
56956	// The version of the SQL rules engine to use when evaluating the rule.
56957	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
56958
56959	// The description of the rule.
56960	Description *string `locationName:"description" type:"string"`
56961
56962	// The action to take when an error occurs.
56963	ErrorAction *Action `locationName:"errorAction" type:"structure"`
56964
56965	// Specifies whether the rule is disabled.
56966	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
56967
56968	// The SQL statement used to query the topic. For more information, see IoT
56969	// SQL Reference (https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html)
56970	// in the IoT Developer Guide.
56971	//
56972	// Sql is a required field
56973	Sql *string `locationName:"sql" type:"string" required:"true"`
56974}
56975
56976// String returns the string representation
56977func (s TopicRulePayload) String() string {
56978	return awsutil.Prettify(s)
56979}
56980
56981// GoString returns the string representation
56982func (s TopicRulePayload) GoString() string {
56983	return s.String()
56984}
56985
56986// Validate inspects the fields of the type to determine if they are valid.
56987func (s *TopicRulePayload) Validate() error {
56988	invalidParams := request.ErrInvalidParams{Context: "TopicRulePayload"}
56989	if s.Actions == nil {
56990		invalidParams.Add(request.NewErrParamRequired("Actions"))
56991	}
56992	if s.Sql == nil {
56993		invalidParams.Add(request.NewErrParamRequired("Sql"))
56994	}
56995	if s.Actions != nil {
56996		for i, v := range s.Actions {
56997			if v == nil {
56998				continue
56999			}
57000			if err := v.Validate(); err != nil {
57001				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
57002			}
57003		}
57004	}
57005	if s.ErrorAction != nil {
57006		if err := s.ErrorAction.Validate(); err != nil {
57007			invalidParams.AddNested("ErrorAction", err.(request.ErrInvalidParams))
57008		}
57009	}
57010
57011	if invalidParams.Len() > 0 {
57012		return invalidParams
57013	}
57014	return nil
57015}
57016
57017// SetActions sets the Actions field's value.
57018func (s *TopicRulePayload) SetActions(v []*Action) *TopicRulePayload {
57019	s.Actions = v
57020	return s
57021}
57022
57023// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
57024func (s *TopicRulePayload) SetAwsIotSqlVersion(v string) *TopicRulePayload {
57025	s.AwsIotSqlVersion = &v
57026	return s
57027}
57028
57029// SetDescription sets the Description field's value.
57030func (s *TopicRulePayload) SetDescription(v string) *TopicRulePayload {
57031	s.Description = &v
57032	return s
57033}
57034
57035// SetErrorAction sets the ErrorAction field's value.
57036func (s *TopicRulePayload) SetErrorAction(v *Action) *TopicRulePayload {
57037	s.ErrorAction = v
57038	return s
57039}
57040
57041// SetRuleDisabled sets the RuleDisabled field's value.
57042func (s *TopicRulePayload) SetRuleDisabled(v bool) *TopicRulePayload {
57043	s.RuleDisabled = &v
57044	return s
57045}
57046
57047// SetSql sets the Sql field's value.
57048func (s *TopicRulePayload) SetSql(v string) *TopicRulePayload {
57049	s.Sql = &v
57050	return s
57051}
57052
57053// You can't revert the certificate transfer because the transfer is already
57054// complete.
57055type TransferAlreadyCompletedException struct {
57056	_            struct{}                  `type:"structure"`
57057	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
57058
57059	// The message for the exception.
57060	Message_ *string `locationName:"message" type:"string"`
57061}
57062
57063// String returns the string representation
57064func (s TransferAlreadyCompletedException) String() string {
57065	return awsutil.Prettify(s)
57066}
57067
57068// GoString returns the string representation
57069func (s TransferAlreadyCompletedException) GoString() string {
57070	return s.String()
57071}
57072
57073func newErrorTransferAlreadyCompletedException(v protocol.ResponseMetadata) error {
57074	return &TransferAlreadyCompletedException{
57075		RespMetadata: v,
57076	}
57077}
57078
57079// Code returns the exception type name.
57080func (s *TransferAlreadyCompletedException) Code() string {
57081	return "TransferAlreadyCompletedException"
57082}
57083
57084// Message returns the exception's message.
57085func (s *TransferAlreadyCompletedException) Message() string {
57086	if s.Message_ != nil {
57087		return *s.Message_
57088	}
57089	return ""
57090}
57091
57092// OrigErr always returns nil, satisfies awserr.Error interface.
57093func (s *TransferAlreadyCompletedException) OrigErr() error {
57094	return nil
57095}
57096
57097func (s *TransferAlreadyCompletedException) Error() string {
57098	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
57099}
57100
57101// Status code returns the HTTP status code for the request's response error.
57102func (s *TransferAlreadyCompletedException) StatusCode() int {
57103	return s.RespMetadata.StatusCode
57104}
57105
57106// RequestID returns the service's response RequestID for request.
57107func (s *TransferAlreadyCompletedException) RequestID() string {
57108	return s.RespMetadata.RequestID
57109}
57110
57111// The input for the TransferCertificate operation.
57112type TransferCertificateInput struct {
57113	_ struct{} `type:"structure"`
57114
57115	// The ID of the certificate. (The last part of the certificate ARN contains
57116	// the certificate ID.)
57117	//
57118	// CertificateId is a required field
57119	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
57120
57121	// The Amazon Web Services account.
57122	//
57123	// TargetAwsAccount is a required field
57124	TargetAwsAccount *string `location:"querystring" locationName:"targetAwsAccount" min:"12" type:"string" required:"true"`
57125
57126	// The transfer message.
57127	TransferMessage *string `locationName:"transferMessage" type:"string"`
57128}
57129
57130// String returns the string representation
57131func (s TransferCertificateInput) String() string {
57132	return awsutil.Prettify(s)
57133}
57134
57135// GoString returns the string representation
57136func (s TransferCertificateInput) GoString() string {
57137	return s.String()
57138}
57139
57140// Validate inspects the fields of the type to determine if they are valid.
57141func (s *TransferCertificateInput) Validate() error {
57142	invalidParams := request.ErrInvalidParams{Context: "TransferCertificateInput"}
57143	if s.CertificateId == nil {
57144		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
57145	}
57146	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
57147		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
57148	}
57149	if s.TargetAwsAccount == nil {
57150		invalidParams.Add(request.NewErrParamRequired("TargetAwsAccount"))
57151	}
57152	if s.TargetAwsAccount != nil && len(*s.TargetAwsAccount) < 12 {
57153		invalidParams.Add(request.NewErrParamMinLen("TargetAwsAccount", 12))
57154	}
57155
57156	if invalidParams.Len() > 0 {
57157		return invalidParams
57158	}
57159	return nil
57160}
57161
57162// SetCertificateId sets the CertificateId field's value.
57163func (s *TransferCertificateInput) SetCertificateId(v string) *TransferCertificateInput {
57164	s.CertificateId = &v
57165	return s
57166}
57167
57168// SetTargetAwsAccount sets the TargetAwsAccount field's value.
57169func (s *TransferCertificateInput) SetTargetAwsAccount(v string) *TransferCertificateInput {
57170	s.TargetAwsAccount = &v
57171	return s
57172}
57173
57174// SetTransferMessage sets the TransferMessage field's value.
57175func (s *TransferCertificateInput) SetTransferMessage(v string) *TransferCertificateInput {
57176	s.TransferMessage = &v
57177	return s
57178}
57179
57180// The output from the TransferCertificate operation.
57181type TransferCertificateOutput struct {
57182	_ struct{} `type:"structure"`
57183
57184	// The ARN of the certificate.
57185	TransferredCertificateArn *string `locationName:"transferredCertificateArn" type:"string"`
57186}
57187
57188// String returns the string representation
57189func (s TransferCertificateOutput) String() string {
57190	return awsutil.Prettify(s)
57191}
57192
57193// GoString returns the string representation
57194func (s TransferCertificateOutput) GoString() string {
57195	return s.String()
57196}
57197
57198// SetTransferredCertificateArn sets the TransferredCertificateArn field's value.
57199func (s *TransferCertificateOutput) SetTransferredCertificateArn(v string) *TransferCertificateOutput {
57200	s.TransferredCertificateArn = &v
57201	return s
57202}
57203
57204// You can't transfer the certificate because authorization policies are still
57205// attached.
57206type TransferConflictException struct {
57207	_            struct{}                  `type:"structure"`
57208	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
57209
57210	// The message for the exception.
57211	Message_ *string `locationName:"message" type:"string"`
57212}
57213
57214// String returns the string representation
57215func (s TransferConflictException) String() string {
57216	return awsutil.Prettify(s)
57217}
57218
57219// GoString returns the string representation
57220func (s TransferConflictException) GoString() string {
57221	return s.String()
57222}
57223
57224func newErrorTransferConflictException(v protocol.ResponseMetadata) error {
57225	return &TransferConflictException{
57226		RespMetadata: v,
57227	}
57228}
57229
57230// Code returns the exception type name.
57231func (s *TransferConflictException) Code() string {
57232	return "TransferConflictException"
57233}
57234
57235// Message returns the exception's message.
57236func (s *TransferConflictException) Message() string {
57237	if s.Message_ != nil {
57238		return *s.Message_
57239	}
57240	return ""
57241}
57242
57243// OrigErr always returns nil, satisfies awserr.Error interface.
57244func (s *TransferConflictException) OrigErr() error {
57245	return nil
57246}
57247
57248func (s *TransferConflictException) Error() string {
57249	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
57250}
57251
57252// Status code returns the HTTP status code for the request's response error.
57253func (s *TransferConflictException) StatusCode() int {
57254	return s.RespMetadata.StatusCode
57255}
57256
57257// RequestID returns the service's response RequestID for request.
57258func (s *TransferConflictException) RequestID() string {
57259	return s.RespMetadata.RequestID
57260}
57261
57262// Data used to transfer a certificate to an Amazon Web Services account.
57263type TransferData struct {
57264	_ struct{} `type:"structure"`
57265
57266	// The date the transfer was accepted.
57267	AcceptDate *time.Time `locationName:"acceptDate" type:"timestamp"`
57268
57269	// The date the transfer was rejected.
57270	RejectDate *time.Time `locationName:"rejectDate" type:"timestamp"`
57271
57272	// The reason why the transfer was rejected.
57273	RejectReason *string `locationName:"rejectReason" type:"string"`
57274
57275	// The date the transfer took place.
57276	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
57277
57278	// The transfer message.
57279	TransferMessage *string `locationName:"transferMessage" type:"string"`
57280}
57281
57282// String returns the string representation
57283func (s TransferData) String() string {
57284	return awsutil.Prettify(s)
57285}
57286
57287// GoString returns the string representation
57288func (s TransferData) GoString() string {
57289	return s.String()
57290}
57291
57292// SetAcceptDate sets the AcceptDate field's value.
57293func (s *TransferData) SetAcceptDate(v time.Time) *TransferData {
57294	s.AcceptDate = &v
57295	return s
57296}
57297
57298// SetRejectDate sets the RejectDate field's value.
57299func (s *TransferData) SetRejectDate(v time.Time) *TransferData {
57300	s.RejectDate = &v
57301	return s
57302}
57303
57304// SetRejectReason sets the RejectReason field's value.
57305func (s *TransferData) SetRejectReason(v string) *TransferData {
57306	s.RejectReason = &v
57307	return s
57308}
57309
57310// SetTransferDate sets the TransferDate field's value.
57311func (s *TransferData) SetTransferDate(v time.Time) *TransferData {
57312	s.TransferDate = &v
57313	return s
57314}
57315
57316// SetTransferMessage sets the TransferMessage field's value.
57317func (s *TransferData) SetTransferMessage(v string) *TransferData {
57318	s.TransferMessage = &v
57319	return s
57320}
57321
57322// You are not authorized to perform this operation.
57323type UnauthorizedException struct {
57324	_            struct{}                  `type:"structure"`
57325	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
57326
57327	// The message for the exception.
57328	Message_ *string `locationName:"message" type:"string"`
57329}
57330
57331// String returns the string representation
57332func (s UnauthorizedException) String() string {
57333	return awsutil.Prettify(s)
57334}
57335
57336// GoString returns the string representation
57337func (s UnauthorizedException) GoString() string {
57338	return s.String()
57339}
57340
57341func newErrorUnauthorizedException(v protocol.ResponseMetadata) error {
57342	return &UnauthorizedException{
57343		RespMetadata: v,
57344	}
57345}
57346
57347// Code returns the exception type name.
57348func (s *UnauthorizedException) Code() string {
57349	return "UnauthorizedException"
57350}
57351
57352// Message returns the exception's message.
57353func (s *UnauthorizedException) Message() string {
57354	if s.Message_ != nil {
57355		return *s.Message_
57356	}
57357	return ""
57358}
57359
57360// OrigErr always returns nil, satisfies awserr.Error interface.
57361func (s *UnauthorizedException) OrigErr() error {
57362	return nil
57363}
57364
57365func (s *UnauthorizedException) Error() string {
57366	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
57367}
57368
57369// Status code returns the HTTP status code for the request's response error.
57370func (s *UnauthorizedException) StatusCode() int {
57371	return s.RespMetadata.StatusCode
57372}
57373
57374// RequestID returns the service's response RequestID for request.
57375func (s *UnauthorizedException) RequestID() string {
57376	return s.RespMetadata.RequestID
57377}
57378
57379type UntagResourceInput struct {
57380	_ struct{} `type:"structure"`
57381
57382	// The ARN of the resource.
57383	//
57384	// ResourceArn is a required field
57385	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
57386
57387	// A list of the keys of the tags to be removed from the resource.
57388	//
57389	// TagKeys is a required field
57390	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
57391}
57392
57393// String returns the string representation
57394func (s UntagResourceInput) String() string {
57395	return awsutil.Prettify(s)
57396}
57397
57398// GoString returns the string representation
57399func (s UntagResourceInput) GoString() string {
57400	return s.String()
57401}
57402
57403// Validate inspects the fields of the type to determine if they are valid.
57404func (s *UntagResourceInput) Validate() error {
57405	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
57406	if s.ResourceArn == nil {
57407		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
57408	}
57409	if s.TagKeys == nil {
57410		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
57411	}
57412
57413	if invalidParams.Len() > 0 {
57414		return invalidParams
57415	}
57416	return nil
57417}
57418
57419// SetResourceArn sets the ResourceArn field's value.
57420func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
57421	s.ResourceArn = &v
57422	return s
57423}
57424
57425// SetTagKeys sets the TagKeys field's value.
57426func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
57427	s.TagKeys = v
57428	return s
57429}
57430
57431type UntagResourceOutput struct {
57432	_ struct{} `type:"structure"`
57433}
57434
57435// String returns the string representation
57436func (s UntagResourceOutput) String() string {
57437	return awsutil.Prettify(s)
57438}
57439
57440// GoString returns the string representation
57441func (s UntagResourceOutput) GoString() string {
57442	return s.String()
57443}
57444
57445type UpdateAccountAuditConfigurationInput struct {
57446	_ struct{} `type:"structure"`
57447
57448	// Specifies which audit checks are enabled and disabled for this account. Use
57449	// DescribeAccountAuditConfiguration to see the list of all checks, including
57450	// those that are currently enabled.
57451	//
57452	// Some data collection might start immediately when certain checks are enabled.
57453	// When a check is disabled, any data collected so far in relation to the check
57454	// is deleted.
57455	//
57456	// You cannot disable a check if it's used by any scheduled audit. You must
57457	// first delete the check from the scheduled audit or delete the scheduled audit
57458	// itself.
57459	//
57460	// On the first call to UpdateAccountAuditConfiguration, this parameter is required
57461	// and must specify at least one enabled check.
57462	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
57463
57464	// Information about the targets to which audit notifications are sent.
57465	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
57466
57467	// The Amazon Resource Name (ARN) of the role that grants permission to IoT
57468	// to access information about your devices, policies, certificates, and other
57469	// items as required when performing an audit.
57470	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
57471}
57472
57473// String returns the string representation
57474func (s UpdateAccountAuditConfigurationInput) String() string {
57475	return awsutil.Prettify(s)
57476}
57477
57478// GoString returns the string representation
57479func (s UpdateAccountAuditConfigurationInput) GoString() string {
57480	return s.String()
57481}
57482
57483// Validate inspects the fields of the type to determine if they are valid.
57484func (s *UpdateAccountAuditConfigurationInput) Validate() error {
57485	invalidParams := request.ErrInvalidParams{Context: "UpdateAccountAuditConfigurationInput"}
57486	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
57487		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
57488	}
57489	if s.AuditNotificationTargetConfigurations != nil {
57490		for i, v := range s.AuditNotificationTargetConfigurations {
57491			if v == nil {
57492				continue
57493			}
57494			if err := v.Validate(); err != nil {
57495				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuditNotificationTargetConfigurations", i), err.(request.ErrInvalidParams))
57496			}
57497		}
57498	}
57499
57500	if invalidParams.Len() > 0 {
57501		return invalidParams
57502	}
57503	return nil
57504}
57505
57506// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
57507func (s *UpdateAccountAuditConfigurationInput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *UpdateAccountAuditConfigurationInput {
57508	s.AuditCheckConfigurations = v
57509	return s
57510}
57511
57512// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
57513func (s *UpdateAccountAuditConfigurationInput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *UpdateAccountAuditConfigurationInput {
57514	s.AuditNotificationTargetConfigurations = v
57515	return s
57516}
57517
57518// SetRoleArn sets the RoleArn field's value.
57519func (s *UpdateAccountAuditConfigurationInput) SetRoleArn(v string) *UpdateAccountAuditConfigurationInput {
57520	s.RoleArn = &v
57521	return s
57522}
57523
57524type UpdateAccountAuditConfigurationOutput struct {
57525	_ struct{} `type:"structure"`
57526}
57527
57528// String returns the string representation
57529func (s UpdateAccountAuditConfigurationOutput) String() string {
57530	return awsutil.Prettify(s)
57531}
57532
57533// GoString returns the string representation
57534func (s UpdateAccountAuditConfigurationOutput) GoString() string {
57535	return s.String()
57536}
57537
57538type UpdateAuditSuppressionInput struct {
57539	_ struct{} `type:"structure"`
57540
57541	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
57542	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
57543	// to select which checks are enabled.)
57544	//
57545	// CheckName is a required field
57546	CheckName *string `locationName:"checkName" type:"string" required:"true"`
57547
57548	// The description of the audit suppression.
57549	Description *string `locationName:"description" type:"string"`
57550
57551	// The expiration date (epoch timestamp in seconds) that you want the suppression
57552	// to adhere to.
57553	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
57554
57555	// Information that identifies the noncompliant resource.
57556	//
57557	// ResourceIdentifier is a required field
57558	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
57559
57560	// Indicates whether a suppression should exist indefinitely or not.
57561	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
57562}
57563
57564// String returns the string representation
57565func (s UpdateAuditSuppressionInput) String() string {
57566	return awsutil.Prettify(s)
57567}
57568
57569// GoString returns the string representation
57570func (s UpdateAuditSuppressionInput) GoString() string {
57571	return s.String()
57572}
57573
57574// Validate inspects the fields of the type to determine if they are valid.
57575func (s *UpdateAuditSuppressionInput) Validate() error {
57576	invalidParams := request.ErrInvalidParams{Context: "UpdateAuditSuppressionInput"}
57577	if s.CheckName == nil {
57578		invalidParams.Add(request.NewErrParamRequired("CheckName"))
57579	}
57580	if s.ResourceIdentifier == nil {
57581		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
57582	}
57583	if s.ResourceIdentifier != nil {
57584		if err := s.ResourceIdentifier.Validate(); err != nil {
57585			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
57586		}
57587	}
57588
57589	if invalidParams.Len() > 0 {
57590		return invalidParams
57591	}
57592	return nil
57593}
57594
57595// SetCheckName sets the CheckName field's value.
57596func (s *UpdateAuditSuppressionInput) SetCheckName(v string) *UpdateAuditSuppressionInput {
57597	s.CheckName = &v
57598	return s
57599}
57600
57601// SetDescription sets the Description field's value.
57602func (s *UpdateAuditSuppressionInput) SetDescription(v string) *UpdateAuditSuppressionInput {
57603	s.Description = &v
57604	return s
57605}
57606
57607// SetExpirationDate sets the ExpirationDate field's value.
57608func (s *UpdateAuditSuppressionInput) SetExpirationDate(v time.Time) *UpdateAuditSuppressionInput {
57609	s.ExpirationDate = &v
57610	return s
57611}
57612
57613// SetResourceIdentifier sets the ResourceIdentifier field's value.
57614func (s *UpdateAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *UpdateAuditSuppressionInput {
57615	s.ResourceIdentifier = v
57616	return s
57617}
57618
57619// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
57620func (s *UpdateAuditSuppressionInput) SetSuppressIndefinitely(v bool) *UpdateAuditSuppressionInput {
57621	s.SuppressIndefinitely = &v
57622	return s
57623}
57624
57625type UpdateAuditSuppressionOutput struct {
57626	_ struct{} `type:"structure"`
57627}
57628
57629// String returns the string representation
57630func (s UpdateAuditSuppressionOutput) String() string {
57631	return awsutil.Prettify(s)
57632}
57633
57634// GoString returns the string representation
57635func (s UpdateAuditSuppressionOutput) GoString() string {
57636	return s.String()
57637}
57638
57639type UpdateAuthorizerInput struct {
57640	_ struct{} `type:"structure"`
57641
57642	// The ARN of the authorizer's Lambda function.
57643	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
57644
57645	// The authorizer name.
57646	//
57647	// AuthorizerName is a required field
57648	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
57649
57650	// The status of the update authorizer request.
57651	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
57652
57653	// The key used to extract the token from the HTTP headers.
57654	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
57655
57656	// The public keys used to verify the token signature.
57657	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
57658}
57659
57660// String returns the string representation
57661func (s UpdateAuthorizerInput) String() string {
57662	return awsutil.Prettify(s)
57663}
57664
57665// GoString returns the string representation
57666func (s UpdateAuthorizerInput) GoString() string {
57667	return s.String()
57668}
57669
57670// Validate inspects the fields of the type to determine if they are valid.
57671func (s *UpdateAuthorizerInput) Validate() error {
57672	invalidParams := request.ErrInvalidParams{Context: "UpdateAuthorizerInput"}
57673	if s.AuthorizerName == nil {
57674		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
57675	}
57676	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
57677		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
57678	}
57679	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
57680		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
57681	}
57682
57683	if invalidParams.Len() > 0 {
57684		return invalidParams
57685	}
57686	return nil
57687}
57688
57689// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
57690func (s *UpdateAuthorizerInput) SetAuthorizerFunctionArn(v string) *UpdateAuthorizerInput {
57691	s.AuthorizerFunctionArn = &v
57692	return s
57693}
57694
57695// SetAuthorizerName sets the AuthorizerName field's value.
57696func (s *UpdateAuthorizerInput) SetAuthorizerName(v string) *UpdateAuthorizerInput {
57697	s.AuthorizerName = &v
57698	return s
57699}
57700
57701// SetStatus sets the Status field's value.
57702func (s *UpdateAuthorizerInput) SetStatus(v string) *UpdateAuthorizerInput {
57703	s.Status = &v
57704	return s
57705}
57706
57707// SetTokenKeyName sets the TokenKeyName field's value.
57708func (s *UpdateAuthorizerInput) SetTokenKeyName(v string) *UpdateAuthorizerInput {
57709	s.TokenKeyName = &v
57710	return s
57711}
57712
57713// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
57714func (s *UpdateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *UpdateAuthorizerInput {
57715	s.TokenSigningPublicKeys = v
57716	return s
57717}
57718
57719type UpdateAuthorizerOutput struct {
57720	_ struct{} `type:"structure"`
57721
57722	// The authorizer ARN.
57723	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
57724
57725	// The authorizer name.
57726	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
57727}
57728
57729// String returns the string representation
57730func (s UpdateAuthorizerOutput) String() string {
57731	return awsutil.Prettify(s)
57732}
57733
57734// GoString returns the string representation
57735func (s UpdateAuthorizerOutput) GoString() string {
57736	return s.String()
57737}
57738
57739// SetAuthorizerArn sets the AuthorizerArn field's value.
57740func (s *UpdateAuthorizerOutput) SetAuthorizerArn(v string) *UpdateAuthorizerOutput {
57741	s.AuthorizerArn = &v
57742	return s
57743}
57744
57745// SetAuthorizerName sets the AuthorizerName field's value.
57746func (s *UpdateAuthorizerOutput) SetAuthorizerName(v string) *UpdateAuthorizerOutput {
57747	s.AuthorizerName = &v
57748	return s
57749}
57750
57751type UpdateBillingGroupInput struct {
57752	_ struct{} `type:"structure"`
57753
57754	// The name of the billing group.
57755	//
57756	// BillingGroupName is a required field
57757	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
57758
57759	// The properties of the billing group.
57760	//
57761	// BillingGroupProperties is a required field
57762	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure" required:"true"`
57763
57764	// The expected version of the billing group. If the version of the billing
57765	// group does not match the expected version specified in the request, the UpdateBillingGroup
57766	// request is rejected with a VersionConflictException.
57767	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
57768}
57769
57770// String returns the string representation
57771func (s UpdateBillingGroupInput) String() string {
57772	return awsutil.Prettify(s)
57773}
57774
57775// GoString returns the string representation
57776func (s UpdateBillingGroupInput) GoString() string {
57777	return s.String()
57778}
57779
57780// Validate inspects the fields of the type to determine if they are valid.
57781func (s *UpdateBillingGroupInput) Validate() error {
57782	invalidParams := request.ErrInvalidParams{Context: "UpdateBillingGroupInput"}
57783	if s.BillingGroupName == nil {
57784		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
57785	}
57786	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
57787		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
57788	}
57789	if s.BillingGroupProperties == nil {
57790		invalidParams.Add(request.NewErrParamRequired("BillingGroupProperties"))
57791	}
57792
57793	if invalidParams.Len() > 0 {
57794		return invalidParams
57795	}
57796	return nil
57797}
57798
57799// SetBillingGroupName sets the BillingGroupName field's value.
57800func (s *UpdateBillingGroupInput) SetBillingGroupName(v string) *UpdateBillingGroupInput {
57801	s.BillingGroupName = &v
57802	return s
57803}
57804
57805// SetBillingGroupProperties sets the BillingGroupProperties field's value.
57806func (s *UpdateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *UpdateBillingGroupInput {
57807	s.BillingGroupProperties = v
57808	return s
57809}
57810
57811// SetExpectedVersion sets the ExpectedVersion field's value.
57812func (s *UpdateBillingGroupInput) SetExpectedVersion(v int64) *UpdateBillingGroupInput {
57813	s.ExpectedVersion = &v
57814	return s
57815}
57816
57817type UpdateBillingGroupOutput struct {
57818	_ struct{} `type:"structure"`
57819
57820	// The latest version of the billing group.
57821	Version *int64 `locationName:"version" type:"long"`
57822}
57823
57824// String returns the string representation
57825func (s UpdateBillingGroupOutput) String() string {
57826	return awsutil.Prettify(s)
57827}
57828
57829// GoString returns the string representation
57830func (s UpdateBillingGroupOutput) GoString() string {
57831	return s.String()
57832}
57833
57834// SetVersion sets the Version field's value.
57835func (s *UpdateBillingGroupOutput) SetVersion(v int64) *UpdateBillingGroupOutput {
57836	s.Version = &v
57837	return s
57838}
57839
57840// The input to the UpdateCACertificate operation.
57841type UpdateCACertificateInput struct {
57842	_ struct{} `type:"structure"`
57843
57844	// The CA certificate identifier.
57845	//
57846	// CertificateId is a required field
57847	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
57848
57849	// The new value for the auto registration status. Valid values are: "ENABLE"
57850	// or "DISABLE".
57851	NewAutoRegistrationStatus *string `location:"querystring" locationName:"newAutoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
57852
57853	// The updated status of the CA certificate.
57854	//
57855	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
57856	// used.
57857	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" enum:"CACertificateStatus"`
57858
57859	// Information about the registration configuration.
57860	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
57861
57862	// If true, removes auto registration.
57863	RemoveAutoRegistration *bool `locationName:"removeAutoRegistration" type:"boolean"`
57864}
57865
57866// String returns the string representation
57867func (s UpdateCACertificateInput) String() string {
57868	return awsutil.Prettify(s)
57869}
57870
57871// GoString returns the string representation
57872func (s UpdateCACertificateInput) GoString() string {
57873	return s.String()
57874}
57875
57876// Validate inspects the fields of the type to determine if they are valid.
57877func (s *UpdateCACertificateInput) Validate() error {
57878	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateInput"}
57879	if s.CertificateId == nil {
57880		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
57881	}
57882	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
57883		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
57884	}
57885	if s.RegistrationConfig != nil {
57886		if err := s.RegistrationConfig.Validate(); err != nil {
57887			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
57888		}
57889	}
57890
57891	if invalidParams.Len() > 0 {
57892		return invalidParams
57893	}
57894	return nil
57895}
57896
57897// SetCertificateId sets the CertificateId field's value.
57898func (s *UpdateCACertificateInput) SetCertificateId(v string) *UpdateCACertificateInput {
57899	s.CertificateId = &v
57900	return s
57901}
57902
57903// SetNewAutoRegistrationStatus sets the NewAutoRegistrationStatus field's value.
57904func (s *UpdateCACertificateInput) SetNewAutoRegistrationStatus(v string) *UpdateCACertificateInput {
57905	s.NewAutoRegistrationStatus = &v
57906	return s
57907}
57908
57909// SetNewStatus sets the NewStatus field's value.
57910func (s *UpdateCACertificateInput) SetNewStatus(v string) *UpdateCACertificateInput {
57911	s.NewStatus = &v
57912	return s
57913}
57914
57915// SetRegistrationConfig sets the RegistrationConfig field's value.
57916func (s *UpdateCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *UpdateCACertificateInput {
57917	s.RegistrationConfig = v
57918	return s
57919}
57920
57921// SetRemoveAutoRegistration sets the RemoveAutoRegistration field's value.
57922func (s *UpdateCACertificateInput) SetRemoveAutoRegistration(v bool) *UpdateCACertificateInput {
57923	s.RemoveAutoRegistration = &v
57924	return s
57925}
57926
57927type UpdateCACertificateOutput struct {
57928	_ struct{} `type:"structure"`
57929}
57930
57931// String returns the string representation
57932func (s UpdateCACertificateOutput) String() string {
57933	return awsutil.Prettify(s)
57934}
57935
57936// GoString returns the string representation
57937func (s UpdateCACertificateOutput) GoString() string {
57938	return s.String()
57939}
57940
57941// Parameters to define a mitigation action that changes the state of the CA
57942// certificate to inactive.
57943type UpdateCACertificateParams struct {
57944	_ struct{} `type:"structure"`
57945
57946	// The action that you want to apply to the CA certificate. The only supported
57947	// value is DEACTIVATE.
57948	//
57949	// Action is a required field
57950	Action *string `locationName:"action" type:"string" required:"true" enum:"CACertificateUpdateAction"`
57951}
57952
57953// String returns the string representation
57954func (s UpdateCACertificateParams) String() string {
57955	return awsutil.Prettify(s)
57956}
57957
57958// GoString returns the string representation
57959func (s UpdateCACertificateParams) GoString() string {
57960	return s.String()
57961}
57962
57963// Validate inspects the fields of the type to determine if they are valid.
57964func (s *UpdateCACertificateParams) Validate() error {
57965	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateParams"}
57966	if s.Action == nil {
57967		invalidParams.Add(request.NewErrParamRequired("Action"))
57968	}
57969
57970	if invalidParams.Len() > 0 {
57971		return invalidParams
57972	}
57973	return nil
57974}
57975
57976// SetAction sets the Action field's value.
57977func (s *UpdateCACertificateParams) SetAction(v string) *UpdateCACertificateParams {
57978	s.Action = &v
57979	return s
57980}
57981
57982// The input for the UpdateCertificate operation.
57983type UpdateCertificateInput struct {
57984	_ struct{} `type:"structure"`
57985
57986	// The ID of the certificate. (The last part of the certificate ARN contains
57987	// the certificate ID.)
57988	//
57989	// CertificateId is a required field
57990	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
57991
57992	// The new status.
57993	//
57994	// Note: Setting the status to PENDING_TRANSFER or PENDING_ACTIVATION will result
57995	// in an exception being thrown. PENDING_TRANSFER and PENDING_ACTIVATION are
57996	// statuses used internally by IoT. They are not intended for developer use.
57997	//
57998	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
57999	// used.
58000	//
58001	// NewStatus is a required field
58002	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" required:"true" enum:"CertificateStatus"`
58003}
58004
58005// String returns the string representation
58006func (s UpdateCertificateInput) String() string {
58007	return awsutil.Prettify(s)
58008}
58009
58010// GoString returns the string representation
58011func (s UpdateCertificateInput) GoString() string {
58012	return s.String()
58013}
58014
58015// Validate inspects the fields of the type to determine if they are valid.
58016func (s *UpdateCertificateInput) Validate() error {
58017	invalidParams := request.ErrInvalidParams{Context: "UpdateCertificateInput"}
58018	if s.CertificateId == nil {
58019		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
58020	}
58021	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
58022		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
58023	}
58024	if s.NewStatus == nil {
58025		invalidParams.Add(request.NewErrParamRequired("NewStatus"))
58026	}
58027
58028	if invalidParams.Len() > 0 {
58029		return invalidParams
58030	}
58031	return nil
58032}
58033
58034// SetCertificateId sets the CertificateId field's value.
58035func (s *UpdateCertificateInput) SetCertificateId(v string) *UpdateCertificateInput {
58036	s.CertificateId = &v
58037	return s
58038}
58039
58040// SetNewStatus sets the NewStatus field's value.
58041func (s *UpdateCertificateInput) SetNewStatus(v string) *UpdateCertificateInput {
58042	s.NewStatus = &v
58043	return s
58044}
58045
58046type UpdateCertificateOutput struct {
58047	_ struct{} `type:"structure"`
58048}
58049
58050// String returns the string representation
58051func (s UpdateCertificateOutput) String() string {
58052	return awsutil.Prettify(s)
58053}
58054
58055// GoString returns the string representation
58056func (s UpdateCertificateOutput) GoString() string {
58057	return s.String()
58058}
58059
58060type UpdateCustomMetricInput struct {
58061	_ struct{} `type:"structure"`
58062
58063	// Field represents a friendly name in the console for the custom metric, it
58064	// doesn't have to be unique. Don't use this name as the metric identifier in
58065	// the device metric report. Can be updated.
58066	//
58067	// DisplayName is a required field
58068	DisplayName *string `locationName:"displayName" type:"string" required:"true"`
58069
58070	// The name of the custom metric. Cannot be updated.
58071	//
58072	// MetricName is a required field
58073	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
58074}
58075
58076// String returns the string representation
58077func (s UpdateCustomMetricInput) String() string {
58078	return awsutil.Prettify(s)
58079}
58080
58081// GoString returns the string representation
58082func (s UpdateCustomMetricInput) GoString() string {
58083	return s.String()
58084}
58085
58086// Validate inspects the fields of the type to determine if they are valid.
58087func (s *UpdateCustomMetricInput) Validate() error {
58088	invalidParams := request.ErrInvalidParams{Context: "UpdateCustomMetricInput"}
58089	if s.DisplayName == nil {
58090		invalidParams.Add(request.NewErrParamRequired("DisplayName"))
58091	}
58092	if s.MetricName == nil {
58093		invalidParams.Add(request.NewErrParamRequired("MetricName"))
58094	}
58095	if s.MetricName != nil && len(*s.MetricName) < 1 {
58096		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
58097	}
58098
58099	if invalidParams.Len() > 0 {
58100		return invalidParams
58101	}
58102	return nil
58103}
58104
58105// SetDisplayName sets the DisplayName field's value.
58106func (s *UpdateCustomMetricInput) SetDisplayName(v string) *UpdateCustomMetricInput {
58107	s.DisplayName = &v
58108	return s
58109}
58110
58111// SetMetricName sets the MetricName field's value.
58112func (s *UpdateCustomMetricInput) SetMetricName(v string) *UpdateCustomMetricInput {
58113	s.MetricName = &v
58114	return s
58115}
58116
58117type UpdateCustomMetricOutput struct {
58118	_ struct{} `type:"structure"`
58119
58120	// The creation date of the custom metric in milliseconds since epoch.
58121	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
58122
58123	// A friendly name in the console for the custom metric
58124	DisplayName *string `locationName:"displayName" type:"string"`
58125
58126	// The time the custom metric was last modified in milliseconds since epoch.
58127	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
58128
58129	// The Amazon Resource Number (ARN) of the custom metric.
58130	MetricArn *string `locationName:"metricArn" type:"string"`
58131
58132	// The name of the custom metric.
58133	MetricName *string `locationName:"metricName" min:"1" type:"string"`
58134
58135	// The type of the custom metric. Types include string-list, ip-address-list,
58136	// number-list, and number.
58137	MetricType *string `locationName:"metricType" type:"string" enum:"CustomMetricType"`
58138}
58139
58140// String returns the string representation
58141func (s UpdateCustomMetricOutput) String() string {
58142	return awsutil.Prettify(s)
58143}
58144
58145// GoString returns the string representation
58146func (s UpdateCustomMetricOutput) GoString() string {
58147	return s.String()
58148}
58149
58150// SetCreationDate sets the CreationDate field's value.
58151func (s *UpdateCustomMetricOutput) SetCreationDate(v time.Time) *UpdateCustomMetricOutput {
58152	s.CreationDate = &v
58153	return s
58154}
58155
58156// SetDisplayName sets the DisplayName field's value.
58157func (s *UpdateCustomMetricOutput) SetDisplayName(v string) *UpdateCustomMetricOutput {
58158	s.DisplayName = &v
58159	return s
58160}
58161
58162// SetLastModifiedDate sets the LastModifiedDate field's value.
58163func (s *UpdateCustomMetricOutput) SetLastModifiedDate(v time.Time) *UpdateCustomMetricOutput {
58164	s.LastModifiedDate = &v
58165	return s
58166}
58167
58168// SetMetricArn sets the MetricArn field's value.
58169func (s *UpdateCustomMetricOutput) SetMetricArn(v string) *UpdateCustomMetricOutput {
58170	s.MetricArn = &v
58171	return s
58172}
58173
58174// SetMetricName sets the MetricName field's value.
58175func (s *UpdateCustomMetricOutput) SetMetricName(v string) *UpdateCustomMetricOutput {
58176	s.MetricName = &v
58177	return s
58178}
58179
58180// SetMetricType sets the MetricType field's value.
58181func (s *UpdateCustomMetricOutput) SetMetricType(v string) *UpdateCustomMetricOutput {
58182	s.MetricType = &v
58183	return s
58184}
58185
58186// Parameters to define a mitigation action that changes the state of the device
58187// certificate to inactive.
58188type UpdateDeviceCertificateParams struct {
58189	_ struct{} `type:"structure"`
58190
58191	// The action that you want to apply to the device certificate. The only supported
58192	// value is DEACTIVATE.
58193	//
58194	// Action is a required field
58195	Action *string `locationName:"action" type:"string" required:"true" enum:"DeviceCertificateUpdateAction"`
58196}
58197
58198// String returns the string representation
58199func (s UpdateDeviceCertificateParams) String() string {
58200	return awsutil.Prettify(s)
58201}
58202
58203// GoString returns the string representation
58204func (s UpdateDeviceCertificateParams) GoString() string {
58205	return s.String()
58206}
58207
58208// Validate inspects the fields of the type to determine if they are valid.
58209func (s *UpdateDeviceCertificateParams) Validate() error {
58210	invalidParams := request.ErrInvalidParams{Context: "UpdateDeviceCertificateParams"}
58211	if s.Action == nil {
58212		invalidParams.Add(request.NewErrParamRequired("Action"))
58213	}
58214
58215	if invalidParams.Len() > 0 {
58216		return invalidParams
58217	}
58218	return nil
58219}
58220
58221// SetAction sets the Action field's value.
58222func (s *UpdateDeviceCertificateParams) SetAction(v string) *UpdateDeviceCertificateParams {
58223	s.Action = &v
58224	return s
58225}
58226
58227type UpdateDimensionInput struct {
58228	_ struct{} `type:"structure"`
58229
58230	// A unique identifier for the dimension. Choose something that describes the
58231	// type and value to make it easy to remember what it does.
58232	//
58233	// Name is a required field
58234	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
58235
58236	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
58237	// dimensions, this is a pattern used to match the MQTT topic (for example,
58238	// "admin/#").
58239	//
58240	// StringValues is a required field
58241	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
58242}
58243
58244// String returns the string representation
58245func (s UpdateDimensionInput) String() string {
58246	return awsutil.Prettify(s)
58247}
58248
58249// GoString returns the string representation
58250func (s UpdateDimensionInput) GoString() string {
58251	return s.String()
58252}
58253
58254// Validate inspects the fields of the type to determine if they are valid.
58255func (s *UpdateDimensionInput) Validate() error {
58256	invalidParams := request.ErrInvalidParams{Context: "UpdateDimensionInput"}
58257	if s.Name == nil {
58258		invalidParams.Add(request.NewErrParamRequired("Name"))
58259	}
58260	if s.Name != nil && len(*s.Name) < 1 {
58261		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
58262	}
58263	if s.StringValues == nil {
58264		invalidParams.Add(request.NewErrParamRequired("StringValues"))
58265	}
58266	if s.StringValues != nil && len(s.StringValues) < 1 {
58267		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
58268	}
58269
58270	if invalidParams.Len() > 0 {
58271		return invalidParams
58272	}
58273	return nil
58274}
58275
58276// SetName sets the Name field's value.
58277func (s *UpdateDimensionInput) SetName(v string) *UpdateDimensionInput {
58278	s.Name = &v
58279	return s
58280}
58281
58282// SetStringValues sets the StringValues field's value.
58283func (s *UpdateDimensionInput) SetStringValues(v []*string) *UpdateDimensionInput {
58284	s.StringValues = v
58285	return s
58286}
58287
58288type UpdateDimensionOutput struct {
58289	_ struct{} `type:"structure"`
58290
58291	// The Amazon Resource Name (ARN)of the created dimension.
58292	Arn *string `locationName:"arn" type:"string"`
58293
58294	// The date and time, in milliseconds since epoch, when the dimension was initially
58295	// created.
58296	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
58297
58298	// The date and time, in milliseconds since epoch, when the dimension was most
58299	// recently updated.
58300	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
58301
58302	// A unique identifier for the dimension.
58303	Name *string `locationName:"name" min:"1" type:"string"`
58304
58305	// The value or list of values used to scope the dimension. For example, for
58306	// topic filters, this is the pattern used to match the MQTT topic name.
58307	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
58308
58309	// The type of the dimension.
58310	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
58311}
58312
58313// String returns the string representation
58314func (s UpdateDimensionOutput) String() string {
58315	return awsutil.Prettify(s)
58316}
58317
58318// GoString returns the string representation
58319func (s UpdateDimensionOutput) GoString() string {
58320	return s.String()
58321}
58322
58323// SetArn sets the Arn field's value.
58324func (s *UpdateDimensionOutput) SetArn(v string) *UpdateDimensionOutput {
58325	s.Arn = &v
58326	return s
58327}
58328
58329// SetCreationDate sets the CreationDate field's value.
58330func (s *UpdateDimensionOutput) SetCreationDate(v time.Time) *UpdateDimensionOutput {
58331	s.CreationDate = &v
58332	return s
58333}
58334
58335// SetLastModifiedDate sets the LastModifiedDate field's value.
58336func (s *UpdateDimensionOutput) SetLastModifiedDate(v time.Time) *UpdateDimensionOutput {
58337	s.LastModifiedDate = &v
58338	return s
58339}
58340
58341// SetName sets the Name field's value.
58342func (s *UpdateDimensionOutput) SetName(v string) *UpdateDimensionOutput {
58343	s.Name = &v
58344	return s
58345}
58346
58347// SetStringValues sets the StringValues field's value.
58348func (s *UpdateDimensionOutput) SetStringValues(v []*string) *UpdateDimensionOutput {
58349	s.StringValues = v
58350	return s
58351}
58352
58353// SetType sets the Type field's value.
58354func (s *UpdateDimensionOutput) SetType(v string) *UpdateDimensionOutput {
58355	s.Type = &v
58356	return s
58357}
58358
58359type UpdateDomainConfigurationInput struct {
58360	_ struct{} `type:"structure"`
58361
58362	// An object that specifies the authorization service for a domain.
58363	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
58364
58365	// The name of the domain configuration to be updated.
58366	//
58367	// DomainConfigurationName is a required field
58368	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
58369
58370	// The status to which the domain configuration should be updated.
58371	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
58372
58373	// Removes the authorization configuration from a domain.
58374	RemoveAuthorizerConfig *bool `locationName:"removeAuthorizerConfig" type:"boolean"`
58375}
58376
58377// String returns the string representation
58378func (s UpdateDomainConfigurationInput) String() string {
58379	return awsutil.Prettify(s)
58380}
58381
58382// GoString returns the string representation
58383func (s UpdateDomainConfigurationInput) GoString() string {
58384	return s.String()
58385}
58386
58387// Validate inspects the fields of the type to determine if they are valid.
58388func (s *UpdateDomainConfigurationInput) Validate() error {
58389	invalidParams := request.ErrInvalidParams{Context: "UpdateDomainConfigurationInput"}
58390	if s.DomainConfigurationName == nil {
58391		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
58392	}
58393	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
58394		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
58395	}
58396	if s.AuthorizerConfig != nil {
58397		if err := s.AuthorizerConfig.Validate(); err != nil {
58398			invalidParams.AddNested("AuthorizerConfig", err.(request.ErrInvalidParams))
58399		}
58400	}
58401
58402	if invalidParams.Len() > 0 {
58403		return invalidParams
58404	}
58405	return nil
58406}
58407
58408// SetAuthorizerConfig sets the AuthorizerConfig field's value.
58409func (s *UpdateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *UpdateDomainConfigurationInput {
58410	s.AuthorizerConfig = v
58411	return s
58412}
58413
58414// SetDomainConfigurationName sets the DomainConfigurationName field's value.
58415func (s *UpdateDomainConfigurationInput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationInput {
58416	s.DomainConfigurationName = &v
58417	return s
58418}
58419
58420// SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
58421func (s *UpdateDomainConfigurationInput) SetDomainConfigurationStatus(v string) *UpdateDomainConfigurationInput {
58422	s.DomainConfigurationStatus = &v
58423	return s
58424}
58425
58426// SetRemoveAuthorizerConfig sets the RemoveAuthorizerConfig field's value.
58427func (s *UpdateDomainConfigurationInput) SetRemoveAuthorizerConfig(v bool) *UpdateDomainConfigurationInput {
58428	s.RemoveAuthorizerConfig = &v
58429	return s
58430}
58431
58432type UpdateDomainConfigurationOutput struct {
58433	_ struct{} `type:"structure"`
58434
58435	// The ARN of the domain configuration that was updated.
58436	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
58437
58438	// The name of the domain configuration that was updated.
58439	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
58440}
58441
58442// String returns the string representation
58443func (s UpdateDomainConfigurationOutput) String() string {
58444	return awsutil.Prettify(s)
58445}
58446
58447// GoString returns the string representation
58448func (s UpdateDomainConfigurationOutput) GoString() string {
58449	return s.String()
58450}
58451
58452// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
58453func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *UpdateDomainConfigurationOutput {
58454	s.DomainConfigurationArn = &v
58455	return s
58456}
58457
58458// SetDomainConfigurationName sets the DomainConfigurationName field's value.
58459func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationOutput {
58460	s.DomainConfigurationName = &v
58461	return s
58462}
58463
58464type UpdateDynamicThingGroupInput struct {
58465	_ struct{} `type:"structure"`
58466
58467	// The expected version of the dynamic thing group to update.
58468	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
58469
58470	// The dynamic thing group index to update.
58471	//
58472	// Currently one index is supported: AWS_Things.
58473	IndexName *string `locationName:"indexName" min:"1" type:"string"`
58474
58475	// The dynamic thing group search query string to update.
58476	QueryString *string `locationName:"queryString" min:"1" type:"string"`
58477
58478	// The dynamic thing group query version to update.
58479	//
58480	// Currently one query version is supported: "2017-09-30". If not specified,
58481	// the query version defaults to this value.
58482	QueryVersion *string `locationName:"queryVersion" type:"string"`
58483
58484	// The name of the dynamic thing group to update.
58485	//
58486	// ThingGroupName is a required field
58487	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
58488
58489	// The dynamic thing group properties to update.
58490	//
58491	// ThingGroupProperties is a required field
58492	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
58493}
58494
58495// String returns the string representation
58496func (s UpdateDynamicThingGroupInput) String() string {
58497	return awsutil.Prettify(s)
58498}
58499
58500// GoString returns the string representation
58501func (s UpdateDynamicThingGroupInput) GoString() string {
58502	return s.String()
58503}
58504
58505// Validate inspects the fields of the type to determine if they are valid.
58506func (s *UpdateDynamicThingGroupInput) Validate() error {
58507	invalidParams := request.ErrInvalidParams{Context: "UpdateDynamicThingGroupInput"}
58508	if s.IndexName != nil && len(*s.IndexName) < 1 {
58509		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
58510	}
58511	if s.QueryString != nil && len(*s.QueryString) < 1 {
58512		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
58513	}
58514	if s.ThingGroupName == nil {
58515		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
58516	}
58517	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
58518		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
58519	}
58520	if s.ThingGroupProperties == nil {
58521		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
58522	}
58523
58524	if invalidParams.Len() > 0 {
58525		return invalidParams
58526	}
58527	return nil
58528}
58529
58530// SetExpectedVersion sets the ExpectedVersion field's value.
58531func (s *UpdateDynamicThingGroupInput) SetExpectedVersion(v int64) *UpdateDynamicThingGroupInput {
58532	s.ExpectedVersion = &v
58533	return s
58534}
58535
58536// SetIndexName sets the IndexName field's value.
58537func (s *UpdateDynamicThingGroupInput) SetIndexName(v string) *UpdateDynamicThingGroupInput {
58538	s.IndexName = &v
58539	return s
58540}
58541
58542// SetQueryString sets the QueryString field's value.
58543func (s *UpdateDynamicThingGroupInput) SetQueryString(v string) *UpdateDynamicThingGroupInput {
58544	s.QueryString = &v
58545	return s
58546}
58547
58548// SetQueryVersion sets the QueryVersion field's value.
58549func (s *UpdateDynamicThingGroupInput) SetQueryVersion(v string) *UpdateDynamicThingGroupInput {
58550	s.QueryVersion = &v
58551	return s
58552}
58553
58554// SetThingGroupName sets the ThingGroupName field's value.
58555func (s *UpdateDynamicThingGroupInput) SetThingGroupName(v string) *UpdateDynamicThingGroupInput {
58556	s.ThingGroupName = &v
58557	return s
58558}
58559
58560// SetThingGroupProperties sets the ThingGroupProperties field's value.
58561func (s *UpdateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateDynamicThingGroupInput {
58562	s.ThingGroupProperties = v
58563	return s
58564}
58565
58566type UpdateDynamicThingGroupOutput struct {
58567	_ struct{} `type:"structure"`
58568
58569	// The dynamic thing group version.
58570	Version *int64 `locationName:"version" type:"long"`
58571}
58572
58573// String returns the string representation
58574func (s UpdateDynamicThingGroupOutput) String() string {
58575	return awsutil.Prettify(s)
58576}
58577
58578// GoString returns the string representation
58579func (s UpdateDynamicThingGroupOutput) GoString() string {
58580	return s.String()
58581}
58582
58583// SetVersion sets the Version field's value.
58584func (s *UpdateDynamicThingGroupOutput) SetVersion(v int64) *UpdateDynamicThingGroupOutput {
58585	s.Version = &v
58586	return s
58587}
58588
58589type UpdateEventConfigurationsInput struct {
58590	_ struct{} `type:"structure"`
58591
58592	// The new event configuration values.
58593	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
58594}
58595
58596// String returns the string representation
58597func (s UpdateEventConfigurationsInput) String() string {
58598	return awsutil.Prettify(s)
58599}
58600
58601// GoString returns the string representation
58602func (s UpdateEventConfigurationsInput) GoString() string {
58603	return s.String()
58604}
58605
58606// SetEventConfigurations sets the EventConfigurations field's value.
58607func (s *UpdateEventConfigurationsInput) SetEventConfigurations(v map[string]*Configuration) *UpdateEventConfigurationsInput {
58608	s.EventConfigurations = v
58609	return s
58610}
58611
58612type UpdateEventConfigurationsOutput struct {
58613	_ struct{} `type:"structure"`
58614}
58615
58616// String returns the string representation
58617func (s UpdateEventConfigurationsOutput) String() string {
58618	return awsutil.Prettify(s)
58619}
58620
58621// GoString returns the string representation
58622func (s UpdateEventConfigurationsOutput) GoString() string {
58623	return s.String()
58624}
58625
58626type UpdateFleetMetricInput struct {
58627	_ struct{} `type:"structure"`
58628
58629	// The field to aggregate.
58630	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
58631
58632	// The type of the aggregation query.
58633	AggregationType *AggregationType `locationName:"aggregationType" type:"structure"`
58634
58635	// The description of the fleet metric.
58636	Description *string `locationName:"description" type:"string"`
58637
58638	// The expected version of the fleet metric record in the registry.
58639	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
58640
58641	// The name of the index to search.
58642	//
58643	// IndexName is a required field
58644	IndexName *string `locationName:"indexName" min:"1" type:"string" required:"true"`
58645
58646	// The name of the fleet metric to update.
58647	//
58648	// MetricName is a required field
58649	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
58650
58651	// The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1
58652	// day)] and must be multiple of 60.
58653	Period *int64 `locationName:"period" min:"60" type:"integer"`
58654
58655	// The search query string.
58656	QueryString *string `locationName:"queryString" min:"1" type:"string"`
58657
58658	// The version of the query.
58659	QueryVersion *string `locationName:"queryVersion" type:"string"`
58660
58661	// Used to support unit transformation such as milliseconds to seconds. The
58662	// unit must be supported by CW metric (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
58663	Unit *string `locationName:"unit" type:"string" enum:"FleetMetricUnit"`
58664}
58665
58666// String returns the string representation
58667func (s UpdateFleetMetricInput) String() string {
58668	return awsutil.Prettify(s)
58669}
58670
58671// GoString returns the string representation
58672func (s UpdateFleetMetricInput) GoString() string {
58673	return s.String()
58674}
58675
58676// Validate inspects the fields of the type to determine if they are valid.
58677func (s *UpdateFleetMetricInput) Validate() error {
58678	invalidParams := request.ErrInvalidParams{Context: "UpdateFleetMetricInput"}
58679	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
58680		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
58681	}
58682	if s.IndexName == nil {
58683		invalidParams.Add(request.NewErrParamRequired("IndexName"))
58684	}
58685	if s.IndexName != nil && len(*s.IndexName) < 1 {
58686		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
58687	}
58688	if s.MetricName == nil {
58689		invalidParams.Add(request.NewErrParamRequired("MetricName"))
58690	}
58691	if s.MetricName != nil && len(*s.MetricName) < 1 {
58692		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
58693	}
58694	if s.Period != nil && *s.Period < 60 {
58695		invalidParams.Add(request.NewErrParamMinValue("Period", 60))
58696	}
58697	if s.QueryString != nil && len(*s.QueryString) < 1 {
58698		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
58699	}
58700	if s.AggregationType != nil {
58701		if err := s.AggregationType.Validate(); err != nil {
58702			invalidParams.AddNested("AggregationType", err.(request.ErrInvalidParams))
58703		}
58704	}
58705
58706	if invalidParams.Len() > 0 {
58707		return invalidParams
58708	}
58709	return nil
58710}
58711
58712// SetAggregationField sets the AggregationField field's value.
58713func (s *UpdateFleetMetricInput) SetAggregationField(v string) *UpdateFleetMetricInput {
58714	s.AggregationField = &v
58715	return s
58716}
58717
58718// SetAggregationType sets the AggregationType field's value.
58719func (s *UpdateFleetMetricInput) SetAggregationType(v *AggregationType) *UpdateFleetMetricInput {
58720	s.AggregationType = v
58721	return s
58722}
58723
58724// SetDescription sets the Description field's value.
58725func (s *UpdateFleetMetricInput) SetDescription(v string) *UpdateFleetMetricInput {
58726	s.Description = &v
58727	return s
58728}
58729
58730// SetExpectedVersion sets the ExpectedVersion field's value.
58731func (s *UpdateFleetMetricInput) SetExpectedVersion(v int64) *UpdateFleetMetricInput {
58732	s.ExpectedVersion = &v
58733	return s
58734}
58735
58736// SetIndexName sets the IndexName field's value.
58737func (s *UpdateFleetMetricInput) SetIndexName(v string) *UpdateFleetMetricInput {
58738	s.IndexName = &v
58739	return s
58740}
58741
58742// SetMetricName sets the MetricName field's value.
58743func (s *UpdateFleetMetricInput) SetMetricName(v string) *UpdateFleetMetricInput {
58744	s.MetricName = &v
58745	return s
58746}
58747
58748// SetPeriod sets the Period field's value.
58749func (s *UpdateFleetMetricInput) SetPeriod(v int64) *UpdateFleetMetricInput {
58750	s.Period = &v
58751	return s
58752}
58753
58754// SetQueryString sets the QueryString field's value.
58755func (s *UpdateFleetMetricInput) SetQueryString(v string) *UpdateFleetMetricInput {
58756	s.QueryString = &v
58757	return s
58758}
58759
58760// SetQueryVersion sets the QueryVersion field's value.
58761func (s *UpdateFleetMetricInput) SetQueryVersion(v string) *UpdateFleetMetricInput {
58762	s.QueryVersion = &v
58763	return s
58764}
58765
58766// SetUnit sets the Unit field's value.
58767func (s *UpdateFleetMetricInput) SetUnit(v string) *UpdateFleetMetricInput {
58768	s.Unit = &v
58769	return s
58770}
58771
58772type UpdateFleetMetricOutput struct {
58773	_ struct{} `type:"structure"`
58774}
58775
58776// String returns the string representation
58777func (s UpdateFleetMetricOutput) String() string {
58778	return awsutil.Prettify(s)
58779}
58780
58781// GoString returns the string representation
58782func (s UpdateFleetMetricOutput) GoString() string {
58783	return s.String()
58784}
58785
58786type UpdateIndexingConfigurationInput struct {
58787	_ struct{} `type:"structure"`
58788
58789	// Thing group indexing configuration.
58790	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
58791
58792	// Thing indexing configuration.
58793	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
58794}
58795
58796// String returns the string representation
58797func (s UpdateIndexingConfigurationInput) String() string {
58798	return awsutil.Prettify(s)
58799}
58800
58801// GoString returns the string representation
58802func (s UpdateIndexingConfigurationInput) GoString() string {
58803	return s.String()
58804}
58805
58806// Validate inspects the fields of the type to determine if they are valid.
58807func (s *UpdateIndexingConfigurationInput) Validate() error {
58808	invalidParams := request.ErrInvalidParams{Context: "UpdateIndexingConfigurationInput"}
58809	if s.ThingGroupIndexingConfiguration != nil {
58810		if err := s.ThingGroupIndexingConfiguration.Validate(); err != nil {
58811			invalidParams.AddNested("ThingGroupIndexingConfiguration", err.(request.ErrInvalidParams))
58812		}
58813	}
58814	if s.ThingIndexingConfiguration != nil {
58815		if err := s.ThingIndexingConfiguration.Validate(); err != nil {
58816			invalidParams.AddNested("ThingIndexingConfiguration", err.(request.ErrInvalidParams))
58817		}
58818	}
58819
58820	if invalidParams.Len() > 0 {
58821		return invalidParams
58822	}
58823	return nil
58824}
58825
58826// SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
58827func (s *UpdateIndexingConfigurationInput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *UpdateIndexingConfigurationInput {
58828	s.ThingGroupIndexingConfiguration = v
58829	return s
58830}
58831
58832// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
58833func (s *UpdateIndexingConfigurationInput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *UpdateIndexingConfigurationInput {
58834	s.ThingIndexingConfiguration = v
58835	return s
58836}
58837
58838type UpdateIndexingConfigurationOutput struct {
58839	_ struct{} `type:"structure"`
58840}
58841
58842// String returns the string representation
58843func (s UpdateIndexingConfigurationOutput) String() string {
58844	return awsutil.Prettify(s)
58845}
58846
58847// GoString returns the string representation
58848func (s UpdateIndexingConfigurationOutput) GoString() string {
58849	return s.String()
58850}
58851
58852type UpdateJobInput struct {
58853	_ struct{} `type:"structure"`
58854
58855	// Allows you to create criteria to abort a job.
58856	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
58857
58858	// A short text description of the job.
58859	Description *string `locationName:"description" type:"string"`
58860
58861	// Allows you to create a staged rollout of the job.
58862	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
58863
58864	// The ID of the job to be updated.
58865	//
58866	// JobId is a required field
58867	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
58868
58869	// The namespace used to indicate that a job is a customer-managed job.
58870	//
58871	// When you specify a value for this parameter, Amazon Web Services IoT Core
58872	// sends jobs notifications to MQTT topics that contain the value in the following
58873	// format.
58874	//
58875	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
58876	//
58877	// The namespaceId feature is in public preview.
58878	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
58879
58880	// Configuration information for pre-signed S3 URLs.
58881	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
58882
58883	// Specifies the amount of time each device has to finish its execution of the
58884	// job. The timer is started when the job execution status is set to IN_PROGRESS.
58885	// If the job execution status is not set to another terminal state before the
58886	// time expires, it will be automatically set to TIMED_OUT.
58887	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
58888}
58889
58890// String returns the string representation
58891func (s UpdateJobInput) String() string {
58892	return awsutil.Prettify(s)
58893}
58894
58895// GoString returns the string representation
58896func (s UpdateJobInput) GoString() string {
58897	return s.String()
58898}
58899
58900// Validate inspects the fields of the type to determine if they are valid.
58901func (s *UpdateJobInput) Validate() error {
58902	invalidParams := request.ErrInvalidParams{Context: "UpdateJobInput"}
58903	if s.JobId == nil {
58904		invalidParams.Add(request.NewErrParamRequired("JobId"))
58905	}
58906	if s.JobId != nil && len(*s.JobId) < 1 {
58907		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
58908	}
58909	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
58910		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
58911	}
58912	if s.AbortConfig != nil {
58913		if err := s.AbortConfig.Validate(); err != nil {
58914			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
58915		}
58916	}
58917	if s.JobExecutionsRolloutConfig != nil {
58918		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
58919			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
58920		}
58921	}
58922	if s.PresignedUrlConfig != nil {
58923		if err := s.PresignedUrlConfig.Validate(); err != nil {
58924			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
58925		}
58926	}
58927
58928	if invalidParams.Len() > 0 {
58929		return invalidParams
58930	}
58931	return nil
58932}
58933
58934// SetAbortConfig sets the AbortConfig field's value.
58935func (s *UpdateJobInput) SetAbortConfig(v *AbortConfig) *UpdateJobInput {
58936	s.AbortConfig = v
58937	return s
58938}
58939
58940// SetDescription sets the Description field's value.
58941func (s *UpdateJobInput) SetDescription(v string) *UpdateJobInput {
58942	s.Description = &v
58943	return s
58944}
58945
58946// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
58947func (s *UpdateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *UpdateJobInput {
58948	s.JobExecutionsRolloutConfig = v
58949	return s
58950}
58951
58952// SetJobId sets the JobId field's value.
58953func (s *UpdateJobInput) SetJobId(v string) *UpdateJobInput {
58954	s.JobId = &v
58955	return s
58956}
58957
58958// SetNamespaceId sets the NamespaceId field's value.
58959func (s *UpdateJobInput) SetNamespaceId(v string) *UpdateJobInput {
58960	s.NamespaceId = &v
58961	return s
58962}
58963
58964// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
58965func (s *UpdateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *UpdateJobInput {
58966	s.PresignedUrlConfig = v
58967	return s
58968}
58969
58970// SetTimeoutConfig sets the TimeoutConfig field's value.
58971func (s *UpdateJobInput) SetTimeoutConfig(v *TimeoutConfig) *UpdateJobInput {
58972	s.TimeoutConfig = v
58973	return s
58974}
58975
58976type UpdateJobOutput struct {
58977	_ struct{} `type:"structure"`
58978}
58979
58980// String returns the string representation
58981func (s UpdateJobOutput) String() string {
58982	return awsutil.Prettify(s)
58983}
58984
58985// GoString returns the string representation
58986func (s UpdateJobOutput) GoString() string {
58987	return s.String()
58988}
58989
58990type UpdateMitigationActionInput struct {
58991	_ struct{} `type:"structure"`
58992
58993	// The friendly name for the mitigation action. You cannot change the name by
58994	// using UpdateMitigationAction. Instead, you must delete and recreate the mitigation
58995	// action with the new name.
58996	//
58997	// ActionName is a required field
58998	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
58999
59000	// Defines the type of action and the parameters for that action.
59001	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
59002
59003	// The ARN of the IAM role that is used to apply the mitigation action.
59004	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
59005}
59006
59007// String returns the string representation
59008func (s UpdateMitigationActionInput) String() string {
59009	return awsutil.Prettify(s)
59010}
59011
59012// GoString returns the string representation
59013func (s UpdateMitigationActionInput) GoString() string {
59014	return s.String()
59015}
59016
59017// Validate inspects the fields of the type to determine if they are valid.
59018func (s *UpdateMitigationActionInput) Validate() error {
59019	invalidParams := request.ErrInvalidParams{Context: "UpdateMitigationActionInput"}
59020	if s.ActionName == nil {
59021		invalidParams.Add(request.NewErrParamRequired("ActionName"))
59022	}
59023	if s.ActionName != nil && len(*s.ActionName) < 1 {
59024		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
59025	}
59026	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
59027		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
59028	}
59029	if s.ActionParams != nil {
59030		if err := s.ActionParams.Validate(); err != nil {
59031			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
59032		}
59033	}
59034
59035	if invalidParams.Len() > 0 {
59036		return invalidParams
59037	}
59038	return nil
59039}
59040
59041// SetActionName sets the ActionName field's value.
59042func (s *UpdateMitigationActionInput) SetActionName(v string) *UpdateMitigationActionInput {
59043	s.ActionName = &v
59044	return s
59045}
59046
59047// SetActionParams sets the ActionParams field's value.
59048func (s *UpdateMitigationActionInput) SetActionParams(v *MitigationActionParams) *UpdateMitigationActionInput {
59049	s.ActionParams = v
59050	return s
59051}
59052
59053// SetRoleArn sets the RoleArn field's value.
59054func (s *UpdateMitigationActionInput) SetRoleArn(v string) *UpdateMitigationActionInput {
59055	s.RoleArn = &v
59056	return s
59057}
59058
59059type UpdateMitigationActionOutput struct {
59060	_ struct{} `type:"structure"`
59061
59062	// The ARN for the new mitigation action.
59063	ActionArn *string `locationName:"actionArn" type:"string"`
59064
59065	// A unique identifier for the mitigation action.
59066	ActionId *string `locationName:"actionId" type:"string"`
59067}
59068
59069// String returns the string representation
59070func (s UpdateMitigationActionOutput) String() string {
59071	return awsutil.Prettify(s)
59072}
59073
59074// GoString returns the string representation
59075func (s UpdateMitigationActionOutput) GoString() string {
59076	return s.String()
59077}
59078
59079// SetActionArn sets the ActionArn field's value.
59080func (s *UpdateMitigationActionOutput) SetActionArn(v string) *UpdateMitigationActionOutput {
59081	s.ActionArn = &v
59082	return s
59083}
59084
59085// SetActionId sets the ActionId field's value.
59086func (s *UpdateMitigationActionOutput) SetActionId(v string) *UpdateMitigationActionOutput {
59087	s.ActionId = &v
59088	return s
59089}
59090
59091type UpdateProvisioningTemplateInput struct {
59092	_ struct{} `type:"structure"`
59093
59094	// The ID of the default provisioning template version.
59095	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
59096
59097	// The description of the fleet provisioning template.
59098	Description *string `locationName:"description" type:"string"`
59099
59100	// True to enable the fleet provisioning template, otherwise false.
59101	Enabled *bool `locationName:"enabled" type:"boolean"`
59102
59103	// Updates the pre-provisioning hook template.
59104	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
59105
59106	// The ARN of the role associated with the provisioning template. This IoT role
59107	// grants permission to provision a device.
59108	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
59109
59110	// Removes pre-provisioning hook template.
59111	RemovePreProvisioningHook *bool `locationName:"removePreProvisioningHook" type:"boolean"`
59112
59113	// The name of the fleet provisioning template.
59114	//
59115	// TemplateName is a required field
59116	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
59117}
59118
59119// String returns the string representation
59120func (s UpdateProvisioningTemplateInput) String() string {
59121	return awsutil.Prettify(s)
59122}
59123
59124// GoString returns the string representation
59125func (s UpdateProvisioningTemplateInput) GoString() string {
59126	return s.String()
59127}
59128
59129// Validate inspects the fields of the type to determine if they are valid.
59130func (s *UpdateProvisioningTemplateInput) Validate() error {
59131	invalidParams := request.ErrInvalidParams{Context: "UpdateProvisioningTemplateInput"}
59132	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
59133		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
59134	}
59135	if s.TemplateName == nil {
59136		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
59137	}
59138	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
59139		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
59140	}
59141	if s.PreProvisioningHook != nil {
59142		if err := s.PreProvisioningHook.Validate(); err != nil {
59143			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
59144		}
59145	}
59146
59147	if invalidParams.Len() > 0 {
59148		return invalidParams
59149	}
59150	return nil
59151}
59152
59153// SetDefaultVersionId sets the DefaultVersionId field's value.
59154func (s *UpdateProvisioningTemplateInput) SetDefaultVersionId(v int64) *UpdateProvisioningTemplateInput {
59155	s.DefaultVersionId = &v
59156	return s
59157}
59158
59159// SetDescription sets the Description field's value.
59160func (s *UpdateProvisioningTemplateInput) SetDescription(v string) *UpdateProvisioningTemplateInput {
59161	s.Description = &v
59162	return s
59163}
59164
59165// SetEnabled sets the Enabled field's value.
59166func (s *UpdateProvisioningTemplateInput) SetEnabled(v bool) *UpdateProvisioningTemplateInput {
59167	s.Enabled = &v
59168	return s
59169}
59170
59171// SetPreProvisioningHook sets the PreProvisioningHook field's value.
59172func (s *UpdateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *UpdateProvisioningTemplateInput {
59173	s.PreProvisioningHook = v
59174	return s
59175}
59176
59177// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
59178func (s *UpdateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *UpdateProvisioningTemplateInput {
59179	s.ProvisioningRoleArn = &v
59180	return s
59181}
59182
59183// SetRemovePreProvisioningHook sets the RemovePreProvisioningHook field's value.
59184func (s *UpdateProvisioningTemplateInput) SetRemovePreProvisioningHook(v bool) *UpdateProvisioningTemplateInput {
59185	s.RemovePreProvisioningHook = &v
59186	return s
59187}
59188
59189// SetTemplateName sets the TemplateName field's value.
59190func (s *UpdateProvisioningTemplateInput) SetTemplateName(v string) *UpdateProvisioningTemplateInput {
59191	s.TemplateName = &v
59192	return s
59193}
59194
59195type UpdateProvisioningTemplateOutput struct {
59196	_ struct{} `type:"structure"`
59197}
59198
59199// String returns the string representation
59200func (s UpdateProvisioningTemplateOutput) String() string {
59201	return awsutil.Prettify(s)
59202}
59203
59204// GoString returns the string representation
59205func (s UpdateProvisioningTemplateOutput) GoString() string {
59206	return s.String()
59207}
59208
59209type UpdateRoleAliasInput struct {
59210	_ struct{} `type:"structure"`
59211
59212	// The number of seconds the credential will be valid.
59213	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
59214
59215	// The role alias to update.
59216	//
59217	// RoleAlias is a required field
59218	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
59219
59220	// The role ARN.
59221	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
59222}
59223
59224// String returns the string representation
59225func (s UpdateRoleAliasInput) String() string {
59226	return awsutil.Prettify(s)
59227}
59228
59229// GoString returns the string representation
59230func (s UpdateRoleAliasInput) GoString() string {
59231	return s.String()
59232}
59233
59234// Validate inspects the fields of the type to determine if they are valid.
59235func (s *UpdateRoleAliasInput) Validate() error {
59236	invalidParams := request.ErrInvalidParams{Context: "UpdateRoleAliasInput"}
59237	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
59238		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
59239	}
59240	if s.RoleAlias == nil {
59241		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
59242	}
59243	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
59244		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
59245	}
59246	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
59247		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
59248	}
59249
59250	if invalidParams.Len() > 0 {
59251		return invalidParams
59252	}
59253	return nil
59254}
59255
59256// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
59257func (s *UpdateRoleAliasInput) SetCredentialDurationSeconds(v int64) *UpdateRoleAliasInput {
59258	s.CredentialDurationSeconds = &v
59259	return s
59260}
59261
59262// SetRoleAlias sets the RoleAlias field's value.
59263func (s *UpdateRoleAliasInput) SetRoleAlias(v string) *UpdateRoleAliasInput {
59264	s.RoleAlias = &v
59265	return s
59266}
59267
59268// SetRoleArn sets the RoleArn field's value.
59269func (s *UpdateRoleAliasInput) SetRoleArn(v string) *UpdateRoleAliasInput {
59270	s.RoleArn = &v
59271	return s
59272}
59273
59274type UpdateRoleAliasOutput struct {
59275	_ struct{} `type:"structure"`
59276
59277	// The role alias.
59278	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
59279
59280	// The role alias ARN.
59281	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
59282}
59283
59284// String returns the string representation
59285func (s UpdateRoleAliasOutput) String() string {
59286	return awsutil.Prettify(s)
59287}
59288
59289// GoString returns the string representation
59290func (s UpdateRoleAliasOutput) GoString() string {
59291	return s.String()
59292}
59293
59294// SetRoleAlias sets the RoleAlias field's value.
59295func (s *UpdateRoleAliasOutput) SetRoleAlias(v string) *UpdateRoleAliasOutput {
59296	s.RoleAlias = &v
59297	return s
59298}
59299
59300// SetRoleAliasArn sets the RoleAliasArn field's value.
59301func (s *UpdateRoleAliasOutput) SetRoleAliasArn(v string) *UpdateRoleAliasOutput {
59302	s.RoleAliasArn = &v
59303	return s
59304}
59305
59306type UpdateScheduledAuditInput struct {
59307	_ struct{} `type:"structure"`
59308
59309	// The day of the month on which the scheduled audit takes place. This can be
59310	// 1 through 31 or LAST. This field is required if the frequency parameter is
59311	// set to MONTHLY. If days 29-31 are specified, and the month does not have
59312	// that many days, the audit takes place on the "LAST" day of the month.
59313	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
59314
59315	// The day of the week on which the scheduled audit takes place. This can be
59316	// one of SUN, MON, TUE, WED, THU, FRI, or SAT. This field is required if the
59317	// "frequency" parameter is set to WEEKLY or BIWEEKLY.
59318	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
59319
59320	// How often the scheduled audit takes place, either DAILY, WEEKLY, BIWEEKLY,
59321	// or MONTHLY. The start time of each audit is determined by the system.
59322	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
59323
59324	// The name of the scheduled audit. (Max. 128 chars)
59325	//
59326	// ScheduledAuditName is a required field
59327	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
59328
59329	// Which checks are performed during the scheduled audit. Checks must be enabled
59330	// for your account. (Use DescribeAccountAuditConfiguration to see the list
59331	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
59332	// to select which checks are enabled.)
59333	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
59334}
59335
59336// String returns the string representation
59337func (s UpdateScheduledAuditInput) String() string {
59338	return awsutil.Prettify(s)
59339}
59340
59341// GoString returns the string representation
59342func (s UpdateScheduledAuditInput) GoString() string {
59343	return s.String()
59344}
59345
59346// Validate inspects the fields of the type to determine if they are valid.
59347func (s *UpdateScheduledAuditInput) Validate() error {
59348	invalidParams := request.ErrInvalidParams{Context: "UpdateScheduledAuditInput"}
59349	if s.ScheduledAuditName == nil {
59350		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
59351	}
59352	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
59353		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
59354	}
59355
59356	if invalidParams.Len() > 0 {
59357		return invalidParams
59358	}
59359	return nil
59360}
59361
59362// SetDayOfMonth sets the DayOfMonth field's value.
59363func (s *UpdateScheduledAuditInput) SetDayOfMonth(v string) *UpdateScheduledAuditInput {
59364	s.DayOfMonth = &v
59365	return s
59366}
59367
59368// SetDayOfWeek sets the DayOfWeek field's value.
59369func (s *UpdateScheduledAuditInput) SetDayOfWeek(v string) *UpdateScheduledAuditInput {
59370	s.DayOfWeek = &v
59371	return s
59372}
59373
59374// SetFrequency sets the Frequency field's value.
59375func (s *UpdateScheduledAuditInput) SetFrequency(v string) *UpdateScheduledAuditInput {
59376	s.Frequency = &v
59377	return s
59378}
59379
59380// SetScheduledAuditName sets the ScheduledAuditName field's value.
59381func (s *UpdateScheduledAuditInput) SetScheduledAuditName(v string) *UpdateScheduledAuditInput {
59382	s.ScheduledAuditName = &v
59383	return s
59384}
59385
59386// SetTargetCheckNames sets the TargetCheckNames field's value.
59387func (s *UpdateScheduledAuditInput) SetTargetCheckNames(v []*string) *UpdateScheduledAuditInput {
59388	s.TargetCheckNames = v
59389	return s
59390}
59391
59392type UpdateScheduledAuditOutput struct {
59393	_ struct{} `type:"structure"`
59394
59395	// The ARN of the scheduled audit.
59396	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
59397}
59398
59399// String returns the string representation
59400func (s UpdateScheduledAuditOutput) String() string {
59401	return awsutil.Prettify(s)
59402}
59403
59404// GoString returns the string representation
59405func (s UpdateScheduledAuditOutput) GoString() string {
59406	return s.String()
59407}
59408
59409// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
59410func (s *UpdateScheduledAuditOutput) SetScheduledAuditArn(v string) *UpdateScheduledAuditOutput {
59411	s.ScheduledAuditArn = &v
59412	return s
59413}
59414
59415type UpdateSecurityProfileInput struct {
59416	_ struct{} `type:"structure"`
59417
59418	// Please use UpdateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
59419	//
59420	// A list of metrics whose data is retained (stored). By default, data is retained
59421	// for any metric used in the profile's behaviors, but it is also retained for
59422	// any metric specified here. Can be used with custom metrics; cannot be used
59423	// with dimensions.
59424	//
59425	// Deprecated: Use additionalMetricsToRetainV2.
59426	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
59427
59428	// A list of metrics whose data is retained (stored). By default, data is retained
59429	// for any metric used in the profile's behaviors, but it is also retained for
59430	// any metric specified here. Can be used with custom metrics; cannot be used
59431	// with dimensions.
59432	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
59433
59434	// Where the alerts are sent. (Alerts are always sent to the console.)
59435	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
59436
59437	// Specifies the behaviors that, when violated by a device (thing), cause an
59438	// alert.
59439	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
59440
59441	// If true, delete all additionalMetricsToRetain defined for this security profile.
59442	// If any additionalMetricsToRetain are defined in the current invocation, an
59443	// exception occurs.
59444	DeleteAdditionalMetricsToRetain *bool `locationName:"deleteAdditionalMetricsToRetain" type:"boolean"`
59445
59446	// If true, delete all alertTargets defined for this security profile. If any
59447	// alertTargets are defined in the current invocation, an exception occurs.
59448	DeleteAlertTargets *bool `locationName:"deleteAlertTargets" type:"boolean"`
59449
59450	// If true, delete all behaviors defined for this security profile. If any behaviors
59451	// are defined in the current invocation, an exception occurs.
59452	DeleteBehaviors *bool `locationName:"deleteBehaviors" type:"boolean"`
59453
59454	// The expected version of the security profile. A new version is generated
59455	// whenever the security profile is updated. If you specify a value that is
59456	// different from the actual version, a VersionConflictException is thrown.
59457	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
59458
59459	// A description of the security profile.
59460	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
59461
59462	// The name of the security profile you want to update.
59463	//
59464	// SecurityProfileName is a required field
59465	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
59466}
59467
59468// String returns the string representation
59469func (s UpdateSecurityProfileInput) String() string {
59470	return awsutil.Prettify(s)
59471}
59472
59473// GoString returns the string representation
59474func (s UpdateSecurityProfileInput) GoString() string {
59475	return s.String()
59476}
59477
59478// Validate inspects the fields of the type to determine if they are valid.
59479func (s *UpdateSecurityProfileInput) Validate() error {
59480	invalidParams := request.ErrInvalidParams{Context: "UpdateSecurityProfileInput"}
59481	if s.SecurityProfileName == nil {
59482		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
59483	}
59484	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
59485		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
59486	}
59487	if s.AdditionalMetricsToRetainV2 != nil {
59488		for i, v := range s.AdditionalMetricsToRetainV2 {
59489			if v == nil {
59490				continue
59491			}
59492			if err := v.Validate(); err != nil {
59493				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
59494			}
59495		}
59496	}
59497	if s.AlertTargets != nil {
59498		for i, v := range s.AlertTargets {
59499			if v == nil {
59500				continue
59501			}
59502			if err := v.Validate(); err != nil {
59503				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
59504			}
59505		}
59506	}
59507	if s.Behaviors != nil {
59508		for i, v := range s.Behaviors {
59509			if v == nil {
59510				continue
59511			}
59512			if err := v.Validate(); err != nil {
59513				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
59514			}
59515		}
59516	}
59517
59518	if invalidParams.Len() > 0 {
59519		return invalidParams
59520	}
59521	return nil
59522}
59523
59524// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
59525func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileInput {
59526	s.AdditionalMetricsToRetain = v
59527	return s
59528}
59529
59530// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
59531func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileInput {
59532	s.AdditionalMetricsToRetainV2 = v
59533	return s
59534}
59535
59536// SetAlertTargets sets the AlertTargets field's value.
59537func (s *UpdateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileInput {
59538	s.AlertTargets = v
59539	return s
59540}
59541
59542// SetBehaviors sets the Behaviors field's value.
59543func (s *UpdateSecurityProfileInput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileInput {
59544	s.Behaviors = v
59545	return s
59546}
59547
59548// SetDeleteAdditionalMetricsToRetain sets the DeleteAdditionalMetricsToRetain field's value.
59549func (s *UpdateSecurityProfileInput) SetDeleteAdditionalMetricsToRetain(v bool) *UpdateSecurityProfileInput {
59550	s.DeleteAdditionalMetricsToRetain = &v
59551	return s
59552}
59553
59554// SetDeleteAlertTargets sets the DeleteAlertTargets field's value.
59555func (s *UpdateSecurityProfileInput) SetDeleteAlertTargets(v bool) *UpdateSecurityProfileInput {
59556	s.DeleteAlertTargets = &v
59557	return s
59558}
59559
59560// SetDeleteBehaviors sets the DeleteBehaviors field's value.
59561func (s *UpdateSecurityProfileInput) SetDeleteBehaviors(v bool) *UpdateSecurityProfileInput {
59562	s.DeleteBehaviors = &v
59563	return s
59564}
59565
59566// SetExpectedVersion sets the ExpectedVersion field's value.
59567func (s *UpdateSecurityProfileInput) SetExpectedVersion(v int64) *UpdateSecurityProfileInput {
59568	s.ExpectedVersion = &v
59569	return s
59570}
59571
59572// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
59573func (s *UpdateSecurityProfileInput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileInput {
59574	s.SecurityProfileDescription = &v
59575	return s
59576}
59577
59578// SetSecurityProfileName sets the SecurityProfileName field's value.
59579func (s *UpdateSecurityProfileInput) SetSecurityProfileName(v string) *UpdateSecurityProfileInput {
59580	s.SecurityProfileName = &v
59581	return s
59582}
59583
59584type UpdateSecurityProfileOutput struct {
59585	_ struct{} `type:"structure"`
59586
59587	// Please use UpdateSecurityProfileResponse$additionalMetricsToRetainV2 instead.
59588	//
59589	// A list of metrics whose data is retained (stored). By default, data is retained
59590	// for any metric used in the security profile's behaviors, but it is also retained
59591	// for any metric specified here.
59592	//
59593	// Deprecated: Use additionalMetricsToRetainV2.
59594	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
59595
59596	// A list of metrics whose data is retained (stored). By default, data is retained
59597	// for any metric used in the profile's behaviors, but it is also retained for
59598	// any metric specified here. Can be used with custom metrics; cannot be used
59599	// with dimensions.
59600	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
59601
59602	// Where the alerts are sent. (Alerts are always sent to the console.)
59603	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
59604
59605	// Specifies the behaviors that, when violated by a device (thing), cause an
59606	// alert.
59607	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
59608
59609	// The time the security profile was created.
59610	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
59611
59612	// The time the security profile was last modified.
59613	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
59614
59615	// The ARN of the security profile that was updated.
59616	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
59617
59618	// The description of the security profile.
59619	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
59620
59621	// The name of the security profile that was updated.
59622	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
59623
59624	// The updated version of the security profile.
59625	Version *int64 `locationName:"version" type:"long"`
59626}
59627
59628// String returns the string representation
59629func (s UpdateSecurityProfileOutput) String() string {
59630	return awsutil.Prettify(s)
59631}
59632
59633// GoString returns the string representation
59634func (s UpdateSecurityProfileOutput) GoString() string {
59635	return s.String()
59636}
59637
59638// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
59639func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileOutput {
59640	s.AdditionalMetricsToRetain = v
59641	return s
59642}
59643
59644// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
59645func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileOutput {
59646	s.AdditionalMetricsToRetainV2 = v
59647	return s
59648}
59649
59650// SetAlertTargets sets the AlertTargets field's value.
59651func (s *UpdateSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileOutput {
59652	s.AlertTargets = v
59653	return s
59654}
59655
59656// SetBehaviors sets the Behaviors field's value.
59657func (s *UpdateSecurityProfileOutput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileOutput {
59658	s.Behaviors = v
59659	return s
59660}
59661
59662// SetCreationDate sets the CreationDate field's value.
59663func (s *UpdateSecurityProfileOutput) SetCreationDate(v time.Time) *UpdateSecurityProfileOutput {
59664	s.CreationDate = &v
59665	return s
59666}
59667
59668// SetLastModifiedDate sets the LastModifiedDate field's value.
59669func (s *UpdateSecurityProfileOutput) SetLastModifiedDate(v time.Time) *UpdateSecurityProfileOutput {
59670	s.LastModifiedDate = &v
59671	return s
59672}
59673
59674// SetSecurityProfileArn sets the SecurityProfileArn field's value.
59675func (s *UpdateSecurityProfileOutput) SetSecurityProfileArn(v string) *UpdateSecurityProfileOutput {
59676	s.SecurityProfileArn = &v
59677	return s
59678}
59679
59680// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
59681func (s *UpdateSecurityProfileOutput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileOutput {
59682	s.SecurityProfileDescription = &v
59683	return s
59684}
59685
59686// SetSecurityProfileName sets the SecurityProfileName field's value.
59687func (s *UpdateSecurityProfileOutput) SetSecurityProfileName(v string) *UpdateSecurityProfileOutput {
59688	s.SecurityProfileName = &v
59689	return s
59690}
59691
59692// SetVersion sets the Version field's value.
59693func (s *UpdateSecurityProfileOutput) SetVersion(v int64) *UpdateSecurityProfileOutput {
59694	s.Version = &v
59695	return s
59696}
59697
59698type UpdateStreamInput struct {
59699	_ struct{} `type:"structure"`
59700
59701	// The description of the stream.
59702	Description *string `locationName:"description" type:"string"`
59703
59704	// The files associated with the stream.
59705	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
59706
59707	// An IAM role that allows the IoT service principal assumes to access your
59708	// S3 files.
59709	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
59710
59711	// The stream ID.
59712	//
59713	// StreamId is a required field
59714	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
59715}
59716
59717// String returns the string representation
59718func (s UpdateStreamInput) String() string {
59719	return awsutil.Prettify(s)
59720}
59721
59722// GoString returns the string representation
59723func (s UpdateStreamInput) GoString() string {
59724	return s.String()
59725}
59726
59727// Validate inspects the fields of the type to determine if they are valid.
59728func (s *UpdateStreamInput) Validate() error {
59729	invalidParams := request.ErrInvalidParams{Context: "UpdateStreamInput"}
59730	if s.Files != nil && len(s.Files) < 1 {
59731		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
59732	}
59733	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
59734		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
59735	}
59736	if s.StreamId == nil {
59737		invalidParams.Add(request.NewErrParamRequired("StreamId"))
59738	}
59739	if s.StreamId != nil && len(*s.StreamId) < 1 {
59740		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
59741	}
59742	if s.Files != nil {
59743		for i, v := range s.Files {
59744			if v == nil {
59745				continue
59746			}
59747			if err := v.Validate(); err != nil {
59748				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
59749			}
59750		}
59751	}
59752
59753	if invalidParams.Len() > 0 {
59754		return invalidParams
59755	}
59756	return nil
59757}
59758
59759// SetDescription sets the Description field's value.
59760func (s *UpdateStreamInput) SetDescription(v string) *UpdateStreamInput {
59761	s.Description = &v
59762	return s
59763}
59764
59765// SetFiles sets the Files field's value.
59766func (s *UpdateStreamInput) SetFiles(v []*StreamFile) *UpdateStreamInput {
59767	s.Files = v
59768	return s
59769}
59770
59771// SetRoleArn sets the RoleArn field's value.
59772func (s *UpdateStreamInput) SetRoleArn(v string) *UpdateStreamInput {
59773	s.RoleArn = &v
59774	return s
59775}
59776
59777// SetStreamId sets the StreamId field's value.
59778func (s *UpdateStreamInput) SetStreamId(v string) *UpdateStreamInput {
59779	s.StreamId = &v
59780	return s
59781}
59782
59783type UpdateStreamOutput struct {
59784	_ struct{} `type:"structure"`
59785
59786	// A description of the stream.
59787	Description *string `locationName:"description" type:"string"`
59788
59789	// The stream ARN.
59790	StreamArn *string `locationName:"streamArn" type:"string"`
59791
59792	// The stream ID.
59793	StreamId *string `locationName:"streamId" min:"1" type:"string"`
59794
59795	// The stream version.
59796	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
59797}
59798
59799// String returns the string representation
59800func (s UpdateStreamOutput) String() string {
59801	return awsutil.Prettify(s)
59802}
59803
59804// GoString returns the string representation
59805func (s UpdateStreamOutput) GoString() string {
59806	return s.String()
59807}
59808
59809// SetDescription sets the Description field's value.
59810func (s *UpdateStreamOutput) SetDescription(v string) *UpdateStreamOutput {
59811	s.Description = &v
59812	return s
59813}
59814
59815// SetStreamArn sets the StreamArn field's value.
59816func (s *UpdateStreamOutput) SetStreamArn(v string) *UpdateStreamOutput {
59817	s.StreamArn = &v
59818	return s
59819}
59820
59821// SetStreamId sets the StreamId field's value.
59822func (s *UpdateStreamOutput) SetStreamId(v string) *UpdateStreamOutput {
59823	s.StreamId = &v
59824	return s
59825}
59826
59827// SetStreamVersion sets the StreamVersion field's value.
59828func (s *UpdateStreamOutput) SetStreamVersion(v int64) *UpdateStreamOutput {
59829	s.StreamVersion = &v
59830	return s
59831}
59832
59833type UpdateThingGroupInput struct {
59834	_ struct{} `type:"structure"`
59835
59836	// The expected version of the thing group. If this does not match the version
59837	// of the thing group being updated, the update will fail.
59838	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
59839
59840	// The thing group to update.
59841	//
59842	// ThingGroupName is a required field
59843	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
59844
59845	// The thing group properties.
59846	//
59847	// ThingGroupProperties is a required field
59848	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
59849}
59850
59851// String returns the string representation
59852func (s UpdateThingGroupInput) String() string {
59853	return awsutil.Prettify(s)
59854}
59855
59856// GoString returns the string representation
59857func (s UpdateThingGroupInput) GoString() string {
59858	return s.String()
59859}
59860
59861// Validate inspects the fields of the type to determine if they are valid.
59862func (s *UpdateThingGroupInput) Validate() error {
59863	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupInput"}
59864	if s.ThingGroupName == nil {
59865		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
59866	}
59867	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
59868		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
59869	}
59870	if s.ThingGroupProperties == nil {
59871		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
59872	}
59873
59874	if invalidParams.Len() > 0 {
59875		return invalidParams
59876	}
59877	return nil
59878}
59879
59880// SetExpectedVersion sets the ExpectedVersion field's value.
59881func (s *UpdateThingGroupInput) SetExpectedVersion(v int64) *UpdateThingGroupInput {
59882	s.ExpectedVersion = &v
59883	return s
59884}
59885
59886// SetThingGroupName sets the ThingGroupName field's value.
59887func (s *UpdateThingGroupInput) SetThingGroupName(v string) *UpdateThingGroupInput {
59888	s.ThingGroupName = &v
59889	return s
59890}
59891
59892// SetThingGroupProperties sets the ThingGroupProperties field's value.
59893func (s *UpdateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateThingGroupInput {
59894	s.ThingGroupProperties = v
59895	return s
59896}
59897
59898type UpdateThingGroupOutput struct {
59899	_ struct{} `type:"structure"`
59900
59901	// The version of the updated thing group.
59902	Version *int64 `locationName:"version" type:"long"`
59903}
59904
59905// String returns the string representation
59906func (s UpdateThingGroupOutput) String() string {
59907	return awsutil.Prettify(s)
59908}
59909
59910// GoString returns the string representation
59911func (s UpdateThingGroupOutput) GoString() string {
59912	return s.String()
59913}
59914
59915// SetVersion sets the Version field's value.
59916func (s *UpdateThingGroupOutput) SetVersion(v int64) *UpdateThingGroupOutput {
59917	s.Version = &v
59918	return s
59919}
59920
59921type UpdateThingGroupsForThingInput struct {
59922	_ struct{} `type:"structure"`
59923
59924	// Override dynamic thing groups with static thing groups when 10-group limit
59925	// is reached. If a thing belongs to 10 thing groups, and one or more of those
59926	// groups are dynamic thing groups, adding a thing to a static group removes
59927	// the thing from the last dynamic group.
59928	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
59929
59930	// The groups to which the thing will be added.
59931	ThingGroupsToAdd []*string `locationName:"thingGroupsToAdd" type:"list"`
59932
59933	// The groups from which the thing will be removed.
59934	ThingGroupsToRemove []*string `locationName:"thingGroupsToRemove" type:"list"`
59935
59936	// The thing whose group memberships will be updated.
59937	ThingName *string `locationName:"thingName" min:"1" type:"string"`
59938}
59939
59940// String returns the string representation
59941func (s UpdateThingGroupsForThingInput) String() string {
59942	return awsutil.Prettify(s)
59943}
59944
59945// GoString returns the string representation
59946func (s UpdateThingGroupsForThingInput) GoString() string {
59947	return s.String()
59948}
59949
59950// Validate inspects the fields of the type to determine if they are valid.
59951func (s *UpdateThingGroupsForThingInput) Validate() error {
59952	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupsForThingInput"}
59953	if s.ThingName != nil && len(*s.ThingName) < 1 {
59954		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
59955	}
59956
59957	if invalidParams.Len() > 0 {
59958		return invalidParams
59959	}
59960	return nil
59961}
59962
59963// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
59964func (s *UpdateThingGroupsForThingInput) SetOverrideDynamicGroups(v bool) *UpdateThingGroupsForThingInput {
59965	s.OverrideDynamicGroups = &v
59966	return s
59967}
59968
59969// SetThingGroupsToAdd sets the ThingGroupsToAdd field's value.
59970func (s *UpdateThingGroupsForThingInput) SetThingGroupsToAdd(v []*string) *UpdateThingGroupsForThingInput {
59971	s.ThingGroupsToAdd = v
59972	return s
59973}
59974
59975// SetThingGroupsToRemove sets the ThingGroupsToRemove field's value.
59976func (s *UpdateThingGroupsForThingInput) SetThingGroupsToRemove(v []*string) *UpdateThingGroupsForThingInput {
59977	s.ThingGroupsToRemove = v
59978	return s
59979}
59980
59981// SetThingName sets the ThingName field's value.
59982func (s *UpdateThingGroupsForThingInput) SetThingName(v string) *UpdateThingGroupsForThingInput {
59983	s.ThingName = &v
59984	return s
59985}
59986
59987type UpdateThingGroupsForThingOutput struct {
59988	_ struct{} `type:"structure"`
59989}
59990
59991// String returns the string representation
59992func (s UpdateThingGroupsForThingOutput) String() string {
59993	return awsutil.Prettify(s)
59994}
59995
59996// GoString returns the string representation
59997func (s UpdateThingGroupsForThingOutput) GoString() string {
59998	return s.String()
59999}
60000
60001// The input for the UpdateThing operation.
60002type UpdateThingInput struct {
60003	_ struct{} `type:"structure"`
60004
60005	// A list of thing attributes, a JSON string containing name-value pairs. For
60006	// example:
60007	//
60008	// {\"attributes\":{\"name1\":\"value2\"}}
60009	//
60010	// This data is used to add new attributes or update existing attributes.
60011	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
60012
60013	// The expected version of the thing record in the registry. If the version
60014	// of the record in the registry does not match the expected version specified
60015	// in the request, the UpdateThing request is rejected with a VersionConflictException.
60016	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
60017
60018	// Remove a thing type association. If true, the association is removed.
60019	RemoveThingType *bool `locationName:"removeThingType" type:"boolean"`
60020
60021	// The name of the thing to update.
60022	//
60023	// You can't change a thing's name. To change a thing's name, you must create
60024	// a new thing, give it the new name, and then delete the old thing.
60025	//
60026	// ThingName is a required field
60027	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
60028
60029	// The name of the thing type.
60030	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
60031}
60032
60033// String returns the string representation
60034func (s UpdateThingInput) String() string {
60035	return awsutil.Prettify(s)
60036}
60037
60038// GoString returns the string representation
60039func (s UpdateThingInput) GoString() string {
60040	return s.String()
60041}
60042
60043// Validate inspects the fields of the type to determine if they are valid.
60044func (s *UpdateThingInput) Validate() error {
60045	invalidParams := request.ErrInvalidParams{Context: "UpdateThingInput"}
60046	if s.ThingName == nil {
60047		invalidParams.Add(request.NewErrParamRequired("ThingName"))
60048	}
60049	if s.ThingName != nil && len(*s.ThingName) < 1 {
60050		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
60051	}
60052	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
60053		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
60054	}
60055
60056	if invalidParams.Len() > 0 {
60057		return invalidParams
60058	}
60059	return nil
60060}
60061
60062// SetAttributePayload sets the AttributePayload field's value.
60063func (s *UpdateThingInput) SetAttributePayload(v *AttributePayload) *UpdateThingInput {
60064	s.AttributePayload = v
60065	return s
60066}
60067
60068// SetExpectedVersion sets the ExpectedVersion field's value.
60069func (s *UpdateThingInput) SetExpectedVersion(v int64) *UpdateThingInput {
60070	s.ExpectedVersion = &v
60071	return s
60072}
60073
60074// SetRemoveThingType sets the RemoveThingType field's value.
60075func (s *UpdateThingInput) SetRemoveThingType(v bool) *UpdateThingInput {
60076	s.RemoveThingType = &v
60077	return s
60078}
60079
60080// SetThingName sets the ThingName field's value.
60081func (s *UpdateThingInput) SetThingName(v string) *UpdateThingInput {
60082	s.ThingName = &v
60083	return s
60084}
60085
60086// SetThingTypeName sets the ThingTypeName field's value.
60087func (s *UpdateThingInput) SetThingTypeName(v string) *UpdateThingInput {
60088	s.ThingTypeName = &v
60089	return s
60090}
60091
60092// The output from the UpdateThing operation.
60093type UpdateThingOutput struct {
60094	_ struct{} `type:"structure"`
60095}
60096
60097// String returns the string representation
60098func (s UpdateThingOutput) String() string {
60099	return awsutil.Prettify(s)
60100}
60101
60102// GoString returns the string representation
60103func (s UpdateThingOutput) GoString() string {
60104	return s.String()
60105}
60106
60107type UpdateTopicRuleDestinationInput struct {
60108	_ struct{} `type:"structure"`
60109
60110	// The ARN of the topic rule destination.
60111	//
60112	// Arn is a required field
60113	Arn *string `locationName:"arn" type:"string" required:"true"`
60114
60115	// The status of the topic rule destination. Valid values are:
60116	//
60117	// IN_PROGRESS
60118	//
60119	// A topic rule destination was created but has not been confirmed. You can
60120	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
60121	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
60122	// to your confirmation endpoint.
60123	//
60124	// ENABLED
60125	//
60126	// Confirmation was completed, and traffic to this destination is allowed. You
60127	// can set status to DISABLED by calling UpdateTopicRuleDestination.
60128	//
60129	// DISABLED
60130	//
60131	// Confirmation was completed, and traffic to this destination is not allowed.
60132	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
60133	//
60134	// ERROR
60135	//
60136	// Confirmation could not be completed, for example if the confirmation timed
60137	// out. You can call GetTopicRuleDestination for details about the error. You
60138	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
60139	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
60140	// to your confirmation endpoint.
60141	//
60142	// Status is a required field
60143	Status *string `locationName:"status" type:"string" required:"true" enum:"TopicRuleDestinationStatus"`
60144}
60145
60146// String returns the string representation
60147func (s UpdateTopicRuleDestinationInput) String() string {
60148	return awsutil.Prettify(s)
60149}
60150
60151// GoString returns the string representation
60152func (s UpdateTopicRuleDestinationInput) GoString() string {
60153	return s.String()
60154}
60155
60156// Validate inspects the fields of the type to determine if they are valid.
60157func (s *UpdateTopicRuleDestinationInput) Validate() error {
60158	invalidParams := request.ErrInvalidParams{Context: "UpdateTopicRuleDestinationInput"}
60159	if s.Arn == nil {
60160		invalidParams.Add(request.NewErrParamRequired("Arn"))
60161	}
60162	if s.Status == nil {
60163		invalidParams.Add(request.NewErrParamRequired("Status"))
60164	}
60165
60166	if invalidParams.Len() > 0 {
60167		return invalidParams
60168	}
60169	return nil
60170}
60171
60172// SetArn sets the Arn field's value.
60173func (s *UpdateTopicRuleDestinationInput) SetArn(v string) *UpdateTopicRuleDestinationInput {
60174	s.Arn = &v
60175	return s
60176}
60177
60178// SetStatus sets the Status field's value.
60179func (s *UpdateTopicRuleDestinationInput) SetStatus(v string) *UpdateTopicRuleDestinationInput {
60180	s.Status = &v
60181	return s
60182}
60183
60184type UpdateTopicRuleDestinationOutput struct {
60185	_ struct{} `type:"structure"`
60186}
60187
60188// String returns the string representation
60189func (s UpdateTopicRuleDestinationOutput) String() string {
60190	return awsutil.Prettify(s)
60191}
60192
60193// GoString returns the string representation
60194func (s UpdateTopicRuleDestinationOutput) GoString() string {
60195	return s.String()
60196}
60197
60198type ValidateSecurityProfileBehaviorsInput struct {
60199	_ struct{} `type:"structure"`
60200
60201	// Specifies the behaviors that, when violated by a device (thing), cause an
60202	// alert.
60203	//
60204	// Behaviors is a required field
60205	Behaviors []*Behavior `locationName:"behaviors" type:"list" required:"true"`
60206}
60207
60208// String returns the string representation
60209func (s ValidateSecurityProfileBehaviorsInput) String() string {
60210	return awsutil.Prettify(s)
60211}
60212
60213// GoString returns the string representation
60214func (s ValidateSecurityProfileBehaviorsInput) GoString() string {
60215	return s.String()
60216}
60217
60218// Validate inspects the fields of the type to determine if they are valid.
60219func (s *ValidateSecurityProfileBehaviorsInput) Validate() error {
60220	invalidParams := request.ErrInvalidParams{Context: "ValidateSecurityProfileBehaviorsInput"}
60221	if s.Behaviors == nil {
60222		invalidParams.Add(request.NewErrParamRequired("Behaviors"))
60223	}
60224	if s.Behaviors != nil {
60225		for i, v := range s.Behaviors {
60226			if v == nil {
60227				continue
60228			}
60229			if err := v.Validate(); err != nil {
60230				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
60231			}
60232		}
60233	}
60234
60235	if invalidParams.Len() > 0 {
60236		return invalidParams
60237	}
60238	return nil
60239}
60240
60241// SetBehaviors sets the Behaviors field's value.
60242func (s *ValidateSecurityProfileBehaviorsInput) SetBehaviors(v []*Behavior) *ValidateSecurityProfileBehaviorsInput {
60243	s.Behaviors = v
60244	return s
60245}
60246
60247type ValidateSecurityProfileBehaviorsOutput struct {
60248	_ struct{} `type:"structure"`
60249
60250	// True if the behaviors were valid.
60251	Valid *bool `locationName:"valid" type:"boolean"`
60252
60253	// The list of any errors found in the behaviors.
60254	ValidationErrors []*ValidationError `locationName:"validationErrors" type:"list"`
60255}
60256
60257// String returns the string representation
60258func (s ValidateSecurityProfileBehaviorsOutput) String() string {
60259	return awsutil.Prettify(s)
60260}
60261
60262// GoString returns the string representation
60263func (s ValidateSecurityProfileBehaviorsOutput) GoString() string {
60264	return s.String()
60265}
60266
60267// SetValid sets the Valid field's value.
60268func (s *ValidateSecurityProfileBehaviorsOutput) SetValid(v bool) *ValidateSecurityProfileBehaviorsOutput {
60269	s.Valid = &v
60270	return s
60271}
60272
60273// SetValidationErrors sets the ValidationErrors field's value.
60274func (s *ValidateSecurityProfileBehaviorsOutput) SetValidationErrors(v []*ValidationError) *ValidateSecurityProfileBehaviorsOutput {
60275	s.ValidationErrors = v
60276	return s
60277}
60278
60279// Information about an error found in a behavior specification.
60280type ValidationError struct {
60281	_ struct{} `type:"structure"`
60282
60283	// The description of an error found in the behaviors.
60284	ErrorMessage *string `locationName:"errorMessage" type:"string"`
60285}
60286
60287// String returns the string representation
60288func (s ValidationError) String() string {
60289	return awsutil.Prettify(s)
60290}
60291
60292// GoString returns the string representation
60293func (s ValidationError) GoString() string {
60294	return s.String()
60295}
60296
60297// SetErrorMessage sets the ErrorMessage field's value.
60298func (s *ValidationError) SetErrorMessage(v string) *ValidationError {
60299	s.ErrorMessage = &v
60300	return s
60301}
60302
60303// An exception thrown when the version of an entity specified with the expectedVersion
60304// parameter does not match the latest version in the system.
60305type VersionConflictException struct {
60306	_            struct{}                  `type:"structure"`
60307	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
60308
60309	// The message for the exception.
60310	Message_ *string `locationName:"message" type:"string"`
60311}
60312
60313// String returns the string representation
60314func (s VersionConflictException) String() string {
60315	return awsutil.Prettify(s)
60316}
60317
60318// GoString returns the string representation
60319func (s VersionConflictException) GoString() string {
60320	return s.String()
60321}
60322
60323func newErrorVersionConflictException(v protocol.ResponseMetadata) error {
60324	return &VersionConflictException{
60325		RespMetadata: v,
60326	}
60327}
60328
60329// Code returns the exception type name.
60330func (s *VersionConflictException) Code() string {
60331	return "VersionConflictException"
60332}
60333
60334// Message returns the exception's message.
60335func (s *VersionConflictException) Message() string {
60336	if s.Message_ != nil {
60337		return *s.Message_
60338	}
60339	return ""
60340}
60341
60342// OrigErr always returns nil, satisfies awserr.Error interface.
60343func (s *VersionConflictException) OrigErr() error {
60344	return nil
60345}
60346
60347func (s *VersionConflictException) Error() string {
60348	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
60349}
60350
60351// Status code returns the HTTP status code for the request's response error.
60352func (s *VersionConflictException) StatusCode() int {
60353	return s.RespMetadata.StatusCode
60354}
60355
60356// RequestID returns the service's response RequestID for request.
60357func (s *VersionConflictException) RequestID() string {
60358	return s.RespMetadata.RequestID
60359}
60360
60361// The number of policy versions exceeds the limit.
60362type VersionsLimitExceededException struct {
60363	_            struct{}                  `type:"structure"`
60364	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
60365
60366	// The message for the exception.
60367	Message_ *string `locationName:"message" type:"string"`
60368}
60369
60370// String returns the string representation
60371func (s VersionsLimitExceededException) String() string {
60372	return awsutil.Prettify(s)
60373}
60374
60375// GoString returns the string representation
60376func (s VersionsLimitExceededException) GoString() string {
60377	return s.String()
60378}
60379
60380func newErrorVersionsLimitExceededException(v protocol.ResponseMetadata) error {
60381	return &VersionsLimitExceededException{
60382		RespMetadata: v,
60383	}
60384}
60385
60386// Code returns the exception type name.
60387func (s *VersionsLimitExceededException) Code() string {
60388	return "VersionsLimitExceededException"
60389}
60390
60391// Message returns the exception's message.
60392func (s *VersionsLimitExceededException) Message() string {
60393	if s.Message_ != nil {
60394		return *s.Message_
60395	}
60396	return ""
60397}
60398
60399// OrigErr always returns nil, satisfies awserr.Error interface.
60400func (s *VersionsLimitExceededException) OrigErr() error {
60401	return nil
60402}
60403
60404func (s *VersionsLimitExceededException) Error() string {
60405	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
60406}
60407
60408// Status code returns the HTTP status code for the request's response error.
60409func (s *VersionsLimitExceededException) StatusCode() int {
60410	return s.RespMetadata.StatusCode
60411}
60412
60413// RequestID returns the service's response RequestID for request.
60414func (s *VersionsLimitExceededException) RequestID() string {
60415	return s.RespMetadata.RequestID
60416}
60417
60418// Information about a Device Defender security profile behavior violation.
60419type ViolationEvent struct {
60420	_ struct{} `type:"structure"`
60421
60422	// The behavior that was violated.
60423	Behavior *Behavior `locationName:"behavior" type:"structure"`
60424
60425	// The value of the metric (the measurement).
60426	MetricValue *MetricValue `locationName:"metricValue" type:"structure"`
60427
60428	// The name of the security profile whose behavior was violated.
60429	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
60430
60431	// The name of the thing responsible for the violation event.
60432	ThingName *string `locationName:"thingName" min:"1" type:"string"`
60433
60434	// The details of a violation event.
60435	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo `locationName:"violationEventAdditionalInfo" type:"structure"`
60436
60437	// The time the violation event occurred.
60438	ViolationEventTime *time.Time `locationName:"violationEventTime" type:"timestamp"`
60439
60440	// The type of violation event.
60441	ViolationEventType *string `locationName:"violationEventType" type:"string" enum:"ViolationEventType"`
60442
60443	// The ID of the violation event.
60444	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
60445}
60446
60447// String returns the string representation
60448func (s ViolationEvent) String() string {
60449	return awsutil.Prettify(s)
60450}
60451
60452// GoString returns the string representation
60453func (s ViolationEvent) GoString() string {
60454	return s.String()
60455}
60456
60457// SetBehavior sets the Behavior field's value.
60458func (s *ViolationEvent) SetBehavior(v *Behavior) *ViolationEvent {
60459	s.Behavior = v
60460	return s
60461}
60462
60463// SetMetricValue sets the MetricValue field's value.
60464func (s *ViolationEvent) SetMetricValue(v *MetricValue) *ViolationEvent {
60465	s.MetricValue = v
60466	return s
60467}
60468
60469// SetSecurityProfileName sets the SecurityProfileName field's value.
60470func (s *ViolationEvent) SetSecurityProfileName(v string) *ViolationEvent {
60471	s.SecurityProfileName = &v
60472	return s
60473}
60474
60475// SetThingName sets the ThingName field's value.
60476func (s *ViolationEvent) SetThingName(v string) *ViolationEvent {
60477	s.ThingName = &v
60478	return s
60479}
60480
60481// SetViolationEventAdditionalInfo sets the ViolationEventAdditionalInfo field's value.
60482func (s *ViolationEvent) SetViolationEventAdditionalInfo(v *ViolationEventAdditionalInfo) *ViolationEvent {
60483	s.ViolationEventAdditionalInfo = v
60484	return s
60485}
60486
60487// SetViolationEventTime sets the ViolationEventTime field's value.
60488func (s *ViolationEvent) SetViolationEventTime(v time.Time) *ViolationEvent {
60489	s.ViolationEventTime = &v
60490	return s
60491}
60492
60493// SetViolationEventType sets the ViolationEventType field's value.
60494func (s *ViolationEvent) SetViolationEventType(v string) *ViolationEvent {
60495	s.ViolationEventType = &v
60496	return s
60497}
60498
60499// SetViolationId sets the ViolationId field's value.
60500func (s *ViolationEvent) SetViolationId(v string) *ViolationEvent {
60501	s.ViolationId = &v
60502	return s
60503}
60504
60505// The details of a violation event.
60506type ViolationEventAdditionalInfo struct {
60507	_ struct{} `type:"structure"`
60508
60509	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or
60510	// High.
60511	ConfidenceLevel *string `locationName:"confidenceLevel" type:"string" enum:"ConfidenceLevel"`
60512}
60513
60514// String returns the string representation
60515func (s ViolationEventAdditionalInfo) String() string {
60516	return awsutil.Prettify(s)
60517}
60518
60519// GoString returns the string representation
60520func (s ViolationEventAdditionalInfo) GoString() string {
60521	return s.String()
60522}
60523
60524// SetConfidenceLevel sets the ConfidenceLevel field's value.
60525func (s *ViolationEventAdditionalInfo) SetConfidenceLevel(v string) *ViolationEventAdditionalInfo {
60526	s.ConfidenceLevel = &v
60527	return s
60528}
60529
60530// Specifies the time period of which violation events occurred between.
60531type ViolationEventOccurrenceRange struct {
60532	_ struct{} `type:"structure"`
60533
60534	// The end date and time of a time period in which violation events occurred.
60535	//
60536	// EndTime is a required field
60537	EndTime *time.Time `locationName:"endTime" type:"timestamp" required:"true"`
60538
60539	// The start date and time of a time period in which violation events occurred.
60540	//
60541	// StartTime is a required field
60542	StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
60543}
60544
60545// String returns the string representation
60546func (s ViolationEventOccurrenceRange) String() string {
60547	return awsutil.Prettify(s)
60548}
60549
60550// GoString returns the string representation
60551func (s ViolationEventOccurrenceRange) GoString() string {
60552	return s.String()
60553}
60554
60555// Validate inspects the fields of the type to determine if they are valid.
60556func (s *ViolationEventOccurrenceRange) Validate() error {
60557	invalidParams := request.ErrInvalidParams{Context: "ViolationEventOccurrenceRange"}
60558	if s.EndTime == nil {
60559		invalidParams.Add(request.NewErrParamRequired("EndTime"))
60560	}
60561	if s.StartTime == nil {
60562		invalidParams.Add(request.NewErrParamRequired("StartTime"))
60563	}
60564
60565	if invalidParams.Len() > 0 {
60566		return invalidParams
60567	}
60568	return nil
60569}
60570
60571// SetEndTime sets the EndTime field's value.
60572func (s *ViolationEventOccurrenceRange) SetEndTime(v time.Time) *ViolationEventOccurrenceRange {
60573	s.EndTime = &v
60574	return s
60575}
60576
60577// SetStartTime sets the StartTime field's value.
60578func (s *ViolationEventOccurrenceRange) SetStartTime(v time.Time) *ViolationEventOccurrenceRange {
60579	s.StartTime = &v
60580	return s
60581}
60582
60583// The configuration information for a virtual private cloud (VPC) destination.
60584type VpcDestinationConfiguration struct {
60585	_ struct{} `type:"structure"`
60586
60587	// The ARN of a role that has permission to create and attach to elastic network
60588	// interfaces (ENIs).
60589	//
60590	// RoleArn is a required field
60591	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
60592
60593	// The security groups of the VPC destination.
60594	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
60595
60596	// The subnet IDs of the VPC destination.
60597	//
60598	// SubnetIds is a required field
60599	SubnetIds []*string `locationName:"subnetIds" type:"list" required:"true"`
60600
60601	// The ID of the VPC.
60602	//
60603	// VpcId is a required field
60604	VpcId *string `locationName:"vpcId" type:"string" required:"true"`
60605}
60606
60607// String returns the string representation
60608func (s VpcDestinationConfiguration) String() string {
60609	return awsutil.Prettify(s)
60610}
60611
60612// GoString returns the string representation
60613func (s VpcDestinationConfiguration) GoString() string {
60614	return s.String()
60615}
60616
60617// Validate inspects the fields of the type to determine if they are valid.
60618func (s *VpcDestinationConfiguration) Validate() error {
60619	invalidParams := request.ErrInvalidParams{Context: "VpcDestinationConfiguration"}
60620	if s.RoleArn == nil {
60621		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
60622	}
60623	if s.SubnetIds == nil {
60624		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
60625	}
60626	if s.VpcId == nil {
60627		invalidParams.Add(request.NewErrParamRequired("VpcId"))
60628	}
60629
60630	if invalidParams.Len() > 0 {
60631		return invalidParams
60632	}
60633	return nil
60634}
60635
60636// SetRoleArn sets the RoleArn field's value.
60637func (s *VpcDestinationConfiguration) SetRoleArn(v string) *VpcDestinationConfiguration {
60638	s.RoleArn = &v
60639	return s
60640}
60641
60642// SetSecurityGroups sets the SecurityGroups field's value.
60643func (s *VpcDestinationConfiguration) SetSecurityGroups(v []*string) *VpcDestinationConfiguration {
60644	s.SecurityGroups = v
60645	return s
60646}
60647
60648// SetSubnetIds sets the SubnetIds field's value.
60649func (s *VpcDestinationConfiguration) SetSubnetIds(v []*string) *VpcDestinationConfiguration {
60650	s.SubnetIds = v
60651	return s
60652}
60653
60654// SetVpcId sets the VpcId field's value.
60655func (s *VpcDestinationConfiguration) SetVpcId(v string) *VpcDestinationConfiguration {
60656	s.VpcId = &v
60657	return s
60658}
60659
60660// The properties of a virtual private cloud (VPC) destination.
60661type VpcDestinationProperties struct {
60662	_ struct{} `type:"structure"`
60663
60664	// The ARN of a role that has permission to create and attach to elastic network
60665	// interfaces (ENIs).
60666	RoleArn *string `locationName:"roleArn" type:"string"`
60667
60668	// The security groups of the VPC destination.
60669	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
60670
60671	// The subnet IDs of the VPC destination.
60672	SubnetIds []*string `locationName:"subnetIds" type:"list"`
60673
60674	// The ID of the VPC.
60675	VpcId *string `locationName:"vpcId" type:"string"`
60676}
60677
60678// String returns the string representation
60679func (s VpcDestinationProperties) String() string {
60680	return awsutil.Prettify(s)
60681}
60682
60683// GoString returns the string representation
60684func (s VpcDestinationProperties) GoString() string {
60685	return s.String()
60686}
60687
60688// SetRoleArn sets the RoleArn field's value.
60689func (s *VpcDestinationProperties) SetRoleArn(v string) *VpcDestinationProperties {
60690	s.RoleArn = &v
60691	return s
60692}
60693
60694// SetSecurityGroups sets the SecurityGroups field's value.
60695func (s *VpcDestinationProperties) SetSecurityGroups(v []*string) *VpcDestinationProperties {
60696	s.SecurityGroups = v
60697	return s
60698}
60699
60700// SetSubnetIds sets the SubnetIds field's value.
60701func (s *VpcDestinationProperties) SetSubnetIds(v []*string) *VpcDestinationProperties {
60702	s.SubnetIds = v
60703	return s
60704}
60705
60706// SetVpcId sets the VpcId field's value.
60707func (s *VpcDestinationProperties) SetVpcId(v string) *VpcDestinationProperties {
60708	s.VpcId = &v
60709	return s
60710}
60711
60712// The summary of a virtual private cloud (VPC) destination.
60713type VpcDestinationSummary struct {
60714	_ struct{} `type:"structure"`
60715
60716	// The ARN of a role that has permission to create and attach to elastic network
60717	// interfaces (ENIs).
60718	RoleArn *string `locationName:"roleArn" type:"string"`
60719
60720	// The security groups of the VPC destination.
60721	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
60722
60723	// The subnet IDs of the VPC destination.
60724	SubnetIds []*string `locationName:"subnetIds" type:"list"`
60725
60726	// The ID of the VPC.
60727	VpcId *string `locationName:"vpcId" type:"string"`
60728}
60729
60730// String returns the string representation
60731func (s VpcDestinationSummary) String() string {
60732	return awsutil.Prettify(s)
60733}
60734
60735// GoString returns the string representation
60736func (s VpcDestinationSummary) GoString() string {
60737	return s.String()
60738}
60739
60740// SetRoleArn sets the RoleArn field's value.
60741func (s *VpcDestinationSummary) SetRoleArn(v string) *VpcDestinationSummary {
60742	s.RoleArn = &v
60743	return s
60744}
60745
60746// SetSecurityGroups sets the SecurityGroups field's value.
60747func (s *VpcDestinationSummary) SetSecurityGroups(v []*string) *VpcDestinationSummary {
60748	s.SecurityGroups = v
60749	return s
60750}
60751
60752// SetSubnetIds sets the SubnetIds field's value.
60753func (s *VpcDestinationSummary) SetSubnetIds(v []*string) *VpcDestinationSummary {
60754	s.SubnetIds = v
60755	return s
60756}
60757
60758// SetVpcId sets the VpcId field's value.
60759func (s *VpcDestinationSummary) SetVpcId(v string) *VpcDestinationSummary {
60760	s.VpcId = &v
60761	return s
60762}
60763
60764const (
60765	// AbortActionCancel is a AbortAction enum value
60766	AbortActionCancel = "CANCEL"
60767)
60768
60769// AbortAction_Values returns all elements of the AbortAction enum
60770func AbortAction_Values() []string {
60771	return []string{
60772		AbortActionCancel,
60773	}
60774}
60775
60776const (
60777	// ActionTypePublish is a ActionType enum value
60778	ActionTypePublish = "PUBLISH"
60779
60780	// ActionTypeSubscribe is a ActionType enum value
60781	ActionTypeSubscribe = "SUBSCRIBE"
60782
60783	// ActionTypeReceive is a ActionType enum value
60784	ActionTypeReceive = "RECEIVE"
60785
60786	// ActionTypeConnect is a ActionType enum value
60787	ActionTypeConnect = "CONNECT"
60788)
60789
60790// ActionType_Values returns all elements of the ActionType enum
60791func ActionType_Values() []string {
60792	return []string{
60793		ActionTypePublish,
60794		ActionTypeSubscribe,
60795		ActionTypeReceive,
60796		ActionTypeConnect,
60797	}
60798}
60799
60800const (
60801	// AggregationTypeNameStatistics is a AggregationTypeName enum value
60802	AggregationTypeNameStatistics = "Statistics"
60803
60804	// AggregationTypeNamePercentiles is a AggregationTypeName enum value
60805	AggregationTypeNamePercentiles = "Percentiles"
60806
60807	// AggregationTypeNameCardinality is a AggregationTypeName enum value
60808	AggregationTypeNameCardinality = "Cardinality"
60809)
60810
60811// AggregationTypeName_Values returns all elements of the AggregationTypeName enum
60812func AggregationTypeName_Values() []string {
60813	return []string{
60814		AggregationTypeNameStatistics,
60815		AggregationTypeNamePercentiles,
60816		AggregationTypeNameCardinality,
60817	}
60818}
60819
60820// The type of alert target: one of "SNS".
60821const (
60822	// AlertTargetTypeSns is a AlertTargetType enum value
60823	AlertTargetTypeSns = "SNS"
60824)
60825
60826// AlertTargetType_Values returns all elements of the AlertTargetType enum
60827func AlertTargetType_Values() []string {
60828	return []string{
60829		AlertTargetTypeSns,
60830	}
60831}
60832
60833const (
60834	// AuditCheckRunStatusInProgress is a AuditCheckRunStatus enum value
60835	AuditCheckRunStatusInProgress = "IN_PROGRESS"
60836
60837	// AuditCheckRunStatusWaitingForDataCollection is a AuditCheckRunStatus enum value
60838	AuditCheckRunStatusWaitingForDataCollection = "WAITING_FOR_DATA_COLLECTION"
60839
60840	// AuditCheckRunStatusCanceled is a AuditCheckRunStatus enum value
60841	AuditCheckRunStatusCanceled = "CANCELED"
60842
60843	// AuditCheckRunStatusCompletedCompliant is a AuditCheckRunStatus enum value
60844	AuditCheckRunStatusCompletedCompliant = "COMPLETED_COMPLIANT"
60845
60846	// AuditCheckRunStatusCompletedNonCompliant is a AuditCheckRunStatus enum value
60847	AuditCheckRunStatusCompletedNonCompliant = "COMPLETED_NON_COMPLIANT"
60848
60849	// AuditCheckRunStatusFailed is a AuditCheckRunStatus enum value
60850	AuditCheckRunStatusFailed = "FAILED"
60851)
60852
60853// AuditCheckRunStatus_Values returns all elements of the AuditCheckRunStatus enum
60854func AuditCheckRunStatus_Values() []string {
60855	return []string{
60856		AuditCheckRunStatusInProgress,
60857		AuditCheckRunStatusWaitingForDataCollection,
60858		AuditCheckRunStatusCanceled,
60859		AuditCheckRunStatusCompletedCompliant,
60860		AuditCheckRunStatusCompletedNonCompliant,
60861		AuditCheckRunStatusFailed,
60862	}
60863}
60864
60865const (
60866	// AuditFindingSeverityCritical is a AuditFindingSeverity enum value
60867	AuditFindingSeverityCritical = "CRITICAL"
60868
60869	// AuditFindingSeverityHigh is a AuditFindingSeverity enum value
60870	AuditFindingSeverityHigh = "HIGH"
60871
60872	// AuditFindingSeverityMedium is a AuditFindingSeverity enum value
60873	AuditFindingSeverityMedium = "MEDIUM"
60874
60875	// AuditFindingSeverityLow is a AuditFindingSeverity enum value
60876	AuditFindingSeverityLow = "LOW"
60877)
60878
60879// AuditFindingSeverity_Values returns all elements of the AuditFindingSeverity enum
60880func AuditFindingSeverity_Values() []string {
60881	return []string{
60882		AuditFindingSeverityCritical,
60883		AuditFindingSeverityHigh,
60884		AuditFindingSeverityMedium,
60885		AuditFindingSeverityLow,
60886	}
60887}
60888
60889const (
60890	// AuditFrequencyDaily is a AuditFrequency enum value
60891	AuditFrequencyDaily = "DAILY"
60892
60893	// AuditFrequencyWeekly is a AuditFrequency enum value
60894	AuditFrequencyWeekly = "WEEKLY"
60895
60896	// AuditFrequencyBiweekly is a AuditFrequency enum value
60897	AuditFrequencyBiweekly = "BIWEEKLY"
60898
60899	// AuditFrequencyMonthly is a AuditFrequency enum value
60900	AuditFrequencyMonthly = "MONTHLY"
60901)
60902
60903// AuditFrequency_Values returns all elements of the AuditFrequency enum
60904func AuditFrequency_Values() []string {
60905	return []string{
60906		AuditFrequencyDaily,
60907		AuditFrequencyWeekly,
60908		AuditFrequencyBiweekly,
60909		AuditFrequencyMonthly,
60910	}
60911}
60912
60913const (
60914	// AuditMitigationActionsExecutionStatusInProgress is a AuditMitigationActionsExecutionStatus enum value
60915	AuditMitigationActionsExecutionStatusInProgress = "IN_PROGRESS"
60916
60917	// AuditMitigationActionsExecutionStatusCompleted is a AuditMitigationActionsExecutionStatus enum value
60918	AuditMitigationActionsExecutionStatusCompleted = "COMPLETED"
60919
60920	// AuditMitigationActionsExecutionStatusFailed is a AuditMitigationActionsExecutionStatus enum value
60921	AuditMitigationActionsExecutionStatusFailed = "FAILED"
60922
60923	// AuditMitigationActionsExecutionStatusCanceled is a AuditMitigationActionsExecutionStatus enum value
60924	AuditMitigationActionsExecutionStatusCanceled = "CANCELED"
60925
60926	// AuditMitigationActionsExecutionStatusSkipped is a AuditMitigationActionsExecutionStatus enum value
60927	AuditMitigationActionsExecutionStatusSkipped = "SKIPPED"
60928
60929	// AuditMitigationActionsExecutionStatusPending is a AuditMitigationActionsExecutionStatus enum value
60930	AuditMitigationActionsExecutionStatusPending = "PENDING"
60931)
60932
60933// AuditMitigationActionsExecutionStatus_Values returns all elements of the AuditMitigationActionsExecutionStatus enum
60934func AuditMitigationActionsExecutionStatus_Values() []string {
60935	return []string{
60936		AuditMitigationActionsExecutionStatusInProgress,
60937		AuditMitigationActionsExecutionStatusCompleted,
60938		AuditMitigationActionsExecutionStatusFailed,
60939		AuditMitigationActionsExecutionStatusCanceled,
60940		AuditMitigationActionsExecutionStatusSkipped,
60941		AuditMitigationActionsExecutionStatusPending,
60942	}
60943}
60944
60945const (
60946	// AuditMitigationActionsTaskStatusInProgress is a AuditMitigationActionsTaskStatus enum value
60947	AuditMitigationActionsTaskStatusInProgress = "IN_PROGRESS"
60948
60949	// AuditMitigationActionsTaskStatusCompleted is a AuditMitigationActionsTaskStatus enum value
60950	AuditMitigationActionsTaskStatusCompleted = "COMPLETED"
60951
60952	// AuditMitigationActionsTaskStatusFailed is a AuditMitigationActionsTaskStatus enum value
60953	AuditMitigationActionsTaskStatusFailed = "FAILED"
60954
60955	// AuditMitigationActionsTaskStatusCanceled is a AuditMitigationActionsTaskStatus enum value
60956	AuditMitigationActionsTaskStatusCanceled = "CANCELED"
60957)
60958
60959// AuditMitigationActionsTaskStatus_Values returns all elements of the AuditMitigationActionsTaskStatus enum
60960func AuditMitigationActionsTaskStatus_Values() []string {
60961	return []string{
60962		AuditMitigationActionsTaskStatusInProgress,
60963		AuditMitigationActionsTaskStatusCompleted,
60964		AuditMitigationActionsTaskStatusFailed,
60965		AuditMitigationActionsTaskStatusCanceled,
60966	}
60967}
60968
60969const (
60970	// AuditNotificationTypeSns is a AuditNotificationType enum value
60971	AuditNotificationTypeSns = "SNS"
60972)
60973
60974// AuditNotificationType_Values returns all elements of the AuditNotificationType enum
60975func AuditNotificationType_Values() []string {
60976	return []string{
60977		AuditNotificationTypeSns,
60978	}
60979}
60980
60981const (
60982	// AuditTaskStatusInProgress is a AuditTaskStatus enum value
60983	AuditTaskStatusInProgress = "IN_PROGRESS"
60984
60985	// AuditTaskStatusCompleted is a AuditTaskStatus enum value
60986	AuditTaskStatusCompleted = "COMPLETED"
60987
60988	// AuditTaskStatusFailed is a AuditTaskStatus enum value
60989	AuditTaskStatusFailed = "FAILED"
60990
60991	// AuditTaskStatusCanceled is a AuditTaskStatus enum value
60992	AuditTaskStatusCanceled = "CANCELED"
60993)
60994
60995// AuditTaskStatus_Values returns all elements of the AuditTaskStatus enum
60996func AuditTaskStatus_Values() []string {
60997	return []string{
60998		AuditTaskStatusInProgress,
60999		AuditTaskStatusCompleted,
61000		AuditTaskStatusFailed,
61001		AuditTaskStatusCanceled,
61002	}
61003}
61004
61005const (
61006	// AuditTaskTypeOnDemandAuditTask is a AuditTaskType enum value
61007	AuditTaskTypeOnDemandAuditTask = "ON_DEMAND_AUDIT_TASK"
61008
61009	// AuditTaskTypeScheduledAuditTask is a AuditTaskType enum value
61010	AuditTaskTypeScheduledAuditTask = "SCHEDULED_AUDIT_TASK"
61011)
61012
61013// AuditTaskType_Values returns all elements of the AuditTaskType enum
61014func AuditTaskType_Values() []string {
61015	return []string{
61016		AuditTaskTypeOnDemandAuditTask,
61017		AuditTaskTypeScheduledAuditTask,
61018	}
61019}
61020
61021const (
61022	// AuthDecisionAllowed is a AuthDecision enum value
61023	AuthDecisionAllowed = "ALLOWED"
61024
61025	// AuthDecisionExplicitDeny is a AuthDecision enum value
61026	AuthDecisionExplicitDeny = "EXPLICIT_DENY"
61027
61028	// AuthDecisionImplicitDeny is a AuthDecision enum value
61029	AuthDecisionImplicitDeny = "IMPLICIT_DENY"
61030)
61031
61032// AuthDecision_Values returns all elements of the AuthDecision enum
61033func AuthDecision_Values() []string {
61034	return []string{
61035		AuthDecisionAllowed,
61036		AuthDecisionExplicitDeny,
61037		AuthDecisionImplicitDeny,
61038	}
61039}
61040
61041const (
61042	// AuthorizerStatusActive is a AuthorizerStatus enum value
61043	AuthorizerStatusActive = "ACTIVE"
61044
61045	// AuthorizerStatusInactive is a AuthorizerStatus enum value
61046	AuthorizerStatusInactive = "INACTIVE"
61047)
61048
61049// AuthorizerStatus_Values returns all elements of the AuthorizerStatus enum
61050func AuthorizerStatus_Values() []string {
61051	return []string{
61052		AuthorizerStatusActive,
61053		AuthorizerStatusInactive,
61054	}
61055}
61056
61057const (
61058	// AutoRegistrationStatusEnable is a AutoRegistrationStatus enum value
61059	AutoRegistrationStatusEnable = "ENABLE"
61060
61061	// AutoRegistrationStatusDisable is a AutoRegistrationStatus enum value
61062	AutoRegistrationStatusDisable = "DISABLE"
61063)
61064
61065// AutoRegistrationStatus_Values returns all elements of the AutoRegistrationStatus enum
61066func AutoRegistrationStatus_Values() []string {
61067	return []string{
61068		AutoRegistrationStatusEnable,
61069		AutoRegistrationStatusDisable,
61070	}
61071}
61072
61073const (
61074	// AwsJobAbortCriteriaAbortActionCancel is a AwsJobAbortCriteriaAbortAction enum value
61075	AwsJobAbortCriteriaAbortActionCancel = "CANCEL"
61076)
61077
61078// AwsJobAbortCriteriaAbortAction_Values returns all elements of the AwsJobAbortCriteriaAbortAction enum
61079func AwsJobAbortCriteriaAbortAction_Values() []string {
61080	return []string{
61081		AwsJobAbortCriteriaAbortActionCancel,
61082	}
61083}
61084
61085const (
61086	// AwsJobAbortCriteriaFailureTypeFailed is a AwsJobAbortCriteriaFailureType enum value
61087	AwsJobAbortCriteriaFailureTypeFailed = "FAILED"
61088
61089	// AwsJobAbortCriteriaFailureTypeRejected is a AwsJobAbortCriteriaFailureType enum value
61090	AwsJobAbortCriteriaFailureTypeRejected = "REJECTED"
61091
61092	// AwsJobAbortCriteriaFailureTypeTimedOut is a AwsJobAbortCriteriaFailureType enum value
61093	AwsJobAbortCriteriaFailureTypeTimedOut = "TIMED_OUT"
61094
61095	// AwsJobAbortCriteriaFailureTypeAll is a AwsJobAbortCriteriaFailureType enum value
61096	AwsJobAbortCriteriaFailureTypeAll = "ALL"
61097)
61098
61099// AwsJobAbortCriteriaFailureType_Values returns all elements of the AwsJobAbortCriteriaFailureType enum
61100func AwsJobAbortCriteriaFailureType_Values() []string {
61101	return []string{
61102		AwsJobAbortCriteriaFailureTypeFailed,
61103		AwsJobAbortCriteriaFailureTypeRejected,
61104		AwsJobAbortCriteriaFailureTypeTimedOut,
61105		AwsJobAbortCriteriaFailureTypeAll,
61106	}
61107}
61108
61109const (
61110	// BehaviorCriteriaTypeStatic is a BehaviorCriteriaType enum value
61111	BehaviorCriteriaTypeStatic = "STATIC"
61112
61113	// BehaviorCriteriaTypeStatistical is a BehaviorCriteriaType enum value
61114	BehaviorCriteriaTypeStatistical = "STATISTICAL"
61115
61116	// BehaviorCriteriaTypeMachineLearning is a BehaviorCriteriaType enum value
61117	BehaviorCriteriaTypeMachineLearning = "MACHINE_LEARNING"
61118)
61119
61120// BehaviorCriteriaType_Values returns all elements of the BehaviorCriteriaType enum
61121func BehaviorCriteriaType_Values() []string {
61122	return []string{
61123		BehaviorCriteriaTypeStatic,
61124		BehaviorCriteriaTypeStatistical,
61125		BehaviorCriteriaTypeMachineLearning,
61126	}
61127}
61128
61129const (
61130	// CACertificateStatusActive is a CACertificateStatus enum value
61131	CACertificateStatusActive = "ACTIVE"
61132
61133	// CACertificateStatusInactive is a CACertificateStatus enum value
61134	CACertificateStatusInactive = "INACTIVE"
61135)
61136
61137// CACertificateStatus_Values returns all elements of the CACertificateStatus enum
61138func CACertificateStatus_Values() []string {
61139	return []string{
61140		CACertificateStatusActive,
61141		CACertificateStatusInactive,
61142	}
61143}
61144
61145const (
61146	// CACertificateUpdateActionDeactivate is a CACertificateUpdateAction enum value
61147	CACertificateUpdateActionDeactivate = "DEACTIVATE"
61148)
61149
61150// CACertificateUpdateAction_Values returns all elements of the CACertificateUpdateAction enum
61151func CACertificateUpdateAction_Values() []string {
61152	return []string{
61153		CACertificateUpdateActionDeactivate,
61154	}
61155}
61156
61157const (
61158	// CannedAccessControlListPrivate is a CannedAccessControlList enum value
61159	CannedAccessControlListPrivate = "private"
61160
61161	// CannedAccessControlListPublicRead is a CannedAccessControlList enum value
61162	CannedAccessControlListPublicRead = "public-read"
61163
61164	// CannedAccessControlListPublicReadWrite is a CannedAccessControlList enum value
61165	CannedAccessControlListPublicReadWrite = "public-read-write"
61166
61167	// CannedAccessControlListAwsExecRead is a CannedAccessControlList enum value
61168	CannedAccessControlListAwsExecRead = "aws-exec-read"
61169
61170	// CannedAccessControlListAuthenticatedRead is a CannedAccessControlList enum value
61171	CannedAccessControlListAuthenticatedRead = "authenticated-read"
61172
61173	// CannedAccessControlListBucketOwnerRead is a CannedAccessControlList enum value
61174	CannedAccessControlListBucketOwnerRead = "bucket-owner-read"
61175
61176	// CannedAccessControlListBucketOwnerFullControl is a CannedAccessControlList enum value
61177	CannedAccessControlListBucketOwnerFullControl = "bucket-owner-full-control"
61178
61179	// CannedAccessControlListLogDeliveryWrite is a CannedAccessControlList enum value
61180	CannedAccessControlListLogDeliveryWrite = "log-delivery-write"
61181)
61182
61183// CannedAccessControlList_Values returns all elements of the CannedAccessControlList enum
61184func CannedAccessControlList_Values() []string {
61185	return []string{
61186		CannedAccessControlListPrivate,
61187		CannedAccessControlListPublicRead,
61188		CannedAccessControlListPublicReadWrite,
61189		CannedAccessControlListAwsExecRead,
61190		CannedAccessControlListAuthenticatedRead,
61191		CannedAccessControlListBucketOwnerRead,
61192		CannedAccessControlListBucketOwnerFullControl,
61193		CannedAccessControlListLogDeliveryWrite,
61194	}
61195}
61196
61197const (
61198	// CertificateModeDefault is a CertificateMode enum value
61199	CertificateModeDefault = "DEFAULT"
61200
61201	// CertificateModeSniOnly is a CertificateMode enum value
61202	CertificateModeSniOnly = "SNI_ONLY"
61203)
61204
61205// CertificateMode_Values returns all elements of the CertificateMode enum
61206func CertificateMode_Values() []string {
61207	return []string{
61208		CertificateModeDefault,
61209		CertificateModeSniOnly,
61210	}
61211}
61212
61213const (
61214	// CertificateStatusActive is a CertificateStatus enum value
61215	CertificateStatusActive = "ACTIVE"
61216
61217	// CertificateStatusInactive is a CertificateStatus enum value
61218	CertificateStatusInactive = "INACTIVE"
61219
61220	// CertificateStatusRevoked is a CertificateStatus enum value
61221	CertificateStatusRevoked = "REVOKED"
61222
61223	// CertificateStatusPendingTransfer is a CertificateStatus enum value
61224	CertificateStatusPendingTransfer = "PENDING_TRANSFER"
61225
61226	// CertificateStatusRegisterInactive is a CertificateStatus enum value
61227	CertificateStatusRegisterInactive = "REGISTER_INACTIVE"
61228
61229	// CertificateStatusPendingActivation is a CertificateStatus enum value
61230	CertificateStatusPendingActivation = "PENDING_ACTIVATION"
61231)
61232
61233// CertificateStatus_Values returns all elements of the CertificateStatus enum
61234func CertificateStatus_Values() []string {
61235	return []string{
61236		CertificateStatusActive,
61237		CertificateStatusInactive,
61238		CertificateStatusRevoked,
61239		CertificateStatusPendingTransfer,
61240		CertificateStatusRegisterInactive,
61241		CertificateStatusPendingActivation,
61242	}
61243}
61244
61245const (
61246	// ComparisonOperatorLessThan is a ComparisonOperator enum value
61247	ComparisonOperatorLessThan = "less-than"
61248
61249	// ComparisonOperatorLessThanEquals is a ComparisonOperator enum value
61250	ComparisonOperatorLessThanEquals = "less-than-equals"
61251
61252	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
61253	ComparisonOperatorGreaterThan = "greater-than"
61254
61255	// ComparisonOperatorGreaterThanEquals is a ComparisonOperator enum value
61256	ComparisonOperatorGreaterThanEquals = "greater-than-equals"
61257
61258	// ComparisonOperatorInCidrSet is a ComparisonOperator enum value
61259	ComparisonOperatorInCidrSet = "in-cidr-set"
61260
61261	// ComparisonOperatorNotInCidrSet is a ComparisonOperator enum value
61262	ComparisonOperatorNotInCidrSet = "not-in-cidr-set"
61263
61264	// ComparisonOperatorInPortSet is a ComparisonOperator enum value
61265	ComparisonOperatorInPortSet = "in-port-set"
61266
61267	// ComparisonOperatorNotInPortSet is a ComparisonOperator enum value
61268	ComparisonOperatorNotInPortSet = "not-in-port-set"
61269
61270	// ComparisonOperatorInSet is a ComparisonOperator enum value
61271	ComparisonOperatorInSet = "in-set"
61272
61273	// ComparisonOperatorNotInSet is a ComparisonOperator enum value
61274	ComparisonOperatorNotInSet = "not-in-set"
61275)
61276
61277// ComparisonOperator_Values returns all elements of the ComparisonOperator enum
61278func ComparisonOperator_Values() []string {
61279	return []string{
61280		ComparisonOperatorLessThan,
61281		ComparisonOperatorLessThanEquals,
61282		ComparisonOperatorGreaterThan,
61283		ComparisonOperatorGreaterThanEquals,
61284		ComparisonOperatorInCidrSet,
61285		ComparisonOperatorNotInCidrSet,
61286		ComparisonOperatorInPortSet,
61287		ComparisonOperatorNotInPortSet,
61288		ComparisonOperatorInSet,
61289		ComparisonOperatorNotInSet,
61290	}
61291}
61292
61293const (
61294	// ConfidenceLevelLow is a ConfidenceLevel enum value
61295	ConfidenceLevelLow = "LOW"
61296
61297	// ConfidenceLevelMedium is a ConfidenceLevel enum value
61298	ConfidenceLevelMedium = "MEDIUM"
61299
61300	// ConfidenceLevelHigh is a ConfidenceLevel enum value
61301	ConfidenceLevelHigh = "HIGH"
61302)
61303
61304// ConfidenceLevel_Values returns all elements of the ConfidenceLevel enum
61305func ConfidenceLevel_Values() []string {
61306	return []string{
61307		ConfidenceLevelLow,
61308		ConfidenceLevelMedium,
61309		ConfidenceLevelHigh,
61310	}
61311}
61312
61313const (
61314	// CustomMetricTypeStringList is a CustomMetricType enum value
61315	CustomMetricTypeStringList = "string-list"
61316
61317	// CustomMetricTypeIpAddressList is a CustomMetricType enum value
61318	CustomMetricTypeIpAddressList = "ip-address-list"
61319
61320	// CustomMetricTypeNumberList is a CustomMetricType enum value
61321	CustomMetricTypeNumberList = "number-list"
61322
61323	// CustomMetricTypeNumber is a CustomMetricType enum value
61324	CustomMetricTypeNumber = "number"
61325)
61326
61327// CustomMetricType_Values returns all elements of the CustomMetricType enum
61328func CustomMetricType_Values() []string {
61329	return []string{
61330		CustomMetricTypeStringList,
61331		CustomMetricTypeIpAddressList,
61332		CustomMetricTypeNumberList,
61333		CustomMetricTypeNumber,
61334	}
61335}
61336
61337const (
61338	// DayOfWeekSun is a DayOfWeek enum value
61339	DayOfWeekSun = "SUN"
61340
61341	// DayOfWeekMon is a DayOfWeek enum value
61342	DayOfWeekMon = "MON"
61343
61344	// DayOfWeekTue is a DayOfWeek enum value
61345	DayOfWeekTue = "TUE"
61346
61347	// DayOfWeekWed is a DayOfWeek enum value
61348	DayOfWeekWed = "WED"
61349
61350	// DayOfWeekThu is a DayOfWeek enum value
61351	DayOfWeekThu = "THU"
61352
61353	// DayOfWeekFri is a DayOfWeek enum value
61354	DayOfWeekFri = "FRI"
61355
61356	// DayOfWeekSat is a DayOfWeek enum value
61357	DayOfWeekSat = "SAT"
61358)
61359
61360// DayOfWeek_Values returns all elements of the DayOfWeek enum
61361func DayOfWeek_Values() []string {
61362	return []string{
61363		DayOfWeekSun,
61364		DayOfWeekMon,
61365		DayOfWeekTue,
61366		DayOfWeekWed,
61367		DayOfWeekThu,
61368		DayOfWeekFri,
61369		DayOfWeekSat,
61370	}
61371}
61372
61373const (
61374	// DetectMitigationActionExecutionStatusInProgress is a DetectMitigationActionExecutionStatus enum value
61375	DetectMitigationActionExecutionStatusInProgress = "IN_PROGRESS"
61376
61377	// DetectMitigationActionExecutionStatusSuccessful is a DetectMitigationActionExecutionStatus enum value
61378	DetectMitigationActionExecutionStatusSuccessful = "SUCCESSFUL"
61379
61380	// DetectMitigationActionExecutionStatusFailed is a DetectMitigationActionExecutionStatus enum value
61381	DetectMitigationActionExecutionStatusFailed = "FAILED"
61382
61383	// DetectMitigationActionExecutionStatusSkipped is a DetectMitigationActionExecutionStatus enum value
61384	DetectMitigationActionExecutionStatusSkipped = "SKIPPED"
61385)
61386
61387// DetectMitigationActionExecutionStatus_Values returns all elements of the DetectMitigationActionExecutionStatus enum
61388func DetectMitigationActionExecutionStatus_Values() []string {
61389	return []string{
61390		DetectMitigationActionExecutionStatusInProgress,
61391		DetectMitigationActionExecutionStatusSuccessful,
61392		DetectMitigationActionExecutionStatusFailed,
61393		DetectMitigationActionExecutionStatusSkipped,
61394	}
61395}
61396
61397const (
61398	// DetectMitigationActionsTaskStatusInProgress is a DetectMitigationActionsTaskStatus enum value
61399	DetectMitigationActionsTaskStatusInProgress = "IN_PROGRESS"
61400
61401	// DetectMitigationActionsTaskStatusSuccessful is a DetectMitigationActionsTaskStatus enum value
61402	DetectMitigationActionsTaskStatusSuccessful = "SUCCESSFUL"
61403
61404	// DetectMitigationActionsTaskStatusFailed is a DetectMitigationActionsTaskStatus enum value
61405	DetectMitigationActionsTaskStatusFailed = "FAILED"
61406
61407	// DetectMitigationActionsTaskStatusCanceled is a DetectMitigationActionsTaskStatus enum value
61408	DetectMitigationActionsTaskStatusCanceled = "CANCELED"
61409)
61410
61411// DetectMitigationActionsTaskStatus_Values returns all elements of the DetectMitigationActionsTaskStatus enum
61412func DetectMitigationActionsTaskStatus_Values() []string {
61413	return []string{
61414		DetectMitigationActionsTaskStatusInProgress,
61415		DetectMitigationActionsTaskStatusSuccessful,
61416		DetectMitigationActionsTaskStatusFailed,
61417		DetectMitigationActionsTaskStatusCanceled,
61418	}
61419}
61420
61421const (
61422	// DeviceCertificateUpdateActionDeactivate is a DeviceCertificateUpdateAction enum value
61423	DeviceCertificateUpdateActionDeactivate = "DEACTIVATE"
61424)
61425
61426// DeviceCertificateUpdateAction_Values returns all elements of the DeviceCertificateUpdateAction enum
61427func DeviceCertificateUpdateAction_Values() []string {
61428	return []string{
61429		DeviceCertificateUpdateActionDeactivate,
61430	}
61431}
61432
61433const (
61434	// DimensionTypeTopicFilter is a DimensionType enum value
61435	DimensionTypeTopicFilter = "TOPIC_FILTER"
61436)
61437
61438// DimensionType_Values returns all elements of the DimensionType enum
61439func DimensionType_Values() []string {
61440	return []string{
61441		DimensionTypeTopicFilter,
61442	}
61443}
61444
61445const (
61446	// DimensionValueOperatorIn is a DimensionValueOperator enum value
61447	DimensionValueOperatorIn = "IN"
61448
61449	// DimensionValueOperatorNotIn is a DimensionValueOperator enum value
61450	DimensionValueOperatorNotIn = "NOT_IN"
61451)
61452
61453// DimensionValueOperator_Values returns all elements of the DimensionValueOperator enum
61454func DimensionValueOperator_Values() []string {
61455	return []string{
61456		DimensionValueOperatorIn,
61457		DimensionValueOperatorNotIn,
61458	}
61459}
61460
61461const (
61462	// DomainConfigurationStatusEnabled is a DomainConfigurationStatus enum value
61463	DomainConfigurationStatusEnabled = "ENABLED"
61464
61465	// DomainConfigurationStatusDisabled is a DomainConfigurationStatus enum value
61466	DomainConfigurationStatusDisabled = "DISABLED"
61467)
61468
61469// DomainConfigurationStatus_Values returns all elements of the DomainConfigurationStatus enum
61470func DomainConfigurationStatus_Values() []string {
61471	return []string{
61472		DomainConfigurationStatusEnabled,
61473		DomainConfigurationStatusDisabled,
61474	}
61475}
61476
61477const (
61478	// DomainTypeEndpoint is a DomainType enum value
61479	DomainTypeEndpoint = "ENDPOINT"
61480
61481	// DomainTypeAwsManaged is a DomainType enum value
61482	DomainTypeAwsManaged = "AWS_MANAGED"
61483
61484	// DomainTypeCustomerManaged is a DomainType enum value
61485	DomainTypeCustomerManaged = "CUSTOMER_MANAGED"
61486)
61487
61488// DomainType_Values returns all elements of the DomainType enum
61489func DomainType_Values() []string {
61490	return []string{
61491		DomainTypeEndpoint,
61492		DomainTypeAwsManaged,
61493		DomainTypeCustomerManaged,
61494	}
61495}
61496
61497const (
61498	// DynamicGroupStatusActive is a DynamicGroupStatus enum value
61499	DynamicGroupStatusActive = "ACTIVE"
61500
61501	// DynamicGroupStatusBuilding is a DynamicGroupStatus enum value
61502	DynamicGroupStatusBuilding = "BUILDING"
61503
61504	// DynamicGroupStatusRebuilding is a DynamicGroupStatus enum value
61505	DynamicGroupStatusRebuilding = "REBUILDING"
61506)
61507
61508// DynamicGroupStatus_Values returns all elements of the DynamicGroupStatus enum
61509func DynamicGroupStatus_Values() []string {
61510	return []string{
61511		DynamicGroupStatusActive,
61512		DynamicGroupStatusBuilding,
61513		DynamicGroupStatusRebuilding,
61514	}
61515}
61516
61517const (
61518	// DynamoKeyTypeString is a DynamoKeyType enum value
61519	DynamoKeyTypeString = "STRING"
61520
61521	// DynamoKeyTypeNumber is a DynamoKeyType enum value
61522	DynamoKeyTypeNumber = "NUMBER"
61523)
61524
61525// DynamoKeyType_Values returns all elements of the DynamoKeyType enum
61526func DynamoKeyType_Values() []string {
61527	return []string{
61528		DynamoKeyTypeString,
61529		DynamoKeyTypeNumber,
61530	}
61531}
61532
61533const (
61534	// EventTypeThing is a EventType enum value
61535	EventTypeThing = "THING"
61536
61537	// EventTypeThingGroup is a EventType enum value
61538	EventTypeThingGroup = "THING_GROUP"
61539
61540	// EventTypeThingType is a EventType enum value
61541	EventTypeThingType = "THING_TYPE"
61542
61543	// EventTypeThingGroupMembership is a EventType enum value
61544	EventTypeThingGroupMembership = "THING_GROUP_MEMBERSHIP"
61545
61546	// EventTypeThingGroupHierarchy is a EventType enum value
61547	EventTypeThingGroupHierarchy = "THING_GROUP_HIERARCHY"
61548
61549	// EventTypeThingTypeAssociation is a EventType enum value
61550	EventTypeThingTypeAssociation = "THING_TYPE_ASSOCIATION"
61551
61552	// EventTypeJob is a EventType enum value
61553	EventTypeJob = "JOB"
61554
61555	// EventTypeJobExecution is a EventType enum value
61556	EventTypeJobExecution = "JOB_EXECUTION"
61557
61558	// EventTypePolicy is a EventType enum value
61559	EventTypePolicy = "POLICY"
61560
61561	// EventTypeCertificate is a EventType enum value
61562	EventTypeCertificate = "CERTIFICATE"
61563
61564	// EventTypeCaCertificate is a EventType enum value
61565	EventTypeCaCertificate = "CA_CERTIFICATE"
61566)
61567
61568// EventType_Values returns all elements of the EventType enum
61569func EventType_Values() []string {
61570	return []string{
61571		EventTypeThing,
61572		EventTypeThingGroup,
61573		EventTypeThingType,
61574		EventTypeThingGroupMembership,
61575		EventTypeThingGroupHierarchy,
61576		EventTypeThingTypeAssociation,
61577		EventTypeJob,
61578		EventTypeJobExecution,
61579		EventTypePolicy,
61580		EventTypeCertificate,
61581		EventTypeCaCertificate,
61582	}
61583}
61584
61585const (
61586	// FieldTypeNumber is a FieldType enum value
61587	FieldTypeNumber = "Number"
61588
61589	// FieldTypeString is a FieldType enum value
61590	FieldTypeString = "String"
61591
61592	// FieldTypeBoolean is a FieldType enum value
61593	FieldTypeBoolean = "Boolean"
61594)
61595
61596// FieldType_Values returns all elements of the FieldType enum
61597func FieldType_Values() []string {
61598	return []string{
61599		FieldTypeNumber,
61600		FieldTypeString,
61601		FieldTypeBoolean,
61602	}
61603}
61604
61605const (
61606	// FleetMetricUnitSeconds is a FleetMetricUnit enum value
61607	FleetMetricUnitSeconds = "Seconds"
61608
61609	// FleetMetricUnitMicroseconds is a FleetMetricUnit enum value
61610	FleetMetricUnitMicroseconds = "Microseconds"
61611
61612	// FleetMetricUnitMilliseconds is a FleetMetricUnit enum value
61613	FleetMetricUnitMilliseconds = "Milliseconds"
61614
61615	// FleetMetricUnitBytes is a FleetMetricUnit enum value
61616	FleetMetricUnitBytes = "Bytes"
61617
61618	// FleetMetricUnitKilobytes is a FleetMetricUnit enum value
61619	FleetMetricUnitKilobytes = "Kilobytes"
61620
61621	// FleetMetricUnitMegabytes is a FleetMetricUnit enum value
61622	FleetMetricUnitMegabytes = "Megabytes"
61623
61624	// FleetMetricUnitGigabytes is a FleetMetricUnit enum value
61625	FleetMetricUnitGigabytes = "Gigabytes"
61626
61627	// FleetMetricUnitTerabytes is a FleetMetricUnit enum value
61628	FleetMetricUnitTerabytes = "Terabytes"
61629
61630	// FleetMetricUnitBits is a FleetMetricUnit enum value
61631	FleetMetricUnitBits = "Bits"
61632
61633	// FleetMetricUnitKilobits is a FleetMetricUnit enum value
61634	FleetMetricUnitKilobits = "Kilobits"
61635
61636	// FleetMetricUnitMegabits is a FleetMetricUnit enum value
61637	FleetMetricUnitMegabits = "Megabits"
61638
61639	// FleetMetricUnitGigabits is a FleetMetricUnit enum value
61640	FleetMetricUnitGigabits = "Gigabits"
61641
61642	// FleetMetricUnitTerabits is a FleetMetricUnit enum value
61643	FleetMetricUnitTerabits = "Terabits"
61644
61645	// FleetMetricUnitPercent is a FleetMetricUnit enum value
61646	FleetMetricUnitPercent = "Percent"
61647
61648	// FleetMetricUnitCount is a FleetMetricUnit enum value
61649	FleetMetricUnitCount = "Count"
61650
61651	// FleetMetricUnitBytesSecond is a FleetMetricUnit enum value
61652	FleetMetricUnitBytesSecond = "Bytes/Second"
61653
61654	// FleetMetricUnitKilobytesSecond is a FleetMetricUnit enum value
61655	FleetMetricUnitKilobytesSecond = "Kilobytes/Second"
61656
61657	// FleetMetricUnitMegabytesSecond is a FleetMetricUnit enum value
61658	FleetMetricUnitMegabytesSecond = "Megabytes/Second"
61659
61660	// FleetMetricUnitGigabytesSecond is a FleetMetricUnit enum value
61661	FleetMetricUnitGigabytesSecond = "Gigabytes/Second"
61662
61663	// FleetMetricUnitTerabytesSecond is a FleetMetricUnit enum value
61664	FleetMetricUnitTerabytesSecond = "Terabytes/Second"
61665
61666	// FleetMetricUnitBitsSecond is a FleetMetricUnit enum value
61667	FleetMetricUnitBitsSecond = "Bits/Second"
61668
61669	// FleetMetricUnitKilobitsSecond is a FleetMetricUnit enum value
61670	FleetMetricUnitKilobitsSecond = "Kilobits/Second"
61671
61672	// FleetMetricUnitMegabitsSecond is a FleetMetricUnit enum value
61673	FleetMetricUnitMegabitsSecond = "Megabits/Second"
61674
61675	// FleetMetricUnitGigabitsSecond is a FleetMetricUnit enum value
61676	FleetMetricUnitGigabitsSecond = "Gigabits/Second"
61677
61678	// FleetMetricUnitTerabitsSecond is a FleetMetricUnit enum value
61679	FleetMetricUnitTerabitsSecond = "Terabits/Second"
61680
61681	// FleetMetricUnitCountSecond is a FleetMetricUnit enum value
61682	FleetMetricUnitCountSecond = "Count/Second"
61683
61684	// FleetMetricUnitNone is a FleetMetricUnit enum value
61685	FleetMetricUnitNone = "None"
61686)
61687
61688// FleetMetricUnit_Values returns all elements of the FleetMetricUnit enum
61689func FleetMetricUnit_Values() []string {
61690	return []string{
61691		FleetMetricUnitSeconds,
61692		FleetMetricUnitMicroseconds,
61693		FleetMetricUnitMilliseconds,
61694		FleetMetricUnitBytes,
61695		FleetMetricUnitKilobytes,
61696		FleetMetricUnitMegabytes,
61697		FleetMetricUnitGigabytes,
61698		FleetMetricUnitTerabytes,
61699		FleetMetricUnitBits,
61700		FleetMetricUnitKilobits,
61701		FleetMetricUnitMegabits,
61702		FleetMetricUnitGigabits,
61703		FleetMetricUnitTerabits,
61704		FleetMetricUnitPercent,
61705		FleetMetricUnitCount,
61706		FleetMetricUnitBytesSecond,
61707		FleetMetricUnitKilobytesSecond,
61708		FleetMetricUnitMegabytesSecond,
61709		FleetMetricUnitGigabytesSecond,
61710		FleetMetricUnitTerabytesSecond,
61711		FleetMetricUnitBitsSecond,
61712		FleetMetricUnitKilobitsSecond,
61713		FleetMetricUnitMegabitsSecond,
61714		FleetMetricUnitGigabitsSecond,
61715		FleetMetricUnitTerabitsSecond,
61716		FleetMetricUnitCountSecond,
61717		FleetMetricUnitNone,
61718	}
61719}
61720
61721const (
61722	// IndexStatusActive is a IndexStatus enum value
61723	IndexStatusActive = "ACTIVE"
61724
61725	// IndexStatusBuilding is a IndexStatus enum value
61726	IndexStatusBuilding = "BUILDING"
61727
61728	// IndexStatusRebuilding is a IndexStatus enum value
61729	IndexStatusRebuilding = "REBUILDING"
61730)
61731
61732// IndexStatus_Values returns all elements of the IndexStatus enum
61733func IndexStatus_Values() []string {
61734	return []string{
61735		IndexStatusActive,
61736		IndexStatusBuilding,
61737		IndexStatusRebuilding,
61738	}
61739}
61740
61741const (
61742	// JobExecutionFailureTypeFailed is a JobExecutionFailureType enum value
61743	JobExecutionFailureTypeFailed = "FAILED"
61744
61745	// JobExecutionFailureTypeRejected is a JobExecutionFailureType enum value
61746	JobExecutionFailureTypeRejected = "REJECTED"
61747
61748	// JobExecutionFailureTypeTimedOut is a JobExecutionFailureType enum value
61749	JobExecutionFailureTypeTimedOut = "TIMED_OUT"
61750
61751	// JobExecutionFailureTypeAll is a JobExecutionFailureType enum value
61752	JobExecutionFailureTypeAll = "ALL"
61753)
61754
61755// JobExecutionFailureType_Values returns all elements of the JobExecutionFailureType enum
61756func JobExecutionFailureType_Values() []string {
61757	return []string{
61758		JobExecutionFailureTypeFailed,
61759		JobExecutionFailureTypeRejected,
61760		JobExecutionFailureTypeTimedOut,
61761		JobExecutionFailureTypeAll,
61762	}
61763}
61764
61765const (
61766	// JobExecutionStatusQueued is a JobExecutionStatus enum value
61767	JobExecutionStatusQueued = "QUEUED"
61768
61769	// JobExecutionStatusInProgress is a JobExecutionStatus enum value
61770	JobExecutionStatusInProgress = "IN_PROGRESS"
61771
61772	// JobExecutionStatusSucceeded is a JobExecutionStatus enum value
61773	JobExecutionStatusSucceeded = "SUCCEEDED"
61774
61775	// JobExecutionStatusFailed is a JobExecutionStatus enum value
61776	JobExecutionStatusFailed = "FAILED"
61777
61778	// JobExecutionStatusTimedOut is a JobExecutionStatus enum value
61779	JobExecutionStatusTimedOut = "TIMED_OUT"
61780
61781	// JobExecutionStatusRejected is a JobExecutionStatus enum value
61782	JobExecutionStatusRejected = "REJECTED"
61783
61784	// JobExecutionStatusRemoved is a JobExecutionStatus enum value
61785	JobExecutionStatusRemoved = "REMOVED"
61786
61787	// JobExecutionStatusCanceled is a JobExecutionStatus enum value
61788	JobExecutionStatusCanceled = "CANCELED"
61789)
61790
61791// JobExecutionStatus_Values returns all elements of the JobExecutionStatus enum
61792func JobExecutionStatus_Values() []string {
61793	return []string{
61794		JobExecutionStatusQueued,
61795		JobExecutionStatusInProgress,
61796		JobExecutionStatusSucceeded,
61797		JobExecutionStatusFailed,
61798		JobExecutionStatusTimedOut,
61799		JobExecutionStatusRejected,
61800		JobExecutionStatusRemoved,
61801		JobExecutionStatusCanceled,
61802	}
61803}
61804
61805const (
61806	// JobStatusInProgress is a JobStatus enum value
61807	JobStatusInProgress = "IN_PROGRESS"
61808
61809	// JobStatusCanceled is a JobStatus enum value
61810	JobStatusCanceled = "CANCELED"
61811
61812	// JobStatusCompleted is a JobStatus enum value
61813	JobStatusCompleted = "COMPLETED"
61814
61815	// JobStatusDeletionInProgress is a JobStatus enum value
61816	JobStatusDeletionInProgress = "DELETION_IN_PROGRESS"
61817)
61818
61819// JobStatus_Values returns all elements of the JobStatus enum
61820func JobStatus_Values() []string {
61821	return []string{
61822		JobStatusInProgress,
61823		JobStatusCanceled,
61824		JobStatusCompleted,
61825		JobStatusDeletionInProgress,
61826	}
61827}
61828
61829const (
61830	// LogLevelDebug is a LogLevel enum value
61831	LogLevelDebug = "DEBUG"
61832
61833	// LogLevelInfo is a LogLevel enum value
61834	LogLevelInfo = "INFO"
61835
61836	// LogLevelError is a LogLevel enum value
61837	LogLevelError = "ERROR"
61838
61839	// LogLevelWarn is a LogLevel enum value
61840	LogLevelWarn = "WARN"
61841
61842	// LogLevelDisabled is a LogLevel enum value
61843	LogLevelDisabled = "DISABLED"
61844)
61845
61846// LogLevel_Values returns all elements of the LogLevel enum
61847func LogLevel_Values() []string {
61848	return []string{
61849		LogLevelDebug,
61850		LogLevelInfo,
61851		LogLevelError,
61852		LogLevelWarn,
61853		LogLevelDisabled,
61854	}
61855}
61856
61857const (
61858	// LogTargetTypeDefault is a LogTargetType enum value
61859	LogTargetTypeDefault = "DEFAULT"
61860
61861	// LogTargetTypeThingGroup is a LogTargetType enum value
61862	LogTargetTypeThingGroup = "THING_GROUP"
61863)
61864
61865// LogTargetType_Values returns all elements of the LogTargetType enum
61866func LogTargetType_Values() []string {
61867	return []string{
61868		LogTargetTypeDefault,
61869		LogTargetTypeThingGroup,
61870	}
61871}
61872
61873const (
61874	// MessageFormatRaw is a MessageFormat enum value
61875	MessageFormatRaw = "RAW"
61876
61877	// MessageFormatJson is a MessageFormat enum value
61878	MessageFormatJson = "JSON"
61879)
61880
61881// MessageFormat_Values returns all elements of the MessageFormat enum
61882func MessageFormat_Values() []string {
61883	return []string{
61884		MessageFormatRaw,
61885		MessageFormatJson,
61886	}
61887}
61888
61889const (
61890	// MitigationActionTypeUpdateDeviceCertificate is a MitigationActionType enum value
61891	MitigationActionTypeUpdateDeviceCertificate = "UPDATE_DEVICE_CERTIFICATE"
61892
61893	// MitigationActionTypeUpdateCaCertificate is a MitigationActionType enum value
61894	MitigationActionTypeUpdateCaCertificate = "UPDATE_CA_CERTIFICATE"
61895
61896	// MitigationActionTypeAddThingsToThingGroup is a MitigationActionType enum value
61897	MitigationActionTypeAddThingsToThingGroup = "ADD_THINGS_TO_THING_GROUP"
61898
61899	// MitigationActionTypeReplaceDefaultPolicyVersion is a MitigationActionType enum value
61900	MitigationActionTypeReplaceDefaultPolicyVersion = "REPLACE_DEFAULT_POLICY_VERSION"
61901
61902	// MitigationActionTypeEnableIotLogging is a MitigationActionType enum value
61903	MitigationActionTypeEnableIotLogging = "ENABLE_IOT_LOGGING"
61904
61905	// MitigationActionTypePublishFindingToSns is a MitigationActionType enum value
61906	MitigationActionTypePublishFindingToSns = "PUBLISH_FINDING_TO_SNS"
61907)
61908
61909// MitigationActionType_Values returns all elements of the MitigationActionType enum
61910func MitigationActionType_Values() []string {
61911	return []string{
61912		MitigationActionTypeUpdateDeviceCertificate,
61913		MitigationActionTypeUpdateCaCertificate,
61914		MitigationActionTypeAddThingsToThingGroup,
61915		MitigationActionTypeReplaceDefaultPolicyVersion,
61916		MitigationActionTypeEnableIotLogging,
61917		MitigationActionTypePublishFindingToSns,
61918	}
61919}
61920
61921const (
61922	// ModelStatusPendingBuild is a ModelStatus enum value
61923	ModelStatusPendingBuild = "PENDING_BUILD"
61924
61925	// ModelStatusActive is a ModelStatus enum value
61926	ModelStatusActive = "ACTIVE"
61927
61928	// ModelStatusExpired is a ModelStatus enum value
61929	ModelStatusExpired = "EXPIRED"
61930)
61931
61932// ModelStatus_Values returns all elements of the ModelStatus enum
61933func ModelStatus_Values() []string {
61934	return []string{
61935		ModelStatusPendingBuild,
61936		ModelStatusActive,
61937		ModelStatusExpired,
61938	}
61939}
61940
61941const (
61942	// OTAUpdateStatusCreatePending is a OTAUpdateStatus enum value
61943	OTAUpdateStatusCreatePending = "CREATE_PENDING"
61944
61945	// OTAUpdateStatusCreateInProgress is a OTAUpdateStatus enum value
61946	OTAUpdateStatusCreateInProgress = "CREATE_IN_PROGRESS"
61947
61948	// OTAUpdateStatusCreateComplete is a OTAUpdateStatus enum value
61949	OTAUpdateStatusCreateComplete = "CREATE_COMPLETE"
61950
61951	// OTAUpdateStatusCreateFailed is a OTAUpdateStatus enum value
61952	OTAUpdateStatusCreateFailed = "CREATE_FAILED"
61953)
61954
61955// OTAUpdateStatus_Values returns all elements of the OTAUpdateStatus enum
61956func OTAUpdateStatus_Values() []string {
61957	return []string{
61958		OTAUpdateStatusCreatePending,
61959		OTAUpdateStatusCreateInProgress,
61960		OTAUpdateStatusCreateComplete,
61961		OTAUpdateStatusCreateFailed,
61962	}
61963}
61964
61965const (
61966	// PolicyTemplateNameBlankPolicy is a PolicyTemplateName enum value
61967	PolicyTemplateNameBlankPolicy = "BLANK_POLICY"
61968)
61969
61970// PolicyTemplateName_Values returns all elements of the PolicyTemplateName enum
61971func PolicyTemplateName_Values() []string {
61972	return []string{
61973		PolicyTemplateNameBlankPolicy,
61974	}
61975}
61976
61977const (
61978	// ProtocolMqtt is a Protocol enum value
61979	ProtocolMqtt = "MQTT"
61980
61981	// ProtocolHttp is a Protocol enum value
61982	ProtocolHttp = "HTTP"
61983)
61984
61985// Protocol_Values returns all elements of the Protocol enum
61986func Protocol_Values() []string {
61987	return []string{
61988		ProtocolMqtt,
61989		ProtocolHttp,
61990	}
61991}
61992
61993const (
61994	// ReportTypeErrors is a ReportType enum value
61995	ReportTypeErrors = "ERRORS"
61996
61997	// ReportTypeResults is a ReportType enum value
61998	ReportTypeResults = "RESULTS"
61999)
62000
62001// ReportType_Values returns all elements of the ReportType enum
62002func ReportType_Values() []string {
62003	return []string{
62004		ReportTypeErrors,
62005		ReportTypeResults,
62006	}
62007}
62008
62009const (
62010	// ResourceTypeDeviceCertificate is a ResourceType enum value
62011	ResourceTypeDeviceCertificate = "DEVICE_CERTIFICATE"
62012
62013	// ResourceTypeCaCertificate is a ResourceType enum value
62014	ResourceTypeCaCertificate = "CA_CERTIFICATE"
62015
62016	// ResourceTypeIotPolicy is a ResourceType enum value
62017	ResourceTypeIotPolicy = "IOT_POLICY"
62018
62019	// ResourceTypeCognitoIdentityPool is a ResourceType enum value
62020	ResourceTypeCognitoIdentityPool = "COGNITO_IDENTITY_POOL"
62021
62022	// ResourceTypeClientId is a ResourceType enum value
62023	ResourceTypeClientId = "CLIENT_ID"
62024
62025	// ResourceTypeAccountSettings is a ResourceType enum value
62026	ResourceTypeAccountSettings = "ACCOUNT_SETTINGS"
62027
62028	// ResourceTypeRoleAlias is a ResourceType enum value
62029	ResourceTypeRoleAlias = "ROLE_ALIAS"
62030
62031	// ResourceTypeIamRole is a ResourceType enum value
62032	ResourceTypeIamRole = "IAM_ROLE"
62033)
62034
62035// ResourceType_Values returns all elements of the ResourceType enum
62036func ResourceType_Values() []string {
62037	return []string{
62038		ResourceTypeDeviceCertificate,
62039		ResourceTypeCaCertificate,
62040		ResourceTypeIotPolicy,
62041		ResourceTypeCognitoIdentityPool,
62042		ResourceTypeClientId,
62043		ResourceTypeAccountSettings,
62044		ResourceTypeRoleAlias,
62045		ResourceTypeIamRole,
62046	}
62047}
62048
62049const (
62050	// ServerCertificateStatusInvalid is a ServerCertificateStatus enum value
62051	ServerCertificateStatusInvalid = "INVALID"
62052
62053	// ServerCertificateStatusValid is a ServerCertificateStatus enum value
62054	ServerCertificateStatusValid = "VALID"
62055)
62056
62057// ServerCertificateStatus_Values returns all elements of the ServerCertificateStatus enum
62058func ServerCertificateStatus_Values() []string {
62059	return []string{
62060		ServerCertificateStatusInvalid,
62061		ServerCertificateStatusValid,
62062	}
62063}
62064
62065const (
62066	// ServiceTypeData is a ServiceType enum value
62067	ServiceTypeData = "DATA"
62068
62069	// ServiceTypeCredentialProvider is a ServiceType enum value
62070	ServiceTypeCredentialProvider = "CREDENTIAL_PROVIDER"
62071
62072	// ServiceTypeJobs is a ServiceType enum value
62073	ServiceTypeJobs = "JOBS"
62074)
62075
62076// ServiceType_Values returns all elements of the ServiceType enum
62077func ServiceType_Values() []string {
62078	return []string{
62079		ServiceTypeData,
62080		ServiceTypeCredentialProvider,
62081		ServiceTypeJobs,
62082	}
62083}
62084
62085const (
62086	// StatusInProgress is a Status enum value
62087	StatusInProgress = "InProgress"
62088
62089	// StatusCompleted is a Status enum value
62090	StatusCompleted = "Completed"
62091
62092	// StatusFailed is a Status enum value
62093	StatusFailed = "Failed"
62094
62095	// StatusCancelled is a Status enum value
62096	StatusCancelled = "Cancelled"
62097
62098	// StatusCancelling is a Status enum value
62099	StatusCancelling = "Cancelling"
62100)
62101
62102// Status_Values returns all elements of the Status enum
62103func Status_Values() []string {
62104	return []string{
62105		StatusInProgress,
62106		StatusCompleted,
62107		StatusFailed,
62108		StatusCancelled,
62109		StatusCancelling,
62110	}
62111}
62112
62113const (
62114	// TargetSelectionContinuous is a TargetSelection enum value
62115	TargetSelectionContinuous = "CONTINUOUS"
62116
62117	// TargetSelectionSnapshot is a TargetSelection enum value
62118	TargetSelectionSnapshot = "SNAPSHOT"
62119)
62120
62121// TargetSelection_Values returns all elements of the TargetSelection enum
62122func TargetSelection_Values() []string {
62123	return []string{
62124		TargetSelectionContinuous,
62125		TargetSelectionSnapshot,
62126	}
62127}
62128
62129const (
62130	// ThingConnectivityIndexingModeOff is a ThingConnectivityIndexingMode enum value
62131	ThingConnectivityIndexingModeOff = "OFF"
62132
62133	// ThingConnectivityIndexingModeStatus is a ThingConnectivityIndexingMode enum value
62134	ThingConnectivityIndexingModeStatus = "STATUS"
62135)
62136
62137// ThingConnectivityIndexingMode_Values returns all elements of the ThingConnectivityIndexingMode enum
62138func ThingConnectivityIndexingMode_Values() []string {
62139	return []string{
62140		ThingConnectivityIndexingModeOff,
62141		ThingConnectivityIndexingModeStatus,
62142	}
62143}
62144
62145const (
62146	// ThingGroupIndexingModeOff is a ThingGroupIndexingMode enum value
62147	ThingGroupIndexingModeOff = "OFF"
62148
62149	// ThingGroupIndexingModeOn is a ThingGroupIndexingMode enum value
62150	ThingGroupIndexingModeOn = "ON"
62151)
62152
62153// ThingGroupIndexingMode_Values returns all elements of the ThingGroupIndexingMode enum
62154func ThingGroupIndexingMode_Values() []string {
62155	return []string{
62156		ThingGroupIndexingModeOff,
62157		ThingGroupIndexingModeOn,
62158	}
62159}
62160
62161const (
62162	// ThingIndexingModeOff is a ThingIndexingMode enum value
62163	ThingIndexingModeOff = "OFF"
62164
62165	// ThingIndexingModeRegistry is a ThingIndexingMode enum value
62166	ThingIndexingModeRegistry = "REGISTRY"
62167
62168	// ThingIndexingModeRegistryAndShadow is a ThingIndexingMode enum value
62169	ThingIndexingModeRegistryAndShadow = "REGISTRY_AND_SHADOW"
62170)
62171
62172// ThingIndexingMode_Values returns all elements of the ThingIndexingMode enum
62173func ThingIndexingMode_Values() []string {
62174	return []string{
62175		ThingIndexingModeOff,
62176		ThingIndexingModeRegistry,
62177		ThingIndexingModeRegistryAndShadow,
62178	}
62179}
62180
62181const (
62182	// TopicRuleDestinationStatusEnabled is a TopicRuleDestinationStatus enum value
62183	TopicRuleDestinationStatusEnabled = "ENABLED"
62184
62185	// TopicRuleDestinationStatusInProgress is a TopicRuleDestinationStatus enum value
62186	TopicRuleDestinationStatusInProgress = "IN_PROGRESS"
62187
62188	// TopicRuleDestinationStatusDisabled is a TopicRuleDestinationStatus enum value
62189	TopicRuleDestinationStatusDisabled = "DISABLED"
62190
62191	// TopicRuleDestinationStatusError is a TopicRuleDestinationStatus enum value
62192	TopicRuleDestinationStatusError = "ERROR"
62193
62194	// TopicRuleDestinationStatusDeleting is a TopicRuleDestinationStatus enum value
62195	TopicRuleDestinationStatusDeleting = "DELETING"
62196)
62197
62198// TopicRuleDestinationStatus_Values returns all elements of the TopicRuleDestinationStatus enum
62199func TopicRuleDestinationStatus_Values() []string {
62200	return []string{
62201		TopicRuleDestinationStatusEnabled,
62202		TopicRuleDestinationStatusInProgress,
62203		TopicRuleDestinationStatusDisabled,
62204		TopicRuleDestinationStatusError,
62205		TopicRuleDestinationStatusDeleting,
62206	}
62207}
62208
62209const (
62210	// ViolationEventTypeInAlarm is a ViolationEventType enum value
62211	ViolationEventTypeInAlarm = "in-alarm"
62212
62213	// ViolationEventTypeAlarmCleared is a ViolationEventType enum value
62214	ViolationEventTypeAlarmCleared = "alarm-cleared"
62215
62216	// ViolationEventTypeAlarmInvalidated is a ViolationEventType enum value
62217	ViolationEventTypeAlarmInvalidated = "alarm-invalidated"
62218)
62219
62220// ViolationEventType_Values returns all elements of the ViolationEventType enum
62221func ViolationEventType_Values() []string {
62222	return []string{
62223		ViolationEventTypeInAlarm,
62224		ViolationEventTypeAlarmCleared,
62225		ViolationEventTypeAlarmInvalidated,
62226	}
62227}
62228