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 opPutVerificationStateOnViolation = "PutVerificationStateOnViolation"
20279
20280// PutVerificationStateOnViolationRequest generates a "aws/request.Request" representing the
20281// client's request for the PutVerificationStateOnViolation 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 PutVerificationStateOnViolation for more information on using the PutVerificationStateOnViolation
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 PutVerificationStateOnViolationRequest method.
20296//    req, resp := client.PutVerificationStateOnViolationRequest(params)
20297//
20298//    err := req.Send()
20299//    if err == nil { // resp is now filled
20300//        fmt.Println(resp)
20301//    }
20302func (c *IoT) PutVerificationStateOnViolationRequest(input *PutVerificationStateOnViolationInput) (req *request.Request, output *PutVerificationStateOnViolationOutput) {
20303	op := &request.Operation{
20304		Name:       opPutVerificationStateOnViolation,
20305		HTTPMethod: "POST",
20306		HTTPPath:   "/violations/verification-state/{violationId}",
20307	}
20308
20309	if input == nil {
20310		input = &PutVerificationStateOnViolationInput{}
20311	}
20312
20313	output = &PutVerificationStateOnViolationOutput{}
20314	req = c.newRequest(op, input, output)
20315	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20316	return
20317}
20318
20319// PutVerificationStateOnViolation API operation for AWS IoT.
20320//
20321// Set a verification state and provide a description of that verification state
20322// on a violation (detect alarm).
20323//
20324// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20325// with awserr.Error's Code and Message methods to get detailed information about
20326// the error.
20327//
20328// See the AWS API reference guide for AWS IoT's
20329// API operation PutVerificationStateOnViolation for usage and error information.
20330//
20331// Returned Error Types:
20332//   * InvalidRequestException
20333//   The request is not valid.
20334//
20335//   * ThrottlingException
20336//   The rate exceeds the limit.
20337//
20338//   * InternalFailureException
20339//   An unexpected error has occurred.
20340//
20341func (c *IoT) PutVerificationStateOnViolation(input *PutVerificationStateOnViolationInput) (*PutVerificationStateOnViolationOutput, error) {
20342	req, out := c.PutVerificationStateOnViolationRequest(input)
20343	return out, req.Send()
20344}
20345
20346// PutVerificationStateOnViolationWithContext is the same as PutVerificationStateOnViolation with the addition of
20347// the ability to pass a context and additional request options.
20348//
20349// See PutVerificationStateOnViolation for details on how to use this API operation.
20350//
20351// The context must be non-nil and will be used for request cancellation. If
20352// the context is nil a panic will occur. In the future the SDK may create
20353// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20354// for more information on using Contexts.
20355func (c *IoT) PutVerificationStateOnViolationWithContext(ctx aws.Context, input *PutVerificationStateOnViolationInput, opts ...request.Option) (*PutVerificationStateOnViolationOutput, error) {
20356	req, out := c.PutVerificationStateOnViolationRequest(input)
20357	req.SetContext(ctx)
20358	req.ApplyOptions(opts...)
20359	return out, req.Send()
20360}
20361
20362const opRegisterCACertificate = "RegisterCACertificate"
20363
20364// RegisterCACertificateRequest generates a "aws/request.Request" representing the
20365// client's request for the RegisterCACertificate operation. The "output" return
20366// value will be populated with the request's response once the request completes
20367// successfully.
20368//
20369// Use "Send" method on the returned Request to send the API call to the service.
20370// the "output" return value is not valid until after Send returns without error.
20371//
20372// See RegisterCACertificate for more information on using the RegisterCACertificate
20373// API call, and error handling.
20374//
20375// This method is useful when you want to inject custom logic or configuration
20376// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20377//
20378//
20379//    // Example sending a request using the RegisterCACertificateRequest method.
20380//    req, resp := client.RegisterCACertificateRequest(params)
20381//
20382//    err := req.Send()
20383//    if err == nil { // resp is now filled
20384//        fmt.Println(resp)
20385//    }
20386func (c *IoT) RegisterCACertificateRequest(input *RegisterCACertificateInput) (req *request.Request, output *RegisterCACertificateOutput) {
20387	op := &request.Operation{
20388		Name:       opRegisterCACertificate,
20389		HTTPMethod: "POST",
20390		HTTPPath:   "/cacertificate",
20391	}
20392
20393	if input == nil {
20394		input = &RegisterCACertificateInput{}
20395	}
20396
20397	output = &RegisterCACertificateOutput{}
20398	req = c.newRequest(op, input, output)
20399	return
20400}
20401
20402// RegisterCACertificate API operation for AWS IoT.
20403//
20404// Registers a CA certificate with IoT. This CA certificate can then be used
20405// to sign device certificates, which can be then registered with IoT. You can
20406// register up to 10 CA certificates per Amazon Web Services account that have
20407// the same subject field. This enables you to have up to 10 certificate authorities
20408// sign your device certificates. If you have more than one CA certificate registered,
20409// make sure you pass the CA certificate when you register your device certificates
20410// with the RegisterCertificate action.
20411//
20412// Requires permission to access the RegisterCACertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
20413// action.
20414//
20415// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20416// with awserr.Error's Code and Message methods to get detailed information about
20417// the error.
20418//
20419// See the AWS API reference guide for AWS IoT's
20420// API operation RegisterCACertificate for usage and error information.
20421//
20422// Returned Error Types:
20423//   * ResourceAlreadyExistsException
20424//   The resource already exists.
20425//
20426//   * RegistrationCodeValidationException
20427//   The registration code is invalid.
20428//
20429//   * InvalidRequestException
20430//   The request is not valid.
20431//
20432//   * CertificateValidationException
20433//   The certificate is invalid.
20434//
20435//   * ThrottlingException
20436//   The rate exceeds the limit.
20437//
20438//   * LimitExceededException
20439//   A limit has been exceeded.
20440//
20441//   * UnauthorizedException
20442//   You are not authorized to perform this operation.
20443//
20444//   * ServiceUnavailableException
20445//   The service is temporarily unavailable.
20446//
20447//   * InternalFailureException
20448//   An unexpected error has occurred.
20449//
20450func (c *IoT) RegisterCACertificate(input *RegisterCACertificateInput) (*RegisterCACertificateOutput, error) {
20451	req, out := c.RegisterCACertificateRequest(input)
20452	return out, req.Send()
20453}
20454
20455// RegisterCACertificateWithContext is the same as RegisterCACertificate with the addition of
20456// the ability to pass a context and additional request options.
20457//
20458// See RegisterCACertificate for details on how to use this API operation.
20459//
20460// The context must be non-nil and will be used for request cancellation. If
20461// the context is nil a panic will occur. In the future the SDK may create
20462// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20463// for more information on using Contexts.
20464func (c *IoT) RegisterCACertificateWithContext(ctx aws.Context, input *RegisterCACertificateInput, opts ...request.Option) (*RegisterCACertificateOutput, error) {
20465	req, out := c.RegisterCACertificateRequest(input)
20466	req.SetContext(ctx)
20467	req.ApplyOptions(opts...)
20468	return out, req.Send()
20469}
20470
20471const opRegisterCertificate = "RegisterCertificate"
20472
20473// RegisterCertificateRequest generates a "aws/request.Request" representing the
20474// client's request for the RegisterCertificate operation. The "output" return
20475// value will be populated with the request's response once the request completes
20476// successfully.
20477//
20478// Use "Send" method on the returned Request to send the API call to the service.
20479// the "output" return value is not valid until after Send returns without error.
20480//
20481// See RegisterCertificate for more information on using the RegisterCertificate
20482// API call, and error handling.
20483//
20484// This method is useful when you want to inject custom logic or configuration
20485// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20486//
20487//
20488//    // Example sending a request using the RegisterCertificateRequest method.
20489//    req, resp := client.RegisterCertificateRequest(params)
20490//
20491//    err := req.Send()
20492//    if err == nil { // resp is now filled
20493//        fmt.Println(resp)
20494//    }
20495func (c *IoT) RegisterCertificateRequest(input *RegisterCertificateInput) (req *request.Request, output *RegisterCertificateOutput) {
20496	op := &request.Operation{
20497		Name:       opRegisterCertificate,
20498		HTTPMethod: "POST",
20499		HTTPPath:   "/certificate/register",
20500	}
20501
20502	if input == nil {
20503		input = &RegisterCertificateInput{}
20504	}
20505
20506	output = &RegisterCertificateOutput{}
20507	req = c.newRequest(op, input, output)
20508	return
20509}
20510
20511// RegisterCertificate API operation for AWS IoT.
20512//
20513// Registers a device certificate with IoT. If you have more than one CA certificate
20514// that has the same subject field, you must specify the CA certificate that
20515// was used to sign the device certificate being registered.
20516//
20517// Requires permission to access the RegisterCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
20518// action.
20519//
20520// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20521// with awserr.Error's Code and Message methods to get detailed information about
20522// the error.
20523//
20524// See the AWS API reference guide for AWS IoT's
20525// API operation RegisterCertificate for usage and error information.
20526//
20527// Returned Error Types:
20528//   * ResourceAlreadyExistsException
20529//   The resource already exists.
20530//
20531//   * InvalidRequestException
20532//   The request is not valid.
20533//
20534//   * CertificateValidationException
20535//   The certificate is invalid.
20536//
20537//   * CertificateStateException
20538//   The certificate operation is not allowed.
20539//
20540//   * CertificateConflictException
20541//   Unable to verify the CA certificate used to sign the device certificate you
20542//   are attempting to register. This is happens when you have registered more
20543//   than one CA certificate that has the same subject field and public key.
20544//
20545//   * ThrottlingException
20546//   The rate exceeds the limit.
20547//
20548//   * UnauthorizedException
20549//   You are not authorized to perform this operation.
20550//
20551//   * ServiceUnavailableException
20552//   The service is temporarily unavailable.
20553//
20554//   * InternalFailureException
20555//   An unexpected error has occurred.
20556//
20557func (c *IoT) RegisterCertificate(input *RegisterCertificateInput) (*RegisterCertificateOutput, error) {
20558	req, out := c.RegisterCertificateRequest(input)
20559	return out, req.Send()
20560}
20561
20562// RegisterCertificateWithContext is the same as RegisterCertificate with the addition of
20563// the ability to pass a context and additional request options.
20564//
20565// See RegisterCertificate for details on how to use this API operation.
20566//
20567// The context must be non-nil and will be used for request cancellation. If
20568// the context is nil a panic will occur. In the future the SDK may create
20569// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20570// for more information on using Contexts.
20571func (c *IoT) RegisterCertificateWithContext(ctx aws.Context, input *RegisterCertificateInput, opts ...request.Option) (*RegisterCertificateOutput, error) {
20572	req, out := c.RegisterCertificateRequest(input)
20573	req.SetContext(ctx)
20574	req.ApplyOptions(opts...)
20575	return out, req.Send()
20576}
20577
20578const opRegisterCertificateWithoutCA = "RegisterCertificateWithoutCA"
20579
20580// RegisterCertificateWithoutCARequest generates a "aws/request.Request" representing the
20581// client's request for the RegisterCertificateWithoutCA operation. The "output" return
20582// value will be populated with the request's response once the request completes
20583// successfully.
20584//
20585// Use "Send" method on the returned Request to send the API call to the service.
20586// the "output" return value is not valid until after Send returns without error.
20587//
20588// See RegisterCertificateWithoutCA for more information on using the RegisterCertificateWithoutCA
20589// API call, and error handling.
20590//
20591// This method is useful when you want to inject custom logic or configuration
20592// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20593//
20594//
20595//    // Example sending a request using the RegisterCertificateWithoutCARequest method.
20596//    req, resp := client.RegisterCertificateWithoutCARequest(params)
20597//
20598//    err := req.Send()
20599//    if err == nil { // resp is now filled
20600//        fmt.Println(resp)
20601//    }
20602func (c *IoT) RegisterCertificateWithoutCARequest(input *RegisterCertificateWithoutCAInput) (req *request.Request, output *RegisterCertificateWithoutCAOutput) {
20603	op := &request.Operation{
20604		Name:       opRegisterCertificateWithoutCA,
20605		HTTPMethod: "POST",
20606		HTTPPath:   "/certificate/register-no-ca",
20607	}
20608
20609	if input == nil {
20610		input = &RegisterCertificateWithoutCAInput{}
20611	}
20612
20613	output = &RegisterCertificateWithoutCAOutput{}
20614	req = c.newRequest(op, input, output)
20615	return
20616}
20617
20618// RegisterCertificateWithoutCA API operation for AWS IoT.
20619//
20620// Register a certificate that does not have a certificate authority (CA).
20621//
20622// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20623// with awserr.Error's Code and Message methods to get detailed information about
20624// the error.
20625//
20626// See the AWS API reference guide for AWS IoT's
20627// API operation RegisterCertificateWithoutCA for usage and error information.
20628//
20629// Returned Error Types:
20630//   * ResourceAlreadyExistsException
20631//   The resource already exists.
20632//
20633//   * InvalidRequestException
20634//   The request is not valid.
20635//
20636//   * CertificateStateException
20637//   The certificate operation is not allowed.
20638//
20639//   * CertificateValidationException
20640//   The certificate is invalid.
20641//
20642//   * ThrottlingException
20643//   The rate exceeds the limit.
20644//
20645//   * UnauthorizedException
20646//   You are not authorized to perform this operation.
20647//
20648//   * ServiceUnavailableException
20649//   The service is temporarily unavailable.
20650//
20651//   * InternalFailureException
20652//   An unexpected error has occurred.
20653//
20654func (c *IoT) RegisterCertificateWithoutCA(input *RegisterCertificateWithoutCAInput) (*RegisterCertificateWithoutCAOutput, error) {
20655	req, out := c.RegisterCertificateWithoutCARequest(input)
20656	return out, req.Send()
20657}
20658
20659// RegisterCertificateWithoutCAWithContext is the same as RegisterCertificateWithoutCA with the addition of
20660// the ability to pass a context and additional request options.
20661//
20662// See RegisterCertificateWithoutCA for details on how to use this API operation.
20663//
20664// The context must be non-nil and will be used for request cancellation. If
20665// the context is nil a panic will occur. In the future the SDK may create
20666// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20667// for more information on using Contexts.
20668func (c *IoT) RegisterCertificateWithoutCAWithContext(ctx aws.Context, input *RegisterCertificateWithoutCAInput, opts ...request.Option) (*RegisterCertificateWithoutCAOutput, error) {
20669	req, out := c.RegisterCertificateWithoutCARequest(input)
20670	req.SetContext(ctx)
20671	req.ApplyOptions(opts...)
20672	return out, req.Send()
20673}
20674
20675const opRegisterThing = "RegisterThing"
20676
20677// RegisterThingRequest generates a "aws/request.Request" representing the
20678// client's request for the RegisterThing operation. The "output" return
20679// value will be populated with the request's response once the request completes
20680// successfully.
20681//
20682// Use "Send" method on the returned Request to send the API call to the service.
20683// the "output" return value is not valid until after Send returns without error.
20684//
20685// See RegisterThing for more information on using the RegisterThing
20686// API call, and error handling.
20687//
20688// This method is useful when you want to inject custom logic or configuration
20689// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20690//
20691//
20692//    // Example sending a request using the RegisterThingRequest method.
20693//    req, resp := client.RegisterThingRequest(params)
20694//
20695//    err := req.Send()
20696//    if err == nil { // resp is now filled
20697//        fmt.Println(resp)
20698//    }
20699func (c *IoT) RegisterThingRequest(input *RegisterThingInput) (req *request.Request, output *RegisterThingOutput) {
20700	op := &request.Operation{
20701		Name:       opRegisterThing,
20702		HTTPMethod: "POST",
20703		HTTPPath:   "/things",
20704	}
20705
20706	if input == nil {
20707		input = &RegisterThingInput{}
20708	}
20709
20710	output = &RegisterThingOutput{}
20711	req = c.newRequest(op, input, output)
20712	return
20713}
20714
20715// RegisterThing API operation for AWS IoT.
20716//
20717// Provisions a thing in the device registry. RegisterThing calls other IoT
20718// control plane APIs. These calls might exceed your account level IoT Throttling
20719// Limits (https://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_iot)
20720// and cause throttle errors. Please contact Amazon Web Services Customer Support
20721// (https://console.aws.amazon.com/support/home) to raise your throttling limits
20722// if necessary.
20723//
20724// Requires permission to access the RegisterThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
20725// action.
20726//
20727// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20728// with awserr.Error's Code and Message methods to get detailed information about
20729// the error.
20730//
20731// See the AWS API reference guide for AWS IoT's
20732// API operation RegisterThing for usage and error information.
20733//
20734// Returned Error Types:
20735//   * InternalFailureException
20736//   An unexpected error has occurred.
20737//
20738//   * ServiceUnavailableException
20739//   The service is temporarily unavailable.
20740//
20741//   * InvalidRequestException
20742//   The request is not valid.
20743//
20744//   * UnauthorizedException
20745//   You are not authorized to perform this operation.
20746//
20747//   * ThrottlingException
20748//   The rate exceeds the limit.
20749//
20750//   * ConflictingResourceUpdateException
20751//   A conflicting resource update exception. This exception is thrown when two
20752//   pending updates cause a conflict.
20753//
20754//   * ResourceRegistrationFailureException
20755//   The resource registration failed.
20756//
20757func (c *IoT) RegisterThing(input *RegisterThingInput) (*RegisterThingOutput, error) {
20758	req, out := c.RegisterThingRequest(input)
20759	return out, req.Send()
20760}
20761
20762// RegisterThingWithContext is the same as RegisterThing with the addition of
20763// the ability to pass a context and additional request options.
20764//
20765// See RegisterThing for details on how to use this API operation.
20766//
20767// The context must be non-nil and will be used for request cancellation. If
20768// the context is nil a panic will occur. In the future the SDK may create
20769// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20770// for more information on using Contexts.
20771func (c *IoT) RegisterThingWithContext(ctx aws.Context, input *RegisterThingInput, opts ...request.Option) (*RegisterThingOutput, error) {
20772	req, out := c.RegisterThingRequest(input)
20773	req.SetContext(ctx)
20774	req.ApplyOptions(opts...)
20775	return out, req.Send()
20776}
20777
20778const opRejectCertificateTransfer = "RejectCertificateTransfer"
20779
20780// RejectCertificateTransferRequest generates a "aws/request.Request" representing the
20781// client's request for the RejectCertificateTransfer operation. The "output" return
20782// value will be populated with the request's response once the request completes
20783// successfully.
20784//
20785// Use "Send" method on the returned Request to send the API call to the service.
20786// the "output" return value is not valid until after Send returns without error.
20787//
20788// See RejectCertificateTransfer for more information on using the RejectCertificateTransfer
20789// API call, and error handling.
20790//
20791// This method is useful when you want to inject custom logic or configuration
20792// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20793//
20794//
20795//    // Example sending a request using the RejectCertificateTransferRequest method.
20796//    req, resp := client.RejectCertificateTransferRequest(params)
20797//
20798//    err := req.Send()
20799//    if err == nil { // resp is now filled
20800//        fmt.Println(resp)
20801//    }
20802func (c *IoT) RejectCertificateTransferRequest(input *RejectCertificateTransferInput) (req *request.Request, output *RejectCertificateTransferOutput) {
20803	op := &request.Operation{
20804		Name:       opRejectCertificateTransfer,
20805		HTTPMethod: "PATCH",
20806		HTTPPath:   "/reject-certificate-transfer/{certificateId}",
20807	}
20808
20809	if input == nil {
20810		input = &RejectCertificateTransferInput{}
20811	}
20812
20813	output = &RejectCertificateTransferOutput{}
20814	req = c.newRequest(op, input, output)
20815	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20816	return
20817}
20818
20819// RejectCertificateTransfer API operation for AWS IoT.
20820//
20821// Rejects a pending certificate transfer. After IoT rejects a certificate transfer,
20822// the certificate status changes from PENDING_TRANSFER to INACTIVE.
20823//
20824// To check for pending certificate transfers, call ListCertificates to enumerate
20825// your certificates.
20826//
20827// This operation can only be called by the transfer destination. After it is
20828// called, the certificate will be returned to the source's account in the INACTIVE
20829// state.
20830//
20831// Requires permission to access the RejectCertificateTransfer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
20832// action.
20833//
20834// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20835// with awserr.Error's Code and Message methods to get detailed information about
20836// the error.
20837//
20838// See the AWS API reference guide for AWS IoT's
20839// API operation RejectCertificateTransfer for usage and error information.
20840//
20841// Returned Error Types:
20842//   * ResourceNotFoundException
20843//   The specified resource does not exist.
20844//
20845//   * TransferAlreadyCompletedException
20846//   You can't revert the certificate transfer because the transfer is already
20847//   complete.
20848//
20849//   * InvalidRequestException
20850//   The request is not valid.
20851//
20852//   * ThrottlingException
20853//   The rate exceeds the limit.
20854//
20855//   * UnauthorizedException
20856//   You are not authorized to perform this operation.
20857//
20858//   * ServiceUnavailableException
20859//   The service is temporarily unavailable.
20860//
20861//   * InternalFailureException
20862//   An unexpected error has occurred.
20863//
20864func (c *IoT) RejectCertificateTransfer(input *RejectCertificateTransferInput) (*RejectCertificateTransferOutput, error) {
20865	req, out := c.RejectCertificateTransferRequest(input)
20866	return out, req.Send()
20867}
20868
20869// RejectCertificateTransferWithContext is the same as RejectCertificateTransfer with the addition of
20870// the ability to pass a context and additional request options.
20871//
20872// See RejectCertificateTransfer for details on how to use this API operation.
20873//
20874// The context must be non-nil and will be used for request cancellation. If
20875// the context is nil a panic will occur. In the future the SDK may create
20876// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20877// for more information on using Contexts.
20878func (c *IoT) RejectCertificateTransferWithContext(ctx aws.Context, input *RejectCertificateTransferInput, opts ...request.Option) (*RejectCertificateTransferOutput, error) {
20879	req, out := c.RejectCertificateTransferRequest(input)
20880	req.SetContext(ctx)
20881	req.ApplyOptions(opts...)
20882	return out, req.Send()
20883}
20884
20885const opRemoveThingFromBillingGroup = "RemoveThingFromBillingGroup"
20886
20887// RemoveThingFromBillingGroupRequest generates a "aws/request.Request" representing the
20888// client's request for the RemoveThingFromBillingGroup operation. The "output" return
20889// value will be populated with the request's response once the request completes
20890// successfully.
20891//
20892// Use "Send" method on the returned Request to send the API call to the service.
20893// the "output" return value is not valid until after Send returns without error.
20894//
20895// See RemoveThingFromBillingGroup for more information on using the RemoveThingFromBillingGroup
20896// API call, and error handling.
20897//
20898// This method is useful when you want to inject custom logic or configuration
20899// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20900//
20901//
20902//    // Example sending a request using the RemoveThingFromBillingGroupRequest method.
20903//    req, resp := client.RemoveThingFromBillingGroupRequest(params)
20904//
20905//    err := req.Send()
20906//    if err == nil { // resp is now filled
20907//        fmt.Println(resp)
20908//    }
20909func (c *IoT) RemoveThingFromBillingGroupRequest(input *RemoveThingFromBillingGroupInput) (req *request.Request, output *RemoveThingFromBillingGroupOutput) {
20910	op := &request.Operation{
20911		Name:       opRemoveThingFromBillingGroup,
20912		HTTPMethod: "PUT",
20913		HTTPPath:   "/billing-groups/removeThingFromBillingGroup",
20914	}
20915
20916	if input == nil {
20917		input = &RemoveThingFromBillingGroupInput{}
20918	}
20919
20920	output = &RemoveThingFromBillingGroupOutput{}
20921	req = c.newRequest(op, input, output)
20922	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
20923	return
20924}
20925
20926// RemoveThingFromBillingGroup API operation for AWS IoT.
20927//
20928// Removes the given thing from the billing group.
20929//
20930// Requires permission to access the RemoveThingFromBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
20931// action.
20932//
20933// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
20934// with awserr.Error's Code and Message methods to get detailed information about
20935// the error.
20936//
20937// See the AWS API reference guide for AWS IoT's
20938// API operation RemoveThingFromBillingGroup for usage and error information.
20939//
20940// Returned Error Types:
20941//   * InvalidRequestException
20942//   The request is not valid.
20943//
20944//   * ThrottlingException
20945//   The rate exceeds the limit.
20946//
20947//   * InternalFailureException
20948//   An unexpected error has occurred.
20949//
20950//   * ResourceNotFoundException
20951//   The specified resource does not exist.
20952//
20953func (c *IoT) RemoveThingFromBillingGroup(input *RemoveThingFromBillingGroupInput) (*RemoveThingFromBillingGroupOutput, error) {
20954	req, out := c.RemoveThingFromBillingGroupRequest(input)
20955	return out, req.Send()
20956}
20957
20958// RemoveThingFromBillingGroupWithContext is the same as RemoveThingFromBillingGroup with the addition of
20959// the ability to pass a context and additional request options.
20960//
20961// See RemoveThingFromBillingGroup for details on how to use this API operation.
20962//
20963// The context must be non-nil and will be used for request cancellation. If
20964// the context is nil a panic will occur. In the future the SDK may create
20965// sub-contexts for http.Requests. See https://golang.org/pkg/context/
20966// for more information on using Contexts.
20967func (c *IoT) RemoveThingFromBillingGroupWithContext(ctx aws.Context, input *RemoveThingFromBillingGroupInput, opts ...request.Option) (*RemoveThingFromBillingGroupOutput, error) {
20968	req, out := c.RemoveThingFromBillingGroupRequest(input)
20969	req.SetContext(ctx)
20970	req.ApplyOptions(opts...)
20971	return out, req.Send()
20972}
20973
20974const opRemoveThingFromThingGroup = "RemoveThingFromThingGroup"
20975
20976// RemoveThingFromThingGroupRequest generates a "aws/request.Request" representing the
20977// client's request for the RemoveThingFromThingGroup operation. The "output" return
20978// value will be populated with the request's response once the request completes
20979// successfully.
20980//
20981// Use "Send" method on the returned Request to send the API call to the service.
20982// the "output" return value is not valid until after Send returns without error.
20983//
20984// See RemoveThingFromThingGroup for more information on using the RemoveThingFromThingGroup
20985// API call, and error handling.
20986//
20987// This method is useful when you want to inject custom logic or configuration
20988// into the SDK's request lifecycle. Such as custom headers, or retry logic.
20989//
20990//
20991//    // Example sending a request using the RemoveThingFromThingGroupRequest method.
20992//    req, resp := client.RemoveThingFromThingGroupRequest(params)
20993//
20994//    err := req.Send()
20995//    if err == nil { // resp is now filled
20996//        fmt.Println(resp)
20997//    }
20998func (c *IoT) RemoveThingFromThingGroupRequest(input *RemoveThingFromThingGroupInput) (req *request.Request, output *RemoveThingFromThingGroupOutput) {
20999	op := &request.Operation{
21000		Name:       opRemoveThingFromThingGroup,
21001		HTTPMethod: "PUT",
21002		HTTPPath:   "/thing-groups/removeThingFromThingGroup",
21003	}
21004
21005	if input == nil {
21006		input = &RemoveThingFromThingGroupInput{}
21007	}
21008
21009	output = &RemoveThingFromThingGroupOutput{}
21010	req = c.newRequest(op, input, output)
21011	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21012	return
21013}
21014
21015// RemoveThingFromThingGroup API operation for AWS IoT.
21016//
21017// Remove the specified thing from the specified group.
21018//
21019// You must specify either a thingGroupArn or a thingGroupName to identify the
21020// thing group and either a thingArn or a thingName to identify the thing to
21021// remove from the thing group.
21022//
21023// Requires permission to access the RemoveThingFromThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21024// action.
21025//
21026// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21027// with awserr.Error's Code and Message methods to get detailed information about
21028// the error.
21029//
21030// See the AWS API reference guide for AWS IoT's
21031// API operation RemoveThingFromThingGroup for usage and error information.
21032//
21033// Returned Error Types:
21034//   * InvalidRequestException
21035//   The request is not valid.
21036//
21037//   * ThrottlingException
21038//   The rate exceeds the limit.
21039//
21040//   * InternalFailureException
21041//   An unexpected error has occurred.
21042//
21043//   * ResourceNotFoundException
21044//   The specified resource does not exist.
21045//
21046func (c *IoT) RemoveThingFromThingGroup(input *RemoveThingFromThingGroupInput) (*RemoveThingFromThingGroupOutput, error) {
21047	req, out := c.RemoveThingFromThingGroupRequest(input)
21048	return out, req.Send()
21049}
21050
21051// RemoveThingFromThingGroupWithContext is the same as RemoveThingFromThingGroup with the addition of
21052// the ability to pass a context and additional request options.
21053//
21054// See RemoveThingFromThingGroup for details on how to use this API operation.
21055//
21056// The context must be non-nil and will be used for request cancellation. If
21057// the context is nil a panic will occur. In the future the SDK may create
21058// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21059// for more information on using Contexts.
21060func (c *IoT) RemoveThingFromThingGroupWithContext(ctx aws.Context, input *RemoveThingFromThingGroupInput, opts ...request.Option) (*RemoveThingFromThingGroupOutput, error) {
21061	req, out := c.RemoveThingFromThingGroupRequest(input)
21062	req.SetContext(ctx)
21063	req.ApplyOptions(opts...)
21064	return out, req.Send()
21065}
21066
21067const opReplaceTopicRule = "ReplaceTopicRule"
21068
21069// ReplaceTopicRuleRequest generates a "aws/request.Request" representing the
21070// client's request for the ReplaceTopicRule operation. The "output" return
21071// value will be populated with the request's response once the request completes
21072// successfully.
21073//
21074// Use "Send" method on the returned Request to send the API call to the service.
21075// the "output" return value is not valid until after Send returns without error.
21076//
21077// See ReplaceTopicRule for more information on using the ReplaceTopicRule
21078// API call, and error handling.
21079//
21080// This method is useful when you want to inject custom logic or configuration
21081// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21082//
21083//
21084//    // Example sending a request using the ReplaceTopicRuleRequest method.
21085//    req, resp := client.ReplaceTopicRuleRequest(params)
21086//
21087//    err := req.Send()
21088//    if err == nil { // resp is now filled
21089//        fmt.Println(resp)
21090//    }
21091func (c *IoT) ReplaceTopicRuleRequest(input *ReplaceTopicRuleInput) (req *request.Request, output *ReplaceTopicRuleOutput) {
21092	op := &request.Operation{
21093		Name:       opReplaceTopicRule,
21094		HTTPMethod: "PATCH",
21095		HTTPPath:   "/rules/{ruleName}",
21096	}
21097
21098	if input == nil {
21099		input = &ReplaceTopicRuleInput{}
21100	}
21101
21102	output = &ReplaceTopicRuleOutput{}
21103	req = c.newRequest(op, input, output)
21104	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21105	return
21106}
21107
21108// ReplaceTopicRule API operation for AWS IoT.
21109//
21110// Replaces the rule. You must specify all parameters for the new rule. Creating
21111// rules is an administrator-level action. Any user who has permission to create
21112// rules will be able to access data processed by the rule.
21113//
21114// Requires permission to access the ReplaceTopicRule (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21115// action.
21116//
21117// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21118// with awserr.Error's Code and Message methods to get detailed information about
21119// the error.
21120//
21121// See the AWS API reference guide for AWS IoT's
21122// API operation ReplaceTopicRule for usage and error information.
21123//
21124// Returned Error Types:
21125//   * SqlParseException
21126//   The Rule-SQL expression can't be parsed correctly.
21127//
21128//   * InternalException
21129//   An unexpected error has occurred.
21130//
21131//   * InvalidRequestException
21132//   The request is not valid.
21133//
21134//   * ServiceUnavailableException
21135//   The service is temporarily unavailable.
21136//
21137//   * UnauthorizedException
21138//   You are not authorized to perform this operation.
21139//
21140//   * ConflictingResourceUpdateException
21141//   A conflicting resource update exception. This exception is thrown when two
21142//   pending updates cause a conflict.
21143//
21144func (c *IoT) ReplaceTopicRule(input *ReplaceTopicRuleInput) (*ReplaceTopicRuleOutput, error) {
21145	req, out := c.ReplaceTopicRuleRequest(input)
21146	return out, req.Send()
21147}
21148
21149// ReplaceTopicRuleWithContext is the same as ReplaceTopicRule with the addition of
21150// the ability to pass a context and additional request options.
21151//
21152// See ReplaceTopicRule for details on how to use this API operation.
21153//
21154// The context must be non-nil and will be used for request cancellation. If
21155// the context is nil a panic will occur. In the future the SDK may create
21156// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21157// for more information on using Contexts.
21158func (c *IoT) ReplaceTopicRuleWithContext(ctx aws.Context, input *ReplaceTopicRuleInput, opts ...request.Option) (*ReplaceTopicRuleOutput, error) {
21159	req, out := c.ReplaceTopicRuleRequest(input)
21160	req.SetContext(ctx)
21161	req.ApplyOptions(opts...)
21162	return out, req.Send()
21163}
21164
21165const opSearchIndex = "SearchIndex"
21166
21167// SearchIndexRequest generates a "aws/request.Request" representing the
21168// client's request for the SearchIndex operation. The "output" return
21169// value will be populated with the request's response once the request completes
21170// successfully.
21171//
21172// Use "Send" method on the returned Request to send the API call to the service.
21173// the "output" return value is not valid until after Send returns without error.
21174//
21175// See SearchIndex for more information on using the SearchIndex
21176// API call, and error handling.
21177//
21178// This method is useful when you want to inject custom logic or configuration
21179// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21180//
21181//
21182//    // Example sending a request using the SearchIndexRequest method.
21183//    req, resp := client.SearchIndexRequest(params)
21184//
21185//    err := req.Send()
21186//    if err == nil { // resp is now filled
21187//        fmt.Println(resp)
21188//    }
21189func (c *IoT) SearchIndexRequest(input *SearchIndexInput) (req *request.Request, output *SearchIndexOutput) {
21190	op := &request.Operation{
21191		Name:       opSearchIndex,
21192		HTTPMethod: "POST",
21193		HTTPPath:   "/indices/search",
21194	}
21195
21196	if input == nil {
21197		input = &SearchIndexInput{}
21198	}
21199
21200	output = &SearchIndexOutput{}
21201	req = c.newRequest(op, input, output)
21202	return
21203}
21204
21205// SearchIndex API operation for AWS IoT.
21206//
21207// The query search index.
21208//
21209// Requires permission to access the SearchIndex (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21210// action.
21211//
21212// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21213// with awserr.Error's Code and Message methods to get detailed information about
21214// the error.
21215//
21216// See the AWS API reference guide for AWS IoT's
21217// API operation SearchIndex for usage and error information.
21218//
21219// Returned Error Types:
21220//   * InvalidRequestException
21221//   The request is not valid.
21222//
21223//   * ThrottlingException
21224//   The rate exceeds the limit.
21225//
21226//   * UnauthorizedException
21227//   You are not authorized to perform this operation.
21228//
21229//   * ServiceUnavailableException
21230//   The service is temporarily unavailable.
21231//
21232//   * InternalFailureException
21233//   An unexpected error has occurred.
21234//
21235//   * ResourceNotFoundException
21236//   The specified resource does not exist.
21237//
21238//   * InvalidQueryException
21239//   The query is invalid.
21240//
21241//   * IndexNotReadyException
21242//   The index is not ready.
21243//
21244func (c *IoT) SearchIndex(input *SearchIndexInput) (*SearchIndexOutput, error) {
21245	req, out := c.SearchIndexRequest(input)
21246	return out, req.Send()
21247}
21248
21249// SearchIndexWithContext is the same as SearchIndex with the addition of
21250// the ability to pass a context and additional request options.
21251//
21252// See SearchIndex for details on how to use this API operation.
21253//
21254// The context must be non-nil and will be used for request cancellation. If
21255// the context is nil a panic will occur. In the future the SDK may create
21256// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21257// for more information on using Contexts.
21258func (c *IoT) SearchIndexWithContext(ctx aws.Context, input *SearchIndexInput, opts ...request.Option) (*SearchIndexOutput, error) {
21259	req, out := c.SearchIndexRequest(input)
21260	req.SetContext(ctx)
21261	req.ApplyOptions(opts...)
21262	return out, req.Send()
21263}
21264
21265const opSetDefaultAuthorizer = "SetDefaultAuthorizer"
21266
21267// SetDefaultAuthorizerRequest generates a "aws/request.Request" representing the
21268// client's request for the SetDefaultAuthorizer operation. The "output" return
21269// value will be populated with the request's response once the request completes
21270// successfully.
21271//
21272// Use "Send" method on the returned Request to send the API call to the service.
21273// the "output" return value is not valid until after Send returns without error.
21274//
21275// See SetDefaultAuthorizer for more information on using the SetDefaultAuthorizer
21276// API call, and error handling.
21277//
21278// This method is useful when you want to inject custom logic or configuration
21279// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21280//
21281//
21282//    // Example sending a request using the SetDefaultAuthorizerRequest method.
21283//    req, resp := client.SetDefaultAuthorizerRequest(params)
21284//
21285//    err := req.Send()
21286//    if err == nil { // resp is now filled
21287//        fmt.Println(resp)
21288//    }
21289func (c *IoT) SetDefaultAuthorizerRequest(input *SetDefaultAuthorizerInput) (req *request.Request, output *SetDefaultAuthorizerOutput) {
21290	op := &request.Operation{
21291		Name:       opSetDefaultAuthorizer,
21292		HTTPMethod: "POST",
21293		HTTPPath:   "/default-authorizer",
21294	}
21295
21296	if input == nil {
21297		input = &SetDefaultAuthorizerInput{}
21298	}
21299
21300	output = &SetDefaultAuthorizerOutput{}
21301	req = c.newRequest(op, input, output)
21302	return
21303}
21304
21305// SetDefaultAuthorizer API operation for AWS IoT.
21306//
21307// Sets the default authorizer. This will be used if a websocket connection
21308// is made without specifying an authorizer.
21309//
21310// Requires permission to access the SetDefaultAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21311// action.
21312//
21313// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21314// with awserr.Error's Code and Message methods to get detailed information about
21315// the error.
21316//
21317// See the AWS API reference guide for AWS IoT's
21318// API operation SetDefaultAuthorizer for usage and error information.
21319//
21320// Returned Error Types:
21321//   * ResourceNotFoundException
21322//   The specified resource does not exist.
21323//
21324//   * InvalidRequestException
21325//   The request is not valid.
21326//
21327//   * ThrottlingException
21328//   The rate exceeds the limit.
21329//
21330//   * UnauthorizedException
21331//   You are not authorized to perform this operation.
21332//
21333//   * ServiceUnavailableException
21334//   The service is temporarily unavailable.
21335//
21336//   * InternalFailureException
21337//   An unexpected error has occurred.
21338//
21339//   * ResourceAlreadyExistsException
21340//   The resource already exists.
21341//
21342func (c *IoT) SetDefaultAuthorizer(input *SetDefaultAuthorizerInput) (*SetDefaultAuthorizerOutput, error) {
21343	req, out := c.SetDefaultAuthorizerRequest(input)
21344	return out, req.Send()
21345}
21346
21347// SetDefaultAuthorizerWithContext is the same as SetDefaultAuthorizer with the addition of
21348// the ability to pass a context and additional request options.
21349//
21350// See SetDefaultAuthorizer for details on how to use this API operation.
21351//
21352// The context must be non-nil and will be used for request cancellation. If
21353// the context is nil a panic will occur. In the future the SDK may create
21354// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21355// for more information on using Contexts.
21356func (c *IoT) SetDefaultAuthorizerWithContext(ctx aws.Context, input *SetDefaultAuthorizerInput, opts ...request.Option) (*SetDefaultAuthorizerOutput, error) {
21357	req, out := c.SetDefaultAuthorizerRequest(input)
21358	req.SetContext(ctx)
21359	req.ApplyOptions(opts...)
21360	return out, req.Send()
21361}
21362
21363const opSetDefaultPolicyVersion = "SetDefaultPolicyVersion"
21364
21365// SetDefaultPolicyVersionRequest generates a "aws/request.Request" representing the
21366// client's request for the SetDefaultPolicyVersion operation. The "output" return
21367// value will be populated with the request's response once the request completes
21368// successfully.
21369//
21370// Use "Send" method on the returned Request to send the API call to the service.
21371// the "output" return value is not valid until after Send returns without error.
21372//
21373// See SetDefaultPolicyVersion for more information on using the SetDefaultPolicyVersion
21374// API call, and error handling.
21375//
21376// This method is useful when you want to inject custom logic or configuration
21377// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21378//
21379//
21380//    // Example sending a request using the SetDefaultPolicyVersionRequest method.
21381//    req, resp := client.SetDefaultPolicyVersionRequest(params)
21382//
21383//    err := req.Send()
21384//    if err == nil { // resp is now filled
21385//        fmt.Println(resp)
21386//    }
21387func (c *IoT) SetDefaultPolicyVersionRequest(input *SetDefaultPolicyVersionInput) (req *request.Request, output *SetDefaultPolicyVersionOutput) {
21388	op := &request.Operation{
21389		Name:       opSetDefaultPolicyVersion,
21390		HTTPMethod: "PATCH",
21391		HTTPPath:   "/policies/{policyName}/version/{policyVersionId}",
21392	}
21393
21394	if input == nil {
21395		input = &SetDefaultPolicyVersionInput{}
21396	}
21397
21398	output = &SetDefaultPolicyVersionOutput{}
21399	req = c.newRequest(op, input, output)
21400	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21401	return
21402}
21403
21404// SetDefaultPolicyVersion API operation for AWS IoT.
21405//
21406// Sets the specified version of the specified policy as the policy's default
21407// (operative) version. This action affects all certificates to which the policy
21408// is attached. To list the principals the policy is attached to, use the ListPrincipalPolicies
21409// action.
21410//
21411// Requires permission to access the SetDefaultPolicyVersion (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21412// action.
21413//
21414// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21415// with awserr.Error's Code and Message methods to get detailed information about
21416// the error.
21417//
21418// See the AWS API reference guide for AWS IoT's
21419// API operation SetDefaultPolicyVersion for usage and error information.
21420//
21421// Returned Error Types:
21422//   * ResourceNotFoundException
21423//   The specified resource does not exist.
21424//
21425//   * InvalidRequestException
21426//   The request is not valid.
21427//
21428//   * ThrottlingException
21429//   The rate exceeds the limit.
21430//
21431//   * UnauthorizedException
21432//   You are not authorized to perform this operation.
21433//
21434//   * ServiceUnavailableException
21435//   The service is temporarily unavailable.
21436//
21437//   * InternalFailureException
21438//   An unexpected error has occurred.
21439//
21440func (c *IoT) SetDefaultPolicyVersion(input *SetDefaultPolicyVersionInput) (*SetDefaultPolicyVersionOutput, error) {
21441	req, out := c.SetDefaultPolicyVersionRequest(input)
21442	return out, req.Send()
21443}
21444
21445// SetDefaultPolicyVersionWithContext is the same as SetDefaultPolicyVersion with the addition of
21446// the ability to pass a context and additional request options.
21447//
21448// See SetDefaultPolicyVersion for details on how to use this API operation.
21449//
21450// The context must be non-nil and will be used for request cancellation. If
21451// the context is nil a panic will occur. In the future the SDK may create
21452// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21453// for more information on using Contexts.
21454func (c *IoT) SetDefaultPolicyVersionWithContext(ctx aws.Context, input *SetDefaultPolicyVersionInput, opts ...request.Option) (*SetDefaultPolicyVersionOutput, error) {
21455	req, out := c.SetDefaultPolicyVersionRequest(input)
21456	req.SetContext(ctx)
21457	req.ApplyOptions(opts...)
21458	return out, req.Send()
21459}
21460
21461const opSetLoggingOptions = "SetLoggingOptions"
21462
21463// SetLoggingOptionsRequest generates a "aws/request.Request" representing the
21464// client's request for the SetLoggingOptions operation. The "output" return
21465// value will be populated with the request's response once the request completes
21466// successfully.
21467//
21468// Use "Send" method on the returned Request to send the API call to the service.
21469// the "output" return value is not valid until after Send returns without error.
21470//
21471// See SetLoggingOptions for more information on using the SetLoggingOptions
21472// API call, and error handling.
21473//
21474// This method is useful when you want to inject custom logic or configuration
21475// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21476//
21477//
21478//    // Example sending a request using the SetLoggingOptionsRequest method.
21479//    req, resp := client.SetLoggingOptionsRequest(params)
21480//
21481//    err := req.Send()
21482//    if err == nil { // resp is now filled
21483//        fmt.Println(resp)
21484//    }
21485func (c *IoT) SetLoggingOptionsRequest(input *SetLoggingOptionsInput) (req *request.Request, output *SetLoggingOptionsOutput) {
21486	op := &request.Operation{
21487		Name:       opSetLoggingOptions,
21488		HTTPMethod: "POST",
21489		HTTPPath:   "/loggingOptions",
21490	}
21491
21492	if input == nil {
21493		input = &SetLoggingOptionsInput{}
21494	}
21495
21496	output = &SetLoggingOptionsOutput{}
21497	req = c.newRequest(op, input, output)
21498	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21499	return
21500}
21501
21502// SetLoggingOptions API operation for AWS IoT.
21503//
21504// Sets the logging options.
21505//
21506// NOTE: use of this command is not recommended. Use SetV2LoggingOptions instead.
21507//
21508// Requires permission to access the SetLoggingOptions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21509// action.
21510//
21511// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21512// with awserr.Error's Code and Message methods to get detailed information about
21513// the error.
21514//
21515// See the AWS API reference guide for AWS IoT's
21516// API operation SetLoggingOptions for usage and error information.
21517//
21518// Returned Error Types:
21519//   * InternalException
21520//   An unexpected error has occurred.
21521//
21522//   * InvalidRequestException
21523//   The request is not valid.
21524//
21525//   * ServiceUnavailableException
21526//   The service is temporarily unavailable.
21527//
21528func (c *IoT) SetLoggingOptions(input *SetLoggingOptionsInput) (*SetLoggingOptionsOutput, error) {
21529	req, out := c.SetLoggingOptionsRequest(input)
21530	return out, req.Send()
21531}
21532
21533// SetLoggingOptionsWithContext is the same as SetLoggingOptions with the addition of
21534// the ability to pass a context and additional request options.
21535//
21536// See SetLoggingOptions for details on how to use this API operation.
21537//
21538// The context must be non-nil and will be used for request cancellation. If
21539// the context is nil a panic will occur. In the future the SDK may create
21540// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21541// for more information on using Contexts.
21542func (c *IoT) SetLoggingOptionsWithContext(ctx aws.Context, input *SetLoggingOptionsInput, opts ...request.Option) (*SetLoggingOptionsOutput, error) {
21543	req, out := c.SetLoggingOptionsRequest(input)
21544	req.SetContext(ctx)
21545	req.ApplyOptions(opts...)
21546	return out, req.Send()
21547}
21548
21549const opSetV2LoggingLevel = "SetV2LoggingLevel"
21550
21551// SetV2LoggingLevelRequest generates a "aws/request.Request" representing the
21552// client's request for the SetV2LoggingLevel operation. The "output" return
21553// value will be populated with the request's response once the request completes
21554// successfully.
21555//
21556// Use "Send" method on the returned Request to send the API call to the service.
21557// the "output" return value is not valid until after Send returns without error.
21558//
21559// See SetV2LoggingLevel for more information on using the SetV2LoggingLevel
21560// API call, and error handling.
21561//
21562// This method is useful when you want to inject custom logic or configuration
21563// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21564//
21565//
21566//    // Example sending a request using the SetV2LoggingLevelRequest method.
21567//    req, resp := client.SetV2LoggingLevelRequest(params)
21568//
21569//    err := req.Send()
21570//    if err == nil { // resp is now filled
21571//        fmt.Println(resp)
21572//    }
21573func (c *IoT) SetV2LoggingLevelRequest(input *SetV2LoggingLevelInput) (req *request.Request, output *SetV2LoggingLevelOutput) {
21574	op := &request.Operation{
21575		Name:       opSetV2LoggingLevel,
21576		HTTPMethod: "POST",
21577		HTTPPath:   "/v2LoggingLevel",
21578	}
21579
21580	if input == nil {
21581		input = &SetV2LoggingLevelInput{}
21582	}
21583
21584	output = &SetV2LoggingLevelOutput{}
21585	req = c.newRequest(op, input, output)
21586	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21587	return
21588}
21589
21590// SetV2LoggingLevel API operation for AWS IoT.
21591//
21592// Sets the logging level.
21593//
21594// Requires permission to access the SetV2LoggingLevel (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21595// action.
21596//
21597// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21598// with awserr.Error's Code and Message methods to get detailed information about
21599// the error.
21600//
21601// See the AWS API reference guide for AWS IoT's
21602// API operation SetV2LoggingLevel for usage and error information.
21603//
21604// Returned Error Types:
21605//   * InternalException
21606//   An unexpected error has occurred.
21607//
21608//   * NotConfiguredException
21609//   The resource is not configured.
21610//
21611//   * InvalidRequestException
21612//   The request is not valid.
21613//
21614//   * ServiceUnavailableException
21615//   The service is temporarily unavailable.
21616//
21617//   * LimitExceededException
21618//   A limit has been exceeded.
21619//
21620func (c *IoT) SetV2LoggingLevel(input *SetV2LoggingLevelInput) (*SetV2LoggingLevelOutput, error) {
21621	req, out := c.SetV2LoggingLevelRequest(input)
21622	return out, req.Send()
21623}
21624
21625// SetV2LoggingLevelWithContext is the same as SetV2LoggingLevel with the addition of
21626// the ability to pass a context and additional request options.
21627//
21628// See SetV2LoggingLevel for details on how to use this API operation.
21629//
21630// The context must be non-nil and will be used for request cancellation. If
21631// the context is nil a panic will occur. In the future the SDK may create
21632// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21633// for more information on using Contexts.
21634func (c *IoT) SetV2LoggingLevelWithContext(ctx aws.Context, input *SetV2LoggingLevelInput, opts ...request.Option) (*SetV2LoggingLevelOutput, error) {
21635	req, out := c.SetV2LoggingLevelRequest(input)
21636	req.SetContext(ctx)
21637	req.ApplyOptions(opts...)
21638	return out, req.Send()
21639}
21640
21641const opSetV2LoggingOptions = "SetV2LoggingOptions"
21642
21643// SetV2LoggingOptionsRequest generates a "aws/request.Request" representing the
21644// client's request for the SetV2LoggingOptions operation. The "output" return
21645// value will be populated with the request's response once the request completes
21646// successfully.
21647//
21648// Use "Send" method on the returned Request to send the API call to the service.
21649// the "output" return value is not valid until after Send returns without error.
21650//
21651// See SetV2LoggingOptions for more information on using the SetV2LoggingOptions
21652// API call, and error handling.
21653//
21654// This method is useful when you want to inject custom logic or configuration
21655// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21656//
21657//
21658//    // Example sending a request using the SetV2LoggingOptionsRequest method.
21659//    req, resp := client.SetV2LoggingOptionsRequest(params)
21660//
21661//    err := req.Send()
21662//    if err == nil { // resp is now filled
21663//        fmt.Println(resp)
21664//    }
21665func (c *IoT) SetV2LoggingOptionsRequest(input *SetV2LoggingOptionsInput) (req *request.Request, output *SetV2LoggingOptionsOutput) {
21666	op := &request.Operation{
21667		Name:       opSetV2LoggingOptions,
21668		HTTPMethod: "POST",
21669		HTTPPath:   "/v2LoggingOptions",
21670	}
21671
21672	if input == nil {
21673		input = &SetV2LoggingOptionsInput{}
21674	}
21675
21676	output = &SetV2LoggingOptionsOutput{}
21677	req = c.newRequest(op, input, output)
21678	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
21679	return
21680}
21681
21682// SetV2LoggingOptions API operation for AWS IoT.
21683//
21684// Sets the logging options for the V2 logging service.
21685//
21686// Requires permission to access the SetV2LoggingOptions (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21687// action.
21688//
21689// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21690// with awserr.Error's Code and Message methods to get detailed information about
21691// the error.
21692//
21693// See the AWS API reference guide for AWS IoT's
21694// API operation SetV2LoggingOptions for usage and error information.
21695//
21696// Returned Error Types:
21697//   * InternalException
21698//   An unexpected error has occurred.
21699//
21700//   * InvalidRequestException
21701//   The request is not valid.
21702//
21703//   * ServiceUnavailableException
21704//   The service is temporarily unavailable.
21705//
21706func (c *IoT) SetV2LoggingOptions(input *SetV2LoggingOptionsInput) (*SetV2LoggingOptionsOutput, error) {
21707	req, out := c.SetV2LoggingOptionsRequest(input)
21708	return out, req.Send()
21709}
21710
21711// SetV2LoggingOptionsWithContext is the same as SetV2LoggingOptions with the addition of
21712// the ability to pass a context and additional request options.
21713//
21714// See SetV2LoggingOptions for details on how to use this API operation.
21715//
21716// The context must be non-nil and will be used for request cancellation. If
21717// the context is nil a panic will occur. In the future the SDK may create
21718// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21719// for more information on using Contexts.
21720func (c *IoT) SetV2LoggingOptionsWithContext(ctx aws.Context, input *SetV2LoggingOptionsInput, opts ...request.Option) (*SetV2LoggingOptionsOutput, error) {
21721	req, out := c.SetV2LoggingOptionsRequest(input)
21722	req.SetContext(ctx)
21723	req.ApplyOptions(opts...)
21724	return out, req.Send()
21725}
21726
21727const opStartAuditMitigationActionsTask = "StartAuditMitigationActionsTask"
21728
21729// StartAuditMitigationActionsTaskRequest generates a "aws/request.Request" representing the
21730// client's request for the StartAuditMitigationActionsTask operation. The "output" return
21731// value will be populated with the request's response once the request completes
21732// successfully.
21733//
21734// Use "Send" method on the returned Request to send the API call to the service.
21735// the "output" return value is not valid until after Send returns without error.
21736//
21737// See StartAuditMitigationActionsTask for more information on using the StartAuditMitigationActionsTask
21738// API call, and error handling.
21739//
21740// This method is useful when you want to inject custom logic or configuration
21741// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21742//
21743//
21744//    // Example sending a request using the StartAuditMitigationActionsTaskRequest method.
21745//    req, resp := client.StartAuditMitigationActionsTaskRequest(params)
21746//
21747//    err := req.Send()
21748//    if err == nil { // resp is now filled
21749//        fmt.Println(resp)
21750//    }
21751func (c *IoT) StartAuditMitigationActionsTaskRequest(input *StartAuditMitigationActionsTaskInput) (req *request.Request, output *StartAuditMitigationActionsTaskOutput) {
21752	op := &request.Operation{
21753		Name:       opStartAuditMitigationActionsTask,
21754		HTTPMethod: "POST",
21755		HTTPPath:   "/audit/mitigationactions/tasks/{taskId}",
21756	}
21757
21758	if input == nil {
21759		input = &StartAuditMitigationActionsTaskInput{}
21760	}
21761
21762	output = &StartAuditMitigationActionsTaskOutput{}
21763	req = c.newRequest(op, input, output)
21764	return
21765}
21766
21767// StartAuditMitigationActionsTask API operation for AWS IoT.
21768//
21769// Starts a task that applies a set of mitigation actions to the specified target.
21770//
21771// Requires permission to access the StartAuditMitigationActionsTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21772// action.
21773//
21774// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21775// with awserr.Error's Code and Message methods to get detailed information about
21776// the error.
21777//
21778// See the AWS API reference guide for AWS IoT's
21779// API operation StartAuditMitigationActionsTask for usage and error information.
21780//
21781// Returned Error Types:
21782//   * InvalidRequestException
21783//   The request is not valid.
21784//
21785//   * TaskAlreadyExistsException
21786//   This exception occurs if you attempt to start a task with the same task-id
21787//   as an existing task but with a different clientRequestToken.
21788//
21789//   * LimitExceededException
21790//   A limit has been exceeded.
21791//
21792//   * ThrottlingException
21793//   The rate exceeds the limit.
21794//
21795//   * InternalFailureException
21796//   An unexpected error has occurred.
21797//
21798func (c *IoT) StartAuditMitigationActionsTask(input *StartAuditMitigationActionsTaskInput) (*StartAuditMitigationActionsTaskOutput, error) {
21799	req, out := c.StartAuditMitigationActionsTaskRequest(input)
21800	return out, req.Send()
21801}
21802
21803// StartAuditMitigationActionsTaskWithContext is the same as StartAuditMitigationActionsTask with the addition of
21804// the ability to pass a context and additional request options.
21805//
21806// See StartAuditMitigationActionsTask for details on how to use this API operation.
21807//
21808// The context must be non-nil and will be used for request cancellation. If
21809// the context is nil a panic will occur. In the future the SDK may create
21810// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21811// for more information on using Contexts.
21812func (c *IoT) StartAuditMitigationActionsTaskWithContext(ctx aws.Context, input *StartAuditMitigationActionsTaskInput, opts ...request.Option) (*StartAuditMitigationActionsTaskOutput, error) {
21813	req, out := c.StartAuditMitigationActionsTaskRequest(input)
21814	req.SetContext(ctx)
21815	req.ApplyOptions(opts...)
21816	return out, req.Send()
21817}
21818
21819const opStartDetectMitigationActionsTask = "StartDetectMitigationActionsTask"
21820
21821// StartDetectMitigationActionsTaskRequest generates a "aws/request.Request" representing the
21822// client's request for the StartDetectMitigationActionsTask operation. The "output" return
21823// value will be populated with the request's response once the request completes
21824// successfully.
21825//
21826// Use "Send" method on the returned Request to send the API call to the service.
21827// the "output" return value is not valid until after Send returns without error.
21828//
21829// See StartDetectMitigationActionsTask for more information on using the StartDetectMitigationActionsTask
21830// API call, and error handling.
21831//
21832// This method is useful when you want to inject custom logic or configuration
21833// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21834//
21835//
21836//    // Example sending a request using the StartDetectMitigationActionsTaskRequest method.
21837//    req, resp := client.StartDetectMitigationActionsTaskRequest(params)
21838//
21839//    err := req.Send()
21840//    if err == nil { // resp is now filled
21841//        fmt.Println(resp)
21842//    }
21843func (c *IoT) StartDetectMitigationActionsTaskRequest(input *StartDetectMitigationActionsTaskInput) (req *request.Request, output *StartDetectMitigationActionsTaskOutput) {
21844	op := &request.Operation{
21845		Name:       opStartDetectMitigationActionsTask,
21846		HTTPMethod: "PUT",
21847		HTTPPath:   "/detect/mitigationactions/tasks/{taskId}",
21848	}
21849
21850	if input == nil {
21851		input = &StartDetectMitigationActionsTaskInput{}
21852	}
21853
21854	output = &StartDetectMitigationActionsTaskOutput{}
21855	req = c.newRequest(op, input, output)
21856	return
21857}
21858
21859// StartDetectMitigationActionsTask API operation for AWS IoT.
21860//
21861// Starts a Device Defender ML Detect mitigation actions task.
21862//
21863// Requires permission to access the StartDetectMitigationActionsTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21864// action.
21865//
21866// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21867// with awserr.Error's Code and Message methods to get detailed information about
21868// the error.
21869//
21870// See the AWS API reference guide for AWS IoT's
21871// API operation StartDetectMitigationActionsTask for usage and error information.
21872//
21873// Returned Error Types:
21874//   * InvalidRequestException
21875//   The request is not valid.
21876//
21877//   * TaskAlreadyExistsException
21878//   This exception occurs if you attempt to start a task with the same task-id
21879//   as an existing task but with a different clientRequestToken.
21880//
21881//   * LimitExceededException
21882//   A limit has been exceeded.
21883//
21884//   * ThrottlingException
21885//   The rate exceeds the limit.
21886//
21887//   * InternalFailureException
21888//   An unexpected error has occurred.
21889//
21890func (c *IoT) StartDetectMitigationActionsTask(input *StartDetectMitigationActionsTaskInput) (*StartDetectMitigationActionsTaskOutput, error) {
21891	req, out := c.StartDetectMitigationActionsTaskRequest(input)
21892	return out, req.Send()
21893}
21894
21895// StartDetectMitigationActionsTaskWithContext is the same as StartDetectMitigationActionsTask with the addition of
21896// the ability to pass a context and additional request options.
21897//
21898// See StartDetectMitigationActionsTask for details on how to use this API operation.
21899//
21900// The context must be non-nil and will be used for request cancellation. If
21901// the context is nil a panic will occur. In the future the SDK may create
21902// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21903// for more information on using Contexts.
21904func (c *IoT) StartDetectMitigationActionsTaskWithContext(ctx aws.Context, input *StartDetectMitigationActionsTaskInput, opts ...request.Option) (*StartDetectMitigationActionsTaskOutput, error) {
21905	req, out := c.StartDetectMitigationActionsTaskRequest(input)
21906	req.SetContext(ctx)
21907	req.ApplyOptions(opts...)
21908	return out, req.Send()
21909}
21910
21911const opStartOnDemandAuditTask = "StartOnDemandAuditTask"
21912
21913// StartOnDemandAuditTaskRequest generates a "aws/request.Request" representing the
21914// client's request for the StartOnDemandAuditTask operation. The "output" return
21915// value will be populated with the request's response once the request completes
21916// successfully.
21917//
21918// Use "Send" method on the returned Request to send the API call to the service.
21919// the "output" return value is not valid until after Send returns without error.
21920//
21921// See StartOnDemandAuditTask for more information on using the StartOnDemandAuditTask
21922// API call, and error handling.
21923//
21924// This method is useful when you want to inject custom logic or configuration
21925// into the SDK's request lifecycle. Such as custom headers, or retry logic.
21926//
21927//
21928//    // Example sending a request using the StartOnDemandAuditTaskRequest method.
21929//    req, resp := client.StartOnDemandAuditTaskRequest(params)
21930//
21931//    err := req.Send()
21932//    if err == nil { // resp is now filled
21933//        fmt.Println(resp)
21934//    }
21935func (c *IoT) StartOnDemandAuditTaskRequest(input *StartOnDemandAuditTaskInput) (req *request.Request, output *StartOnDemandAuditTaskOutput) {
21936	op := &request.Operation{
21937		Name:       opStartOnDemandAuditTask,
21938		HTTPMethod: "POST",
21939		HTTPPath:   "/audit/tasks",
21940	}
21941
21942	if input == nil {
21943		input = &StartOnDemandAuditTaskInput{}
21944	}
21945
21946	output = &StartOnDemandAuditTaskOutput{}
21947	req = c.newRequest(op, input, output)
21948	return
21949}
21950
21951// StartOnDemandAuditTask API operation for AWS IoT.
21952//
21953// Starts an on-demand Device Defender audit.
21954//
21955// Requires permission to access the StartOnDemandAuditTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
21956// action.
21957//
21958// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
21959// with awserr.Error's Code and Message methods to get detailed information about
21960// the error.
21961//
21962// See the AWS API reference guide for AWS IoT's
21963// API operation StartOnDemandAuditTask for usage and error information.
21964//
21965// Returned Error Types:
21966//   * InvalidRequestException
21967//   The request is not valid.
21968//
21969//   * ThrottlingException
21970//   The rate exceeds the limit.
21971//
21972//   * InternalFailureException
21973//   An unexpected error has occurred.
21974//
21975//   * LimitExceededException
21976//   A limit has been exceeded.
21977//
21978func (c *IoT) StartOnDemandAuditTask(input *StartOnDemandAuditTaskInput) (*StartOnDemandAuditTaskOutput, error) {
21979	req, out := c.StartOnDemandAuditTaskRequest(input)
21980	return out, req.Send()
21981}
21982
21983// StartOnDemandAuditTaskWithContext is the same as StartOnDemandAuditTask with the addition of
21984// the ability to pass a context and additional request options.
21985//
21986// See StartOnDemandAuditTask for details on how to use this API operation.
21987//
21988// The context must be non-nil and will be used for request cancellation. If
21989// the context is nil a panic will occur. In the future the SDK may create
21990// sub-contexts for http.Requests. See https://golang.org/pkg/context/
21991// for more information on using Contexts.
21992func (c *IoT) StartOnDemandAuditTaskWithContext(ctx aws.Context, input *StartOnDemandAuditTaskInput, opts ...request.Option) (*StartOnDemandAuditTaskOutput, error) {
21993	req, out := c.StartOnDemandAuditTaskRequest(input)
21994	req.SetContext(ctx)
21995	req.ApplyOptions(opts...)
21996	return out, req.Send()
21997}
21998
21999const opStartThingRegistrationTask = "StartThingRegistrationTask"
22000
22001// StartThingRegistrationTaskRequest generates a "aws/request.Request" representing the
22002// client's request for the StartThingRegistrationTask operation. The "output" return
22003// value will be populated with the request's response once the request completes
22004// successfully.
22005//
22006// Use "Send" method on the returned Request to send the API call to the service.
22007// the "output" return value is not valid until after Send returns without error.
22008//
22009// See StartThingRegistrationTask for more information on using the StartThingRegistrationTask
22010// API call, and error handling.
22011//
22012// This method is useful when you want to inject custom logic or configuration
22013// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22014//
22015//
22016//    // Example sending a request using the StartThingRegistrationTaskRequest method.
22017//    req, resp := client.StartThingRegistrationTaskRequest(params)
22018//
22019//    err := req.Send()
22020//    if err == nil { // resp is now filled
22021//        fmt.Println(resp)
22022//    }
22023func (c *IoT) StartThingRegistrationTaskRequest(input *StartThingRegistrationTaskInput) (req *request.Request, output *StartThingRegistrationTaskOutput) {
22024	op := &request.Operation{
22025		Name:       opStartThingRegistrationTask,
22026		HTTPMethod: "POST",
22027		HTTPPath:   "/thing-registration-tasks",
22028	}
22029
22030	if input == nil {
22031		input = &StartThingRegistrationTaskInput{}
22032	}
22033
22034	output = &StartThingRegistrationTaskOutput{}
22035	req = c.newRequest(op, input, output)
22036	return
22037}
22038
22039// StartThingRegistrationTask API operation for AWS IoT.
22040//
22041// Creates a bulk thing provisioning task.
22042//
22043// Requires permission to access the StartThingRegistrationTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22044// action.
22045//
22046// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22047// with awserr.Error's Code and Message methods to get detailed information about
22048// the error.
22049//
22050// See the AWS API reference guide for AWS IoT's
22051// API operation StartThingRegistrationTask for usage and error information.
22052//
22053// Returned Error Types:
22054//   * InvalidRequestException
22055//   The request is not valid.
22056//
22057//   * ThrottlingException
22058//   The rate exceeds the limit.
22059//
22060//   * UnauthorizedException
22061//   You are not authorized to perform this operation.
22062//
22063//   * InternalFailureException
22064//   An unexpected error has occurred.
22065//
22066func (c *IoT) StartThingRegistrationTask(input *StartThingRegistrationTaskInput) (*StartThingRegistrationTaskOutput, error) {
22067	req, out := c.StartThingRegistrationTaskRequest(input)
22068	return out, req.Send()
22069}
22070
22071// StartThingRegistrationTaskWithContext is the same as StartThingRegistrationTask with the addition of
22072// the ability to pass a context and additional request options.
22073//
22074// See StartThingRegistrationTask for details on how to use this API operation.
22075//
22076// The context must be non-nil and will be used for request cancellation. If
22077// the context is nil a panic will occur. In the future the SDK may create
22078// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22079// for more information on using Contexts.
22080func (c *IoT) StartThingRegistrationTaskWithContext(ctx aws.Context, input *StartThingRegistrationTaskInput, opts ...request.Option) (*StartThingRegistrationTaskOutput, error) {
22081	req, out := c.StartThingRegistrationTaskRequest(input)
22082	req.SetContext(ctx)
22083	req.ApplyOptions(opts...)
22084	return out, req.Send()
22085}
22086
22087const opStopThingRegistrationTask = "StopThingRegistrationTask"
22088
22089// StopThingRegistrationTaskRequest generates a "aws/request.Request" representing the
22090// client's request for the StopThingRegistrationTask operation. The "output" return
22091// value will be populated with the request's response once the request completes
22092// successfully.
22093//
22094// Use "Send" method on the returned Request to send the API call to the service.
22095// the "output" return value is not valid until after Send returns without error.
22096//
22097// See StopThingRegistrationTask for more information on using the StopThingRegistrationTask
22098// API call, and error handling.
22099//
22100// This method is useful when you want to inject custom logic or configuration
22101// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22102//
22103//
22104//    // Example sending a request using the StopThingRegistrationTaskRequest method.
22105//    req, resp := client.StopThingRegistrationTaskRequest(params)
22106//
22107//    err := req.Send()
22108//    if err == nil { // resp is now filled
22109//        fmt.Println(resp)
22110//    }
22111func (c *IoT) StopThingRegistrationTaskRequest(input *StopThingRegistrationTaskInput) (req *request.Request, output *StopThingRegistrationTaskOutput) {
22112	op := &request.Operation{
22113		Name:       opStopThingRegistrationTask,
22114		HTTPMethod: "PUT",
22115		HTTPPath:   "/thing-registration-tasks/{taskId}/cancel",
22116	}
22117
22118	if input == nil {
22119		input = &StopThingRegistrationTaskInput{}
22120	}
22121
22122	output = &StopThingRegistrationTaskOutput{}
22123	req = c.newRequest(op, input, output)
22124	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22125	return
22126}
22127
22128// StopThingRegistrationTask API operation for AWS IoT.
22129//
22130// Cancels a bulk thing provisioning task.
22131//
22132// Requires permission to access the StopThingRegistrationTask (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22133// action.
22134//
22135// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22136// with awserr.Error's Code and Message methods to get detailed information about
22137// the error.
22138//
22139// See the AWS API reference guide for AWS IoT's
22140// API operation StopThingRegistrationTask for usage and error information.
22141//
22142// Returned Error Types:
22143//   * InvalidRequestException
22144//   The request is not valid.
22145//
22146//   * ThrottlingException
22147//   The rate exceeds the limit.
22148//
22149//   * UnauthorizedException
22150//   You are not authorized to perform this operation.
22151//
22152//   * InternalFailureException
22153//   An unexpected error has occurred.
22154//
22155//   * ResourceNotFoundException
22156//   The specified resource does not exist.
22157//
22158func (c *IoT) StopThingRegistrationTask(input *StopThingRegistrationTaskInput) (*StopThingRegistrationTaskOutput, error) {
22159	req, out := c.StopThingRegistrationTaskRequest(input)
22160	return out, req.Send()
22161}
22162
22163// StopThingRegistrationTaskWithContext is the same as StopThingRegistrationTask with the addition of
22164// the ability to pass a context and additional request options.
22165//
22166// See StopThingRegistrationTask for details on how to use this API operation.
22167//
22168// The context must be non-nil and will be used for request cancellation. If
22169// the context is nil a panic will occur. In the future the SDK may create
22170// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22171// for more information on using Contexts.
22172func (c *IoT) StopThingRegistrationTaskWithContext(ctx aws.Context, input *StopThingRegistrationTaskInput, opts ...request.Option) (*StopThingRegistrationTaskOutput, error) {
22173	req, out := c.StopThingRegistrationTaskRequest(input)
22174	req.SetContext(ctx)
22175	req.ApplyOptions(opts...)
22176	return out, req.Send()
22177}
22178
22179const opTagResource = "TagResource"
22180
22181// TagResourceRequest generates a "aws/request.Request" representing the
22182// client's request for the TagResource operation. The "output" return
22183// value will be populated with the request's response once the request completes
22184// successfully.
22185//
22186// Use "Send" method on the returned Request to send the API call to the service.
22187// the "output" return value is not valid until after Send returns without error.
22188//
22189// See TagResource for more information on using the TagResource
22190// API call, and error handling.
22191//
22192// This method is useful when you want to inject custom logic or configuration
22193// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22194//
22195//
22196//    // Example sending a request using the TagResourceRequest method.
22197//    req, resp := client.TagResourceRequest(params)
22198//
22199//    err := req.Send()
22200//    if err == nil { // resp is now filled
22201//        fmt.Println(resp)
22202//    }
22203func (c *IoT) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
22204	op := &request.Operation{
22205		Name:       opTagResource,
22206		HTTPMethod: "POST",
22207		HTTPPath:   "/tags",
22208	}
22209
22210	if input == nil {
22211		input = &TagResourceInput{}
22212	}
22213
22214	output = &TagResourceOutput{}
22215	req = c.newRequest(op, input, output)
22216	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22217	return
22218}
22219
22220// TagResource API operation for AWS IoT.
22221//
22222// Adds to or modifies the tags of the given resource. Tags are metadata which
22223// can be used to manage a resource.
22224//
22225// Requires permission to access the TagResource (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22226// action.
22227//
22228// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22229// with awserr.Error's Code and Message methods to get detailed information about
22230// the error.
22231//
22232// See the AWS API reference guide for AWS IoT's
22233// API operation TagResource for usage and error information.
22234//
22235// Returned Error Types:
22236//   * InvalidRequestException
22237//   The request is not valid.
22238//
22239//   * InternalFailureException
22240//   An unexpected error has occurred.
22241//
22242//   * ResourceNotFoundException
22243//   The specified resource does not exist.
22244//
22245//   * ThrottlingException
22246//   The rate exceeds the limit.
22247//
22248//   * LimitExceededException
22249//   A limit has been exceeded.
22250//
22251func (c *IoT) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
22252	req, out := c.TagResourceRequest(input)
22253	return out, req.Send()
22254}
22255
22256// TagResourceWithContext is the same as TagResource with the addition of
22257// the ability to pass a context and additional request options.
22258//
22259// See TagResource for details on how to use this API operation.
22260//
22261// The context must be non-nil and will be used for request cancellation. If
22262// the context is nil a panic will occur. In the future the SDK may create
22263// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22264// for more information on using Contexts.
22265func (c *IoT) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
22266	req, out := c.TagResourceRequest(input)
22267	req.SetContext(ctx)
22268	req.ApplyOptions(opts...)
22269	return out, req.Send()
22270}
22271
22272const opTestAuthorization = "TestAuthorization"
22273
22274// TestAuthorizationRequest generates a "aws/request.Request" representing the
22275// client's request for the TestAuthorization operation. The "output" return
22276// value will be populated with the request's response once the request completes
22277// successfully.
22278//
22279// Use "Send" method on the returned Request to send the API call to the service.
22280// the "output" return value is not valid until after Send returns without error.
22281//
22282// See TestAuthorization for more information on using the TestAuthorization
22283// API call, and error handling.
22284//
22285// This method is useful when you want to inject custom logic or configuration
22286// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22287//
22288//
22289//    // Example sending a request using the TestAuthorizationRequest method.
22290//    req, resp := client.TestAuthorizationRequest(params)
22291//
22292//    err := req.Send()
22293//    if err == nil { // resp is now filled
22294//        fmt.Println(resp)
22295//    }
22296func (c *IoT) TestAuthorizationRequest(input *TestAuthorizationInput) (req *request.Request, output *TestAuthorizationOutput) {
22297	op := &request.Operation{
22298		Name:       opTestAuthorization,
22299		HTTPMethod: "POST",
22300		HTTPPath:   "/test-authorization",
22301	}
22302
22303	if input == nil {
22304		input = &TestAuthorizationInput{}
22305	}
22306
22307	output = &TestAuthorizationOutput{}
22308	req = c.newRequest(op, input, output)
22309	return
22310}
22311
22312// TestAuthorization API operation for AWS IoT.
22313//
22314// Tests if a specified principal is authorized to perform an IoT action on
22315// a specified resource. Use this to test and debug the authorization behavior
22316// of devices that connect to the IoT device gateway.
22317//
22318// Requires permission to access the TestAuthorization (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22319// action.
22320//
22321// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22322// with awserr.Error's Code and Message methods to get detailed information about
22323// the error.
22324//
22325// See the AWS API reference guide for AWS IoT's
22326// API operation TestAuthorization for usage and error information.
22327//
22328// Returned Error Types:
22329//   * ResourceNotFoundException
22330//   The specified resource does not exist.
22331//
22332//   * InvalidRequestException
22333//   The request is not valid.
22334//
22335//   * ThrottlingException
22336//   The rate exceeds the limit.
22337//
22338//   * UnauthorizedException
22339//   You are not authorized to perform this operation.
22340//
22341//   * ServiceUnavailableException
22342//   The service is temporarily unavailable.
22343//
22344//   * InternalFailureException
22345//   An unexpected error has occurred.
22346//
22347//   * LimitExceededException
22348//   A limit has been exceeded.
22349//
22350func (c *IoT) TestAuthorization(input *TestAuthorizationInput) (*TestAuthorizationOutput, error) {
22351	req, out := c.TestAuthorizationRequest(input)
22352	return out, req.Send()
22353}
22354
22355// TestAuthorizationWithContext is the same as TestAuthorization with the addition of
22356// the ability to pass a context and additional request options.
22357//
22358// See TestAuthorization for details on how to use this API operation.
22359//
22360// The context must be non-nil and will be used for request cancellation. If
22361// the context is nil a panic will occur. In the future the SDK may create
22362// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22363// for more information on using Contexts.
22364func (c *IoT) TestAuthorizationWithContext(ctx aws.Context, input *TestAuthorizationInput, opts ...request.Option) (*TestAuthorizationOutput, error) {
22365	req, out := c.TestAuthorizationRequest(input)
22366	req.SetContext(ctx)
22367	req.ApplyOptions(opts...)
22368	return out, req.Send()
22369}
22370
22371const opTestInvokeAuthorizer = "TestInvokeAuthorizer"
22372
22373// TestInvokeAuthorizerRequest generates a "aws/request.Request" representing the
22374// client's request for the TestInvokeAuthorizer operation. The "output" return
22375// value will be populated with the request's response once the request completes
22376// successfully.
22377//
22378// Use "Send" method on the returned Request to send the API call to the service.
22379// the "output" return value is not valid until after Send returns without error.
22380//
22381// See TestInvokeAuthorizer for more information on using the TestInvokeAuthorizer
22382// API call, and error handling.
22383//
22384// This method is useful when you want to inject custom logic or configuration
22385// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22386//
22387//
22388//    // Example sending a request using the TestInvokeAuthorizerRequest method.
22389//    req, resp := client.TestInvokeAuthorizerRequest(params)
22390//
22391//    err := req.Send()
22392//    if err == nil { // resp is now filled
22393//        fmt.Println(resp)
22394//    }
22395func (c *IoT) TestInvokeAuthorizerRequest(input *TestInvokeAuthorizerInput) (req *request.Request, output *TestInvokeAuthorizerOutput) {
22396	op := &request.Operation{
22397		Name:       opTestInvokeAuthorizer,
22398		HTTPMethod: "POST",
22399		HTTPPath:   "/authorizer/{authorizerName}/test",
22400	}
22401
22402	if input == nil {
22403		input = &TestInvokeAuthorizerInput{}
22404	}
22405
22406	output = &TestInvokeAuthorizerOutput{}
22407	req = c.newRequest(op, input, output)
22408	return
22409}
22410
22411// TestInvokeAuthorizer API operation for AWS IoT.
22412//
22413// Tests a custom authorization behavior by invoking a specified custom authorizer.
22414// Use this to test and debug the custom authorization behavior of devices that
22415// connect to the IoT device gateway.
22416//
22417// Requires permission to access the TestInvokeAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22418// action.
22419//
22420// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22421// with awserr.Error's Code and Message methods to get detailed information about
22422// the error.
22423//
22424// See the AWS API reference guide for AWS IoT's
22425// API operation TestInvokeAuthorizer for usage and error information.
22426//
22427// Returned Error Types:
22428//   * ResourceNotFoundException
22429//   The specified resource does not exist.
22430//
22431//   * InvalidRequestException
22432//   The request is not valid.
22433//
22434//   * ThrottlingException
22435//   The rate exceeds the limit.
22436//
22437//   * UnauthorizedException
22438//   You are not authorized to perform this operation.
22439//
22440//   * ServiceUnavailableException
22441//   The service is temporarily unavailable.
22442//
22443//   * InternalFailureException
22444//   An unexpected error has occurred.
22445//
22446//   * InvalidResponseException
22447//   The response is invalid.
22448//
22449func (c *IoT) TestInvokeAuthorizer(input *TestInvokeAuthorizerInput) (*TestInvokeAuthorizerOutput, error) {
22450	req, out := c.TestInvokeAuthorizerRequest(input)
22451	return out, req.Send()
22452}
22453
22454// TestInvokeAuthorizerWithContext is the same as TestInvokeAuthorizer with the addition of
22455// the ability to pass a context and additional request options.
22456//
22457// See TestInvokeAuthorizer for details on how to use this API operation.
22458//
22459// The context must be non-nil and will be used for request cancellation. If
22460// the context is nil a panic will occur. In the future the SDK may create
22461// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22462// for more information on using Contexts.
22463func (c *IoT) TestInvokeAuthorizerWithContext(ctx aws.Context, input *TestInvokeAuthorizerInput, opts ...request.Option) (*TestInvokeAuthorizerOutput, error) {
22464	req, out := c.TestInvokeAuthorizerRequest(input)
22465	req.SetContext(ctx)
22466	req.ApplyOptions(opts...)
22467	return out, req.Send()
22468}
22469
22470const opTransferCertificate = "TransferCertificate"
22471
22472// TransferCertificateRequest generates a "aws/request.Request" representing the
22473// client's request for the TransferCertificate operation. The "output" return
22474// value will be populated with the request's response once the request completes
22475// successfully.
22476//
22477// Use "Send" method on the returned Request to send the API call to the service.
22478// the "output" return value is not valid until after Send returns without error.
22479//
22480// See TransferCertificate for more information on using the TransferCertificate
22481// API call, and error handling.
22482//
22483// This method is useful when you want to inject custom logic or configuration
22484// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22485//
22486//
22487//    // Example sending a request using the TransferCertificateRequest method.
22488//    req, resp := client.TransferCertificateRequest(params)
22489//
22490//    err := req.Send()
22491//    if err == nil { // resp is now filled
22492//        fmt.Println(resp)
22493//    }
22494func (c *IoT) TransferCertificateRequest(input *TransferCertificateInput) (req *request.Request, output *TransferCertificateOutput) {
22495	op := &request.Operation{
22496		Name:       opTransferCertificate,
22497		HTTPMethod: "PATCH",
22498		HTTPPath:   "/transfer-certificate/{certificateId}",
22499	}
22500
22501	if input == nil {
22502		input = &TransferCertificateInput{}
22503	}
22504
22505	output = &TransferCertificateOutput{}
22506	req = c.newRequest(op, input, output)
22507	return
22508}
22509
22510// TransferCertificate API operation for AWS IoT.
22511//
22512// Transfers the specified certificate to the specified Amazon Web Services
22513// account.
22514//
22515// Requires permission to access the TransferCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22516// action.
22517//
22518// You can cancel the transfer until it is acknowledged by the recipient.
22519//
22520// No notification is sent to the transfer destination's account. It is up to
22521// the caller to notify the transfer target.
22522//
22523// The certificate being transferred must not be in the ACTIVE state. You can
22524// use the UpdateCertificate action to deactivate it.
22525//
22526// The certificate must not have any policies attached to it. You can use the
22527// DetachPolicy action to detach them.
22528//
22529// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22530// with awserr.Error's Code and Message methods to get detailed information about
22531// the error.
22532//
22533// See the AWS API reference guide for AWS IoT's
22534// API operation TransferCertificate for usage and error information.
22535//
22536// Returned Error Types:
22537//   * InvalidRequestException
22538//   The request is not valid.
22539//
22540//   * ResourceNotFoundException
22541//   The specified resource does not exist.
22542//
22543//   * CertificateStateException
22544//   The certificate operation is not allowed.
22545//
22546//   * TransferConflictException
22547//   You can't transfer the certificate because authorization policies are still
22548//   attached.
22549//
22550//   * ThrottlingException
22551//   The rate exceeds the limit.
22552//
22553//   * UnauthorizedException
22554//   You are not authorized to perform this operation.
22555//
22556//   * ServiceUnavailableException
22557//   The service is temporarily unavailable.
22558//
22559//   * InternalFailureException
22560//   An unexpected error has occurred.
22561//
22562func (c *IoT) TransferCertificate(input *TransferCertificateInput) (*TransferCertificateOutput, error) {
22563	req, out := c.TransferCertificateRequest(input)
22564	return out, req.Send()
22565}
22566
22567// TransferCertificateWithContext is the same as TransferCertificate with the addition of
22568// the ability to pass a context and additional request options.
22569//
22570// See TransferCertificate for details on how to use this API operation.
22571//
22572// The context must be non-nil and will be used for request cancellation. If
22573// the context is nil a panic will occur. In the future the SDK may create
22574// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22575// for more information on using Contexts.
22576func (c *IoT) TransferCertificateWithContext(ctx aws.Context, input *TransferCertificateInput, opts ...request.Option) (*TransferCertificateOutput, error) {
22577	req, out := c.TransferCertificateRequest(input)
22578	req.SetContext(ctx)
22579	req.ApplyOptions(opts...)
22580	return out, req.Send()
22581}
22582
22583const opUntagResource = "UntagResource"
22584
22585// UntagResourceRequest generates a "aws/request.Request" representing the
22586// client's request for the UntagResource operation. The "output" return
22587// value will be populated with the request's response once the request completes
22588// successfully.
22589//
22590// Use "Send" method on the returned Request to send the API call to the service.
22591// the "output" return value is not valid until after Send returns without error.
22592//
22593// See UntagResource for more information on using the UntagResource
22594// API call, and error handling.
22595//
22596// This method is useful when you want to inject custom logic or configuration
22597// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22598//
22599//
22600//    // Example sending a request using the UntagResourceRequest method.
22601//    req, resp := client.UntagResourceRequest(params)
22602//
22603//    err := req.Send()
22604//    if err == nil { // resp is now filled
22605//        fmt.Println(resp)
22606//    }
22607func (c *IoT) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
22608	op := &request.Operation{
22609		Name:       opUntagResource,
22610		HTTPMethod: "POST",
22611		HTTPPath:   "/untag",
22612	}
22613
22614	if input == nil {
22615		input = &UntagResourceInput{}
22616	}
22617
22618	output = &UntagResourceOutput{}
22619	req = c.newRequest(op, input, output)
22620	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22621	return
22622}
22623
22624// UntagResource API operation for AWS IoT.
22625//
22626// Removes the given tags (metadata) from the resource.
22627//
22628// Requires permission to access the UntagResource (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22629// action.
22630//
22631// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22632// with awserr.Error's Code and Message methods to get detailed information about
22633// the error.
22634//
22635// See the AWS API reference guide for AWS IoT's
22636// API operation UntagResource for usage and error information.
22637//
22638// Returned Error Types:
22639//   * InvalidRequestException
22640//   The request is not valid.
22641//
22642//   * InternalFailureException
22643//   An unexpected error has occurred.
22644//
22645//   * ResourceNotFoundException
22646//   The specified resource does not exist.
22647//
22648//   * ThrottlingException
22649//   The rate exceeds the limit.
22650//
22651func (c *IoT) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
22652	req, out := c.UntagResourceRequest(input)
22653	return out, req.Send()
22654}
22655
22656// UntagResourceWithContext is the same as UntagResource with the addition of
22657// the ability to pass a context and additional request options.
22658//
22659// See UntagResource for details on how to use this API operation.
22660//
22661// The context must be non-nil and will be used for request cancellation. If
22662// the context is nil a panic will occur. In the future the SDK may create
22663// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22664// for more information on using Contexts.
22665func (c *IoT) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
22666	req, out := c.UntagResourceRequest(input)
22667	req.SetContext(ctx)
22668	req.ApplyOptions(opts...)
22669	return out, req.Send()
22670}
22671
22672const opUpdateAccountAuditConfiguration = "UpdateAccountAuditConfiguration"
22673
22674// UpdateAccountAuditConfigurationRequest generates a "aws/request.Request" representing the
22675// client's request for the UpdateAccountAuditConfiguration operation. The "output" return
22676// value will be populated with the request's response once the request completes
22677// successfully.
22678//
22679// Use "Send" method on the returned Request to send the API call to the service.
22680// the "output" return value is not valid until after Send returns without error.
22681//
22682// See UpdateAccountAuditConfiguration for more information on using the UpdateAccountAuditConfiguration
22683// API call, and error handling.
22684//
22685// This method is useful when you want to inject custom logic or configuration
22686// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22687//
22688//
22689//    // Example sending a request using the UpdateAccountAuditConfigurationRequest method.
22690//    req, resp := client.UpdateAccountAuditConfigurationRequest(params)
22691//
22692//    err := req.Send()
22693//    if err == nil { // resp is now filled
22694//        fmt.Println(resp)
22695//    }
22696func (c *IoT) UpdateAccountAuditConfigurationRequest(input *UpdateAccountAuditConfigurationInput) (req *request.Request, output *UpdateAccountAuditConfigurationOutput) {
22697	op := &request.Operation{
22698		Name:       opUpdateAccountAuditConfiguration,
22699		HTTPMethod: "PATCH",
22700		HTTPPath:   "/audit/configuration",
22701	}
22702
22703	if input == nil {
22704		input = &UpdateAccountAuditConfigurationInput{}
22705	}
22706
22707	output = &UpdateAccountAuditConfigurationOutput{}
22708	req = c.newRequest(op, input, output)
22709	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22710	return
22711}
22712
22713// UpdateAccountAuditConfiguration API operation for AWS IoT.
22714//
22715// Configures or reconfigures the Device Defender audit settings for this account.
22716// Settings include how audit notifications are sent and which audit checks
22717// are enabled or disabled.
22718//
22719// Requires permission to access the UpdateAccountAuditConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22720// action.
22721//
22722// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22723// with awserr.Error's Code and Message methods to get detailed information about
22724// the error.
22725//
22726// See the AWS API reference guide for AWS IoT's
22727// API operation UpdateAccountAuditConfiguration for usage and error information.
22728//
22729// Returned Error Types:
22730//   * InvalidRequestException
22731//   The request is not valid.
22732//
22733//   * ThrottlingException
22734//   The rate exceeds the limit.
22735//
22736//   * InternalFailureException
22737//   An unexpected error has occurred.
22738//
22739func (c *IoT) UpdateAccountAuditConfiguration(input *UpdateAccountAuditConfigurationInput) (*UpdateAccountAuditConfigurationOutput, error) {
22740	req, out := c.UpdateAccountAuditConfigurationRequest(input)
22741	return out, req.Send()
22742}
22743
22744// UpdateAccountAuditConfigurationWithContext is the same as UpdateAccountAuditConfiguration with the addition of
22745// the ability to pass a context and additional request options.
22746//
22747// See UpdateAccountAuditConfiguration for details on how to use this API operation.
22748//
22749// The context must be non-nil and will be used for request cancellation. If
22750// the context is nil a panic will occur. In the future the SDK may create
22751// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22752// for more information on using Contexts.
22753func (c *IoT) UpdateAccountAuditConfigurationWithContext(ctx aws.Context, input *UpdateAccountAuditConfigurationInput, opts ...request.Option) (*UpdateAccountAuditConfigurationOutput, error) {
22754	req, out := c.UpdateAccountAuditConfigurationRequest(input)
22755	req.SetContext(ctx)
22756	req.ApplyOptions(opts...)
22757	return out, req.Send()
22758}
22759
22760const opUpdateAuditSuppression = "UpdateAuditSuppression"
22761
22762// UpdateAuditSuppressionRequest generates a "aws/request.Request" representing the
22763// client's request for the UpdateAuditSuppression operation. The "output" return
22764// value will be populated with the request's response once the request completes
22765// successfully.
22766//
22767// Use "Send" method on the returned Request to send the API call to the service.
22768// the "output" return value is not valid until after Send returns without error.
22769//
22770// See UpdateAuditSuppression for more information on using the UpdateAuditSuppression
22771// API call, and error handling.
22772//
22773// This method is useful when you want to inject custom logic or configuration
22774// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22775//
22776//
22777//    // Example sending a request using the UpdateAuditSuppressionRequest method.
22778//    req, resp := client.UpdateAuditSuppressionRequest(params)
22779//
22780//    err := req.Send()
22781//    if err == nil { // resp is now filled
22782//        fmt.Println(resp)
22783//    }
22784func (c *IoT) UpdateAuditSuppressionRequest(input *UpdateAuditSuppressionInput) (req *request.Request, output *UpdateAuditSuppressionOutput) {
22785	op := &request.Operation{
22786		Name:       opUpdateAuditSuppression,
22787		HTTPMethod: "PATCH",
22788		HTTPPath:   "/audit/suppressions/update",
22789	}
22790
22791	if input == nil {
22792		input = &UpdateAuditSuppressionInput{}
22793	}
22794
22795	output = &UpdateAuditSuppressionOutput{}
22796	req = c.newRequest(op, input, output)
22797	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
22798	return
22799}
22800
22801// UpdateAuditSuppression API operation for AWS IoT.
22802//
22803// Updates a Device Defender audit suppression.
22804//
22805// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22806// with awserr.Error's Code and Message methods to get detailed information about
22807// the error.
22808//
22809// See the AWS API reference guide for AWS IoT's
22810// API operation UpdateAuditSuppression for usage and error information.
22811//
22812// Returned Error Types:
22813//   * InvalidRequestException
22814//   The request is not valid.
22815//
22816//   * ResourceNotFoundException
22817//   The specified resource does not exist.
22818//
22819//   * ThrottlingException
22820//   The rate exceeds the limit.
22821//
22822//   * InternalFailureException
22823//   An unexpected error has occurred.
22824//
22825func (c *IoT) UpdateAuditSuppression(input *UpdateAuditSuppressionInput) (*UpdateAuditSuppressionOutput, error) {
22826	req, out := c.UpdateAuditSuppressionRequest(input)
22827	return out, req.Send()
22828}
22829
22830// UpdateAuditSuppressionWithContext is the same as UpdateAuditSuppression with the addition of
22831// the ability to pass a context and additional request options.
22832//
22833// See UpdateAuditSuppression for details on how to use this API operation.
22834//
22835// The context must be non-nil and will be used for request cancellation. If
22836// the context is nil a panic will occur. In the future the SDK may create
22837// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22838// for more information on using Contexts.
22839func (c *IoT) UpdateAuditSuppressionWithContext(ctx aws.Context, input *UpdateAuditSuppressionInput, opts ...request.Option) (*UpdateAuditSuppressionOutput, error) {
22840	req, out := c.UpdateAuditSuppressionRequest(input)
22841	req.SetContext(ctx)
22842	req.ApplyOptions(opts...)
22843	return out, req.Send()
22844}
22845
22846const opUpdateAuthorizer = "UpdateAuthorizer"
22847
22848// UpdateAuthorizerRequest generates a "aws/request.Request" representing the
22849// client's request for the UpdateAuthorizer operation. The "output" return
22850// value will be populated with the request's response once the request completes
22851// successfully.
22852//
22853// Use "Send" method on the returned Request to send the API call to the service.
22854// the "output" return value is not valid until after Send returns without error.
22855//
22856// See UpdateAuthorizer for more information on using the UpdateAuthorizer
22857// API call, and error handling.
22858//
22859// This method is useful when you want to inject custom logic or configuration
22860// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22861//
22862//
22863//    // Example sending a request using the UpdateAuthorizerRequest method.
22864//    req, resp := client.UpdateAuthorizerRequest(params)
22865//
22866//    err := req.Send()
22867//    if err == nil { // resp is now filled
22868//        fmt.Println(resp)
22869//    }
22870func (c *IoT) UpdateAuthorizerRequest(input *UpdateAuthorizerInput) (req *request.Request, output *UpdateAuthorizerOutput) {
22871	op := &request.Operation{
22872		Name:       opUpdateAuthorizer,
22873		HTTPMethod: "PUT",
22874		HTTPPath:   "/authorizer/{authorizerName}",
22875	}
22876
22877	if input == nil {
22878		input = &UpdateAuthorizerInput{}
22879	}
22880
22881	output = &UpdateAuthorizerOutput{}
22882	req = c.newRequest(op, input, output)
22883	return
22884}
22885
22886// UpdateAuthorizer API operation for AWS IoT.
22887//
22888// Updates an authorizer.
22889//
22890// Requires permission to access the UpdateAuthorizer (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22891// action.
22892//
22893// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22894// with awserr.Error's Code and Message methods to get detailed information about
22895// the error.
22896//
22897// See the AWS API reference guide for AWS IoT's
22898// API operation UpdateAuthorizer for usage and error information.
22899//
22900// Returned Error Types:
22901//   * ResourceNotFoundException
22902//   The specified resource does not exist.
22903//
22904//   * InvalidRequestException
22905//   The request is not valid.
22906//
22907//   * LimitExceededException
22908//   A limit has been exceeded.
22909//
22910//   * ThrottlingException
22911//   The rate exceeds the limit.
22912//
22913//   * UnauthorizedException
22914//   You are not authorized to perform this operation.
22915//
22916//   * ServiceUnavailableException
22917//   The service is temporarily unavailable.
22918//
22919//   * InternalFailureException
22920//   An unexpected error has occurred.
22921//
22922func (c *IoT) UpdateAuthorizer(input *UpdateAuthorizerInput) (*UpdateAuthorizerOutput, error) {
22923	req, out := c.UpdateAuthorizerRequest(input)
22924	return out, req.Send()
22925}
22926
22927// UpdateAuthorizerWithContext is the same as UpdateAuthorizer with the addition of
22928// the ability to pass a context and additional request options.
22929//
22930// See UpdateAuthorizer for details on how to use this API operation.
22931//
22932// The context must be non-nil and will be used for request cancellation. If
22933// the context is nil a panic will occur. In the future the SDK may create
22934// sub-contexts for http.Requests. See https://golang.org/pkg/context/
22935// for more information on using Contexts.
22936func (c *IoT) UpdateAuthorizerWithContext(ctx aws.Context, input *UpdateAuthorizerInput, opts ...request.Option) (*UpdateAuthorizerOutput, error) {
22937	req, out := c.UpdateAuthorizerRequest(input)
22938	req.SetContext(ctx)
22939	req.ApplyOptions(opts...)
22940	return out, req.Send()
22941}
22942
22943const opUpdateBillingGroup = "UpdateBillingGroup"
22944
22945// UpdateBillingGroupRequest generates a "aws/request.Request" representing the
22946// client's request for the UpdateBillingGroup operation. The "output" return
22947// value will be populated with the request's response once the request completes
22948// successfully.
22949//
22950// Use "Send" method on the returned Request to send the API call to the service.
22951// the "output" return value is not valid until after Send returns without error.
22952//
22953// See UpdateBillingGroup for more information on using the UpdateBillingGroup
22954// API call, and error handling.
22955//
22956// This method is useful when you want to inject custom logic or configuration
22957// into the SDK's request lifecycle. Such as custom headers, or retry logic.
22958//
22959//
22960//    // Example sending a request using the UpdateBillingGroupRequest method.
22961//    req, resp := client.UpdateBillingGroupRequest(params)
22962//
22963//    err := req.Send()
22964//    if err == nil { // resp is now filled
22965//        fmt.Println(resp)
22966//    }
22967func (c *IoT) UpdateBillingGroupRequest(input *UpdateBillingGroupInput) (req *request.Request, output *UpdateBillingGroupOutput) {
22968	op := &request.Operation{
22969		Name:       opUpdateBillingGroup,
22970		HTTPMethod: "PATCH",
22971		HTTPPath:   "/billing-groups/{billingGroupName}",
22972	}
22973
22974	if input == nil {
22975		input = &UpdateBillingGroupInput{}
22976	}
22977
22978	output = &UpdateBillingGroupOutput{}
22979	req = c.newRequest(op, input, output)
22980	return
22981}
22982
22983// UpdateBillingGroup API operation for AWS IoT.
22984//
22985// Updates information about the billing group.
22986//
22987// Requires permission to access the UpdateBillingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
22988// action.
22989//
22990// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
22991// with awserr.Error's Code and Message methods to get detailed information about
22992// the error.
22993//
22994// See the AWS API reference guide for AWS IoT's
22995// API operation UpdateBillingGroup for usage and error information.
22996//
22997// Returned Error Types:
22998//   * InvalidRequestException
22999//   The request is not valid.
23000//
23001//   * VersionConflictException
23002//   An exception thrown when the version of an entity specified with the expectedVersion
23003//   parameter does not match the latest version in the system.
23004//
23005//   * ThrottlingException
23006//   The rate exceeds the limit.
23007//
23008//   * InternalFailureException
23009//   An unexpected error has occurred.
23010//
23011//   * ResourceNotFoundException
23012//   The specified resource does not exist.
23013//
23014func (c *IoT) UpdateBillingGroup(input *UpdateBillingGroupInput) (*UpdateBillingGroupOutput, error) {
23015	req, out := c.UpdateBillingGroupRequest(input)
23016	return out, req.Send()
23017}
23018
23019// UpdateBillingGroupWithContext is the same as UpdateBillingGroup with the addition of
23020// the ability to pass a context and additional request options.
23021//
23022// See UpdateBillingGroup for details on how to use this API operation.
23023//
23024// The context must be non-nil and will be used for request cancellation. If
23025// the context is nil a panic will occur. In the future the SDK may create
23026// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23027// for more information on using Contexts.
23028func (c *IoT) UpdateBillingGroupWithContext(ctx aws.Context, input *UpdateBillingGroupInput, opts ...request.Option) (*UpdateBillingGroupOutput, error) {
23029	req, out := c.UpdateBillingGroupRequest(input)
23030	req.SetContext(ctx)
23031	req.ApplyOptions(opts...)
23032	return out, req.Send()
23033}
23034
23035const opUpdateCACertificate = "UpdateCACertificate"
23036
23037// UpdateCACertificateRequest generates a "aws/request.Request" representing the
23038// client's request for the UpdateCACertificate operation. The "output" return
23039// value will be populated with the request's response once the request completes
23040// successfully.
23041//
23042// Use "Send" method on the returned Request to send the API call to the service.
23043// the "output" return value is not valid until after Send returns without error.
23044//
23045// See UpdateCACertificate for more information on using the UpdateCACertificate
23046// API call, and error handling.
23047//
23048// This method is useful when you want to inject custom logic or configuration
23049// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23050//
23051//
23052//    // Example sending a request using the UpdateCACertificateRequest method.
23053//    req, resp := client.UpdateCACertificateRequest(params)
23054//
23055//    err := req.Send()
23056//    if err == nil { // resp is now filled
23057//        fmt.Println(resp)
23058//    }
23059func (c *IoT) UpdateCACertificateRequest(input *UpdateCACertificateInput) (req *request.Request, output *UpdateCACertificateOutput) {
23060	op := &request.Operation{
23061		Name:       opUpdateCACertificate,
23062		HTTPMethod: "PUT",
23063		HTTPPath:   "/cacertificate/{caCertificateId}",
23064	}
23065
23066	if input == nil {
23067		input = &UpdateCACertificateInput{}
23068	}
23069
23070	output = &UpdateCACertificateOutput{}
23071	req = c.newRequest(op, input, output)
23072	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23073	return
23074}
23075
23076// UpdateCACertificate API operation for AWS IoT.
23077//
23078// Updates a registered CA certificate.
23079//
23080// Requires permission to access the UpdateCACertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23081// action.
23082//
23083// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23084// with awserr.Error's Code and Message methods to get detailed information about
23085// the error.
23086//
23087// See the AWS API reference guide for AWS IoT's
23088// API operation UpdateCACertificate for usage and error information.
23089//
23090// Returned Error Types:
23091//   * ResourceNotFoundException
23092//   The specified resource does not exist.
23093//
23094//   * InvalidRequestException
23095//   The request is not valid.
23096//
23097//   * ThrottlingException
23098//   The rate exceeds the limit.
23099//
23100//   * UnauthorizedException
23101//   You are not authorized to perform this operation.
23102//
23103//   * ServiceUnavailableException
23104//   The service is temporarily unavailable.
23105//
23106//   * InternalFailureException
23107//   An unexpected error has occurred.
23108//
23109func (c *IoT) UpdateCACertificate(input *UpdateCACertificateInput) (*UpdateCACertificateOutput, error) {
23110	req, out := c.UpdateCACertificateRequest(input)
23111	return out, req.Send()
23112}
23113
23114// UpdateCACertificateWithContext is the same as UpdateCACertificate with the addition of
23115// the ability to pass a context and additional request options.
23116//
23117// See UpdateCACertificate for details on how to use this API operation.
23118//
23119// The context must be non-nil and will be used for request cancellation. If
23120// the context is nil a panic will occur. In the future the SDK may create
23121// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23122// for more information on using Contexts.
23123func (c *IoT) UpdateCACertificateWithContext(ctx aws.Context, input *UpdateCACertificateInput, opts ...request.Option) (*UpdateCACertificateOutput, error) {
23124	req, out := c.UpdateCACertificateRequest(input)
23125	req.SetContext(ctx)
23126	req.ApplyOptions(opts...)
23127	return out, req.Send()
23128}
23129
23130const opUpdateCertificate = "UpdateCertificate"
23131
23132// UpdateCertificateRequest generates a "aws/request.Request" representing the
23133// client's request for the UpdateCertificate operation. The "output" return
23134// value will be populated with the request's response once the request completes
23135// successfully.
23136//
23137// Use "Send" method on the returned Request to send the API call to the service.
23138// the "output" return value is not valid until after Send returns without error.
23139//
23140// See UpdateCertificate for more information on using the UpdateCertificate
23141// API call, and error handling.
23142//
23143// This method is useful when you want to inject custom logic or configuration
23144// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23145//
23146//
23147//    // Example sending a request using the UpdateCertificateRequest method.
23148//    req, resp := client.UpdateCertificateRequest(params)
23149//
23150//    err := req.Send()
23151//    if err == nil { // resp is now filled
23152//        fmt.Println(resp)
23153//    }
23154func (c *IoT) UpdateCertificateRequest(input *UpdateCertificateInput) (req *request.Request, output *UpdateCertificateOutput) {
23155	op := &request.Operation{
23156		Name:       opUpdateCertificate,
23157		HTTPMethod: "PUT",
23158		HTTPPath:   "/certificates/{certificateId}",
23159	}
23160
23161	if input == nil {
23162		input = &UpdateCertificateInput{}
23163	}
23164
23165	output = &UpdateCertificateOutput{}
23166	req = c.newRequest(op, input, output)
23167	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23168	return
23169}
23170
23171// UpdateCertificate API operation for AWS IoT.
23172//
23173// Updates the status of the specified certificate. This operation is idempotent.
23174//
23175// Requires permission to access the UpdateCertificate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23176// action.
23177//
23178// Certificates must be in the ACTIVE state to authenticate devices that use
23179// a certificate to connect to IoT.
23180//
23181// Within a few minutes of updating a certificate from the ACTIVE state to any
23182// other state, IoT disconnects all devices that used that certificate to connect.
23183// Devices cannot use a certificate that is not in the ACTIVE state to reconnect.
23184//
23185// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23186// with awserr.Error's Code and Message methods to get detailed information about
23187// the error.
23188//
23189// See the AWS API reference guide for AWS IoT's
23190// API operation UpdateCertificate for usage and error information.
23191//
23192// Returned Error Types:
23193//   * ResourceNotFoundException
23194//   The specified resource does not exist.
23195//
23196//   * CertificateStateException
23197//   The certificate operation is not allowed.
23198//
23199//   * InvalidRequestException
23200//   The request is not valid.
23201//
23202//   * ThrottlingException
23203//   The rate exceeds the limit.
23204//
23205//   * UnauthorizedException
23206//   You are not authorized to perform this operation.
23207//
23208//   * ServiceUnavailableException
23209//   The service is temporarily unavailable.
23210//
23211//   * InternalFailureException
23212//   An unexpected error has occurred.
23213//
23214func (c *IoT) UpdateCertificate(input *UpdateCertificateInput) (*UpdateCertificateOutput, error) {
23215	req, out := c.UpdateCertificateRequest(input)
23216	return out, req.Send()
23217}
23218
23219// UpdateCertificateWithContext is the same as UpdateCertificate with the addition of
23220// the ability to pass a context and additional request options.
23221//
23222// See UpdateCertificate for details on how to use this API operation.
23223//
23224// The context must be non-nil and will be used for request cancellation. If
23225// the context is nil a panic will occur. In the future the SDK may create
23226// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23227// for more information on using Contexts.
23228func (c *IoT) UpdateCertificateWithContext(ctx aws.Context, input *UpdateCertificateInput, opts ...request.Option) (*UpdateCertificateOutput, error) {
23229	req, out := c.UpdateCertificateRequest(input)
23230	req.SetContext(ctx)
23231	req.ApplyOptions(opts...)
23232	return out, req.Send()
23233}
23234
23235const opUpdateCustomMetric = "UpdateCustomMetric"
23236
23237// UpdateCustomMetricRequest generates a "aws/request.Request" representing the
23238// client's request for the UpdateCustomMetric operation. The "output" return
23239// value will be populated with the request's response once the request completes
23240// successfully.
23241//
23242// Use "Send" method on the returned Request to send the API call to the service.
23243// the "output" return value is not valid until after Send returns without error.
23244//
23245// See UpdateCustomMetric for more information on using the UpdateCustomMetric
23246// API call, and error handling.
23247//
23248// This method is useful when you want to inject custom logic or configuration
23249// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23250//
23251//
23252//    // Example sending a request using the UpdateCustomMetricRequest method.
23253//    req, resp := client.UpdateCustomMetricRequest(params)
23254//
23255//    err := req.Send()
23256//    if err == nil { // resp is now filled
23257//        fmt.Println(resp)
23258//    }
23259func (c *IoT) UpdateCustomMetricRequest(input *UpdateCustomMetricInput) (req *request.Request, output *UpdateCustomMetricOutput) {
23260	op := &request.Operation{
23261		Name:       opUpdateCustomMetric,
23262		HTTPMethod: "PATCH",
23263		HTTPPath:   "/custom-metric/{metricName}",
23264	}
23265
23266	if input == nil {
23267		input = &UpdateCustomMetricInput{}
23268	}
23269
23270	output = &UpdateCustomMetricOutput{}
23271	req = c.newRequest(op, input, output)
23272	return
23273}
23274
23275// UpdateCustomMetric API operation for AWS IoT.
23276//
23277// Updates a Device Defender detect custom metric.
23278//
23279// Requires permission to access the UpdateCustomMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23280// action.
23281//
23282// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23283// with awserr.Error's Code and Message methods to get detailed information about
23284// the error.
23285//
23286// See the AWS API reference guide for AWS IoT's
23287// API operation UpdateCustomMetric for usage and error information.
23288//
23289// Returned Error Types:
23290//   * InvalidRequestException
23291//   The request is not valid.
23292//
23293//   * ResourceNotFoundException
23294//   The specified resource does not exist.
23295//
23296//   * ThrottlingException
23297//   The rate exceeds the limit.
23298//
23299//   * InternalFailureException
23300//   An unexpected error has occurred.
23301//
23302func (c *IoT) UpdateCustomMetric(input *UpdateCustomMetricInput) (*UpdateCustomMetricOutput, error) {
23303	req, out := c.UpdateCustomMetricRequest(input)
23304	return out, req.Send()
23305}
23306
23307// UpdateCustomMetricWithContext is the same as UpdateCustomMetric with the addition of
23308// the ability to pass a context and additional request options.
23309//
23310// See UpdateCustomMetric for details on how to use this API operation.
23311//
23312// The context must be non-nil and will be used for request cancellation. If
23313// the context is nil a panic will occur. In the future the SDK may create
23314// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23315// for more information on using Contexts.
23316func (c *IoT) UpdateCustomMetricWithContext(ctx aws.Context, input *UpdateCustomMetricInput, opts ...request.Option) (*UpdateCustomMetricOutput, error) {
23317	req, out := c.UpdateCustomMetricRequest(input)
23318	req.SetContext(ctx)
23319	req.ApplyOptions(opts...)
23320	return out, req.Send()
23321}
23322
23323const opUpdateDimension = "UpdateDimension"
23324
23325// UpdateDimensionRequest generates a "aws/request.Request" representing the
23326// client's request for the UpdateDimension operation. The "output" return
23327// value will be populated with the request's response once the request completes
23328// successfully.
23329//
23330// Use "Send" method on the returned Request to send the API call to the service.
23331// the "output" return value is not valid until after Send returns without error.
23332//
23333// See UpdateDimension for more information on using the UpdateDimension
23334// API call, and error handling.
23335//
23336// This method is useful when you want to inject custom logic or configuration
23337// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23338//
23339//
23340//    // Example sending a request using the UpdateDimensionRequest method.
23341//    req, resp := client.UpdateDimensionRequest(params)
23342//
23343//    err := req.Send()
23344//    if err == nil { // resp is now filled
23345//        fmt.Println(resp)
23346//    }
23347func (c *IoT) UpdateDimensionRequest(input *UpdateDimensionInput) (req *request.Request, output *UpdateDimensionOutput) {
23348	op := &request.Operation{
23349		Name:       opUpdateDimension,
23350		HTTPMethod: "PATCH",
23351		HTTPPath:   "/dimensions/{name}",
23352	}
23353
23354	if input == nil {
23355		input = &UpdateDimensionInput{}
23356	}
23357
23358	output = &UpdateDimensionOutput{}
23359	req = c.newRequest(op, input, output)
23360	return
23361}
23362
23363// UpdateDimension API operation for AWS IoT.
23364//
23365// Updates the definition for a dimension. You cannot change the type of a dimension
23366// after it is created (you can delete it and recreate it).
23367//
23368// Requires permission to access the UpdateDimension (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23369// action.
23370//
23371// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23372// with awserr.Error's Code and Message methods to get detailed information about
23373// the error.
23374//
23375// See the AWS API reference guide for AWS IoT's
23376// API operation UpdateDimension for usage and error information.
23377//
23378// Returned Error Types:
23379//   * InternalFailureException
23380//   An unexpected error has occurred.
23381//
23382//   * InvalidRequestException
23383//   The request is not valid.
23384//
23385//   * ResourceNotFoundException
23386//   The specified resource does not exist.
23387//
23388//   * ThrottlingException
23389//   The rate exceeds the limit.
23390//
23391func (c *IoT) UpdateDimension(input *UpdateDimensionInput) (*UpdateDimensionOutput, error) {
23392	req, out := c.UpdateDimensionRequest(input)
23393	return out, req.Send()
23394}
23395
23396// UpdateDimensionWithContext is the same as UpdateDimension with the addition of
23397// the ability to pass a context and additional request options.
23398//
23399// See UpdateDimension for details on how to use this API operation.
23400//
23401// The context must be non-nil and will be used for request cancellation. If
23402// the context is nil a panic will occur. In the future the SDK may create
23403// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23404// for more information on using Contexts.
23405func (c *IoT) UpdateDimensionWithContext(ctx aws.Context, input *UpdateDimensionInput, opts ...request.Option) (*UpdateDimensionOutput, error) {
23406	req, out := c.UpdateDimensionRequest(input)
23407	req.SetContext(ctx)
23408	req.ApplyOptions(opts...)
23409	return out, req.Send()
23410}
23411
23412const opUpdateDomainConfiguration = "UpdateDomainConfiguration"
23413
23414// UpdateDomainConfigurationRequest generates a "aws/request.Request" representing the
23415// client's request for the UpdateDomainConfiguration operation. The "output" return
23416// value will be populated with the request's response once the request completes
23417// successfully.
23418//
23419// Use "Send" method on the returned Request to send the API call to the service.
23420// the "output" return value is not valid until after Send returns without error.
23421//
23422// See UpdateDomainConfiguration for more information on using the UpdateDomainConfiguration
23423// API call, and error handling.
23424//
23425// This method is useful when you want to inject custom logic or configuration
23426// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23427//
23428//
23429//    // Example sending a request using the UpdateDomainConfigurationRequest method.
23430//    req, resp := client.UpdateDomainConfigurationRequest(params)
23431//
23432//    err := req.Send()
23433//    if err == nil { // resp is now filled
23434//        fmt.Println(resp)
23435//    }
23436func (c *IoT) UpdateDomainConfigurationRequest(input *UpdateDomainConfigurationInput) (req *request.Request, output *UpdateDomainConfigurationOutput) {
23437	op := &request.Operation{
23438		Name:       opUpdateDomainConfiguration,
23439		HTTPMethod: "PUT",
23440		HTTPPath:   "/domainConfigurations/{domainConfigurationName}",
23441	}
23442
23443	if input == nil {
23444		input = &UpdateDomainConfigurationInput{}
23445	}
23446
23447	output = &UpdateDomainConfigurationOutput{}
23448	req = c.newRequest(op, input, output)
23449	return
23450}
23451
23452// UpdateDomainConfiguration API operation for AWS IoT.
23453//
23454// Updates values stored in the domain configuration. Domain configurations
23455// for default endpoints can't be updated.
23456//
23457// Requires permission to access the UpdateDomainConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23458// action.
23459//
23460// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23461// with awserr.Error's Code and Message methods to get detailed information about
23462// the error.
23463//
23464// See the AWS API reference guide for AWS IoT's
23465// API operation UpdateDomainConfiguration for usage and error information.
23466//
23467// Returned Error Types:
23468//   * ResourceNotFoundException
23469//   The specified resource does not exist.
23470//
23471//   * CertificateValidationException
23472//   The certificate is invalid.
23473//
23474//   * InvalidRequestException
23475//   The request is not valid.
23476//
23477//   * ThrottlingException
23478//   The rate exceeds the limit.
23479//
23480//   * UnauthorizedException
23481//   You are not authorized to perform this operation.
23482//
23483//   * ServiceUnavailableException
23484//   The service is temporarily unavailable.
23485//
23486//   * InternalFailureException
23487//   An unexpected error has occurred.
23488//
23489func (c *IoT) UpdateDomainConfiguration(input *UpdateDomainConfigurationInput) (*UpdateDomainConfigurationOutput, error) {
23490	req, out := c.UpdateDomainConfigurationRequest(input)
23491	return out, req.Send()
23492}
23493
23494// UpdateDomainConfigurationWithContext is the same as UpdateDomainConfiguration with the addition of
23495// the ability to pass a context and additional request options.
23496//
23497// See UpdateDomainConfiguration for details on how to use this API operation.
23498//
23499// The context must be non-nil and will be used for request cancellation. If
23500// the context is nil a panic will occur. In the future the SDK may create
23501// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23502// for more information on using Contexts.
23503func (c *IoT) UpdateDomainConfigurationWithContext(ctx aws.Context, input *UpdateDomainConfigurationInput, opts ...request.Option) (*UpdateDomainConfigurationOutput, error) {
23504	req, out := c.UpdateDomainConfigurationRequest(input)
23505	req.SetContext(ctx)
23506	req.ApplyOptions(opts...)
23507	return out, req.Send()
23508}
23509
23510const opUpdateDynamicThingGroup = "UpdateDynamicThingGroup"
23511
23512// UpdateDynamicThingGroupRequest generates a "aws/request.Request" representing the
23513// client's request for the UpdateDynamicThingGroup operation. The "output" return
23514// value will be populated with the request's response once the request completes
23515// successfully.
23516//
23517// Use "Send" method on the returned Request to send the API call to the service.
23518// the "output" return value is not valid until after Send returns without error.
23519//
23520// See UpdateDynamicThingGroup for more information on using the UpdateDynamicThingGroup
23521// API call, and error handling.
23522//
23523// This method is useful when you want to inject custom logic or configuration
23524// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23525//
23526//
23527//    // Example sending a request using the UpdateDynamicThingGroupRequest method.
23528//    req, resp := client.UpdateDynamicThingGroupRequest(params)
23529//
23530//    err := req.Send()
23531//    if err == nil { // resp is now filled
23532//        fmt.Println(resp)
23533//    }
23534func (c *IoT) UpdateDynamicThingGroupRequest(input *UpdateDynamicThingGroupInput) (req *request.Request, output *UpdateDynamicThingGroupOutput) {
23535	op := &request.Operation{
23536		Name:       opUpdateDynamicThingGroup,
23537		HTTPMethod: "PATCH",
23538		HTTPPath:   "/dynamic-thing-groups/{thingGroupName}",
23539	}
23540
23541	if input == nil {
23542		input = &UpdateDynamicThingGroupInput{}
23543	}
23544
23545	output = &UpdateDynamicThingGroupOutput{}
23546	req = c.newRequest(op, input, output)
23547	return
23548}
23549
23550// UpdateDynamicThingGroup API operation for AWS IoT.
23551//
23552// Updates a dynamic thing group.
23553//
23554// Requires permission to access the UpdateDynamicThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23555// action.
23556//
23557// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23558// with awserr.Error's Code and Message methods to get detailed information about
23559// the error.
23560//
23561// See the AWS API reference guide for AWS IoT's
23562// API operation UpdateDynamicThingGroup for usage and error information.
23563//
23564// Returned Error Types:
23565//   * InvalidRequestException
23566//   The request is not valid.
23567//
23568//   * VersionConflictException
23569//   An exception thrown when the version of an entity specified with the expectedVersion
23570//   parameter does not match the latest version in the system.
23571//
23572//   * ThrottlingException
23573//   The rate exceeds the limit.
23574//
23575//   * InternalFailureException
23576//   An unexpected error has occurred.
23577//
23578//   * ResourceNotFoundException
23579//   The specified resource does not exist.
23580//
23581//   * InvalidQueryException
23582//   The query is invalid.
23583//
23584func (c *IoT) UpdateDynamicThingGroup(input *UpdateDynamicThingGroupInput) (*UpdateDynamicThingGroupOutput, error) {
23585	req, out := c.UpdateDynamicThingGroupRequest(input)
23586	return out, req.Send()
23587}
23588
23589// UpdateDynamicThingGroupWithContext is the same as UpdateDynamicThingGroup with the addition of
23590// the ability to pass a context and additional request options.
23591//
23592// See UpdateDynamicThingGroup for details on how to use this API operation.
23593//
23594// The context must be non-nil and will be used for request cancellation. If
23595// the context is nil a panic will occur. In the future the SDK may create
23596// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23597// for more information on using Contexts.
23598func (c *IoT) UpdateDynamicThingGroupWithContext(ctx aws.Context, input *UpdateDynamicThingGroupInput, opts ...request.Option) (*UpdateDynamicThingGroupOutput, error) {
23599	req, out := c.UpdateDynamicThingGroupRequest(input)
23600	req.SetContext(ctx)
23601	req.ApplyOptions(opts...)
23602	return out, req.Send()
23603}
23604
23605const opUpdateEventConfigurations = "UpdateEventConfigurations"
23606
23607// UpdateEventConfigurationsRequest generates a "aws/request.Request" representing the
23608// client's request for the UpdateEventConfigurations operation. The "output" return
23609// value will be populated with the request's response once the request completes
23610// successfully.
23611//
23612// Use "Send" method on the returned Request to send the API call to the service.
23613// the "output" return value is not valid until after Send returns without error.
23614//
23615// See UpdateEventConfigurations for more information on using the UpdateEventConfigurations
23616// API call, and error handling.
23617//
23618// This method is useful when you want to inject custom logic or configuration
23619// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23620//
23621//
23622//    // Example sending a request using the UpdateEventConfigurationsRequest method.
23623//    req, resp := client.UpdateEventConfigurationsRequest(params)
23624//
23625//    err := req.Send()
23626//    if err == nil { // resp is now filled
23627//        fmt.Println(resp)
23628//    }
23629func (c *IoT) UpdateEventConfigurationsRequest(input *UpdateEventConfigurationsInput) (req *request.Request, output *UpdateEventConfigurationsOutput) {
23630	op := &request.Operation{
23631		Name:       opUpdateEventConfigurations,
23632		HTTPMethod: "PATCH",
23633		HTTPPath:   "/event-configurations",
23634	}
23635
23636	if input == nil {
23637		input = &UpdateEventConfigurationsInput{}
23638	}
23639
23640	output = &UpdateEventConfigurationsOutput{}
23641	req = c.newRequest(op, input, output)
23642	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23643	return
23644}
23645
23646// UpdateEventConfigurations API operation for AWS IoT.
23647//
23648// Updates the event configurations.
23649//
23650// Requires permission to access the UpdateEventConfigurations (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23651// action.
23652//
23653// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23654// with awserr.Error's Code and Message methods to get detailed information about
23655// the error.
23656//
23657// See the AWS API reference guide for AWS IoT's
23658// API operation UpdateEventConfigurations for usage and error information.
23659//
23660// Returned Error Types:
23661//   * InvalidRequestException
23662//   The request is not valid.
23663//
23664//   * InternalFailureException
23665//   An unexpected error has occurred.
23666//
23667//   * ThrottlingException
23668//   The rate exceeds the limit.
23669//
23670func (c *IoT) UpdateEventConfigurations(input *UpdateEventConfigurationsInput) (*UpdateEventConfigurationsOutput, error) {
23671	req, out := c.UpdateEventConfigurationsRequest(input)
23672	return out, req.Send()
23673}
23674
23675// UpdateEventConfigurationsWithContext is the same as UpdateEventConfigurations with the addition of
23676// the ability to pass a context and additional request options.
23677//
23678// See UpdateEventConfigurations for details on how to use this API operation.
23679//
23680// The context must be non-nil and will be used for request cancellation. If
23681// the context is nil a panic will occur. In the future the SDK may create
23682// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23683// for more information on using Contexts.
23684func (c *IoT) UpdateEventConfigurationsWithContext(ctx aws.Context, input *UpdateEventConfigurationsInput, opts ...request.Option) (*UpdateEventConfigurationsOutput, error) {
23685	req, out := c.UpdateEventConfigurationsRequest(input)
23686	req.SetContext(ctx)
23687	req.ApplyOptions(opts...)
23688	return out, req.Send()
23689}
23690
23691const opUpdateFleetMetric = "UpdateFleetMetric"
23692
23693// UpdateFleetMetricRequest generates a "aws/request.Request" representing the
23694// client's request for the UpdateFleetMetric operation. The "output" return
23695// value will be populated with the request's response once the request completes
23696// successfully.
23697//
23698// Use "Send" method on the returned Request to send the API call to the service.
23699// the "output" return value is not valid until after Send returns without error.
23700//
23701// See UpdateFleetMetric for more information on using the UpdateFleetMetric
23702// API call, and error handling.
23703//
23704// This method is useful when you want to inject custom logic or configuration
23705// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23706//
23707//
23708//    // Example sending a request using the UpdateFleetMetricRequest method.
23709//    req, resp := client.UpdateFleetMetricRequest(params)
23710//
23711//    err := req.Send()
23712//    if err == nil { // resp is now filled
23713//        fmt.Println(resp)
23714//    }
23715func (c *IoT) UpdateFleetMetricRequest(input *UpdateFleetMetricInput) (req *request.Request, output *UpdateFleetMetricOutput) {
23716	op := &request.Operation{
23717		Name:       opUpdateFleetMetric,
23718		HTTPMethod: "PATCH",
23719		HTTPPath:   "/fleet-metric/{metricName}",
23720	}
23721
23722	if input == nil {
23723		input = &UpdateFleetMetricInput{}
23724	}
23725
23726	output = &UpdateFleetMetricOutput{}
23727	req = c.newRequest(op, input, output)
23728	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23729	return
23730}
23731
23732// UpdateFleetMetric API operation for AWS IoT.
23733//
23734// Updates the data for a fleet metric.
23735//
23736// Requires permission to access the UpdateFleetMetric (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23737// action.
23738//
23739// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23740// with awserr.Error's Code and Message methods to get detailed information about
23741// the error.
23742//
23743// See the AWS API reference guide for AWS IoT's
23744// API operation UpdateFleetMetric for usage and error information.
23745//
23746// Returned Error Types:
23747//   * InvalidRequestException
23748//   The request is not valid.
23749//
23750//   * ThrottlingException
23751//   The rate exceeds the limit.
23752//
23753//   * UnauthorizedException
23754//   You are not authorized to perform this operation.
23755//
23756//   * ServiceUnavailableException
23757//   The service is temporarily unavailable.
23758//
23759//   * InternalFailureException
23760//   An unexpected error has occurred.
23761//
23762//   * ResourceNotFoundException
23763//   The specified resource does not exist.
23764//
23765//   * InvalidQueryException
23766//   The query is invalid.
23767//
23768//   * InvalidAggregationException
23769//   The aggregation is invalid.
23770//
23771//   * VersionConflictException
23772//   An exception thrown when the version of an entity specified with the expectedVersion
23773//   parameter does not match the latest version in the system.
23774//
23775//   * IndexNotReadyException
23776//   The index is not ready.
23777//
23778func (c *IoT) UpdateFleetMetric(input *UpdateFleetMetricInput) (*UpdateFleetMetricOutput, error) {
23779	req, out := c.UpdateFleetMetricRequest(input)
23780	return out, req.Send()
23781}
23782
23783// UpdateFleetMetricWithContext is the same as UpdateFleetMetric with the addition of
23784// the ability to pass a context and additional request options.
23785//
23786// See UpdateFleetMetric for details on how to use this API operation.
23787//
23788// The context must be non-nil and will be used for request cancellation. If
23789// the context is nil a panic will occur. In the future the SDK may create
23790// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23791// for more information on using Contexts.
23792func (c *IoT) UpdateFleetMetricWithContext(ctx aws.Context, input *UpdateFleetMetricInput, opts ...request.Option) (*UpdateFleetMetricOutput, error) {
23793	req, out := c.UpdateFleetMetricRequest(input)
23794	req.SetContext(ctx)
23795	req.ApplyOptions(opts...)
23796	return out, req.Send()
23797}
23798
23799const opUpdateIndexingConfiguration = "UpdateIndexingConfiguration"
23800
23801// UpdateIndexingConfigurationRequest generates a "aws/request.Request" representing the
23802// client's request for the UpdateIndexingConfiguration operation. The "output" return
23803// value will be populated with the request's response once the request completes
23804// successfully.
23805//
23806// Use "Send" method on the returned Request to send the API call to the service.
23807// the "output" return value is not valid until after Send returns without error.
23808//
23809// See UpdateIndexingConfiguration for more information on using the UpdateIndexingConfiguration
23810// API call, and error handling.
23811//
23812// This method is useful when you want to inject custom logic or configuration
23813// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23814//
23815//
23816//    // Example sending a request using the UpdateIndexingConfigurationRequest method.
23817//    req, resp := client.UpdateIndexingConfigurationRequest(params)
23818//
23819//    err := req.Send()
23820//    if err == nil { // resp is now filled
23821//        fmt.Println(resp)
23822//    }
23823func (c *IoT) UpdateIndexingConfigurationRequest(input *UpdateIndexingConfigurationInput) (req *request.Request, output *UpdateIndexingConfigurationOutput) {
23824	op := &request.Operation{
23825		Name:       opUpdateIndexingConfiguration,
23826		HTTPMethod: "POST",
23827		HTTPPath:   "/indexing/config",
23828	}
23829
23830	if input == nil {
23831		input = &UpdateIndexingConfigurationInput{}
23832	}
23833
23834	output = &UpdateIndexingConfigurationOutput{}
23835	req = c.newRequest(op, input, output)
23836	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23837	return
23838}
23839
23840// UpdateIndexingConfiguration API operation for AWS IoT.
23841//
23842// Updates the search configuration.
23843//
23844// Requires permission to access the UpdateIndexingConfiguration (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23845// action.
23846//
23847// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23848// with awserr.Error's Code and Message methods to get detailed information about
23849// the error.
23850//
23851// See the AWS API reference guide for AWS IoT's
23852// API operation UpdateIndexingConfiguration for usage and error information.
23853//
23854// Returned Error Types:
23855//   * InvalidRequestException
23856//   The request is not valid.
23857//
23858//   * ThrottlingException
23859//   The rate exceeds the limit.
23860//
23861//   * UnauthorizedException
23862//   You are not authorized to perform this operation.
23863//
23864//   * ServiceUnavailableException
23865//   The service is temporarily unavailable.
23866//
23867//   * InternalFailureException
23868//   An unexpected error has occurred.
23869//
23870func (c *IoT) UpdateIndexingConfiguration(input *UpdateIndexingConfigurationInput) (*UpdateIndexingConfigurationOutput, error) {
23871	req, out := c.UpdateIndexingConfigurationRequest(input)
23872	return out, req.Send()
23873}
23874
23875// UpdateIndexingConfigurationWithContext is the same as UpdateIndexingConfiguration with the addition of
23876// the ability to pass a context and additional request options.
23877//
23878// See UpdateIndexingConfiguration for details on how to use this API operation.
23879//
23880// The context must be non-nil and will be used for request cancellation. If
23881// the context is nil a panic will occur. In the future the SDK may create
23882// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23883// for more information on using Contexts.
23884func (c *IoT) UpdateIndexingConfigurationWithContext(ctx aws.Context, input *UpdateIndexingConfigurationInput, opts ...request.Option) (*UpdateIndexingConfigurationOutput, error) {
23885	req, out := c.UpdateIndexingConfigurationRequest(input)
23886	req.SetContext(ctx)
23887	req.ApplyOptions(opts...)
23888	return out, req.Send()
23889}
23890
23891const opUpdateJob = "UpdateJob"
23892
23893// UpdateJobRequest generates a "aws/request.Request" representing the
23894// client's request for the UpdateJob operation. The "output" return
23895// value will be populated with the request's response once the request completes
23896// successfully.
23897//
23898// Use "Send" method on the returned Request to send the API call to the service.
23899// the "output" return value is not valid until after Send returns without error.
23900//
23901// See UpdateJob for more information on using the UpdateJob
23902// API call, and error handling.
23903//
23904// This method is useful when you want to inject custom logic or configuration
23905// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23906//
23907//
23908//    // Example sending a request using the UpdateJobRequest method.
23909//    req, resp := client.UpdateJobRequest(params)
23910//
23911//    err := req.Send()
23912//    if err == nil { // resp is now filled
23913//        fmt.Println(resp)
23914//    }
23915func (c *IoT) UpdateJobRequest(input *UpdateJobInput) (req *request.Request, output *UpdateJobOutput) {
23916	op := &request.Operation{
23917		Name:       opUpdateJob,
23918		HTTPMethod: "PATCH",
23919		HTTPPath:   "/jobs/{jobId}",
23920	}
23921
23922	if input == nil {
23923		input = &UpdateJobInput{}
23924	}
23925
23926	output = &UpdateJobOutput{}
23927	req = c.newRequest(op, input, output)
23928	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
23929	return
23930}
23931
23932// UpdateJob API operation for AWS IoT.
23933//
23934// Updates supported fields of the specified job.
23935//
23936// Requires permission to access the UpdateJob (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
23937// action.
23938//
23939// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
23940// with awserr.Error's Code and Message methods to get detailed information about
23941// the error.
23942//
23943// See the AWS API reference guide for AWS IoT's
23944// API operation UpdateJob for usage and error information.
23945//
23946// Returned Error Types:
23947//   * InvalidRequestException
23948//   The request is not valid.
23949//
23950//   * ResourceNotFoundException
23951//   The specified resource does not exist.
23952//
23953//   * ThrottlingException
23954//   The rate exceeds the limit.
23955//
23956//   * ServiceUnavailableException
23957//   The service is temporarily unavailable.
23958//
23959func (c *IoT) UpdateJob(input *UpdateJobInput) (*UpdateJobOutput, error) {
23960	req, out := c.UpdateJobRequest(input)
23961	return out, req.Send()
23962}
23963
23964// UpdateJobWithContext is the same as UpdateJob with the addition of
23965// the ability to pass a context and additional request options.
23966//
23967// See UpdateJob for details on how to use this API operation.
23968//
23969// The context must be non-nil and will be used for request cancellation. If
23970// the context is nil a panic will occur. In the future the SDK may create
23971// sub-contexts for http.Requests. See https://golang.org/pkg/context/
23972// for more information on using Contexts.
23973func (c *IoT) UpdateJobWithContext(ctx aws.Context, input *UpdateJobInput, opts ...request.Option) (*UpdateJobOutput, error) {
23974	req, out := c.UpdateJobRequest(input)
23975	req.SetContext(ctx)
23976	req.ApplyOptions(opts...)
23977	return out, req.Send()
23978}
23979
23980const opUpdateMitigationAction = "UpdateMitigationAction"
23981
23982// UpdateMitigationActionRequest generates a "aws/request.Request" representing the
23983// client's request for the UpdateMitigationAction operation. The "output" return
23984// value will be populated with the request's response once the request completes
23985// successfully.
23986//
23987// Use "Send" method on the returned Request to send the API call to the service.
23988// the "output" return value is not valid until after Send returns without error.
23989//
23990// See UpdateMitigationAction for more information on using the UpdateMitigationAction
23991// API call, and error handling.
23992//
23993// This method is useful when you want to inject custom logic or configuration
23994// into the SDK's request lifecycle. Such as custom headers, or retry logic.
23995//
23996//
23997//    // Example sending a request using the UpdateMitigationActionRequest method.
23998//    req, resp := client.UpdateMitigationActionRequest(params)
23999//
24000//    err := req.Send()
24001//    if err == nil { // resp is now filled
24002//        fmt.Println(resp)
24003//    }
24004func (c *IoT) UpdateMitigationActionRequest(input *UpdateMitigationActionInput) (req *request.Request, output *UpdateMitigationActionOutput) {
24005	op := &request.Operation{
24006		Name:       opUpdateMitigationAction,
24007		HTTPMethod: "PATCH",
24008		HTTPPath:   "/mitigationactions/actions/{actionName}",
24009	}
24010
24011	if input == nil {
24012		input = &UpdateMitigationActionInput{}
24013	}
24014
24015	output = &UpdateMitigationActionOutput{}
24016	req = c.newRequest(op, input, output)
24017	return
24018}
24019
24020// UpdateMitigationAction API operation for AWS IoT.
24021//
24022// Updates the definition for the specified mitigation action.
24023//
24024// Requires permission to access the UpdateMitigationAction (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24025// action.
24026//
24027// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24028// with awserr.Error's Code and Message methods to get detailed information about
24029// the error.
24030//
24031// See the AWS API reference guide for AWS IoT's
24032// API operation UpdateMitigationAction for usage and error information.
24033//
24034// Returned Error Types:
24035//   * InvalidRequestException
24036//   The request is not valid.
24037//
24038//   * ResourceNotFoundException
24039//   The specified resource does not exist.
24040//
24041//   * ThrottlingException
24042//   The rate exceeds the limit.
24043//
24044//   * InternalFailureException
24045//   An unexpected error has occurred.
24046//
24047func (c *IoT) UpdateMitigationAction(input *UpdateMitigationActionInput) (*UpdateMitigationActionOutput, error) {
24048	req, out := c.UpdateMitigationActionRequest(input)
24049	return out, req.Send()
24050}
24051
24052// UpdateMitigationActionWithContext is the same as UpdateMitigationAction with the addition of
24053// the ability to pass a context and additional request options.
24054//
24055// See UpdateMitigationAction for details on how to use this API operation.
24056//
24057// The context must be non-nil and will be used for request cancellation. If
24058// the context is nil a panic will occur. In the future the SDK may create
24059// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24060// for more information on using Contexts.
24061func (c *IoT) UpdateMitigationActionWithContext(ctx aws.Context, input *UpdateMitigationActionInput, opts ...request.Option) (*UpdateMitigationActionOutput, error) {
24062	req, out := c.UpdateMitigationActionRequest(input)
24063	req.SetContext(ctx)
24064	req.ApplyOptions(opts...)
24065	return out, req.Send()
24066}
24067
24068const opUpdateProvisioningTemplate = "UpdateProvisioningTemplate"
24069
24070// UpdateProvisioningTemplateRequest generates a "aws/request.Request" representing the
24071// client's request for the UpdateProvisioningTemplate operation. The "output" return
24072// value will be populated with the request's response once the request completes
24073// successfully.
24074//
24075// Use "Send" method on the returned Request to send the API call to the service.
24076// the "output" return value is not valid until after Send returns without error.
24077//
24078// See UpdateProvisioningTemplate for more information on using the UpdateProvisioningTemplate
24079// API call, and error handling.
24080//
24081// This method is useful when you want to inject custom logic or configuration
24082// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24083//
24084//
24085//    // Example sending a request using the UpdateProvisioningTemplateRequest method.
24086//    req, resp := client.UpdateProvisioningTemplateRequest(params)
24087//
24088//    err := req.Send()
24089//    if err == nil { // resp is now filled
24090//        fmt.Println(resp)
24091//    }
24092func (c *IoT) UpdateProvisioningTemplateRequest(input *UpdateProvisioningTemplateInput) (req *request.Request, output *UpdateProvisioningTemplateOutput) {
24093	op := &request.Operation{
24094		Name:       opUpdateProvisioningTemplate,
24095		HTTPMethod: "PATCH",
24096		HTTPPath:   "/provisioning-templates/{templateName}",
24097	}
24098
24099	if input == nil {
24100		input = &UpdateProvisioningTemplateInput{}
24101	}
24102
24103	output = &UpdateProvisioningTemplateOutput{}
24104	req = c.newRequest(op, input, output)
24105	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
24106	return
24107}
24108
24109// UpdateProvisioningTemplate API operation for AWS IoT.
24110//
24111// Updates a fleet provisioning template.
24112//
24113// Requires permission to access the UpdateProvisioningTemplate (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24114// action.
24115//
24116// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24117// with awserr.Error's Code and Message methods to get detailed information about
24118// the error.
24119//
24120// See the AWS API reference guide for AWS IoT's
24121// API operation UpdateProvisioningTemplate for usage and error information.
24122//
24123// Returned Error Types:
24124//   * InternalFailureException
24125//   An unexpected error has occurred.
24126//
24127//   * InvalidRequestException
24128//   The request is not valid.
24129//
24130//   * ResourceNotFoundException
24131//   The specified resource does not exist.
24132//
24133//   * UnauthorizedException
24134//   You are not authorized to perform this operation.
24135//
24136//   * ConflictingResourceUpdateException
24137//   A conflicting resource update exception. This exception is thrown when two
24138//   pending updates cause a conflict.
24139//
24140func (c *IoT) UpdateProvisioningTemplate(input *UpdateProvisioningTemplateInput) (*UpdateProvisioningTemplateOutput, error) {
24141	req, out := c.UpdateProvisioningTemplateRequest(input)
24142	return out, req.Send()
24143}
24144
24145// UpdateProvisioningTemplateWithContext is the same as UpdateProvisioningTemplate with the addition of
24146// the ability to pass a context and additional request options.
24147//
24148// See UpdateProvisioningTemplate for details on how to use this API operation.
24149//
24150// The context must be non-nil and will be used for request cancellation. If
24151// the context is nil a panic will occur. In the future the SDK may create
24152// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24153// for more information on using Contexts.
24154func (c *IoT) UpdateProvisioningTemplateWithContext(ctx aws.Context, input *UpdateProvisioningTemplateInput, opts ...request.Option) (*UpdateProvisioningTemplateOutput, error) {
24155	req, out := c.UpdateProvisioningTemplateRequest(input)
24156	req.SetContext(ctx)
24157	req.ApplyOptions(opts...)
24158	return out, req.Send()
24159}
24160
24161const opUpdateRoleAlias = "UpdateRoleAlias"
24162
24163// UpdateRoleAliasRequest generates a "aws/request.Request" representing the
24164// client's request for the UpdateRoleAlias operation. The "output" return
24165// value will be populated with the request's response once the request completes
24166// successfully.
24167//
24168// Use "Send" method on the returned Request to send the API call to the service.
24169// the "output" return value is not valid until after Send returns without error.
24170//
24171// See UpdateRoleAlias for more information on using the UpdateRoleAlias
24172// API call, and error handling.
24173//
24174// This method is useful when you want to inject custom logic or configuration
24175// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24176//
24177//
24178//    // Example sending a request using the UpdateRoleAliasRequest method.
24179//    req, resp := client.UpdateRoleAliasRequest(params)
24180//
24181//    err := req.Send()
24182//    if err == nil { // resp is now filled
24183//        fmt.Println(resp)
24184//    }
24185func (c *IoT) UpdateRoleAliasRequest(input *UpdateRoleAliasInput) (req *request.Request, output *UpdateRoleAliasOutput) {
24186	op := &request.Operation{
24187		Name:       opUpdateRoleAlias,
24188		HTTPMethod: "PUT",
24189		HTTPPath:   "/role-aliases/{roleAlias}",
24190	}
24191
24192	if input == nil {
24193		input = &UpdateRoleAliasInput{}
24194	}
24195
24196	output = &UpdateRoleAliasOutput{}
24197	req = c.newRequest(op, input, output)
24198	return
24199}
24200
24201// UpdateRoleAlias API operation for AWS IoT.
24202//
24203// Updates a role alias.
24204//
24205// Requires permission to access the UpdateRoleAlias (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24206// action.
24207//
24208// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24209// with awserr.Error's Code and Message methods to get detailed information about
24210// the error.
24211//
24212// See the AWS API reference guide for AWS IoT's
24213// API operation UpdateRoleAlias for usage and error information.
24214//
24215// Returned Error Types:
24216//   * ResourceNotFoundException
24217//   The specified resource does not exist.
24218//
24219//   * InvalidRequestException
24220//   The request is not valid.
24221//
24222//   * ThrottlingException
24223//   The rate exceeds the limit.
24224//
24225//   * UnauthorizedException
24226//   You are not authorized to perform this operation.
24227//
24228//   * ServiceUnavailableException
24229//   The service is temporarily unavailable.
24230//
24231//   * InternalFailureException
24232//   An unexpected error has occurred.
24233//
24234func (c *IoT) UpdateRoleAlias(input *UpdateRoleAliasInput) (*UpdateRoleAliasOutput, error) {
24235	req, out := c.UpdateRoleAliasRequest(input)
24236	return out, req.Send()
24237}
24238
24239// UpdateRoleAliasWithContext is the same as UpdateRoleAlias with the addition of
24240// the ability to pass a context and additional request options.
24241//
24242// See UpdateRoleAlias for details on how to use this API operation.
24243//
24244// The context must be non-nil and will be used for request cancellation. If
24245// the context is nil a panic will occur. In the future the SDK may create
24246// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24247// for more information on using Contexts.
24248func (c *IoT) UpdateRoleAliasWithContext(ctx aws.Context, input *UpdateRoleAliasInput, opts ...request.Option) (*UpdateRoleAliasOutput, error) {
24249	req, out := c.UpdateRoleAliasRequest(input)
24250	req.SetContext(ctx)
24251	req.ApplyOptions(opts...)
24252	return out, req.Send()
24253}
24254
24255const opUpdateScheduledAudit = "UpdateScheduledAudit"
24256
24257// UpdateScheduledAuditRequest generates a "aws/request.Request" representing the
24258// client's request for the UpdateScheduledAudit operation. The "output" return
24259// value will be populated with the request's response once the request completes
24260// successfully.
24261//
24262// Use "Send" method on the returned Request to send the API call to the service.
24263// the "output" return value is not valid until after Send returns without error.
24264//
24265// See UpdateScheduledAudit for more information on using the UpdateScheduledAudit
24266// API call, and error handling.
24267//
24268// This method is useful when you want to inject custom logic or configuration
24269// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24270//
24271//
24272//    // Example sending a request using the UpdateScheduledAuditRequest method.
24273//    req, resp := client.UpdateScheduledAuditRequest(params)
24274//
24275//    err := req.Send()
24276//    if err == nil { // resp is now filled
24277//        fmt.Println(resp)
24278//    }
24279func (c *IoT) UpdateScheduledAuditRequest(input *UpdateScheduledAuditInput) (req *request.Request, output *UpdateScheduledAuditOutput) {
24280	op := &request.Operation{
24281		Name:       opUpdateScheduledAudit,
24282		HTTPMethod: "PATCH",
24283		HTTPPath:   "/audit/scheduledaudits/{scheduledAuditName}",
24284	}
24285
24286	if input == nil {
24287		input = &UpdateScheduledAuditInput{}
24288	}
24289
24290	output = &UpdateScheduledAuditOutput{}
24291	req = c.newRequest(op, input, output)
24292	return
24293}
24294
24295// UpdateScheduledAudit API operation for AWS IoT.
24296//
24297// Updates a scheduled audit, including which checks are performed and how often
24298// the audit takes place.
24299//
24300// Requires permission to access the UpdateScheduledAudit (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24301// action.
24302//
24303// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24304// with awserr.Error's Code and Message methods to get detailed information about
24305// the error.
24306//
24307// See the AWS API reference guide for AWS IoT's
24308// API operation UpdateScheduledAudit for usage and error information.
24309//
24310// Returned Error Types:
24311//   * InvalidRequestException
24312//   The request is not valid.
24313//
24314//   * ResourceNotFoundException
24315//   The specified resource does not exist.
24316//
24317//   * ThrottlingException
24318//   The rate exceeds the limit.
24319//
24320//   * InternalFailureException
24321//   An unexpected error has occurred.
24322//
24323func (c *IoT) UpdateScheduledAudit(input *UpdateScheduledAuditInput) (*UpdateScheduledAuditOutput, error) {
24324	req, out := c.UpdateScheduledAuditRequest(input)
24325	return out, req.Send()
24326}
24327
24328// UpdateScheduledAuditWithContext is the same as UpdateScheduledAudit with the addition of
24329// the ability to pass a context and additional request options.
24330//
24331// See UpdateScheduledAudit for details on how to use this API operation.
24332//
24333// The context must be non-nil and will be used for request cancellation. If
24334// the context is nil a panic will occur. In the future the SDK may create
24335// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24336// for more information on using Contexts.
24337func (c *IoT) UpdateScheduledAuditWithContext(ctx aws.Context, input *UpdateScheduledAuditInput, opts ...request.Option) (*UpdateScheduledAuditOutput, error) {
24338	req, out := c.UpdateScheduledAuditRequest(input)
24339	req.SetContext(ctx)
24340	req.ApplyOptions(opts...)
24341	return out, req.Send()
24342}
24343
24344const opUpdateSecurityProfile = "UpdateSecurityProfile"
24345
24346// UpdateSecurityProfileRequest generates a "aws/request.Request" representing the
24347// client's request for the UpdateSecurityProfile operation. The "output" return
24348// value will be populated with the request's response once the request completes
24349// successfully.
24350//
24351// Use "Send" method on the returned Request to send the API call to the service.
24352// the "output" return value is not valid until after Send returns without error.
24353//
24354// See UpdateSecurityProfile for more information on using the UpdateSecurityProfile
24355// API call, and error handling.
24356//
24357// This method is useful when you want to inject custom logic or configuration
24358// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24359//
24360//
24361//    // Example sending a request using the UpdateSecurityProfileRequest method.
24362//    req, resp := client.UpdateSecurityProfileRequest(params)
24363//
24364//    err := req.Send()
24365//    if err == nil { // resp is now filled
24366//        fmt.Println(resp)
24367//    }
24368func (c *IoT) UpdateSecurityProfileRequest(input *UpdateSecurityProfileInput) (req *request.Request, output *UpdateSecurityProfileOutput) {
24369	op := &request.Operation{
24370		Name:       opUpdateSecurityProfile,
24371		HTTPMethod: "PATCH",
24372		HTTPPath:   "/security-profiles/{securityProfileName}",
24373	}
24374
24375	if input == nil {
24376		input = &UpdateSecurityProfileInput{}
24377	}
24378
24379	output = &UpdateSecurityProfileOutput{}
24380	req = c.newRequest(op, input, output)
24381	return
24382}
24383
24384// UpdateSecurityProfile API operation for AWS IoT.
24385//
24386// Updates a Device Defender security profile.
24387//
24388// Requires permission to access the UpdateSecurityProfile (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24389// action.
24390//
24391// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24392// with awserr.Error's Code and Message methods to get detailed information about
24393// the error.
24394//
24395// See the AWS API reference guide for AWS IoT's
24396// API operation UpdateSecurityProfile for usage and error information.
24397//
24398// Returned Error Types:
24399//   * InvalidRequestException
24400//   The request is not valid.
24401//
24402//   * ResourceNotFoundException
24403//   The specified resource does not exist.
24404//
24405//   * VersionConflictException
24406//   An exception thrown when the version of an entity specified with the expectedVersion
24407//   parameter does not match the latest version in the system.
24408//
24409//   * ThrottlingException
24410//   The rate exceeds the limit.
24411//
24412//   * InternalFailureException
24413//   An unexpected error has occurred.
24414//
24415func (c *IoT) UpdateSecurityProfile(input *UpdateSecurityProfileInput) (*UpdateSecurityProfileOutput, error) {
24416	req, out := c.UpdateSecurityProfileRequest(input)
24417	return out, req.Send()
24418}
24419
24420// UpdateSecurityProfileWithContext is the same as UpdateSecurityProfile with the addition of
24421// the ability to pass a context and additional request options.
24422//
24423// See UpdateSecurityProfile for details on how to use this API operation.
24424//
24425// The context must be non-nil and will be used for request cancellation. If
24426// the context is nil a panic will occur. In the future the SDK may create
24427// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24428// for more information on using Contexts.
24429func (c *IoT) UpdateSecurityProfileWithContext(ctx aws.Context, input *UpdateSecurityProfileInput, opts ...request.Option) (*UpdateSecurityProfileOutput, error) {
24430	req, out := c.UpdateSecurityProfileRequest(input)
24431	req.SetContext(ctx)
24432	req.ApplyOptions(opts...)
24433	return out, req.Send()
24434}
24435
24436const opUpdateStream = "UpdateStream"
24437
24438// UpdateStreamRequest generates a "aws/request.Request" representing the
24439// client's request for the UpdateStream operation. The "output" return
24440// value will be populated with the request's response once the request completes
24441// successfully.
24442//
24443// Use "Send" method on the returned Request to send the API call to the service.
24444// the "output" return value is not valid until after Send returns without error.
24445//
24446// See UpdateStream for more information on using the UpdateStream
24447// API call, and error handling.
24448//
24449// This method is useful when you want to inject custom logic or configuration
24450// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24451//
24452//
24453//    // Example sending a request using the UpdateStreamRequest method.
24454//    req, resp := client.UpdateStreamRequest(params)
24455//
24456//    err := req.Send()
24457//    if err == nil { // resp is now filled
24458//        fmt.Println(resp)
24459//    }
24460func (c *IoT) UpdateStreamRequest(input *UpdateStreamInput) (req *request.Request, output *UpdateStreamOutput) {
24461	op := &request.Operation{
24462		Name:       opUpdateStream,
24463		HTTPMethod: "PUT",
24464		HTTPPath:   "/streams/{streamId}",
24465	}
24466
24467	if input == nil {
24468		input = &UpdateStreamInput{}
24469	}
24470
24471	output = &UpdateStreamOutput{}
24472	req = c.newRequest(op, input, output)
24473	return
24474}
24475
24476// UpdateStream API operation for AWS IoT.
24477//
24478// Updates an existing stream. The stream version will be incremented by one.
24479//
24480// Requires permission to access the UpdateStream (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24481// action.
24482//
24483// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24484// with awserr.Error's Code and Message methods to get detailed information about
24485// the error.
24486//
24487// See the AWS API reference guide for AWS IoT's
24488// API operation UpdateStream for usage and error information.
24489//
24490// Returned Error Types:
24491//   * InvalidRequestException
24492//   The request is not valid.
24493//
24494//   * ResourceNotFoundException
24495//   The specified resource does not exist.
24496//
24497//   * ThrottlingException
24498//   The rate exceeds the limit.
24499//
24500//   * UnauthorizedException
24501//   You are not authorized to perform this operation.
24502//
24503//   * ServiceUnavailableException
24504//   The service is temporarily unavailable.
24505//
24506//   * InternalFailureException
24507//   An unexpected error has occurred.
24508//
24509func (c *IoT) UpdateStream(input *UpdateStreamInput) (*UpdateStreamOutput, error) {
24510	req, out := c.UpdateStreamRequest(input)
24511	return out, req.Send()
24512}
24513
24514// UpdateStreamWithContext is the same as UpdateStream with the addition of
24515// the ability to pass a context and additional request options.
24516//
24517// See UpdateStream for details on how to use this API operation.
24518//
24519// The context must be non-nil and will be used for request cancellation. If
24520// the context is nil a panic will occur. In the future the SDK may create
24521// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24522// for more information on using Contexts.
24523func (c *IoT) UpdateStreamWithContext(ctx aws.Context, input *UpdateStreamInput, opts ...request.Option) (*UpdateStreamOutput, error) {
24524	req, out := c.UpdateStreamRequest(input)
24525	req.SetContext(ctx)
24526	req.ApplyOptions(opts...)
24527	return out, req.Send()
24528}
24529
24530const opUpdateThing = "UpdateThing"
24531
24532// UpdateThingRequest generates a "aws/request.Request" representing the
24533// client's request for the UpdateThing operation. The "output" return
24534// value will be populated with the request's response once the request completes
24535// successfully.
24536//
24537// Use "Send" method on the returned Request to send the API call to the service.
24538// the "output" return value is not valid until after Send returns without error.
24539//
24540// See UpdateThing for more information on using the UpdateThing
24541// API call, and error handling.
24542//
24543// This method is useful when you want to inject custom logic or configuration
24544// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24545//
24546//
24547//    // Example sending a request using the UpdateThingRequest method.
24548//    req, resp := client.UpdateThingRequest(params)
24549//
24550//    err := req.Send()
24551//    if err == nil { // resp is now filled
24552//        fmt.Println(resp)
24553//    }
24554func (c *IoT) UpdateThingRequest(input *UpdateThingInput) (req *request.Request, output *UpdateThingOutput) {
24555	op := &request.Operation{
24556		Name:       opUpdateThing,
24557		HTTPMethod: "PATCH",
24558		HTTPPath:   "/things/{thingName}",
24559	}
24560
24561	if input == nil {
24562		input = &UpdateThingInput{}
24563	}
24564
24565	output = &UpdateThingOutput{}
24566	req = c.newRequest(op, input, output)
24567	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
24568	return
24569}
24570
24571// UpdateThing API operation for AWS IoT.
24572//
24573// Updates the data for a thing.
24574//
24575// Requires permission to access the UpdateThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24576// action.
24577//
24578// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24579// with awserr.Error's Code and Message methods to get detailed information about
24580// the error.
24581//
24582// See the AWS API reference guide for AWS IoT's
24583// API operation UpdateThing for usage and error information.
24584//
24585// Returned Error Types:
24586//   * InvalidRequestException
24587//   The request is not valid.
24588//
24589//   * VersionConflictException
24590//   An exception thrown when the version of an entity specified with the expectedVersion
24591//   parameter does not match the latest version in the system.
24592//
24593//   * ThrottlingException
24594//   The rate exceeds the limit.
24595//
24596//   * UnauthorizedException
24597//   You are not authorized to perform this operation.
24598//
24599//   * ServiceUnavailableException
24600//   The service is temporarily unavailable.
24601//
24602//   * InternalFailureException
24603//   An unexpected error has occurred.
24604//
24605//   * ResourceNotFoundException
24606//   The specified resource does not exist.
24607//
24608func (c *IoT) UpdateThing(input *UpdateThingInput) (*UpdateThingOutput, error) {
24609	req, out := c.UpdateThingRequest(input)
24610	return out, req.Send()
24611}
24612
24613// UpdateThingWithContext is the same as UpdateThing with the addition of
24614// the ability to pass a context and additional request options.
24615//
24616// See UpdateThing for details on how to use this API operation.
24617//
24618// The context must be non-nil and will be used for request cancellation. If
24619// the context is nil a panic will occur. In the future the SDK may create
24620// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24621// for more information on using Contexts.
24622func (c *IoT) UpdateThingWithContext(ctx aws.Context, input *UpdateThingInput, opts ...request.Option) (*UpdateThingOutput, error) {
24623	req, out := c.UpdateThingRequest(input)
24624	req.SetContext(ctx)
24625	req.ApplyOptions(opts...)
24626	return out, req.Send()
24627}
24628
24629const opUpdateThingGroup = "UpdateThingGroup"
24630
24631// UpdateThingGroupRequest generates a "aws/request.Request" representing the
24632// client's request for the UpdateThingGroup operation. The "output" return
24633// value will be populated with the request's response once the request completes
24634// successfully.
24635//
24636// Use "Send" method on the returned Request to send the API call to the service.
24637// the "output" return value is not valid until after Send returns without error.
24638//
24639// See UpdateThingGroup for more information on using the UpdateThingGroup
24640// API call, and error handling.
24641//
24642// This method is useful when you want to inject custom logic or configuration
24643// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24644//
24645//
24646//    // Example sending a request using the UpdateThingGroupRequest method.
24647//    req, resp := client.UpdateThingGroupRequest(params)
24648//
24649//    err := req.Send()
24650//    if err == nil { // resp is now filled
24651//        fmt.Println(resp)
24652//    }
24653func (c *IoT) UpdateThingGroupRequest(input *UpdateThingGroupInput) (req *request.Request, output *UpdateThingGroupOutput) {
24654	op := &request.Operation{
24655		Name:       opUpdateThingGroup,
24656		HTTPMethod: "PATCH",
24657		HTTPPath:   "/thing-groups/{thingGroupName}",
24658	}
24659
24660	if input == nil {
24661		input = &UpdateThingGroupInput{}
24662	}
24663
24664	output = &UpdateThingGroupOutput{}
24665	req = c.newRequest(op, input, output)
24666	return
24667}
24668
24669// UpdateThingGroup API operation for AWS IoT.
24670//
24671// Update a thing group.
24672//
24673// Requires permission to access the UpdateThingGroup (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24674// action.
24675//
24676// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24677// with awserr.Error's Code and Message methods to get detailed information about
24678// the error.
24679//
24680// See the AWS API reference guide for AWS IoT's
24681// API operation UpdateThingGroup for usage and error information.
24682//
24683// Returned Error Types:
24684//   * InvalidRequestException
24685//   The request is not valid.
24686//
24687//   * VersionConflictException
24688//   An exception thrown when the version of an entity specified with the expectedVersion
24689//   parameter does not match the latest version in the system.
24690//
24691//   * ThrottlingException
24692//   The rate exceeds the limit.
24693//
24694//   * InternalFailureException
24695//   An unexpected error has occurred.
24696//
24697//   * ResourceNotFoundException
24698//   The specified resource does not exist.
24699//
24700func (c *IoT) UpdateThingGroup(input *UpdateThingGroupInput) (*UpdateThingGroupOutput, error) {
24701	req, out := c.UpdateThingGroupRequest(input)
24702	return out, req.Send()
24703}
24704
24705// UpdateThingGroupWithContext is the same as UpdateThingGroup with the addition of
24706// the ability to pass a context and additional request options.
24707//
24708// See UpdateThingGroup for details on how to use this API operation.
24709//
24710// The context must be non-nil and will be used for request cancellation. If
24711// the context is nil a panic will occur. In the future the SDK may create
24712// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24713// for more information on using Contexts.
24714func (c *IoT) UpdateThingGroupWithContext(ctx aws.Context, input *UpdateThingGroupInput, opts ...request.Option) (*UpdateThingGroupOutput, error) {
24715	req, out := c.UpdateThingGroupRequest(input)
24716	req.SetContext(ctx)
24717	req.ApplyOptions(opts...)
24718	return out, req.Send()
24719}
24720
24721const opUpdateThingGroupsForThing = "UpdateThingGroupsForThing"
24722
24723// UpdateThingGroupsForThingRequest generates a "aws/request.Request" representing the
24724// client's request for the UpdateThingGroupsForThing operation. The "output" return
24725// value will be populated with the request's response once the request completes
24726// successfully.
24727//
24728// Use "Send" method on the returned Request to send the API call to the service.
24729// the "output" return value is not valid until after Send returns without error.
24730//
24731// See UpdateThingGroupsForThing for more information on using the UpdateThingGroupsForThing
24732// API call, and error handling.
24733//
24734// This method is useful when you want to inject custom logic or configuration
24735// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24736//
24737//
24738//    // Example sending a request using the UpdateThingGroupsForThingRequest method.
24739//    req, resp := client.UpdateThingGroupsForThingRequest(params)
24740//
24741//    err := req.Send()
24742//    if err == nil { // resp is now filled
24743//        fmt.Println(resp)
24744//    }
24745func (c *IoT) UpdateThingGroupsForThingRequest(input *UpdateThingGroupsForThingInput) (req *request.Request, output *UpdateThingGroupsForThingOutput) {
24746	op := &request.Operation{
24747		Name:       opUpdateThingGroupsForThing,
24748		HTTPMethod: "PUT",
24749		HTTPPath:   "/thing-groups/updateThingGroupsForThing",
24750	}
24751
24752	if input == nil {
24753		input = &UpdateThingGroupsForThingInput{}
24754	}
24755
24756	output = &UpdateThingGroupsForThingOutput{}
24757	req = c.newRequest(op, input, output)
24758	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
24759	return
24760}
24761
24762// UpdateThingGroupsForThing API operation for AWS IoT.
24763//
24764// Updates the groups to which the thing belongs.
24765//
24766// Requires permission to access the UpdateThingGroupsForThing (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24767// action.
24768//
24769// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24770// with awserr.Error's Code and Message methods to get detailed information about
24771// the error.
24772//
24773// See the AWS API reference guide for AWS IoT's
24774// API operation UpdateThingGroupsForThing for usage and error information.
24775//
24776// Returned Error Types:
24777//   * InvalidRequestException
24778//   The request is not valid.
24779//
24780//   * ThrottlingException
24781//   The rate exceeds the limit.
24782//
24783//   * InternalFailureException
24784//   An unexpected error has occurred.
24785//
24786//   * ResourceNotFoundException
24787//   The specified resource does not exist.
24788//
24789func (c *IoT) UpdateThingGroupsForThing(input *UpdateThingGroupsForThingInput) (*UpdateThingGroupsForThingOutput, error) {
24790	req, out := c.UpdateThingGroupsForThingRequest(input)
24791	return out, req.Send()
24792}
24793
24794// UpdateThingGroupsForThingWithContext is the same as UpdateThingGroupsForThing with the addition of
24795// the ability to pass a context and additional request options.
24796//
24797// See UpdateThingGroupsForThing for details on how to use this API operation.
24798//
24799// The context must be non-nil and will be used for request cancellation. If
24800// the context is nil a panic will occur. In the future the SDK may create
24801// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24802// for more information on using Contexts.
24803func (c *IoT) UpdateThingGroupsForThingWithContext(ctx aws.Context, input *UpdateThingGroupsForThingInput, opts ...request.Option) (*UpdateThingGroupsForThingOutput, error) {
24804	req, out := c.UpdateThingGroupsForThingRequest(input)
24805	req.SetContext(ctx)
24806	req.ApplyOptions(opts...)
24807	return out, req.Send()
24808}
24809
24810const opUpdateTopicRuleDestination = "UpdateTopicRuleDestination"
24811
24812// UpdateTopicRuleDestinationRequest generates a "aws/request.Request" representing the
24813// client's request for the UpdateTopicRuleDestination operation. The "output" return
24814// value will be populated with the request's response once the request completes
24815// successfully.
24816//
24817// Use "Send" method on the returned Request to send the API call to the service.
24818// the "output" return value is not valid until after Send returns without error.
24819//
24820// See UpdateTopicRuleDestination for more information on using the UpdateTopicRuleDestination
24821// API call, and error handling.
24822//
24823// This method is useful when you want to inject custom logic or configuration
24824// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24825//
24826//
24827//    // Example sending a request using the UpdateTopicRuleDestinationRequest method.
24828//    req, resp := client.UpdateTopicRuleDestinationRequest(params)
24829//
24830//    err := req.Send()
24831//    if err == nil { // resp is now filled
24832//        fmt.Println(resp)
24833//    }
24834func (c *IoT) UpdateTopicRuleDestinationRequest(input *UpdateTopicRuleDestinationInput) (req *request.Request, output *UpdateTopicRuleDestinationOutput) {
24835	op := &request.Operation{
24836		Name:       opUpdateTopicRuleDestination,
24837		HTTPMethod: "PATCH",
24838		HTTPPath:   "/destinations",
24839	}
24840
24841	if input == nil {
24842		input = &UpdateTopicRuleDestinationInput{}
24843	}
24844
24845	output = &UpdateTopicRuleDestinationOutput{}
24846	req = c.newRequest(op, input, output)
24847	req.Handlers.Unmarshal.Swap(restjson.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
24848	return
24849}
24850
24851// UpdateTopicRuleDestination API operation for AWS IoT.
24852//
24853// Updates a topic rule destination. You use this to change the status, endpoint
24854// URL, or confirmation URL of the destination.
24855//
24856// Requires permission to access the UpdateTopicRuleDestination (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24857// action.
24858//
24859// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24860// with awserr.Error's Code and Message methods to get detailed information about
24861// the error.
24862//
24863// See the AWS API reference guide for AWS IoT's
24864// API operation UpdateTopicRuleDestination for usage and error information.
24865//
24866// Returned Error Types:
24867//   * InternalException
24868//   An unexpected error has occurred.
24869//
24870//   * InvalidRequestException
24871//   The request is not valid.
24872//
24873//   * ServiceUnavailableException
24874//   The service is temporarily unavailable.
24875//
24876//   * UnauthorizedException
24877//   You are not authorized to perform this operation.
24878//
24879//   * ConflictingResourceUpdateException
24880//   A conflicting resource update exception. This exception is thrown when two
24881//   pending updates cause a conflict.
24882//
24883func (c *IoT) UpdateTopicRuleDestination(input *UpdateTopicRuleDestinationInput) (*UpdateTopicRuleDestinationOutput, error) {
24884	req, out := c.UpdateTopicRuleDestinationRequest(input)
24885	return out, req.Send()
24886}
24887
24888// UpdateTopicRuleDestinationWithContext is the same as UpdateTopicRuleDestination with the addition of
24889// the ability to pass a context and additional request options.
24890//
24891// See UpdateTopicRuleDestination for details on how to use this API operation.
24892//
24893// The context must be non-nil and will be used for request cancellation. If
24894// the context is nil a panic will occur. In the future the SDK may create
24895// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24896// for more information on using Contexts.
24897func (c *IoT) UpdateTopicRuleDestinationWithContext(ctx aws.Context, input *UpdateTopicRuleDestinationInput, opts ...request.Option) (*UpdateTopicRuleDestinationOutput, error) {
24898	req, out := c.UpdateTopicRuleDestinationRequest(input)
24899	req.SetContext(ctx)
24900	req.ApplyOptions(opts...)
24901	return out, req.Send()
24902}
24903
24904const opValidateSecurityProfileBehaviors = "ValidateSecurityProfileBehaviors"
24905
24906// ValidateSecurityProfileBehaviorsRequest generates a "aws/request.Request" representing the
24907// client's request for the ValidateSecurityProfileBehaviors operation. The "output" return
24908// value will be populated with the request's response once the request completes
24909// successfully.
24910//
24911// Use "Send" method on the returned Request to send the API call to the service.
24912// the "output" return value is not valid until after Send returns without error.
24913//
24914// See ValidateSecurityProfileBehaviors for more information on using the ValidateSecurityProfileBehaviors
24915// API call, and error handling.
24916//
24917// This method is useful when you want to inject custom logic or configuration
24918// into the SDK's request lifecycle. Such as custom headers, or retry logic.
24919//
24920//
24921//    // Example sending a request using the ValidateSecurityProfileBehaviorsRequest method.
24922//    req, resp := client.ValidateSecurityProfileBehaviorsRequest(params)
24923//
24924//    err := req.Send()
24925//    if err == nil { // resp is now filled
24926//        fmt.Println(resp)
24927//    }
24928func (c *IoT) ValidateSecurityProfileBehaviorsRequest(input *ValidateSecurityProfileBehaviorsInput) (req *request.Request, output *ValidateSecurityProfileBehaviorsOutput) {
24929	op := &request.Operation{
24930		Name:       opValidateSecurityProfileBehaviors,
24931		HTTPMethod: "POST",
24932		HTTPPath:   "/security-profile-behaviors/validate",
24933	}
24934
24935	if input == nil {
24936		input = &ValidateSecurityProfileBehaviorsInput{}
24937	}
24938
24939	output = &ValidateSecurityProfileBehaviorsOutput{}
24940	req = c.newRequest(op, input, output)
24941	return
24942}
24943
24944// ValidateSecurityProfileBehaviors API operation for AWS IoT.
24945//
24946// Validates a Device Defender security profile behaviors specification.
24947//
24948// Requires permission to access the ValidateSecurityProfileBehaviors (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
24949// action.
24950//
24951// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
24952// with awserr.Error's Code and Message methods to get detailed information about
24953// the error.
24954//
24955// See the AWS API reference guide for AWS IoT's
24956// API operation ValidateSecurityProfileBehaviors for usage and error information.
24957//
24958// Returned Error Types:
24959//   * InvalidRequestException
24960//   The request is not valid.
24961//
24962//   * ThrottlingException
24963//   The rate exceeds the limit.
24964//
24965//   * InternalFailureException
24966//   An unexpected error has occurred.
24967//
24968func (c *IoT) ValidateSecurityProfileBehaviors(input *ValidateSecurityProfileBehaviorsInput) (*ValidateSecurityProfileBehaviorsOutput, error) {
24969	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
24970	return out, req.Send()
24971}
24972
24973// ValidateSecurityProfileBehaviorsWithContext is the same as ValidateSecurityProfileBehaviors with the addition of
24974// the ability to pass a context and additional request options.
24975//
24976// See ValidateSecurityProfileBehaviors for details on how to use this API operation.
24977//
24978// The context must be non-nil and will be used for request cancellation. If
24979// the context is nil a panic will occur. In the future the SDK may create
24980// sub-contexts for http.Requests. See https://golang.org/pkg/context/
24981// for more information on using Contexts.
24982func (c *IoT) ValidateSecurityProfileBehaviorsWithContext(ctx aws.Context, input *ValidateSecurityProfileBehaviorsInput, opts ...request.Option) (*ValidateSecurityProfileBehaviorsOutput, error) {
24983	req, out := c.ValidateSecurityProfileBehaviorsRequest(input)
24984	req.SetContext(ctx)
24985	req.ApplyOptions(opts...)
24986	return out, req.Send()
24987}
24988
24989// The criteria that determine when and how a job abort takes place.
24990type AbortConfig struct {
24991	_ struct{} `type:"structure"`
24992
24993	// The list of criteria that determine when and how to abort the job.
24994	//
24995	// CriteriaList is a required field
24996	CriteriaList []*AbortCriteria `locationName:"criteriaList" min:"1" type:"list" required:"true"`
24997}
24998
24999// String returns the string representation.
25000//
25001// API parameter values that are decorated as "sensitive" in the API will not
25002// be included in the string output. The member name will be present, but the
25003// value will be replaced with "sensitive".
25004func (s AbortConfig) String() string {
25005	return awsutil.Prettify(s)
25006}
25007
25008// GoString returns the string representation.
25009//
25010// API parameter values that are decorated as "sensitive" in the API will not
25011// be included in the string output. The member name will be present, but the
25012// value will be replaced with "sensitive".
25013func (s AbortConfig) GoString() string {
25014	return s.String()
25015}
25016
25017// Validate inspects the fields of the type to determine if they are valid.
25018func (s *AbortConfig) Validate() error {
25019	invalidParams := request.ErrInvalidParams{Context: "AbortConfig"}
25020	if s.CriteriaList == nil {
25021		invalidParams.Add(request.NewErrParamRequired("CriteriaList"))
25022	}
25023	if s.CriteriaList != nil && len(s.CriteriaList) < 1 {
25024		invalidParams.Add(request.NewErrParamMinLen("CriteriaList", 1))
25025	}
25026	if s.CriteriaList != nil {
25027		for i, v := range s.CriteriaList {
25028			if v == nil {
25029				continue
25030			}
25031			if err := v.Validate(); err != nil {
25032				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CriteriaList", i), err.(request.ErrInvalidParams))
25033			}
25034		}
25035	}
25036
25037	if invalidParams.Len() > 0 {
25038		return invalidParams
25039	}
25040	return nil
25041}
25042
25043// SetCriteriaList sets the CriteriaList field's value.
25044func (s *AbortConfig) SetCriteriaList(v []*AbortCriteria) *AbortConfig {
25045	s.CriteriaList = v
25046	return s
25047}
25048
25049// The criteria that determine when and how a job abort takes place.
25050type AbortCriteria struct {
25051	_ struct{} `type:"structure"`
25052
25053	// The type of job action to take to initiate the job abort.
25054	//
25055	// Action is a required field
25056	Action *string `locationName:"action" type:"string" required:"true" enum:"AbortAction"`
25057
25058	// The type of job execution failures that can initiate a job abort.
25059	//
25060	// FailureType is a required field
25061	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"JobExecutionFailureType"`
25062
25063	// The minimum number of things which must receive job execution notifications
25064	// before the job can be aborted.
25065	//
25066	// MinNumberOfExecutedThings is a required field
25067	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
25068
25069	// The minimum percentage of job execution failures that must occur to initiate
25070	// the job abort.
25071	//
25072	// Amazon Web Services IoT Core supports up to two digits after the decimal
25073	// (for example, 10.9 and 10.99, but not 10.999).
25074	//
25075	// ThresholdPercentage is a required field
25076	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
25077}
25078
25079// String returns the string representation.
25080//
25081// API parameter values that are decorated as "sensitive" in the API will not
25082// be included in the string output. The member name will be present, but the
25083// value will be replaced with "sensitive".
25084func (s AbortCriteria) String() string {
25085	return awsutil.Prettify(s)
25086}
25087
25088// GoString returns the string representation.
25089//
25090// API parameter values that are decorated as "sensitive" in the API will not
25091// be included in the string output. The member name will be present, but the
25092// value will be replaced with "sensitive".
25093func (s AbortCriteria) GoString() string {
25094	return s.String()
25095}
25096
25097// Validate inspects the fields of the type to determine if they are valid.
25098func (s *AbortCriteria) Validate() error {
25099	invalidParams := request.ErrInvalidParams{Context: "AbortCriteria"}
25100	if s.Action == nil {
25101		invalidParams.Add(request.NewErrParamRequired("Action"))
25102	}
25103	if s.FailureType == nil {
25104		invalidParams.Add(request.NewErrParamRequired("FailureType"))
25105	}
25106	if s.MinNumberOfExecutedThings == nil {
25107		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
25108	}
25109	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
25110		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
25111	}
25112	if s.ThresholdPercentage == nil {
25113		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
25114	}
25115
25116	if invalidParams.Len() > 0 {
25117		return invalidParams
25118	}
25119	return nil
25120}
25121
25122// SetAction sets the Action field's value.
25123func (s *AbortCriteria) SetAction(v string) *AbortCriteria {
25124	s.Action = &v
25125	return s
25126}
25127
25128// SetFailureType sets the FailureType field's value.
25129func (s *AbortCriteria) SetFailureType(v string) *AbortCriteria {
25130	s.FailureType = &v
25131	return s
25132}
25133
25134// SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
25135func (s *AbortCriteria) SetMinNumberOfExecutedThings(v int64) *AbortCriteria {
25136	s.MinNumberOfExecutedThings = &v
25137	return s
25138}
25139
25140// SetThresholdPercentage sets the ThresholdPercentage field's value.
25141func (s *AbortCriteria) SetThresholdPercentage(v float64) *AbortCriteria {
25142	s.ThresholdPercentage = &v
25143	return s
25144}
25145
25146// The input for the AcceptCertificateTransfer operation.
25147type AcceptCertificateTransferInput struct {
25148	_ struct{} `type:"structure" nopayload:"true"`
25149
25150	// The ID of the certificate. (The last part of the certificate ARN contains
25151	// the certificate ID.)
25152	//
25153	// CertificateId is a required field
25154	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
25155
25156	// Specifies whether the certificate is active.
25157	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
25158}
25159
25160// String returns the string representation.
25161//
25162// API parameter values that are decorated as "sensitive" in the API will not
25163// be included in the string output. The member name will be present, but the
25164// value will be replaced with "sensitive".
25165func (s AcceptCertificateTransferInput) String() string {
25166	return awsutil.Prettify(s)
25167}
25168
25169// GoString returns the string representation.
25170//
25171// API parameter values that are decorated as "sensitive" in the API will not
25172// be included in the string output. The member name will be present, but the
25173// value will be replaced with "sensitive".
25174func (s AcceptCertificateTransferInput) GoString() string {
25175	return s.String()
25176}
25177
25178// Validate inspects the fields of the type to determine if they are valid.
25179func (s *AcceptCertificateTransferInput) Validate() error {
25180	invalidParams := request.ErrInvalidParams{Context: "AcceptCertificateTransferInput"}
25181	if s.CertificateId == nil {
25182		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
25183	}
25184	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
25185		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
25186	}
25187
25188	if invalidParams.Len() > 0 {
25189		return invalidParams
25190	}
25191	return nil
25192}
25193
25194// SetCertificateId sets the CertificateId field's value.
25195func (s *AcceptCertificateTransferInput) SetCertificateId(v string) *AcceptCertificateTransferInput {
25196	s.CertificateId = &v
25197	return s
25198}
25199
25200// SetSetAsActive sets the SetAsActive field's value.
25201func (s *AcceptCertificateTransferInput) SetSetAsActive(v bool) *AcceptCertificateTransferInput {
25202	s.SetAsActive = &v
25203	return s
25204}
25205
25206type AcceptCertificateTransferOutput struct {
25207	_ struct{} `type:"structure"`
25208}
25209
25210// String returns the string representation.
25211//
25212// API parameter values that are decorated as "sensitive" in the API will not
25213// be included in the string output. The member name will be present, but the
25214// value will be replaced with "sensitive".
25215func (s AcceptCertificateTransferOutput) String() string {
25216	return awsutil.Prettify(s)
25217}
25218
25219// GoString returns the string representation.
25220//
25221// API parameter values that are decorated as "sensitive" in the API will not
25222// be included in the string output. The member name will be present, but the
25223// value will be replaced with "sensitive".
25224func (s AcceptCertificateTransferOutput) GoString() string {
25225	return s.String()
25226}
25227
25228// Describes the actions associated with a rule.
25229type Action struct {
25230	_ struct{} `type:"structure"`
25231
25232	// Change the state of a CloudWatch alarm.
25233	CloudwatchAlarm *CloudwatchAlarmAction `locationName:"cloudwatchAlarm" type:"structure"`
25234
25235	// Send data to CloudWatch Logs.
25236	CloudwatchLogs *CloudwatchLogsAction `locationName:"cloudwatchLogs" type:"structure"`
25237
25238	// Capture a CloudWatch metric.
25239	CloudwatchMetric *CloudwatchMetricAction `locationName:"cloudwatchMetric" type:"structure"`
25240
25241	// Write to a DynamoDB table.
25242	DynamoDB *DynamoDBAction `locationName:"dynamoDB" type:"structure"`
25243
25244	// Write to a DynamoDB table. This is a new version of the DynamoDB action.
25245	// It allows you to write each attribute in an MQTT message payload into a separate
25246	// DynamoDB column.
25247	DynamoDBv2 *DynamoDBv2Action `locationName:"dynamoDBv2" type:"structure"`
25248
25249	// Write data to an Amazon OpenSearch Service domain.
25250	//
25251	// The Elasticsearch action can only be used by existing rule actions. To create
25252	// a new rule action or to update an existing rule action, use the OpenSearch
25253	// rule action instead. For more information, see OpenSearchAction (https://docs.aws.amazon.com/iot/latest/apireference/API_OpenSearchAction.html).
25254	Elasticsearch *ElasticsearchAction `locationName:"elasticsearch" type:"structure"`
25255
25256	// Write to an Amazon Kinesis Firehose stream.
25257	Firehose *FirehoseAction `locationName:"firehose" type:"structure"`
25258
25259	// Send data to an HTTPS endpoint.
25260	Http *HttpAction `locationName:"http" type:"structure"`
25261
25262	// Sends message data to an IoT Analytics channel.
25263	IotAnalytics *IotAnalyticsAction `locationName:"iotAnalytics" type:"structure"`
25264
25265	// Sends an input to an IoT Events detector.
25266	IotEvents *IotEventsAction `locationName:"iotEvents" type:"structure"`
25267
25268	// Sends data from the MQTT message that triggered the rule to IoT SiteWise
25269	// asset properties.
25270	IotSiteWise *IotSiteWiseAction `locationName:"iotSiteWise" type:"structure"`
25271
25272	// Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK)
25273	// or self-managed Apache Kafka cluster.
25274	Kafka *KafkaAction `locationName:"kafka" type:"structure"`
25275
25276	// Write data to an Amazon Kinesis stream.
25277	Kinesis *KinesisAction `locationName:"kinesis" type:"structure"`
25278
25279	// Invoke a Lambda function.
25280	Lambda *LambdaAction `locationName:"lambda" type:"structure"`
25281
25282	// Write data to an Amazon OpenSearch Service domain.
25283	OpenSearch *OpenSearchAction `locationName:"openSearch" type:"structure"`
25284
25285	// Publish to another MQTT topic.
25286	Republish *RepublishAction `locationName:"republish" type:"structure"`
25287
25288	// Write to an Amazon S3 bucket.
25289	S3 *S3Action `locationName:"s3" type:"structure"`
25290
25291	// Send a message to a Salesforce IoT Cloud Input Stream.
25292	Salesforce *SalesforceAction `locationName:"salesforce" type:"structure"`
25293
25294	// Publish to an Amazon SNS topic.
25295	Sns *SnsAction `locationName:"sns" type:"structure"`
25296
25297	// Publish to an Amazon SQS queue.
25298	Sqs *SqsAction `locationName:"sqs" type:"structure"`
25299
25300	// Starts execution of a Step Functions state machine.
25301	StepFunctions *StepFunctionsAction `locationName:"stepFunctions" type:"structure"`
25302
25303	// The Timestream rule action writes attributes (measures) from an MQTT message
25304	// into an Amazon Timestream table. For more information, see the Timestream
25305	// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
25306	// topic rule action documentation.
25307	Timestream *TimestreamAction `locationName:"timestream" type:"structure"`
25308}
25309
25310// String returns the string representation.
25311//
25312// API parameter values that are decorated as "sensitive" in the API will not
25313// be included in the string output. The member name will be present, but the
25314// value will be replaced with "sensitive".
25315func (s Action) String() string {
25316	return awsutil.Prettify(s)
25317}
25318
25319// GoString returns the string representation.
25320//
25321// API parameter values that are decorated as "sensitive" in the API will not
25322// be included in the string output. The member name will be present, but the
25323// value will be replaced with "sensitive".
25324func (s Action) GoString() string {
25325	return s.String()
25326}
25327
25328// Validate inspects the fields of the type to determine if they are valid.
25329func (s *Action) Validate() error {
25330	invalidParams := request.ErrInvalidParams{Context: "Action"}
25331	if s.CloudwatchAlarm != nil {
25332		if err := s.CloudwatchAlarm.Validate(); err != nil {
25333			invalidParams.AddNested("CloudwatchAlarm", err.(request.ErrInvalidParams))
25334		}
25335	}
25336	if s.CloudwatchLogs != nil {
25337		if err := s.CloudwatchLogs.Validate(); err != nil {
25338			invalidParams.AddNested("CloudwatchLogs", err.(request.ErrInvalidParams))
25339		}
25340	}
25341	if s.CloudwatchMetric != nil {
25342		if err := s.CloudwatchMetric.Validate(); err != nil {
25343			invalidParams.AddNested("CloudwatchMetric", err.(request.ErrInvalidParams))
25344		}
25345	}
25346	if s.DynamoDB != nil {
25347		if err := s.DynamoDB.Validate(); err != nil {
25348			invalidParams.AddNested("DynamoDB", err.(request.ErrInvalidParams))
25349		}
25350	}
25351	if s.DynamoDBv2 != nil {
25352		if err := s.DynamoDBv2.Validate(); err != nil {
25353			invalidParams.AddNested("DynamoDBv2", err.(request.ErrInvalidParams))
25354		}
25355	}
25356	if s.Elasticsearch != nil {
25357		if err := s.Elasticsearch.Validate(); err != nil {
25358			invalidParams.AddNested("Elasticsearch", err.(request.ErrInvalidParams))
25359		}
25360	}
25361	if s.Firehose != nil {
25362		if err := s.Firehose.Validate(); err != nil {
25363			invalidParams.AddNested("Firehose", err.(request.ErrInvalidParams))
25364		}
25365	}
25366	if s.Http != nil {
25367		if err := s.Http.Validate(); err != nil {
25368			invalidParams.AddNested("Http", err.(request.ErrInvalidParams))
25369		}
25370	}
25371	if s.IotEvents != nil {
25372		if err := s.IotEvents.Validate(); err != nil {
25373			invalidParams.AddNested("IotEvents", err.(request.ErrInvalidParams))
25374		}
25375	}
25376	if s.IotSiteWise != nil {
25377		if err := s.IotSiteWise.Validate(); err != nil {
25378			invalidParams.AddNested("IotSiteWise", err.(request.ErrInvalidParams))
25379		}
25380	}
25381	if s.Kafka != nil {
25382		if err := s.Kafka.Validate(); err != nil {
25383			invalidParams.AddNested("Kafka", err.(request.ErrInvalidParams))
25384		}
25385	}
25386	if s.Kinesis != nil {
25387		if err := s.Kinesis.Validate(); err != nil {
25388			invalidParams.AddNested("Kinesis", err.(request.ErrInvalidParams))
25389		}
25390	}
25391	if s.Lambda != nil {
25392		if err := s.Lambda.Validate(); err != nil {
25393			invalidParams.AddNested("Lambda", err.(request.ErrInvalidParams))
25394		}
25395	}
25396	if s.OpenSearch != nil {
25397		if err := s.OpenSearch.Validate(); err != nil {
25398			invalidParams.AddNested("OpenSearch", err.(request.ErrInvalidParams))
25399		}
25400	}
25401	if s.Republish != nil {
25402		if err := s.Republish.Validate(); err != nil {
25403			invalidParams.AddNested("Republish", err.(request.ErrInvalidParams))
25404		}
25405	}
25406	if s.S3 != nil {
25407		if err := s.S3.Validate(); err != nil {
25408			invalidParams.AddNested("S3", err.(request.ErrInvalidParams))
25409		}
25410	}
25411	if s.Salesforce != nil {
25412		if err := s.Salesforce.Validate(); err != nil {
25413			invalidParams.AddNested("Salesforce", err.(request.ErrInvalidParams))
25414		}
25415	}
25416	if s.Sns != nil {
25417		if err := s.Sns.Validate(); err != nil {
25418			invalidParams.AddNested("Sns", err.(request.ErrInvalidParams))
25419		}
25420	}
25421	if s.Sqs != nil {
25422		if err := s.Sqs.Validate(); err != nil {
25423			invalidParams.AddNested("Sqs", err.(request.ErrInvalidParams))
25424		}
25425	}
25426	if s.StepFunctions != nil {
25427		if err := s.StepFunctions.Validate(); err != nil {
25428			invalidParams.AddNested("StepFunctions", err.(request.ErrInvalidParams))
25429		}
25430	}
25431	if s.Timestream != nil {
25432		if err := s.Timestream.Validate(); err != nil {
25433			invalidParams.AddNested("Timestream", err.(request.ErrInvalidParams))
25434		}
25435	}
25436
25437	if invalidParams.Len() > 0 {
25438		return invalidParams
25439	}
25440	return nil
25441}
25442
25443// SetCloudwatchAlarm sets the CloudwatchAlarm field's value.
25444func (s *Action) SetCloudwatchAlarm(v *CloudwatchAlarmAction) *Action {
25445	s.CloudwatchAlarm = v
25446	return s
25447}
25448
25449// SetCloudwatchLogs sets the CloudwatchLogs field's value.
25450func (s *Action) SetCloudwatchLogs(v *CloudwatchLogsAction) *Action {
25451	s.CloudwatchLogs = v
25452	return s
25453}
25454
25455// SetCloudwatchMetric sets the CloudwatchMetric field's value.
25456func (s *Action) SetCloudwatchMetric(v *CloudwatchMetricAction) *Action {
25457	s.CloudwatchMetric = v
25458	return s
25459}
25460
25461// SetDynamoDB sets the DynamoDB field's value.
25462func (s *Action) SetDynamoDB(v *DynamoDBAction) *Action {
25463	s.DynamoDB = v
25464	return s
25465}
25466
25467// SetDynamoDBv2 sets the DynamoDBv2 field's value.
25468func (s *Action) SetDynamoDBv2(v *DynamoDBv2Action) *Action {
25469	s.DynamoDBv2 = v
25470	return s
25471}
25472
25473// SetElasticsearch sets the Elasticsearch field's value.
25474func (s *Action) SetElasticsearch(v *ElasticsearchAction) *Action {
25475	s.Elasticsearch = v
25476	return s
25477}
25478
25479// SetFirehose sets the Firehose field's value.
25480func (s *Action) SetFirehose(v *FirehoseAction) *Action {
25481	s.Firehose = v
25482	return s
25483}
25484
25485// SetHttp sets the Http field's value.
25486func (s *Action) SetHttp(v *HttpAction) *Action {
25487	s.Http = v
25488	return s
25489}
25490
25491// SetIotAnalytics sets the IotAnalytics field's value.
25492func (s *Action) SetIotAnalytics(v *IotAnalyticsAction) *Action {
25493	s.IotAnalytics = v
25494	return s
25495}
25496
25497// SetIotEvents sets the IotEvents field's value.
25498func (s *Action) SetIotEvents(v *IotEventsAction) *Action {
25499	s.IotEvents = v
25500	return s
25501}
25502
25503// SetIotSiteWise sets the IotSiteWise field's value.
25504func (s *Action) SetIotSiteWise(v *IotSiteWiseAction) *Action {
25505	s.IotSiteWise = v
25506	return s
25507}
25508
25509// SetKafka sets the Kafka field's value.
25510func (s *Action) SetKafka(v *KafkaAction) *Action {
25511	s.Kafka = v
25512	return s
25513}
25514
25515// SetKinesis sets the Kinesis field's value.
25516func (s *Action) SetKinesis(v *KinesisAction) *Action {
25517	s.Kinesis = v
25518	return s
25519}
25520
25521// SetLambda sets the Lambda field's value.
25522func (s *Action) SetLambda(v *LambdaAction) *Action {
25523	s.Lambda = v
25524	return s
25525}
25526
25527// SetOpenSearch sets the OpenSearch field's value.
25528func (s *Action) SetOpenSearch(v *OpenSearchAction) *Action {
25529	s.OpenSearch = v
25530	return s
25531}
25532
25533// SetRepublish sets the Republish field's value.
25534func (s *Action) SetRepublish(v *RepublishAction) *Action {
25535	s.Republish = v
25536	return s
25537}
25538
25539// SetS3 sets the S3 field's value.
25540func (s *Action) SetS3(v *S3Action) *Action {
25541	s.S3 = v
25542	return s
25543}
25544
25545// SetSalesforce sets the Salesforce field's value.
25546func (s *Action) SetSalesforce(v *SalesforceAction) *Action {
25547	s.Salesforce = v
25548	return s
25549}
25550
25551// SetSns sets the Sns field's value.
25552func (s *Action) SetSns(v *SnsAction) *Action {
25553	s.Sns = v
25554	return s
25555}
25556
25557// SetSqs sets the Sqs field's value.
25558func (s *Action) SetSqs(v *SqsAction) *Action {
25559	s.Sqs = v
25560	return s
25561}
25562
25563// SetStepFunctions sets the StepFunctions field's value.
25564func (s *Action) SetStepFunctions(v *StepFunctionsAction) *Action {
25565	s.StepFunctions = v
25566	return s
25567}
25568
25569// SetTimestream sets the Timestream field's value.
25570func (s *Action) SetTimestream(v *TimestreamAction) *Action {
25571	s.Timestream = v
25572	return s
25573}
25574
25575// Information about an active Device Defender security profile behavior violation.
25576type ActiveViolation struct {
25577	_ struct{} `type:"structure"`
25578
25579	// The behavior that is being violated.
25580	Behavior *Behavior `locationName:"behavior" type:"structure"`
25581
25582	// The time the most recent violation occurred.
25583	LastViolationTime *time.Time `locationName:"lastViolationTime" type:"timestamp"`
25584
25585	// The value of the metric (the measurement) that caused the most recent violation.
25586	LastViolationValue *MetricValue `locationName:"lastViolationValue" type:"structure"`
25587
25588	// The security profile with the behavior is in violation.
25589	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
25590
25591	// The name of the thing responsible for the active violation.
25592	ThingName *string `locationName:"thingName" min:"1" type:"string"`
25593
25594	// The verification state of the violation (detect alarm).
25595	VerificationState *string `locationName:"verificationState" type:"string" enum:"VerificationState"`
25596
25597	// The description of the verification state of the violation.
25598	VerificationStateDescription *string `locationName:"verificationStateDescription" type:"string"`
25599
25600	// The details of a violation event.
25601	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo `locationName:"violationEventAdditionalInfo" type:"structure"`
25602
25603	// The ID of the active violation.
25604	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
25605
25606	// The time the violation started.
25607	ViolationStartTime *time.Time `locationName:"violationStartTime" type:"timestamp"`
25608}
25609
25610// String returns the string representation.
25611//
25612// API parameter values that are decorated as "sensitive" in the API will not
25613// be included in the string output. The member name will be present, but the
25614// value will be replaced with "sensitive".
25615func (s ActiveViolation) String() string {
25616	return awsutil.Prettify(s)
25617}
25618
25619// GoString returns the string representation.
25620//
25621// API parameter values that are decorated as "sensitive" in the API will not
25622// be included in the string output. The member name will be present, but the
25623// value will be replaced with "sensitive".
25624func (s ActiveViolation) GoString() string {
25625	return s.String()
25626}
25627
25628// SetBehavior sets the Behavior field's value.
25629func (s *ActiveViolation) SetBehavior(v *Behavior) *ActiveViolation {
25630	s.Behavior = v
25631	return s
25632}
25633
25634// SetLastViolationTime sets the LastViolationTime field's value.
25635func (s *ActiveViolation) SetLastViolationTime(v time.Time) *ActiveViolation {
25636	s.LastViolationTime = &v
25637	return s
25638}
25639
25640// SetLastViolationValue sets the LastViolationValue field's value.
25641func (s *ActiveViolation) SetLastViolationValue(v *MetricValue) *ActiveViolation {
25642	s.LastViolationValue = v
25643	return s
25644}
25645
25646// SetSecurityProfileName sets the SecurityProfileName field's value.
25647func (s *ActiveViolation) SetSecurityProfileName(v string) *ActiveViolation {
25648	s.SecurityProfileName = &v
25649	return s
25650}
25651
25652// SetThingName sets the ThingName field's value.
25653func (s *ActiveViolation) SetThingName(v string) *ActiveViolation {
25654	s.ThingName = &v
25655	return s
25656}
25657
25658// SetVerificationState sets the VerificationState field's value.
25659func (s *ActiveViolation) SetVerificationState(v string) *ActiveViolation {
25660	s.VerificationState = &v
25661	return s
25662}
25663
25664// SetVerificationStateDescription sets the VerificationStateDescription field's value.
25665func (s *ActiveViolation) SetVerificationStateDescription(v string) *ActiveViolation {
25666	s.VerificationStateDescription = &v
25667	return s
25668}
25669
25670// SetViolationEventAdditionalInfo sets the ViolationEventAdditionalInfo field's value.
25671func (s *ActiveViolation) SetViolationEventAdditionalInfo(v *ViolationEventAdditionalInfo) *ActiveViolation {
25672	s.ViolationEventAdditionalInfo = v
25673	return s
25674}
25675
25676// SetViolationId sets the ViolationId field's value.
25677func (s *ActiveViolation) SetViolationId(v string) *ActiveViolation {
25678	s.ViolationId = &v
25679	return s
25680}
25681
25682// SetViolationStartTime sets the ViolationStartTime field's value.
25683func (s *ActiveViolation) SetViolationStartTime(v time.Time) *ActiveViolation {
25684	s.ViolationStartTime = &v
25685	return s
25686}
25687
25688type AddThingToBillingGroupInput struct {
25689	_ struct{} `type:"structure"`
25690
25691	// The ARN of the billing group.
25692	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
25693
25694	// The name of the billing group.
25695	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
25696
25697	// The ARN of the thing to be added to the billing group.
25698	ThingArn *string `locationName:"thingArn" type:"string"`
25699
25700	// The name of the thing to be added to the billing group.
25701	ThingName *string `locationName:"thingName" min:"1" type:"string"`
25702}
25703
25704// String returns the string representation.
25705//
25706// API parameter values that are decorated as "sensitive" in the API will not
25707// be included in the string output. The member name will be present, but the
25708// value will be replaced with "sensitive".
25709func (s AddThingToBillingGroupInput) String() string {
25710	return awsutil.Prettify(s)
25711}
25712
25713// GoString returns the string representation.
25714//
25715// API parameter values that are decorated as "sensitive" in the API will not
25716// be included in the string output. The member name will be present, but the
25717// value will be replaced with "sensitive".
25718func (s AddThingToBillingGroupInput) GoString() string {
25719	return s.String()
25720}
25721
25722// Validate inspects the fields of the type to determine if they are valid.
25723func (s *AddThingToBillingGroupInput) Validate() error {
25724	invalidParams := request.ErrInvalidParams{Context: "AddThingToBillingGroupInput"}
25725	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
25726		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
25727	}
25728	if s.ThingName != nil && len(*s.ThingName) < 1 {
25729		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
25730	}
25731
25732	if invalidParams.Len() > 0 {
25733		return invalidParams
25734	}
25735	return nil
25736}
25737
25738// SetBillingGroupArn sets the BillingGroupArn field's value.
25739func (s *AddThingToBillingGroupInput) SetBillingGroupArn(v string) *AddThingToBillingGroupInput {
25740	s.BillingGroupArn = &v
25741	return s
25742}
25743
25744// SetBillingGroupName sets the BillingGroupName field's value.
25745func (s *AddThingToBillingGroupInput) SetBillingGroupName(v string) *AddThingToBillingGroupInput {
25746	s.BillingGroupName = &v
25747	return s
25748}
25749
25750// SetThingArn sets the ThingArn field's value.
25751func (s *AddThingToBillingGroupInput) SetThingArn(v string) *AddThingToBillingGroupInput {
25752	s.ThingArn = &v
25753	return s
25754}
25755
25756// SetThingName sets the ThingName field's value.
25757func (s *AddThingToBillingGroupInput) SetThingName(v string) *AddThingToBillingGroupInput {
25758	s.ThingName = &v
25759	return s
25760}
25761
25762type AddThingToBillingGroupOutput struct {
25763	_ struct{} `type:"structure"`
25764}
25765
25766// String returns the string representation.
25767//
25768// API parameter values that are decorated as "sensitive" in the API will not
25769// be included in the string output. The member name will be present, but the
25770// value will be replaced with "sensitive".
25771func (s AddThingToBillingGroupOutput) String() string {
25772	return awsutil.Prettify(s)
25773}
25774
25775// GoString returns the string representation.
25776//
25777// API parameter values that are decorated as "sensitive" in the API will not
25778// be included in the string output. The member name will be present, but the
25779// value will be replaced with "sensitive".
25780func (s AddThingToBillingGroupOutput) GoString() string {
25781	return s.String()
25782}
25783
25784type AddThingToThingGroupInput struct {
25785	_ struct{} `type:"structure"`
25786
25787	// Override dynamic thing groups with static thing groups when 10-group limit
25788	// is reached. If a thing belongs to 10 thing groups, and one or more of those
25789	// groups are dynamic thing groups, adding a thing to a static group removes
25790	// the thing from the last dynamic group.
25791	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
25792
25793	// The ARN of the thing to add to a group.
25794	ThingArn *string `locationName:"thingArn" type:"string"`
25795
25796	// The ARN of the group to which you are adding a thing.
25797	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
25798
25799	// The name of the group to which you are adding a thing.
25800	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
25801
25802	// The name of the thing to add to a group.
25803	ThingName *string `locationName:"thingName" min:"1" type:"string"`
25804}
25805
25806// String returns the string representation.
25807//
25808// API parameter values that are decorated as "sensitive" in the API will not
25809// be included in the string output. The member name will be present, but the
25810// value will be replaced with "sensitive".
25811func (s AddThingToThingGroupInput) String() string {
25812	return awsutil.Prettify(s)
25813}
25814
25815// GoString returns the string representation.
25816//
25817// API parameter values that are decorated as "sensitive" in the API will not
25818// be included in the string output. The member name will be present, but the
25819// value will be replaced with "sensitive".
25820func (s AddThingToThingGroupInput) GoString() string {
25821	return s.String()
25822}
25823
25824// Validate inspects the fields of the type to determine if they are valid.
25825func (s *AddThingToThingGroupInput) Validate() error {
25826	invalidParams := request.ErrInvalidParams{Context: "AddThingToThingGroupInput"}
25827	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
25828		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
25829	}
25830	if s.ThingName != nil && len(*s.ThingName) < 1 {
25831		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
25832	}
25833
25834	if invalidParams.Len() > 0 {
25835		return invalidParams
25836	}
25837	return nil
25838}
25839
25840// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
25841func (s *AddThingToThingGroupInput) SetOverrideDynamicGroups(v bool) *AddThingToThingGroupInput {
25842	s.OverrideDynamicGroups = &v
25843	return s
25844}
25845
25846// SetThingArn sets the ThingArn field's value.
25847func (s *AddThingToThingGroupInput) SetThingArn(v string) *AddThingToThingGroupInput {
25848	s.ThingArn = &v
25849	return s
25850}
25851
25852// SetThingGroupArn sets the ThingGroupArn field's value.
25853func (s *AddThingToThingGroupInput) SetThingGroupArn(v string) *AddThingToThingGroupInput {
25854	s.ThingGroupArn = &v
25855	return s
25856}
25857
25858// SetThingGroupName sets the ThingGroupName field's value.
25859func (s *AddThingToThingGroupInput) SetThingGroupName(v string) *AddThingToThingGroupInput {
25860	s.ThingGroupName = &v
25861	return s
25862}
25863
25864// SetThingName sets the ThingName field's value.
25865func (s *AddThingToThingGroupInput) SetThingName(v string) *AddThingToThingGroupInput {
25866	s.ThingName = &v
25867	return s
25868}
25869
25870type AddThingToThingGroupOutput struct {
25871	_ struct{} `type:"structure"`
25872}
25873
25874// String returns the string representation.
25875//
25876// API parameter values that are decorated as "sensitive" in the API will not
25877// be included in the string output. The member name will be present, but the
25878// value will be replaced with "sensitive".
25879func (s AddThingToThingGroupOutput) String() string {
25880	return awsutil.Prettify(s)
25881}
25882
25883// GoString returns the string representation.
25884//
25885// API parameter values that are decorated as "sensitive" in the API will not
25886// be included in the string output. The member name will be present, but the
25887// value will be replaced with "sensitive".
25888func (s AddThingToThingGroupOutput) GoString() string {
25889	return s.String()
25890}
25891
25892// Parameters used when defining a mitigation action that move a set of things
25893// to a thing group.
25894type AddThingsToThingGroupParams struct {
25895	_ struct{} `type:"structure"`
25896
25897	// Specifies if this mitigation action can move the things that triggered the
25898	// mitigation action even if they are part of one or more dynamic thing groups.
25899	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
25900
25901	// The list of groups to which you want to add the things that triggered the
25902	// mitigation action. You can add a thing to a maximum of 10 groups, but you
25903	// can't add a thing to more than one group in the same hierarchy.
25904	//
25905	// ThingGroupNames is a required field
25906	ThingGroupNames []*string `locationName:"thingGroupNames" min:"1" type:"list" required:"true"`
25907}
25908
25909// String returns the string representation.
25910//
25911// API parameter values that are decorated as "sensitive" in the API will not
25912// be included in the string output. The member name will be present, but the
25913// value will be replaced with "sensitive".
25914func (s AddThingsToThingGroupParams) String() string {
25915	return awsutil.Prettify(s)
25916}
25917
25918// GoString returns the string representation.
25919//
25920// API parameter values that are decorated as "sensitive" in the API will not
25921// be included in the string output. The member name will be present, but the
25922// value will be replaced with "sensitive".
25923func (s AddThingsToThingGroupParams) GoString() string {
25924	return s.String()
25925}
25926
25927// Validate inspects the fields of the type to determine if they are valid.
25928func (s *AddThingsToThingGroupParams) Validate() error {
25929	invalidParams := request.ErrInvalidParams{Context: "AddThingsToThingGroupParams"}
25930	if s.ThingGroupNames == nil {
25931		invalidParams.Add(request.NewErrParamRequired("ThingGroupNames"))
25932	}
25933	if s.ThingGroupNames != nil && len(s.ThingGroupNames) < 1 {
25934		invalidParams.Add(request.NewErrParamMinLen("ThingGroupNames", 1))
25935	}
25936
25937	if invalidParams.Len() > 0 {
25938		return invalidParams
25939	}
25940	return nil
25941}
25942
25943// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
25944func (s *AddThingsToThingGroupParams) SetOverrideDynamicGroups(v bool) *AddThingsToThingGroupParams {
25945	s.OverrideDynamicGroups = &v
25946	return s
25947}
25948
25949// SetThingGroupNames sets the ThingGroupNames field's value.
25950func (s *AddThingsToThingGroupParams) SetThingGroupNames(v []*string) *AddThingsToThingGroupParams {
25951	s.ThingGroupNames = v
25952	return s
25953}
25954
25955// The type of aggregation queries.
25956type AggregationType struct {
25957	_ struct{} `type:"structure"`
25958
25959	// The name of the aggregation type.
25960	//
25961	// Name is a required field
25962	Name *string `locationName:"name" type:"string" required:"true" enum:"AggregationTypeName"`
25963
25964	// A list of the values of aggregation types.
25965	Values []*string `locationName:"values" type:"list"`
25966}
25967
25968// String returns the string representation.
25969//
25970// API parameter values that are decorated as "sensitive" in the API will not
25971// be included in the string output. The member name will be present, but the
25972// value will be replaced with "sensitive".
25973func (s AggregationType) String() string {
25974	return awsutil.Prettify(s)
25975}
25976
25977// GoString returns the string representation.
25978//
25979// API parameter values that are decorated as "sensitive" in the API will not
25980// be included in the string output. The member name will be present, but the
25981// value will be replaced with "sensitive".
25982func (s AggregationType) GoString() string {
25983	return s.String()
25984}
25985
25986// Validate inspects the fields of the type to determine if they are valid.
25987func (s *AggregationType) Validate() error {
25988	invalidParams := request.ErrInvalidParams{Context: "AggregationType"}
25989	if s.Name == nil {
25990		invalidParams.Add(request.NewErrParamRequired("Name"))
25991	}
25992
25993	if invalidParams.Len() > 0 {
25994		return invalidParams
25995	}
25996	return nil
25997}
25998
25999// SetName sets the Name field's value.
26000func (s *AggregationType) SetName(v string) *AggregationType {
26001	s.Name = &v
26002	return s
26003}
26004
26005// SetValues sets the Values field's value.
26006func (s *AggregationType) SetValues(v []*string) *AggregationType {
26007	s.Values = v
26008	return s
26009}
26010
26011// A structure containing the alert target ARN and the role ARN.
26012type AlertTarget struct {
26013	_ struct{} `type:"structure"`
26014
26015	// The Amazon Resource Name (ARN) of the notification target to which alerts
26016	// are sent.
26017	//
26018	// AlertTargetArn is a required field
26019	AlertTargetArn *string `locationName:"alertTargetArn" type:"string" required:"true"`
26020
26021	// The ARN of the role that grants permission to send alerts to the notification
26022	// target.
26023	//
26024	// RoleArn is a required field
26025	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
26026}
26027
26028// String returns the string representation.
26029//
26030// API parameter values that are decorated as "sensitive" in the API will not
26031// be included in the string output. The member name will be present, but the
26032// value will be replaced with "sensitive".
26033func (s AlertTarget) String() string {
26034	return awsutil.Prettify(s)
26035}
26036
26037// GoString returns the string representation.
26038//
26039// API parameter values that are decorated as "sensitive" in the API will not
26040// be included in the string output. The member name will be present, but the
26041// value will be replaced with "sensitive".
26042func (s AlertTarget) GoString() string {
26043	return s.String()
26044}
26045
26046// Validate inspects the fields of the type to determine if they are valid.
26047func (s *AlertTarget) Validate() error {
26048	invalidParams := request.ErrInvalidParams{Context: "AlertTarget"}
26049	if s.AlertTargetArn == nil {
26050		invalidParams.Add(request.NewErrParamRequired("AlertTargetArn"))
26051	}
26052	if s.RoleArn == nil {
26053		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
26054	}
26055	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
26056		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
26057	}
26058
26059	if invalidParams.Len() > 0 {
26060		return invalidParams
26061	}
26062	return nil
26063}
26064
26065// SetAlertTargetArn sets the AlertTargetArn field's value.
26066func (s *AlertTarget) SetAlertTargetArn(v string) *AlertTarget {
26067	s.AlertTargetArn = &v
26068	return s
26069}
26070
26071// SetRoleArn sets the RoleArn field's value.
26072func (s *AlertTarget) SetRoleArn(v string) *AlertTarget {
26073	s.RoleArn = &v
26074	return s
26075}
26076
26077// Contains information that allowed the authorization.
26078type Allowed struct {
26079	_ struct{} `type:"structure"`
26080
26081	// A list of policies that allowed the authentication.
26082	Policies []*Policy `locationName:"policies" type:"list"`
26083}
26084
26085// String returns the string representation.
26086//
26087// API parameter values that are decorated as "sensitive" in the API will not
26088// be included in the string output. The member name will be present, but the
26089// value will be replaced with "sensitive".
26090func (s Allowed) String() string {
26091	return awsutil.Prettify(s)
26092}
26093
26094// GoString returns the string representation.
26095//
26096// API parameter values that are decorated as "sensitive" in the API will not
26097// be included in the string output. The member name will be present, but the
26098// value will be replaced with "sensitive".
26099func (s Allowed) GoString() string {
26100	return s.String()
26101}
26102
26103// SetPolicies sets the Policies field's value.
26104func (s *Allowed) SetPolicies(v []*Policy) *Allowed {
26105	s.Policies = v
26106	return s
26107}
26108
26109// An asset property timestamp entry containing the following information.
26110type AssetPropertyTimestamp struct {
26111	_ struct{} `type:"structure"`
26112
26113	// Optional. A string that contains the nanosecond time offset. Accepts substitution
26114	// templates.
26115	OffsetInNanos *string `locationName:"offsetInNanos" type:"string"`
26116
26117	// A string that contains the time in seconds since epoch. Accepts substitution
26118	// templates.
26119	//
26120	// TimeInSeconds is a required field
26121	TimeInSeconds *string `locationName:"timeInSeconds" type:"string" required:"true"`
26122}
26123
26124// String returns the string representation.
26125//
26126// API parameter values that are decorated as "sensitive" in the API will not
26127// be included in the string output. The member name will be present, but the
26128// value will be replaced with "sensitive".
26129func (s AssetPropertyTimestamp) String() string {
26130	return awsutil.Prettify(s)
26131}
26132
26133// GoString returns the string representation.
26134//
26135// API parameter values that are decorated as "sensitive" in the API will not
26136// be included in the string output. The member name will be present, but the
26137// value will be replaced with "sensitive".
26138func (s AssetPropertyTimestamp) GoString() string {
26139	return s.String()
26140}
26141
26142// Validate inspects the fields of the type to determine if they are valid.
26143func (s *AssetPropertyTimestamp) Validate() error {
26144	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyTimestamp"}
26145	if s.TimeInSeconds == nil {
26146		invalidParams.Add(request.NewErrParamRequired("TimeInSeconds"))
26147	}
26148
26149	if invalidParams.Len() > 0 {
26150		return invalidParams
26151	}
26152	return nil
26153}
26154
26155// SetOffsetInNanos sets the OffsetInNanos field's value.
26156func (s *AssetPropertyTimestamp) SetOffsetInNanos(v string) *AssetPropertyTimestamp {
26157	s.OffsetInNanos = &v
26158	return s
26159}
26160
26161// SetTimeInSeconds sets the TimeInSeconds field's value.
26162func (s *AssetPropertyTimestamp) SetTimeInSeconds(v string) *AssetPropertyTimestamp {
26163	s.TimeInSeconds = &v
26164	return s
26165}
26166
26167// An asset property value entry containing the following information.
26168type AssetPropertyValue struct {
26169	_ struct{} `type:"structure"`
26170
26171	// Optional. A string that describes the quality of the value. Accepts substitution
26172	// templates. Must be GOOD, BAD, or UNCERTAIN.
26173	Quality *string `locationName:"quality" type:"string"`
26174
26175	// The asset property value timestamp.
26176	//
26177	// Timestamp is a required field
26178	Timestamp *AssetPropertyTimestamp `locationName:"timestamp" type:"structure" required:"true"`
26179
26180	// The value of the asset property.
26181	//
26182	// Value is a required field
26183	Value *AssetPropertyVariant `locationName:"value" type:"structure" required:"true"`
26184}
26185
26186// String returns the string representation.
26187//
26188// API parameter values that are decorated as "sensitive" in the API will not
26189// be included in the string output. The member name will be present, but the
26190// value will be replaced with "sensitive".
26191func (s AssetPropertyValue) String() string {
26192	return awsutil.Prettify(s)
26193}
26194
26195// GoString returns the string representation.
26196//
26197// API parameter values that are decorated as "sensitive" in the API will not
26198// be included in the string output. The member name will be present, but the
26199// value will be replaced with "sensitive".
26200func (s AssetPropertyValue) GoString() string {
26201	return s.String()
26202}
26203
26204// Validate inspects the fields of the type to determine if they are valid.
26205func (s *AssetPropertyValue) Validate() error {
26206	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyValue"}
26207	if s.Timestamp == nil {
26208		invalidParams.Add(request.NewErrParamRequired("Timestamp"))
26209	}
26210	if s.Value == nil {
26211		invalidParams.Add(request.NewErrParamRequired("Value"))
26212	}
26213	if s.Timestamp != nil {
26214		if err := s.Timestamp.Validate(); err != nil {
26215			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
26216		}
26217	}
26218	if s.Value != nil {
26219		if err := s.Value.Validate(); err != nil {
26220			invalidParams.AddNested("Value", err.(request.ErrInvalidParams))
26221		}
26222	}
26223
26224	if invalidParams.Len() > 0 {
26225		return invalidParams
26226	}
26227	return nil
26228}
26229
26230// SetQuality sets the Quality field's value.
26231func (s *AssetPropertyValue) SetQuality(v string) *AssetPropertyValue {
26232	s.Quality = &v
26233	return s
26234}
26235
26236// SetTimestamp sets the Timestamp field's value.
26237func (s *AssetPropertyValue) SetTimestamp(v *AssetPropertyTimestamp) *AssetPropertyValue {
26238	s.Timestamp = v
26239	return s
26240}
26241
26242// SetValue sets the Value field's value.
26243func (s *AssetPropertyValue) SetValue(v *AssetPropertyVariant) *AssetPropertyValue {
26244	s.Value = v
26245	return s
26246}
26247
26248// Contains an asset property value (of a single type).
26249type AssetPropertyVariant struct {
26250	_ struct{} `type:"structure"`
26251
26252	// Optional. A string that contains the boolean value (true or false) of the
26253	// value entry. Accepts substitution templates.
26254	BooleanValue *string `locationName:"booleanValue" type:"string"`
26255
26256	// Optional. A string that contains the double value of the value entry. Accepts
26257	// substitution templates.
26258	DoubleValue *string `locationName:"doubleValue" type:"string"`
26259
26260	// Optional. A string that contains the integer value of the value entry. Accepts
26261	// substitution templates.
26262	IntegerValue *string `locationName:"integerValue" type:"string"`
26263
26264	// Optional. The string value of the value entry. Accepts substitution templates.
26265	StringValue *string `locationName:"stringValue" min:"1" type:"string"`
26266}
26267
26268// String returns the string representation.
26269//
26270// API parameter values that are decorated as "sensitive" in the API will not
26271// be included in the string output. The member name will be present, but the
26272// value will be replaced with "sensitive".
26273func (s AssetPropertyVariant) String() string {
26274	return awsutil.Prettify(s)
26275}
26276
26277// GoString returns the string representation.
26278//
26279// API parameter values that are decorated as "sensitive" in the API will not
26280// be included in the string output. The member name will be present, but the
26281// value will be replaced with "sensitive".
26282func (s AssetPropertyVariant) GoString() string {
26283	return s.String()
26284}
26285
26286// Validate inspects the fields of the type to determine if they are valid.
26287func (s *AssetPropertyVariant) Validate() error {
26288	invalidParams := request.ErrInvalidParams{Context: "AssetPropertyVariant"}
26289	if s.StringValue != nil && len(*s.StringValue) < 1 {
26290		invalidParams.Add(request.NewErrParamMinLen("StringValue", 1))
26291	}
26292
26293	if invalidParams.Len() > 0 {
26294		return invalidParams
26295	}
26296	return nil
26297}
26298
26299// SetBooleanValue sets the BooleanValue field's value.
26300func (s *AssetPropertyVariant) SetBooleanValue(v string) *AssetPropertyVariant {
26301	s.BooleanValue = &v
26302	return s
26303}
26304
26305// SetDoubleValue sets the DoubleValue field's value.
26306func (s *AssetPropertyVariant) SetDoubleValue(v string) *AssetPropertyVariant {
26307	s.DoubleValue = &v
26308	return s
26309}
26310
26311// SetIntegerValue sets the IntegerValue field's value.
26312func (s *AssetPropertyVariant) SetIntegerValue(v string) *AssetPropertyVariant {
26313	s.IntegerValue = &v
26314	return s
26315}
26316
26317// SetStringValue sets the StringValue field's value.
26318func (s *AssetPropertyVariant) SetStringValue(v string) *AssetPropertyVariant {
26319	s.StringValue = &v
26320	return s
26321}
26322
26323type AssociateTargetsWithJobInput struct {
26324	_ struct{} `type:"structure"`
26325
26326	// An optional comment string describing why the job was associated with the
26327	// targets.
26328	Comment *string `locationName:"comment" type:"string"`
26329
26330	// The unique identifier you assigned to this job when it was created.
26331	//
26332	// JobId is a required field
26333	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
26334
26335	// The namespace used to indicate that a job is a customer-managed job.
26336	//
26337	// When you specify a value for this parameter, Amazon Web Services IoT Core
26338	// sends jobs notifications to MQTT topics that contain the value in the following
26339	// format.
26340	//
26341	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
26342	//
26343	// The namespaceId feature is in public preview.
26344	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
26345
26346	// A list of thing group ARNs that define the targets of the job.
26347	//
26348	// Targets is a required field
26349	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
26350}
26351
26352// String returns the string representation.
26353//
26354// API parameter values that are decorated as "sensitive" in the API will not
26355// be included in the string output. The member name will be present, but the
26356// value will be replaced with "sensitive".
26357func (s AssociateTargetsWithJobInput) String() string {
26358	return awsutil.Prettify(s)
26359}
26360
26361// GoString returns the string representation.
26362//
26363// API parameter values that are decorated as "sensitive" in the API will not
26364// be included in the string output. The member name will be present, but the
26365// value will be replaced with "sensitive".
26366func (s AssociateTargetsWithJobInput) GoString() string {
26367	return s.String()
26368}
26369
26370// Validate inspects the fields of the type to determine if they are valid.
26371func (s *AssociateTargetsWithJobInput) Validate() error {
26372	invalidParams := request.ErrInvalidParams{Context: "AssociateTargetsWithJobInput"}
26373	if s.JobId == nil {
26374		invalidParams.Add(request.NewErrParamRequired("JobId"))
26375	}
26376	if s.JobId != nil && len(*s.JobId) < 1 {
26377		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
26378	}
26379	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
26380		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
26381	}
26382	if s.Targets == nil {
26383		invalidParams.Add(request.NewErrParamRequired("Targets"))
26384	}
26385	if s.Targets != nil && len(s.Targets) < 1 {
26386		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
26387	}
26388
26389	if invalidParams.Len() > 0 {
26390		return invalidParams
26391	}
26392	return nil
26393}
26394
26395// SetComment sets the Comment field's value.
26396func (s *AssociateTargetsWithJobInput) SetComment(v string) *AssociateTargetsWithJobInput {
26397	s.Comment = &v
26398	return s
26399}
26400
26401// SetJobId sets the JobId field's value.
26402func (s *AssociateTargetsWithJobInput) SetJobId(v string) *AssociateTargetsWithJobInput {
26403	s.JobId = &v
26404	return s
26405}
26406
26407// SetNamespaceId sets the NamespaceId field's value.
26408func (s *AssociateTargetsWithJobInput) SetNamespaceId(v string) *AssociateTargetsWithJobInput {
26409	s.NamespaceId = &v
26410	return s
26411}
26412
26413// SetTargets sets the Targets field's value.
26414func (s *AssociateTargetsWithJobInput) SetTargets(v []*string) *AssociateTargetsWithJobInput {
26415	s.Targets = v
26416	return s
26417}
26418
26419type AssociateTargetsWithJobOutput struct {
26420	_ struct{} `type:"structure"`
26421
26422	// A short text description of the job.
26423	Description *string `locationName:"description" type:"string"`
26424
26425	// An ARN identifying the job.
26426	JobArn *string `locationName:"jobArn" type:"string"`
26427
26428	// The unique identifier you assigned to this job when it was created.
26429	JobId *string `locationName:"jobId" min:"1" type:"string"`
26430}
26431
26432// String returns the string representation.
26433//
26434// API parameter values that are decorated as "sensitive" in the API will not
26435// be included in the string output. The member name will be present, but the
26436// value will be replaced with "sensitive".
26437func (s AssociateTargetsWithJobOutput) String() string {
26438	return awsutil.Prettify(s)
26439}
26440
26441// GoString returns the string representation.
26442//
26443// API parameter values that are decorated as "sensitive" in the API will not
26444// be included in the string output. The member name will be present, but the
26445// value will be replaced with "sensitive".
26446func (s AssociateTargetsWithJobOutput) GoString() string {
26447	return s.String()
26448}
26449
26450// SetDescription sets the Description field's value.
26451func (s *AssociateTargetsWithJobOutput) SetDescription(v string) *AssociateTargetsWithJobOutput {
26452	s.Description = &v
26453	return s
26454}
26455
26456// SetJobArn sets the JobArn field's value.
26457func (s *AssociateTargetsWithJobOutput) SetJobArn(v string) *AssociateTargetsWithJobOutput {
26458	s.JobArn = &v
26459	return s
26460}
26461
26462// SetJobId sets the JobId field's value.
26463func (s *AssociateTargetsWithJobOutput) SetJobId(v string) *AssociateTargetsWithJobOutput {
26464	s.JobId = &v
26465	return s
26466}
26467
26468type AttachPolicyInput struct {
26469	_ struct{} `type:"structure"`
26470
26471	// The name of the policy to attach.
26472	//
26473	// PolicyName is a required field
26474	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
26475
26476	// The identity (https://docs.aws.amazon.com/iot/latest/developerguide/security-iam.html)
26477	// to which the policy is attached. For example, a thing group or a certificate.
26478	//
26479	// Target is a required field
26480	Target *string `locationName:"target" type:"string" required:"true"`
26481}
26482
26483// String returns the string representation.
26484//
26485// API parameter values that are decorated as "sensitive" in the API will not
26486// be included in the string output. The member name will be present, but the
26487// value will be replaced with "sensitive".
26488func (s AttachPolicyInput) String() string {
26489	return awsutil.Prettify(s)
26490}
26491
26492// GoString returns the string representation.
26493//
26494// API parameter values that are decorated as "sensitive" in the API will not
26495// be included in the string output. The member name will be present, but the
26496// value will be replaced with "sensitive".
26497func (s AttachPolicyInput) GoString() string {
26498	return s.String()
26499}
26500
26501// Validate inspects the fields of the type to determine if they are valid.
26502func (s *AttachPolicyInput) Validate() error {
26503	invalidParams := request.ErrInvalidParams{Context: "AttachPolicyInput"}
26504	if s.PolicyName == nil {
26505		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
26506	}
26507	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
26508		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
26509	}
26510	if s.Target == nil {
26511		invalidParams.Add(request.NewErrParamRequired("Target"))
26512	}
26513
26514	if invalidParams.Len() > 0 {
26515		return invalidParams
26516	}
26517	return nil
26518}
26519
26520// SetPolicyName sets the PolicyName field's value.
26521func (s *AttachPolicyInput) SetPolicyName(v string) *AttachPolicyInput {
26522	s.PolicyName = &v
26523	return s
26524}
26525
26526// SetTarget sets the Target field's value.
26527func (s *AttachPolicyInput) SetTarget(v string) *AttachPolicyInput {
26528	s.Target = &v
26529	return s
26530}
26531
26532type AttachPolicyOutput struct {
26533	_ struct{} `type:"structure"`
26534}
26535
26536// String returns the string representation.
26537//
26538// API parameter values that are decorated as "sensitive" in the API will not
26539// be included in the string output. The member name will be present, but the
26540// value will be replaced with "sensitive".
26541func (s AttachPolicyOutput) String() string {
26542	return awsutil.Prettify(s)
26543}
26544
26545// GoString returns the string representation.
26546//
26547// API parameter values that are decorated as "sensitive" in the API will not
26548// be included in the string output. The member name will be present, but the
26549// value will be replaced with "sensitive".
26550func (s AttachPolicyOutput) GoString() string {
26551	return s.String()
26552}
26553
26554// The input for the AttachPrincipalPolicy operation.
26555type AttachPrincipalPolicyInput struct {
26556	_ struct{} `type:"structure" nopayload:"true"`
26557
26558	// The policy name.
26559	//
26560	// PolicyName is a required field
26561	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
26562
26563	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
26564	// operation) or an Amazon Cognito ID.
26565	//
26566	// Principal is a required field
26567	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
26568}
26569
26570// String returns the string representation.
26571//
26572// API parameter values that are decorated as "sensitive" in the API will not
26573// be included in the string output. The member name will be present, but the
26574// value will be replaced with "sensitive".
26575func (s AttachPrincipalPolicyInput) String() string {
26576	return awsutil.Prettify(s)
26577}
26578
26579// GoString returns the string representation.
26580//
26581// API parameter values that are decorated as "sensitive" in the API will not
26582// be included in the string output. The member name will be present, but the
26583// value will be replaced with "sensitive".
26584func (s AttachPrincipalPolicyInput) GoString() string {
26585	return s.String()
26586}
26587
26588// Validate inspects the fields of the type to determine if they are valid.
26589func (s *AttachPrincipalPolicyInput) Validate() error {
26590	invalidParams := request.ErrInvalidParams{Context: "AttachPrincipalPolicyInput"}
26591	if s.PolicyName == nil {
26592		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
26593	}
26594	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
26595		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
26596	}
26597	if s.Principal == nil {
26598		invalidParams.Add(request.NewErrParamRequired("Principal"))
26599	}
26600
26601	if invalidParams.Len() > 0 {
26602		return invalidParams
26603	}
26604	return nil
26605}
26606
26607// SetPolicyName sets the PolicyName field's value.
26608func (s *AttachPrincipalPolicyInput) SetPolicyName(v string) *AttachPrincipalPolicyInput {
26609	s.PolicyName = &v
26610	return s
26611}
26612
26613// SetPrincipal sets the Principal field's value.
26614func (s *AttachPrincipalPolicyInput) SetPrincipal(v string) *AttachPrincipalPolicyInput {
26615	s.Principal = &v
26616	return s
26617}
26618
26619type AttachPrincipalPolicyOutput struct {
26620	_ struct{} `type:"structure"`
26621}
26622
26623// String returns the string representation.
26624//
26625// API parameter values that are decorated as "sensitive" in the API will not
26626// be included in the string output. The member name will be present, but the
26627// value will be replaced with "sensitive".
26628func (s AttachPrincipalPolicyOutput) String() string {
26629	return awsutil.Prettify(s)
26630}
26631
26632// GoString returns the string representation.
26633//
26634// API parameter values that are decorated as "sensitive" in the API will not
26635// be included in the string output. The member name will be present, but the
26636// value will be replaced with "sensitive".
26637func (s AttachPrincipalPolicyOutput) GoString() string {
26638	return s.String()
26639}
26640
26641type AttachSecurityProfileInput struct {
26642	_ struct{} `type:"structure" nopayload:"true"`
26643
26644	// The security profile that is attached.
26645	//
26646	// SecurityProfileName is a required field
26647	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
26648
26649	// The ARN of the target (thing group) to which the security profile is attached.
26650	//
26651	// SecurityProfileTargetArn is a required field
26652	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
26653}
26654
26655// String returns the string representation.
26656//
26657// API parameter values that are decorated as "sensitive" in the API will not
26658// be included in the string output. The member name will be present, but the
26659// value will be replaced with "sensitive".
26660func (s AttachSecurityProfileInput) String() string {
26661	return awsutil.Prettify(s)
26662}
26663
26664// GoString returns the string representation.
26665//
26666// API parameter values that are decorated as "sensitive" in the API will not
26667// be included in the string output. The member name will be present, but the
26668// value will be replaced with "sensitive".
26669func (s AttachSecurityProfileInput) GoString() string {
26670	return s.String()
26671}
26672
26673// Validate inspects the fields of the type to determine if they are valid.
26674func (s *AttachSecurityProfileInput) Validate() error {
26675	invalidParams := request.ErrInvalidParams{Context: "AttachSecurityProfileInput"}
26676	if s.SecurityProfileName == nil {
26677		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
26678	}
26679	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
26680		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
26681	}
26682	if s.SecurityProfileTargetArn == nil {
26683		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
26684	}
26685
26686	if invalidParams.Len() > 0 {
26687		return invalidParams
26688	}
26689	return nil
26690}
26691
26692// SetSecurityProfileName sets the SecurityProfileName field's value.
26693func (s *AttachSecurityProfileInput) SetSecurityProfileName(v string) *AttachSecurityProfileInput {
26694	s.SecurityProfileName = &v
26695	return s
26696}
26697
26698// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
26699func (s *AttachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *AttachSecurityProfileInput {
26700	s.SecurityProfileTargetArn = &v
26701	return s
26702}
26703
26704type AttachSecurityProfileOutput struct {
26705	_ struct{} `type:"structure"`
26706}
26707
26708// String returns the string representation.
26709//
26710// API parameter values that are decorated as "sensitive" in the API will not
26711// be included in the string output. The member name will be present, but the
26712// value will be replaced with "sensitive".
26713func (s AttachSecurityProfileOutput) String() string {
26714	return awsutil.Prettify(s)
26715}
26716
26717// GoString returns the string representation.
26718//
26719// API parameter values that are decorated as "sensitive" in the API will not
26720// be included in the string output. The member name will be present, but the
26721// value will be replaced with "sensitive".
26722func (s AttachSecurityProfileOutput) GoString() string {
26723	return s.String()
26724}
26725
26726// The input for the AttachThingPrincipal operation.
26727type AttachThingPrincipalInput struct {
26728	_ struct{} `type:"structure" nopayload:"true"`
26729
26730	// The principal, which can be a certificate ARN (as returned from the CreateCertificate
26731	// operation) or an Amazon Cognito ID.
26732	//
26733	// Principal is a required field
26734	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
26735
26736	// The name of the thing.
26737	//
26738	// ThingName is a required field
26739	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
26740}
26741
26742// String returns the string representation.
26743//
26744// API parameter values that are decorated as "sensitive" in the API will not
26745// be included in the string output. The member name will be present, but the
26746// value will be replaced with "sensitive".
26747func (s AttachThingPrincipalInput) String() string {
26748	return awsutil.Prettify(s)
26749}
26750
26751// GoString returns the string representation.
26752//
26753// API parameter values that are decorated as "sensitive" in the API will not
26754// be included in the string output. The member name will be present, but the
26755// value will be replaced with "sensitive".
26756func (s AttachThingPrincipalInput) GoString() string {
26757	return s.String()
26758}
26759
26760// Validate inspects the fields of the type to determine if they are valid.
26761func (s *AttachThingPrincipalInput) Validate() error {
26762	invalidParams := request.ErrInvalidParams{Context: "AttachThingPrincipalInput"}
26763	if s.Principal == nil {
26764		invalidParams.Add(request.NewErrParamRequired("Principal"))
26765	}
26766	if s.ThingName == nil {
26767		invalidParams.Add(request.NewErrParamRequired("ThingName"))
26768	}
26769	if s.ThingName != nil && len(*s.ThingName) < 1 {
26770		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
26771	}
26772
26773	if invalidParams.Len() > 0 {
26774		return invalidParams
26775	}
26776	return nil
26777}
26778
26779// SetPrincipal sets the Principal field's value.
26780func (s *AttachThingPrincipalInput) SetPrincipal(v string) *AttachThingPrincipalInput {
26781	s.Principal = &v
26782	return s
26783}
26784
26785// SetThingName sets the ThingName field's value.
26786func (s *AttachThingPrincipalInput) SetThingName(v string) *AttachThingPrincipalInput {
26787	s.ThingName = &v
26788	return s
26789}
26790
26791// The output from the AttachThingPrincipal operation.
26792type AttachThingPrincipalOutput struct {
26793	_ struct{} `type:"structure"`
26794}
26795
26796// String returns the string representation.
26797//
26798// API parameter values that are decorated as "sensitive" in the API will not
26799// be included in the string output. The member name will be present, but the
26800// value will be replaced with "sensitive".
26801func (s AttachThingPrincipalOutput) String() string {
26802	return awsutil.Prettify(s)
26803}
26804
26805// GoString returns the string representation.
26806//
26807// API parameter values that are decorated as "sensitive" in the API will not
26808// be included in the string output. The member name will be present, but the
26809// value will be replaced with "sensitive".
26810func (s AttachThingPrincipalOutput) GoString() string {
26811	return s.String()
26812}
26813
26814// The attribute payload.
26815type AttributePayload struct {
26816	_ struct{} `type:"structure"`
26817
26818	// A JSON string containing up to three key-value pair in JSON format. For example:
26819	//
26820	// {\"attributes\":{\"string1\":\"string2\"}}
26821	Attributes map[string]*string `locationName:"attributes" type:"map"`
26822
26823	// Specifies whether the list of attributes provided in the AttributePayload
26824	// is merged with the attributes stored in the registry, instead of overwriting
26825	// them.
26826	//
26827	// To remove an attribute, call UpdateThing with an empty attribute value.
26828	//
26829	// The merge attribute is only valid when calling UpdateThing or UpdateThingGroup.
26830	Merge *bool `locationName:"merge" type:"boolean"`
26831}
26832
26833// String returns the string representation.
26834//
26835// API parameter values that are decorated as "sensitive" in the API will not
26836// be included in the string output. The member name will be present, but the
26837// value will be replaced with "sensitive".
26838func (s AttributePayload) String() string {
26839	return awsutil.Prettify(s)
26840}
26841
26842// GoString returns the string representation.
26843//
26844// API parameter values that are decorated as "sensitive" in the API will not
26845// be included in the string output. The member name will be present, but the
26846// value will be replaced with "sensitive".
26847func (s AttributePayload) GoString() string {
26848	return s.String()
26849}
26850
26851// SetAttributes sets the Attributes field's value.
26852func (s *AttributePayload) SetAttributes(v map[string]*string) *AttributePayload {
26853	s.Attributes = v
26854	return s
26855}
26856
26857// SetMerge sets the Merge field's value.
26858func (s *AttributePayload) SetMerge(v bool) *AttributePayload {
26859	s.Merge = &v
26860	return s
26861}
26862
26863// Which audit checks are enabled and disabled for this account.
26864type AuditCheckConfiguration struct {
26865	_ struct{} `type:"structure"`
26866
26867	// True if this audit check is enabled for this account.
26868	Enabled *bool `locationName:"enabled" type:"boolean"`
26869}
26870
26871// String returns the string representation.
26872//
26873// API parameter values that are decorated as "sensitive" in the API will not
26874// be included in the string output. The member name will be present, but the
26875// value will be replaced with "sensitive".
26876func (s AuditCheckConfiguration) String() string {
26877	return awsutil.Prettify(s)
26878}
26879
26880// GoString returns the string representation.
26881//
26882// API parameter values that are decorated as "sensitive" in the API will not
26883// be included in the string output. The member name will be present, but the
26884// value will be replaced with "sensitive".
26885func (s AuditCheckConfiguration) GoString() string {
26886	return s.String()
26887}
26888
26889// SetEnabled sets the Enabled field's value.
26890func (s *AuditCheckConfiguration) SetEnabled(v bool) *AuditCheckConfiguration {
26891	s.Enabled = &v
26892	return s
26893}
26894
26895// Information about the audit check.
26896type AuditCheckDetails struct {
26897	_ struct{} `type:"structure"`
26898
26899	// True if the check is complete and found all resources compliant.
26900	CheckCompliant *bool `locationName:"checkCompliant" type:"boolean"`
26901
26902	// The completion status of this check. One of "IN_PROGRESS", "WAITING_FOR_DATA_COLLECTION",
26903	// "CANCELED", "COMPLETED_COMPLIANT", "COMPLETED_NON_COMPLIANT", or "FAILED".
26904	CheckRunStatus *string `locationName:"checkRunStatus" type:"string" enum:"AuditCheckRunStatus"`
26905
26906	// The code of any error encountered when this check is performed during this
26907	// audit. One of "INSUFFICIENT_PERMISSIONS" or "AUDIT_CHECK_DISABLED".
26908	ErrorCode *string `locationName:"errorCode" type:"string"`
26909
26910	// The message associated with any error encountered when this check is performed
26911	// during this audit.
26912	Message *string `locationName:"message" type:"string"`
26913
26914	// The number of resources that were found noncompliant during the check.
26915	NonCompliantResourcesCount *int64 `locationName:"nonCompliantResourcesCount" type:"long"`
26916
26917	// Describes how many of the non-compliant resources created during the evaluation
26918	// of an audit check were marked as suppressed.
26919	SuppressedNonCompliantResourcesCount *int64 `locationName:"suppressedNonCompliantResourcesCount" type:"long"`
26920
26921	// The number of resources on which the check was performed.
26922	TotalResourcesCount *int64 `locationName:"totalResourcesCount" type:"long"`
26923}
26924
26925// String returns the string representation.
26926//
26927// API parameter values that are decorated as "sensitive" in the API will not
26928// be included in the string output. The member name will be present, but the
26929// value will be replaced with "sensitive".
26930func (s AuditCheckDetails) String() string {
26931	return awsutil.Prettify(s)
26932}
26933
26934// GoString returns the string representation.
26935//
26936// API parameter values that are decorated as "sensitive" in the API will not
26937// be included in the string output. The member name will be present, but the
26938// value will be replaced with "sensitive".
26939func (s AuditCheckDetails) GoString() string {
26940	return s.String()
26941}
26942
26943// SetCheckCompliant sets the CheckCompliant field's value.
26944func (s *AuditCheckDetails) SetCheckCompliant(v bool) *AuditCheckDetails {
26945	s.CheckCompliant = &v
26946	return s
26947}
26948
26949// SetCheckRunStatus sets the CheckRunStatus field's value.
26950func (s *AuditCheckDetails) SetCheckRunStatus(v string) *AuditCheckDetails {
26951	s.CheckRunStatus = &v
26952	return s
26953}
26954
26955// SetErrorCode sets the ErrorCode field's value.
26956func (s *AuditCheckDetails) SetErrorCode(v string) *AuditCheckDetails {
26957	s.ErrorCode = &v
26958	return s
26959}
26960
26961// SetMessage sets the Message field's value.
26962func (s *AuditCheckDetails) SetMessage(v string) *AuditCheckDetails {
26963	s.Message = &v
26964	return s
26965}
26966
26967// SetNonCompliantResourcesCount sets the NonCompliantResourcesCount field's value.
26968func (s *AuditCheckDetails) SetNonCompliantResourcesCount(v int64) *AuditCheckDetails {
26969	s.NonCompliantResourcesCount = &v
26970	return s
26971}
26972
26973// SetSuppressedNonCompliantResourcesCount sets the SuppressedNonCompliantResourcesCount field's value.
26974func (s *AuditCheckDetails) SetSuppressedNonCompliantResourcesCount(v int64) *AuditCheckDetails {
26975	s.SuppressedNonCompliantResourcesCount = &v
26976	return s
26977}
26978
26979// SetTotalResourcesCount sets the TotalResourcesCount field's value.
26980func (s *AuditCheckDetails) SetTotalResourcesCount(v int64) *AuditCheckDetails {
26981	s.TotalResourcesCount = &v
26982	return s
26983}
26984
26985// The findings (results) of the audit.
26986type AuditFinding struct {
26987	_ struct{} `type:"structure"`
26988
26989	// The audit check that generated this result.
26990	CheckName *string `locationName:"checkName" type:"string"`
26991
26992	// A unique identifier for this set of audit findings. This identifier is used
26993	// to apply mitigation tasks to one or more sets of findings.
26994	FindingId *string `locationName:"findingId" min:"1" type:"string"`
26995
26996	// The time the result (finding) was discovered.
26997	FindingTime *time.Time `locationName:"findingTime" type:"timestamp"`
26998
26999	// Indicates whether the audit finding was suppressed or not during reporting.
27000	IsSuppressed *bool `locationName:"isSuppressed" type:"boolean"`
27001
27002	// The resource that was found to be noncompliant with the audit check.
27003	NonCompliantResource *NonCompliantResource `locationName:"nonCompliantResource" type:"structure"`
27004
27005	// The reason the resource was noncompliant.
27006	ReasonForNonCompliance *string `locationName:"reasonForNonCompliance" type:"string"`
27007
27008	// A code that indicates the reason that the resource was noncompliant.
27009	ReasonForNonComplianceCode *string `locationName:"reasonForNonComplianceCode" type:"string"`
27010
27011	// The list of related resources.
27012	RelatedResources []*RelatedResource `locationName:"relatedResources" type:"list"`
27013
27014	// The severity of the result (finding).
27015	Severity *string `locationName:"severity" type:"string" enum:"AuditFindingSeverity"`
27016
27017	// The ID of the audit that generated this result (finding).
27018	TaskId *string `locationName:"taskId" min:"1" type:"string"`
27019
27020	// The time the audit started.
27021	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
27022}
27023
27024// String returns the string representation.
27025//
27026// API parameter values that are decorated as "sensitive" in the API will not
27027// be included in the string output. The member name will be present, but the
27028// value will be replaced with "sensitive".
27029func (s AuditFinding) String() string {
27030	return awsutil.Prettify(s)
27031}
27032
27033// GoString returns the string representation.
27034//
27035// API parameter values that are decorated as "sensitive" in the API will not
27036// be included in the string output. The member name will be present, but the
27037// value will be replaced with "sensitive".
27038func (s AuditFinding) GoString() string {
27039	return s.String()
27040}
27041
27042// SetCheckName sets the CheckName field's value.
27043func (s *AuditFinding) SetCheckName(v string) *AuditFinding {
27044	s.CheckName = &v
27045	return s
27046}
27047
27048// SetFindingId sets the FindingId field's value.
27049func (s *AuditFinding) SetFindingId(v string) *AuditFinding {
27050	s.FindingId = &v
27051	return s
27052}
27053
27054// SetFindingTime sets the FindingTime field's value.
27055func (s *AuditFinding) SetFindingTime(v time.Time) *AuditFinding {
27056	s.FindingTime = &v
27057	return s
27058}
27059
27060// SetIsSuppressed sets the IsSuppressed field's value.
27061func (s *AuditFinding) SetIsSuppressed(v bool) *AuditFinding {
27062	s.IsSuppressed = &v
27063	return s
27064}
27065
27066// SetNonCompliantResource sets the NonCompliantResource field's value.
27067func (s *AuditFinding) SetNonCompliantResource(v *NonCompliantResource) *AuditFinding {
27068	s.NonCompliantResource = v
27069	return s
27070}
27071
27072// SetReasonForNonCompliance sets the ReasonForNonCompliance field's value.
27073func (s *AuditFinding) SetReasonForNonCompliance(v string) *AuditFinding {
27074	s.ReasonForNonCompliance = &v
27075	return s
27076}
27077
27078// SetReasonForNonComplianceCode sets the ReasonForNonComplianceCode field's value.
27079func (s *AuditFinding) SetReasonForNonComplianceCode(v string) *AuditFinding {
27080	s.ReasonForNonComplianceCode = &v
27081	return s
27082}
27083
27084// SetRelatedResources sets the RelatedResources field's value.
27085func (s *AuditFinding) SetRelatedResources(v []*RelatedResource) *AuditFinding {
27086	s.RelatedResources = v
27087	return s
27088}
27089
27090// SetSeverity sets the Severity field's value.
27091func (s *AuditFinding) SetSeverity(v string) *AuditFinding {
27092	s.Severity = &v
27093	return s
27094}
27095
27096// SetTaskId sets the TaskId field's value.
27097func (s *AuditFinding) SetTaskId(v string) *AuditFinding {
27098	s.TaskId = &v
27099	return s
27100}
27101
27102// SetTaskStartTime sets the TaskStartTime field's value.
27103func (s *AuditFinding) SetTaskStartTime(v time.Time) *AuditFinding {
27104	s.TaskStartTime = &v
27105	return s
27106}
27107
27108// Returned by ListAuditMitigationActionsTask, this object contains information
27109// that describes a mitigation action that has been started.
27110type AuditMitigationActionExecutionMetadata struct {
27111	_ struct{} `type:"structure"`
27112
27113	// The unique identifier for the mitigation action being applied by the task.
27114	ActionId *string `locationName:"actionId" type:"string"`
27115
27116	// The friendly name of the mitigation action being applied by the task.
27117	ActionName *string `locationName:"actionName" type:"string"`
27118
27119	// The date and time when the task was completed or canceled. Blank if the task
27120	// is still running.
27121	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
27122
27123	// If an error occurred, the code that indicates which type of error occurred.
27124	ErrorCode *string `locationName:"errorCode" type:"string"`
27125
27126	// The unique identifier for the findings to which the task and associated mitigation
27127	// action are applied.
27128	FindingId *string `locationName:"findingId" min:"1" type:"string"`
27129
27130	// If an error occurred, a message that describes the error.
27131	Message *string `locationName:"message" type:"string"`
27132
27133	// The date and time when the task was started.
27134	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
27135
27136	// The current status of the task being executed.
27137	Status *string `locationName:"status" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
27138
27139	// The unique identifier for the task that applies the mitigation action.
27140	TaskId *string `locationName:"taskId" min:"1" type:"string"`
27141}
27142
27143// String returns the string representation.
27144//
27145// API parameter values that are decorated as "sensitive" in the API will not
27146// be included in the string output. The member name will be present, but the
27147// value will be replaced with "sensitive".
27148func (s AuditMitigationActionExecutionMetadata) String() string {
27149	return awsutil.Prettify(s)
27150}
27151
27152// GoString returns the string representation.
27153//
27154// API parameter values that are decorated as "sensitive" in the API will not
27155// be included in the string output. The member name will be present, but the
27156// value will be replaced with "sensitive".
27157func (s AuditMitigationActionExecutionMetadata) GoString() string {
27158	return s.String()
27159}
27160
27161// SetActionId sets the ActionId field's value.
27162func (s *AuditMitigationActionExecutionMetadata) SetActionId(v string) *AuditMitigationActionExecutionMetadata {
27163	s.ActionId = &v
27164	return s
27165}
27166
27167// SetActionName sets the ActionName field's value.
27168func (s *AuditMitigationActionExecutionMetadata) SetActionName(v string) *AuditMitigationActionExecutionMetadata {
27169	s.ActionName = &v
27170	return s
27171}
27172
27173// SetEndTime sets the EndTime field's value.
27174func (s *AuditMitigationActionExecutionMetadata) SetEndTime(v time.Time) *AuditMitigationActionExecutionMetadata {
27175	s.EndTime = &v
27176	return s
27177}
27178
27179// SetErrorCode sets the ErrorCode field's value.
27180func (s *AuditMitigationActionExecutionMetadata) SetErrorCode(v string) *AuditMitigationActionExecutionMetadata {
27181	s.ErrorCode = &v
27182	return s
27183}
27184
27185// SetFindingId sets the FindingId field's value.
27186func (s *AuditMitigationActionExecutionMetadata) SetFindingId(v string) *AuditMitigationActionExecutionMetadata {
27187	s.FindingId = &v
27188	return s
27189}
27190
27191// SetMessage sets the Message field's value.
27192func (s *AuditMitigationActionExecutionMetadata) SetMessage(v string) *AuditMitigationActionExecutionMetadata {
27193	s.Message = &v
27194	return s
27195}
27196
27197// SetStartTime sets the StartTime field's value.
27198func (s *AuditMitigationActionExecutionMetadata) SetStartTime(v time.Time) *AuditMitigationActionExecutionMetadata {
27199	s.StartTime = &v
27200	return s
27201}
27202
27203// SetStatus sets the Status field's value.
27204func (s *AuditMitigationActionExecutionMetadata) SetStatus(v string) *AuditMitigationActionExecutionMetadata {
27205	s.Status = &v
27206	return s
27207}
27208
27209// SetTaskId sets the TaskId field's value.
27210func (s *AuditMitigationActionExecutionMetadata) SetTaskId(v string) *AuditMitigationActionExecutionMetadata {
27211	s.TaskId = &v
27212	return s
27213}
27214
27215// Information about an audit mitigation actions task that is returned by ListAuditMitigationActionsTasks.
27216type AuditMitigationActionsTaskMetadata struct {
27217	_ struct{} `type:"structure"`
27218
27219	// The time at which the audit mitigation actions task was started.
27220	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
27221
27222	// The unique identifier for the task.
27223	TaskId *string `locationName:"taskId" min:"1" type:"string"`
27224
27225	// The current state of the audit mitigation actions task.
27226	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
27227}
27228
27229// String returns the string representation.
27230//
27231// API parameter values that are decorated as "sensitive" in the API will not
27232// be included in the string output. The member name will be present, but the
27233// value will be replaced with "sensitive".
27234func (s AuditMitigationActionsTaskMetadata) String() string {
27235	return awsutil.Prettify(s)
27236}
27237
27238// GoString returns the string representation.
27239//
27240// API parameter values that are decorated as "sensitive" in the API will not
27241// be included in the string output. The member name will be present, but the
27242// value will be replaced with "sensitive".
27243func (s AuditMitigationActionsTaskMetadata) GoString() string {
27244	return s.String()
27245}
27246
27247// SetStartTime sets the StartTime field's value.
27248func (s *AuditMitigationActionsTaskMetadata) SetStartTime(v time.Time) *AuditMitigationActionsTaskMetadata {
27249	s.StartTime = &v
27250	return s
27251}
27252
27253// SetTaskId sets the TaskId field's value.
27254func (s *AuditMitigationActionsTaskMetadata) SetTaskId(v string) *AuditMitigationActionsTaskMetadata {
27255	s.TaskId = &v
27256	return s
27257}
27258
27259// SetTaskStatus sets the TaskStatus field's value.
27260func (s *AuditMitigationActionsTaskMetadata) SetTaskStatus(v string) *AuditMitigationActionsTaskMetadata {
27261	s.TaskStatus = &v
27262	return s
27263}
27264
27265// Used in MitigationActionParams, this information identifies the target findings
27266// to which the mitigation actions are applied. Only one entry appears.
27267type AuditMitigationActionsTaskTarget struct {
27268	_ struct{} `type:"structure"`
27269
27270	// Specifies a filter in the form of an audit check and set of reason codes
27271	// that identify the findings from the audit to which the audit mitigation actions
27272	// task apply.
27273	AuditCheckToReasonCodeFilter map[string][]*string `locationName:"auditCheckToReasonCodeFilter" type:"map"`
27274
27275	// If the task will apply a mitigation action to findings from a specific audit,
27276	// this value uniquely identifies the audit.
27277	AuditTaskId *string `locationName:"auditTaskId" min:"1" type:"string"`
27278
27279	// If the task will apply a mitigation action to one or more listed findings,
27280	// this value uniquely identifies those findings.
27281	FindingIds []*string `locationName:"findingIds" min:"1" type:"list"`
27282}
27283
27284// String returns the string representation.
27285//
27286// API parameter values that are decorated as "sensitive" in the API will not
27287// be included in the string output. The member name will be present, but the
27288// value will be replaced with "sensitive".
27289func (s AuditMitigationActionsTaskTarget) String() string {
27290	return awsutil.Prettify(s)
27291}
27292
27293// GoString returns the string representation.
27294//
27295// API parameter values that are decorated as "sensitive" in the API will not
27296// be included in the string output. The member name will be present, but the
27297// value will be replaced with "sensitive".
27298func (s AuditMitigationActionsTaskTarget) GoString() string {
27299	return s.String()
27300}
27301
27302// Validate inspects the fields of the type to determine if they are valid.
27303func (s *AuditMitigationActionsTaskTarget) Validate() error {
27304	invalidParams := request.ErrInvalidParams{Context: "AuditMitigationActionsTaskTarget"}
27305	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
27306		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
27307	}
27308	if s.FindingIds != nil && len(s.FindingIds) < 1 {
27309		invalidParams.Add(request.NewErrParamMinLen("FindingIds", 1))
27310	}
27311
27312	if invalidParams.Len() > 0 {
27313		return invalidParams
27314	}
27315	return nil
27316}
27317
27318// SetAuditCheckToReasonCodeFilter sets the AuditCheckToReasonCodeFilter field's value.
27319func (s *AuditMitigationActionsTaskTarget) SetAuditCheckToReasonCodeFilter(v map[string][]*string) *AuditMitigationActionsTaskTarget {
27320	s.AuditCheckToReasonCodeFilter = v
27321	return s
27322}
27323
27324// SetAuditTaskId sets the AuditTaskId field's value.
27325func (s *AuditMitigationActionsTaskTarget) SetAuditTaskId(v string) *AuditMitigationActionsTaskTarget {
27326	s.AuditTaskId = &v
27327	return s
27328}
27329
27330// SetFindingIds sets the FindingIds field's value.
27331func (s *AuditMitigationActionsTaskTarget) SetFindingIds(v []*string) *AuditMitigationActionsTaskTarget {
27332	s.FindingIds = v
27333	return s
27334}
27335
27336// Information about the targets to which audit notifications are sent.
27337type AuditNotificationTarget struct {
27338	_ struct{} `type:"structure"`
27339
27340	// True if notifications to the target are enabled.
27341	Enabled *bool `locationName:"enabled" type:"boolean"`
27342
27343	// The ARN of the role that grants permission to send notifications to the target.
27344	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
27345
27346	// The ARN of the target (SNS topic) to which audit notifications are sent.
27347	TargetArn *string `locationName:"targetArn" type:"string"`
27348}
27349
27350// String returns the string representation.
27351//
27352// API parameter values that are decorated as "sensitive" in the API will not
27353// be included in the string output. The member name will be present, but the
27354// value will be replaced with "sensitive".
27355func (s AuditNotificationTarget) String() string {
27356	return awsutil.Prettify(s)
27357}
27358
27359// GoString returns the string representation.
27360//
27361// API parameter values that are decorated as "sensitive" in the API will not
27362// be included in the string output. The member name will be present, but the
27363// value will be replaced with "sensitive".
27364func (s AuditNotificationTarget) GoString() string {
27365	return s.String()
27366}
27367
27368// Validate inspects the fields of the type to determine if they are valid.
27369func (s *AuditNotificationTarget) Validate() error {
27370	invalidParams := request.ErrInvalidParams{Context: "AuditNotificationTarget"}
27371	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
27372		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
27373	}
27374
27375	if invalidParams.Len() > 0 {
27376		return invalidParams
27377	}
27378	return nil
27379}
27380
27381// SetEnabled sets the Enabled field's value.
27382func (s *AuditNotificationTarget) SetEnabled(v bool) *AuditNotificationTarget {
27383	s.Enabled = &v
27384	return s
27385}
27386
27387// SetRoleArn sets the RoleArn field's value.
27388func (s *AuditNotificationTarget) SetRoleArn(v string) *AuditNotificationTarget {
27389	s.RoleArn = &v
27390	return s
27391}
27392
27393// SetTargetArn sets the TargetArn field's value.
27394func (s *AuditNotificationTarget) SetTargetArn(v string) *AuditNotificationTarget {
27395	s.TargetArn = &v
27396	return s
27397}
27398
27399// Filters out specific findings of a Device Defender audit.
27400type AuditSuppression struct {
27401	_ struct{} `type:"structure"`
27402
27403	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
27404	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
27405	// to select which checks are enabled.)
27406	//
27407	// CheckName is a required field
27408	CheckName *string `locationName:"checkName" type:"string" required:"true"`
27409
27410	// The description of the audit suppression.
27411	Description *string `locationName:"description" type:"string"`
27412
27413	// The expiration date (epoch timestamp in seconds) that you want the suppression
27414	// to adhere to.
27415	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
27416
27417	// Information that identifies the noncompliant resource.
27418	//
27419	// ResourceIdentifier is a required field
27420	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
27421
27422	// Indicates whether a suppression should exist indefinitely or not.
27423	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
27424}
27425
27426// String returns the string representation.
27427//
27428// API parameter values that are decorated as "sensitive" in the API will not
27429// be included in the string output. The member name will be present, but the
27430// value will be replaced with "sensitive".
27431func (s AuditSuppression) String() string {
27432	return awsutil.Prettify(s)
27433}
27434
27435// GoString returns the string representation.
27436//
27437// API parameter values that are decorated as "sensitive" in the API will not
27438// be included in the string output. The member name will be present, but the
27439// value will be replaced with "sensitive".
27440func (s AuditSuppression) GoString() string {
27441	return s.String()
27442}
27443
27444// SetCheckName sets the CheckName field's value.
27445func (s *AuditSuppression) SetCheckName(v string) *AuditSuppression {
27446	s.CheckName = &v
27447	return s
27448}
27449
27450// SetDescription sets the Description field's value.
27451func (s *AuditSuppression) SetDescription(v string) *AuditSuppression {
27452	s.Description = &v
27453	return s
27454}
27455
27456// SetExpirationDate sets the ExpirationDate field's value.
27457func (s *AuditSuppression) SetExpirationDate(v time.Time) *AuditSuppression {
27458	s.ExpirationDate = &v
27459	return s
27460}
27461
27462// SetResourceIdentifier sets the ResourceIdentifier field's value.
27463func (s *AuditSuppression) SetResourceIdentifier(v *ResourceIdentifier) *AuditSuppression {
27464	s.ResourceIdentifier = v
27465	return s
27466}
27467
27468// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
27469func (s *AuditSuppression) SetSuppressIndefinitely(v bool) *AuditSuppression {
27470	s.SuppressIndefinitely = &v
27471	return s
27472}
27473
27474// The audits that were performed.
27475type AuditTaskMetadata struct {
27476	_ struct{} `type:"structure"`
27477
27478	// The ID of this audit.
27479	TaskId *string `locationName:"taskId" min:"1" type:"string"`
27480
27481	// The status of this audit. One of "IN_PROGRESS", "COMPLETED", "FAILED", or
27482	// "CANCELED".
27483	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
27484
27485	// The type of this audit. One of "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
27486	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
27487}
27488
27489// String returns the string representation.
27490//
27491// API parameter values that are decorated as "sensitive" in the API will not
27492// be included in the string output. The member name will be present, but the
27493// value will be replaced with "sensitive".
27494func (s AuditTaskMetadata) String() string {
27495	return awsutil.Prettify(s)
27496}
27497
27498// GoString returns the string representation.
27499//
27500// API parameter values that are decorated as "sensitive" in the API will not
27501// be included in the string output. The member name will be present, but the
27502// value will be replaced with "sensitive".
27503func (s AuditTaskMetadata) GoString() string {
27504	return s.String()
27505}
27506
27507// SetTaskId sets the TaskId field's value.
27508func (s *AuditTaskMetadata) SetTaskId(v string) *AuditTaskMetadata {
27509	s.TaskId = &v
27510	return s
27511}
27512
27513// SetTaskStatus sets the TaskStatus field's value.
27514func (s *AuditTaskMetadata) SetTaskStatus(v string) *AuditTaskMetadata {
27515	s.TaskStatus = &v
27516	return s
27517}
27518
27519// SetTaskType sets the TaskType field's value.
27520func (s *AuditTaskMetadata) SetTaskType(v string) *AuditTaskMetadata {
27521	s.TaskType = &v
27522	return s
27523}
27524
27525// A collection of authorization information.
27526type AuthInfo struct {
27527	_ struct{} `type:"structure"`
27528
27529	// The type of action for which the principal is being authorized.
27530	ActionType *string `locationName:"actionType" type:"string" enum:"ActionType"`
27531
27532	// The resources for which the principal is being authorized to perform the
27533	// specified action.
27534	//
27535	// Resources is a required field
27536	Resources []*string `locationName:"resources" type:"list" required:"true"`
27537}
27538
27539// String returns the string representation.
27540//
27541// API parameter values that are decorated as "sensitive" in the API will not
27542// be included in the string output. The member name will be present, but the
27543// value will be replaced with "sensitive".
27544func (s AuthInfo) String() string {
27545	return awsutil.Prettify(s)
27546}
27547
27548// GoString returns the string representation.
27549//
27550// API parameter values that are decorated as "sensitive" in the API will not
27551// be included in the string output. The member name will be present, but the
27552// value will be replaced with "sensitive".
27553func (s AuthInfo) GoString() string {
27554	return s.String()
27555}
27556
27557// Validate inspects the fields of the type to determine if they are valid.
27558func (s *AuthInfo) Validate() error {
27559	invalidParams := request.ErrInvalidParams{Context: "AuthInfo"}
27560	if s.Resources == nil {
27561		invalidParams.Add(request.NewErrParamRequired("Resources"))
27562	}
27563
27564	if invalidParams.Len() > 0 {
27565		return invalidParams
27566	}
27567	return nil
27568}
27569
27570// SetActionType sets the ActionType field's value.
27571func (s *AuthInfo) SetActionType(v string) *AuthInfo {
27572	s.ActionType = &v
27573	return s
27574}
27575
27576// SetResources sets the Resources field's value.
27577func (s *AuthInfo) SetResources(v []*string) *AuthInfo {
27578	s.Resources = v
27579	return s
27580}
27581
27582// The authorizer result.
27583type AuthResult struct {
27584	_ struct{} `type:"structure"`
27585
27586	// The policies and statements that allowed the specified action.
27587	Allowed *Allowed `locationName:"allowed" type:"structure"`
27588
27589	// The final authorization decision of this scenario. Multiple statements are
27590	// taken into account when determining the authorization decision. An explicit
27591	// deny statement can override multiple allow statements.
27592	AuthDecision *string `locationName:"authDecision" type:"string" enum:"AuthDecision"`
27593
27594	// Authorization information.
27595	AuthInfo *AuthInfo `locationName:"authInfo" type:"structure"`
27596
27597	// The policies and statements that denied the specified action.
27598	Denied *Denied `locationName:"denied" type:"structure"`
27599
27600	// Contains any missing context values found while evaluating policy.
27601	MissingContextValues []*string `locationName:"missingContextValues" type:"list"`
27602}
27603
27604// String returns the string representation.
27605//
27606// API parameter values that are decorated as "sensitive" in the API will not
27607// be included in the string output. The member name will be present, but the
27608// value will be replaced with "sensitive".
27609func (s AuthResult) String() string {
27610	return awsutil.Prettify(s)
27611}
27612
27613// GoString returns the string representation.
27614//
27615// API parameter values that are decorated as "sensitive" in the API will not
27616// be included in the string output. The member name will be present, but the
27617// value will be replaced with "sensitive".
27618func (s AuthResult) GoString() string {
27619	return s.String()
27620}
27621
27622// SetAllowed sets the Allowed field's value.
27623func (s *AuthResult) SetAllowed(v *Allowed) *AuthResult {
27624	s.Allowed = v
27625	return s
27626}
27627
27628// SetAuthDecision sets the AuthDecision field's value.
27629func (s *AuthResult) SetAuthDecision(v string) *AuthResult {
27630	s.AuthDecision = &v
27631	return s
27632}
27633
27634// SetAuthInfo sets the AuthInfo field's value.
27635func (s *AuthResult) SetAuthInfo(v *AuthInfo) *AuthResult {
27636	s.AuthInfo = v
27637	return s
27638}
27639
27640// SetDenied sets the Denied field's value.
27641func (s *AuthResult) SetDenied(v *Denied) *AuthResult {
27642	s.Denied = v
27643	return s
27644}
27645
27646// SetMissingContextValues sets the MissingContextValues field's value.
27647func (s *AuthResult) SetMissingContextValues(v []*string) *AuthResult {
27648	s.MissingContextValues = v
27649	return s
27650}
27651
27652// An object that specifies the authorization service for a domain.
27653type AuthorizerConfig struct {
27654	_ struct{} `type:"structure"`
27655
27656	// A Boolean that specifies whether the domain configuration's authorization
27657	// service can be overridden.
27658	AllowAuthorizerOverride *bool `locationName:"allowAuthorizerOverride" type:"boolean"`
27659
27660	// The name of the authorization service for a domain configuration.
27661	DefaultAuthorizerName *string `locationName:"defaultAuthorizerName" min:"1" type:"string"`
27662}
27663
27664// String returns the string representation.
27665//
27666// API parameter values that are decorated as "sensitive" in the API will not
27667// be included in the string output. The member name will be present, but the
27668// value will be replaced with "sensitive".
27669func (s AuthorizerConfig) String() string {
27670	return awsutil.Prettify(s)
27671}
27672
27673// GoString returns the string representation.
27674//
27675// API parameter values that are decorated as "sensitive" in the API will not
27676// be included in the string output. The member name will be present, but the
27677// value will be replaced with "sensitive".
27678func (s AuthorizerConfig) GoString() string {
27679	return s.String()
27680}
27681
27682// Validate inspects the fields of the type to determine if they are valid.
27683func (s *AuthorizerConfig) Validate() error {
27684	invalidParams := request.ErrInvalidParams{Context: "AuthorizerConfig"}
27685	if s.DefaultAuthorizerName != nil && len(*s.DefaultAuthorizerName) < 1 {
27686		invalidParams.Add(request.NewErrParamMinLen("DefaultAuthorizerName", 1))
27687	}
27688
27689	if invalidParams.Len() > 0 {
27690		return invalidParams
27691	}
27692	return nil
27693}
27694
27695// SetAllowAuthorizerOverride sets the AllowAuthorizerOverride field's value.
27696func (s *AuthorizerConfig) SetAllowAuthorizerOverride(v bool) *AuthorizerConfig {
27697	s.AllowAuthorizerOverride = &v
27698	return s
27699}
27700
27701// SetDefaultAuthorizerName sets the DefaultAuthorizerName field's value.
27702func (s *AuthorizerConfig) SetDefaultAuthorizerName(v string) *AuthorizerConfig {
27703	s.DefaultAuthorizerName = &v
27704	return s
27705}
27706
27707// The authorizer description.
27708type AuthorizerDescription struct {
27709	_ struct{} `type:"structure"`
27710
27711	// The authorizer ARN.
27712	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
27713
27714	// The authorizer's Lambda function ARN.
27715	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
27716
27717	// The authorizer name.
27718	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
27719
27720	// The UNIX timestamp of when the authorizer was created.
27721	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
27722
27723	// The UNIX timestamp of when the authorizer was last updated.
27724	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
27725
27726	// Specifies whether IoT validates the token signature in an authorization request.
27727	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
27728
27729	// The status of the authorizer.
27730	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
27731
27732	// The key used to extract the token from the HTTP headers.
27733	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
27734
27735	// The public keys used to validate the token signature returned by your custom
27736	// authentication service.
27737	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
27738}
27739
27740// String returns the string representation.
27741//
27742// API parameter values that are decorated as "sensitive" in the API will not
27743// be included in the string output. The member name will be present, but the
27744// value will be replaced with "sensitive".
27745func (s AuthorizerDescription) String() string {
27746	return awsutil.Prettify(s)
27747}
27748
27749// GoString returns the string representation.
27750//
27751// API parameter values that are decorated as "sensitive" in the API will not
27752// be included in the string output. The member name will be present, but the
27753// value will be replaced with "sensitive".
27754func (s AuthorizerDescription) GoString() string {
27755	return s.String()
27756}
27757
27758// SetAuthorizerArn sets the AuthorizerArn field's value.
27759func (s *AuthorizerDescription) SetAuthorizerArn(v string) *AuthorizerDescription {
27760	s.AuthorizerArn = &v
27761	return s
27762}
27763
27764// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
27765func (s *AuthorizerDescription) SetAuthorizerFunctionArn(v string) *AuthorizerDescription {
27766	s.AuthorizerFunctionArn = &v
27767	return s
27768}
27769
27770// SetAuthorizerName sets the AuthorizerName field's value.
27771func (s *AuthorizerDescription) SetAuthorizerName(v string) *AuthorizerDescription {
27772	s.AuthorizerName = &v
27773	return s
27774}
27775
27776// SetCreationDate sets the CreationDate field's value.
27777func (s *AuthorizerDescription) SetCreationDate(v time.Time) *AuthorizerDescription {
27778	s.CreationDate = &v
27779	return s
27780}
27781
27782// SetLastModifiedDate sets the LastModifiedDate field's value.
27783func (s *AuthorizerDescription) SetLastModifiedDate(v time.Time) *AuthorizerDescription {
27784	s.LastModifiedDate = &v
27785	return s
27786}
27787
27788// SetSigningDisabled sets the SigningDisabled field's value.
27789func (s *AuthorizerDescription) SetSigningDisabled(v bool) *AuthorizerDescription {
27790	s.SigningDisabled = &v
27791	return s
27792}
27793
27794// SetStatus sets the Status field's value.
27795func (s *AuthorizerDescription) SetStatus(v string) *AuthorizerDescription {
27796	s.Status = &v
27797	return s
27798}
27799
27800// SetTokenKeyName sets the TokenKeyName field's value.
27801func (s *AuthorizerDescription) SetTokenKeyName(v string) *AuthorizerDescription {
27802	s.TokenKeyName = &v
27803	return s
27804}
27805
27806// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
27807func (s *AuthorizerDescription) SetTokenSigningPublicKeys(v map[string]*string) *AuthorizerDescription {
27808	s.TokenSigningPublicKeys = v
27809	return s
27810}
27811
27812// The authorizer summary.
27813type AuthorizerSummary struct {
27814	_ struct{} `type:"structure"`
27815
27816	// The authorizer ARN.
27817	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
27818
27819	// The authorizer name.
27820	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
27821}
27822
27823// String returns the string representation.
27824//
27825// API parameter values that are decorated as "sensitive" in the API will not
27826// be included in the string output. The member name will be present, but the
27827// value will be replaced with "sensitive".
27828func (s AuthorizerSummary) String() string {
27829	return awsutil.Prettify(s)
27830}
27831
27832// GoString returns the string representation.
27833//
27834// API parameter values that are decorated as "sensitive" in the API will not
27835// be included in the string output. The member name will be present, but the
27836// value will be replaced with "sensitive".
27837func (s AuthorizerSummary) GoString() string {
27838	return s.String()
27839}
27840
27841// SetAuthorizerArn sets the AuthorizerArn field's value.
27842func (s *AuthorizerSummary) SetAuthorizerArn(v string) *AuthorizerSummary {
27843	s.AuthorizerArn = &v
27844	return s
27845}
27846
27847// SetAuthorizerName sets the AuthorizerName field's value.
27848func (s *AuthorizerSummary) SetAuthorizerName(v string) *AuthorizerSummary {
27849	s.AuthorizerName = &v
27850	return s
27851}
27852
27853// The criteria that determine when and how a job abort takes place.
27854type AwsJobAbortConfig struct {
27855	_ struct{} `type:"structure"`
27856
27857	// The list of criteria that determine when and how to abort the job.
27858	//
27859	// AbortCriteriaList is a required field
27860	AbortCriteriaList []*AwsJobAbortCriteria `locationName:"abortCriteriaList" min:"1" type:"list" required:"true"`
27861}
27862
27863// String returns the string representation.
27864//
27865// API parameter values that are decorated as "sensitive" in the API will not
27866// be included in the string output. The member name will be present, but the
27867// value will be replaced with "sensitive".
27868func (s AwsJobAbortConfig) String() string {
27869	return awsutil.Prettify(s)
27870}
27871
27872// GoString returns the string representation.
27873//
27874// API parameter values that are decorated as "sensitive" in the API will not
27875// be included in the string output. The member name will be present, but the
27876// value will be replaced with "sensitive".
27877func (s AwsJobAbortConfig) GoString() string {
27878	return s.String()
27879}
27880
27881// Validate inspects the fields of the type to determine if they are valid.
27882func (s *AwsJobAbortConfig) Validate() error {
27883	invalidParams := request.ErrInvalidParams{Context: "AwsJobAbortConfig"}
27884	if s.AbortCriteriaList == nil {
27885		invalidParams.Add(request.NewErrParamRequired("AbortCriteriaList"))
27886	}
27887	if s.AbortCriteriaList != nil && len(s.AbortCriteriaList) < 1 {
27888		invalidParams.Add(request.NewErrParamMinLen("AbortCriteriaList", 1))
27889	}
27890	if s.AbortCriteriaList != nil {
27891		for i, v := range s.AbortCriteriaList {
27892			if v == nil {
27893				continue
27894			}
27895			if err := v.Validate(); err != nil {
27896				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AbortCriteriaList", i), err.(request.ErrInvalidParams))
27897			}
27898		}
27899	}
27900
27901	if invalidParams.Len() > 0 {
27902		return invalidParams
27903	}
27904	return nil
27905}
27906
27907// SetAbortCriteriaList sets the AbortCriteriaList field's value.
27908func (s *AwsJobAbortConfig) SetAbortCriteriaList(v []*AwsJobAbortCriteria) *AwsJobAbortConfig {
27909	s.AbortCriteriaList = v
27910	return s
27911}
27912
27913// The criteria that determine when and how a job abort takes place.
27914type AwsJobAbortCriteria struct {
27915	_ struct{} `type:"structure"`
27916
27917	// The type of job action to take to initiate the job abort.
27918	//
27919	// Action is a required field
27920	Action *string `locationName:"action" type:"string" required:"true" enum:"AwsJobAbortCriteriaAbortAction"`
27921
27922	// The type of job execution failures that can initiate a job abort.
27923	//
27924	// FailureType is a required field
27925	FailureType *string `locationName:"failureType" type:"string" required:"true" enum:"AwsJobAbortCriteriaFailureType"`
27926
27927	// The minimum number of things which must receive job execution notifications
27928	// before the job can be aborted.
27929	//
27930	// MinNumberOfExecutedThings is a required field
27931	MinNumberOfExecutedThings *int64 `locationName:"minNumberOfExecutedThings" min:"1" type:"integer" required:"true"`
27932
27933	// The minimum percentage of job execution failures that must occur to initiate
27934	// the job abort.
27935	//
27936	// Amazon Web Services IoT Core supports up to two digits after the decimal
27937	// (for example, 10.9 and 10.99, but not 10.999).
27938	//
27939	// ThresholdPercentage is a required field
27940	ThresholdPercentage *float64 `locationName:"thresholdPercentage" type:"double" required:"true"`
27941}
27942
27943// String returns the string representation.
27944//
27945// API parameter values that are decorated as "sensitive" in the API will not
27946// be included in the string output. The member name will be present, but the
27947// value will be replaced with "sensitive".
27948func (s AwsJobAbortCriteria) String() string {
27949	return awsutil.Prettify(s)
27950}
27951
27952// GoString returns the string representation.
27953//
27954// API parameter values that are decorated as "sensitive" in the API will not
27955// be included in the string output. The member name will be present, but the
27956// value will be replaced with "sensitive".
27957func (s AwsJobAbortCriteria) GoString() string {
27958	return s.String()
27959}
27960
27961// Validate inspects the fields of the type to determine if they are valid.
27962func (s *AwsJobAbortCriteria) Validate() error {
27963	invalidParams := request.ErrInvalidParams{Context: "AwsJobAbortCriteria"}
27964	if s.Action == nil {
27965		invalidParams.Add(request.NewErrParamRequired("Action"))
27966	}
27967	if s.FailureType == nil {
27968		invalidParams.Add(request.NewErrParamRequired("FailureType"))
27969	}
27970	if s.MinNumberOfExecutedThings == nil {
27971		invalidParams.Add(request.NewErrParamRequired("MinNumberOfExecutedThings"))
27972	}
27973	if s.MinNumberOfExecutedThings != nil && *s.MinNumberOfExecutedThings < 1 {
27974		invalidParams.Add(request.NewErrParamMinValue("MinNumberOfExecutedThings", 1))
27975	}
27976	if s.ThresholdPercentage == nil {
27977		invalidParams.Add(request.NewErrParamRequired("ThresholdPercentage"))
27978	}
27979
27980	if invalidParams.Len() > 0 {
27981		return invalidParams
27982	}
27983	return nil
27984}
27985
27986// SetAction sets the Action field's value.
27987func (s *AwsJobAbortCriteria) SetAction(v string) *AwsJobAbortCriteria {
27988	s.Action = &v
27989	return s
27990}
27991
27992// SetFailureType sets the FailureType field's value.
27993func (s *AwsJobAbortCriteria) SetFailureType(v string) *AwsJobAbortCriteria {
27994	s.FailureType = &v
27995	return s
27996}
27997
27998// SetMinNumberOfExecutedThings sets the MinNumberOfExecutedThings field's value.
27999func (s *AwsJobAbortCriteria) SetMinNumberOfExecutedThings(v int64) *AwsJobAbortCriteria {
28000	s.MinNumberOfExecutedThings = &v
28001	return s
28002}
28003
28004// SetThresholdPercentage sets the ThresholdPercentage field's value.
28005func (s *AwsJobAbortCriteria) SetThresholdPercentage(v float64) *AwsJobAbortCriteria {
28006	s.ThresholdPercentage = &v
28007	return s
28008}
28009
28010// Configuration for the rollout of OTA updates.
28011type AwsJobExecutionsRolloutConfig struct {
28012	_ struct{} `type:"structure"`
28013
28014	// The rate of increase for a job rollout. This parameter allows you to define
28015	// an exponential rate increase for a job rollout.
28016	ExponentialRate *AwsJobExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
28017
28018	// The maximum number of OTA update job executions started per minute.
28019	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
28020}
28021
28022// String returns the string representation.
28023//
28024// API parameter values that are decorated as "sensitive" in the API will not
28025// be included in the string output. The member name will be present, but the
28026// value will be replaced with "sensitive".
28027func (s AwsJobExecutionsRolloutConfig) String() string {
28028	return awsutil.Prettify(s)
28029}
28030
28031// GoString returns the string representation.
28032//
28033// API parameter values that are decorated as "sensitive" in the API will not
28034// be included in the string output. The member name will be present, but the
28035// value will be replaced with "sensitive".
28036func (s AwsJobExecutionsRolloutConfig) GoString() string {
28037	return s.String()
28038}
28039
28040// Validate inspects the fields of the type to determine if they are valid.
28041func (s *AwsJobExecutionsRolloutConfig) Validate() error {
28042	invalidParams := request.ErrInvalidParams{Context: "AwsJobExecutionsRolloutConfig"}
28043	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
28044		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
28045	}
28046	if s.ExponentialRate != nil {
28047		if err := s.ExponentialRate.Validate(); err != nil {
28048			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
28049		}
28050	}
28051
28052	if invalidParams.Len() > 0 {
28053		return invalidParams
28054	}
28055	return nil
28056}
28057
28058// SetExponentialRate sets the ExponentialRate field's value.
28059func (s *AwsJobExecutionsRolloutConfig) SetExponentialRate(v *AwsJobExponentialRolloutRate) *AwsJobExecutionsRolloutConfig {
28060	s.ExponentialRate = v
28061	return s
28062}
28063
28064// SetMaximumPerMinute sets the MaximumPerMinute field's value.
28065func (s *AwsJobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *AwsJobExecutionsRolloutConfig {
28066	s.MaximumPerMinute = &v
28067	return s
28068}
28069
28070// The rate of increase for a job rollout. This parameter allows you to define
28071// an exponential rate increase for a job rollout.
28072type AwsJobExponentialRolloutRate struct {
28073	_ struct{} `type:"structure"`
28074
28075	// The minimum number of things that will be notified of a pending job, per
28076	// minute, at the start of the job rollout. This is the initial rate of the
28077	// rollout.
28078	//
28079	// BaseRatePerMinute is a required field
28080	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
28081
28082	// The rate of increase for a job rollout. The number of things notified is
28083	// multiplied by this factor.
28084	//
28085	// IncrementFactor is a required field
28086	IncrementFactor *float64 `locationName:"incrementFactor" type:"double" required:"true"`
28087
28088	// The criteria to initiate the increase in rate of rollout for a job.
28089	//
28090	// Amazon Web Services IoT Core supports up to one digit after the decimal (for
28091	// example, 1.5, but not 1.55).
28092	//
28093	// RateIncreaseCriteria is a required field
28094	RateIncreaseCriteria *AwsJobRateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
28095}
28096
28097// String returns the string representation.
28098//
28099// API parameter values that are decorated as "sensitive" in the API will not
28100// be included in the string output. The member name will be present, but the
28101// value will be replaced with "sensitive".
28102func (s AwsJobExponentialRolloutRate) String() string {
28103	return awsutil.Prettify(s)
28104}
28105
28106// GoString returns the string representation.
28107//
28108// API parameter values that are decorated as "sensitive" in the API will not
28109// be included in the string output. The member name will be present, but the
28110// value will be replaced with "sensitive".
28111func (s AwsJobExponentialRolloutRate) GoString() string {
28112	return s.String()
28113}
28114
28115// Validate inspects the fields of the type to determine if they are valid.
28116func (s *AwsJobExponentialRolloutRate) Validate() error {
28117	invalidParams := request.ErrInvalidParams{Context: "AwsJobExponentialRolloutRate"}
28118	if s.BaseRatePerMinute == nil {
28119		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
28120	}
28121	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
28122		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
28123	}
28124	if s.IncrementFactor == nil {
28125		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
28126	}
28127	if s.RateIncreaseCriteria == nil {
28128		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
28129	}
28130	if s.RateIncreaseCriteria != nil {
28131		if err := s.RateIncreaseCriteria.Validate(); err != nil {
28132			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
28133		}
28134	}
28135
28136	if invalidParams.Len() > 0 {
28137		return invalidParams
28138	}
28139	return nil
28140}
28141
28142// SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
28143func (s *AwsJobExponentialRolloutRate) SetBaseRatePerMinute(v int64) *AwsJobExponentialRolloutRate {
28144	s.BaseRatePerMinute = &v
28145	return s
28146}
28147
28148// SetIncrementFactor sets the IncrementFactor field's value.
28149func (s *AwsJobExponentialRolloutRate) SetIncrementFactor(v float64) *AwsJobExponentialRolloutRate {
28150	s.IncrementFactor = &v
28151	return s
28152}
28153
28154// SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
28155func (s *AwsJobExponentialRolloutRate) SetRateIncreaseCriteria(v *AwsJobRateIncreaseCriteria) *AwsJobExponentialRolloutRate {
28156	s.RateIncreaseCriteria = v
28157	return s
28158}
28159
28160// Configuration information for pre-signed URLs. Valid when protocols contains
28161// HTTP.
28162type AwsJobPresignedUrlConfig struct {
28163	_ struct{} `type:"structure"`
28164
28165	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
28166	// the default value is 1800 seconds. Pre-signed URLs are generated when a request
28167	// for the job document is received.
28168	ExpiresInSec *int64 `locationName:"expiresInSec" type:"long"`
28169}
28170
28171// String returns the string representation.
28172//
28173// API parameter values that are decorated as "sensitive" in the API will not
28174// be included in the string output. The member name will be present, but the
28175// value will be replaced with "sensitive".
28176func (s AwsJobPresignedUrlConfig) String() string {
28177	return awsutil.Prettify(s)
28178}
28179
28180// GoString returns the string representation.
28181//
28182// API parameter values that are decorated as "sensitive" in the API will not
28183// be included in the string output. The member name will be present, but the
28184// value will be replaced with "sensitive".
28185func (s AwsJobPresignedUrlConfig) GoString() string {
28186	return s.String()
28187}
28188
28189// SetExpiresInSec sets the ExpiresInSec field's value.
28190func (s *AwsJobPresignedUrlConfig) SetExpiresInSec(v int64) *AwsJobPresignedUrlConfig {
28191	s.ExpiresInSec = &v
28192	return s
28193}
28194
28195// The criteria to initiate the increase in rate of rollout for a job.
28196type AwsJobRateIncreaseCriteria struct {
28197	_ struct{} `type:"structure"`
28198
28199	// When this number of things have been notified, it will initiate an increase
28200	// in the rollout rate.
28201	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
28202
28203	// When this number of things have succeeded in their job execution, it will
28204	// initiate an increase in the rollout rate.
28205	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
28206}
28207
28208// String returns the string representation.
28209//
28210// API parameter values that are decorated as "sensitive" in the API will not
28211// be included in the string output. The member name will be present, but the
28212// value will be replaced with "sensitive".
28213func (s AwsJobRateIncreaseCriteria) String() string {
28214	return awsutil.Prettify(s)
28215}
28216
28217// GoString returns the string representation.
28218//
28219// API parameter values that are decorated as "sensitive" in the API will not
28220// be included in the string output. The member name will be present, but the
28221// value will be replaced with "sensitive".
28222func (s AwsJobRateIncreaseCriteria) GoString() string {
28223	return s.String()
28224}
28225
28226// Validate inspects the fields of the type to determine if they are valid.
28227func (s *AwsJobRateIncreaseCriteria) Validate() error {
28228	invalidParams := request.ErrInvalidParams{Context: "AwsJobRateIncreaseCriteria"}
28229	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
28230		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
28231	}
28232	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
28233		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
28234	}
28235
28236	if invalidParams.Len() > 0 {
28237		return invalidParams
28238	}
28239	return nil
28240}
28241
28242// SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
28243func (s *AwsJobRateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *AwsJobRateIncreaseCriteria {
28244	s.NumberOfNotifiedThings = &v
28245	return s
28246}
28247
28248// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
28249func (s *AwsJobRateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *AwsJobRateIncreaseCriteria {
28250	s.NumberOfSucceededThings = &v
28251	return s
28252}
28253
28254// Specifies the amount of time each device has to finish its execution of the
28255// job. A timer is started when the job execution status is set to IN_PROGRESS.
28256// If the job execution status is not set to another terminal state before the
28257// timer expires, it will be automatically set to TIMED_OUT.
28258type AwsJobTimeoutConfig struct {
28259	_ struct{} `type:"structure"`
28260
28261	// Specifies the amount of time, in minutes, this device has to finish execution
28262	// of this job. The timeout interval can be anywhere between 1 minute and 7
28263	// days (1 to 10080 minutes). The in progress timer can't be updated and will
28264	// apply to all job executions for the job. Whenever a job execution remains
28265	// in the IN_PROGRESS status for longer than this interval, the job execution
28266	// will fail and switch to the terminal TIMED_OUT status.
28267	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
28268}
28269
28270// String returns the string representation.
28271//
28272// API parameter values that are decorated as "sensitive" in the API will not
28273// be included in the string output. The member name will be present, but the
28274// value will be replaced with "sensitive".
28275func (s AwsJobTimeoutConfig) String() string {
28276	return awsutil.Prettify(s)
28277}
28278
28279// GoString returns the string representation.
28280//
28281// API parameter values that are decorated as "sensitive" in the API will not
28282// be included in the string output. The member name will be present, but the
28283// value will be replaced with "sensitive".
28284func (s AwsJobTimeoutConfig) GoString() string {
28285	return s.String()
28286}
28287
28288// SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
28289func (s *AwsJobTimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *AwsJobTimeoutConfig {
28290	s.InProgressTimeoutInMinutes = &v
28291	return s
28292}
28293
28294// A Device Defender security profile behavior.
28295type Behavior struct {
28296	_ struct{} `type:"structure"`
28297
28298	// The criteria that determine if a device is behaving normally in regard to
28299	// the metric.
28300	Criteria *BehaviorCriteria `locationName:"criteria" type:"structure"`
28301
28302	// What is measured by the behavior.
28303	Metric *string `locationName:"metric" type:"string"`
28304
28305	// The dimension for a metric in your behavior. For example, using a TOPIC_FILTER
28306	// dimension, you can narrow down the scope of the metric to only MQTT topics
28307	// where the name matches the pattern specified in the dimension. This can't
28308	// be used with custom metrics.
28309	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
28310
28311	// The name you've given to the behavior.
28312	//
28313	// Name is a required field
28314	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
28315
28316	// Suppresses alerts.
28317	SuppressAlerts *bool `locationName:"suppressAlerts" type:"boolean"`
28318}
28319
28320// String returns the string representation.
28321//
28322// API parameter values that are decorated as "sensitive" in the API will not
28323// be included in the string output. The member name will be present, but the
28324// value will be replaced with "sensitive".
28325func (s Behavior) String() string {
28326	return awsutil.Prettify(s)
28327}
28328
28329// GoString returns the string representation.
28330//
28331// API parameter values that are decorated as "sensitive" in the API will not
28332// be included in the string output. The member name will be present, but the
28333// value will be replaced with "sensitive".
28334func (s Behavior) GoString() string {
28335	return s.String()
28336}
28337
28338// Validate inspects the fields of the type to determine if they are valid.
28339func (s *Behavior) Validate() error {
28340	invalidParams := request.ErrInvalidParams{Context: "Behavior"}
28341	if s.Name == nil {
28342		invalidParams.Add(request.NewErrParamRequired("Name"))
28343	}
28344	if s.Name != nil && len(*s.Name) < 1 {
28345		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
28346	}
28347	if s.Criteria != nil {
28348		if err := s.Criteria.Validate(); err != nil {
28349			invalidParams.AddNested("Criteria", err.(request.ErrInvalidParams))
28350		}
28351	}
28352	if s.MetricDimension != nil {
28353		if err := s.MetricDimension.Validate(); err != nil {
28354			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
28355		}
28356	}
28357
28358	if invalidParams.Len() > 0 {
28359		return invalidParams
28360	}
28361	return nil
28362}
28363
28364// SetCriteria sets the Criteria field's value.
28365func (s *Behavior) SetCriteria(v *BehaviorCriteria) *Behavior {
28366	s.Criteria = v
28367	return s
28368}
28369
28370// SetMetric sets the Metric field's value.
28371func (s *Behavior) SetMetric(v string) *Behavior {
28372	s.Metric = &v
28373	return s
28374}
28375
28376// SetMetricDimension sets the MetricDimension field's value.
28377func (s *Behavior) SetMetricDimension(v *MetricDimension) *Behavior {
28378	s.MetricDimension = v
28379	return s
28380}
28381
28382// SetName sets the Name field's value.
28383func (s *Behavior) SetName(v string) *Behavior {
28384	s.Name = &v
28385	return s
28386}
28387
28388// SetSuppressAlerts sets the SuppressAlerts field's value.
28389func (s *Behavior) SetSuppressAlerts(v bool) *Behavior {
28390	s.SuppressAlerts = &v
28391	return s
28392}
28393
28394// The criteria by which the behavior is determined to be normal.
28395type BehaviorCriteria struct {
28396	_ struct{} `type:"structure"`
28397
28398	// The operator that relates the thing measured (metric) to the criteria (containing
28399	// a value or statisticalThreshold). Valid operators include:
28400	//
28401	//    * string-list: in-set and not-in-set
28402	//
28403	//    * number-list: in-set and not-in-set
28404	//
28405	//    * ip-address-list: in-cidr-set and not-in-cidr-set
28406	//
28407	//    * number: less-than, less-than-equals, greater-than, and greater-than-equals
28408	ComparisonOperator *string `locationName:"comparisonOperator" type:"string" enum:"ComparisonOperator"`
28409
28410	// If a device is in violation of the behavior for the specified number of consecutive
28411	// datapoints, an alarm occurs. If not specified, the default is 1.
28412	ConsecutiveDatapointsToAlarm *int64 `locationName:"consecutiveDatapointsToAlarm" min:"1" type:"integer"`
28413
28414	// If an alarm has occurred and the offending device is no longer in violation
28415	// of the behavior for the specified number of consecutive datapoints, the alarm
28416	// is cleared. If not specified, the default is 1.
28417	ConsecutiveDatapointsToClear *int64 `locationName:"consecutiveDatapointsToClear" min:"1" type:"integer"`
28418
28419	// Use this to specify the time duration over which the behavior is evaluated,
28420	// for those criteria that have a time dimension (for example, NUM_MESSAGES_SENT).
28421	// For a statisticalThreshhold metric comparison, measurements from all devices
28422	// are accumulated over this time duration before being used to calculate percentiles,
28423	// and later, measurements from an individual device are also accumulated over
28424	// this time duration before being given a percentile rank. Cannot be used with
28425	// list-based metric datatypes.
28426	DurationSeconds *int64 `locationName:"durationSeconds" type:"integer"`
28427
28428	// The configuration of an ML Detect
28429	MlDetectionConfig *MachineLearningDetectionConfig `locationName:"mlDetectionConfig" type:"structure"`
28430
28431	// A statistical ranking (percentile)that indicates a threshold value by which
28432	// a behavior is determined to be in compliance or in violation of the behavior.
28433	StatisticalThreshold *StatisticalThreshold `locationName:"statisticalThreshold" type:"structure"`
28434
28435	// The value to be compared with the metric.
28436	Value *MetricValue `locationName:"value" type:"structure"`
28437}
28438
28439// String returns the string representation.
28440//
28441// API parameter values that are decorated as "sensitive" in the API will not
28442// be included in the string output. The member name will be present, but the
28443// value will be replaced with "sensitive".
28444func (s BehaviorCriteria) String() string {
28445	return awsutil.Prettify(s)
28446}
28447
28448// GoString returns the string representation.
28449//
28450// API parameter values that are decorated as "sensitive" in the API will not
28451// be included in the string output. The member name will be present, but the
28452// value will be replaced with "sensitive".
28453func (s BehaviorCriteria) GoString() string {
28454	return s.String()
28455}
28456
28457// Validate inspects the fields of the type to determine if they are valid.
28458func (s *BehaviorCriteria) Validate() error {
28459	invalidParams := request.ErrInvalidParams{Context: "BehaviorCriteria"}
28460	if s.ConsecutiveDatapointsToAlarm != nil && *s.ConsecutiveDatapointsToAlarm < 1 {
28461		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToAlarm", 1))
28462	}
28463	if s.ConsecutiveDatapointsToClear != nil && *s.ConsecutiveDatapointsToClear < 1 {
28464		invalidParams.Add(request.NewErrParamMinValue("ConsecutiveDatapointsToClear", 1))
28465	}
28466	if s.MlDetectionConfig != nil {
28467		if err := s.MlDetectionConfig.Validate(); err != nil {
28468			invalidParams.AddNested("MlDetectionConfig", err.(request.ErrInvalidParams))
28469		}
28470	}
28471
28472	if invalidParams.Len() > 0 {
28473		return invalidParams
28474	}
28475	return nil
28476}
28477
28478// SetComparisonOperator sets the ComparisonOperator field's value.
28479func (s *BehaviorCriteria) SetComparisonOperator(v string) *BehaviorCriteria {
28480	s.ComparisonOperator = &v
28481	return s
28482}
28483
28484// SetConsecutiveDatapointsToAlarm sets the ConsecutiveDatapointsToAlarm field's value.
28485func (s *BehaviorCriteria) SetConsecutiveDatapointsToAlarm(v int64) *BehaviorCriteria {
28486	s.ConsecutiveDatapointsToAlarm = &v
28487	return s
28488}
28489
28490// SetConsecutiveDatapointsToClear sets the ConsecutiveDatapointsToClear field's value.
28491func (s *BehaviorCriteria) SetConsecutiveDatapointsToClear(v int64) *BehaviorCriteria {
28492	s.ConsecutiveDatapointsToClear = &v
28493	return s
28494}
28495
28496// SetDurationSeconds sets the DurationSeconds field's value.
28497func (s *BehaviorCriteria) SetDurationSeconds(v int64) *BehaviorCriteria {
28498	s.DurationSeconds = &v
28499	return s
28500}
28501
28502// SetMlDetectionConfig sets the MlDetectionConfig field's value.
28503func (s *BehaviorCriteria) SetMlDetectionConfig(v *MachineLearningDetectionConfig) *BehaviorCriteria {
28504	s.MlDetectionConfig = v
28505	return s
28506}
28507
28508// SetStatisticalThreshold sets the StatisticalThreshold field's value.
28509func (s *BehaviorCriteria) SetStatisticalThreshold(v *StatisticalThreshold) *BehaviorCriteria {
28510	s.StatisticalThreshold = v
28511	return s
28512}
28513
28514// SetValue sets the Value field's value.
28515func (s *BehaviorCriteria) SetValue(v *MetricValue) *BehaviorCriteria {
28516	s.Value = v
28517	return s
28518}
28519
28520// The summary of an ML Detect behavior model.
28521type BehaviorModelTrainingSummary struct {
28522	_ struct{} `type:"structure"`
28523
28524	// The name of the behavior.
28525	BehaviorName *string `locationName:"behaviorName" min:"1" type:"string"`
28526
28527	// The percentage of datapoints collected.
28528	DatapointsCollectionPercentage *float64 `locationName:"datapointsCollectionPercentage" type:"double"`
28529
28530	// The date the model was last refreshed.
28531	LastModelRefreshDate *time.Time `locationName:"lastModelRefreshDate" type:"timestamp"`
28532
28533	// The status of the behavior model.
28534	ModelStatus *string `locationName:"modelStatus" type:"string" enum:"ModelStatus"`
28535
28536	// The name of the security profile.
28537	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
28538
28539	// The date a training model started collecting data.
28540	TrainingDataCollectionStartDate *time.Time `locationName:"trainingDataCollectionStartDate" type:"timestamp"`
28541}
28542
28543// String returns the string representation.
28544//
28545// API parameter values that are decorated as "sensitive" in the API will not
28546// be included in the string output. The member name will be present, but the
28547// value will be replaced with "sensitive".
28548func (s BehaviorModelTrainingSummary) String() string {
28549	return awsutil.Prettify(s)
28550}
28551
28552// GoString returns the string representation.
28553//
28554// API parameter values that are decorated as "sensitive" in the API will not
28555// be included in the string output. The member name will be present, but the
28556// value will be replaced with "sensitive".
28557func (s BehaviorModelTrainingSummary) GoString() string {
28558	return s.String()
28559}
28560
28561// SetBehaviorName sets the BehaviorName field's value.
28562func (s *BehaviorModelTrainingSummary) SetBehaviorName(v string) *BehaviorModelTrainingSummary {
28563	s.BehaviorName = &v
28564	return s
28565}
28566
28567// SetDatapointsCollectionPercentage sets the DatapointsCollectionPercentage field's value.
28568func (s *BehaviorModelTrainingSummary) SetDatapointsCollectionPercentage(v float64) *BehaviorModelTrainingSummary {
28569	s.DatapointsCollectionPercentage = &v
28570	return s
28571}
28572
28573// SetLastModelRefreshDate sets the LastModelRefreshDate field's value.
28574func (s *BehaviorModelTrainingSummary) SetLastModelRefreshDate(v time.Time) *BehaviorModelTrainingSummary {
28575	s.LastModelRefreshDate = &v
28576	return s
28577}
28578
28579// SetModelStatus sets the ModelStatus field's value.
28580func (s *BehaviorModelTrainingSummary) SetModelStatus(v string) *BehaviorModelTrainingSummary {
28581	s.ModelStatus = &v
28582	return s
28583}
28584
28585// SetSecurityProfileName sets the SecurityProfileName field's value.
28586func (s *BehaviorModelTrainingSummary) SetSecurityProfileName(v string) *BehaviorModelTrainingSummary {
28587	s.SecurityProfileName = &v
28588	return s
28589}
28590
28591// SetTrainingDataCollectionStartDate sets the TrainingDataCollectionStartDate field's value.
28592func (s *BehaviorModelTrainingSummary) SetTrainingDataCollectionStartDate(v time.Time) *BehaviorModelTrainingSummary {
28593	s.TrainingDataCollectionStartDate = &v
28594	return s
28595}
28596
28597// Additional information about the billing group.
28598type BillingGroupMetadata struct {
28599	_ struct{} `type:"structure"`
28600
28601	// The date the billing group was created.
28602	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
28603}
28604
28605// String returns the string representation.
28606//
28607// API parameter values that are decorated as "sensitive" in the API will not
28608// be included in the string output. The member name will be present, but the
28609// value will be replaced with "sensitive".
28610func (s BillingGroupMetadata) String() string {
28611	return awsutil.Prettify(s)
28612}
28613
28614// GoString returns the string representation.
28615//
28616// API parameter values that are decorated as "sensitive" in the API will not
28617// be included in the string output. The member name will be present, but the
28618// value will be replaced with "sensitive".
28619func (s BillingGroupMetadata) GoString() string {
28620	return s.String()
28621}
28622
28623// SetCreationDate sets the CreationDate field's value.
28624func (s *BillingGroupMetadata) SetCreationDate(v time.Time) *BillingGroupMetadata {
28625	s.CreationDate = &v
28626	return s
28627}
28628
28629// The properties of a billing group.
28630type BillingGroupProperties struct {
28631	_ struct{} `type:"structure"`
28632
28633	// The description of the billing group.
28634	BillingGroupDescription *string `locationName:"billingGroupDescription" type:"string"`
28635}
28636
28637// String returns the string representation.
28638//
28639// API parameter values that are decorated as "sensitive" in the API will not
28640// be included in the string output. The member name will be present, but the
28641// value will be replaced with "sensitive".
28642func (s BillingGroupProperties) String() string {
28643	return awsutil.Prettify(s)
28644}
28645
28646// GoString returns the string representation.
28647//
28648// API parameter values that are decorated as "sensitive" in the API will not
28649// be included in the string output. The member name will be present, but the
28650// value will be replaced with "sensitive".
28651func (s BillingGroupProperties) GoString() string {
28652	return s.String()
28653}
28654
28655// SetBillingGroupDescription sets the BillingGroupDescription field's value.
28656func (s *BillingGroupProperties) SetBillingGroupDescription(v string) *BillingGroupProperties {
28657	s.BillingGroupDescription = &v
28658	return s
28659}
28660
28661// A count of documents that meets a specific aggregation criteria.
28662type Bucket struct {
28663	_ struct{} `type:"structure"`
28664
28665	// The number of documents that have the value counted for the particular bucket.
28666	Count *int64 `locationName:"count" type:"integer"`
28667
28668	// The value counted for the particular bucket.
28669	KeyValue *string `locationName:"keyValue" type:"string"`
28670}
28671
28672// String returns the string representation.
28673//
28674// API parameter values that are decorated as "sensitive" in the API will not
28675// be included in the string output. The member name will be present, but the
28676// value will be replaced with "sensitive".
28677func (s Bucket) String() string {
28678	return awsutil.Prettify(s)
28679}
28680
28681// GoString returns the string representation.
28682//
28683// API parameter values that are decorated as "sensitive" in the API will not
28684// be included in the string output. The member name will be present, but the
28685// value will be replaced with "sensitive".
28686func (s Bucket) GoString() string {
28687	return s.String()
28688}
28689
28690// SetCount sets the Count field's value.
28691func (s *Bucket) SetCount(v int64) *Bucket {
28692	s.Count = &v
28693	return s
28694}
28695
28696// SetKeyValue sets the KeyValue field's value.
28697func (s *Bucket) SetKeyValue(v string) *Bucket {
28698	s.KeyValue = &v
28699	return s
28700}
28701
28702// The type of bucketed aggregation performed.
28703type BucketsAggregationType struct {
28704	_ struct{} `type:"structure"`
28705
28706	// Performs an aggregation that will return a list of buckets. The list of buckets
28707	// is a ranked list of the number of occurrences of an aggregation field value.
28708	TermsAggregation *TermsAggregation `locationName:"termsAggregation" type:"structure"`
28709}
28710
28711// String returns the string representation.
28712//
28713// API parameter values that are decorated as "sensitive" in the API will not
28714// be included in the string output. The member name will be present, but the
28715// value will be replaced with "sensitive".
28716func (s BucketsAggregationType) String() string {
28717	return awsutil.Prettify(s)
28718}
28719
28720// GoString returns the string representation.
28721//
28722// API parameter values that are decorated as "sensitive" in the API will not
28723// be included in the string output. The member name will be present, but the
28724// value will be replaced with "sensitive".
28725func (s BucketsAggregationType) GoString() string {
28726	return s.String()
28727}
28728
28729// Validate inspects the fields of the type to determine if they are valid.
28730func (s *BucketsAggregationType) Validate() error {
28731	invalidParams := request.ErrInvalidParams{Context: "BucketsAggregationType"}
28732	if s.TermsAggregation != nil {
28733		if err := s.TermsAggregation.Validate(); err != nil {
28734			invalidParams.AddNested("TermsAggregation", err.(request.ErrInvalidParams))
28735		}
28736	}
28737
28738	if invalidParams.Len() > 0 {
28739		return invalidParams
28740	}
28741	return nil
28742}
28743
28744// SetTermsAggregation sets the TermsAggregation field's value.
28745func (s *BucketsAggregationType) SetTermsAggregation(v *TermsAggregation) *BucketsAggregationType {
28746	s.TermsAggregation = v
28747	return s
28748}
28749
28750// A CA certificate.
28751type CACertificate struct {
28752	_ struct{} `type:"structure"`
28753
28754	// The ARN of the CA certificate.
28755	CertificateArn *string `locationName:"certificateArn" type:"string"`
28756
28757	// The ID of the CA certificate.
28758	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
28759
28760	// The date the CA certificate was created.
28761	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
28762
28763	// The status of the CA certificate.
28764	//
28765	// The status value REGISTER_INACTIVE is deprecated and should not be used.
28766	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
28767}
28768
28769// String returns the string representation.
28770//
28771// API parameter values that are decorated as "sensitive" in the API will not
28772// be included in the string output. The member name will be present, but the
28773// value will be replaced with "sensitive".
28774func (s CACertificate) String() string {
28775	return awsutil.Prettify(s)
28776}
28777
28778// GoString returns the string representation.
28779//
28780// API parameter values that are decorated as "sensitive" in the API will not
28781// be included in the string output. The member name will be present, but the
28782// value will be replaced with "sensitive".
28783func (s CACertificate) GoString() string {
28784	return s.String()
28785}
28786
28787// SetCertificateArn sets the CertificateArn field's value.
28788func (s *CACertificate) SetCertificateArn(v string) *CACertificate {
28789	s.CertificateArn = &v
28790	return s
28791}
28792
28793// SetCertificateId sets the CertificateId field's value.
28794func (s *CACertificate) SetCertificateId(v string) *CACertificate {
28795	s.CertificateId = &v
28796	return s
28797}
28798
28799// SetCreationDate sets the CreationDate field's value.
28800func (s *CACertificate) SetCreationDate(v time.Time) *CACertificate {
28801	s.CreationDate = &v
28802	return s
28803}
28804
28805// SetStatus sets the Status field's value.
28806func (s *CACertificate) SetStatus(v string) *CACertificate {
28807	s.Status = &v
28808	return s
28809}
28810
28811// Describes a CA certificate.
28812type CACertificateDescription struct {
28813	_ struct{} `type:"structure"`
28814
28815	// Whether the CA certificate configured for auto registration of device certificates.
28816	// Valid values are "ENABLE" and "DISABLE"
28817	AutoRegistrationStatus *string `locationName:"autoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
28818
28819	// The CA certificate ARN.
28820	CertificateArn *string `locationName:"certificateArn" type:"string"`
28821
28822	// The CA certificate ID.
28823	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
28824
28825	// The CA certificate data, in PEM format.
28826	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
28827
28828	// The date the CA certificate was created.
28829	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
28830
28831	// The customer version of the CA certificate.
28832	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
28833
28834	// The generation ID of the CA certificate.
28835	GenerationId *string `locationName:"generationId" type:"string"`
28836
28837	// The date the CA certificate was last modified.
28838	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
28839
28840	// The owner of the CA certificate.
28841	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
28842
28843	// The status of a CA certificate.
28844	Status *string `locationName:"status" type:"string" enum:"CACertificateStatus"`
28845
28846	// When the CA certificate is valid.
28847	Validity *CertificateValidity `locationName:"validity" type:"structure"`
28848}
28849
28850// String returns the string representation.
28851//
28852// API parameter values that are decorated as "sensitive" in the API will not
28853// be included in the string output. The member name will be present, but the
28854// value will be replaced with "sensitive".
28855func (s CACertificateDescription) String() string {
28856	return awsutil.Prettify(s)
28857}
28858
28859// GoString returns the string representation.
28860//
28861// API parameter values that are decorated as "sensitive" in the API will not
28862// be included in the string output. The member name will be present, but the
28863// value will be replaced with "sensitive".
28864func (s CACertificateDescription) GoString() string {
28865	return s.String()
28866}
28867
28868// SetAutoRegistrationStatus sets the AutoRegistrationStatus field's value.
28869func (s *CACertificateDescription) SetAutoRegistrationStatus(v string) *CACertificateDescription {
28870	s.AutoRegistrationStatus = &v
28871	return s
28872}
28873
28874// SetCertificateArn sets the CertificateArn field's value.
28875func (s *CACertificateDescription) SetCertificateArn(v string) *CACertificateDescription {
28876	s.CertificateArn = &v
28877	return s
28878}
28879
28880// SetCertificateId sets the CertificateId field's value.
28881func (s *CACertificateDescription) SetCertificateId(v string) *CACertificateDescription {
28882	s.CertificateId = &v
28883	return s
28884}
28885
28886// SetCertificatePem sets the CertificatePem field's value.
28887func (s *CACertificateDescription) SetCertificatePem(v string) *CACertificateDescription {
28888	s.CertificatePem = &v
28889	return s
28890}
28891
28892// SetCreationDate sets the CreationDate field's value.
28893func (s *CACertificateDescription) SetCreationDate(v time.Time) *CACertificateDescription {
28894	s.CreationDate = &v
28895	return s
28896}
28897
28898// SetCustomerVersion sets the CustomerVersion field's value.
28899func (s *CACertificateDescription) SetCustomerVersion(v int64) *CACertificateDescription {
28900	s.CustomerVersion = &v
28901	return s
28902}
28903
28904// SetGenerationId sets the GenerationId field's value.
28905func (s *CACertificateDescription) SetGenerationId(v string) *CACertificateDescription {
28906	s.GenerationId = &v
28907	return s
28908}
28909
28910// SetLastModifiedDate sets the LastModifiedDate field's value.
28911func (s *CACertificateDescription) SetLastModifiedDate(v time.Time) *CACertificateDescription {
28912	s.LastModifiedDate = &v
28913	return s
28914}
28915
28916// SetOwnedBy sets the OwnedBy field's value.
28917func (s *CACertificateDescription) SetOwnedBy(v string) *CACertificateDescription {
28918	s.OwnedBy = &v
28919	return s
28920}
28921
28922// SetStatus sets the Status field's value.
28923func (s *CACertificateDescription) SetStatus(v string) *CACertificateDescription {
28924	s.Status = &v
28925	return s
28926}
28927
28928// SetValidity sets the Validity field's value.
28929func (s *CACertificateDescription) SetValidity(v *CertificateValidity) *CACertificateDescription {
28930	s.Validity = v
28931	return s
28932}
28933
28934type CancelAuditMitigationActionsTaskInput struct {
28935	_ struct{} `type:"structure" nopayload:"true"`
28936
28937	// The unique identifier for the task that you want to cancel.
28938	//
28939	// TaskId is a required field
28940	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
28941}
28942
28943// String returns the string representation.
28944//
28945// API parameter values that are decorated as "sensitive" in the API will not
28946// be included in the string output. The member name will be present, but the
28947// value will be replaced with "sensitive".
28948func (s CancelAuditMitigationActionsTaskInput) String() string {
28949	return awsutil.Prettify(s)
28950}
28951
28952// GoString returns the string representation.
28953//
28954// API parameter values that are decorated as "sensitive" in the API will not
28955// be included in the string output. The member name will be present, but the
28956// value will be replaced with "sensitive".
28957func (s CancelAuditMitigationActionsTaskInput) GoString() string {
28958	return s.String()
28959}
28960
28961// Validate inspects the fields of the type to determine if they are valid.
28962func (s *CancelAuditMitigationActionsTaskInput) Validate() error {
28963	invalidParams := request.ErrInvalidParams{Context: "CancelAuditMitigationActionsTaskInput"}
28964	if s.TaskId == nil {
28965		invalidParams.Add(request.NewErrParamRequired("TaskId"))
28966	}
28967	if s.TaskId != nil && len(*s.TaskId) < 1 {
28968		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
28969	}
28970
28971	if invalidParams.Len() > 0 {
28972		return invalidParams
28973	}
28974	return nil
28975}
28976
28977// SetTaskId sets the TaskId field's value.
28978func (s *CancelAuditMitigationActionsTaskInput) SetTaskId(v string) *CancelAuditMitigationActionsTaskInput {
28979	s.TaskId = &v
28980	return s
28981}
28982
28983type CancelAuditMitigationActionsTaskOutput struct {
28984	_ struct{} `type:"structure"`
28985}
28986
28987// String returns the string representation.
28988//
28989// API parameter values that are decorated as "sensitive" in the API will not
28990// be included in the string output. The member name will be present, but the
28991// value will be replaced with "sensitive".
28992func (s CancelAuditMitigationActionsTaskOutput) String() string {
28993	return awsutil.Prettify(s)
28994}
28995
28996// GoString returns the string representation.
28997//
28998// API parameter values that are decorated as "sensitive" in the API will not
28999// be included in the string output. The member name will be present, but the
29000// value will be replaced with "sensitive".
29001func (s CancelAuditMitigationActionsTaskOutput) GoString() string {
29002	return s.String()
29003}
29004
29005type CancelAuditTaskInput struct {
29006	_ struct{} `type:"structure" nopayload:"true"`
29007
29008	// The ID of the audit you want to cancel. You can only cancel an audit that
29009	// is "IN_PROGRESS".
29010	//
29011	// TaskId is a required field
29012	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
29013}
29014
29015// String returns the string representation.
29016//
29017// API parameter values that are decorated as "sensitive" in the API will not
29018// be included in the string output. The member name will be present, but the
29019// value will be replaced with "sensitive".
29020func (s CancelAuditTaskInput) String() string {
29021	return awsutil.Prettify(s)
29022}
29023
29024// GoString returns the string representation.
29025//
29026// API parameter values that are decorated as "sensitive" in the API will not
29027// be included in the string output. The member name will be present, but the
29028// value will be replaced with "sensitive".
29029func (s CancelAuditTaskInput) GoString() string {
29030	return s.String()
29031}
29032
29033// Validate inspects the fields of the type to determine if they are valid.
29034func (s *CancelAuditTaskInput) Validate() error {
29035	invalidParams := request.ErrInvalidParams{Context: "CancelAuditTaskInput"}
29036	if s.TaskId == nil {
29037		invalidParams.Add(request.NewErrParamRequired("TaskId"))
29038	}
29039	if s.TaskId != nil && len(*s.TaskId) < 1 {
29040		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
29041	}
29042
29043	if invalidParams.Len() > 0 {
29044		return invalidParams
29045	}
29046	return nil
29047}
29048
29049// SetTaskId sets the TaskId field's value.
29050func (s *CancelAuditTaskInput) SetTaskId(v string) *CancelAuditTaskInput {
29051	s.TaskId = &v
29052	return s
29053}
29054
29055type CancelAuditTaskOutput struct {
29056	_ struct{} `type:"structure"`
29057}
29058
29059// String returns the string representation.
29060//
29061// API parameter values that are decorated as "sensitive" in the API will not
29062// be included in the string output. The member name will be present, but the
29063// value will be replaced with "sensitive".
29064func (s CancelAuditTaskOutput) String() string {
29065	return awsutil.Prettify(s)
29066}
29067
29068// GoString returns the string representation.
29069//
29070// API parameter values that are decorated as "sensitive" in the API will not
29071// be included in the string output. The member name will be present, but the
29072// value will be replaced with "sensitive".
29073func (s CancelAuditTaskOutput) GoString() string {
29074	return s.String()
29075}
29076
29077// The input for the CancelCertificateTransfer operation.
29078type CancelCertificateTransferInput struct {
29079	_ struct{} `type:"structure" nopayload:"true"`
29080
29081	// The ID of the certificate. (The last part of the certificate ARN contains
29082	// the certificate ID.)
29083	//
29084	// CertificateId is a required field
29085	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
29086}
29087
29088// String returns the string representation.
29089//
29090// API parameter values that are decorated as "sensitive" in the API will not
29091// be included in the string output. The member name will be present, but the
29092// value will be replaced with "sensitive".
29093func (s CancelCertificateTransferInput) String() string {
29094	return awsutil.Prettify(s)
29095}
29096
29097// GoString returns the string representation.
29098//
29099// API parameter values that are decorated as "sensitive" in the API will not
29100// be included in the string output. The member name will be present, but the
29101// value will be replaced with "sensitive".
29102func (s CancelCertificateTransferInput) GoString() string {
29103	return s.String()
29104}
29105
29106// Validate inspects the fields of the type to determine if they are valid.
29107func (s *CancelCertificateTransferInput) Validate() error {
29108	invalidParams := request.ErrInvalidParams{Context: "CancelCertificateTransferInput"}
29109	if s.CertificateId == nil {
29110		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
29111	}
29112	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
29113		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
29114	}
29115
29116	if invalidParams.Len() > 0 {
29117		return invalidParams
29118	}
29119	return nil
29120}
29121
29122// SetCertificateId sets the CertificateId field's value.
29123func (s *CancelCertificateTransferInput) SetCertificateId(v string) *CancelCertificateTransferInput {
29124	s.CertificateId = &v
29125	return s
29126}
29127
29128type CancelCertificateTransferOutput struct {
29129	_ struct{} `type:"structure"`
29130}
29131
29132// String returns the string representation.
29133//
29134// API parameter values that are decorated as "sensitive" in the API will not
29135// be included in the string output. The member name will be present, but the
29136// value will be replaced with "sensitive".
29137func (s CancelCertificateTransferOutput) String() string {
29138	return awsutil.Prettify(s)
29139}
29140
29141// GoString returns the string representation.
29142//
29143// API parameter values that are decorated as "sensitive" in the API will not
29144// be included in the string output. The member name will be present, but the
29145// value will be replaced with "sensitive".
29146func (s CancelCertificateTransferOutput) GoString() string {
29147	return s.String()
29148}
29149
29150type CancelDetectMitigationActionsTaskInput struct {
29151	_ struct{} `type:"structure" nopayload:"true"`
29152
29153	// The unique identifier of the task.
29154	//
29155	// TaskId is a required field
29156	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
29157}
29158
29159// String returns the string representation.
29160//
29161// API parameter values that are decorated as "sensitive" in the API will not
29162// be included in the string output. The member name will be present, but the
29163// value will be replaced with "sensitive".
29164func (s CancelDetectMitigationActionsTaskInput) String() string {
29165	return awsutil.Prettify(s)
29166}
29167
29168// GoString returns the string representation.
29169//
29170// API parameter values that are decorated as "sensitive" in the API will not
29171// be included in the string output. The member name will be present, but the
29172// value will be replaced with "sensitive".
29173func (s CancelDetectMitigationActionsTaskInput) GoString() string {
29174	return s.String()
29175}
29176
29177// Validate inspects the fields of the type to determine if they are valid.
29178func (s *CancelDetectMitigationActionsTaskInput) Validate() error {
29179	invalidParams := request.ErrInvalidParams{Context: "CancelDetectMitigationActionsTaskInput"}
29180	if s.TaskId == nil {
29181		invalidParams.Add(request.NewErrParamRequired("TaskId"))
29182	}
29183	if s.TaskId != nil && len(*s.TaskId) < 1 {
29184		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
29185	}
29186
29187	if invalidParams.Len() > 0 {
29188		return invalidParams
29189	}
29190	return nil
29191}
29192
29193// SetTaskId sets the TaskId field's value.
29194func (s *CancelDetectMitigationActionsTaskInput) SetTaskId(v string) *CancelDetectMitigationActionsTaskInput {
29195	s.TaskId = &v
29196	return s
29197}
29198
29199type CancelDetectMitigationActionsTaskOutput struct {
29200	_ struct{} `type:"structure"`
29201}
29202
29203// String returns the string representation.
29204//
29205// API parameter values that are decorated as "sensitive" in the API will not
29206// be included in the string output. The member name will be present, but the
29207// value will be replaced with "sensitive".
29208func (s CancelDetectMitigationActionsTaskOutput) String() string {
29209	return awsutil.Prettify(s)
29210}
29211
29212// GoString returns the string representation.
29213//
29214// API parameter values that are decorated as "sensitive" in the API will not
29215// be included in the string output. The member name will be present, but the
29216// value will be replaced with "sensitive".
29217func (s CancelDetectMitigationActionsTaskOutput) GoString() string {
29218	return s.String()
29219}
29220
29221type CancelJobExecutionInput struct {
29222	_ struct{} `type:"structure"`
29223
29224	// (Optional) The expected current version of the job execution. Each time you
29225	// update the job execution, its version is incremented. If the version of the
29226	// job execution stored in Jobs does not match, the update is rejected with
29227	// a VersionMismatch error, and an ErrorResponse that contains the current job
29228	// execution status data is returned. (This makes it unnecessary to perform
29229	// a separate DescribeJobExecution request in order to obtain the job execution
29230	// status data.)
29231	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
29232
29233	// (Optional) If true the job execution will be canceled if it has status IN_PROGRESS
29234	// or QUEUED, otherwise the job execution will be canceled only if it has status
29235	// QUEUED. If you attempt to cancel a job execution that is IN_PROGRESS, and
29236	// you do not set force to true, then an InvalidStateTransitionException will
29237	// be thrown. The default is false.
29238	//
29239	// Canceling a job execution which is "IN_PROGRESS", will cause the device to
29240	// be unable to update the job execution status. Use caution and ensure that
29241	// the device is able to recover to a valid state.
29242	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
29243
29244	// The ID of the job to be canceled.
29245	//
29246	// JobId is a required field
29247	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
29248
29249	// A collection of name/value pairs that describe the status of the job execution.
29250	// If not specified, the statusDetails are unchanged. You can specify at most
29251	// 10 name/value pairs.
29252	StatusDetails map[string]*string `locationName:"statusDetails" type:"map"`
29253
29254	// The name of the thing whose execution of the job will be canceled.
29255	//
29256	// ThingName is a required field
29257	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
29258}
29259
29260// String returns the string representation.
29261//
29262// API parameter values that are decorated as "sensitive" in the API will not
29263// be included in the string output. The member name will be present, but the
29264// value will be replaced with "sensitive".
29265func (s CancelJobExecutionInput) String() string {
29266	return awsutil.Prettify(s)
29267}
29268
29269// GoString returns the string representation.
29270//
29271// API parameter values that are decorated as "sensitive" in the API will not
29272// be included in the string output. The member name will be present, but the
29273// value will be replaced with "sensitive".
29274func (s CancelJobExecutionInput) GoString() string {
29275	return s.String()
29276}
29277
29278// Validate inspects the fields of the type to determine if they are valid.
29279func (s *CancelJobExecutionInput) Validate() error {
29280	invalidParams := request.ErrInvalidParams{Context: "CancelJobExecutionInput"}
29281	if s.JobId == nil {
29282		invalidParams.Add(request.NewErrParamRequired("JobId"))
29283	}
29284	if s.JobId != nil && len(*s.JobId) < 1 {
29285		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
29286	}
29287	if s.ThingName == nil {
29288		invalidParams.Add(request.NewErrParamRequired("ThingName"))
29289	}
29290	if s.ThingName != nil && len(*s.ThingName) < 1 {
29291		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
29292	}
29293
29294	if invalidParams.Len() > 0 {
29295		return invalidParams
29296	}
29297	return nil
29298}
29299
29300// SetExpectedVersion sets the ExpectedVersion field's value.
29301func (s *CancelJobExecutionInput) SetExpectedVersion(v int64) *CancelJobExecutionInput {
29302	s.ExpectedVersion = &v
29303	return s
29304}
29305
29306// SetForce sets the Force field's value.
29307func (s *CancelJobExecutionInput) SetForce(v bool) *CancelJobExecutionInput {
29308	s.Force = &v
29309	return s
29310}
29311
29312// SetJobId sets the JobId field's value.
29313func (s *CancelJobExecutionInput) SetJobId(v string) *CancelJobExecutionInput {
29314	s.JobId = &v
29315	return s
29316}
29317
29318// SetStatusDetails sets the StatusDetails field's value.
29319func (s *CancelJobExecutionInput) SetStatusDetails(v map[string]*string) *CancelJobExecutionInput {
29320	s.StatusDetails = v
29321	return s
29322}
29323
29324// SetThingName sets the ThingName field's value.
29325func (s *CancelJobExecutionInput) SetThingName(v string) *CancelJobExecutionInput {
29326	s.ThingName = &v
29327	return s
29328}
29329
29330type CancelJobExecutionOutput struct {
29331	_ struct{} `type:"structure"`
29332}
29333
29334// String returns the string representation.
29335//
29336// API parameter values that are decorated as "sensitive" in the API will not
29337// be included in the string output. The member name will be present, but the
29338// value will be replaced with "sensitive".
29339func (s CancelJobExecutionOutput) String() string {
29340	return awsutil.Prettify(s)
29341}
29342
29343// GoString returns the string representation.
29344//
29345// API parameter values that are decorated as "sensitive" in the API will not
29346// be included in the string output. The member name will be present, but the
29347// value will be replaced with "sensitive".
29348func (s CancelJobExecutionOutput) GoString() string {
29349	return s.String()
29350}
29351
29352type CancelJobInput struct {
29353	_ struct{} `type:"structure"`
29354
29355	// An optional comment string describing why the job was canceled.
29356	Comment *string `locationName:"comment" type:"string"`
29357
29358	// (Optional) If true job executions with status "IN_PROGRESS" and "QUEUED"
29359	// are canceled, otherwise only job executions with status "QUEUED" are canceled.
29360	// The default is false.
29361	//
29362	// Canceling a job which is "IN_PROGRESS", will cause a device which is executing
29363	// the job to be unable to update the job execution status. Use caution and
29364	// ensure that each device executing a job which is canceled is able to recover
29365	// to a valid state.
29366	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
29367
29368	// The unique identifier you assigned to this job when it was created.
29369	//
29370	// JobId is a required field
29371	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
29372
29373	// (Optional)A reason code string that explains why the job was canceled.
29374	ReasonCode *string `locationName:"reasonCode" type:"string"`
29375}
29376
29377// String returns the string representation.
29378//
29379// API parameter values that are decorated as "sensitive" in the API will not
29380// be included in the string output. The member name will be present, but the
29381// value will be replaced with "sensitive".
29382func (s CancelJobInput) String() string {
29383	return awsutil.Prettify(s)
29384}
29385
29386// GoString returns the string representation.
29387//
29388// API parameter values that are decorated as "sensitive" in the API will not
29389// be included in the string output. The member name will be present, but the
29390// value will be replaced with "sensitive".
29391func (s CancelJobInput) GoString() string {
29392	return s.String()
29393}
29394
29395// Validate inspects the fields of the type to determine if they are valid.
29396func (s *CancelJobInput) Validate() error {
29397	invalidParams := request.ErrInvalidParams{Context: "CancelJobInput"}
29398	if s.JobId == nil {
29399		invalidParams.Add(request.NewErrParamRequired("JobId"))
29400	}
29401	if s.JobId != nil && len(*s.JobId) < 1 {
29402		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
29403	}
29404
29405	if invalidParams.Len() > 0 {
29406		return invalidParams
29407	}
29408	return nil
29409}
29410
29411// SetComment sets the Comment field's value.
29412func (s *CancelJobInput) SetComment(v string) *CancelJobInput {
29413	s.Comment = &v
29414	return s
29415}
29416
29417// SetForce sets the Force field's value.
29418func (s *CancelJobInput) SetForce(v bool) *CancelJobInput {
29419	s.Force = &v
29420	return s
29421}
29422
29423// SetJobId sets the JobId field's value.
29424func (s *CancelJobInput) SetJobId(v string) *CancelJobInput {
29425	s.JobId = &v
29426	return s
29427}
29428
29429// SetReasonCode sets the ReasonCode field's value.
29430func (s *CancelJobInput) SetReasonCode(v string) *CancelJobInput {
29431	s.ReasonCode = &v
29432	return s
29433}
29434
29435type CancelJobOutput struct {
29436	_ struct{} `type:"structure"`
29437
29438	// A short text description of the job.
29439	Description *string `locationName:"description" type:"string"`
29440
29441	// The job ARN.
29442	JobArn *string `locationName:"jobArn" type:"string"`
29443
29444	// The unique identifier you assigned to this job when it was created.
29445	JobId *string `locationName:"jobId" min:"1" type:"string"`
29446}
29447
29448// String returns the string representation.
29449//
29450// API parameter values that are decorated as "sensitive" in the API will not
29451// be included in the string output. The member name will be present, but the
29452// value will be replaced with "sensitive".
29453func (s CancelJobOutput) String() string {
29454	return awsutil.Prettify(s)
29455}
29456
29457// GoString returns the string representation.
29458//
29459// API parameter values that are decorated as "sensitive" in the API will not
29460// be included in the string output. The member name will be present, but the
29461// value will be replaced with "sensitive".
29462func (s CancelJobOutput) GoString() string {
29463	return s.String()
29464}
29465
29466// SetDescription sets the Description field's value.
29467func (s *CancelJobOutput) SetDescription(v string) *CancelJobOutput {
29468	s.Description = &v
29469	return s
29470}
29471
29472// SetJobArn sets the JobArn field's value.
29473func (s *CancelJobOutput) SetJobArn(v string) *CancelJobOutput {
29474	s.JobArn = &v
29475	return s
29476}
29477
29478// SetJobId sets the JobId field's value.
29479func (s *CancelJobOutput) SetJobId(v string) *CancelJobOutput {
29480	s.JobId = &v
29481	return s
29482}
29483
29484// Information about a certificate.
29485type Certificate struct {
29486	_ struct{} `type:"structure"`
29487
29488	// The ARN of the certificate.
29489	CertificateArn *string `locationName:"certificateArn" type:"string"`
29490
29491	// The ID of the certificate. (The last part of the certificate ARN contains
29492	// the certificate ID.)
29493	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
29494
29495	// The mode of the certificate.
29496	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
29497
29498	// The date and time the certificate was created.
29499	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
29500
29501	// The status of the certificate.
29502	//
29503	// The status value REGISTER_INACTIVE is deprecated and should not be used.
29504	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
29505}
29506
29507// String returns the string representation.
29508//
29509// API parameter values that are decorated as "sensitive" in the API will not
29510// be included in the string output. The member name will be present, but the
29511// value will be replaced with "sensitive".
29512func (s Certificate) String() string {
29513	return awsutil.Prettify(s)
29514}
29515
29516// GoString returns the string representation.
29517//
29518// API parameter values that are decorated as "sensitive" in the API will not
29519// be included in the string output. The member name will be present, but the
29520// value will be replaced with "sensitive".
29521func (s Certificate) GoString() string {
29522	return s.String()
29523}
29524
29525// SetCertificateArn sets the CertificateArn field's value.
29526func (s *Certificate) SetCertificateArn(v string) *Certificate {
29527	s.CertificateArn = &v
29528	return s
29529}
29530
29531// SetCertificateId sets the CertificateId field's value.
29532func (s *Certificate) SetCertificateId(v string) *Certificate {
29533	s.CertificateId = &v
29534	return s
29535}
29536
29537// SetCertificateMode sets the CertificateMode field's value.
29538func (s *Certificate) SetCertificateMode(v string) *Certificate {
29539	s.CertificateMode = &v
29540	return s
29541}
29542
29543// SetCreationDate sets the CreationDate field's value.
29544func (s *Certificate) SetCreationDate(v time.Time) *Certificate {
29545	s.CreationDate = &v
29546	return s
29547}
29548
29549// SetStatus sets the Status field's value.
29550func (s *Certificate) SetStatus(v string) *Certificate {
29551	s.Status = &v
29552	return s
29553}
29554
29555// Unable to verify the CA certificate used to sign the device certificate you
29556// are attempting to register. This is happens when you have registered more
29557// than one CA certificate that has the same subject field and public key.
29558type CertificateConflictException struct {
29559	_            struct{}                  `type:"structure"`
29560	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
29561
29562	// The message for the exception.
29563	Message_ *string `locationName:"message" type:"string"`
29564}
29565
29566// String returns the string representation.
29567//
29568// API parameter values that are decorated as "sensitive" in the API will not
29569// be included in the string output. The member name will be present, but the
29570// value will be replaced with "sensitive".
29571func (s CertificateConflictException) String() string {
29572	return awsutil.Prettify(s)
29573}
29574
29575// GoString returns the string representation.
29576//
29577// API parameter values that are decorated as "sensitive" in the API will not
29578// be included in the string output. The member name will be present, but the
29579// value will be replaced with "sensitive".
29580func (s CertificateConflictException) GoString() string {
29581	return s.String()
29582}
29583
29584func newErrorCertificateConflictException(v protocol.ResponseMetadata) error {
29585	return &CertificateConflictException{
29586		RespMetadata: v,
29587	}
29588}
29589
29590// Code returns the exception type name.
29591func (s *CertificateConflictException) Code() string {
29592	return "CertificateConflictException"
29593}
29594
29595// Message returns the exception's message.
29596func (s *CertificateConflictException) Message() string {
29597	if s.Message_ != nil {
29598		return *s.Message_
29599	}
29600	return ""
29601}
29602
29603// OrigErr always returns nil, satisfies awserr.Error interface.
29604func (s *CertificateConflictException) OrigErr() error {
29605	return nil
29606}
29607
29608func (s *CertificateConflictException) Error() string {
29609	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
29610}
29611
29612// Status code returns the HTTP status code for the request's response error.
29613func (s *CertificateConflictException) StatusCode() int {
29614	return s.RespMetadata.StatusCode
29615}
29616
29617// RequestID returns the service's response RequestID for request.
29618func (s *CertificateConflictException) RequestID() string {
29619	return s.RespMetadata.RequestID
29620}
29621
29622// Describes a certificate.
29623type CertificateDescription struct {
29624	_ struct{} `type:"structure"`
29625
29626	// The certificate ID of the CA certificate used to sign this certificate.
29627	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
29628
29629	// The ARN of the certificate.
29630	CertificateArn *string `locationName:"certificateArn" type:"string"`
29631
29632	// The ID of the certificate.
29633	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
29634
29635	// The mode of the certificate.
29636	CertificateMode *string `locationName:"certificateMode" type:"string" enum:"CertificateMode"`
29637
29638	// The certificate data, in PEM format.
29639	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
29640
29641	// The date and time the certificate was created.
29642	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
29643
29644	// The customer version of the certificate.
29645	CustomerVersion *int64 `locationName:"customerVersion" min:"1" type:"integer"`
29646
29647	// The generation ID of the certificate.
29648	GenerationId *string `locationName:"generationId" type:"string"`
29649
29650	// The date and time the certificate was last modified.
29651	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
29652
29653	// The ID of the Amazon Web Services account that owns the certificate.
29654	OwnedBy *string `locationName:"ownedBy" min:"12" type:"string"`
29655
29656	// The ID of the Amazon Web Services account of the previous owner of the certificate.
29657	PreviousOwnedBy *string `locationName:"previousOwnedBy" min:"12" type:"string"`
29658
29659	// The status of the certificate.
29660	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
29661
29662	// The transfer data.
29663	TransferData *TransferData `locationName:"transferData" type:"structure"`
29664
29665	// When the certificate is valid.
29666	Validity *CertificateValidity `locationName:"validity" type:"structure"`
29667}
29668
29669// String returns the string representation.
29670//
29671// API parameter values that are decorated as "sensitive" in the API will not
29672// be included in the string output. The member name will be present, but the
29673// value will be replaced with "sensitive".
29674func (s CertificateDescription) String() string {
29675	return awsutil.Prettify(s)
29676}
29677
29678// GoString returns the string representation.
29679//
29680// API parameter values that are decorated as "sensitive" in the API will not
29681// be included in the string output. The member name will be present, but the
29682// value will be replaced with "sensitive".
29683func (s CertificateDescription) GoString() string {
29684	return s.String()
29685}
29686
29687// SetCaCertificateId sets the CaCertificateId field's value.
29688func (s *CertificateDescription) SetCaCertificateId(v string) *CertificateDescription {
29689	s.CaCertificateId = &v
29690	return s
29691}
29692
29693// SetCertificateArn sets the CertificateArn field's value.
29694func (s *CertificateDescription) SetCertificateArn(v string) *CertificateDescription {
29695	s.CertificateArn = &v
29696	return s
29697}
29698
29699// SetCertificateId sets the CertificateId field's value.
29700func (s *CertificateDescription) SetCertificateId(v string) *CertificateDescription {
29701	s.CertificateId = &v
29702	return s
29703}
29704
29705// SetCertificateMode sets the CertificateMode field's value.
29706func (s *CertificateDescription) SetCertificateMode(v string) *CertificateDescription {
29707	s.CertificateMode = &v
29708	return s
29709}
29710
29711// SetCertificatePem sets the CertificatePem field's value.
29712func (s *CertificateDescription) SetCertificatePem(v string) *CertificateDescription {
29713	s.CertificatePem = &v
29714	return s
29715}
29716
29717// SetCreationDate sets the CreationDate field's value.
29718func (s *CertificateDescription) SetCreationDate(v time.Time) *CertificateDescription {
29719	s.CreationDate = &v
29720	return s
29721}
29722
29723// SetCustomerVersion sets the CustomerVersion field's value.
29724func (s *CertificateDescription) SetCustomerVersion(v int64) *CertificateDescription {
29725	s.CustomerVersion = &v
29726	return s
29727}
29728
29729// SetGenerationId sets the GenerationId field's value.
29730func (s *CertificateDescription) SetGenerationId(v string) *CertificateDescription {
29731	s.GenerationId = &v
29732	return s
29733}
29734
29735// SetLastModifiedDate sets the LastModifiedDate field's value.
29736func (s *CertificateDescription) SetLastModifiedDate(v time.Time) *CertificateDescription {
29737	s.LastModifiedDate = &v
29738	return s
29739}
29740
29741// SetOwnedBy sets the OwnedBy field's value.
29742func (s *CertificateDescription) SetOwnedBy(v string) *CertificateDescription {
29743	s.OwnedBy = &v
29744	return s
29745}
29746
29747// SetPreviousOwnedBy sets the PreviousOwnedBy field's value.
29748func (s *CertificateDescription) SetPreviousOwnedBy(v string) *CertificateDescription {
29749	s.PreviousOwnedBy = &v
29750	return s
29751}
29752
29753// SetStatus sets the Status field's value.
29754func (s *CertificateDescription) SetStatus(v string) *CertificateDescription {
29755	s.Status = &v
29756	return s
29757}
29758
29759// SetTransferData sets the TransferData field's value.
29760func (s *CertificateDescription) SetTransferData(v *TransferData) *CertificateDescription {
29761	s.TransferData = v
29762	return s
29763}
29764
29765// SetValidity sets the Validity field's value.
29766func (s *CertificateDescription) SetValidity(v *CertificateValidity) *CertificateDescription {
29767	s.Validity = v
29768	return s
29769}
29770
29771// The certificate operation is not allowed.
29772type CertificateStateException struct {
29773	_            struct{}                  `type:"structure"`
29774	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
29775
29776	// The message for the exception.
29777	Message_ *string `locationName:"message" type:"string"`
29778}
29779
29780// String returns the string representation.
29781//
29782// API parameter values that are decorated as "sensitive" in the API will not
29783// be included in the string output. The member name will be present, but the
29784// value will be replaced with "sensitive".
29785func (s CertificateStateException) String() string {
29786	return awsutil.Prettify(s)
29787}
29788
29789// GoString returns the string representation.
29790//
29791// API parameter values that are decorated as "sensitive" in the API will not
29792// be included in the string output. The member name will be present, but the
29793// value will be replaced with "sensitive".
29794func (s CertificateStateException) GoString() string {
29795	return s.String()
29796}
29797
29798func newErrorCertificateStateException(v protocol.ResponseMetadata) error {
29799	return &CertificateStateException{
29800		RespMetadata: v,
29801	}
29802}
29803
29804// Code returns the exception type name.
29805func (s *CertificateStateException) Code() string {
29806	return "CertificateStateException"
29807}
29808
29809// Message returns the exception's message.
29810func (s *CertificateStateException) Message() string {
29811	if s.Message_ != nil {
29812		return *s.Message_
29813	}
29814	return ""
29815}
29816
29817// OrigErr always returns nil, satisfies awserr.Error interface.
29818func (s *CertificateStateException) OrigErr() error {
29819	return nil
29820}
29821
29822func (s *CertificateStateException) Error() string {
29823	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
29824}
29825
29826// Status code returns the HTTP status code for the request's response error.
29827func (s *CertificateStateException) StatusCode() int {
29828	return s.RespMetadata.StatusCode
29829}
29830
29831// RequestID returns the service's response RequestID for request.
29832func (s *CertificateStateException) RequestID() string {
29833	return s.RespMetadata.RequestID
29834}
29835
29836// The certificate is invalid.
29837type CertificateValidationException struct {
29838	_            struct{}                  `type:"structure"`
29839	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
29840
29841	// Additional information about the exception.
29842	Message_ *string `locationName:"message" type:"string"`
29843}
29844
29845// String returns the string representation.
29846//
29847// API parameter values that are decorated as "sensitive" in the API will not
29848// be included in the string output. The member name will be present, but the
29849// value will be replaced with "sensitive".
29850func (s CertificateValidationException) String() string {
29851	return awsutil.Prettify(s)
29852}
29853
29854// GoString returns the string representation.
29855//
29856// API parameter values that are decorated as "sensitive" in the API will not
29857// be included in the string output. The member name will be present, but the
29858// value will be replaced with "sensitive".
29859func (s CertificateValidationException) GoString() string {
29860	return s.String()
29861}
29862
29863func newErrorCertificateValidationException(v protocol.ResponseMetadata) error {
29864	return &CertificateValidationException{
29865		RespMetadata: v,
29866	}
29867}
29868
29869// Code returns the exception type name.
29870func (s *CertificateValidationException) Code() string {
29871	return "CertificateValidationException"
29872}
29873
29874// Message returns the exception's message.
29875func (s *CertificateValidationException) Message() string {
29876	if s.Message_ != nil {
29877		return *s.Message_
29878	}
29879	return ""
29880}
29881
29882// OrigErr always returns nil, satisfies awserr.Error interface.
29883func (s *CertificateValidationException) OrigErr() error {
29884	return nil
29885}
29886
29887func (s *CertificateValidationException) Error() string {
29888	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
29889}
29890
29891// Status code returns the HTTP status code for the request's response error.
29892func (s *CertificateValidationException) StatusCode() int {
29893	return s.RespMetadata.StatusCode
29894}
29895
29896// RequestID returns the service's response RequestID for request.
29897func (s *CertificateValidationException) RequestID() string {
29898	return s.RespMetadata.RequestID
29899}
29900
29901// When the certificate is valid.
29902type CertificateValidity struct {
29903	_ struct{} `type:"structure"`
29904
29905	// The certificate is not valid after this date.
29906	NotAfter *time.Time `locationName:"notAfter" type:"timestamp"`
29907
29908	// The certificate is not valid before this date.
29909	NotBefore *time.Time `locationName:"notBefore" type:"timestamp"`
29910}
29911
29912// String returns the string representation.
29913//
29914// API parameter values that are decorated as "sensitive" in the API will not
29915// be included in the string output. The member name will be present, but the
29916// value will be replaced with "sensitive".
29917func (s CertificateValidity) String() string {
29918	return awsutil.Prettify(s)
29919}
29920
29921// GoString returns the string representation.
29922//
29923// API parameter values that are decorated as "sensitive" in the API will not
29924// be included in the string output. The member name will be present, but the
29925// value will be replaced with "sensitive".
29926func (s CertificateValidity) GoString() string {
29927	return s.String()
29928}
29929
29930// SetNotAfter sets the NotAfter field's value.
29931func (s *CertificateValidity) SetNotAfter(v time.Time) *CertificateValidity {
29932	s.NotAfter = &v
29933	return s
29934}
29935
29936// SetNotBefore sets the NotBefore field's value.
29937func (s *CertificateValidity) SetNotBefore(v time.Time) *CertificateValidity {
29938	s.NotBefore = &v
29939	return s
29940}
29941
29942type ClearDefaultAuthorizerInput struct {
29943	_ struct{} `type:"structure" nopayload:"true"`
29944}
29945
29946// String returns the string representation.
29947//
29948// API parameter values that are decorated as "sensitive" in the API will not
29949// be included in the string output. The member name will be present, but the
29950// value will be replaced with "sensitive".
29951func (s ClearDefaultAuthorizerInput) String() string {
29952	return awsutil.Prettify(s)
29953}
29954
29955// GoString returns the string representation.
29956//
29957// API parameter values that are decorated as "sensitive" in the API will not
29958// be included in the string output. The member name will be present, but the
29959// value will be replaced with "sensitive".
29960func (s ClearDefaultAuthorizerInput) GoString() string {
29961	return s.String()
29962}
29963
29964type ClearDefaultAuthorizerOutput struct {
29965	_ struct{} `type:"structure"`
29966}
29967
29968// String returns the string representation.
29969//
29970// API parameter values that are decorated as "sensitive" in the API will not
29971// be included in the string output. The member name will be present, but the
29972// value will be replaced with "sensitive".
29973func (s ClearDefaultAuthorizerOutput) String() string {
29974	return awsutil.Prettify(s)
29975}
29976
29977// GoString returns the string representation.
29978//
29979// API parameter values that are decorated as "sensitive" in the API will not
29980// be included in the string output. The member name will be present, but the
29981// value will be replaced with "sensitive".
29982func (s ClearDefaultAuthorizerOutput) GoString() string {
29983	return s.String()
29984}
29985
29986// Describes an action that updates a CloudWatch alarm.
29987type CloudwatchAlarmAction struct {
29988	_ struct{} `type:"structure"`
29989
29990	// The CloudWatch alarm name.
29991	//
29992	// AlarmName is a required field
29993	AlarmName *string `locationName:"alarmName" type:"string" required:"true"`
29994
29995	// The IAM role that allows access to the CloudWatch alarm.
29996	//
29997	// RoleArn is a required field
29998	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
29999
30000	// The reason for the alarm change.
30001	//
30002	// StateReason is a required field
30003	StateReason *string `locationName:"stateReason" type:"string" required:"true"`
30004
30005	// The value of the alarm state. Acceptable values are: OK, ALARM, INSUFFICIENT_DATA.
30006	//
30007	// StateValue is a required field
30008	StateValue *string `locationName:"stateValue" type:"string" required:"true"`
30009}
30010
30011// String returns the string representation.
30012//
30013// API parameter values that are decorated as "sensitive" in the API will not
30014// be included in the string output. The member name will be present, but the
30015// value will be replaced with "sensitive".
30016func (s CloudwatchAlarmAction) String() string {
30017	return awsutil.Prettify(s)
30018}
30019
30020// GoString returns the string representation.
30021//
30022// API parameter values that are decorated as "sensitive" in the API will not
30023// be included in the string output. The member name will be present, but the
30024// value will be replaced with "sensitive".
30025func (s CloudwatchAlarmAction) GoString() string {
30026	return s.String()
30027}
30028
30029// Validate inspects the fields of the type to determine if they are valid.
30030func (s *CloudwatchAlarmAction) Validate() error {
30031	invalidParams := request.ErrInvalidParams{Context: "CloudwatchAlarmAction"}
30032	if s.AlarmName == nil {
30033		invalidParams.Add(request.NewErrParamRequired("AlarmName"))
30034	}
30035	if s.RoleArn == nil {
30036		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
30037	}
30038	if s.StateReason == nil {
30039		invalidParams.Add(request.NewErrParamRequired("StateReason"))
30040	}
30041	if s.StateValue == nil {
30042		invalidParams.Add(request.NewErrParamRequired("StateValue"))
30043	}
30044
30045	if invalidParams.Len() > 0 {
30046		return invalidParams
30047	}
30048	return nil
30049}
30050
30051// SetAlarmName sets the AlarmName field's value.
30052func (s *CloudwatchAlarmAction) SetAlarmName(v string) *CloudwatchAlarmAction {
30053	s.AlarmName = &v
30054	return s
30055}
30056
30057// SetRoleArn sets the RoleArn field's value.
30058func (s *CloudwatchAlarmAction) SetRoleArn(v string) *CloudwatchAlarmAction {
30059	s.RoleArn = &v
30060	return s
30061}
30062
30063// SetStateReason sets the StateReason field's value.
30064func (s *CloudwatchAlarmAction) SetStateReason(v string) *CloudwatchAlarmAction {
30065	s.StateReason = &v
30066	return s
30067}
30068
30069// SetStateValue sets the StateValue field's value.
30070func (s *CloudwatchAlarmAction) SetStateValue(v string) *CloudwatchAlarmAction {
30071	s.StateValue = &v
30072	return s
30073}
30074
30075// Describes an action that sends data to CloudWatch Logs.
30076type CloudwatchLogsAction struct {
30077	_ struct{} `type:"structure"`
30078
30079	// The CloudWatch log group to which the action sends data.
30080	//
30081	// LogGroupName is a required field
30082	LogGroupName *string `locationName:"logGroupName" type:"string" required:"true"`
30083
30084	// The IAM role that allows access to the CloudWatch log.
30085	//
30086	// RoleArn is a required field
30087	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
30088}
30089
30090// String returns the string representation.
30091//
30092// API parameter values that are decorated as "sensitive" in the API will not
30093// be included in the string output. The member name will be present, but the
30094// value will be replaced with "sensitive".
30095func (s CloudwatchLogsAction) String() string {
30096	return awsutil.Prettify(s)
30097}
30098
30099// GoString returns the string representation.
30100//
30101// API parameter values that are decorated as "sensitive" in the API will not
30102// be included in the string output. The member name will be present, but the
30103// value will be replaced with "sensitive".
30104func (s CloudwatchLogsAction) GoString() string {
30105	return s.String()
30106}
30107
30108// Validate inspects the fields of the type to determine if they are valid.
30109func (s *CloudwatchLogsAction) Validate() error {
30110	invalidParams := request.ErrInvalidParams{Context: "CloudwatchLogsAction"}
30111	if s.LogGroupName == nil {
30112		invalidParams.Add(request.NewErrParamRequired("LogGroupName"))
30113	}
30114	if s.RoleArn == nil {
30115		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
30116	}
30117
30118	if invalidParams.Len() > 0 {
30119		return invalidParams
30120	}
30121	return nil
30122}
30123
30124// SetLogGroupName sets the LogGroupName field's value.
30125func (s *CloudwatchLogsAction) SetLogGroupName(v string) *CloudwatchLogsAction {
30126	s.LogGroupName = &v
30127	return s
30128}
30129
30130// SetRoleArn sets the RoleArn field's value.
30131func (s *CloudwatchLogsAction) SetRoleArn(v string) *CloudwatchLogsAction {
30132	s.RoleArn = &v
30133	return s
30134}
30135
30136// Describes an action that captures a CloudWatch metric.
30137type CloudwatchMetricAction struct {
30138	_ struct{} `type:"structure"`
30139
30140	// The CloudWatch metric name.
30141	//
30142	// MetricName is a required field
30143	MetricName *string `locationName:"metricName" type:"string" required:"true"`
30144
30145	// The CloudWatch metric namespace name.
30146	//
30147	// MetricNamespace is a required field
30148	MetricNamespace *string `locationName:"metricNamespace" type:"string" required:"true"`
30149
30150	// An optional Unix timestamp (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#about_timestamp).
30151	MetricTimestamp *string `locationName:"metricTimestamp" type:"string"`
30152
30153	// The metric unit (https://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/cloudwatch_concepts.html#Unit)
30154	// supported by CloudWatch.
30155	//
30156	// MetricUnit is a required field
30157	MetricUnit *string `locationName:"metricUnit" type:"string" required:"true"`
30158
30159	// The CloudWatch metric value.
30160	//
30161	// MetricValue is a required field
30162	MetricValue *string `locationName:"metricValue" type:"string" required:"true"`
30163
30164	// The IAM role that allows access to the CloudWatch metric.
30165	//
30166	// RoleArn is a required field
30167	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
30168}
30169
30170// String returns the string representation.
30171//
30172// API parameter values that are decorated as "sensitive" in the API will not
30173// be included in the string output. The member name will be present, but the
30174// value will be replaced with "sensitive".
30175func (s CloudwatchMetricAction) String() string {
30176	return awsutil.Prettify(s)
30177}
30178
30179// GoString returns the string representation.
30180//
30181// API parameter values that are decorated as "sensitive" in the API will not
30182// be included in the string output. The member name will be present, but the
30183// value will be replaced with "sensitive".
30184func (s CloudwatchMetricAction) GoString() string {
30185	return s.String()
30186}
30187
30188// Validate inspects the fields of the type to determine if they are valid.
30189func (s *CloudwatchMetricAction) Validate() error {
30190	invalidParams := request.ErrInvalidParams{Context: "CloudwatchMetricAction"}
30191	if s.MetricName == nil {
30192		invalidParams.Add(request.NewErrParamRequired("MetricName"))
30193	}
30194	if s.MetricNamespace == nil {
30195		invalidParams.Add(request.NewErrParamRequired("MetricNamespace"))
30196	}
30197	if s.MetricUnit == nil {
30198		invalidParams.Add(request.NewErrParamRequired("MetricUnit"))
30199	}
30200	if s.MetricValue == nil {
30201		invalidParams.Add(request.NewErrParamRequired("MetricValue"))
30202	}
30203	if s.RoleArn == nil {
30204		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
30205	}
30206
30207	if invalidParams.Len() > 0 {
30208		return invalidParams
30209	}
30210	return nil
30211}
30212
30213// SetMetricName sets the MetricName field's value.
30214func (s *CloudwatchMetricAction) SetMetricName(v string) *CloudwatchMetricAction {
30215	s.MetricName = &v
30216	return s
30217}
30218
30219// SetMetricNamespace sets the MetricNamespace field's value.
30220func (s *CloudwatchMetricAction) SetMetricNamespace(v string) *CloudwatchMetricAction {
30221	s.MetricNamespace = &v
30222	return s
30223}
30224
30225// SetMetricTimestamp sets the MetricTimestamp field's value.
30226func (s *CloudwatchMetricAction) SetMetricTimestamp(v string) *CloudwatchMetricAction {
30227	s.MetricTimestamp = &v
30228	return s
30229}
30230
30231// SetMetricUnit sets the MetricUnit field's value.
30232func (s *CloudwatchMetricAction) SetMetricUnit(v string) *CloudwatchMetricAction {
30233	s.MetricUnit = &v
30234	return s
30235}
30236
30237// SetMetricValue sets the MetricValue field's value.
30238func (s *CloudwatchMetricAction) SetMetricValue(v string) *CloudwatchMetricAction {
30239	s.MetricValue = &v
30240	return s
30241}
30242
30243// SetRoleArn sets the RoleArn field's value.
30244func (s *CloudwatchMetricAction) SetRoleArn(v string) *CloudwatchMetricAction {
30245	s.RoleArn = &v
30246	return s
30247}
30248
30249// Describes the method to use when code signing a file.
30250type CodeSigning struct {
30251	_ struct{} `type:"structure"`
30252
30253	// The ID of the AWSSignerJob which was created to sign the file.
30254	AwsSignerJobId *string `locationName:"awsSignerJobId" type:"string"`
30255
30256	// A custom method for code signing a file.
30257	CustomCodeSigning *CustomCodeSigning `locationName:"customCodeSigning" type:"structure"`
30258
30259	// Describes the code-signing job.
30260	StartSigningJobParameter *StartSigningJobParameter `locationName:"startSigningJobParameter" type:"structure"`
30261}
30262
30263// String returns the string representation.
30264//
30265// API parameter values that are decorated as "sensitive" in the API will not
30266// be included in the string output. The member name will be present, but the
30267// value will be replaced with "sensitive".
30268func (s CodeSigning) String() string {
30269	return awsutil.Prettify(s)
30270}
30271
30272// GoString returns the string representation.
30273//
30274// API parameter values that are decorated as "sensitive" in the API will not
30275// be included in the string output. The member name will be present, but the
30276// value will be replaced with "sensitive".
30277func (s CodeSigning) GoString() string {
30278	return s.String()
30279}
30280
30281// Validate inspects the fields of the type to determine if they are valid.
30282func (s *CodeSigning) Validate() error {
30283	invalidParams := request.ErrInvalidParams{Context: "CodeSigning"}
30284	if s.StartSigningJobParameter != nil {
30285		if err := s.StartSigningJobParameter.Validate(); err != nil {
30286			invalidParams.AddNested("StartSigningJobParameter", err.(request.ErrInvalidParams))
30287		}
30288	}
30289
30290	if invalidParams.Len() > 0 {
30291		return invalidParams
30292	}
30293	return nil
30294}
30295
30296// SetAwsSignerJobId sets the AwsSignerJobId field's value.
30297func (s *CodeSigning) SetAwsSignerJobId(v string) *CodeSigning {
30298	s.AwsSignerJobId = &v
30299	return s
30300}
30301
30302// SetCustomCodeSigning sets the CustomCodeSigning field's value.
30303func (s *CodeSigning) SetCustomCodeSigning(v *CustomCodeSigning) *CodeSigning {
30304	s.CustomCodeSigning = v
30305	return s
30306}
30307
30308// SetStartSigningJobParameter sets the StartSigningJobParameter field's value.
30309func (s *CodeSigning) SetStartSigningJobParameter(v *StartSigningJobParameter) *CodeSigning {
30310	s.StartSigningJobParameter = v
30311	return s
30312}
30313
30314// Describes the certificate chain being used when code signing a file.
30315type CodeSigningCertificateChain struct {
30316	_ struct{} `type:"structure"`
30317
30318	// The name of the certificate.
30319	CertificateName *string `locationName:"certificateName" type:"string"`
30320
30321	// A base64 encoded binary representation of the code signing certificate chain.
30322	InlineDocument *string `locationName:"inlineDocument" type:"string"`
30323}
30324
30325// String returns the string representation.
30326//
30327// API parameter values that are decorated as "sensitive" in the API will not
30328// be included in the string output. The member name will be present, but the
30329// value will be replaced with "sensitive".
30330func (s CodeSigningCertificateChain) String() string {
30331	return awsutil.Prettify(s)
30332}
30333
30334// GoString returns the string representation.
30335//
30336// API parameter values that are decorated as "sensitive" in the API will not
30337// be included in the string output. The member name will be present, but the
30338// value will be replaced with "sensitive".
30339func (s CodeSigningCertificateChain) GoString() string {
30340	return s.String()
30341}
30342
30343// SetCertificateName sets the CertificateName field's value.
30344func (s *CodeSigningCertificateChain) SetCertificateName(v string) *CodeSigningCertificateChain {
30345	s.CertificateName = &v
30346	return s
30347}
30348
30349// SetInlineDocument sets the InlineDocument field's value.
30350func (s *CodeSigningCertificateChain) SetInlineDocument(v string) *CodeSigningCertificateChain {
30351	s.InlineDocument = &v
30352	return s
30353}
30354
30355// Describes the signature for a file.
30356type CodeSigningSignature struct {
30357	_ struct{} `type:"structure"`
30358
30359	// A base64 encoded binary representation of the code signing signature.
30360	// InlineDocument is automatically base64 encoded/decoded by the SDK.
30361	InlineDocument []byte `locationName:"inlineDocument" type:"blob"`
30362}
30363
30364// String returns the string representation.
30365//
30366// API parameter values that are decorated as "sensitive" in the API will not
30367// be included in the string output. The member name will be present, but the
30368// value will be replaced with "sensitive".
30369func (s CodeSigningSignature) String() string {
30370	return awsutil.Prettify(s)
30371}
30372
30373// GoString returns the string representation.
30374//
30375// API parameter values that are decorated as "sensitive" in the API will not
30376// be included in the string output. The member name will be present, but the
30377// value will be replaced with "sensitive".
30378func (s CodeSigningSignature) GoString() string {
30379	return s.String()
30380}
30381
30382// SetInlineDocument sets the InlineDocument field's value.
30383func (s *CodeSigningSignature) SetInlineDocument(v []byte) *CodeSigningSignature {
30384	s.InlineDocument = v
30385	return s
30386}
30387
30388// Configuration.
30389type Configuration struct {
30390	_ struct{} `type:"structure"`
30391
30392	// True to enable the configuration.
30393	Enabled *bool `type:"boolean"`
30394}
30395
30396// String returns the string representation.
30397//
30398// API parameter values that are decorated as "sensitive" in the API will not
30399// be included in the string output. The member name will be present, but the
30400// value will be replaced with "sensitive".
30401func (s Configuration) String() string {
30402	return awsutil.Prettify(s)
30403}
30404
30405// GoString returns the string representation.
30406//
30407// API parameter values that are decorated as "sensitive" in the API will not
30408// be included in the string output. The member name will be present, but the
30409// value will be replaced with "sensitive".
30410func (s Configuration) GoString() string {
30411	return s.String()
30412}
30413
30414// SetEnabled sets the Enabled field's value.
30415func (s *Configuration) SetEnabled(v bool) *Configuration {
30416	s.Enabled = &v
30417	return s
30418}
30419
30420type ConfirmTopicRuleDestinationInput struct {
30421	_ struct{} `type:"structure" nopayload:"true"`
30422
30423	// The token used to confirm ownership or access to the topic rule confirmation
30424	// URL.
30425	//
30426	// ConfirmationToken is a required field
30427	ConfirmationToken *string `location:"uri" locationName:"confirmationToken" min:"1" type:"string" required:"true"`
30428}
30429
30430// String returns the string representation.
30431//
30432// API parameter values that are decorated as "sensitive" in the API will not
30433// be included in the string output. The member name will be present, but the
30434// value will be replaced with "sensitive".
30435func (s ConfirmTopicRuleDestinationInput) String() string {
30436	return awsutil.Prettify(s)
30437}
30438
30439// GoString returns the string representation.
30440//
30441// API parameter values that are decorated as "sensitive" in the API will not
30442// be included in the string output. The member name will be present, but the
30443// value will be replaced with "sensitive".
30444func (s ConfirmTopicRuleDestinationInput) GoString() string {
30445	return s.String()
30446}
30447
30448// Validate inspects the fields of the type to determine if they are valid.
30449func (s *ConfirmTopicRuleDestinationInput) Validate() error {
30450	invalidParams := request.ErrInvalidParams{Context: "ConfirmTopicRuleDestinationInput"}
30451	if s.ConfirmationToken == nil {
30452		invalidParams.Add(request.NewErrParamRequired("ConfirmationToken"))
30453	}
30454	if s.ConfirmationToken != nil && len(*s.ConfirmationToken) < 1 {
30455		invalidParams.Add(request.NewErrParamMinLen("ConfirmationToken", 1))
30456	}
30457
30458	if invalidParams.Len() > 0 {
30459		return invalidParams
30460	}
30461	return nil
30462}
30463
30464// SetConfirmationToken sets the ConfirmationToken field's value.
30465func (s *ConfirmTopicRuleDestinationInput) SetConfirmationToken(v string) *ConfirmTopicRuleDestinationInput {
30466	s.ConfirmationToken = &v
30467	return s
30468}
30469
30470type ConfirmTopicRuleDestinationOutput struct {
30471	_ struct{} `type:"structure"`
30472}
30473
30474// String returns the string representation.
30475//
30476// API parameter values that are decorated as "sensitive" in the API will not
30477// be included in the string output. The member name will be present, but the
30478// value will be replaced with "sensitive".
30479func (s ConfirmTopicRuleDestinationOutput) String() string {
30480	return awsutil.Prettify(s)
30481}
30482
30483// GoString returns the string representation.
30484//
30485// API parameter values that are decorated as "sensitive" in the API will not
30486// be included in the string output. The member name will be present, but the
30487// value will be replaced with "sensitive".
30488func (s ConfirmTopicRuleDestinationOutput) GoString() string {
30489	return s.String()
30490}
30491
30492// A resource with the same name already exists.
30493type ConflictException struct {
30494	_            struct{}                  `type:"structure"`
30495	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
30496
30497	Message_ *string `locationName:"message" type:"string"`
30498}
30499
30500// String returns the string representation.
30501//
30502// API parameter values that are decorated as "sensitive" in the API will not
30503// be included in the string output. The member name will be present, but the
30504// value will be replaced with "sensitive".
30505func (s ConflictException) String() string {
30506	return awsutil.Prettify(s)
30507}
30508
30509// GoString returns the string representation.
30510//
30511// API parameter values that are decorated as "sensitive" in the API will not
30512// be included in the string output. The member name will be present, but the
30513// value will be replaced with "sensitive".
30514func (s ConflictException) GoString() string {
30515	return s.String()
30516}
30517
30518func newErrorConflictException(v protocol.ResponseMetadata) error {
30519	return &ConflictException{
30520		RespMetadata: v,
30521	}
30522}
30523
30524// Code returns the exception type name.
30525func (s *ConflictException) Code() string {
30526	return "ConflictException"
30527}
30528
30529// Message returns the exception's message.
30530func (s *ConflictException) Message() string {
30531	if s.Message_ != nil {
30532		return *s.Message_
30533	}
30534	return ""
30535}
30536
30537// OrigErr always returns nil, satisfies awserr.Error interface.
30538func (s *ConflictException) OrigErr() error {
30539	return nil
30540}
30541
30542func (s *ConflictException) Error() string {
30543	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
30544}
30545
30546// Status code returns the HTTP status code for the request's response error.
30547func (s *ConflictException) StatusCode() int {
30548	return s.RespMetadata.StatusCode
30549}
30550
30551// RequestID returns the service's response RequestID for request.
30552func (s *ConflictException) RequestID() string {
30553	return s.RespMetadata.RequestID
30554}
30555
30556// A conflicting resource update exception. This exception is thrown when two
30557// pending updates cause a conflict.
30558type ConflictingResourceUpdateException struct {
30559	_            struct{}                  `type:"structure"`
30560	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
30561
30562	// The message for the exception.
30563	Message_ *string `locationName:"message" type:"string"`
30564}
30565
30566// String returns the string representation.
30567//
30568// API parameter values that are decorated as "sensitive" in the API will not
30569// be included in the string output. The member name will be present, but the
30570// value will be replaced with "sensitive".
30571func (s ConflictingResourceUpdateException) String() string {
30572	return awsutil.Prettify(s)
30573}
30574
30575// GoString returns the string representation.
30576//
30577// API parameter values that are decorated as "sensitive" in the API will not
30578// be included in the string output. The member name will be present, but the
30579// value will be replaced with "sensitive".
30580func (s ConflictingResourceUpdateException) GoString() string {
30581	return s.String()
30582}
30583
30584func newErrorConflictingResourceUpdateException(v protocol.ResponseMetadata) error {
30585	return &ConflictingResourceUpdateException{
30586		RespMetadata: v,
30587	}
30588}
30589
30590// Code returns the exception type name.
30591func (s *ConflictingResourceUpdateException) Code() string {
30592	return "ConflictingResourceUpdateException"
30593}
30594
30595// Message returns the exception's message.
30596func (s *ConflictingResourceUpdateException) Message() string {
30597	if s.Message_ != nil {
30598		return *s.Message_
30599	}
30600	return ""
30601}
30602
30603// OrigErr always returns nil, satisfies awserr.Error interface.
30604func (s *ConflictingResourceUpdateException) OrigErr() error {
30605	return nil
30606}
30607
30608func (s *ConflictingResourceUpdateException) Error() string {
30609	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
30610}
30611
30612// Status code returns the HTTP status code for the request's response error.
30613func (s *ConflictingResourceUpdateException) StatusCode() int {
30614	return s.RespMetadata.StatusCode
30615}
30616
30617// RequestID returns the service's response RequestID for request.
30618func (s *ConflictingResourceUpdateException) RequestID() string {
30619	return s.RespMetadata.RequestID
30620}
30621
30622type CreateAuditSuppressionInput struct {
30623	_ struct{} `type:"structure"`
30624
30625	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
30626	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
30627	// to select which checks are enabled.)
30628	//
30629	// CheckName is a required field
30630	CheckName *string `locationName:"checkName" type:"string" required:"true"`
30631
30632	// Each audit supression must have a unique client request token. If you try
30633	// to create a new audit suppression with the same token as one that already
30634	// exists, an exception occurs. If you omit this value, Amazon Web Services
30635	// SDKs will automatically generate a unique client request.
30636	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
30637
30638	// The description of the audit suppression.
30639	Description *string `locationName:"description" type:"string"`
30640
30641	// The epoch timestamp in seconds at which this suppression expires.
30642	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
30643
30644	// Information that identifies the noncompliant resource.
30645	//
30646	// ResourceIdentifier is a required field
30647	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
30648
30649	// Indicates whether a suppression should exist indefinitely or not.
30650	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
30651}
30652
30653// String returns the string representation.
30654//
30655// API parameter values that are decorated as "sensitive" in the API will not
30656// be included in the string output. The member name will be present, but the
30657// value will be replaced with "sensitive".
30658func (s CreateAuditSuppressionInput) String() string {
30659	return awsutil.Prettify(s)
30660}
30661
30662// GoString returns the string representation.
30663//
30664// API parameter values that are decorated as "sensitive" in the API will not
30665// be included in the string output. The member name will be present, but the
30666// value will be replaced with "sensitive".
30667func (s CreateAuditSuppressionInput) GoString() string {
30668	return s.String()
30669}
30670
30671// Validate inspects the fields of the type to determine if they are valid.
30672func (s *CreateAuditSuppressionInput) Validate() error {
30673	invalidParams := request.ErrInvalidParams{Context: "CreateAuditSuppressionInput"}
30674	if s.CheckName == nil {
30675		invalidParams.Add(request.NewErrParamRequired("CheckName"))
30676	}
30677	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
30678		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
30679	}
30680	if s.ResourceIdentifier == nil {
30681		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
30682	}
30683	if s.ResourceIdentifier != nil {
30684		if err := s.ResourceIdentifier.Validate(); err != nil {
30685			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
30686		}
30687	}
30688
30689	if invalidParams.Len() > 0 {
30690		return invalidParams
30691	}
30692	return nil
30693}
30694
30695// SetCheckName sets the CheckName field's value.
30696func (s *CreateAuditSuppressionInput) SetCheckName(v string) *CreateAuditSuppressionInput {
30697	s.CheckName = &v
30698	return s
30699}
30700
30701// SetClientRequestToken sets the ClientRequestToken field's value.
30702func (s *CreateAuditSuppressionInput) SetClientRequestToken(v string) *CreateAuditSuppressionInput {
30703	s.ClientRequestToken = &v
30704	return s
30705}
30706
30707// SetDescription sets the Description field's value.
30708func (s *CreateAuditSuppressionInput) SetDescription(v string) *CreateAuditSuppressionInput {
30709	s.Description = &v
30710	return s
30711}
30712
30713// SetExpirationDate sets the ExpirationDate field's value.
30714func (s *CreateAuditSuppressionInput) SetExpirationDate(v time.Time) *CreateAuditSuppressionInput {
30715	s.ExpirationDate = &v
30716	return s
30717}
30718
30719// SetResourceIdentifier sets the ResourceIdentifier field's value.
30720func (s *CreateAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *CreateAuditSuppressionInput {
30721	s.ResourceIdentifier = v
30722	return s
30723}
30724
30725// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
30726func (s *CreateAuditSuppressionInput) SetSuppressIndefinitely(v bool) *CreateAuditSuppressionInput {
30727	s.SuppressIndefinitely = &v
30728	return s
30729}
30730
30731type CreateAuditSuppressionOutput struct {
30732	_ struct{} `type:"structure"`
30733}
30734
30735// String returns the string representation.
30736//
30737// API parameter values that are decorated as "sensitive" in the API will not
30738// be included in the string output. The member name will be present, but the
30739// value will be replaced with "sensitive".
30740func (s CreateAuditSuppressionOutput) String() string {
30741	return awsutil.Prettify(s)
30742}
30743
30744// GoString returns the string representation.
30745//
30746// API parameter values that are decorated as "sensitive" in the API will not
30747// be included in the string output. The member name will be present, but the
30748// value will be replaced with "sensitive".
30749func (s CreateAuditSuppressionOutput) GoString() string {
30750	return s.String()
30751}
30752
30753type CreateAuthorizerInput struct {
30754	_ struct{} `type:"structure"`
30755
30756	// The ARN of the authorizer's Lambda function.
30757	//
30758	// AuthorizerFunctionArn is a required field
30759	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string" required:"true"`
30760
30761	// The authorizer name.
30762	//
30763	// AuthorizerName is a required field
30764	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
30765
30766	// Specifies whether IoT validates the token signature in an authorization request.
30767	SigningDisabled *bool `locationName:"signingDisabled" type:"boolean"`
30768
30769	// The status of the create authorizer request.
30770	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
30771
30772	// Metadata which can be used to manage the custom authorizer.
30773	//
30774	// For URI Request parameters use format: ...key1=value1&key2=value2...
30775	//
30776	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
30777	//
30778	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
30779	Tags []*Tag `locationName:"tags" type:"list"`
30780
30781	// The name of the token key used to extract the token from the HTTP headers.
30782	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
30783
30784	// The public keys used to verify the digital signature returned by your custom
30785	// authentication service.
30786	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
30787}
30788
30789// String returns the string representation.
30790//
30791// API parameter values that are decorated as "sensitive" in the API will not
30792// be included in the string output. The member name will be present, but the
30793// value will be replaced with "sensitive".
30794func (s CreateAuthorizerInput) String() string {
30795	return awsutil.Prettify(s)
30796}
30797
30798// GoString returns the string representation.
30799//
30800// API parameter values that are decorated as "sensitive" in the API will not
30801// be included in the string output. The member name will be present, but the
30802// value will be replaced with "sensitive".
30803func (s CreateAuthorizerInput) GoString() string {
30804	return s.String()
30805}
30806
30807// Validate inspects the fields of the type to determine if they are valid.
30808func (s *CreateAuthorizerInput) Validate() error {
30809	invalidParams := request.ErrInvalidParams{Context: "CreateAuthorizerInput"}
30810	if s.AuthorizerFunctionArn == nil {
30811		invalidParams.Add(request.NewErrParamRequired("AuthorizerFunctionArn"))
30812	}
30813	if s.AuthorizerName == nil {
30814		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
30815	}
30816	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
30817		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
30818	}
30819	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
30820		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
30821	}
30822	if s.Tags != nil {
30823		for i, v := range s.Tags {
30824			if v == nil {
30825				continue
30826			}
30827			if err := v.Validate(); err != nil {
30828				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30829			}
30830		}
30831	}
30832
30833	if invalidParams.Len() > 0 {
30834		return invalidParams
30835	}
30836	return nil
30837}
30838
30839// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
30840func (s *CreateAuthorizerInput) SetAuthorizerFunctionArn(v string) *CreateAuthorizerInput {
30841	s.AuthorizerFunctionArn = &v
30842	return s
30843}
30844
30845// SetAuthorizerName sets the AuthorizerName field's value.
30846func (s *CreateAuthorizerInput) SetAuthorizerName(v string) *CreateAuthorizerInput {
30847	s.AuthorizerName = &v
30848	return s
30849}
30850
30851// SetSigningDisabled sets the SigningDisabled field's value.
30852func (s *CreateAuthorizerInput) SetSigningDisabled(v bool) *CreateAuthorizerInput {
30853	s.SigningDisabled = &v
30854	return s
30855}
30856
30857// SetStatus sets the Status field's value.
30858func (s *CreateAuthorizerInput) SetStatus(v string) *CreateAuthorizerInput {
30859	s.Status = &v
30860	return s
30861}
30862
30863// SetTags sets the Tags field's value.
30864func (s *CreateAuthorizerInput) SetTags(v []*Tag) *CreateAuthorizerInput {
30865	s.Tags = v
30866	return s
30867}
30868
30869// SetTokenKeyName sets the TokenKeyName field's value.
30870func (s *CreateAuthorizerInput) SetTokenKeyName(v string) *CreateAuthorizerInput {
30871	s.TokenKeyName = &v
30872	return s
30873}
30874
30875// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
30876func (s *CreateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *CreateAuthorizerInput {
30877	s.TokenSigningPublicKeys = v
30878	return s
30879}
30880
30881type CreateAuthorizerOutput struct {
30882	_ struct{} `type:"structure"`
30883
30884	// The authorizer ARN.
30885	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
30886
30887	// The authorizer's name.
30888	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
30889}
30890
30891// String returns the string representation.
30892//
30893// API parameter values that are decorated as "sensitive" in the API will not
30894// be included in the string output. The member name will be present, but the
30895// value will be replaced with "sensitive".
30896func (s CreateAuthorizerOutput) String() string {
30897	return awsutil.Prettify(s)
30898}
30899
30900// GoString returns the string representation.
30901//
30902// API parameter values that are decorated as "sensitive" in the API will not
30903// be included in the string output. The member name will be present, but the
30904// value will be replaced with "sensitive".
30905func (s CreateAuthorizerOutput) GoString() string {
30906	return s.String()
30907}
30908
30909// SetAuthorizerArn sets the AuthorizerArn field's value.
30910func (s *CreateAuthorizerOutput) SetAuthorizerArn(v string) *CreateAuthorizerOutput {
30911	s.AuthorizerArn = &v
30912	return s
30913}
30914
30915// SetAuthorizerName sets the AuthorizerName field's value.
30916func (s *CreateAuthorizerOutput) SetAuthorizerName(v string) *CreateAuthorizerOutput {
30917	s.AuthorizerName = &v
30918	return s
30919}
30920
30921type CreateBillingGroupInput struct {
30922	_ struct{} `type:"structure"`
30923
30924	// The name you wish to give to the billing group.
30925	//
30926	// BillingGroupName is a required field
30927	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
30928
30929	// The properties of the billing group.
30930	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
30931
30932	// Metadata which can be used to manage the billing group.
30933	Tags []*Tag `locationName:"tags" type:"list"`
30934}
30935
30936// String returns the string representation.
30937//
30938// API parameter values that are decorated as "sensitive" in the API will not
30939// be included in the string output. The member name will be present, but the
30940// value will be replaced with "sensitive".
30941func (s CreateBillingGroupInput) String() string {
30942	return awsutil.Prettify(s)
30943}
30944
30945// GoString returns the string representation.
30946//
30947// API parameter values that are decorated as "sensitive" in the API will not
30948// be included in the string output. The member name will be present, but the
30949// value will be replaced with "sensitive".
30950func (s CreateBillingGroupInput) GoString() string {
30951	return s.String()
30952}
30953
30954// Validate inspects the fields of the type to determine if they are valid.
30955func (s *CreateBillingGroupInput) Validate() error {
30956	invalidParams := request.ErrInvalidParams{Context: "CreateBillingGroupInput"}
30957	if s.BillingGroupName == nil {
30958		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
30959	}
30960	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
30961		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
30962	}
30963	if s.Tags != nil {
30964		for i, v := range s.Tags {
30965			if v == nil {
30966				continue
30967			}
30968			if err := v.Validate(); err != nil {
30969				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
30970			}
30971		}
30972	}
30973
30974	if invalidParams.Len() > 0 {
30975		return invalidParams
30976	}
30977	return nil
30978}
30979
30980// SetBillingGroupName sets the BillingGroupName field's value.
30981func (s *CreateBillingGroupInput) SetBillingGroupName(v string) *CreateBillingGroupInput {
30982	s.BillingGroupName = &v
30983	return s
30984}
30985
30986// SetBillingGroupProperties sets the BillingGroupProperties field's value.
30987func (s *CreateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *CreateBillingGroupInput {
30988	s.BillingGroupProperties = v
30989	return s
30990}
30991
30992// SetTags sets the Tags field's value.
30993func (s *CreateBillingGroupInput) SetTags(v []*Tag) *CreateBillingGroupInput {
30994	s.Tags = v
30995	return s
30996}
30997
30998type CreateBillingGroupOutput struct {
30999	_ struct{} `type:"structure"`
31000
31001	// The ARN of the billing group.
31002	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
31003
31004	// The ID of the billing group.
31005	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
31006
31007	// The name you gave to the billing group.
31008	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
31009}
31010
31011// String returns the string representation.
31012//
31013// API parameter values that are decorated as "sensitive" in the API will not
31014// be included in the string output. The member name will be present, but the
31015// value will be replaced with "sensitive".
31016func (s CreateBillingGroupOutput) String() string {
31017	return awsutil.Prettify(s)
31018}
31019
31020// GoString returns the string representation.
31021//
31022// API parameter values that are decorated as "sensitive" in the API will not
31023// be included in the string output. The member name will be present, but the
31024// value will be replaced with "sensitive".
31025func (s CreateBillingGroupOutput) GoString() string {
31026	return s.String()
31027}
31028
31029// SetBillingGroupArn sets the BillingGroupArn field's value.
31030func (s *CreateBillingGroupOutput) SetBillingGroupArn(v string) *CreateBillingGroupOutput {
31031	s.BillingGroupArn = &v
31032	return s
31033}
31034
31035// SetBillingGroupId sets the BillingGroupId field's value.
31036func (s *CreateBillingGroupOutput) SetBillingGroupId(v string) *CreateBillingGroupOutput {
31037	s.BillingGroupId = &v
31038	return s
31039}
31040
31041// SetBillingGroupName sets the BillingGroupName field's value.
31042func (s *CreateBillingGroupOutput) SetBillingGroupName(v string) *CreateBillingGroupOutput {
31043	s.BillingGroupName = &v
31044	return s
31045}
31046
31047// The input for the CreateCertificateFromCsr operation.
31048type CreateCertificateFromCsrInput struct {
31049	_ struct{} `type:"structure"`
31050
31051	// The certificate signing request (CSR).
31052	//
31053	// CertificateSigningRequest is a required field
31054	CertificateSigningRequest *string `locationName:"certificateSigningRequest" min:"1" type:"string" required:"true"`
31055
31056	// Specifies whether the certificate is active.
31057	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
31058}
31059
31060// String returns the string representation.
31061//
31062// API parameter values that are decorated as "sensitive" in the API will not
31063// be included in the string output. The member name will be present, but the
31064// value will be replaced with "sensitive".
31065func (s CreateCertificateFromCsrInput) String() string {
31066	return awsutil.Prettify(s)
31067}
31068
31069// GoString returns the string representation.
31070//
31071// API parameter values that are decorated as "sensitive" in the API will not
31072// be included in the string output. The member name will be present, but the
31073// value will be replaced with "sensitive".
31074func (s CreateCertificateFromCsrInput) GoString() string {
31075	return s.String()
31076}
31077
31078// Validate inspects the fields of the type to determine if they are valid.
31079func (s *CreateCertificateFromCsrInput) Validate() error {
31080	invalidParams := request.ErrInvalidParams{Context: "CreateCertificateFromCsrInput"}
31081	if s.CertificateSigningRequest == nil {
31082		invalidParams.Add(request.NewErrParamRequired("CertificateSigningRequest"))
31083	}
31084	if s.CertificateSigningRequest != nil && len(*s.CertificateSigningRequest) < 1 {
31085		invalidParams.Add(request.NewErrParamMinLen("CertificateSigningRequest", 1))
31086	}
31087
31088	if invalidParams.Len() > 0 {
31089		return invalidParams
31090	}
31091	return nil
31092}
31093
31094// SetCertificateSigningRequest sets the CertificateSigningRequest field's value.
31095func (s *CreateCertificateFromCsrInput) SetCertificateSigningRequest(v string) *CreateCertificateFromCsrInput {
31096	s.CertificateSigningRequest = &v
31097	return s
31098}
31099
31100// SetSetAsActive sets the SetAsActive field's value.
31101func (s *CreateCertificateFromCsrInput) SetSetAsActive(v bool) *CreateCertificateFromCsrInput {
31102	s.SetAsActive = &v
31103	return s
31104}
31105
31106// The output from the CreateCertificateFromCsr operation.
31107type CreateCertificateFromCsrOutput struct {
31108	_ struct{} `type:"structure"`
31109
31110	// The Amazon Resource Name (ARN) of the certificate. You can use the ARN as
31111	// a principal for policy operations.
31112	CertificateArn *string `locationName:"certificateArn" type:"string"`
31113
31114	// The ID of the certificate. Certificate management operations only take a
31115	// certificateId.
31116	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
31117
31118	// The certificate data, in PEM format.
31119	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
31120}
31121
31122// String returns the string representation.
31123//
31124// API parameter values that are decorated as "sensitive" in the API will not
31125// be included in the string output. The member name will be present, but the
31126// value will be replaced with "sensitive".
31127func (s CreateCertificateFromCsrOutput) String() string {
31128	return awsutil.Prettify(s)
31129}
31130
31131// GoString returns the string representation.
31132//
31133// API parameter values that are decorated as "sensitive" in the API will not
31134// be included in the string output. The member name will be present, but the
31135// value will be replaced with "sensitive".
31136func (s CreateCertificateFromCsrOutput) GoString() string {
31137	return s.String()
31138}
31139
31140// SetCertificateArn sets the CertificateArn field's value.
31141func (s *CreateCertificateFromCsrOutput) SetCertificateArn(v string) *CreateCertificateFromCsrOutput {
31142	s.CertificateArn = &v
31143	return s
31144}
31145
31146// SetCertificateId sets the CertificateId field's value.
31147func (s *CreateCertificateFromCsrOutput) SetCertificateId(v string) *CreateCertificateFromCsrOutput {
31148	s.CertificateId = &v
31149	return s
31150}
31151
31152// SetCertificatePem sets the CertificatePem field's value.
31153func (s *CreateCertificateFromCsrOutput) SetCertificatePem(v string) *CreateCertificateFromCsrOutput {
31154	s.CertificatePem = &v
31155	return s
31156}
31157
31158type CreateCustomMetricInput struct {
31159	_ struct{} `type:"structure"`
31160
31161	// Each custom metric must have a unique client request token. If you try to
31162	// create a new custom metric that already exists with a different token, an
31163	// exception occurs. If you omit this value, Amazon Web Services SDKs will automatically
31164	// generate a unique client request.
31165	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
31166
31167	// Field represents a friendly name in the console for the custom metric; it
31168	// doesn't have to be unique. Don't use this name as the metric identifier in
31169	// the device metric report. Can be updated once defined.
31170	DisplayName *string `locationName:"displayName" type:"string"`
31171
31172	// The name of the custom metric. This will be used in the metric report submitted
31173	// from the device/thing. Shouldn't begin with aws:. Cannot be updated once
31174	// defined.
31175	//
31176	// MetricName is a required field
31177	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
31178
31179	// The type of the custom metric. Types include string-list, ip-address-list,
31180	// number-list, and number.
31181	//
31182	// MetricType is a required field
31183	MetricType *string `locationName:"metricType" type:"string" required:"true" enum:"CustomMetricType"`
31184
31185	// Metadata that can be used to manage the custom metric.
31186	Tags []*Tag `locationName:"tags" type:"list"`
31187}
31188
31189// String returns the string representation.
31190//
31191// API parameter values that are decorated as "sensitive" in the API will not
31192// be included in the string output. The member name will be present, but the
31193// value will be replaced with "sensitive".
31194func (s CreateCustomMetricInput) String() string {
31195	return awsutil.Prettify(s)
31196}
31197
31198// GoString returns the string representation.
31199//
31200// API parameter values that are decorated as "sensitive" in the API will not
31201// be included in the string output. The member name will be present, but the
31202// value will be replaced with "sensitive".
31203func (s CreateCustomMetricInput) GoString() string {
31204	return s.String()
31205}
31206
31207// Validate inspects the fields of the type to determine if they are valid.
31208func (s *CreateCustomMetricInput) Validate() error {
31209	invalidParams := request.ErrInvalidParams{Context: "CreateCustomMetricInput"}
31210	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
31211		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
31212	}
31213	if s.MetricName == nil {
31214		invalidParams.Add(request.NewErrParamRequired("MetricName"))
31215	}
31216	if s.MetricName != nil && len(*s.MetricName) < 1 {
31217		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
31218	}
31219	if s.MetricType == nil {
31220		invalidParams.Add(request.NewErrParamRequired("MetricType"))
31221	}
31222	if s.Tags != nil {
31223		for i, v := range s.Tags {
31224			if v == nil {
31225				continue
31226			}
31227			if err := v.Validate(); err != nil {
31228				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31229			}
31230		}
31231	}
31232
31233	if invalidParams.Len() > 0 {
31234		return invalidParams
31235	}
31236	return nil
31237}
31238
31239// SetClientRequestToken sets the ClientRequestToken field's value.
31240func (s *CreateCustomMetricInput) SetClientRequestToken(v string) *CreateCustomMetricInput {
31241	s.ClientRequestToken = &v
31242	return s
31243}
31244
31245// SetDisplayName sets the DisplayName field's value.
31246func (s *CreateCustomMetricInput) SetDisplayName(v string) *CreateCustomMetricInput {
31247	s.DisplayName = &v
31248	return s
31249}
31250
31251// SetMetricName sets the MetricName field's value.
31252func (s *CreateCustomMetricInput) SetMetricName(v string) *CreateCustomMetricInput {
31253	s.MetricName = &v
31254	return s
31255}
31256
31257// SetMetricType sets the MetricType field's value.
31258func (s *CreateCustomMetricInput) SetMetricType(v string) *CreateCustomMetricInput {
31259	s.MetricType = &v
31260	return s
31261}
31262
31263// SetTags sets the Tags field's value.
31264func (s *CreateCustomMetricInput) SetTags(v []*Tag) *CreateCustomMetricInput {
31265	s.Tags = v
31266	return s
31267}
31268
31269type CreateCustomMetricOutput struct {
31270	_ struct{} `type:"structure"`
31271
31272	// The Amazon Resource Number (ARN) of the custom metric, e.g. arn:aws-partition:iot:region:accountId:custommetric/metricName
31273	MetricArn *string `locationName:"metricArn" type:"string"`
31274
31275	// The name of the custom metric to be used in the metric report.
31276	MetricName *string `locationName:"metricName" min:"1" type:"string"`
31277}
31278
31279// String returns the string representation.
31280//
31281// API parameter values that are decorated as "sensitive" in the API will not
31282// be included in the string output. The member name will be present, but the
31283// value will be replaced with "sensitive".
31284func (s CreateCustomMetricOutput) String() string {
31285	return awsutil.Prettify(s)
31286}
31287
31288// GoString returns the string representation.
31289//
31290// API parameter values that are decorated as "sensitive" in the API will not
31291// be included in the string output. The member name will be present, but the
31292// value will be replaced with "sensitive".
31293func (s CreateCustomMetricOutput) GoString() string {
31294	return s.String()
31295}
31296
31297// SetMetricArn sets the MetricArn field's value.
31298func (s *CreateCustomMetricOutput) SetMetricArn(v string) *CreateCustomMetricOutput {
31299	s.MetricArn = &v
31300	return s
31301}
31302
31303// SetMetricName sets the MetricName field's value.
31304func (s *CreateCustomMetricOutput) SetMetricName(v string) *CreateCustomMetricOutput {
31305	s.MetricName = &v
31306	return s
31307}
31308
31309type CreateDimensionInput struct {
31310	_ struct{} `type:"structure"`
31311
31312	// Each dimension must have a unique client request token. If you try to create
31313	// a new dimension with the same token as a dimension that already exists, an
31314	// exception occurs. If you omit this value, Amazon Web Services SDKs will automatically
31315	// generate a unique client request.
31316	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
31317
31318	// A unique identifier for the dimension. Choose something that describes the
31319	// type and value to make it easy to remember what it does.
31320	//
31321	// Name is a required field
31322	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
31323
31324	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
31325	// dimensions, this is a pattern used to match the MQTT topic (for example,
31326	// "admin/#").
31327	//
31328	// StringValues is a required field
31329	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
31330
31331	// Metadata that can be used to manage the dimension.
31332	Tags []*Tag `locationName:"tags" type:"list"`
31333
31334	// Specifies the type of dimension. Supported types: TOPIC_FILTER.
31335	//
31336	// Type is a required field
31337	Type *string `locationName:"type" type:"string" required:"true" enum:"DimensionType"`
31338}
31339
31340// String returns the string representation.
31341//
31342// API parameter values that are decorated as "sensitive" in the API will not
31343// be included in the string output. The member name will be present, but the
31344// value will be replaced with "sensitive".
31345func (s CreateDimensionInput) String() string {
31346	return awsutil.Prettify(s)
31347}
31348
31349// GoString returns the string representation.
31350//
31351// API parameter values that are decorated as "sensitive" in the API will not
31352// be included in the string output. The member name will be present, but the
31353// value will be replaced with "sensitive".
31354func (s CreateDimensionInput) GoString() string {
31355	return s.String()
31356}
31357
31358// Validate inspects the fields of the type to determine if they are valid.
31359func (s *CreateDimensionInput) Validate() error {
31360	invalidParams := request.ErrInvalidParams{Context: "CreateDimensionInput"}
31361	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
31362		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
31363	}
31364	if s.Name == nil {
31365		invalidParams.Add(request.NewErrParamRequired("Name"))
31366	}
31367	if s.Name != nil && len(*s.Name) < 1 {
31368		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
31369	}
31370	if s.StringValues == nil {
31371		invalidParams.Add(request.NewErrParamRequired("StringValues"))
31372	}
31373	if s.StringValues != nil && len(s.StringValues) < 1 {
31374		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
31375	}
31376	if s.Type == nil {
31377		invalidParams.Add(request.NewErrParamRequired("Type"))
31378	}
31379	if s.Tags != nil {
31380		for i, v := range s.Tags {
31381			if v == nil {
31382				continue
31383			}
31384			if err := v.Validate(); err != nil {
31385				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31386			}
31387		}
31388	}
31389
31390	if invalidParams.Len() > 0 {
31391		return invalidParams
31392	}
31393	return nil
31394}
31395
31396// SetClientRequestToken sets the ClientRequestToken field's value.
31397func (s *CreateDimensionInput) SetClientRequestToken(v string) *CreateDimensionInput {
31398	s.ClientRequestToken = &v
31399	return s
31400}
31401
31402// SetName sets the Name field's value.
31403func (s *CreateDimensionInput) SetName(v string) *CreateDimensionInput {
31404	s.Name = &v
31405	return s
31406}
31407
31408// SetStringValues sets the StringValues field's value.
31409func (s *CreateDimensionInput) SetStringValues(v []*string) *CreateDimensionInput {
31410	s.StringValues = v
31411	return s
31412}
31413
31414// SetTags sets the Tags field's value.
31415func (s *CreateDimensionInput) SetTags(v []*Tag) *CreateDimensionInput {
31416	s.Tags = v
31417	return s
31418}
31419
31420// SetType sets the Type field's value.
31421func (s *CreateDimensionInput) SetType(v string) *CreateDimensionInput {
31422	s.Type = &v
31423	return s
31424}
31425
31426type CreateDimensionOutput struct {
31427	_ struct{} `type:"structure"`
31428
31429	// The Amazon Resource Name (ARN) of the created dimension.
31430	Arn *string `locationName:"arn" type:"string"`
31431
31432	// A unique identifier for the dimension.
31433	Name *string `locationName:"name" min:"1" type:"string"`
31434}
31435
31436// String returns the string representation.
31437//
31438// API parameter values that are decorated as "sensitive" in the API will not
31439// be included in the string output. The member name will be present, but the
31440// value will be replaced with "sensitive".
31441func (s CreateDimensionOutput) String() string {
31442	return awsutil.Prettify(s)
31443}
31444
31445// GoString returns the string representation.
31446//
31447// API parameter values that are decorated as "sensitive" in the API will not
31448// be included in the string output. The member name will be present, but the
31449// value will be replaced with "sensitive".
31450func (s CreateDimensionOutput) GoString() string {
31451	return s.String()
31452}
31453
31454// SetArn sets the Arn field's value.
31455func (s *CreateDimensionOutput) SetArn(v string) *CreateDimensionOutput {
31456	s.Arn = &v
31457	return s
31458}
31459
31460// SetName sets the Name field's value.
31461func (s *CreateDimensionOutput) SetName(v string) *CreateDimensionOutput {
31462	s.Name = &v
31463	return s
31464}
31465
31466type CreateDomainConfigurationInput struct {
31467	_ struct{} `type:"structure"`
31468
31469	// An object that specifies the authorization service for a domain.
31470	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
31471
31472	// The name of the domain configuration. This value must be unique to a region.
31473	//
31474	// DomainConfigurationName is a required field
31475	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
31476
31477	// The name of the domain.
31478	DomainName *string `locationName:"domainName" min:"1" type:"string"`
31479
31480	// The ARNs of the certificates that IoT passes to the device during the TLS
31481	// handshake. Currently you can specify only one certificate ARN. This value
31482	// is not required for Amazon Web Services-managed domains.
31483	ServerCertificateArns []*string `locationName:"serverCertificateArns" type:"list"`
31484
31485	// The type of service delivered by the endpoint.
31486	//
31487	// Amazon Web Services IoT Core currently supports only the DATA service type.
31488	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
31489
31490	// Metadata which can be used to manage the domain configuration.
31491	//
31492	// For URI Request parameters use format: ...key1=value1&key2=value2...
31493	//
31494	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
31495	//
31496	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
31497	Tags []*Tag `locationName:"tags" type:"list"`
31498
31499	// The certificate used to validate the server certificate and prove domain
31500	// name ownership. This certificate must be signed by a public certificate authority.
31501	// This value is not required for Amazon Web Services-managed domains.
31502	ValidationCertificateArn *string `locationName:"validationCertificateArn" min:"1" type:"string"`
31503}
31504
31505// String returns the string representation.
31506//
31507// API parameter values that are decorated as "sensitive" in the API will not
31508// be included in the string output. The member name will be present, but the
31509// value will be replaced with "sensitive".
31510func (s CreateDomainConfigurationInput) String() string {
31511	return awsutil.Prettify(s)
31512}
31513
31514// GoString returns the string representation.
31515//
31516// API parameter values that are decorated as "sensitive" in the API will not
31517// be included in the string output. The member name will be present, but the
31518// value will be replaced with "sensitive".
31519func (s CreateDomainConfigurationInput) GoString() string {
31520	return s.String()
31521}
31522
31523// Validate inspects the fields of the type to determine if they are valid.
31524func (s *CreateDomainConfigurationInput) Validate() error {
31525	invalidParams := request.ErrInvalidParams{Context: "CreateDomainConfigurationInput"}
31526	if s.DomainConfigurationName == nil {
31527		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
31528	}
31529	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
31530		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
31531	}
31532	if s.DomainName != nil && len(*s.DomainName) < 1 {
31533		invalidParams.Add(request.NewErrParamMinLen("DomainName", 1))
31534	}
31535	if s.ValidationCertificateArn != nil && len(*s.ValidationCertificateArn) < 1 {
31536		invalidParams.Add(request.NewErrParamMinLen("ValidationCertificateArn", 1))
31537	}
31538	if s.AuthorizerConfig != nil {
31539		if err := s.AuthorizerConfig.Validate(); err != nil {
31540			invalidParams.AddNested("AuthorizerConfig", err.(request.ErrInvalidParams))
31541		}
31542	}
31543	if s.Tags != nil {
31544		for i, v := range s.Tags {
31545			if v == nil {
31546				continue
31547			}
31548			if err := v.Validate(); err != nil {
31549				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31550			}
31551		}
31552	}
31553
31554	if invalidParams.Len() > 0 {
31555		return invalidParams
31556	}
31557	return nil
31558}
31559
31560// SetAuthorizerConfig sets the AuthorizerConfig field's value.
31561func (s *CreateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *CreateDomainConfigurationInput {
31562	s.AuthorizerConfig = v
31563	return s
31564}
31565
31566// SetDomainConfigurationName sets the DomainConfigurationName field's value.
31567func (s *CreateDomainConfigurationInput) SetDomainConfigurationName(v string) *CreateDomainConfigurationInput {
31568	s.DomainConfigurationName = &v
31569	return s
31570}
31571
31572// SetDomainName sets the DomainName field's value.
31573func (s *CreateDomainConfigurationInput) SetDomainName(v string) *CreateDomainConfigurationInput {
31574	s.DomainName = &v
31575	return s
31576}
31577
31578// SetServerCertificateArns sets the ServerCertificateArns field's value.
31579func (s *CreateDomainConfigurationInput) SetServerCertificateArns(v []*string) *CreateDomainConfigurationInput {
31580	s.ServerCertificateArns = v
31581	return s
31582}
31583
31584// SetServiceType sets the ServiceType field's value.
31585func (s *CreateDomainConfigurationInput) SetServiceType(v string) *CreateDomainConfigurationInput {
31586	s.ServiceType = &v
31587	return s
31588}
31589
31590// SetTags sets the Tags field's value.
31591func (s *CreateDomainConfigurationInput) SetTags(v []*Tag) *CreateDomainConfigurationInput {
31592	s.Tags = v
31593	return s
31594}
31595
31596// SetValidationCertificateArn sets the ValidationCertificateArn field's value.
31597func (s *CreateDomainConfigurationInput) SetValidationCertificateArn(v string) *CreateDomainConfigurationInput {
31598	s.ValidationCertificateArn = &v
31599	return s
31600}
31601
31602type CreateDomainConfigurationOutput struct {
31603	_ struct{} `type:"structure"`
31604
31605	// The ARN of the domain configuration.
31606	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
31607
31608	// The name of the domain configuration.
31609	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
31610}
31611
31612// String returns the string representation.
31613//
31614// API parameter values that are decorated as "sensitive" in the API will not
31615// be included in the string output. The member name will be present, but the
31616// value will be replaced with "sensitive".
31617func (s CreateDomainConfigurationOutput) String() string {
31618	return awsutil.Prettify(s)
31619}
31620
31621// GoString returns the string representation.
31622//
31623// API parameter values that are decorated as "sensitive" in the API will not
31624// be included in the string output. The member name will be present, but the
31625// value will be replaced with "sensitive".
31626func (s CreateDomainConfigurationOutput) GoString() string {
31627	return s.String()
31628}
31629
31630// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
31631func (s *CreateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *CreateDomainConfigurationOutput {
31632	s.DomainConfigurationArn = &v
31633	return s
31634}
31635
31636// SetDomainConfigurationName sets the DomainConfigurationName field's value.
31637func (s *CreateDomainConfigurationOutput) SetDomainConfigurationName(v string) *CreateDomainConfigurationOutput {
31638	s.DomainConfigurationName = &v
31639	return s
31640}
31641
31642type CreateDynamicThingGroupInput struct {
31643	_ struct{} `type:"structure"`
31644
31645	// The dynamic thing group index name.
31646	//
31647	// Currently one index is supported: AWS_Things.
31648	IndexName *string `locationName:"indexName" min:"1" type:"string"`
31649
31650	// The dynamic thing group search query string.
31651	//
31652	// See Query Syntax (https://docs.aws.amazon.com/iot/latest/developerguide/query-syntax.html)
31653	// for information about query string syntax.
31654	//
31655	// QueryString is a required field
31656	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
31657
31658	// The dynamic thing group query version.
31659	//
31660	// Currently one query version is supported: "2017-09-30". If not specified,
31661	// the query version defaults to this value.
31662	QueryVersion *string `locationName:"queryVersion" type:"string"`
31663
31664	// Metadata which can be used to manage the dynamic thing group.
31665	Tags []*Tag `locationName:"tags" type:"list"`
31666
31667	// The dynamic thing group name to create.
31668	//
31669	// ThingGroupName is a required field
31670	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
31671
31672	// The dynamic thing group properties.
31673	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
31674}
31675
31676// String returns the string representation.
31677//
31678// API parameter values that are decorated as "sensitive" in the API will not
31679// be included in the string output. The member name will be present, but the
31680// value will be replaced with "sensitive".
31681func (s CreateDynamicThingGroupInput) String() string {
31682	return awsutil.Prettify(s)
31683}
31684
31685// GoString returns the string representation.
31686//
31687// API parameter values that are decorated as "sensitive" in the API will not
31688// be included in the string output. The member name will be present, but the
31689// value will be replaced with "sensitive".
31690func (s CreateDynamicThingGroupInput) GoString() string {
31691	return s.String()
31692}
31693
31694// Validate inspects the fields of the type to determine if they are valid.
31695func (s *CreateDynamicThingGroupInput) Validate() error {
31696	invalidParams := request.ErrInvalidParams{Context: "CreateDynamicThingGroupInput"}
31697	if s.IndexName != nil && len(*s.IndexName) < 1 {
31698		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
31699	}
31700	if s.QueryString == nil {
31701		invalidParams.Add(request.NewErrParamRequired("QueryString"))
31702	}
31703	if s.QueryString != nil && len(*s.QueryString) < 1 {
31704		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
31705	}
31706	if s.ThingGroupName == nil {
31707		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
31708	}
31709	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
31710		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
31711	}
31712	if s.Tags != nil {
31713		for i, v := range s.Tags {
31714			if v == nil {
31715				continue
31716			}
31717			if err := v.Validate(); err != nil {
31718				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31719			}
31720		}
31721	}
31722
31723	if invalidParams.Len() > 0 {
31724		return invalidParams
31725	}
31726	return nil
31727}
31728
31729// SetIndexName sets the IndexName field's value.
31730func (s *CreateDynamicThingGroupInput) SetIndexName(v string) *CreateDynamicThingGroupInput {
31731	s.IndexName = &v
31732	return s
31733}
31734
31735// SetQueryString sets the QueryString field's value.
31736func (s *CreateDynamicThingGroupInput) SetQueryString(v string) *CreateDynamicThingGroupInput {
31737	s.QueryString = &v
31738	return s
31739}
31740
31741// SetQueryVersion sets the QueryVersion field's value.
31742func (s *CreateDynamicThingGroupInput) SetQueryVersion(v string) *CreateDynamicThingGroupInput {
31743	s.QueryVersion = &v
31744	return s
31745}
31746
31747// SetTags sets the Tags field's value.
31748func (s *CreateDynamicThingGroupInput) SetTags(v []*Tag) *CreateDynamicThingGroupInput {
31749	s.Tags = v
31750	return s
31751}
31752
31753// SetThingGroupName sets the ThingGroupName field's value.
31754func (s *CreateDynamicThingGroupInput) SetThingGroupName(v string) *CreateDynamicThingGroupInput {
31755	s.ThingGroupName = &v
31756	return s
31757}
31758
31759// SetThingGroupProperties sets the ThingGroupProperties field's value.
31760func (s *CreateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateDynamicThingGroupInput {
31761	s.ThingGroupProperties = v
31762	return s
31763}
31764
31765type CreateDynamicThingGroupOutput struct {
31766	_ struct{} `type:"structure"`
31767
31768	// The dynamic thing group index name.
31769	IndexName *string `locationName:"indexName" min:"1" type:"string"`
31770
31771	// The dynamic thing group search query string.
31772	QueryString *string `locationName:"queryString" min:"1" type:"string"`
31773
31774	// The dynamic thing group query version.
31775	QueryVersion *string `locationName:"queryVersion" type:"string"`
31776
31777	// The dynamic thing group ARN.
31778	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
31779
31780	// The dynamic thing group ID.
31781	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
31782
31783	// The dynamic thing group name.
31784	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
31785}
31786
31787// String returns the string representation.
31788//
31789// API parameter values that are decorated as "sensitive" in the API will not
31790// be included in the string output. The member name will be present, but the
31791// value will be replaced with "sensitive".
31792func (s CreateDynamicThingGroupOutput) String() string {
31793	return awsutil.Prettify(s)
31794}
31795
31796// GoString returns the string representation.
31797//
31798// API parameter values that are decorated as "sensitive" in the API will not
31799// be included in the string output. The member name will be present, but the
31800// value will be replaced with "sensitive".
31801func (s CreateDynamicThingGroupOutput) GoString() string {
31802	return s.String()
31803}
31804
31805// SetIndexName sets the IndexName field's value.
31806func (s *CreateDynamicThingGroupOutput) SetIndexName(v string) *CreateDynamicThingGroupOutput {
31807	s.IndexName = &v
31808	return s
31809}
31810
31811// SetQueryString sets the QueryString field's value.
31812func (s *CreateDynamicThingGroupOutput) SetQueryString(v string) *CreateDynamicThingGroupOutput {
31813	s.QueryString = &v
31814	return s
31815}
31816
31817// SetQueryVersion sets the QueryVersion field's value.
31818func (s *CreateDynamicThingGroupOutput) SetQueryVersion(v string) *CreateDynamicThingGroupOutput {
31819	s.QueryVersion = &v
31820	return s
31821}
31822
31823// SetThingGroupArn sets the ThingGroupArn field's value.
31824func (s *CreateDynamicThingGroupOutput) SetThingGroupArn(v string) *CreateDynamicThingGroupOutput {
31825	s.ThingGroupArn = &v
31826	return s
31827}
31828
31829// SetThingGroupId sets the ThingGroupId field's value.
31830func (s *CreateDynamicThingGroupOutput) SetThingGroupId(v string) *CreateDynamicThingGroupOutput {
31831	s.ThingGroupId = &v
31832	return s
31833}
31834
31835// SetThingGroupName sets the ThingGroupName field's value.
31836func (s *CreateDynamicThingGroupOutput) SetThingGroupName(v string) *CreateDynamicThingGroupOutput {
31837	s.ThingGroupName = &v
31838	return s
31839}
31840
31841type CreateFleetMetricInput struct {
31842	_ struct{} `type:"structure"`
31843
31844	// The field to aggregate.
31845	//
31846	// AggregationField is a required field
31847	AggregationField *string `locationName:"aggregationField" min:"1" type:"string" required:"true"`
31848
31849	// The type of the aggregation query.
31850	//
31851	// AggregationType is a required field
31852	AggregationType *AggregationType `locationName:"aggregationType" type:"structure" required:"true"`
31853
31854	// The fleet metric description.
31855	Description *string `locationName:"description" type:"string"`
31856
31857	// The name of the index to search.
31858	IndexName *string `locationName:"indexName" min:"1" type:"string"`
31859
31860	// The name of the fleet metric to create.
31861	//
31862	// MetricName is a required field
31863	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
31864
31865	// The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1
31866	// day)] and must be multiple of 60.
31867	//
31868	// Period is a required field
31869	Period *int64 `locationName:"period" min:"60" type:"integer" required:"true"`
31870
31871	// The search query string.
31872	//
31873	// QueryString is a required field
31874	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
31875
31876	// The query version.
31877	QueryVersion *string `locationName:"queryVersion" type:"string"`
31878
31879	// Metadata, which can be used to manage the fleet metric.
31880	Tags []*Tag `locationName:"tags" type:"list"`
31881
31882	// Used to support unit transformation such as milliseconds to seconds. The
31883	// unit must be supported by CW metric (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
31884	// Default to null.
31885	Unit *string `locationName:"unit" type:"string" enum:"FleetMetricUnit"`
31886}
31887
31888// String returns the string representation.
31889//
31890// API parameter values that are decorated as "sensitive" in the API will not
31891// be included in the string output. The member name will be present, but the
31892// value will be replaced with "sensitive".
31893func (s CreateFleetMetricInput) String() string {
31894	return awsutil.Prettify(s)
31895}
31896
31897// GoString returns the string representation.
31898//
31899// API parameter values that are decorated as "sensitive" in the API will not
31900// be included in the string output. The member name will be present, but the
31901// value will be replaced with "sensitive".
31902func (s CreateFleetMetricInput) GoString() string {
31903	return s.String()
31904}
31905
31906// Validate inspects the fields of the type to determine if they are valid.
31907func (s *CreateFleetMetricInput) Validate() error {
31908	invalidParams := request.ErrInvalidParams{Context: "CreateFleetMetricInput"}
31909	if s.AggregationField == nil {
31910		invalidParams.Add(request.NewErrParamRequired("AggregationField"))
31911	}
31912	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
31913		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
31914	}
31915	if s.AggregationType == nil {
31916		invalidParams.Add(request.NewErrParamRequired("AggregationType"))
31917	}
31918	if s.IndexName != nil && len(*s.IndexName) < 1 {
31919		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
31920	}
31921	if s.MetricName == nil {
31922		invalidParams.Add(request.NewErrParamRequired("MetricName"))
31923	}
31924	if s.MetricName != nil && len(*s.MetricName) < 1 {
31925		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
31926	}
31927	if s.Period == nil {
31928		invalidParams.Add(request.NewErrParamRequired("Period"))
31929	}
31930	if s.Period != nil && *s.Period < 60 {
31931		invalidParams.Add(request.NewErrParamMinValue("Period", 60))
31932	}
31933	if s.QueryString == nil {
31934		invalidParams.Add(request.NewErrParamRequired("QueryString"))
31935	}
31936	if s.QueryString != nil && len(*s.QueryString) < 1 {
31937		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
31938	}
31939	if s.AggregationType != nil {
31940		if err := s.AggregationType.Validate(); err != nil {
31941			invalidParams.AddNested("AggregationType", err.(request.ErrInvalidParams))
31942		}
31943	}
31944	if s.Tags != nil {
31945		for i, v := range s.Tags {
31946			if v == nil {
31947				continue
31948			}
31949			if err := v.Validate(); err != nil {
31950				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
31951			}
31952		}
31953	}
31954
31955	if invalidParams.Len() > 0 {
31956		return invalidParams
31957	}
31958	return nil
31959}
31960
31961// SetAggregationField sets the AggregationField field's value.
31962func (s *CreateFleetMetricInput) SetAggregationField(v string) *CreateFleetMetricInput {
31963	s.AggregationField = &v
31964	return s
31965}
31966
31967// SetAggregationType sets the AggregationType field's value.
31968func (s *CreateFleetMetricInput) SetAggregationType(v *AggregationType) *CreateFleetMetricInput {
31969	s.AggregationType = v
31970	return s
31971}
31972
31973// SetDescription sets the Description field's value.
31974func (s *CreateFleetMetricInput) SetDescription(v string) *CreateFleetMetricInput {
31975	s.Description = &v
31976	return s
31977}
31978
31979// SetIndexName sets the IndexName field's value.
31980func (s *CreateFleetMetricInput) SetIndexName(v string) *CreateFleetMetricInput {
31981	s.IndexName = &v
31982	return s
31983}
31984
31985// SetMetricName sets the MetricName field's value.
31986func (s *CreateFleetMetricInput) SetMetricName(v string) *CreateFleetMetricInput {
31987	s.MetricName = &v
31988	return s
31989}
31990
31991// SetPeriod sets the Period field's value.
31992func (s *CreateFleetMetricInput) SetPeriod(v int64) *CreateFleetMetricInput {
31993	s.Period = &v
31994	return s
31995}
31996
31997// SetQueryString sets the QueryString field's value.
31998func (s *CreateFleetMetricInput) SetQueryString(v string) *CreateFleetMetricInput {
31999	s.QueryString = &v
32000	return s
32001}
32002
32003// SetQueryVersion sets the QueryVersion field's value.
32004func (s *CreateFleetMetricInput) SetQueryVersion(v string) *CreateFleetMetricInput {
32005	s.QueryVersion = &v
32006	return s
32007}
32008
32009// SetTags sets the Tags field's value.
32010func (s *CreateFleetMetricInput) SetTags(v []*Tag) *CreateFleetMetricInput {
32011	s.Tags = v
32012	return s
32013}
32014
32015// SetUnit sets the Unit field's value.
32016func (s *CreateFleetMetricInput) SetUnit(v string) *CreateFleetMetricInput {
32017	s.Unit = &v
32018	return s
32019}
32020
32021type CreateFleetMetricOutput struct {
32022	_ struct{} `type:"structure"`
32023
32024	// The Amazon Resource Name (ARN) of the new fleet metric.
32025	MetricArn *string `locationName:"metricArn" type:"string"`
32026
32027	// The name of the fleet metric to create.
32028	MetricName *string `locationName:"metricName" min:"1" type:"string"`
32029}
32030
32031// String returns the string representation.
32032//
32033// API parameter values that are decorated as "sensitive" in the API will not
32034// be included in the string output. The member name will be present, but the
32035// value will be replaced with "sensitive".
32036func (s CreateFleetMetricOutput) String() string {
32037	return awsutil.Prettify(s)
32038}
32039
32040// GoString returns the string representation.
32041//
32042// API parameter values that are decorated as "sensitive" in the API will not
32043// be included in the string output. The member name will be present, but the
32044// value will be replaced with "sensitive".
32045func (s CreateFleetMetricOutput) GoString() string {
32046	return s.String()
32047}
32048
32049// SetMetricArn sets the MetricArn field's value.
32050func (s *CreateFleetMetricOutput) SetMetricArn(v string) *CreateFleetMetricOutput {
32051	s.MetricArn = &v
32052	return s
32053}
32054
32055// SetMetricName sets the MetricName field's value.
32056func (s *CreateFleetMetricOutput) SetMetricName(v string) *CreateFleetMetricOutput {
32057	s.MetricName = &v
32058	return s
32059}
32060
32061type CreateJobInput struct {
32062	_ struct{} `type:"structure"`
32063
32064	// Allows you to create criteria to abort a job.
32065	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
32066
32067	// A short text description of the job.
32068	Description *string `locationName:"description" type:"string"`
32069
32070	// The job document. Required if you don't specify a value for documentSource.
32071	Document *string `locationName:"document" type:"string"`
32072
32073	// An S3 link to the job document. Required if you don't specify a value for
32074	// document.
32075	//
32076	// If the job document resides in an S3 bucket, you must use a placeholder link
32077	// when specifying the document.
32078	//
32079	// The placeholder link is of the following form:
32080	//
32081	// ${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
32082	//
32083	// where bucket is your bucket name and key is the object in the bucket to which
32084	// you are linking.
32085	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
32086
32087	// Allows you to create a staged rollout of the job.
32088	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
32089
32090	// A job identifier which must be unique for your Amazon Web Services account.
32091	// We recommend using a UUID. Alpha-numeric characters, "-" and "_" are valid
32092	// for use here.
32093	//
32094	// JobId is a required field
32095	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
32096
32097	// The ARN of the job template used to create the job.
32098	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
32099
32100	// The namespace used to indicate that a job is a customer-managed job.
32101	//
32102	// When you specify a value for this parameter, Amazon Web Services IoT Core
32103	// sends jobs notifications to MQTT topics that contain the value in the following
32104	// format.
32105	//
32106	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
32107	//
32108	// The namespaceId feature is in public preview.
32109	NamespaceId *string `locationName:"namespaceId" min:"1" type:"string"`
32110
32111	// Configuration information for pre-signed S3 URLs.
32112	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
32113
32114	// Metadata which can be used to manage the job.
32115	Tags []*Tag `locationName:"tags" type:"list"`
32116
32117	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
32118	// after all those things specified as targets have completed the job (SNAPSHOT).
32119	// If continuous, the job may also be run on a thing when a change is detected
32120	// in a target. For example, a job will run on a thing when the thing is added
32121	// to a target group, even after the job was completed by all things originally
32122	// in the group.
32123	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
32124
32125	// A list of things and thing groups to which the job should be sent.
32126	//
32127	// Targets is a required field
32128	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
32129
32130	// Specifies the amount of time each device has to finish its execution of the
32131	// job. The timer is started when the job execution status is set to IN_PROGRESS.
32132	// If the job execution status is not set to another terminal state before the
32133	// time expires, it will be automatically set to TIMED_OUT.
32134	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
32135}
32136
32137// String returns the string representation.
32138//
32139// API parameter values that are decorated as "sensitive" in the API will not
32140// be included in the string output. The member name will be present, but the
32141// value will be replaced with "sensitive".
32142func (s CreateJobInput) String() string {
32143	return awsutil.Prettify(s)
32144}
32145
32146// GoString returns the string representation.
32147//
32148// API parameter values that are decorated as "sensitive" in the API will not
32149// be included in the string output. The member name will be present, but the
32150// value will be replaced with "sensitive".
32151func (s CreateJobInput) GoString() string {
32152	return s.String()
32153}
32154
32155// Validate inspects the fields of the type to determine if they are valid.
32156func (s *CreateJobInput) Validate() error {
32157	invalidParams := request.ErrInvalidParams{Context: "CreateJobInput"}
32158	if s.DocumentSource != nil && len(*s.DocumentSource) < 1 {
32159		invalidParams.Add(request.NewErrParamMinLen("DocumentSource", 1))
32160	}
32161	if s.JobId == nil {
32162		invalidParams.Add(request.NewErrParamRequired("JobId"))
32163	}
32164	if s.JobId != nil && len(*s.JobId) < 1 {
32165		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
32166	}
32167	if s.JobTemplateArn != nil && len(*s.JobTemplateArn) < 1 {
32168		invalidParams.Add(request.NewErrParamMinLen("JobTemplateArn", 1))
32169	}
32170	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
32171		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
32172	}
32173	if s.Targets == nil {
32174		invalidParams.Add(request.NewErrParamRequired("Targets"))
32175	}
32176	if s.Targets != nil && len(s.Targets) < 1 {
32177		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
32178	}
32179	if s.AbortConfig != nil {
32180		if err := s.AbortConfig.Validate(); err != nil {
32181			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
32182		}
32183	}
32184	if s.JobExecutionsRolloutConfig != nil {
32185		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
32186			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
32187		}
32188	}
32189	if s.PresignedUrlConfig != nil {
32190		if err := s.PresignedUrlConfig.Validate(); err != nil {
32191			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
32192		}
32193	}
32194	if s.Tags != nil {
32195		for i, v := range s.Tags {
32196			if v == nil {
32197				continue
32198			}
32199			if err := v.Validate(); err != nil {
32200				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
32201			}
32202		}
32203	}
32204
32205	if invalidParams.Len() > 0 {
32206		return invalidParams
32207	}
32208	return nil
32209}
32210
32211// SetAbortConfig sets the AbortConfig field's value.
32212func (s *CreateJobInput) SetAbortConfig(v *AbortConfig) *CreateJobInput {
32213	s.AbortConfig = v
32214	return s
32215}
32216
32217// SetDescription sets the Description field's value.
32218func (s *CreateJobInput) SetDescription(v string) *CreateJobInput {
32219	s.Description = &v
32220	return s
32221}
32222
32223// SetDocument sets the Document field's value.
32224func (s *CreateJobInput) SetDocument(v string) *CreateJobInput {
32225	s.Document = &v
32226	return s
32227}
32228
32229// SetDocumentSource sets the DocumentSource field's value.
32230func (s *CreateJobInput) SetDocumentSource(v string) *CreateJobInput {
32231	s.DocumentSource = &v
32232	return s
32233}
32234
32235// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
32236func (s *CreateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *CreateJobInput {
32237	s.JobExecutionsRolloutConfig = v
32238	return s
32239}
32240
32241// SetJobId sets the JobId field's value.
32242func (s *CreateJobInput) SetJobId(v string) *CreateJobInput {
32243	s.JobId = &v
32244	return s
32245}
32246
32247// SetJobTemplateArn sets the JobTemplateArn field's value.
32248func (s *CreateJobInput) SetJobTemplateArn(v string) *CreateJobInput {
32249	s.JobTemplateArn = &v
32250	return s
32251}
32252
32253// SetNamespaceId sets the NamespaceId field's value.
32254func (s *CreateJobInput) SetNamespaceId(v string) *CreateJobInput {
32255	s.NamespaceId = &v
32256	return s
32257}
32258
32259// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
32260func (s *CreateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *CreateJobInput {
32261	s.PresignedUrlConfig = v
32262	return s
32263}
32264
32265// SetTags sets the Tags field's value.
32266func (s *CreateJobInput) SetTags(v []*Tag) *CreateJobInput {
32267	s.Tags = v
32268	return s
32269}
32270
32271// SetTargetSelection sets the TargetSelection field's value.
32272func (s *CreateJobInput) SetTargetSelection(v string) *CreateJobInput {
32273	s.TargetSelection = &v
32274	return s
32275}
32276
32277// SetTargets sets the Targets field's value.
32278func (s *CreateJobInput) SetTargets(v []*string) *CreateJobInput {
32279	s.Targets = v
32280	return s
32281}
32282
32283// SetTimeoutConfig sets the TimeoutConfig field's value.
32284func (s *CreateJobInput) SetTimeoutConfig(v *TimeoutConfig) *CreateJobInput {
32285	s.TimeoutConfig = v
32286	return s
32287}
32288
32289type CreateJobOutput struct {
32290	_ struct{} `type:"structure"`
32291
32292	// The job description.
32293	Description *string `locationName:"description" type:"string"`
32294
32295	// The job ARN.
32296	JobArn *string `locationName:"jobArn" type:"string"`
32297
32298	// The unique identifier you assigned to this job.
32299	JobId *string `locationName:"jobId" min:"1" type:"string"`
32300}
32301
32302// String returns the string representation.
32303//
32304// API parameter values that are decorated as "sensitive" in the API will not
32305// be included in the string output. The member name will be present, but the
32306// value will be replaced with "sensitive".
32307func (s CreateJobOutput) String() string {
32308	return awsutil.Prettify(s)
32309}
32310
32311// GoString returns the string representation.
32312//
32313// API parameter values that are decorated as "sensitive" in the API will not
32314// be included in the string output. The member name will be present, but the
32315// value will be replaced with "sensitive".
32316func (s CreateJobOutput) GoString() string {
32317	return s.String()
32318}
32319
32320// SetDescription sets the Description field's value.
32321func (s *CreateJobOutput) SetDescription(v string) *CreateJobOutput {
32322	s.Description = &v
32323	return s
32324}
32325
32326// SetJobArn sets the JobArn field's value.
32327func (s *CreateJobOutput) SetJobArn(v string) *CreateJobOutput {
32328	s.JobArn = &v
32329	return s
32330}
32331
32332// SetJobId sets the JobId field's value.
32333func (s *CreateJobOutput) SetJobId(v string) *CreateJobOutput {
32334	s.JobId = &v
32335	return s
32336}
32337
32338type CreateJobTemplateInput struct {
32339	_ struct{} `type:"structure"`
32340
32341	// The criteria that determine when and how a job abort takes place.
32342	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
32343
32344	// A description of the job document.
32345	//
32346	// Description is a required field
32347	Description *string `locationName:"description" type:"string" required:"true"`
32348
32349	// The job document. Required if you don't specify a value for documentSource.
32350	Document *string `locationName:"document" type:"string"`
32351
32352	// An S3 link to the job document to use in the template. Required if you don't
32353	// specify a value for document.
32354	//
32355	// If the job document resides in an S3 bucket, you must use a placeholder link
32356	// when specifying the document.
32357	//
32358	// The placeholder link is of the following form:
32359	//
32360	// ${aws:iot:s3-presigned-url:https://s3.amazonaws.com/bucket/key}
32361	//
32362	// where bucket is your bucket name and key is the object in the bucket to which
32363	// you are linking.
32364	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
32365
32366	// The ARN of the job to use as the basis for the job template.
32367	JobArn *string `locationName:"jobArn" type:"string"`
32368
32369	// Allows you to create a staged rollout of a job.
32370	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
32371
32372	// A unique identifier for the job template. We recommend using a UUID. Alpha-numeric
32373	// characters, "-", and "_" are valid for use here.
32374	//
32375	// JobTemplateId is a required field
32376	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
32377
32378	// Configuration for pre-signed S3 URLs.
32379	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
32380
32381	// Metadata that can be used to manage the job template.
32382	Tags []*Tag `locationName:"tags" type:"list"`
32383
32384	// Specifies the amount of time each device has to finish its execution of the
32385	// job. A timer is started when the job execution status is set to IN_PROGRESS.
32386	// If the job execution status is not set to another terminal state before the
32387	// timer expires, it will be automatically set to TIMED_OUT.
32388	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
32389}
32390
32391// String returns the string representation.
32392//
32393// API parameter values that are decorated as "sensitive" in the API will not
32394// be included in the string output. The member name will be present, but the
32395// value will be replaced with "sensitive".
32396func (s CreateJobTemplateInput) String() string {
32397	return awsutil.Prettify(s)
32398}
32399
32400// GoString returns the string representation.
32401//
32402// API parameter values that are decorated as "sensitive" in the API will not
32403// be included in the string output. The member name will be present, but the
32404// value will be replaced with "sensitive".
32405func (s CreateJobTemplateInput) GoString() string {
32406	return s.String()
32407}
32408
32409// Validate inspects the fields of the type to determine if they are valid.
32410func (s *CreateJobTemplateInput) Validate() error {
32411	invalidParams := request.ErrInvalidParams{Context: "CreateJobTemplateInput"}
32412	if s.Description == nil {
32413		invalidParams.Add(request.NewErrParamRequired("Description"))
32414	}
32415	if s.DocumentSource != nil && len(*s.DocumentSource) < 1 {
32416		invalidParams.Add(request.NewErrParamMinLen("DocumentSource", 1))
32417	}
32418	if s.JobTemplateId == nil {
32419		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
32420	}
32421	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
32422		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
32423	}
32424	if s.AbortConfig != nil {
32425		if err := s.AbortConfig.Validate(); err != nil {
32426			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
32427		}
32428	}
32429	if s.JobExecutionsRolloutConfig != nil {
32430		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
32431			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
32432		}
32433	}
32434	if s.PresignedUrlConfig != nil {
32435		if err := s.PresignedUrlConfig.Validate(); err != nil {
32436			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
32437		}
32438	}
32439	if s.Tags != nil {
32440		for i, v := range s.Tags {
32441			if v == nil {
32442				continue
32443			}
32444			if err := v.Validate(); err != nil {
32445				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
32446			}
32447		}
32448	}
32449
32450	if invalidParams.Len() > 0 {
32451		return invalidParams
32452	}
32453	return nil
32454}
32455
32456// SetAbortConfig sets the AbortConfig field's value.
32457func (s *CreateJobTemplateInput) SetAbortConfig(v *AbortConfig) *CreateJobTemplateInput {
32458	s.AbortConfig = v
32459	return s
32460}
32461
32462// SetDescription sets the Description field's value.
32463func (s *CreateJobTemplateInput) SetDescription(v string) *CreateJobTemplateInput {
32464	s.Description = &v
32465	return s
32466}
32467
32468// SetDocument sets the Document field's value.
32469func (s *CreateJobTemplateInput) SetDocument(v string) *CreateJobTemplateInput {
32470	s.Document = &v
32471	return s
32472}
32473
32474// SetDocumentSource sets the DocumentSource field's value.
32475func (s *CreateJobTemplateInput) SetDocumentSource(v string) *CreateJobTemplateInput {
32476	s.DocumentSource = &v
32477	return s
32478}
32479
32480// SetJobArn sets the JobArn field's value.
32481func (s *CreateJobTemplateInput) SetJobArn(v string) *CreateJobTemplateInput {
32482	s.JobArn = &v
32483	return s
32484}
32485
32486// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
32487func (s *CreateJobTemplateInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *CreateJobTemplateInput {
32488	s.JobExecutionsRolloutConfig = v
32489	return s
32490}
32491
32492// SetJobTemplateId sets the JobTemplateId field's value.
32493func (s *CreateJobTemplateInput) SetJobTemplateId(v string) *CreateJobTemplateInput {
32494	s.JobTemplateId = &v
32495	return s
32496}
32497
32498// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
32499func (s *CreateJobTemplateInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *CreateJobTemplateInput {
32500	s.PresignedUrlConfig = v
32501	return s
32502}
32503
32504// SetTags sets the Tags field's value.
32505func (s *CreateJobTemplateInput) SetTags(v []*Tag) *CreateJobTemplateInput {
32506	s.Tags = v
32507	return s
32508}
32509
32510// SetTimeoutConfig sets the TimeoutConfig field's value.
32511func (s *CreateJobTemplateInput) SetTimeoutConfig(v *TimeoutConfig) *CreateJobTemplateInput {
32512	s.TimeoutConfig = v
32513	return s
32514}
32515
32516type CreateJobTemplateOutput struct {
32517	_ struct{} `type:"structure"`
32518
32519	// The ARN of the job template.
32520	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
32521
32522	// The unique identifier of the job template.
32523	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
32524}
32525
32526// String returns the string representation.
32527//
32528// API parameter values that are decorated as "sensitive" in the API will not
32529// be included in the string output. The member name will be present, but the
32530// value will be replaced with "sensitive".
32531func (s CreateJobTemplateOutput) String() string {
32532	return awsutil.Prettify(s)
32533}
32534
32535// GoString returns the string representation.
32536//
32537// API parameter values that are decorated as "sensitive" in the API will not
32538// be included in the string output. The member name will be present, but the
32539// value will be replaced with "sensitive".
32540func (s CreateJobTemplateOutput) GoString() string {
32541	return s.String()
32542}
32543
32544// SetJobTemplateArn sets the JobTemplateArn field's value.
32545func (s *CreateJobTemplateOutput) SetJobTemplateArn(v string) *CreateJobTemplateOutput {
32546	s.JobTemplateArn = &v
32547	return s
32548}
32549
32550// SetJobTemplateId sets the JobTemplateId field's value.
32551func (s *CreateJobTemplateOutput) SetJobTemplateId(v string) *CreateJobTemplateOutput {
32552	s.JobTemplateId = &v
32553	return s
32554}
32555
32556// The input for the CreateKeysAndCertificate operation.
32557//
32558// Requires permission to access the CreateKeysAndCertificateRequest (https://docs.aws.amazon.com/service-authorization/latest/reference/list_awsiot.html#awsiot-actions-as-permissions)
32559// action.
32560type CreateKeysAndCertificateInput struct {
32561	_ struct{} `type:"structure" nopayload:"true"`
32562
32563	// Specifies whether the certificate is active.
32564	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
32565}
32566
32567// String returns the string representation.
32568//
32569// API parameter values that are decorated as "sensitive" in the API will not
32570// be included in the string output. The member name will be present, but the
32571// value will be replaced with "sensitive".
32572func (s CreateKeysAndCertificateInput) String() string {
32573	return awsutil.Prettify(s)
32574}
32575
32576// GoString returns the string representation.
32577//
32578// API parameter values that are decorated as "sensitive" in the API will not
32579// be included in the string output. The member name will be present, but the
32580// value will be replaced with "sensitive".
32581func (s CreateKeysAndCertificateInput) GoString() string {
32582	return s.String()
32583}
32584
32585// SetSetAsActive sets the SetAsActive field's value.
32586func (s *CreateKeysAndCertificateInput) SetSetAsActive(v bool) *CreateKeysAndCertificateInput {
32587	s.SetAsActive = &v
32588	return s
32589}
32590
32591// The output of the CreateKeysAndCertificate operation.
32592type CreateKeysAndCertificateOutput struct {
32593	_ struct{} `type:"structure"`
32594
32595	// The ARN of the certificate.
32596	CertificateArn *string `locationName:"certificateArn" type:"string"`
32597
32598	// The ID of the certificate. IoT issues a default subject name for the certificate
32599	// (for example, IoT Certificate).
32600	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
32601
32602	// The certificate data, in PEM format.
32603	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
32604
32605	// The generated key pair.
32606	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
32607}
32608
32609// String returns the string representation.
32610//
32611// API parameter values that are decorated as "sensitive" in the API will not
32612// be included in the string output. The member name will be present, but the
32613// value will be replaced with "sensitive".
32614func (s CreateKeysAndCertificateOutput) String() string {
32615	return awsutil.Prettify(s)
32616}
32617
32618// GoString returns the string representation.
32619//
32620// API parameter values that are decorated as "sensitive" in the API will not
32621// be included in the string output. The member name will be present, but the
32622// value will be replaced with "sensitive".
32623func (s CreateKeysAndCertificateOutput) GoString() string {
32624	return s.String()
32625}
32626
32627// SetCertificateArn sets the CertificateArn field's value.
32628func (s *CreateKeysAndCertificateOutput) SetCertificateArn(v string) *CreateKeysAndCertificateOutput {
32629	s.CertificateArn = &v
32630	return s
32631}
32632
32633// SetCertificateId sets the CertificateId field's value.
32634func (s *CreateKeysAndCertificateOutput) SetCertificateId(v string) *CreateKeysAndCertificateOutput {
32635	s.CertificateId = &v
32636	return s
32637}
32638
32639// SetCertificatePem sets the CertificatePem field's value.
32640func (s *CreateKeysAndCertificateOutput) SetCertificatePem(v string) *CreateKeysAndCertificateOutput {
32641	s.CertificatePem = &v
32642	return s
32643}
32644
32645// SetKeyPair sets the KeyPair field's value.
32646func (s *CreateKeysAndCertificateOutput) SetKeyPair(v *KeyPair) *CreateKeysAndCertificateOutput {
32647	s.KeyPair = v
32648	return s
32649}
32650
32651type CreateMitigationActionInput struct {
32652	_ struct{} `type:"structure"`
32653
32654	// A friendly name for the action. Choose a friendly name that accurately describes
32655	// the action (for example, EnableLoggingAction).
32656	//
32657	// ActionName is a required field
32658	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
32659
32660	// Defines the type of action and the parameters for that action.
32661	//
32662	// ActionParams is a required field
32663	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure" required:"true"`
32664
32665	// The ARN of the IAM role that is used to apply the mitigation action.
32666	//
32667	// RoleArn is a required field
32668	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
32669
32670	// Metadata that can be used to manage the mitigation action.
32671	Tags []*Tag `locationName:"tags" type:"list"`
32672}
32673
32674// String returns the string representation.
32675//
32676// API parameter values that are decorated as "sensitive" in the API will not
32677// be included in the string output. The member name will be present, but the
32678// value will be replaced with "sensitive".
32679func (s CreateMitigationActionInput) String() string {
32680	return awsutil.Prettify(s)
32681}
32682
32683// GoString returns the string representation.
32684//
32685// API parameter values that are decorated as "sensitive" in the API will not
32686// be included in the string output. The member name will be present, but the
32687// value will be replaced with "sensitive".
32688func (s CreateMitigationActionInput) GoString() string {
32689	return s.String()
32690}
32691
32692// Validate inspects the fields of the type to determine if they are valid.
32693func (s *CreateMitigationActionInput) Validate() error {
32694	invalidParams := request.ErrInvalidParams{Context: "CreateMitigationActionInput"}
32695	if s.ActionName == nil {
32696		invalidParams.Add(request.NewErrParamRequired("ActionName"))
32697	}
32698	if s.ActionName != nil && len(*s.ActionName) < 1 {
32699		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
32700	}
32701	if s.ActionParams == nil {
32702		invalidParams.Add(request.NewErrParamRequired("ActionParams"))
32703	}
32704	if s.RoleArn == nil {
32705		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
32706	}
32707	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
32708		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
32709	}
32710	if s.ActionParams != nil {
32711		if err := s.ActionParams.Validate(); err != nil {
32712			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
32713		}
32714	}
32715	if s.Tags != nil {
32716		for i, v := range s.Tags {
32717			if v == nil {
32718				continue
32719			}
32720			if err := v.Validate(); err != nil {
32721				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
32722			}
32723		}
32724	}
32725
32726	if invalidParams.Len() > 0 {
32727		return invalidParams
32728	}
32729	return nil
32730}
32731
32732// SetActionName sets the ActionName field's value.
32733func (s *CreateMitigationActionInput) SetActionName(v string) *CreateMitigationActionInput {
32734	s.ActionName = &v
32735	return s
32736}
32737
32738// SetActionParams sets the ActionParams field's value.
32739func (s *CreateMitigationActionInput) SetActionParams(v *MitigationActionParams) *CreateMitigationActionInput {
32740	s.ActionParams = v
32741	return s
32742}
32743
32744// SetRoleArn sets the RoleArn field's value.
32745func (s *CreateMitigationActionInput) SetRoleArn(v string) *CreateMitigationActionInput {
32746	s.RoleArn = &v
32747	return s
32748}
32749
32750// SetTags sets the Tags field's value.
32751func (s *CreateMitigationActionInput) SetTags(v []*Tag) *CreateMitigationActionInput {
32752	s.Tags = v
32753	return s
32754}
32755
32756type CreateMitigationActionOutput struct {
32757	_ struct{} `type:"structure"`
32758
32759	// The ARN for the new mitigation action.
32760	ActionArn *string `locationName:"actionArn" type:"string"`
32761
32762	// A unique identifier for the new mitigation action.
32763	ActionId *string `locationName:"actionId" type:"string"`
32764}
32765
32766// String returns the string representation.
32767//
32768// API parameter values that are decorated as "sensitive" in the API will not
32769// be included in the string output. The member name will be present, but the
32770// value will be replaced with "sensitive".
32771func (s CreateMitigationActionOutput) String() string {
32772	return awsutil.Prettify(s)
32773}
32774
32775// GoString returns the string representation.
32776//
32777// API parameter values that are decorated as "sensitive" in the API will not
32778// be included in the string output. The member name will be present, but the
32779// value will be replaced with "sensitive".
32780func (s CreateMitigationActionOutput) GoString() string {
32781	return s.String()
32782}
32783
32784// SetActionArn sets the ActionArn field's value.
32785func (s *CreateMitigationActionOutput) SetActionArn(v string) *CreateMitigationActionOutput {
32786	s.ActionArn = &v
32787	return s
32788}
32789
32790// SetActionId sets the ActionId field's value.
32791func (s *CreateMitigationActionOutput) SetActionId(v string) *CreateMitigationActionOutput {
32792	s.ActionId = &v
32793	return s
32794}
32795
32796type CreateOTAUpdateInput struct {
32797	_ struct{} `type:"structure"`
32798
32799	// A list of additional OTA update parameters which are name-value pairs.
32800	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
32801
32802	// The criteria that determine when and how a job abort takes place.
32803	AwsJobAbortConfig *AwsJobAbortConfig `locationName:"awsJobAbortConfig" type:"structure"`
32804
32805	// Configuration for the rollout of OTA updates.
32806	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
32807
32808	// Configuration information for pre-signed URLs.
32809	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
32810
32811	// Specifies the amount of time each device has to finish its execution of the
32812	// job. A timer is started when the job execution status is set to IN_PROGRESS.
32813	// If the job execution status is not set to another terminal state before the
32814	// timer expires, it will be automatically set to TIMED_OUT.
32815	AwsJobTimeoutConfig *AwsJobTimeoutConfig `locationName:"awsJobTimeoutConfig" type:"structure"`
32816
32817	// The description of the OTA update.
32818	Description *string `locationName:"description" type:"string"`
32819
32820	// The files to be streamed by the OTA update.
32821	//
32822	// Files is a required field
32823	Files []*OTAUpdateFile `locationName:"files" min:"1" type:"list" required:"true"`
32824
32825	// The ID of the OTA update to be created.
32826	//
32827	// OtaUpdateId is a required field
32828	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
32829
32830	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
32831	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
32832	// can choose the protocol.
32833	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
32834
32835	// The IAM role that grants Amazon Web Services IoT Core access to the Amazon
32836	// S3, IoT jobs and Amazon Web Services Code Signing resources to create an
32837	// OTA update job.
32838	//
32839	// RoleArn is a required field
32840	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
32841
32842	// Metadata which can be used to manage updates.
32843	Tags []*Tag `locationName:"tags" type:"list"`
32844
32845	// Specifies whether the update will continue to run (CONTINUOUS), or will be
32846	// complete after all the things specified as targets have completed the update
32847	// (SNAPSHOT). If continuous, the update may also be run on a thing when a change
32848	// is detected in a target. For example, an update will run on a thing when
32849	// the thing is added to a target group, even after the update was completed
32850	// by all things originally in the group. Valid values: CONTINUOUS | SNAPSHOT.
32851	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
32852
32853	// The devices targeted to receive OTA updates.
32854	//
32855	// Targets is a required field
32856	Targets []*string `locationName:"targets" min:"1" type:"list" required:"true"`
32857}
32858
32859// String returns the string representation.
32860//
32861// API parameter values that are decorated as "sensitive" in the API will not
32862// be included in the string output. The member name will be present, but the
32863// value will be replaced with "sensitive".
32864func (s CreateOTAUpdateInput) String() string {
32865	return awsutil.Prettify(s)
32866}
32867
32868// GoString returns the string representation.
32869//
32870// API parameter values that are decorated as "sensitive" in the API will not
32871// be included in the string output. The member name will be present, but the
32872// value will be replaced with "sensitive".
32873func (s CreateOTAUpdateInput) GoString() string {
32874	return s.String()
32875}
32876
32877// Validate inspects the fields of the type to determine if they are valid.
32878func (s *CreateOTAUpdateInput) Validate() error {
32879	invalidParams := request.ErrInvalidParams{Context: "CreateOTAUpdateInput"}
32880	if s.Files == nil {
32881		invalidParams.Add(request.NewErrParamRequired("Files"))
32882	}
32883	if s.Files != nil && len(s.Files) < 1 {
32884		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
32885	}
32886	if s.OtaUpdateId == nil {
32887		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
32888	}
32889	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
32890		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
32891	}
32892	if s.Protocols != nil && len(s.Protocols) < 1 {
32893		invalidParams.Add(request.NewErrParamMinLen("Protocols", 1))
32894	}
32895	if s.RoleArn == nil {
32896		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
32897	}
32898	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
32899		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
32900	}
32901	if s.Targets == nil {
32902		invalidParams.Add(request.NewErrParamRequired("Targets"))
32903	}
32904	if s.Targets != nil && len(s.Targets) < 1 {
32905		invalidParams.Add(request.NewErrParamMinLen("Targets", 1))
32906	}
32907	if s.AwsJobAbortConfig != nil {
32908		if err := s.AwsJobAbortConfig.Validate(); err != nil {
32909			invalidParams.AddNested("AwsJobAbortConfig", err.(request.ErrInvalidParams))
32910		}
32911	}
32912	if s.AwsJobExecutionsRolloutConfig != nil {
32913		if err := s.AwsJobExecutionsRolloutConfig.Validate(); err != nil {
32914			invalidParams.AddNested("AwsJobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
32915		}
32916	}
32917	if s.Files != nil {
32918		for i, v := range s.Files {
32919			if v == nil {
32920				continue
32921			}
32922			if err := v.Validate(); err != nil {
32923				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
32924			}
32925		}
32926	}
32927	if s.Tags != nil {
32928		for i, v := range s.Tags {
32929			if v == nil {
32930				continue
32931			}
32932			if err := v.Validate(); err != nil {
32933				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
32934			}
32935		}
32936	}
32937
32938	if invalidParams.Len() > 0 {
32939		return invalidParams
32940	}
32941	return nil
32942}
32943
32944// SetAdditionalParameters sets the AdditionalParameters field's value.
32945func (s *CreateOTAUpdateInput) SetAdditionalParameters(v map[string]*string) *CreateOTAUpdateInput {
32946	s.AdditionalParameters = v
32947	return s
32948}
32949
32950// SetAwsJobAbortConfig sets the AwsJobAbortConfig field's value.
32951func (s *CreateOTAUpdateInput) SetAwsJobAbortConfig(v *AwsJobAbortConfig) *CreateOTAUpdateInput {
32952	s.AwsJobAbortConfig = v
32953	return s
32954}
32955
32956// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
32957func (s *CreateOTAUpdateInput) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *CreateOTAUpdateInput {
32958	s.AwsJobExecutionsRolloutConfig = v
32959	return s
32960}
32961
32962// SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
32963func (s *CreateOTAUpdateInput) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *CreateOTAUpdateInput {
32964	s.AwsJobPresignedUrlConfig = v
32965	return s
32966}
32967
32968// SetAwsJobTimeoutConfig sets the AwsJobTimeoutConfig field's value.
32969func (s *CreateOTAUpdateInput) SetAwsJobTimeoutConfig(v *AwsJobTimeoutConfig) *CreateOTAUpdateInput {
32970	s.AwsJobTimeoutConfig = v
32971	return s
32972}
32973
32974// SetDescription sets the Description field's value.
32975func (s *CreateOTAUpdateInput) SetDescription(v string) *CreateOTAUpdateInput {
32976	s.Description = &v
32977	return s
32978}
32979
32980// SetFiles sets the Files field's value.
32981func (s *CreateOTAUpdateInput) SetFiles(v []*OTAUpdateFile) *CreateOTAUpdateInput {
32982	s.Files = v
32983	return s
32984}
32985
32986// SetOtaUpdateId sets the OtaUpdateId field's value.
32987func (s *CreateOTAUpdateInput) SetOtaUpdateId(v string) *CreateOTAUpdateInput {
32988	s.OtaUpdateId = &v
32989	return s
32990}
32991
32992// SetProtocols sets the Protocols field's value.
32993func (s *CreateOTAUpdateInput) SetProtocols(v []*string) *CreateOTAUpdateInput {
32994	s.Protocols = v
32995	return s
32996}
32997
32998// SetRoleArn sets the RoleArn field's value.
32999func (s *CreateOTAUpdateInput) SetRoleArn(v string) *CreateOTAUpdateInput {
33000	s.RoleArn = &v
33001	return s
33002}
33003
33004// SetTags sets the Tags field's value.
33005func (s *CreateOTAUpdateInput) SetTags(v []*Tag) *CreateOTAUpdateInput {
33006	s.Tags = v
33007	return s
33008}
33009
33010// SetTargetSelection sets the TargetSelection field's value.
33011func (s *CreateOTAUpdateInput) SetTargetSelection(v string) *CreateOTAUpdateInput {
33012	s.TargetSelection = &v
33013	return s
33014}
33015
33016// SetTargets sets the Targets field's value.
33017func (s *CreateOTAUpdateInput) SetTargets(v []*string) *CreateOTAUpdateInput {
33018	s.Targets = v
33019	return s
33020}
33021
33022type CreateOTAUpdateOutput struct {
33023	_ struct{} `type:"structure"`
33024
33025	// The IoT job ARN associated with the OTA update.
33026	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
33027
33028	// The IoT job ID associated with the OTA update.
33029	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
33030
33031	// The OTA update ARN.
33032	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
33033
33034	// The OTA update ID.
33035	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
33036
33037	// The OTA update status.
33038	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
33039}
33040
33041// String returns the string representation.
33042//
33043// API parameter values that are decorated as "sensitive" in the API will not
33044// be included in the string output. The member name will be present, but the
33045// value will be replaced with "sensitive".
33046func (s CreateOTAUpdateOutput) String() string {
33047	return awsutil.Prettify(s)
33048}
33049
33050// GoString returns the string representation.
33051//
33052// API parameter values that are decorated as "sensitive" in the API will not
33053// be included in the string output. The member name will be present, but the
33054// value will be replaced with "sensitive".
33055func (s CreateOTAUpdateOutput) GoString() string {
33056	return s.String()
33057}
33058
33059// SetAwsIotJobArn sets the AwsIotJobArn field's value.
33060func (s *CreateOTAUpdateOutput) SetAwsIotJobArn(v string) *CreateOTAUpdateOutput {
33061	s.AwsIotJobArn = &v
33062	return s
33063}
33064
33065// SetAwsIotJobId sets the AwsIotJobId field's value.
33066func (s *CreateOTAUpdateOutput) SetAwsIotJobId(v string) *CreateOTAUpdateOutput {
33067	s.AwsIotJobId = &v
33068	return s
33069}
33070
33071// SetOtaUpdateArn sets the OtaUpdateArn field's value.
33072func (s *CreateOTAUpdateOutput) SetOtaUpdateArn(v string) *CreateOTAUpdateOutput {
33073	s.OtaUpdateArn = &v
33074	return s
33075}
33076
33077// SetOtaUpdateId sets the OtaUpdateId field's value.
33078func (s *CreateOTAUpdateOutput) SetOtaUpdateId(v string) *CreateOTAUpdateOutput {
33079	s.OtaUpdateId = &v
33080	return s
33081}
33082
33083// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
33084func (s *CreateOTAUpdateOutput) SetOtaUpdateStatus(v string) *CreateOTAUpdateOutput {
33085	s.OtaUpdateStatus = &v
33086	return s
33087}
33088
33089// The input for the CreatePolicy operation.
33090type CreatePolicyInput struct {
33091	_ struct{} `type:"structure"`
33092
33093	// The JSON document that describes the policy. policyDocument must have a minimum
33094	// length of 1, with a maximum length of 2048, excluding whitespace.
33095	//
33096	// PolicyDocument is a required field
33097	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
33098
33099	// The policy name.
33100	//
33101	// PolicyName is a required field
33102	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
33103
33104	// Metadata which can be used to manage the policy.
33105	//
33106	// For URI Request parameters use format: ...key1=value1&key2=value2...
33107	//
33108	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
33109	//
33110	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
33111	Tags []*Tag `locationName:"tags" type:"list"`
33112}
33113
33114// String returns the string representation.
33115//
33116// API parameter values that are decorated as "sensitive" in the API will not
33117// be included in the string output. The member name will be present, but the
33118// value will be replaced with "sensitive".
33119func (s CreatePolicyInput) String() string {
33120	return awsutil.Prettify(s)
33121}
33122
33123// GoString returns the string representation.
33124//
33125// API parameter values that are decorated as "sensitive" in the API will not
33126// be included in the string output. The member name will be present, but the
33127// value will be replaced with "sensitive".
33128func (s CreatePolicyInput) GoString() string {
33129	return s.String()
33130}
33131
33132// Validate inspects the fields of the type to determine if they are valid.
33133func (s *CreatePolicyInput) Validate() error {
33134	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyInput"}
33135	if s.PolicyDocument == nil {
33136		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
33137	}
33138	if s.PolicyName == nil {
33139		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
33140	}
33141	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
33142		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
33143	}
33144	if s.Tags != nil {
33145		for i, v := range s.Tags {
33146			if v == nil {
33147				continue
33148			}
33149			if err := v.Validate(); err != nil {
33150				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
33151			}
33152		}
33153	}
33154
33155	if invalidParams.Len() > 0 {
33156		return invalidParams
33157	}
33158	return nil
33159}
33160
33161// SetPolicyDocument sets the PolicyDocument field's value.
33162func (s *CreatePolicyInput) SetPolicyDocument(v string) *CreatePolicyInput {
33163	s.PolicyDocument = &v
33164	return s
33165}
33166
33167// SetPolicyName sets the PolicyName field's value.
33168func (s *CreatePolicyInput) SetPolicyName(v string) *CreatePolicyInput {
33169	s.PolicyName = &v
33170	return s
33171}
33172
33173// SetTags sets the Tags field's value.
33174func (s *CreatePolicyInput) SetTags(v []*Tag) *CreatePolicyInput {
33175	s.Tags = v
33176	return s
33177}
33178
33179// The output from the CreatePolicy operation.
33180type CreatePolicyOutput struct {
33181	_ struct{} `type:"structure"`
33182
33183	// The policy ARN.
33184	PolicyArn *string `locationName:"policyArn" type:"string"`
33185
33186	// The JSON document that describes the policy.
33187	PolicyDocument *string `locationName:"policyDocument" type:"string"`
33188
33189	// The policy name.
33190	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
33191
33192	// The policy version ID.
33193	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
33194}
33195
33196// String returns the string representation.
33197//
33198// API parameter values that are decorated as "sensitive" in the API will not
33199// be included in the string output. The member name will be present, but the
33200// value will be replaced with "sensitive".
33201func (s CreatePolicyOutput) String() string {
33202	return awsutil.Prettify(s)
33203}
33204
33205// GoString returns the string representation.
33206//
33207// API parameter values that are decorated as "sensitive" in the API will not
33208// be included in the string output. The member name will be present, but the
33209// value will be replaced with "sensitive".
33210func (s CreatePolicyOutput) GoString() string {
33211	return s.String()
33212}
33213
33214// SetPolicyArn sets the PolicyArn field's value.
33215func (s *CreatePolicyOutput) SetPolicyArn(v string) *CreatePolicyOutput {
33216	s.PolicyArn = &v
33217	return s
33218}
33219
33220// SetPolicyDocument sets the PolicyDocument field's value.
33221func (s *CreatePolicyOutput) SetPolicyDocument(v string) *CreatePolicyOutput {
33222	s.PolicyDocument = &v
33223	return s
33224}
33225
33226// SetPolicyName sets the PolicyName field's value.
33227func (s *CreatePolicyOutput) SetPolicyName(v string) *CreatePolicyOutput {
33228	s.PolicyName = &v
33229	return s
33230}
33231
33232// SetPolicyVersionId sets the PolicyVersionId field's value.
33233func (s *CreatePolicyOutput) SetPolicyVersionId(v string) *CreatePolicyOutput {
33234	s.PolicyVersionId = &v
33235	return s
33236}
33237
33238// The input for the CreatePolicyVersion operation.
33239type CreatePolicyVersionInput struct {
33240	_ struct{} `type:"structure"`
33241
33242	// The JSON document that describes the policy. Minimum length of 1. Maximum
33243	// length of 2048, excluding whitespace.
33244	//
33245	// PolicyDocument is a required field
33246	PolicyDocument *string `locationName:"policyDocument" type:"string" required:"true"`
33247
33248	// The policy name.
33249	//
33250	// PolicyName is a required field
33251	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
33252
33253	// Specifies whether the policy version is set as the default. When this parameter
33254	// is true, the new policy version becomes the operative version (that is, the
33255	// version that is in effect for the certificates to which the policy is attached).
33256	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
33257}
33258
33259// String returns the string representation.
33260//
33261// API parameter values that are decorated as "sensitive" in the API will not
33262// be included in the string output. The member name will be present, but the
33263// value will be replaced with "sensitive".
33264func (s CreatePolicyVersionInput) String() string {
33265	return awsutil.Prettify(s)
33266}
33267
33268// GoString returns the string representation.
33269//
33270// API parameter values that are decorated as "sensitive" in the API will not
33271// be included in the string output. The member name will be present, but the
33272// value will be replaced with "sensitive".
33273func (s CreatePolicyVersionInput) GoString() string {
33274	return s.String()
33275}
33276
33277// Validate inspects the fields of the type to determine if they are valid.
33278func (s *CreatePolicyVersionInput) Validate() error {
33279	invalidParams := request.ErrInvalidParams{Context: "CreatePolicyVersionInput"}
33280	if s.PolicyDocument == nil {
33281		invalidParams.Add(request.NewErrParamRequired("PolicyDocument"))
33282	}
33283	if s.PolicyName == nil {
33284		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
33285	}
33286	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
33287		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
33288	}
33289
33290	if invalidParams.Len() > 0 {
33291		return invalidParams
33292	}
33293	return nil
33294}
33295
33296// SetPolicyDocument sets the PolicyDocument field's value.
33297func (s *CreatePolicyVersionInput) SetPolicyDocument(v string) *CreatePolicyVersionInput {
33298	s.PolicyDocument = &v
33299	return s
33300}
33301
33302// SetPolicyName sets the PolicyName field's value.
33303func (s *CreatePolicyVersionInput) SetPolicyName(v string) *CreatePolicyVersionInput {
33304	s.PolicyName = &v
33305	return s
33306}
33307
33308// SetSetAsDefault sets the SetAsDefault field's value.
33309func (s *CreatePolicyVersionInput) SetSetAsDefault(v bool) *CreatePolicyVersionInput {
33310	s.SetAsDefault = &v
33311	return s
33312}
33313
33314// The output of the CreatePolicyVersion operation.
33315type CreatePolicyVersionOutput struct {
33316	_ struct{} `type:"structure"`
33317
33318	// Specifies whether the policy version is the default.
33319	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
33320
33321	// The policy ARN.
33322	PolicyArn *string `locationName:"policyArn" type:"string"`
33323
33324	// The JSON document that describes the policy.
33325	PolicyDocument *string `locationName:"policyDocument" type:"string"`
33326
33327	// The policy version ID.
33328	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
33329}
33330
33331// String returns the string representation.
33332//
33333// API parameter values that are decorated as "sensitive" in the API will not
33334// be included in the string output. The member name will be present, but the
33335// value will be replaced with "sensitive".
33336func (s CreatePolicyVersionOutput) String() string {
33337	return awsutil.Prettify(s)
33338}
33339
33340// GoString returns the string representation.
33341//
33342// API parameter values that are decorated as "sensitive" in the API will not
33343// be included in the string output. The member name will be present, but the
33344// value will be replaced with "sensitive".
33345func (s CreatePolicyVersionOutput) GoString() string {
33346	return s.String()
33347}
33348
33349// SetIsDefaultVersion sets the IsDefaultVersion field's value.
33350func (s *CreatePolicyVersionOutput) SetIsDefaultVersion(v bool) *CreatePolicyVersionOutput {
33351	s.IsDefaultVersion = &v
33352	return s
33353}
33354
33355// SetPolicyArn sets the PolicyArn field's value.
33356func (s *CreatePolicyVersionOutput) SetPolicyArn(v string) *CreatePolicyVersionOutput {
33357	s.PolicyArn = &v
33358	return s
33359}
33360
33361// SetPolicyDocument sets the PolicyDocument field's value.
33362func (s *CreatePolicyVersionOutput) SetPolicyDocument(v string) *CreatePolicyVersionOutput {
33363	s.PolicyDocument = &v
33364	return s
33365}
33366
33367// SetPolicyVersionId sets the PolicyVersionId field's value.
33368func (s *CreatePolicyVersionOutput) SetPolicyVersionId(v string) *CreatePolicyVersionOutput {
33369	s.PolicyVersionId = &v
33370	return s
33371}
33372
33373type CreateProvisioningClaimInput struct {
33374	_ struct{} `type:"structure" nopayload:"true"`
33375
33376	// The name of the provisioning template to use.
33377	//
33378	// TemplateName is a required field
33379	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
33380}
33381
33382// String returns the string representation.
33383//
33384// API parameter values that are decorated as "sensitive" in the API will not
33385// be included in the string output. The member name will be present, but the
33386// value will be replaced with "sensitive".
33387func (s CreateProvisioningClaimInput) String() string {
33388	return awsutil.Prettify(s)
33389}
33390
33391// GoString returns the string representation.
33392//
33393// API parameter values that are decorated as "sensitive" in the API will not
33394// be included in the string output. The member name will be present, but the
33395// value will be replaced with "sensitive".
33396func (s CreateProvisioningClaimInput) GoString() string {
33397	return s.String()
33398}
33399
33400// Validate inspects the fields of the type to determine if they are valid.
33401func (s *CreateProvisioningClaimInput) Validate() error {
33402	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningClaimInput"}
33403	if s.TemplateName == nil {
33404		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
33405	}
33406	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
33407		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
33408	}
33409
33410	if invalidParams.Len() > 0 {
33411		return invalidParams
33412	}
33413	return nil
33414}
33415
33416// SetTemplateName sets the TemplateName field's value.
33417func (s *CreateProvisioningClaimInput) SetTemplateName(v string) *CreateProvisioningClaimInput {
33418	s.TemplateName = &v
33419	return s
33420}
33421
33422type CreateProvisioningClaimOutput struct {
33423	_ struct{} `type:"structure"`
33424
33425	// The ID of the certificate.
33426	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
33427
33428	// The provisioning claim certificate.
33429	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
33430
33431	// The provisioning claim expiration time.
33432	Expiration *time.Time `locationName:"expiration" type:"timestamp"`
33433
33434	// The provisioning claim key pair.
33435	KeyPair *KeyPair `locationName:"keyPair" type:"structure"`
33436}
33437
33438// String returns the string representation.
33439//
33440// API parameter values that are decorated as "sensitive" in the API will not
33441// be included in the string output. The member name will be present, but the
33442// value will be replaced with "sensitive".
33443func (s CreateProvisioningClaimOutput) String() string {
33444	return awsutil.Prettify(s)
33445}
33446
33447// GoString returns the string representation.
33448//
33449// API parameter values that are decorated as "sensitive" in the API will not
33450// be included in the string output. The member name will be present, but the
33451// value will be replaced with "sensitive".
33452func (s CreateProvisioningClaimOutput) GoString() string {
33453	return s.String()
33454}
33455
33456// SetCertificateId sets the CertificateId field's value.
33457func (s *CreateProvisioningClaimOutput) SetCertificateId(v string) *CreateProvisioningClaimOutput {
33458	s.CertificateId = &v
33459	return s
33460}
33461
33462// SetCertificatePem sets the CertificatePem field's value.
33463func (s *CreateProvisioningClaimOutput) SetCertificatePem(v string) *CreateProvisioningClaimOutput {
33464	s.CertificatePem = &v
33465	return s
33466}
33467
33468// SetExpiration sets the Expiration field's value.
33469func (s *CreateProvisioningClaimOutput) SetExpiration(v time.Time) *CreateProvisioningClaimOutput {
33470	s.Expiration = &v
33471	return s
33472}
33473
33474// SetKeyPair sets the KeyPair field's value.
33475func (s *CreateProvisioningClaimOutput) SetKeyPair(v *KeyPair) *CreateProvisioningClaimOutput {
33476	s.KeyPair = v
33477	return s
33478}
33479
33480type CreateProvisioningTemplateInput struct {
33481	_ struct{} `type:"structure"`
33482
33483	// The description of the fleet provisioning template.
33484	Description *string `locationName:"description" type:"string"`
33485
33486	// True to enable the fleet provisioning template, otherwise false.
33487	Enabled *bool `locationName:"enabled" type:"boolean"`
33488
33489	// Creates a pre-provisioning hook template.
33490	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
33491
33492	// The role ARN for the role associated with the fleet provisioning template.
33493	// This IoT role grants permission to provision a device.
33494	//
33495	// ProvisioningRoleArn is a required field
33496	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string" required:"true"`
33497
33498	// Metadata which can be used to manage the fleet provisioning template.
33499	//
33500	// For URI Request parameters use format: ...key1=value1&key2=value2...
33501	//
33502	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
33503	//
33504	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
33505	Tags []*Tag `locationName:"tags" type:"list"`
33506
33507	// The JSON formatted contents of the fleet provisioning template.
33508	//
33509	// TemplateBody is a required field
33510	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
33511
33512	// The name of the fleet provisioning template.
33513	//
33514	// TemplateName is a required field
33515	TemplateName *string `locationName:"templateName" min:"1" type:"string" required:"true"`
33516}
33517
33518// String returns the string representation.
33519//
33520// API parameter values that are decorated as "sensitive" in the API will not
33521// be included in the string output. The member name will be present, but the
33522// value will be replaced with "sensitive".
33523func (s CreateProvisioningTemplateInput) String() string {
33524	return awsutil.Prettify(s)
33525}
33526
33527// GoString returns the string representation.
33528//
33529// API parameter values that are decorated as "sensitive" in the API will not
33530// be included in the string output. The member name will be present, but the
33531// value will be replaced with "sensitive".
33532func (s CreateProvisioningTemplateInput) GoString() string {
33533	return s.String()
33534}
33535
33536// Validate inspects the fields of the type to determine if they are valid.
33537func (s *CreateProvisioningTemplateInput) Validate() error {
33538	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateInput"}
33539	if s.ProvisioningRoleArn == nil {
33540		invalidParams.Add(request.NewErrParamRequired("ProvisioningRoleArn"))
33541	}
33542	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
33543		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
33544	}
33545	if s.TemplateBody == nil {
33546		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
33547	}
33548	if s.TemplateName == nil {
33549		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
33550	}
33551	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
33552		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
33553	}
33554	if s.PreProvisioningHook != nil {
33555		if err := s.PreProvisioningHook.Validate(); err != nil {
33556			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
33557		}
33558	}
33559	if s.Tags != nil {
33560		for i, v := range s.Tags {
33561			if v == nil {
33562				continue
33563			}
33564			if err := v.Validate(); err != nil {
33565				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
33566			}
33567		}
33568	}
33569
33570	if invalidParams.Len() > 0 {
33571		return invalidParams
33572	}
33573	return nil
33574}
33575
33576// SetDescription sets the Description field's value.
33577func (s *CreateProvisioningTemplateInput) SetDescription(v string) *CreateProvisioningTemplateInput {
33578	s.Description = &v
33579	return s
33580}
33581
33582// SetEnabled sets the Enabled field's value.
33583func (s *CreateProvisioningTemplateInput) SetEnabled(v bool) *CreateProvisioningTemplateInput {
33584	s.Enabled = &v
33585	return s
33586}
33587
33588// SetPreProvisioningHook sets the PreProvisioningHook field's value.
33589func (s *CreateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *CreateProvisioningTemplateInput {
33590	s.PreProvisioningHook = v
33591	return s
33592}
33593
33594// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
33595func (s *CreateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *CreateProvisioningTemplateInput {
33596	s.ProvisioningRoleArn = &v
33597	return s
33598}
33599
33600// SetTags sets the Tags field's value.
33601func (s *CreateProvisioningTemplateInput) SetTags(v []*Tag) *CreateProvisioningTemplateInput {
33602	s.Tags = v
33603	return s
33604}
33605
33606// SetTemplateBody sets the TemplateBody field's value.
33607func (s *CreateProvisioningTemplateInput) SetTemplateBody(v string) *CreateProvisioningTemplateInput {
33608	s.TemplateBody = &v
33609	return s
33610}
33611
33612// SetTemplateName sets the TemplateName field's value.
33613func (s *CreateProvisioningTemplateInput) SetTemplateName(v string) *CreateProvisioningTemplateInput {
33614	s.TemplateName = &v
33615	return s
33616}
33617
33618type CreateProvisioningTemplateOutput struct {
33619	_ struct{} `type:"structure"`
33620
33621	// The default version of the fleet provisioning template.
33622	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
33623
33624	// The ARN that identifies the provisioning template.
33625	TemplateArn *string `locationName:"templateArn" type:"string"`
33626
33627	// The name of the fleet provisioning template.
33628	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
33629}
33630
33631// String returns the string representation.
33632//
33633// API parameter values that are decorated as "sensitive" in the API will not
33634// be included in the string output. The member name will be present, but the
33635// value will be replaced with "sensitive".
33636func (s CreateProvisioningTemplateOutput) String() string {
33637	return awsutil.Prettify(s)
33638}
33639
33640// GoString returns the string representation.
33641//
33642// API parameter values that are decorated as "sensitive" in the API will not
33643// be included in the string output. The member name will be present, but the
33644// value will be replaced with "sensitive".
33645func (s CreateProvisioningTemplateOutput) GoString() string {
33646	return s.String()
33647}
33648
33649// SetDefaultVersionId sets the DefaultVersionId field's value.
33650func (s *CreateProvisioningTemplateOutput) SetDefaultVersionId(v int64) *CreateProvisioningTemplateOutput {
33651	s.DefaultVersionId = &v
33652	return s
33653}
33654
33655// SetTemplateArn sets the TemplateArn field's value.
33656func (s *CreateProvisioningTemplateOutput) SetTemplateArn(v string) *CreateProvisioningTemplateOutput {
33657	s.TemplateArn = &v
33658	return s
33659}
33660
33661// SetTemplateName sets the TemplateName field's value.
33662func (s *CreateProvisioningTemplateOutput) SetTemplateName(v string) *CreateProvisioningTemplateOutput {
33663	s.TemplateName = &v
33664	return s
33665}
33666
33667type CreateProvisioningTemplateVersionInput struct {
33668	_ struct{} `type:"structure"`
33669
33670	// Sets a fleet provision template version as the default version.
33671	SetAsDefault *bool `location:"querystring" locationName:"setAsDefault" type:"boolean"`
33672
33673	// The JSON formatted contents of the fleet provisioning template.
33674	//
33675	// TemplateBody is a required field
33676	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
33677
33678	// The name of the fleet provisioning template.
33679	//
33680	// TemplateName is a required field
33681	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
33682}
33683
33684// String returns the string representation.
33685//
33686// API parameter values that are decorated as "sensitive" in the API will not
33687// be included in the string output. The member name will be present, but the
33688// value will be replaced with "sensitive".
33689func (s CreateProvisioningTemplateVersionInput) String() string {
33690	return awsutil.Prettify(s)
33691}
33692
33693// GoString returns the string representation.
33694//
33695// API parameter values that are decorated as "sensitive" in the API will not
33696// be included in the string output. The member name will be present, but the
33697// value will be replaced with "sensitive".
33698func (s CreateProvisioningTemplateVersionInput) GoString() string {
33699	return s.String()
33700}
33701
33702// Validate inspects the fields of the type to determine if they are valid.
33703func (s *CreateProvisioningTemplateVersionInput) Validate() error {
33704	invalidParams := request.ErrInvalidParams{Context: "CreateProvisioningTemplateVersionInput"}
33705	if s.TemplateBody == nil {
33706		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
33707	}
33708	if s.TemplateName == nil {
33709		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
33710	}
33711	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
33712		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
33713	}
33714
33715	if invalidParams.Len() > 0 {
33716		return invalidParams
33717	}
33718	return nil
33719}
33720
33721// SetSetAsDefault sets the SetAsDefault field's value.
33722func (s *CreateProvisioningTemplateVersionInput) SetSetAsDefault(v bool) *CreateProvisioningTemplateVersionInput {
33723	s.SetAsDefault = &v
33724	return s
33725}
33726
33727// SetTemplateBody sets the TemplateBody field's value.
33728func (s *CreateProvisioningTemplateVersionInput) SetTemplateBody(v string) *CreateProvisioningTemplateVersionInput {
33729	s.TemplateBody = &v
33730	return s
33731}
33732
33733// SetTemplateName sets the TemplateName field's value.
33734func (s *CreateProvisioningTemplateVersionInput) SetTemplateName(v string) *CreateProvisioningTemplateVersionInput {
33735	s.TemplateName = &v
33736	return s
33737}
33738
33739type CreateProvisioningTemplateVersionOutput struct {
33740	_ struct{} `type:"structure"`
33741
33742	// True if the fleet provisioning template version is the default version, otherwise
33743	// false.
33744	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
33745
33746	// The ARN that identifies the provisioning template.
33747	TemplateArn *string `locationName:"templateArn" type:"string"`
33748
33749	// The name of the fleet provisioning template.
33750	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
33751
33752	// The version of the fleet provisioning template.
33753	VersionId *int64 `locationName:"versionId" type:"integer"`
33754}
33755
33756// String returns the string representation.
33757//
33758// API parameter values that are decorated as "sensitive" in the API will not
33759// be included in the string output. The member name will be present, but the
33760// value will be replaced with "sensitive".
33761func (s CreateProvisioningTemplateVersionOutput) String() string {
33762	return awsutil.Prettify(s)
33763}
33764
33765// GoString returns the string representation.
33766//
33767// API parameter values that are decorated as "sensitive" in the API will not
33768// be included in the string output. The member name will be present, but the
33769// value will be replaced with "sensitive".
33770func (s CreateProvisioningTemplateVersionOutput) GoString() string {
33771	return s.String()
33772}
33773
33774// SetIsDefaultVersion sets the IsDefaultVersion field's value.
33775func (s *CreateProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *CreateProvisioningTemplateVersionOutput {
33776	s.IsDefaultVersion = &v
33777	return s
33778}
33779
33780// SetTemplateArn sets the TemplateArn field's value.
33781func (s *CreateProvisioningTemplateVersionOutput) SetTemplateArn(v string) *CreateProvisioningTemplateVersionOutput {
33782	s.TemplateArn = &v
33783	return s
33784}
33785
33786// SetTemplateName sets the TemplateName field's value.
33787func (s *CreateProvisioningTemplateVersionOutput) SetTemplateName(v string) *CreateProvisioningTemplateVersionOutput {
33788	s.TemplateName = &v
33789	return s
33790}
33791
33792// SetVersionId sets the VersionId field's value.
33793func (s *CreateProvisioningTemplateVersionOutput) SetVersionId(v int64) *CreateProvisioningTemplateVersionOutput {
33794	s.VersionId = &v
33795	return s
33796}
33797
33798type CreateRoleAliasInput struct {
33799	_ struct{} `type:"structure"`
33800
33801	// How long (in seconds) the credentials will be valid. The default value is
33802	// 3,600 seconds.
33803	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
33804
33805	// The role alias that points to a role ARN. This allows you to change the role
33806	// without having to update the device.
33807	//
33808	// RoleAlias is a required field
33809	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
33810
33811	// The role ARN.
33812	//
33813	// RoleArn is a required field
33814	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
33815
33816	// Metadata which can be used to manage the role alias.
33817	//
33818	// For URI Request parameters use format: ...key1=value1&key2=value2...
33819	//
33820	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
33821	//
33822	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
33823	Tags []*Tag `locationName:"tags" type:"list"`
33824}
33825
33826// String returns the string representation.
33827//
33828// API parameter values that are decorated as "sensitive" in the API will not
33829// be included in the string output. The member name will be present, but the
33830// value will be replaced with "sensitive".
33831func (s CreateRoleAliasInput) String() string {
33832	return awsutil.Prettify(s)
33833}
33834
33835// GoString returns the string representation.
33836//
33837// API parameter values that are decorated as "sensitive" in the API will not
33838// be included in the string output. The member name will be present, but the
33839// value will be replaced with "sensitive".
33840func (s CreateRoleAliasInput) GoString() string {
33841	return s.String()
33842}
33843
33844// Validate inspects the fields of the type to determine if they are valid.
33845func (s *CreateRoleAliasInput) Validate() error {
33846	invalidParams := request.ErrInvalidParams{Context: "CreateRoleAliasInput"}
33847	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
33848		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
33849	}
33850	if s.RoleAlias == nil {
33851		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
33852	}
33853	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
33854		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
33855	}
33856	if s.RoleArn == nil {
33857		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
33858	}
33859	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
33860		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
33861	}
33862	if s.Tags != nil {
33863		for i, v := range s.Tags {
33864			if v == nil {
33865				continue
33866			}
33867			if err := v.Validate(); err != nil {
33868				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
33869			}
33870		}
33871	}
33872
33873	if invalidParams.Len() > 0 {
33874		return invalidParams
33875	}
33876	return nil
33877}
33878
33879// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
33880func (s *CreateRoleAliasInput) SetCredentialDurationSeconds(v int64) *CreateRoleAliasInput {
33881	s.CredentialDurationSeconds = &v
33882	return s
33883}
33884
33885// SetRoleAlias sets the RoleAlias field's value.
33886func (s *CreateRoleAliasInput) SetRoleAlias(v string) *CreateRoleAliasInput {
33887	s.RoleAlias = &v
33888	return s
33889}
33890
33891// SetRoleArn sets the RoleArn field's value.
33892func (s *CreateRoleAliasInput) SetRoleArn(v string) *CreateRoleAliasInput {
33893	s.RoleArn = &v
33894	return s
33895}
33896
33897// SetTags sets the Tags field's value.
33898func (s *CreateRoleAliasInput) SetTags(v []*Tag) *CreateRoleAliasInput {
33899	s.Tags = v
33900	return s
33901}
33902
33903type CreateRoleAliasOutput struct {
33904	_ struct{} `type:"structure"`
33905
33906	// The role alias.
33907	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
33908
33909	// The role alias ARN.
33910	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
33911}
33912
33913// String returns the string representation.
33914//
33915// API parameter values that are decorated as "sensitive" in the API will not
33916// be included in the string output. The member name will be present, but the
33917// value will be replaced with "sensitive".
33918func (s CreateRoleAliasOutput) String() string {
33919	return awsutil.Prettify(s)
33920}
33921
33922// GoString returns the string representation.
33923//
33924// API parameter values that are decorated as "sensitive" in the API will not
33925// be included in the string output. The member name will be present, but the
33926// value will be replaced with "sensitive".
33927func (s CreateRoleAliasOutput) GoString() string {
33928	return s.String()
33929}
33930
33931// SetRoleAlias sets the RoleAlias field's value.
33932func (s *CreateRoleAliasOutput) SetRoleAlias(v string) *CreateRoleAliasOutput {
33933	s.RoleAlias = &v
33934	return s
33935}
33936
33937// SetRoleAliasArn sets the RoleAliasArn field's value.
33938func (s *CreateRoleAliasOutput) SetRoleAliasArn(v string) *CreateRoleAliasOutput {
33939	s.RoleAliasArn = &v
33940	return s
33941}
33942
33943type CreateScheduledAuditInput struct {
33944	_ struct{} `type:"structure"`
33945
33946	// The day of the month on which the scheduled audit takes place. This can be
33947	// "1" through "31" or "LAST". This field is required if the "frequency" parameter
33948	// is set to MONTHLY. If days 29 to 31 are specified, and the month doesn't
33949	// have that many days, the audit takes place on the LAST day of the month.
33950	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
33951
33952	// The day of the week on which the scheduled audit takes place, either SUN,
33953	// MON, TUE, WED, THU, FRI, or SAT. This field is required if the frequency
33954	// parameter is set to WEEKLY or BIWEEKLY.
33955	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
33956
33957	// How often the scheduled audit takes place, either DAILY, WEEKLY, BIWEEKLY
33958	// or MONTHLY. The start time of each audit is determined by the system.
33959	//
33960	// Frequency is a required field
33961	Frequency *string `locationName:"frequency" type:"string" required:"true" enum:"AuditFrequency"`
33962
33963	// The name you want to give to the scheduled audit. (Max. 128 chars)
33964	//
33965	// ScheduledAuditName is a required field
33966	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
33967
33968	// Metadata that can be used to manage the scheduled audit.
33969	Tags []*Tag `locationName:"tags" type:"list"`
33970
33971	// Which checks are performed during the scheduled audit. Checks must be enabled
33972	// for your account. (Use DescribeAccountAuditConfiguration to see the list
33973	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
33974	// to select which checks are enabled.)
33975	//
33976	// TargetCheckNames is a required field
33977	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
33978}
33979
33980// String returns the string representation.
33981//
33982// API parameter values that are decorated as "sensitive" in the API will not
33983// be included in the string output. The member name will be present, but the
33984// value will be replaced with "sensitive".
33985func (s CreateScheduledAuditInput) String() string {
33986	return awsutil.Prettify(s)
33987}
33988
33989// GoString returns the string representation.
33990//
33991// API parameter values that are decorated as "sensitive" in the API will not
33992// be included in the string output. The member name will be present, but the
33993// value will be replaced with "sensitive".
33994func (s CreateScheduledAuditInput) GoString() string {
33995	return s.String()
33996}
33997
33998// Validate inspects the fields of the type to determine if they are valid.
33999func (s *CreateScheduledAuditInput) Validate() error {
34000	invalidParams := request.ErrInvalidParams{Context: "CreateScheduledAuditInput"}
34001	if s.Frequency == nil {
34002		invalidParams.Add(request.NewErrParamRequired("Frequency"))
34003	}
34004	if s.ScheduledAuditName == nil {
34005		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
34006	}
34007	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
34008		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
34009	}
34010	if s.TargetCheckNames == nil {
34011		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
34012	}
34013	if s.Tags != nil {
34014		for i, v := range s.Tags {
34015			if v == nil {
34016				continue
34017			}
34018			if err := v.Validate(); err != nil {
34019				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
34020			}
34021		}
34022	}
34023
34024	if invalidParams.Len() > 0 {
34025		return invalidParams
34026	}
34027	return nil
34028}
34029
34030// SetDayOfMonth sets the DayOfMonth field's value.
34031func (s *CreateScheduledAuditInput) SetDayOfMonth(v string) *CreateScheduledAuditInput {
34032	s.DayOfMonth = &v
34033	return s
34034}
34035
34036// SetDayOfWeek sets the DayOfWeek field's value.
34037func (s *CreateScheduledAuditInput) SetDayOfWeek(v string) *CreateScheduledAuditInput {
34038	s.DayOfWeek = &v
34039	return s
34040}
34041
34042// SetFrequency sets the Frequency field's value.
34043func (s *CreateScheduledAuditInput) SetFrequency(v string) *CreateScheduledAuditInput {
34044	s.Frequency = &v
34045	return s
34046}
34047
34048// SetScheduledAuditName sets the ScheduledAuditName field's value.
34049func (s *CreateScheduledAuditInput) SetScheduledAuditName(v string) *CreateScheduledAuditInput {
34050	s.ScheduledAuditName = &v
34051	return s
34052}
34053
34054// SetTags sets the Tags field's value.
34055func (s *CreateScheduledAuditInput) SetTags(v []*Tag) *CreateScheduledAuditInput {
34056	s.Tags = v
34057	return s
34058}
34059
34060// SetTargetCheckNames sets the TargetCheckNames field's value.
34061func (s *CreateScheduledAuditInput) SetTargetCheckNames(v []*string) *CreateScheduledAuditInput {
34062	s.TargetCheckNames = v
34063	return s
34064}
34065
34066type CreateScheduledAuditOutput struct {
34067	_ struct{} `type:"structure"`
34068
34069	// The ARN of the scheduled audit.
34070	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
34071}
34072
34073// String returns the string representation.
34074//
34075// API parameter values that are decorated as "sensitive" in the API will not
34076// be included in the string output. The member name will be present, but the
34077// value will be replaced with "sensitive".
34078func (s CreateScheduledAuditOutput) String() string {
34079	return awsutil.Prettify(s)
34080}
34081
34082// GoString returns the string representation.
34083//
34084// API parameter values that are decorated as "sensitive" in the API will not
34085// be included in the string output. The member name will be present, but the
34086// value will be replaced with "sensitive".
34087func (s CreateScheduledAuditOutput) GoString() string {
34088	return s.String()
34089}
34090
34091// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
34092func (s *CreateScheduledAuditOutput) SetScheduledAuditArn(v string) *CreateScheduledAuditOutput {
34093	s.ScheduledAuditArn = &v
34094	return s
34095}
34096
34097type CreateSecurityProfileInput struct {
34098	_ struct{} `type:"structure"`
34099
34100	// Please use CreateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
34101	//
34102	// A list of metrics whose data is retained (stored). By default, data is retained
34103	// for any metric used in the profile's behaviors, but it is also retained for
34104	// any metric specified here. Can be used with custom metrics; cannot be used
34105	// with dimensions.
34106	//
34107	// Deprecated: Use additionalMetricsToRetainV2.
34108	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
34109
34110	// A list of metrics whose data is retained (stored). By default, data is retained
34111	// for any metric used in the profile's behaviors, but it is also retained for
34112	// any metric specified here. Can be used with custom metrics; cannot be used
34113	// with dimensions.
34114	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
34115
34116	// Specifies the destinations to which alerts are sent. (Alerts are always sent
34117	// to the console.) Alerts are generated when a device (thing) violates a behavior.
34118	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
34119
34120	// Specifies the behaviors that, when violated by a device (thing), cause an
34121	// alert.
34122	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
34123
34124	// A description of the security profile.
34125	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
34126
34127	// The name you are giving to the security profile.
34128	//
34129	// SecurityProfileName is a required field
34130	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
34131
34132	// Metadata that can be used to manage the security profile.
34133	Tags []*Tag `locationName:"tags" type:"list"`
34134}
34135
34136// String returns the string representation.
34137//
34138// API parameter values that are decorated as "sensitive" in the API will not
34139// be included in the string output. The member name will be present, but the
34140// value will be replaced with "sensitive".
34141func (s CreateSecurityProfileInput) String() string {
34142	return awsutil.Prettify(s)
34143}
34144
34145// GoString returns the string representation.
34146//
34147// API parameter values that are decorated as "sensitive" in the API will not
34148// be included in the string output. The member name will be present, but the
34149// value will be replaced with "sensitive".
34150func (s CreateSecurityProfileInput) GoString() string {
34151	return s.String()
34152}
34153
34154// Validate inspects the fields of the type to determine if they are valid.
34155func (s *CreateSecurityProfileInput) Validate() error {
34156	invalidParams := request.ErrInvalidParams{Context: "CreateSecurityProfileInput"}
34157	if s.SecurityProfileName == nil {
34158		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
34159	}
34160	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
34161		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
34162	}
34163	if s.AdditionalMetricsToRetainV2 != nil {
34164		for i, v := range s.AdditionalMetricsToRetainV2 {
34165			if v == nil {
34166				continue
34167			}
34168			if err := v.Validate(); err != nil {
34169				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
34170			}
34171		}
34172	}
34173	if s.AlertTargets != nil {
34174		for i, v := range s.AlertTargets {
34175			if v == nil {
34176				continue
34177			}
34178			if err := v.Validate(); err != nil {
34179				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
34180			}
34181		}
34182	}
34183	if s.Behaviors != nil {
34184		for i, v := range s.Behaviors {
34185			if v == nil {
34186				continue
34187			}
34188			if err := v.Validate(); err != nil {
34189				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
34190			}
34191		}
34192	}
34193	if s.Tags != nil {
34194		for i, v := range s.Tags {
34195			if v == nil {
34196				continue
34197			}
34198			if err := v.Validate(); err != nil {
34199				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
34200			}
34201		}
34202	}
34203
34204	if invalidParams.Len() > 0 {
34205		return invalidParams
34206	}
34207	return nil
34208}
34209
34210// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
34211func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *CreateSecurityProfileInput {
34212	s.AdditionalMetricsToRetain = v
34213	return s
34214}
34215
34216// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
34217func (s *CreateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *CreateSecurityProfileInput {
34218	s.AdditionalMetricsToRetainV2 = v
34219	return s
34220}
34221
34222// SetAlertTargets sets the AlertTargets field's value.
34223func (s *CreateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *CreateSecurityProfileInput {
34224	s.AlertTargets = v
34225	return s
34226}
34227
34228// SetBehaviors sets the Behaviors field's value.
34229func (s *CreateSecurityProfileInput) SetBehaviors(v []*Behavior) *CreateSecurityProfileInput {
34230	s.Behaviors = v
34231	return s
34232}
34233
34234// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
34235func (s *CreateSecurityProfileInput) SetSecurityProfileDescription(v string) *CreateSecurityProfileInput {
34236	s.SecurityProfileDescription = &v
34237	return s
34238}
34239
34240// SetSecurityProfileName sets the SecurityProfileName field's value.
34241func (s *CreateSecurityProfileInput) SetSecurityProfileName(v string) *CreateSecurityProfileInput {
34242	s.SecurityProfileName = &v
34243	return s
34244}
34245
34246// SetTags sets the Tags field's value.
34247func (s *CreateSecurityProfileInput) SetTags(v []*Tag) *CreateSecurityProfileInput {
34248	s.Tags = v
34249	return s
34250}
34251
34252type CreateSecurityProfileOutput struct {
34253	_ struct{} `type:"structure"`
34254
34255	// The ARN of the security profile.
34256	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
34257
34258	// The name you gave to the security profile.
34259	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
34260}
34261
34262// String returns the string representation.
34263//
34264// API parameter values that are decorated as "sensitive" in the API will not
34265// be included in the string output. The member name will be present, but the
34266// value will be replaced with "sensitive".
34267func (s CreateSecurityProfileOutput) String() string {
34268	return awsutil.Prettify(s)
34269}
34270
34271// GoString returns the string representation.
34272//
34273// API parameter values that are decorated as "sensitive" in the API will not
34274// be included in the string output. The member name will be present, but the
34275// value will be replaced with "sensitive".
34276func (s CreateSecurityProfileOutput) GoString() string {
34277	return s.String()
34278}
34279
34280// SetSecurityProfileArn sets the SecurityProfileArn field's value.
34281func (s *CreateSecurityProfileOutput) SetSecurityProfileArn(v string) *CreateSecurityProfileOutput {
34282	s.SecurityProfileArn = &v
34283	return s
34284}
34285
34286// SetSecurityProfileName sets the SecurityProfileName field's value.
34287func (s *CreateSecurityProfileOutput) SetSecurityProfileName(v string) *CreateSecurityProfileOutput {
34288	s.SecurityProfileName = &v
34289	return s
34290}
34291
34292type CreateStreamInput struct {
34293	_ struct{} `type:"structure"`
34294
34295	// A description of the stream.
34296	Description *string `locationName:"description" type:"string"`
34297
34298	// The files to stream.
34299	//
34300	// Files is a required field
34301	Files []*StreamFile `locationName:"files" min:"1" type:"list" required:"true"`
34302
34303	// An IAM role that allows the IoT service principal assumes to access your
34304	// S3 files.
34305	//
34306	// RoleArn is a required field
34307	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
34308
34309	// The stream ID.
34310	//
34311	// StreamId is a required field
34312	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
34313
34314	// Metadata which can be used to manage streams.
34315	Tags []*Tag `locationName:"tags" type:"list"`
34316}
34317
34318// String returns the string representation.
34319//
34320// API parameter values that are decorated as "sensitive" in the API will not
34321// be included in the string output. The member name will be present, but the
34322// value will be replaced with "sensitive".
34323func (s CreateStreamInput) String() string {
34324	return awsutil.Prettify(s)
34325}
34326
34327// GoString returns the string representation.
34328//
34329// API parameter values that are decorated as "sensitive" in the API will not
34330// be included in the string output. The member name will be present, but the
34331// value will be replaced with "sensitive".
34332func (s CreateStreamInput) GoString() string {
34333	return s.String()
34334}
34335
34336// Validate inspects the fields of the type to determine if they are valid.
34337func (s *CreateStreamInput) Validate() error {
34338	invalidParams := request.ErrInvalidParams{Context: "CreateStreamInput"}
34339	if s.Files == nil {
34340		invalidParams.Add(request.NewErrParamRequired("Files"))
34341	}
34342	if s.Files != nil && len(s.Files) < 1 {
34343		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
34344	}
34345	if s.RoleArn == nil {
34346		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
34347	}
34348	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
34349		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
34350	}
34351	if s.StreamId == nil {
34352		invalidParams.Add(request.NewErrParamRequired("StreamId"))
34353	}
34354	if s.StreamId != nil && len(*s.StreamId) < 1 {
34355		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
34356	}
34357	if s.Files != nil {
34358		for i, v := range s.Files {
34359			if v == nil {
34360				continue
34361			}
34362			if err := v.Validate(); err != nil {
34363				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
34364			}
34365		}
34366	}
34367	if s.Tags != nil {
34368		for i, v := range s.Tags {
34369			if v == nil {
34370				continue
34371			}
34372			if err := v.Validate(); err != nil {
34373				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
34374			}
34375		}
34376	}
34377
34378	if invalidParams.Len() > 0 {
34379		return invalidParams
34380	}
34381	return nil
34382}
34383
34384// SetDescription sets the Description field's value.
34385func (s *CreateStreamInput) SetDescription(v string) *CreateStreamInput {
34386	s.Description = &v
34387	return s
34388}
34389
34390// SetFiles sets the Files field's value.
34391func (s *CreateStreamInput) SetFiles(v []*StreamFile) *CreateStreamInput {
34392	s.Files = v
34393	return s
34394}
34395
34396// SetRoleArn sets the RoleArn field's value.
34397func (s *CreateStreamInput) SetRoleArn(v string) *CreateStreamInput {
34398	s.RoleArn = &v
34399	return s
34400}
34401
34402// SetStreamId sets the StreamId field's value.
34403func (s *CreateStreamInput) SetStreamId(v string) *CreateStreamInput {
34404	s.StreamId = &v
34405	return s
34406}
34407
34408// SetTags sets the Tags field's value.
34409func (s *CreateStreamInput) SetTags(v []*Tag) *CreateStreamInput {
34410	s.Tags = v
34411	return s
34412}
34413
34414type CreateStreamOutput struct {
34415	_ struct{} `type:"structure"`
34416
34417	// A description of the stream.
34418	Description *string `locationName:"description" type:"string"`
34419
34420	// The stream ARN.
34421	StreamArn *string `locationName:"streamArn" type:"string"`
34422
34423	// The stream ID.
34424	StreamId *string `locationName:"streamId" min:"1" type:"string"`
34425
34426	// The version of the stream.
34427	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
34428}
34429
34430// String returns the string representation.
34431//
34432// API parameter values that are decorated as "sensitive" in the API will not
34433// be included in the string output. The member name will be present, but the
34434// value will be replaced with "sensitive".
34435func (s CreateStreamOutput) String() string {
34436	return awsutil.Prettify(s)
34437}
34438
34439// GoString returns the string representation.
34440//
34441// API parameter values that are decorated as "sensitive" in the API will not
34442// be included in the string output. The member name will be present, but the
34443// value will be replaced with "sensitive".
34444func (s CreateStreamOutput) GoString() string {
34445	return s.String()
34446}
34447
34448// SetDescription sets the Description field's value.
34449func (s *CreateStreamOutput) SetDescription(v string) *CreateStreamOutput {
34450	s.Description = &v
34451	return s
34452}
34453
34454// SetStreamArn sets the StreamArn field's value.
34455func (s *CreateStreamOutput) SetStreamArn(v string) *CreateStreamOutput {
34456	s.StreamArn = &v
34457	return s
34458}
34459
34460// SetStreamId sets the StreamId field's value.
34461func (s *CreateStreamOutput) SetStreamId(v string) *CreateStreamOutput {
34462	s.StreamId = &v
34463	return s
34464}
34465
34466// SetStreamVersion sets the StreamVersion field's value.
34467func (s *CreateStreamOutput) SetStreamVersion(v int64) *CreateStreamOutput {
34468	s.StreamVersion = &v
34469	return s
34470}
34471
34472type CreateThingGroupInput struct {
34473	_ struct{} `type:"structure"`
34474
34475	// The name of the parent thing group.
34476	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
34477
34478	// Metadata which can be used to manage the thing group.
34479	Tags []*Tag `locationName:"tags" type:"list"`
34480
34481	// The thing group name to create.
34482	//
34483	// ThingGroupName is a required field
34484	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
34485
34486	// The thing group properties.
34487	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
34488}
34489
34490// String returns the string representation.
34491//
34492// API parameter values that are decorated as "sensitive" in the API will not
34493// be included in the string output. The member name will be present, but the
34494// value will be replaced with "sensitive".
34495func (s CreateThingGroupInput) String() string {
34496	return awsutil.Prettify(s)
34497}
34498
34499// GoString returns the string representation.
34500//
34501// API parameter values that are decorated as "sensitive" in the API will not
34502// be included in the string output. The member name will be present, but the
34503// value will be replaced with "sensitive".
34504func (s CreateThingGroupInput) GoString() string {
34505	return s.String()
34506}
34507
34508// Validate inspects the fields of the type to determine if they are valid.
34509func (s *CreateThingGroupInput) Validate() error {
34510	invalidParams := request.ErrInvalidParams{Context: "CreateThingGroupInput"}
34511	if s.ParentGroupName != nil && len(*s.ParentGroupName) < 1 {
34512		invalidParams.Add(request.NewErrParamMinLen("ParentGroupName", 1))
34513	}
34514	if s.ThingGroupName == nil {
34515		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
34516	}
34517	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
34518		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
34519	}
34520	if s.Tags != nil {
34521		for i, v := range s.Tags {
34522			if v == nil {
34523				continue
34524			}
34525			if err := v.Validate(); err != nil {
34526				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
34527			}
34528		}
34529	}
34530
34531	if invalidParams.Len() > 0 {
34532		return invalidParams
34533	}
34534	return nil
34535}
34536
34537// SetParentGroupName sets the ParentGroupName field's value.
34538func (s *CreateThingGroupInput) SetParentGroupName(v string) *CreateThingGroupInput {
34539	s.ParentGroupName = &v
34540	return s
34541}
34542
34543// SetTags sets the Tags field's value.
34544func (s *CreateThingGroupInput) SetTags(v []*Tag) *CreateThingGroupInput {
34545	s.Tags = v
34546	return s
34547}
34548
34549// SetThingGroupName sets the ThingGroupName field's value.
34550func (s *CreateThingGroupInput) SetThingGroupName(v string) *CreateThingGroupInput {
34551	s.ThingGroupName = &v
34552	return s
34553}
34554
34555// SetThingGroupProperties sets the ThingGroupProperties field's value.
34556func (s *CreateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *CreateThingGroupInput {
34557	s.ThingGroupProperties = v
34558	return s
34559}
34560
34561type CreateThingGroupOutput struct {
34562	_ struct{} `type:"structure"`
34563
34564	// The thing group ARN.
34565	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
34566
34567	// The thing group ID.
34568	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
34569
34570	// The thing group name.
34571	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
34572}
34573
34574// String returns the string representation.
34575//
34576// API parameter values that are decorated as "sensitive" in the API will not
34577// be included in the string output. The member name will be present, but the
34578// value will be replaced with "sensitive".
34579func (s CreateThingGroupOutput) String() string {
34580	return awsutil.Prettify(s)
34581}
34582
34583// GoString returns the string representation.
34584//
34585// API parameter values that are decorated as "sensitive" in the API will not
34586// be included in the string output. The member name will be present, but the
34587// value will be replaced with "sensitive".
34588func (s CreateThingGroupOutput) GoString() string {
34589	return s.String()
34590}
34591
34592// SetThingGroupArn sets the ThingGroupArn field's value.
34593func (s *CreateThingGroupOutput) SetThingGroupArn(v string) *CreateThingGroupOutput {
34594	s.ThingGroupArn = &v
34595	return s
34596}
34597
34598// SetThingGroupId sets the ThingGroupId field's value.
34599func (s *CreateThingGroupOutput) SetThingGroupId(v string) *CreateThingGroupOutput {
34600	s.ThingGroupId = &v
34601	return s
34602}
34603
34604// SetThingGroupName sets the ThingGroupName field's value.
34605func (s *CreateThingGroupOutput) SetThingGroupName(v string) *CreateThingGroupOutput {
34606	s.ThingGroupName = &v
34607	return s
34608}
34609
34610// The input for the CreateThing operation.
34611type CreateThingInput struct {
34612	_ struct{} `type:"structure"`
34613
34614	// The attribute payload, which consists of up to three name/value pairs in
34615	// a JSON document. For example:
34616	//
34617	// {\"attributes\":{\"string1\":\"string2\"}}
34618	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
34619
34620	// The name of the billing group the thing will be added to.
34621	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
34622
34623	// The name of the thing to create.
34624	//
34625	// You can't change a thing's name after you create it. To change a thing's
34626	// name, you must create a new thing, give it the new name, and then delete
34627	// the old thing.
34628	//
34629	// ThingName is a required field
34630	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
34631
34632	// The name of the thing type associated with the new thing.
34633	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
34634}
34635
34636// String returns the string representation.
34637//
34638// API parameter values that are decorated as "sensitive" in the API will not
34639// be included in the string output. The member name will be present, but the
34640// value will be replaced with "sensitive".
34641func (s CreateThingInput) String() string {
34642	return awsutil.Prettify(s)
34643}
34644
34645// GoString returns the string representation.
34646//
34647// API parameter values that are decorated as "sensitive" in the API will not
34648// be included in the string output. The member name will be present, but the
34649// value will be replaced with "sensitive".
34650func (s CreateThingInput) GoString() string {
34651	return s.String()
34652}
34653
34654// Validate inspects the fields of the type to determine if they are valid.
34655func (s *CreateThingInput) Validate() error {
34656	invalidParams := request.ErrInvalidParams{Context: "CreateThingInput"}
34657	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
34658		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
34659	}
34660	if s.ThingName == nil {
34661		invalidParams.Add(request.NewErrParamRequired("ThingName"))
34662	}
34663	if s.ThingName != nil && len(*s.ThingName) < 1 {
34664		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
34665	}
34666	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
34667		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
34668	}
34669
34670	if invalidParams.Len() > 0 {
34671		return invalidParams
34672	}
34673	return nil
34674}
34675
34676// SetAttributePayload sets the AttributePayload field's value.
34677func (s *CreateThingInput) SetAttributePayload(v *AttributePayload) *CreateThingInput {
34678	s.AttributePayload = v
34679	return s
34680}
34681
34682// SetBillingGroupName sets the BillingGroupName field's value.
34683func (s *CreateThingInput) SetBillingGroupName(v string) *CreateThingInput {
34684	s.BillingGroupName = &v
34685	return s
34686}
34687
34688// SetThingName sets the ThingName field's value.
34689func (s *CreateThingInput) SetThingName(v string) *CreateThingInput {
34690	s.ThingName = &v
34691	return s
34692}
34693
34694// SetThingTypeName sets the ThingTypeName field's value.
34695func (s *CreateThingInput) SetThingTypeName(v string) *CreateThingInput {
34696	s.ThingTypeName = &v
34697	return s
34698}
34699
34700// The output of the CreateThing operation.
34701type CreateThingOutput struct {
34702	_ struct{} `type:"structure"`
34703
34704	// The ARN of the new thing.
34705	ThingArn *string `locationName:"thingArn" type:"string"`
34706
34707	// The thing ID.
34708	ThingId *string `locationName:"thingId" type:"string"`
34709
34710	// The name of the new thing.
34711	ThingName *string `locationName:"thingName" min:"1" type:"string"`
34712}
34713
34714// String returns the string representation.
34715//
34716// API parameter values that are decorated as "sensitive" in the API will not
34717// be included in the string output. The member name will be present, but the
34718// value will be replaced with "sensitive".
34719func (s CreateThingOutput) String() string {
34720	return awsutil.Prettify(s)
34721}
34722
34723// GoString returns the string representation.
34724//
34725// API parameter values that are decorated as "sensitive" in the API will not
34726// be included in the string output. The member name will be present, but the
34727// value will be replaced with "sensitive".
34728func (s CreateThingOutput) GoString() string {
34729	return s.String()
34730}
34731
34732// SetThingArn sets the ThingArn field's value.
34733func (s *CreateThingOutput) SetThingArn(v string) *CreateThingOutput {
34734	s.ThingArn = &v
34735	return s
34736}
34737
34738// SetThingId sets the ThingId field's value.
34739func (s *CreateThingOutput) SetThingId(v string) *CreateThingOutput {
34740	s.ThingId = &v
34741	return s
34742}
34743
34744// SetThingName sets the ThingName field's value.
34745func (s *CreateThingOutput) SetThingName(v string) *CreateThingOutput {
34746	s.ThingName = &v
34747	return s
34748}
34749
34750// The input for the CreateThingType operation.
34751type CreateThingTypeInput struct {
34752	_ struct{} `type:"structure"`
34753
34754	// Metadata which can be used to manage the thing type.
34755	Tags []*Tag `locationName:"tags" type:"list"`
34756
34757	// The name of the thing type.
34758	//
34759	// ThingTypeName is a required field
34760	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
34761
34762	// The ThingTypeProperties for the thing type to create. It contains information
34763	// about the new thing type including a description, and a list of searchable
34764	// thing attribute names.
34765	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
34766}
34767
34768// String returns the string representation.
34769//
34770// API parameter values that are decorated as "sensitive" in the API will not
34771// be included in the string output. The member name will be present, but the
34772// value will be replaced with "sensitive".
34773func (s CreateThingTypeInput) String() string {
34774	return awsutil.Prettify(s)
34775}
34776
34777// GoString returns the string representation.
34778//
34779// API parameter values that are decorated as "sensitive" in the API will not
34780// be included in the string output. The member name will be present, but the
34781// value will be replaced with "sensitive".
34782func (s CreateThingTypeInput) GoString() string {
34783	return s.String()
34784}
34785
34786// Validate inspects the fields of the type to determine if they are valid.
34787func (s *CreateThingTypeInput) Validate() error {
34788	invalidParams := request.ErrInvalidParams{Context: "CreateThingTypeInput"}
34789	if s.ThingTypeName == nil {
34790		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
34791	}
34792	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
34793		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
34794	}
34795	if s.Tags != nil {
34796		for i, v := range s.Tags {
34797			if v == nil {
34798				continue
34799			}
34800			if err := v.Validate(); err != nil {
34801				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
34802			}
34803		}
34804	}
34805
34806	if invalidParams.Len() > 0 {
34807		return invalidParams
34808	}
34809	return nil
34810}
34811
34812// SetTags sets the Tags field's value.
34813func (s *CreateThingTypeInput) SetTags(v []*Tag) *CreateThingTypeInput {
34814	s.Tags = v
34815	return s
34816}
34817
34818// SetThingTypeName sets the ThingTypeName field's value.
34819func (s *CreateThingTypeInput) SetThingTypeName(v string) *CreateThingTypeInput {
34820	s.ThingTypeName = &v
34821	return s
34822}
34823
34824// SetThingTypeProperties sets the ThingTypeProperties field's value.
34825func (s *CreateThingTypeInput) SetThingTypeProperties(v *ThingTypeProperties) *CreateThingTypeInput {
34826	s.ThingTypeProperties = v
34827	return s
34828}
34829
34830// The output of the CreateThingType operation.
34831type CreateThingTypeOutput struct {
34832	_ struct{} `type:"structure"`
34833
34834	// The Amazon Resource Name (ARN) of the thing type.
34835	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
34836
34837	// The thing type ID.
34838	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
34839
34840	// The name of the thing type.
34841	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
34842}
34843
34844// String returns the string representation.
34845//
34846// API parameter values that are decorated as "sensitive" in the API will not
34847// be included in the string output. The member name will be present, but the
34848// value will be replaced with "sensitive".
34849func (s CreateThingTypeOutput) String() string {
34850	return awsutil.Prettify(s)
34851}
34852
34853// GoString returns the string representation.
34854//
34855// API parameter values that are decorated as "sensitive" in the API will not
34856// be included in the string output. The member name will be present, but the
34857// value will be replaced with "sensitive".
34858func (s CreateThingTypeOutput) GoString() string {
34859	return s.String()
34860}
34861
34862// SetThingTypeArn sets the ThingTypeArn field's value.
34863func (s *CreateThingTypeOutput) SetThingTypeArn(v string) *CreateThingTypeOutput {
34864	s.ThingTypeArn = &v
34865	return s
34866}
34867
34868// SetThingTypeId sets the ThingTypeId field's value.
34869func (s *CreateThingTypeOutput) SetThingTypeId(v string) *CreateThingTypeOutput {
34870	s.ThingTypeId = &v
34871	return s
34872}
34873
34874// SetThingTypeName sets the ThingTypeName field's value.
34875func (s *CreateThingTypeOutput) SetThingTypeName(v string) *CreateThingTypeOutput {
34876	s.ThingTypeName = &v
34877	return s
34878}
34879
34880type CreateTopicRuleDestinationInput struct {
34881	_ struct{} `type:"structure"`
34882
34883	// The topic rule destination configuration.
34884	//
34885	// DestinationConfiguration is a required field
34886	DestinationConfiguration *TopicRuleDestinationConfiguration `locationName:"destinationConfiguration" type:"structure" required:"true"`
34887}
34888
34889// String returns the string representation.
34890//
34891// API parameter values that are decorated as "sensitive" in the API will not
34892// be included in the string output. The member name will be present, but the
34893// value will be replaced with "sensitive".
34894func (s CreateTopicRuleDestinationInput) String() string {
34895	return awsutil.Prettify(s)
34896}
34897
34898// GoString returns the string representation.
34899//
34900// API parameter values that are decorated as "sensitive" in the API will not
34901// be included in the string output. The member name will be present, but the
34902// value will be replaced with "sensitive".
34903func (s CreateTopicRuleDestinationInput) GoString() string {
34904	return s.String()
34905}
34906
34907// Validate inspects the fields of the type to determine if they are valid.
34908func (s *CreateTopicRuleDestinationInput) Validate() error {
34909	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleDestinationInput"}
34910	if s.DestinationConfiguration == nil {
34911		invalidParams.Add(request.NewErrParamRequired("DestinationConfiguration"))
34912	}
34913	if s.DestinationConfiguration != nil {
34914		if err := s.DestinationConfiguration.Validate(); err != nil {
34915			invalidParams.AddNested("DestinationConfiguration", err.(request.ErrInvalidParams))
34916		}
34917	}
34918
34919	if invalidParams.Len() > 0 {
34920		return invalidParams
34921	}
34922	return nil
34923}
34924
34925// SetDestinationConfiguration sets the DestinationConfiguration field's value.
34926func (s *CreateTopicRuleDestinationInput) SetDestinationConfiguration(v *TopicRuleDestinationConfiguration) *CreateTopicRuleDestinationInput {
34927	s.DestinationConfiguration = v
34928	return s
34929}
34930
34931type CreateTopicRuleDestinationOutput struct {
34932	_ struct{} `type:"structure"`
34933
34934	// The topic rule destination.
34935	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
34936}
34937
34938// String returns the string representation.
34939//
34940// API parameter values that are decorated as "sensitive" in the API will not
34941// be included in the string output. The member name will be present, but the
34942// value will be replaced with "sensitive".
34943func (s CreateTopicRuleDestinationOutput) String() string {
34944	return awsutil.Prettify(s)
34945}
34946
34947// GoString returns the string representation.
34948//
34949// API parameter values that are decorated as "sensitive" in the API will not
34950// be included in the string output. The member name will be present, but the
34951// value will be replaced with "sensitive".
34952func (s CreateTopicRuleDestinationOutput) GoString() string {
34953	return s.String()
34954}
34955
34956// SetTopicRuleDestination sets the TopicRuleDestination field's value.
34957func (s *CreateTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *CreateTopicRuleDestinationOutput {
34958	s.TopicRuleDestination = v
34959	return s
34960}
34961
34962// The input for the CreateTopicRule operation.
34963type CreateTopicRuleInput struct {
34964	_ struct{} `type:"structure" payload:"TopicRulePayload"`
34965
34966	// The name of the rule.
34967	//
34968	// RuleName is a required field
34969	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
34970
34971	// Metadata which can be used to manage the topic rule.
34972	//
34973	// For URI Request parameters use format: ...key1=value1&key2=value2...
34974	//
34975	// For the CLI command-line parameter use format: --tags "key1=value1&key2=value2..."
34976	//
34977	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
34978	Tags *string `location:"header" locationName:"x-amz-tagging" type:"string"`
34979
34980	// The rule payload.
34981	//
34982	// TopicRulePayload is a required field
34983	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
34984}
34985
34986// String returns the string representation.
34987//
34988// API parameter values that are decorated as "sensitive" in the API will not
34989// be included in the string output. The member name will be present, but the
34990// value will be replaced with "sensitive".
34991func (s CreateTopicRuleInput) String() string {
34992	return awsutil.Prettify(s)
34993}
34994
34995// GoString returns the string representation.
34996//
34997// API parameter values that are decorated as "sensitive" in the API will not
34998// be included in the string output. The member name will be present, but the
34999// value will be replaced with "sensitive".
35000func (s CreateTopicRuleInput) GoString() string {
35001	return s.String()
35002}
35003
35004// Validate inspects the fields of the type to determine if they are valid.
35005func (s *CreateTopicRuleInput) Validate() error {
35006	invalidParams := request.ErrInvalidParams{Context: "CreateTopicRuleInput"}
35007	if s.RuleName == nil {
35008		invalidParams.Add(request.NewErrParamRequired("RuleName"))
35009	}
35010	if s.RuleName != nil && len(*s.RuleName) < 1 {
35011		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
35012	}
35013	if s.TopicRulePayload == nil {
35014		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
35015	}
35016	if s.TopicRulePayload != nil {
35017		if err := s.TopicRulePayload.Validate(); err != nil {
35018			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
35019		}
35020	}
35021
35022	if invalidParams.Len() > 0 {
35023		return invalidParams
35024	}
35025	return nil
35026}
35027
35028// SetRuleName sets the RuleName field's value.
35029func (s *CreateTopicRuleInput) SetRuleName(v string) *CreateTopicRuleInput {
35030	s.RuleName = &v
35031	return s
35032}
35033
35034// SetTags sets the Tags field's value.
35035func (s *CreateTopicRuleInput) SetTags(v string) *CreateTopicRuleInput {
35036	s.Tags = &v
35037	return s
35038}
35039
35040// SetTopicRulePayload sets the TopicRulePayload field's value.
35041func (s *CreateTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *CreateTopicRuleInput {
35042	s.TopicRulePayload = v
35043	return s
35044}
35045
35046type CreateTopicRuleOutput struct {
35047	_ struct{} `type:"structure"`
35048}
35049
35050// String returns the string representation.
35051//
35052// API parameter values that are decorated as "sensitive" in the API will not
35053// be included in the string output. The member name will be present, but the
35054// value will be replaced with "sensitive".
35055func (s CreateTopicRuleOutput) String() string {
35056	return awsutil.Prettify(s)
35057}
35058
35059// GoString returns the string representation.
35060//
35061// API parameter values that are decorated as "sensitive" in the API will not
35062// be included in the string output. The member name will be present, but the
35063// value will be replaced with "sensitive".
35064func (s CreateTopicRuleOutput) GoString() string {
35065	return s.String()
35066}
35067
35068// Describes a custom method used to code sign a file.
35069type CustomCodeSigning struct {
35070	_ struct{} `type:"structure"`
35071
35072	// The certificate chain.
35073	CertificateChain *CodeSigningCertificateChain `locationName:"certificateChain" type:"structure"`
35074
35075	// The hash algorithm used to code sign the file.
35076	HashAlgorithm *string `locationName:"hashAlgorithm" type:"string"`
35077
35078	// The signature for the file.
35079	Signature *CodeSigningSignature `locationName:"signature" type:"structure"`
35080
35081	// The signature algorithm used to code sign the file.
35082	SignatureAlgorithm *string `locationName:"signatureAlgorithm" type:"string"`
35083}
35084
35085// String returns the string representation.
35086//
35087// API parameter values that are decorated as "sensitive" in the API will not
35088// be included in the string output. The member name will be present, but the
35089// value will be replaced with "sensitive".
35090func (s CustomCodeSigning) String() string {
35091	return awsutil.Prettify(s)
35092}
35093
35094// GoString returns the string representation.
35095//
35096// API parameter values that are decorated as "sensitive" in the API will not
35097// be included in the string output. The member name will be present, but the
35098// value will be replaced with "sensitive".
35099func (s CustomCodeSigning) GoString() string {
35100	return s.String()
35101}
35102
35103// SetCertificateChain sets the CertificateChain field's value.
35104func (s *CustomCodeSigning) SetCertificateChain(v *CodeSigningCertificateChain) *CustomCodeSigning {
35105	s.CertificateChain = v
35106	return s
35107}
35108
35109// SetHashAlgorithm sets the HashAlgorithm field's value.
35110func (s *CustomCodeSigning) SetHashAlgorithm(v string) *CustomCodeSigning {
35111	s.HashAlgorithm = &v
35112	return s
35113}
35114
35115// SetSignature sets the Signature field's value.
35116func (s *CustomCodeSigning) SetSignature(v *CodeSigningSignature) *CustomCodeSigning {
35117	s.Signature = v
35118	return s
35119}
35120
35121// SetSignatureAlgorithm sets the SignatureAlgorithm field's value.
35122func (s *CustomCodeSigning) SetSignatureAlgorithm(v string) *CustomCodeSigning {
35123	s.SignatureAlgorithm = &v
35124	return s
35125}
35126
35127type DeleteAccountAuditConfigurationInput struct {
35128	_ struct{} `type:"structure" nopayload:"true"`
35129
35130	// If true, all scheduled audits are deleted.
35131	DeleteScheduledAudits *bool `location:"querystring" locationName:"deleteScheduledAudits" type:"boolean"`
35132}
35133
35134// String returns the string representation.
35135//
35136// API parameter values that are decorated as "sensitive" in the API will not
35137// be included in the string output. The member name will be present, but the
35138// value will be replaced with "sensitive".
35139func (s DeleteAccountAuditConfigurationInput) String() string {
35140	return awsutil.Prettify(s)
35141}
35142
35143// GoString returns the string representation.
35144//
35145// API parameter values that are decorated as "sensitive" in the API will not
35146// be included in the string output. The member name will be present, but the
35147// value will be replaced with "sensitive".
35148func (s DeleteAccountAuditConfigurationInput) GoString() string {
35149	return s.String()
35150}
35151
35152// SetDeleteScheduledAudits sets the DeleteScheduledAudits field's value.
35153func (s *DeleteAccountAuditConfigurationInput) SetDeleteScheduledAudits(v bool) *DeleteAccountAuditConfigurationInput {
35154	s.DeleteScheduledAudits = &v
35155	return s
35156}
35157
35158type DeleteAccountAuditConfigurationOutput struct {
35159	_ struct{} `type:"structure"`
35160}
35161
35162// String returns the string representation.
35163//
35164// API parameter values that are decorated as "sensitive" in the API will not
35165// be included in the string output. The member name will be present, but the
35166// value will be replaced with "sensitive".
35167func (s DeleteAccountAuditConfigurationOutput) String() string {
35168	return awsutil.Prettify(s)
35169}
35170
35171// GoString returns the string representation.
35172//
35173// API parameter values that are decorated as "sensitive" in the API will not
35174// be included in the string output. The member name will be present, but the
35175// value will be replaced with "sensitive".
35176func (s DeleteAccountAuditConfigurationOutput) GoString() string {
35177	return s.String()
35178}
35179
35180type DeleteAuditSuppressionInput struct {
35181	_ struct{} `type:"structure"`
35182
35183	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
35184	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
35185	// to select which checks are enabled.)
35186	//
35187	// CheckName is a required field
35188	CheckName *string `locationName:"checkName" type:"string" required:"true"`
35189
35190	// Information that identifies the noncompliant resource.
35191	//
35192	// ResourceIdentifier is a required field
35193	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
35194}
35195
35196// String returns the string representation.
35197//
35198// API parameter values that are decorated as "sensitive" in the API will not
35199// be included in the string output. The member name will be present, but the
35200// value will be replaced with "sensitive".
35201func (s DeleteAuditSuppressionInput) String() string {
35202	return awsutil.Prettify(s)
35203}
35204
35205// GoString returns the string representation.
35206//
35207// API parameter values that are decorated as "sensitive" in the API will not
35208// be included in the string output. The member name will be present, but the
35209// value will be replaced with "sensitive".
35210func (s DeleteAuditSuppressionInput) GoString() string {
35211	return s.String()
35212}
35213
35214// Validate inspects the fields of the type to determine if they are valid.
35215func (s *DeleteAuditSuppressionInput) Validate() error {
35216	invalidParams := request.ErrInvalidParams{Context: "DeleteAuditSuppressionInput"}
35217	if s.CheckName == nil {
35218		invalidParams.Add(request.NewErrParamRequired("CheckName"))
35219	}
35220	if s.ResourceIdentifier == nil {
35221		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
35222	}
35223	if s.ResourceIdentifier != nil {
35224		if err := s.ResourceIdentifier.Validate(); err != nil {
35225			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
35226		}
35227	}
35228
35229	if invalidParams.Len() > 0 {
35230		return invalidParams
35231	}
35232	return nil
35233}
35234
35235// SetCheckName sets the CheckName field's value.
35236func (s *DeleteAuditSuppressionInput) SetCheckName(v string) *DeleteAuditSuppressionInput {
35237	s.CheckName = &v
35238	return s
35239}
35240
35241// SetResourceIdentifier sets the ResourceIdentifier field's value.
35242func (s *DeleteAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *DeleteAuditSuppressionInput {
35243	s.ResourceIdentifier = v
35244	return s
35245}
35246
35247type DeleteAuditSuppressionOutput struct {
35248	_ struct{} `type:"structure"`
35249}
35250
35251// String returns the string representation.
35252//
35253// API parameter values that are decorated as "sensitive" in the API will not
35254// be included in the string output. The member name will be present, but the
35255// value will be replaced with "sensitive".
35256func (s DeleteAuditSuppressionOutput) String() string {
35257	return awsutil.Prettify(s)
35258}
35259
35260// GoString returns the string representation.
35261//
35262// API parameter values that are decorated as "sensitive" in the API will not
35263// be included in the string output. The member name will be present, but the
35264// value will be replaced with "sensitive".
35265func (s DeleteAuditSuppressionOutput) GoString() string {
35266	return s.String()
35267}
35268
35269type DeleteAuthorizerInput struct {
35270	_ struct{} `type:"structure" nopayload:"true"`
35271
35272	// The name of the authorizer to delete.
35273	//
35274	// AuthorizerName is a required field
35275	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
35276}
35277
35278// String returns the string representation.
35279//
35280// API parameter values that are decorated as "sensitive" in the API will not
35281// be included in the string output. The member name will be present, but the
35282// value will be replaced with "sensitive".
35283func (s DeleteAuthorizerInput) String() string {
35284	return awsutil.Prettify(s)
35285}
35286
35287// GoString returns the string representation.
35288//
35289// API parameter values that are decorated as "sensitive" in the API will not
35290// be included in the string output. The member name will be present, but the
35291// value will be replaced with "sensitive".
35292func (s DeleteAuthorizerInput) GoString() string {
35293	return s.String()
35294}
35295
35296// Validate inspects the fields of the type to determine if they are valid.
35297func (s *DeleteAuthorizerInput) Validate() error {
35298	invalidParams := request.ErrInvalidParams{Context: "DeleteAuthorizerInput"}
35299	if s.AuthorizerName == nil {
35300		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
35301	}
35302	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
35303		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
35304	}
35305
35306	if invalidParams.Len() > 0 {
35307		return invalidParams
35308	}
35309	return nil
35310}
35311
35312// SetAuthorizerName sets the AuthorizerName field's value.
35313func (s *DeleteAuthorizerInput) SetAuthorizerName(v string) *DeleteAuthorizerInput {
35314	s.AuthorizerName = &v
35315	return s
35316}
35317
35318type DeleteAuthorizerOutput struct {
35319	_ struct{} `type:"structure"`
35320}
35321
35322// String returns the string representation.
35323//
35324// API parameter values that are decorated as "sensitive" in the API will not
35325// be included in the string output. The member name will be present, but the
35326// value will be replaced with "sensitive".
35327func (s DeleteAuthorizerOutput) String() string {
35328	return awsutil.Prettify(s)
35329}
35330
35331// GoString returns the string representation.
35332//
35333// API parameter values that are decorated as "sensitive" in the API will not
35334// be included in the string output. The member name will be present, but the
35335// value will be replaced with "sensitive".
35336func (s DeleteAuthorizerOutput) GoString() string {
35337	return s.String()
35338}
35339
35340type DeleteBillingGroupInput struct {
35341	_ struct{} `type:"structure" nopayload:"true"`
35342
35343	// The name of the billing group.
35344	//
35345	// BillingGroupName is a required field
35346	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
35347
35348	// The expected version of the billing group. If the version of the billing
35349	// group does not match the expected version specified in the request, the DeleteBillingGroup
35350	// request is rejected with a VersionConflictException.
35351	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
35352}
35353
35354// String returns the string representation.
35355//
35356// API parameter values that are decorated as "sensitive" in the API will not
35357// be included in the string output. The member name will be present, but the
35358// value will be replaced with "sensitive".
35359func (s DeleteBillingGroupInput) String() string {
35360	return awsutil.Prettify(s)
35361}
35362
35363// GoString returns the string representation.
35364//
35365// API parameter values that are decorated as "sensitive" in the API will not
35366// be included in the string output. The member name will be present, but the
35367// value will be replaced with "sensitive".
35368func (s DeleteBillingGroupInput) GoString() string {
35369	return s.String()
35370}
35371
35372// Validate inspects the fields of the type to determine if they are valid.
35373func (s *DeleteBillingGroupInput) Validate() error {
35374	invalidParams := request.ErrInvalidParams{Context: "DeleteBillingGroupInput"}
35375	if s.BillingGroupName == nil {
35376		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
35377	}
35378	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
35379		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
35380	}
35381
35382	if invalidParams.Len() > 0 {
35383		return invalidParams
35384	}
35385	return nil
35386}
35387
35388// SetBillingGroupName sets the BillingGroupName field's value.
35389func (s *DeleteBillingGroupInput) SetBillingGroupName(v string) *DeleteBillingGroupInput {
35390	s.BillingGroupName = &v
35391	return s
35392}
35393
35394// SetExpectedVersion sets the ExpectedVersion field's value.
35395func (s *DeleteBillingGroupInput) SetExpectedVersion(v int64) *DeleteBillingGroupInput {
35396	s.ExpectedVersion = &v
35397	return s
35398}
35399
35400type DeleteBillingGroupOutput struct {
35401	_ struct{} `type:"structure"`
35402}
35403
35404// String returns the string representation.
35405//
35406// API parameter values that are decorated as "sensitive" in the API will not
35407// be included in the string output. The member name will be present, but the
35408// value will be replaced with "sensitive".
35409func (s DeleteBillingGroupOutput) String() string {
35410	return awsutil.Prettify(s)
35411}
35412
35413// GoString returns the string representation.
35414//
35415// API parameter values that are decorated as "sensitive" in the API will not
35416// be included in the string output. The member name will be present, but the
35417// value will be replaced with "sensitive".
35418func (s DeleteBillingGroupOutput) GoString() string {
35419	return s.String()
35420}
35421
35422// Input for the DeleteCACertificate operation.
35423type DeleteCACertificateInput struct {
35424	_ struct{} `type:"structure" nopayload:"true"`
35425
35426	// The ID of the certificate to delete. (The last part of the certificate ARN
35427	// contains the certificate ID.)
35428	//
35429	// CertificateId is a required field
35430	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
35431}
35432
35433// String returns the string representation.
35434//
35435// API parameter values that are decorated as "sensitive" in the API will not
35436// be included in the string output. The member name will be present, but the
35437// value will be replaced with "sensitive".
35438func (s DeleteCACertificateInput) String() string {
35439	return awsutil.Prettify(s)
35440}
35441
35442// GoString returns the string representation.
35443//
35444// API parameter values that are decorated as "sensitive" in the API will not
35445// be included in the string output. The member name will be present, but the
35446// value will be replaced with "sensitive".
35447func (s DeleteCACertificateInput) GoString() string {
35448	return s.String()
35449}
35450
35451// Validate inspects the fields of the type to determine if they are valid.
35452func (s *DeleteCACertificateInput) Validate() error {
35453	invalidParams := request.ErrInvalidParams{Context: "DeleteCACertificateInput"}
35454	if s.CertificateId == nil {
35455		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
35456	}
35457	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
35458		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
35459	}
35460
35461	if invalidParams.Len() > 0 {
35462		return invalidParams
35463	}
35464	return nil
35465}
35466
35467// SetCertificateId sets the CertificateId field's value.
35468func (s *DeleteCACertificateInput) SetCertificateId(v string) *DeleteCACertificateInput {
35469	s.CertificateId = &v
35470	return s
35471}
35472
35473// The output for the DeleteCACertificate operation.
35474type DeleteCACertificateOutput struct {
35475	_ struct{} `type:"structure"`
35476}
35477
35478// String returns the string representation.
35479//
35480// API parameter values that are decorated as "sensitive" in the API will not
35481// be included in the string output. The member name will be present, but the
35482// value will be replaced with "sensitive".
35483func (s DeleteCACertificateOutput) String() string {
35484	return awsutil.Prettify(s)
35485}
35486
35487// GoString returns the string representation.
35488//
35489// API parameter values that are decorated as "sensitive" in the API will not
35490// be included in the string output. The member name will be present, but the
35491// value will be replaced with "sensitive".
35492func (s DeleteCACertificateOutput) GoString() string {
35493	return s.String()
35494}
35495
35496// The input for the DeleteCertificate operation.
35497type DeleteCertificateInput struct {
35498	_ struct{} `type:"structure" nopayload:"true"`
35499
35500	// The ID of the certificate. (The last part of the certificate ARN contains
35501	// the certificate ID.)
35502	//
35503	// CertificateId is a required field
35504	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
35505
35506	// Forces the deletion of a certificate if it is inactive and is not attached
35507	// to an IoT thing.
35508	ForceDelete *bool `location:"querystring" locationName:"forceDelete" type:"boolean"`
35509}
35510
35511// String returns the string representation.
35512//
35513// API parameter values that are decorated as "sensitive" in the API will not
35514// be included in the string output. The member name will be present, but the
35515// value will be replaced with "sensitive".
35516func (s DeleteCertificateInput) String() string {
35517	return awsutil.Prettify(s)
35518}
35519
35520// GoString returns the string representation.
35521//
35522// API parameter values that are decorated as "sensitive" in the API will not
35523// be included in the string output. The member name will be present, but the
35524// value will be replaced with "sensitive".
35525func (s DeleteCertificateInput) GoString() string {
35526	return s.String()
35527}
35528
35529// Validate inspects the fields of the type to determine if they are valid.
35530func (s *DeleteCertificateInput) Validate() error {
35531	invalidParams := request.ErrInvalidParams{Context: "DeleteCertificateInput"}
35532	if s.CertificateId == nil {
35533		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
35534	}
35535	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
35536		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
35537	}
35538
35539	if invalidParams.Len() > 0 {
35540		return invalidParams
35541	}
35542	return nil
35543}
35544
35545// SetCertificateId sets the CertificateId field's value.
35546func (s *DeleteCertificateInput) SetCertificateId(v string) *DeleteCertificateInput {
35547	s.CertificateId = &v
35548	return s
35549}
35550
35551// SetForceDelete sets the ForceDelete field's value.
35552func (s *DeleteCertificateInput) SetForceDelete(v bool) *DeleteCertificateInput {
35553	s.ForceDelete = &v
35554	return s
35555}
35556
35557type DeleteCertificateOutput struct {
35558	_ struct{} `type:"structure"`
35559}
35560
35561// String returns the string representation.
35562//
35563// API parameter values that are decorated as "sensitive" in the API will not
35564// be included in the string output. The member name will be present, but the
35565// value will be replaced with "sensitive".
35566func (s DeleteCertificateOutput) String() string {
35567	return awsutil.Prettify(s)
35568}
35569
35570// GoString returns the string representation.
35571//
35572// API parameter values that are decorated as "sensitive" in the API will not
35573// be included in the string output. The member name will be present, but the
35574// value will be replaced with "sensitive".
35575func (s DeleteCertificateOutput) GoString() string {
35576	return s.String()
35577}
35578
35579// You can't delete the resource because it is attached to one or more resources.
35580type DeleteConflictException struct {
35581	_            struct{}                  `type:"structure"`
35582	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
35583
35584	// The message for the exception.
35585	Message_ *string `locationName:"message" type:"string"`
35586}
35587
35588// String returns the string representation.
35589//
35590// API parameter values that are decorated as "sensitive" in the API will not
35591// be included in the string output. The member name will be present, but the
35592// value will be replaced with "sensitive".
35593func (s DeleteConflictException) String() string {
35594	return awsutil.Prettify(s)
35595}
35596
35597// GoString returns the string representation.
35598//
35599// API parameter values that are decorated as "sensitive" in the API will not
35600// be included in the string output. The member name will be present, but the
35601// value will be replaced with "sensitive".
35602func (s DeleteConflictException) GoString() string {
35603	return s.String()
35604}
35605
35606func newErrorDeleteConflictException(v protocol.ResponseMetadata) error {
35607	return &DeleteConflictException{
35608		RespMetadata: v,
35609	}
35610}
35611
35612// Code returns the exception type name.
35613func (s *DeleteConflictException) Code() string {
35614	return "DeleteConflictException"
35615}
35616
35617// Message returns the exception's message.
35618func (s *DeleteConflictException) Message() string {
35619	if s.Message_ != nil {
35620		return *s.Message_
35621	}
35622	return ""
35623}
35624
35625// OrigErr always returns nil, satisfies awserr.Error interface.
35626func (s *DeleteConflictException) OrigErr() error {
35627	return nil
35628}
35629
35630func (s *DeleteConflictException) Error() string {
35631	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
35632}
35633
35634// Status code returns the HTTP status code for the request's response error.
35635func (s *DeleteConflictException) StatusCode() int {
35636	return s.RespMetadata.StatusCode
35637}
35638
35639// RequestID returns the service's response RequestID for request.
35640func (s *DeleteConflictException) RequestID() string {
35641	return s.RespMetadata.RequestID
35642}
35643
35644type DeleteCustomMetricInput struct {
35645	_ struct{} `type:"structure" nopayload:"true"`
35646
35647	// The name of the custom metric.
35648	//
35649	// MetricName is a required field
35650	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
35651}
35652
35653// String returns the string representation.
35654//
35655// API parameter values that are decorated as "sensitive" in the API will not
35656// be included in the string output. The member name will be present, but the
35657// value will be replaced with "sensitive".
35658func (s DeleteCustomMetricInput) String() string {
35659	return awsutil.Prettify(s)
35660}
35661
35662// GoString returns the string representation.
35663//
35664// API parameter values that are decorated as "sensitive" in the API will not
35665// be included in the string output. The member name will be present, but the
35666// value will be replaced with "sensitive".
35667func (s DeleteCustomMetricInput) GoString() string {
35668	return s.String()
35669}
35670
35671// Validate inspects the fields of the type to determine if they are valid.
35672func (s *DeleteCustomMetricInput) Validate() error {
35673	invalidParams := request.ErrInvalidParams{Context: "DeleteCustomMetricInput"}
35674	if s.MetricName == nil {
35675		invalidParams.Add(request.NewErrParamRequired("MetricName"))
35676	}
35677	if s.MetricName != nil && len(*s.MetricName) < 1 {
35678		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
35679	}
35680
35681	if invalidParams.Len() > 0 {
35682		return invalidParams
35683	}
35684	return nil
35685}
35686
35687// SetMetricName sets the MetricName field's value.
35688func (s *DeleteCustomMetricInput) SetMetricName(v string) *DeleteCustomMetricInput {
35689	s.MetricName = &v
35690	return s
35691}
35692
35693type DeleteCustomMetricOutput struct {
35694	_ struct{} `type:"structure"`
35695}
35696
35697// String returns the string representation.
35698//
35699// API parameter values that are decorated as "sensitive" in the API will not
35700// be included in the string output. The member name will be present, but the
35701// value will be replaced with "sensitive".
35702func (s DeleteCustomMetricOutput) String() string {
35703	return awsutil.Prettify(s)
35704}
35705
35706// GoString returns the string representation.
35707//
35708// API parameter values that are decorated as "sensitive" in the API will not
35709// be included in the string output. The member name will be present, but the
35710// value will be replaced with "sensitive".
35711func (s DeleteCustomMetricOutput) GoString() string {
35712	return s.String()
35713}
35714
35715type DeleteDimensionInput struct {
35716	_ struct{} `type:"structure" nopayload:"true"`
35717
35718	// The unique identifier for the dimension that you want to delete.
35719	//
35720	// Name is a required field
35721	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
35722}
35723
35724// String returns the string representation.
35725//
35726// API parameter values that are decorated as "sensitive" in the API will not
35727// be included in the string output. The member name will be present, but the
35728// value will be replaced with "sensitive".
35729func (s DeleteDimensionInput) String() string {
35730	return awsutil.Prettify(s)
35731}
35732
35733// GoString returns the string representation.
35734//
35735// API parameter values that are decorated as "sensitive" in the API will not
35736// be included in the string output. The member name will be present, but the
35737// value will be replaced with "sensitive".
35738func (s DeleteDimensionInput) GoString() string {
35739	return s.String()
35740}
35741
35742// Validate inspects the fields of the type to determine if they are valid.
35743func (s *DeleteDimensionInput) Validate() error {
35744	invalidParams := request.ErrInvalidParams{Context: "DeleteDimensionInput"}
35745	if s.Name == nil {
35746		invalidParams.Add(request.NewErrParamRequired("Name"))
35747	}
35748	if s.Name != nil && len(*s.Name) < 1 {
35749		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
35750	}
35751
35752	if invalidParams.Len() > 0 {
35753		return invalidParams
35754	}
35755	return nil
35756}
35757
35758// SetName sets the Name field's value.
35759func (s *DeleteDimensionInput) SetName(v string) *DeleteDimensionInput {
35760	s.Name = &v
35761	return s
35762}
35763
35764type DeleteDimensionOutput struct {
35765	_ struct{} `type:"structure"`
35766}
35767
35768// String returns the string representation.
35769//
35770// API parameter values that are decorated as "sensitive" in the API will not
35771// be included in the string output. The member name will be present, but the
35772// value will be replaced with "sensitive".
35773func (s DeleteDimensionOutput) String() string {
35774	return awsutil.Prettify(s)
35775}
35776
35777// GoString returns the string representation.
35778//
35779// API parameter values that are decorated as "sensitive" in the API will not
35780// be included in the string output. The member name will be present, but the
35781// value will be replaced with "sensitive".
35782func (s DeleteDimensionOutput) GoString() string {
35783	return s.String()
35784}
35785
35786type DeleteDomainConfigurationInput struct {
35787	_ struct{} `type:"structure" nopayload:"true"`
35788
35789	// The name of the domain configuration to be deleted.
35790	//
35791	// DomainConfigurationName is a required field
35792	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
35793}
35794
35795// String returns the string representation.
35796//
35797// API parameter values that are decorated as "sensitive" in the API will not
35798// be included in the string output. The member name will be present, but the
35799// value will be replaced with "sensitive".
35800func (s DeleteDomainConfigurationInput) String() string {
35801	return awsutil.Prettify(s)
35802}
35803
35804// GoString returns the string representation.
35805//
35806// API parameter values that are decorated as "sensitive" in the API will not
35807// be included in the string output. The member name will be present, but the
35808// value will be replaced with "sensitive".
35809func (s DeleteDomainConfigurationInput) GoString() string {
35810	return s.String()
35811}
35812
35813// Validate inspects the fields of the type to determine if they are valid.
35814func (s *DeleteDomainConfigurationInput) Validate() error {
35815	invalidParams := request.ErrInvalidParams{Context: "DeleteDomainConfigurationInput"}
35816	if s.DomainConfigurationName == nil {
35817		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
35818	}
35819	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
35820		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
35821	}
35822
35823	if invalidParams.Len() > 0 {
35824		return invalidParams
35825	}
35826	return nil
35827}
35828
35829// SetDomainConfigurationName sets the DomainConfigurationName field's value.
35830func (s *DeleteDomainConfigurationInput) SetDomainConfigurationName(v string) *DeleteDomainConfigurationInput {
35831	s.DomainConfigurationName = &v
35832	return s
35833}
35834
35835type DeleteDomainConfigurationOutput struct {
35836	_ struct{} `type:"structure"`
35837}
35838
35839// String returns the string representation.
35840//
35841// API parameter values that are decorated as "sensitive" in the API will not
35842// be included in the string output. The member name will be present, but the
35843// value will be replaced with "sensitive".
35844func (s DeleteDomainConfigurationOutput) String() string {
35845	return awsutil.Prettify(s)
35846}
35847
35848// GoString returns the string representation.
35849//
35850// API parameter values that are decorated as "sensitive" in the API will not
35851// be included in the string output. The member name will be present, but the
35852// value will be replaced with "sensitive".
35853func (s DeleteDomainConfigurationOutput) GoString() string {
35854	return s.String()
35855}
35856
35857type DeleteDynamicThingGroupInput struct {
35858	_ struct{} `type:"structure" nopayload:"true"`
35859
35860	// The expected version of the dynamic thing group to delete.
35861	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
35862
35863	// The name of the dynamic thing group to delete.
35864	//
35865	// ThingGroupName is a required field
35866	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
35867}
35868
35869// String returns the string representation.
35870//
35871// API parameter values that are decorated as "sensitive" in the API will not
35872// be included in the string output. The member name will be present, but the
35873// value will be replaced with "sensitive".
35874func (s DeleteDynamicThingGroupInput) String() string {
35875	return awsutil.Prettify(s)
35876}
35877
35878// GoString returns the string representation.
35879//
35880// API parameter values that are decorated as "sensitive" in the API will not
35881// be included in the string output. The member name will be present, but the
35882// value will be replaced with "sensitive".
35883func (s DeleteDynamicThingGroupInput) GoString() string {
35884	return s.String()
35885}
35886
35887// Validate inspects the fields of the type to determine if they are valid.
35888func (s *DeleteDynamicThingGroupInput) Validate() error {
35889	invalidParams := request.ErrInvalidParams{Context: "DeleteDynamicThingGroupInput"}
35890	if s.ThingGroupName == nil {
35891		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
35892	}
35893	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
35894		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
35895	}
35896
35897	if invalidParams.Len() > 0 {
35898		return invalidParams
35899	}
35900	return nil
35901}
35902
35903// SetExpectedVersion sets the ExpectedVersion field's value.
35904func (s *DeleteDynamicThingGroupInput) SetExpectedVersion(v int64) *DeleteDynamicThingGroupInput {
35905	s.ExpectedVersion = &v
35906	return s
35907}
35908
35909// SetThingGroupName sets the ThingGroupName field's value.
35910func (s *DeleteDynamicThingGroupInput) SetThingGroupName(v string) *DeleteDynamicThingGroupInput {
35911	s.ThingGroupName = &v
35912	return s
35913}
35914
35915type DeleteDynamicThingGroupOutput struct {
35916	_ struct{} `type:"structure"`
35917}
35918
35919// String returns the string representation.
35920//
35921// API parameter values that are decorated as "sensitive" in the API will not
35922// be included in the string output. The member name will be present, but the
35923// value will be replaced with "sensitive".
35924func (s DeleteDynamicThingGroupOutput) String() string {
35925	return awsutil.Prettify(s)
35926}
35927
35928// GoString returns the string representation.
35929//
35930// API parameter values that are decorated as "sensitive" in the API will not
35931// be included in the string output. The member name will be present, but the
35932// value will be replaced with "sensitive".
35933func (s DeleteDynamicThingGroupOutput) GoString() string {
35934	return s.String()
35935}
35936
35937type DeleteFleetMetricInput struct {
35938	_ struct{} `type:"structure" nopayload:"true"`
35939
35940	// The expected version of the fleet metric to delete.
35941	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
35942
35943	// The name of the fleet metric to delete.
35944	//
35945	// MetricName is a required field
35946	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
35947}
35948
35949// String returns the string representation.
35950//
35951// API parameter values that are decorated as "sensitive" in the API will not
35952// be included in the string output. The member name will be present, but the
35953// value will be replaced with "sensitive".
35954func (s DeleteFleetMetricInput) String() string {
35955	return awsutil.Prettify(s)
35956}
35957
35958// GoString returns the string representation.
35959//
35960// API parameter values that are decorated as "sensitive" in the API will not
35961// be included in the string output. The member name will be present, but the
35962// value will be replaced with "sensitive".
35963func (s DeleteFleetMetricInput) GoString() string {
35964	return s.String()
35965}
35966
35967// Validate inspects the fields of the type to determine if they are valid.
35968func (s *DeleteFleetMetricInput) Validate() error {
35969	invalidParams := request.ErrInvalidParams{Context: "DeleteFleetMetricInput"}
35970	if s.MetricName == nil {
35971		invalidParams.Add(request.NewErrParamRequired("MetricName"))
35972	}
35973	if s.MetricName != nil && len(*s.MetricName) < 1 {
35974		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
35975	}
35976
35977	if invalidParams.Len() > 0 {
35978		return invalidParams
35979	}
35980	return nil
35981}
35982
35983// SetExpectedVersion sets the ExpectedVersion field's value.
35984func (s *DeleteFleetMetricInput) SetExpectedVersion(v int64) *DeleteFleetMetricInput {
35985	s.ExpectedVersion = &v
35986	return s
35987}
35988
35989// SetMetricName sets the MetricName field's value.
35990func (s *DeleteFleetMetricInput) SetMetricName(v string) *DeleteFleetMetricInput {
35991	s.MetricName = &v
35992	return s
35993}
35994
35995type DeleteFleetMetricOutput struct {
35996	_ struct{} `type:"structure"`
35997}
35998
35999// String returns the string representation.
36000//
36001// API parameter values that are decorated as "sensitive" in the API will not
36002// be included in the string output. The member name will be present, but the
36003// value will be replaced with "sensitive".
36004func (s DeleteFleetMetricOutput) String() string {
36005	return awsutil.Prettify(s)
36006}
36007
36008// GoString returns the string representation.
36009//
36010// API parameter values that are decorated as "sensitive" in the API will not
36011// be included in the string output. The member name will be present, but the
36012// value will be replaced with "sensitive".
36013func (s DeleteFleetMetricOutput) GoString() string {
36014	return s.String()
36015}
36016
36017type DeleteJobExecutionInput struct {
36018	_ struct{} `type:"structure" nopayload:"true"`
36019
36020	// The ID of the job execution to be deleted. The executionNumber refers to
36021	// the execution of a particular job on a particular device.
36022	//
36023	// Note that once a job execution is deleted, the executionNumber may be reused
36024	// by IoT, so be sure you get and use the correct value here.
36025	//
36026	// ExecutionNumber is a required field
36027	ExecutionNumber *int64 `location:"uri" locationName:"executionNumber" type:"long" required:"true"`
36028
36029	// (Optional) When true, you can delete a job execution which is "IN_PROGRESS".
36030	// Otherwise, you can only delete a job execution which is in a terminal state
36031	// ("SUCCEEDED", "FAILED", "REJECTED", "REMOVED" or "CANCELED") or an exception
36032	// will occur. The default is false.
36033	//
36034	// Deleting a job execution which is "IN_PROGRESS", will cause the device to
36035	// be unable to access job information or update the job execution status. Use
36036	// caution and ensure that the device is able to recover to a valid state.
36037	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
36038
36039	// The ID of the job whose execution on a particular device will be deleted.
36040	//
36041	// JobId is a required field
36042	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
36043
36044	// The namespace used to indicate that a job is a customer-managed job.
36045	//
36046	// When you specify a value for this parameter, Amazon Web Services IoT Core
36047	// sends jobs notifications to MQTT topics that contain the value in the following
36048	// format.
36049	//
36050	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
36051	//
36052	// The namespaceId feature is in public preview.
36053	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
36054
36055	// The name of the thing whose job execution will be deleted.
36056	//
36057	// ThingName is a required field
36058	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
36059}
36060
36061// String returns the string representation.
36062//
36063// API parameter values that are decorated as "sensitive" in the API will not
36064// be included in the string output. The member name will be present, but the
36065// value will be replaced with "sensitive".
36066func (s DeleteJobExecutionInput) String() string {
36067	return awsutil.Prettify(s)
36068}
36069
36070// GoString returns the string representation.
36071//
36072// API parameter values that are decorated as "sensitive" in the API will not
36073// be included in the string output. The member name will be present, but the
36074// value will be replaced with "sensitive".
36075func (s DeleteJobExecutionInput) GoString() string {
36076	return s.String()
36077}
36078
36079// Validate inspects the fields of the type to determine if they are valid.
36080func (s *DeleteJobExecutionInput) Validate() error {
36081	invalidParams := request.ErrInvalidParams{Context: "DeleteJobExecutionInput"}
36082	if s.ExecutionNumber == nil {
36083		invalidParams.Add(request.NewErrParamRequired("ExecutionNumber"))
36084	}
36085	if s.JobId == nil {
36086		invalidParams.Add(request.NewErrParamRequired("JobId"))
36087	}
36088	if s.JobId != nil && len(*s.JobId) < 1 {
36089		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
36090	}
36091	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
36092		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
36093	}
36094	if s.ThingName == nil {
36095		invalidParams.Add(request.NewErrParamRequired("ThingName"))
36096	}
36097	if s.ThingName != nil && len(*s.ThingName) < 1 {
36098		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
36099	}
36100
36101	if invalidParams.Len() > 0 {
36102		return invalidParams
36103	}
36104	return nil
36105}
36106
36107// SetExecutionNumber sets the ExecutionNumber field's value.
36108func (s *DeleteJobExecutionInput) SetExecutionNumber(v int64) *DeleteJobExecutionInput {
36109	s.ExecutionNumber = &v
36110	return s
36111}
36112
36113// SetForce sets the Force field's value.
36114func (s *DeleteJobExecutionInput) SetForce(v bool) *DeleteJobExecutionInput {
36115	s.Force = &v
36116	return s
36117}
36118
36119// SetJobId sets the JobId field's value.
36120func (s *DeleteJobExecutionInput) SetJobId(v string) *DeleteJobExecutionInput {
36121	s.JobId = &v
36122	return s
36123}
36124
36125// SetNamespaceId sets the NamespaceId field's value.
36126func (s *DeleteJobExecutionInput) SetNamespaceId(v string) *DeleteJobExecutionInput {
36127	s.NamespaceId = &v
36128	return s
36129}
36130
36131// SetThingName sets the ThingName field's value.
36132func (s *DeleteJobExecutionInput) SetThingName(v string) *DeleteJobExecutionInput {
36133	s.ThingName = &v
36134	return s
36135}
36136
36137type DeleteJobExecutionOutput struct {
36138	_ struct{} `type:"structure"`
36139}
36140
36141// String returns the string representation.
36142//
36143// API parameter values that are decorated as "sensitive" in the API will not
36144// be included in the string output. The member name will be present, but the
36145// value will be replaced with "sensitive".
36146func (s DeleteJobExecutionOutput) String() string {
36147	return awsutil.Prettify(s)
36148}
36149
36150// GoString returns the string representation.
36151//
36152// API parameter values that are decorated as "sensitive" in the API will not
36153// be included in the string output. The member name will be present, but the
36154// value will be replaced with "sensitive".
36155func (s DeleteJobExecutionOutput) GoString() string {
36156	return s.String()
36157}
36158
36159type DeleteJobInput struct {
36160	_ struct{} `type:"structure" nopayload:"true"`
36161
36162	// (Optional) When true, you can delete a job which is "IN_PROGRESS". Otherwise,
36163	// you can only delete a job which is in a terminal state ("COMPLETED" or "CANCELED")
36164	// or an exception will occur. The default is false.
36165	//
36166	// Deleting a job which is "IN_PROGRESS", will cause a device which is executing
36167	// the job to be unable to access job information or update the job execution
36168	// status. Use caution and ensure that each device executing a job which is
36169	// deleted is able to recover to a valid state.
36170	Force *bool `location:"querystring" locationName:"force" type:"boolean"`
36171
36172	// The ID of the job to be deleted.
36173	//
36174	// After a job deletion is completed, you may reuse this jobId when you create
36175	// a new job. However, this is not recommended, and you must ensure that your
36176	// devices are not using the jobId to refer to the deleted job.
36177	//
36178	// JobId is a required field
36179	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
36180
36181	// The namespace used to indicate that a job is a customer-managed job.
36182	//
36183	// When you specify a value for this parameter, Amazon Web Services IoT Core
36184	// sends jobs notifications to MQTT topics that contain the value in the following
36185	// format.
36186	//
36187	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
36188	//
36189	// The namespaceId feature is in public preview.
36190	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
36191}
36192
36193// String returns the string representation.
36194//
36195// API parameter values that are decorated as "sensitive" in the API will not
36196// be included in the string output. The member name will be present, but the
36197// value will be replaced with "sensitive".
36198func (s DeleteJobInput) String() string {
36199	return awsutil.Prettify(s)
36200}
36201
36202// GoString returns the string representation.
36203//
36204// API parameter values that are decorated as "sensitive" in the API will not
36205// be included in the string output. The member name will be present, but the
36206// value will be replaced with "sensitive".
36207func (s DeleteJobInput) GoString() string {
36208	return s.String()
36209}
36210
36211// Validate inspects the fields of the type to determine if they are valid.
36212func (s *DeleteJobInput) Validate() error {
36213	invalidParams := request.ErrInvalidParams{Context: "DeleteJobInput"}
36214	if s.JobId == nil {
36215		invalidParams.Add(request.NewErrParamRequired("JobId"))
36216	}
36217	if s.JobId != nil && len(*s.JobId) < 1 {
36218		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
36219	}
36220	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
36221		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
36222	}
36223
36224	if invalidParams.Len() > 0 {
36225		return invalidParams
36226	}
36227	return nil
36228}
36229
36230// SetForce sets the Force field's value.
36231func (s *DeleteJobInput) SetForce(v bool) *DeleteJobInput {
36232	s.Force = &v
36233	return s
36234}
36235
36236// SetJobId sets the JobId field's value.
36237func (s *DeleteJobInput) SetJobId(v string) *DeleteJobInput {
36238	s.JobId = &v
36239	return s
36240}
36241
36242// SetNamespaceId sets the NamespaceId field's value.
36243func (s *DeleteJobInput) SetNamespaceId(v string) *DeleteJobInput {
36244	s.NamespaceId = &v
36245	return s
36246}
36247
36248type DeleteJobOutput struct {
36249	_ struct{} `type:"structure"`
36250}
36251
36252// String returns the string representation.
36253//
36254// API parameter values that are decorated as "sensitive" in the API will not
36255// be included in the string output. The member name will be present, but the
36256// value will be replaced with "sensitive".
36257func (s DeleteJobOutput) String() string {
36258	return awsutil.Prettify(s)
36259}
36260
36261// GoString returns the string representation.
36262//
36263// API parameter values that are decorated as "sensitive" in the API will not
36264// be included in the string output. The member name will be present, but the
36265// value will be replaced with "sensitive".
36266func (s DeleteJobOutput) GoString() string {
36267	return s.String()
36268}
36269
36270type DeleteJobTemplateInput struct {
36271	_ struct{} `type:"structure" nopayload:"true"`
36272
36273	// The unique identifier of the job template to delete.
36274	//
36275	// JobTemplateId is a required field
36276	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
36277}
36278
36279// String returns the string representation.
36280//
36281// API parameter values that are decorated as "sensitive" in the API will not
36282// be included in the string output. The member name will be present, but the
36283// value will be replaced with "sensitive".
36284func (s DeleteJobTemplateInput) String() string {
36285	return awsutil.Prettify(s)
36286}
36287
36288// GoString returns the string representation.
36289//
36290// API parameter values that are decorated as "sensitive" in the API will not
36291// be included in the string output. The member name will be present, but the
36292// value will be replaced with "sensitive".
36293func (s DeleteJobTemplateInput) GoString() string {
36294	return s.String()
36295}
36296
36297// Validate inspects the fields of the type to determine if they are valid.
36298func (s *DeleteJobTemplateInput) Validate() error {
36299	invalidParams := request.ErrInvalidParams{Context: "DeleteJobTemplateInput"}
36300	if s.JobTemplateId == nil {
36301		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
36302	}
36303	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
36304		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
36305	}
36306
36307	if invalidParams.Len() > 0 {
36308		return invalidParams
36309	}
36310	return nil
36311}
36312
36313// SetJobTemplateId sets the JobTemplateId field's value.
36314func (s *DeleteJobTemplateInput) SetJobTemplateId(v string) *DeleteJobTemplateInput {
36315	s.JobTemplateId = &v
36316	return s
36317}
36318
36319type DeleteJobTemplateOutput struct {
36320	_ struct{} `type:"structure"`
36321}
36322
36323// String returns the string representation.
36324//
36325// API parameter values that are decorated as "sensitive" in the API will not
36326// be included in the string output. The member name will be present, but the
36327// value will be replaced with "sensitive".
36328func (s DeleteJobTemplateOutput) String() string {
36329	return awsutil.Prettify(s)
36330}
36331
36332// GoString returns the string representation.
36333//
36334// API parameter values that are decorated as "sensitive" in the API will not
36335// be included in the string output. The member name will be present, but the
36336// value will be replaced with "sensitive".
36337func (s DeleteJobTemplateOutput) GoString() string {
36338	return s.String()
36339}
36340
36341type DeleteMitigationActionInput struct {
36342	_ struct{} `type:"structure" nopayload:"true"`
36343
36344	// The name of the mitigation action that you want to delete.
36345	//
36346	// ActionName is a required field
36347	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
36348}
36349
36350// String returns the string representation.
36351//
36352// API parameter values that are decorated as "sensitive" in the API will not
36353// be included in the string output. The member name will be present, but the
36354// value will be replaced with "sensitive".
36355func (s DeleteMitigationActionInput) String() string {
36356	return awsutil.Prettify(s)
36357}
36358
36359// GoString returns the string representation.
36360//
36361// API parameter values that are decorated as "sensitive" in the API will not
36362// be included in the string output. The member name will be present, but the
36363// value will be replaced with "sensitive".
36364func (s DeleteMitigationActionInput) GoString() string {
36365	return s.String()
36366}
36367
36368// Validate inspects the fields of the type to determine if they are valid.
36369func (s *DeleteMitigationActionInput) Validate() error {
36370	invalidParams := request.ErrInvalidParams{Context: "DeleteMitigationActionInput"}
36371	if s.ActionName == nil {
36372		invalidParams.Add(request.NewErrParamRequired("ActionName"))
36373	}
36374	if s.ActionName != nil && len(*s.ActionName) < 1 {
36375		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
36376	}
36377
36378	if invalidParams.Len() > 0 {
36379		return invalidParams
36380	}
36381	return nil
36382}
36383
36384// SetActionName sets the ActionName field's value.
36385func (s *DeleteMitigationActionInput) SetActionName(v string) *DeleteMitigationActionInput {
36386	s.ActionName = &v
36387	return s
36388}
36389
36390type DeleteMitigationActionOutput struct {
36391	_ struct{} `type:"structure"`
36392}
36393
36394// String returns the string representation.
36395//
36396// API parameter values that are decorated as "sensitive" in the API will not
36397// be included in the string output. The member name will be present, but the
36398// value will be replaced with "sensitive".
36399func (s DeleteMitigationActionOutput) String() string {
36400	return awsutil.Prettify(s)
36401}
36402
36403// GoString returns the string representation.
36404//
36405// API parameter values that are decorated as "sensitive" in the API will not
36406// be included in the string output. The member name will be present, but the
36407// value will be replaced with "sensitive".
36408func (s DeleteMitigationActionOutput) GoString() string {
36409	return s.String()
36410}
36411
36412type DeleteOTAUpdateInput struct {
36413	_ struct{} `type:"structure" nopayload:"true"`
36414
36415	// When true, the stream created by the OTAUpdate process is deleted when the
36416	// OTA update is deleted. Ignored if the stream specified in the OTAUpdate is
36417	// supplied by the user.
36418	DeleteStream *bool `location:"querystring" locationName:"deleteStream" type:"boolean"`
36419
36420	// When true, deletes the IoT job created by the OTAUpdate process even if it
36421	// is "IN_PROGRESS". Otherwise, if the job is not in a terminal state ("COMPLETED"
36422	// or "CANCELED") an exception will occur. The default is false.
36423	ForceDeleteAWSJob *bool `location:"querystring" locationName:"forceDeleteAWSJob" type:"boolean"`
36424
36425	// The ID of the OTA update to delete.
36426	//
36427	// OtaUpdateId is a required field
36428	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
36429}
36430
36431// String returns the string representation.
36432//
36433// API parameter values that are decorated as "sensitive" in the API will not
36434// be included in the string output. The member name will be present, but the
36435// value will be replaced with "sensitive".
36436func (s DeleteOTAUpdateInput) String() string {
36437	return awsutil.Prettify(s)
36438}
36439
36440// GoString returns the string representation.
36441//
36442// API parameter values that are decorated as "sensitive" in the API will not
36443// be included in the string output. The member name will be present, but the
36444// value will be replaced with "sensitive".
36445func (s DeleteOTAUpdateInput) GoString() string {
36446	return s.String()
36447}
36448
36449// Validate inspects the fields of the type to determine if they are valid.
36450func (s *DeleteOTAUpdateInput) Validate() error {
36451	invalidParams := request.ErrInvalidParams{Context: "DeleteOTAUpdateInput"}
36452	if s.OtaUpdateId == nil {
36453		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
36454	}
36455	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
36456		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
36457	}
36458
36459	if invalidParams.Len() > 0 {
36460		return invalidParams
36461	}
36462	return nil
36463}
36464
36465// SetDeleteStream sets the DeleteStream field's value.
36466func (s *DeleteOTAUpdateInput) SetDeleteStream(v bool) *DeleteOTAUpdateInput {
36467	s.DeleteStream = &v
36468	return s
36469}
36470
36471// SetForceDeleteAWSJob sets the ForceDeleteAWSJob field's value.
36472func (s *DeleteOTAUpdateInput) SetForceDeleteAWSJob(v bool) *DeleteOTAUpdateInput {
36473	s.ForceDeleteAWSJob = &v
36474	return s
36475}
36476
36477// SetOtaUpdateId sets the OtaUpdateId field's value.
36478func (s *DeleteOTAUpdateInput) SetOtaUpdateId(v string) *DeleteOTAUpdateInput {
36479	s.OtaUpdateId = &v
36480	return s
36481}
36482
36483type DeleteOTAUpdateOutput struct {
36484	_ struct{} `type:"structure"`
36485}
36486
36487// String returns the string representation.
36488//
36489// API parameter values that are decorated as "sensitive" in the API will not
36490// be included in the string output. The member name will be present, but the
36491// value will be replaced with "sensitive".
36492func (s DeleteOTAUpdateOutput) String() string {
36493	return awsutil.Prettify(s)
36494}
36495
36496// GoString returns the string representation.
36497//
36498// API parameter values that are decorated as "sensitive" in the API will not
36499// be included in the string output. The member name will be present, but the
36500// value will be replaced with "sensitive".
36501func (s DeleteOTAUpdateOutput) GoString() string {
36502	return s.String()
36503}
36504
36505// The input for the DeletePolicy operation.
36506type DeletePolicyInput struct {
36507	_ struct{} `type:"structure" nopayload:"true"`
36508
36509	// The name of the policy to delete.
36510	//
36511	// PolicyName is a required field
36512	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
36513}
36514
36515// String returns the string representation.
36516//
36517// API parameter values that are decorated as "sensitive" in the API will not
36518// be included in the string output. The member name will be present, but the
36519// value will be replaced with "sensitive".
36520func (s DeletePolicyInput) String() string {
36521	return awsutil.Prettify(s)
36522}
36523
36524// GoString returns the string representation.
36525//
36526// API parameter values that are decorated as "sensitive" in the API will not
36527// be included in the string output. The member name will be present, but the
36528// value will be replaced with "sensitive".
36529func (s DeletePolicyInput) GoString() string {
36530	return s.String()
36531}
36532
36533// Validate inspects the fields of the type to determine if they are valid.
36534func (s *DeletePolicyInput) Validate() error {
36535	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyInput"}
36536	if s.PolicyName == nil {
36537		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
36538	}
36539	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
36540		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
36541	}
36542
36543	if invalidParams.Len() > 0 {
36544		return invalidParams
36545	}
36546	return nil
36547}
36548
36549// SetPolicyName sets the PolicyName field's value.
36550func (s *DeletePolicyInput) SetPolicyName(v string) *DeletePolicyInput {
36551	s.PolicyName = &v
36552	return s
36553}
36554
36555type DeletePolicyOutput struct {
36556	_ struct{} `type:"structure"`
36557}
36558
36559// String returns the string representation.
36560//
36561// API parameter values that are decorated as "sensitive" in the API will not
36562// be included in the string output. The member name will be present, but the
36563// value will be replaced with "sensitive".
36564func (s DeletePolicyOutput) String() string {
36565	return awsutil.Prettify(s)
36566}
36567
36568// GoString returns the string representation.
36569//
36570// API parameter values that are decorated as "sensitive" in the API will not
36571// be included in the string output. The member name will be present, but the
36572// value will be replaced with "sensitive".
36573func (s DeletePolicyOutput) GoString() string {
36574	return s.String()
36575}
36576
36577// The input for the DeletePolicyVersion operation.
36578type DeletePolicyVersionInput struct {
36579	_ struct{} `type:"structure" nopayload:"true"`
36580
36581	// The name of the policy.
36582	//
36583	// PolicyName is a required field
36584	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
36585
36586	// The policy version ID.
36587	//
36588	// PolicyVersionId is a required field
36589	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
36590}
36591
36592// String returns the string representation.
36593//
36594// API parameter values that are decorated as "sensitive" in the API will not
36595// be included in the string output. The member name will be present, but the
36596// value will be replaced with "sensitive".
36597func (s DeletePolicyVersionInput) String() string {
36598	return awsutil.Prettify(s)
36599}
36600
36601// GoString returns the string representation.
36602//
36603// API parameter values that are decorated as "sensitive" in the API will not
36604// be included in the string output. The member name will be present, but the
36605// value will be replaced with "sensitive".
36606func (s DeletePolicyVersionInput) GoString() string {
36607	return s.String()
36608}
36609
36610// Validate inspects the fields of the type to determine if they are valid.
36611func (s *DeletePolicyVersionInput) Validate() error {
36612	invalidParams := request.ErrInvalidParams{Context: "DeletePolicyVersionInput"}
36613	if s.PolicyName == nil {
36614		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
36615	}
36616	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
36617		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
36618	}
36619	if s.PolicyVersionId == nil {
36620		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
36621	}
36622	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
36623		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
36624	}
36625
36626	if invalidParams.Len() > 0 {
36627		return invalidParams
36628	}
36629	return nil
36630}
36631
36632// SetPolicyName sets the PolicyName field's value.
36633func (s *DeletePolicyVersionInput) SetPolicyName(v string) *DeletePolicyVersionInput {
36634	s.PolicyName = &v
36635	return s
36636}
36637
36638// SetPolicyVersionId sets the PolicyVersionId field's value.
36639func (s *DeletePolicyVersionInput) SetPolicyVersionId(v string) *DeletePolicyVersionInput {
36640	s.PolicyVersionId = &v
36641	return s
36642}
36643
36644type DeletePolicyVersionOutput struct {
36645	_ struct{} `type:"structure"`
36646}
36647
36648// String returns the string representation.
36649//
36650// API parameter values that are decorated as "sensitive" in the API will not
36651// be included in the string output. The member name will be present, but the
36652// value will be replaced with "sensitive".
36653func (s DeletePolicyVersionOutput) String() string {
36654	return awsutil.Prettify(s)
36655}
36656
36657// GoString returns the string representation.
36658//
36659// API parameter values that are decorated as "sensitive" in the API will not
36660// be included in the string output. The member name will be present, but the
36661// value will be replaced with "sensitive".
36662func (s DeletePolicyVersionOutput) GoString() string {
36663	return s.String()
36664}
36665
36666type DeleteProvisioningTemplateInput struct {
36667	_ struct{} `type:"structure" nopayload:"true"`
36668
36669	// The name of the fleet provision template to delete.
36670	//
36671	// TemplateName is a required field
36672	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
36673}
36674
36675// String returns the string representation.
36676//
36677// API parameter values that are decorated as "sensitive" in the API will not
36678// be included in the string output. The member name will be present, but the
36679// value will be replaced with "sensitive".
36680func (s DeleteProvisioningTemplateInput) String() string {
36681	return awsutil.Prettify(s)
36682}
36683
36684// GoString returns the string representation.
36685//
36686// API parameter values that are decorated as "sensitive" in the API will not
36687// be included in the string output. The member name will be present, but the
36688// value will be replaced with "sensitive".
36689func (s DeleteProvisioningTemplateInput) GoString() string {
36690	return s.String()
36691}
36692
36693// Validate inspects the fields of the type to determine if they are valid.
36694func (s *DeleteProvisioningTemplateInput) Validate() error {
36695	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateInput"}
36696	if s.TemplateName == nil {
36697		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
36698	}
36699	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
36700		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
36701	}
36702
36703	if invalidParams.Len() > 0 {
36704		return invalidParams
36705	}
36706	return nil
36707}
36708
36709// SetTemplateName sets the TemplateName field's value.
36710func (s *DeleteProvisioningTemplateInput) SetTemplateName(v string) *DeleteProvisioningTemplateInput {
36711	s.TemplateName = &v
36712	return s
36713}
36714
36715type DeleteProvisioningTemplateOutput struct {
36716	_ struct{} `type:"structure"`
36717}
36718
36719// String returns the string representation.
36720//
36721// API parameter values that are decorated as "sensitive" in the API will not
36722// be included in the string output. The member name will be present, but the
36723// value will be replaced with "sensitive".
36724func (s DeleteProvisioningTemplateOutput) String() string {
36725	return awsutil.Prettify(s)
36726}
36727
36728// GoString returns the string representation.
36729//
36730// API parameter values that are decorated as "sensitive" in the API will not
36731// be included in the string output. The member name will be present, but the
36732// value will be replaced with "sensitive".
36733func (s DeleteProvisioningTemplateOutput) GoString() string {
36734	return s.String()
36735}
36736
36737type DeleteProvisioningTemplateVersionInput struct {
36738	_ struct{} `type:"structure" nopayload:"true"`
36739
36740	// The name of the fleet provisioning template version to delete.
36741	//
36742	// TemplateName is a required field
36743	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
36744
36745	// The fleet provisioning template version ID to delete.
36746	//
36747	// VersionId is a required field
36748	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
36749}
36750
36751// String returns the string representation.
36752//
36753// API parameter values that are decorated as "sensitive" in the API will not
36754// be included in the string output. The member name will be present, but the
36755// value will be replaced with "sensitive".
36756func (s DeleteProvisioningTemplateVersionInput) String() string {
36757	return awsutil.Prettify(s)
36758}
36759
36760// GoString returns the string representation.
36761//
36762// API parameter values that are decorated as "sensitive" in the API will not
36763// be included in the string output. The member name will be present, but the
36764// value will be replaced with "sensitive".
36765func (s DeleteProvisioningTemplateVersionInput) GoString() string {
36766	return s.String()
36767}
36768
36769// Validate inspects the fields of the type to determine if they are valid.
36770func (s *DeleteProvisioningTemplateVersionInput) Validate() error {
36771	invalidParams := request.ErrInvalidParams{Context: "DeleteProvisioningTemplateVersionInput"}
36772	if s.TemplateName == nil {
36773		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
36774	}
36775	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
36776		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
36777	}
36778	if s.VersionId == nil {
36779		invalidParams.Add(request.NewErrParamRequired("VersionId"))
36780	}
36781
36782	if invalidParams.Len() > 0 {
36783		return invalidParams
36784	}
36785	return nil
36786}
36787
36788// SetTemplateName sets the TemplateName field's value.
36789func (s *DeleteProvisioningTemplateVersionInput) SetTemplateName(v string) *DeleteProvisioningTemplateVersionInput {
36790	s.TemplateName = &v
36791	return s
36792}
36793
36794// SetVersionId sets the VersionId field's value.
36795func (s *DeleteProvisioningTemplateVersionInput) SetVersionId(v int64) *DeleteProvisioningTemplateVersionInput {
36796	s.VersionId = &v
36797	return s
36798}
36799
36800type DeleteProvisioningTemplateVersionOutput struct {
36801	_ struct{} `type:"structure"`
36802}
36803
36804// String returns the string representation.
36805//
36806// API parameter values that are decorated as "sensitive" in the API will not
36807// be included in the string output. The member name will be present, but the
36808// value will be replaced with "sensitive".
36809func (s DeleteProvisioningTemplateVersionOutput) String() string {
36810	return awsutil.Prettify(s)
36811}
36812
36813// GoString returns the string representation.
36814//
36815// API parameter values that are decorated as "sensitive" in the API will not
36816// be included in the string output. The member name will be present, but the
36817// value will be replaced with "sensitive".
36818func (s DeleteProvisioningTemplateVersionOutput) GoString() string {
36819	return s.String()
36820}
36821
36822// The input for the DeleteRegistrationCode operation.
36823type DeleteRegistrationCodeInput struct {
36824	_ struct{} `type:"structure" nopayload:"true"`
36825}
36826
36827// String returns the string representation.
36828//
36829// API parameter values that are decorated as "sensitive" in the API will not
36830// be included in the string output. The member name will be present, but the
36831// value will be replaced with "sensitive".
36832func (s DeleteRegistrationCodeInput) String() string {
36833	return awsutil.Prettify(s)
36834}
36835
36836// GoString returns the string representation.
36837//
36838// API parameter values that are decorated as "sensitive" in the API will not
36839// be included in the string output. The member name will be present, but the
36840// value will be replaced with "sensitive".
36841func (s DeleteRegistrationCodeInput) GoString() string {
36842	return s.String()
36843}
36844
36845// The output for the DeleteRegistrationCode operation.
36846type DeleteRegistrationCodeOutput struct {
36847	_ struct{} `type:"structure"`
36848}
36849
36850// String returns the string representation.
36851//
36852// API parameter values that are decorated as "sensitive" in the API will not
36853// be included in the string output. The member name will be present, but the
36854// value will be replaced with "sensitive".
36855func (s DeleteRegistrationCodeOutput) String() string {
36856	return awsutil.Prettify(s)
36857}
36858
36859// GoString returns the string representation.
36860//
36861// API parameter values that are decorated as "sensitive" in the API will not
36862// be included in the string output. The member name will be present, but the
36863// value will be replaced with "sensitive".
36864func (s DeleteRegistrationCodeOutput) GoString() string {
36865	return s.String()
36866}
36867
36868type DeleteRoleAliasInput struct {
36869	_ struct{} `type:"structure" nopayload:"true"`
36870
36871	// The role alias to delete.
36872	//
36873	// RoleAlias is a required field
36874	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
36875}
36876
36877// String returns the string representation.
36878//
36879// API parameter values that are decorated as "sensitive" in the API will not
36880// be included in the string output. The member name will be present, but the
36881// value will be replaced with "sensitive".
36882func (s DeleteRoleAliasInput) String() string {
36883	return awsutil.Prettify(s)
36884}
36885
36886// GoString returns the string representation.
36887//
36888// API parameter values that are decorated as "sensitive" in the API will not
36889// be included in the string output. The member name will be present, but the
36890// value will be replaced with "sensitive".
36891func (s DeleteRoleAliasInput) GoString() string {
36892	return s.String()
36893}
36894
36895// Validate inspects the fields of the type to determine if they are valid.
36896func (s *DeleteRoleAliasInput) Validate() error {
36897	invalidParams := request.ErrInvalidParams{Context: "DeleteRoleAliasInput"}
36898	if s.RoleAlias == nil {
36899		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
36900	}
36901	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
36902		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
36903	}
36904
36905	if invalidParams.Len() > 0 {
36906		return invalidParams
36907	}
36908	return nil
36909}
36910
36911// SetRoleAlias sets the RoleAlias field's value.
36912func (s *DeleteRoleAliasInput) SetRoleAlias(v string) *DeleteRoleAliasInput {
36913	s.RoleAlias = &v
36914	return s
36915}
36916
36917type DeleteRoleAliasOutput struct {
36918	_ struct{} `type:"structure"`
36919}
36920
36921// String returns the string representation.
36922//
36923// API parameter values that are decorated as "sensitive" in the API will not
36924// be included in the string output. The member name will be present, but the
36925// value will be replaced with "sensitive".
36926func (s DeleteRoleAliasOutput) String() string {
36927	return awsutil.Prettify(s)
36928}
36929
36930// GoString returns the string representation.
36931//
36932// API parameter values that are decorated as "sensitive" in the API will not
36933// be included in the string output. The member name will be present, but the
36934// value will be replaced with "sensitive".
36935func (s DeleteRoleAliasOutput) GoString() string {
36936	return s.String()
36937}
36938
36939type DeleteScheduledAuditInput struct {
36940	_ struct{} `type:"structure" nopayload:"true"`
36941
36942	// The name of the scheduled audit you want to delete.
36943	//
36944	// ScheduledAuditName is a required field
36945	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
36946}
36947
36948// String returns the string representation.
36949//
36950// API parameter values that are decorated as "sensitive" in the API will not
36951// be included in the string output. The member name will be present, but the
36952// value will be replaced with "sensitive".
36953func (s DeleteScheduledAuditInput) String() string {
36954	return awsutil.Prettify(s)
36955}
36956
36957// GoString returns the string representation.
36958//
36959// API parameter values that are decorated as "sensitive" in the API will not
36960// be included in the string output. The member name will be present, but the
36961// value will be replaced with "sensitive".
36962func (s DeleteScheduledAuditInput) GoString() string {
36963	return s.String()
36964}
36965
36966// Validate inspects the fields of the type to determine if they are valid.
36967func (s *DeleteScheduledAuditInput) Validate() error {
36968	invalidParams := request.ErrInvalidParams{Context: "DeleteScheduledAuditInput"}
36969	if s.ScheduledAuditName == nil {
36970		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
36971	}
36972	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
36973		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
36974	}
36975
36976	if invalidParams.Len() > 0 {
36977		return invalidParams
36978	}
36979	return nil
36980}
36981
36982// SetScheduledAuditName sets the ScheduledAuditName field's value.
36983func (s *DeleteScheduledAuditInput) SetScheduledAuditName(v string) *DeleteScheduledAuditInput {
36984	s.ScheduledAuditName = &v
36985	return s
36986}
36987
36988type DeleteScheduledAuditOutput struct {
36989	_ struct{} `type:"structure"`
36990}
36991
36992// String returns the string representation.
36993//
36994// API parameter values that are decorated as "sensitive" in the API will not
36995// be included in the string output. The member name will be present, but the
36996// value will be replaced with "sensitive".
36997func (s DeleteScheduledAuditOutput) String() string {
36998	return awsutil.Prettify(s)
36999}
37000
37001// GoString returns the string representation.
37002//
37003// API parameter values that are decorated as "sensitive" in the API will not
37004// be included in the string output. The member name will be present, but the
37005// value will be replaced with "sensitive".
37006func (s DeleteScheduledAuditOutput) GoString() string {
37007	return s.String()
37008}
37009
37010type DeleteSecurityProfileInput struct {
37011	_ struct{} `type:"structure" nopayload:"true"`
37012
37013	// The expected version of the security profile. A new version is generated
37014	// whenever the security profile is updated. If you specify a value that is
37015	// different from the actual version, a VersionConflictException is thrown.
37016	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
37017
37018	// The name of the security profile to be deleted.
37019	//
37020	// SecurityProfileName is a required field
37021	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
37022}
37023
37024// String returns the string representation.
37025//
37026// API parameter values that are decorated as "sensitive" in the API will not
37027// be included in the string output. The member name will be present, but the
37028// value will be replaced with "sensitive".
37029func (s DeleteSecurityProfileInput) String() string {
37030	return awsutil.Prettify(s)
37031}
37032
37033// GoString returns the string representation.
37034//
37035// API parameter values that are decorated as "sensitive" in the API will not
37036// be included in the string output. The member name will be present, but the
37037// value will be replaced with "sensitive".
37038func (s DeleteSecurityProfileInput) GoString() string {
37039	return s.String()
37040}
37041
37042// Validate inspects the fields of the type to determine if they are valid.
37043func (s *DeleteSecurityProfileInput) Validate() error {
37044	invalidParams := request.ErrInvalidParams{Context: "DeleteSecurityProfileInput"}
37045	if s.SecurityProfileName == nil {
37046		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
37047	}
37048	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
37049		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
37050	}
37051
37052	if invalidParams.Len() > 0 {
37053		return invalidParams
37054	}
37055	return nil
37056}
37057
37058// SetExpectedVersion sets the ExpectedVersion field's value.
37059func (s *DeleteSecurityProfileInput) SetExpectedVersion(v int64) *DeleteSecurityProfileInput {
37060	s.ExpectedVersion = &v
37061	return s
37062}
37063
37064// SetSecurityProfileName sets the SecurityProfileName field's value.
37065func (s *DeleteSecurityProfileInput) SetSecurityProfileName(v string) *DeleteSecurityProfileInput {
37066	s.SecurityProfileName = &v
37067	return s
37068}
37069
37070type DeleteSecurityProfileOutput struct {
37071	_ struct{} `type:"structure"`
37072}
37073
37074// String returns the string representation.
37075//
37076// API parameter values that are decorated as "sensitive" in the API will not
37077// be included in the string output. The member name will be present, but the
37078// value will be replaced with "sensitive".
37079func (s DeleteSecurityProfileOutput) String() string {
37080	return awsutil.Prettify(s)
37081}
37082
37083// GoString returns the string representation.
37084//
37085// API parameter values that are decorated as "sensitive" in the API will not
37086// be included in the string output. The member name will be present, but the
37087// value will be replaced with "sensitive".
37088func (s DeleteSecurityProfileOutput) GoString() string {
37089	return s.String()
37090}
37091
37092type DeleteStreamInput struct {
37093	_ struct{} `type:"structure" nopayload:"true"`
37094
37095	// The stream ID.
37096	//
37097	// StreamId is a required field
37098	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
37099}
37100
37101// String returns the string representation.
37102//
37103// API parameter values that are decorated as "sensitive" in the API will not
37104// be included in the string output. The member name will be present, but the
37105// value will be replaced with "sensitive".
37106func (s DeleteStreamInput) String() string {
37107	return awsutil.Prettify(s)
37108}
37109
37110// GoString returns the string representation.
37111//
37112// API parameter values that are decorated as "sensitive" in the API will not
37113// be included in the string output. The member name will be present, but the
37114// value will be replaced with "sensitive".
37115func (s DeleteStreamInput) GoString() string {
37116	return s.String()
37117}
37118
37119// Validate inspects the fields of the type to determine if they are valid.
37120func (s *DeleteStreamInput) Validate() error {
37121	invalidParams := request.ErrInvalidParams{Context: "DeleteStreamInput"}
37122	if s.StreamId == nil {
37123		invalidParams.Add(request.NewErrParamRequired("StreamId"))
37124	}
37125	if s.StreamId != nil && len(*s.StreamId) < 1 {
37126		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
37127	}
37128
37129	if invalidParams.Len() > 0 {
37130		return invalidParams
37131	}
37132	return nil
37133}
37134
37135// SetStreamId sets the StreamId field's value.
37136func (s *DeleteStreamInput) SetStreamId(v string) *DeleteStreamInput {
37137	s.StreamId = &v
37138	return s
37139}
37140
37141type DeleteStreamOutput struct {
37142	_ struct{} `type:"structure"`
37143}
37144
37145// String returns the string representation.
37146//
37147// API parameter values that are decorated as "sensitive" in the API will not
37148// be included in the string output. The member name will be present, but the
37149// value will be replaced with "sensitive".
37150func (s DeleteStreamOutput) String() string {
37151	return awsutil.Prettify(s)
37152}
37153
37154// GoString returns the string representation.
37155//
37156// API parameter values that are decorated as "sensitive" in the API will not
37157// be included in the string output. The member name will be present, but the
37158// value will be replaced with "sensitive".
37159func (s DeleteStreamOutput) GoString() string {
37160	return s.String()
37161}
37162
37163type DeleteThingGroupInput struct {
37164	_ struct{} `type:"structure" nopayload:"true"`
37165
37166	// The expected version of the thing group to delete.
37167	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
37168
37169	// The name of the thing group to delete.
37170	//
37171	// ThingGroupName is a required field
37172	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
37173}
37174
37175// String returns the string representation.
37176//
37177// API parameter values that are decorated as "sensitive" in the API will not
37178// be included in the string output. The member name will be present, but the
37179// value will be replaced with "sensitive".
37180func (s DeleteThingGroupInput) String() string {
37181	return awsutil.Prettify(s)
37182}
37183
37184// GoString returns the string representation.
37185//
37186// API parameter values that are decorated as "sensitive" in the API will not
37187// be included in the string output. The member name will be present, but the
37188// value will be replaced with "sensitive".
37189func (s DeleteThingGroupInput) GoString() string {
37190	return s.String()
37191}
37192
37193// Validate inspects the fields of the type to determine if they are valid.
37194func (s *DeleteThingGroupInput) Validate() error {
37195	invalidParams := request.ErrInvalidParams{Context: "DeleteThingGroupInput"}
37196	if s.ThingGroupName == nil {
37197		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
37198	}
37199	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
37200		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
37201	}
37202
37203	if invalidParams.Len() > 0 {
37204		return invalidParams
37205	}
37206	return nil
37207}
37208
37209// SetExpectedVersion sets the ExpectedVersion field's value.
37210func (s *DeleteThingGroupInput) SetExpectedVersion(v int64) *DeleteThingGroupInput {
37211	s.ExpectedVersion = &v
37212	return s
37213}
37214
37215// SetThingGroupName sets the ThingGroupName field's value.
37216func (s *DeleteThingGroupInput) SetThingGroupName(v string) *DeleteThingGroupInput {
37217	s.ThingGroupName = &v
37218	return s
37219}
37220
37221type DeleteThingGroupOutput struct {
37222	_ struct{} `type:"structure"`
37223}
37224
37225// String returns the string representation.
37226//
37227// API parameter values that are decorated as "sensitive" in the API will not
37228// be included in the string output. The member name will be present, but the
37229// value will be replaced with "sensitive".
37230func (s DeleteThingGroupOutput) String() string {
37231	return awsutil.Prettify(s)
37232}
37233
37234// GoString returns the string representation.
37235//
37236// API parameter values that are decorated as "sensitive" in the API will not
37237// be included in the string output. The member name will be present, but the
37238// value will be replaced with "sensitive".
37239func (s DeleteThingGroupOutput) GoString() string {
37240	return s.String()
37241}
37242
37243// The input for the DeleteThing operation.
37244type DeleteThingInput struct {
37245	_ struct{} `type:"structure" nopayload:"true"`
37246
37247	// The expected version of the thing record in the registry. If the version
37248	// of the record in the registry does not match the expected version specified
37249	// in the request, the DeleteThing request is rejected with a VersionConflictException.
37250	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
37251
37252	// The name of the thing to delete.
37253	//
37254	// ThingName is a required field
37255	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
37256}
37257
37258// String returns the string representation.
37259//
37260// API parameter values that are decorated as "sensitive" in the API will not
37261// be included in the string output. The member name will be present, but the
37262// value will be replaced with "sensitive".
37263func (s DeleteThingInput) String() string {
37264	return awsutil.Prettify(s)
37265}
37266
37267// GoString returns the string representation.
37268//
37269// API parameter values that are decorated as "sensitive" in the API will not
37270// be included in the string output. The member name will be present, but the
37271// value will be replaced with "sensitive".
37272func (s DeleteThingInput) GoString() string {
37273	return s.String()
37274}
37275
37276// Validate inspects the fields of the type to determine if they are valid.
37277func (s *DeleteThingInput) Validate() error {
37278	invalidParams := request.ErrInvalidParams{Context: "DeleteThingInput"}
37279	if s.ThingName == nil {
37280		invalidParams.Add(request.NewErrParamRequired("ThingName"))
37281	}
37282	if s.ThingName != nil && len(*s.ThingName) < 1 {
37283		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
37284	}
37285
37286	if invalidParams.Len() > 0 {
37287		return invalidParams
37288	}
37289	return nil
37290}
37291
37292// SetExpectedVersion sets the ExpectedVersion field's value.
37293func (s *DeleteThingInput) SetExpectedVersion(v int64) *DeleteThingInput {
37294	s.ExpectedVersion = &v
37295	return s
37296}
37297
37298// SetThingName sets the ThingName field's value.
37299func (s *DeleteThingInput) SetThingName(v string) *DeleteThingInput {
37300	s.ThingName = &v
37301	return s
37302}
37303
37304// The output of the DeleteThing operation.
37305type DeleteThingOutput struct {
37306	_ struct{} `type:"structure"`
37307}
37308
37309// String returns the string representation.
37310//
37311// API parameter values that are decorated as "sensitive" in the API will not
37312// be included in the string output. The member name will be present, but the
37313// value will be replaced with "sensitive".
37314func (s DeleteThingOutput) String() string {
37315	return awsutil.Prettify(s)
37316}
37317
37318// GoString returns the string representation.
37319//
37320// API parameter values that are decorated as "sensitive" in the API will not
37321// be included in the string output. The member name will be present, but the
37322// value will be replaced with "sensitive".
37323func (s DeleteThingOutput) GoString() string {
37324	return s.String()
37325}
37326
37327// The input for the DeleteThingType operation.
37328type DeleteThingTypeInput struct {
37329	_ struct{} `type:"structure" nopayload:"true"`
37330
37331	// The name of the thing type.
37332	//
37333	// ThingTypeName is a required field
37334	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
37335}
37336
37337// String returns the string representation.
37338//
37339// API parameter values that are decorated as "sensitive" in the API will not
37340// be included in the string output. The member name will be present, but the
37341// value will be replaced with "sensitive".
37342func (s DeleteThingTypeInput) String() string {
37343	return awsutil.Prettify(s)
37344}
37345
37346// GoString returns the string representation.
37347//
37348// API parameter values that are decorated as "sensitive" in the API will not
37349// be included in the string output. The member name will be present, but the
37350// value will be replaced with "sensitive".
37351func (s DeleteThingTypeInput) GoString() string {
37352	return s.String()
37353}
37354
37355// Validate inspects the fields of the type to determine if they are valid.
37356func (s *DeleteThingTypeInput) Validate() error {
37357	invalidParams := request.ErrInvalidParams{Context: "DeleteThingTypeInput"}
37358	if s.ThingTypeName == nil {
37359		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
37360	}
37361	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
37362		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
37363	}
37364
37365	if invalidParams.Len() > 0 {
37366		return invalidParams
37367	}
37368	return nil
37369}
37370
37371// SetThingTypeName sets the ThingTypeName field's value.
37372func (s *DeleteThingTypeInput) SetThingTypeName(v string) *DeleteThingTypeInput {
37373	s.ThingTypeName = &v
37374	return s
37375}
37376
37377// The output for the DeleteThingType operation.
37378type DeleteThingTypeOutput struct {
37379	_ struct{} `type:"structure"`
37380}
37381
37382// String returns the string representation.
37383//
37384// API parameter values that are decorated as "sensitive" in the API will not
37385// be included in the string output. The member name will be present, but the
37386// value will be replaced with "sensitive".
37387func (s DeleteThingTypeOutput) String() string {
37388	return awsutil.Prettify(s)
37389}
37390
37391// GoString returns the string representation.
37392//
37393// API parameter values that are decorated as "sensitive" in the API will not
37394// be included in the string output. The member name will be present, but the
37395// value will be replaced with "sensitive".
37396func (s DeleteThingTypeOutput) GoString() string {
37397	return s.String()
37398}
37399
37400type DeleteTopicRuleDestinationInput struct {
37401	_ struct{} `type:"structure" nopayload:"true"`
37402
37403	// The ARN of the topic rule destination to delete.
37404	//
37405	// Arn is a required field
37406	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
37407}
37408
37409// String returns the string representation.
37410//
37411// API parameter values that are decorated as "sensitive" in the API will not
37412// be included in the string output. The member name will be present, but the
37413// value will be replaced with "sensitive".
37414func (s DeleteTopicRuleDestinationInput) String() string {
37415	return awsutil.Prettify(s)
37416}
37417
37418// GoString returns the string representation.
37419//
37420// API parameter values that are decorated as "sensitive" in the API will not
37421// be included in the string output. The member name will be present, but the
37422// value will be replaced with "sensitive".
37423func (s DeleteTopicRuleDestinationInput) GoString() string {
37424	return s.String()
37425}
37426
37427// Validate inspects the fields of the type to determine if they are valid.
37428func (s *DeleteTopicRuleDestinationInput) Validate() error {
37429	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleDestinationInput"}
37430	if s.Arn == nil {
37431		invalidParams.Add(request.NewErrParamRequired("Arn"))
37432	}
37433	if s.Arn != nil && len(*s.Arn) < 1 {
37434		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
37435	}
37436
37437	if invalidParams.Len() > 0 {
37438		return invalidParams
37439	}
37440	return nil
37441}
37442
37443// SetArn sets the Arn field's value.
37444func (s *DeleteTopicRuleDestinationInput) SetArn(v string) *DeleteTopicRuleDestinationInput {
37445	s.Arn = &v
37446	return s
37447}
37448
37449type DeleteTopicRuleDestinationOutput struct {
37450	_ struct{} `type:"structure"`
37451}
37452
37453// String returns the string representation.
37454//
37455// API parameter values that are decorated as "sensitive" in the API will not
37456// be included in the string output. The member name will be present, but the
37457// value will be replaced with "sensitive".
37458func (s DeleteTopicRuleDestinationOutput) String() string {
37459	return awsutil.Prettify(s)
37460}
37461
37462// GoString returns the string representation.
37463//
37464// API parameter values that are decorated as "sensitive" in the API will not
37465// be included in the string output. The member name will be present, but the
37466// value will be replaced with "sensitive".
37467func (s DeleteTopicRuleDestinationOutput) GoString() string {
37468	return s.String()
37469}
37470
37471// The input for the DeleteTopicRule operation.
37472type DeleteTopicRuleInput struct {
37473	_ struct{} `type:"structure" nopayload:"true"`
37474
37475	// The name of the rule.
37476	//
37477	// RuleName is a required field
37478	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
37479}
37480
37481// String returns the string representation.
37482//
37483// API parameter values that are decorated as "sensitive" in the API will not
37484// be included in the string output. The member name will be present, but the
37485// value will be replaced with "sensitive".
37486func (s DeleteTopicRuleInput) String() string {
37487	return awsutil.Prettify(s)
37488}
37489
37490// GoString returns the string representation.
37491//
37492// API parameter values that are decorated as "sensitive" in the API will not
37493// be included in the string output. The member name will be present, but the
37494// value will be replaced with "sensitive".
37495func (s DeleteTopicRuleInput) GoString() string {
37496	return s.String()
37497}
37498
37499// Validate inspects the fields of the type to determine if they are valid.
37500func (s *DeleteTopicRuleInput) Validate() error {
37501	invalidParams := request.ErrInvalidParams{Context: "DeleteTopicRuleInput"}
37502	if s.RuleName == nil {
37503		invalidParams.Add(request.NewErrParamRequired("RuleName"))
37504	}
37505	if s.RuleName != nil && len(*s.RuleName) < 1 {
37506		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
37507	}
37508
37509	if invalidParams.Len() > 0 {
37510		return invalidParams
37511	}
37512	return nil
37513}
37514
37515// SetRuleName sets the RuleName field's value.
37516func (s *DeleteTopicRuleInput) SetRuleName(v string) *DeleteTopicRuleInput {
37517	s.RuleName = &v
37518	return s
37519}
37520
37521type DeleteTopicRuleOutput struct {
37522	_ struct{} `type:"structure"`
37523}
37524
37525// String returns the string representation.
37526//
37527// API parameter values that are decorated as "sensitive" in the API will not
37528// be included in the string output. The member name will be present, but the
37529// value will be replaced with "sensitive".
37530func (s DeleteTopicRuleOutput) String() string {
37531	return awsutil.Prettify(s)
37532}
37533
37534// GoString returns the string representation.
37535//
37536// API parameter values that are decorated as "sensitive" in the API will not
37537// be included in the string output. The member name will be present, but the
37538// value will be replaced with "sensitive".
37539func (s DeleteTopicRuleOutput) GoString() string {
37540	return s.String()
37541}
37542
37543type DeleteV2LoggingLevelInput struct {
37544	_ struct{} `type:"structure" nopayload:"true"`
37545
37546	// The name of the resource for which you are configuring logging.
37547	//
37548	// TargetName is a required field
37549	TargetName *string `location:"querystring" locationName:"targetName" type:"string" required:"true"`
37550
37551	// The type of resource for which you are configuring logging. Must be THING_Group.
37552	//
37553	// TargetType is a required field
37554	TargetType *string `location:"querystring" locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
37555}
37556
37557// String returns the string representation.
37558//
37559// API parameter values that are decorated as "sensitive" in the API will not
37560// be included in the string output. The member name will be present, but the
37561// value will be replaced with "sensitive".
37562func (s DeleteV2LoggingLevelInput) String() string {
37563	return awsutil.Prettify(s)
37564}
37565
37566// GoString returns the string representation.
37567//
37568// API parameter values that are decorated as "sensitive" in the API will not
37569// be included in the string output. The member name will be present, but the
37570// value will be replaced with "sensitive".
37571func (s DeleteV2LoggingLevelInput) GoString() string {
37572	return s.String()
37573}
37574
37575// Validate inspects the fields of the type to determine if they are valid.
37576func (s *DeleteV2LoggingLevelInput) Validate() error {
37577	invalidParams := request.ErrInvalidParams{Context: "DeleteV2LoggingLevelInput"}
37578	if s.TargetName == nil {
37579		invalidParams.Add(request.NewErrParamRequired("TargetName"))
37580	}
37581	if s.TargetType == nil {
37582		invalidParams.Add(request.NewErrParamRequired("TargetType"))
37583	}
37584
37585	if invalidParams.Len() > 0 {
37586		return invalidParams
37587	}
37588	return nil
37589}
37590
37591// SetTargetName sets the TargetName field's value.
37592func (s *DeleteV2LoggingLevelInput) SetTargetName(v string) *DeleteV2LoggingLevelInput {
37593	s.TargetName = &v
37594	return s
37595}
37596
37597// SetTargetType sets the TargetType field's value.
37598func (s *DeleteV2LoggingLevelInput) SetTargetType(v string) *DeleteV2LoggingLevelInput {
37599	s.TargetType = &v
37600	return s
37601}
37602
37603type DeleteV2LoggingLevelOutput struct {
37604	_ struct{} `type:"structure"`
37605}
37606
37607// String returns the string representation.
37608//
37609// API parameter values that are decorated as "sensitive" in the API will not
37610// be included in the string output. The member name will be present, but the
37611// value will be replaced with "sensitive".
37612func (s DeleteV2LoggingLevelOutput) String() string {
37613	return awsutil.Prettify(s)
37614}
37615
37616// GoString returns the string representation.
37617//
37618// API parameter values that are decorated as "sensitive" in the API will not
37619// be included in the string output. The member name will be present, but the
37620// value will be replaced with "sensitive".
37621func (s DeleteV2LoggingLevelOutput) GoString() string {
37622	return s.String()
37623}
37624
37625// Contains information that denied the authorization.
37626type Denied struct {
37627	_ struct{} `type:"structure"`
37628
37629	// Information that explicitly denies the authorization.
37630	ExplicitDeny *ExplicitDeny `locationName:"explicitDeny" type:"structure"`
37631
37632	// Information that implicitly denies the authorization. When a policy doesn't
37633	// explicitly deny or allow an action on a resource it is considered an implicit
37634	// deny.
37635	ImplicitDeny *ImplicitDeny `locationName:"implicitDeny" type:"structure"`
37636}
37637
37638// String returns the string representation.
37639//
37640// API parameter values that are decorated as "sensitive" in the API will not
37641// be included in the string output. The member name will be present, but the
37642// value will be replaced with "sensitive".
37643func (s Denied) String() string {
37644	return awsutil.Prettify(s)
37645}
37646
37647// GoString returns the string representation.
37648//
37649// API parameter values that are decorated as "sensitive" in the API will not
37650// be included in the string output. The member name will be present, but the
37651// value will be replaced with "sensitive".
37652func (s Denied) GoString() string {
37653	return s.String()
37654}
37655
37656// SetExplicitDeny sets the ExplicitDeny field's value.
37657func (s *Denied) SetExplicitDeny(v *ExplicitDeny) *Denied {
37658	s.ExplicitDeny = v
37659	return s
37660}
37661
37662// SetImplicitDeny sets the ImplicitDeny field's value.
37663func (s *Denied) SetImplicitDeny(v *ImplicitDeny) *Denied {
37664	s.ImplicitDeny = v
37665	return s
37666}
37667
37668// The input for the DeprecateThingType operation.
37669type DeprecateThingTypeInput struct {
37670	_ struct{} `type:"structure"`
37671
37672	// The name of the thing type to deprecate.
37673	//
37674	// ThingTypeName is a required field
37675	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
37676
37677	// Whether to undeprecate a deprecated thing type. If true, the thing type will
37678	// not be deprecated anymore and you can associate it with things.
37679	UndoDeprecate *bool `locationName:"undoDeprecate" type:"boolean"`
37680}
37681
37682// String returns the string representation.
37683//
37684// API parameter values that are decorated as "sensitive" in the API will not
37685// be included in the string output. The member name will be present, but the
37686// value will be replaced with "sensitive".
37687func (s DeprecateThingTypeInput) String() string {
37688	return awsutil.Prettify(s)
37689}
37690
37691// GoString returns the string representation.
37692//
37693// API parameter values that are decorated as "sensitive" in the API will not
37694// be included in the string output. The member name will be present, but the
37695// value will be replaced with "sensitive".
37696func (s DeprecateThingTypeInput) GoString() string {
37697	return s.String()
37698}
37699
37700// Validate inspects the fields of the type to determine if they are valid.
37701func (s *DeprecateThingTypeInput) Validate() error {
37702	invalidParams := request.ErrInvalidParams{Context: "DeprecateThingTypeInput"}
37703	if s.ThingTypeName == nil {
37704		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
37705	}
37706	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
37707		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
37708	}
37709
37710	if invalidParams.Len() > 0 {
37711		return invalidParams
37712	}
37713	return nil
37714}
37715
37716// SetThingTypeName sets the ThingTypeName field's value.
37717func (s *DeprecateThingTypeInput) SetThingTypeName(v string) *DeprecateThingTypeInput {
37718	s.ThingTypeName = &v
37719	return s
37720}
37721
37722// SetUndoDeprecate sets the UndoDeprecate field's value.
37723func (s *DeprecateThingTypeInput) SetUndoDeprecate(v bool) *DeprecateThingTypeInput {
37724	s.UndoDeprecate = &v
37725	return s
37726}
37727
37728// The output for the DeprecateThingType operation.
37729type DeprecateThingTypeOutput struct {
37730	_ struct{} `type:"structure"`
37731}
37732
37733// String returns the string representation.
37734//
37735// API parameter values that are decorated as "sensitive" in the API will not
37736// be included in the string output. The member name will be present, but the
37737// value will be replaced with "sensitive".
37738func (s DeprecateThingTypeOutput) String() string {
37739	return awsutil.Prettify(s)
37740}
37741
37742// GoString returns the string representation.
37743//
37744// API parameter values that are decorated as "sensitive" in the API will not
37745// be included in the string output. The member name will be present, but the
37746// value will be replaced with "sensitive".
37747func (s DeprecateThingTypeOutput) GoString() string {
37748	return s.String()
37749}
37750
37751type DescribeAccountAuditConfigurationInput struct {
37752	_ struct{} `type:"structure" nopayload:"true"`
37753}
37754
37755// String returns the string representation.
37756//
37757// API parameter values that are decorated as "sensitive" in the API will not
37758// be included in the string output. The member name will be present, but the
37759// value will be replaced with "sensitive".
37760func (s DescribeAccountAuditConfigurationInput) String() string {
37761	return awsutil.Prettify(s)
37762}
37763
37764// GoString returns the string representation.
37765//
37766// API parameter values that are decorated as "sensitive" in the API will not
37767// be included in the string output. The member name will be present, but the
37768// value will be replaced with "sensitive".
37769func (s DescribeAccountAuditConfigurationInput) GoString() string {
37770	return s.String()
37771}
37772
37773type DescribeAccountAuditConfigurationOutput struct {
37774	_ struct{} `type:"structure"`
37775
37776	// Which audit checks are enabled and disabled for this account.
37777	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
37778
37779	// Information about the targets to which audit notifications are sent for this
37780	// account.
37781	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
37782
37783	// The ARN of the role that grants permission to IoT to access information about
37784	// your devices, policies, certificates, and other items as required when performing
37785	// an audit.
37786	//
37787	// On the first call to UpdateAccountAuditConfiguration, this parameter is required.
37788	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
37789}
37790
37791// String returns the string representation.
37792//
37793// API parameter values that are decorated as "sensitive" in the API will not
37794// be included in the string output. The member name will be present, but the
37795// value will be replaced with "sensitive".
37796func (s DescribeAccountAuditConfigurationOutput) String() string {
37797	return awsutil.Prettify(s)
37798}
37799
37800// GoString returns the string representation.
37801//
37802// API parameter values that are decorated as "sensitive" in the API will not
37803// be included in the string output. The member name will be present, but the
37804// value will be replaced with "sensitive".
37805func (s DescribeAccountAuditConfigurationOutput) GoString() string {
37806	return s.String()
37807}
37808
37809// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
37810func (s *DescribeAccountAuditConfigurationOutput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *DescribeAccountAuditConfigurationOutput {
37811	s.AuditCheckConfigurations = v
37812	return s
37813}
37814
37815// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
37816func (s *DescribeAccountAuditConfigurationOutput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *DescribeAccountAuditConfigurationOutput {
37817	s.AuditNotificationTargetConfigurations = v
37818	return s
37819}
37820
37821// SetRoleArn sets the RoleArn field's value.
37822func (s *DescribeAccountAuditConfigurationOutput) SetRoleArn(v string) *DescribeAccountAuditConfigurationOutput {
37823	s.RoleArn = &v
37824	return s
37825}
37826
37827type DescribeAuditFindingInput struct {
37828	_ struct{} `type:"structure" nopayload:"true"`
37829
37830	// A unique identifier for a single audit finding. You can use this identifier
37831	// to apply mitigation actions to the finding.
37832	//
37833	// FindingId is a required field
37834	FindingId *string `location:"uri" locationName:"findingId" min:"1" type:"string" required:"true"`
37835}
37836
37837// String returns the string representation.
37838//
37839// API parameter values that are decorated as "sensitive" in the API will not
37840// be included in the string output. The member name will be present, but the
37841// value will be replaced with "sensitive".
37842func (s DescribeAuditFindingInput) String() string {
37843	return awsutil.Prettify(s)
37844}
37845
37846// GoString returns the string representation.
37847//
37848// API parameter values that are decorated as "sensitive" in the API will not
37849// be included in the string output. The member name will be present, but the
37850// value will be replaced with "sensitive".
37851func (s DescribeAuditFindingInput) GoString() string {
37852	return s.String()
37853}
37854
37855// Validate inspects the fields of the type to determine if they are valid.
37856func (s *DescribeAuditFindingInput) Validate() error {
37857	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditFindingInput"}
37858	if s.FindingId == nil {
37859		invalidParams.Add(request.NewErrParamRequired("FindingId"))
37860	}
37861	if s.FindingId != nil && len(*s.FindingId) < 1 {
37862		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
37863	}
37864
37865	if invalidParams.Len() > 0 {
37866		return invalidParams
37867	}
37868	return nil
37869}
37870
37871// SetFindingId sets the FindingId field's value.
37872func (s *DescribeAuditFindingInput) SetFindingId(v string) *DescribeAuditFindingInput {
37873	s.FindingId = &v
37874	return s
37875}
37876
37877type DescribeAuditFindingOutput struct {
37878	_ struct{} `type:"structure"`
37879
37880	// The findings (results) of the audit.
37881	Finding *AuditFinding `locationName:"finding" type:"structure"`
37882}
37883
37884// String returns the string representation.
37885//
37886// API parameter values that are decorated as "sensitive" in the API will not
37887// be included in the string output. The member name will be present, but the
37888// value will be replaced with "sensitive".
37889func (s DescribeAuditFindingOutput) String() string {
37890	return awsutil.Prettify(s)
37891}
37892
37893// GoString returns the string representation.
37894//
37895// API parameter values that are decorated as "sensitive" in the API will not
37896// be included in the string output. The member name will be present, but the
37897// value will be replaced with "sensitive".
37898func (s DescribeAuditFindingOutput) GoString() string {
37899	return s.String()
37900}
37901
37902// SetFinding sets the Finding field's value.
37903func (s *DescribeAuditFindingOutput) SetFinding(v *AuditFinding) *DescribeAuditFindingOutput {
37904	s.Finding = v
37905	return s
37906}
37907
37908type DescribeAuditMitigationActionsTaskInput struct {
37909	_ struct{} `type:"structure" nopayload:"true"`
37910
37911	// The unique identifier for the audit mitigation task.
37912	//
37913	// TaskId is a required field
37914	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
37915}
37916
37917// String returns the string representation.
37918//
37919// API parameter values that are decorated as "sensitive" in the API will not
37920// be included in the string output. The member name will be present, but the
37921// value will be replaced with "sensitive".
37922func (s DescribeAuditMitigationActionsTaskInput) String() string {
37923	return awsutil.Prettify(s)
37924}
37925
37926// GoString returns the string representation.
37927//
37928// API parameter values that are decorated as "sensitive" in the API will not
37929// be included in the string output. The member name will be present, but the
37930// value will be replaced with "sensitive".
37931func (s DescribeAuditMitigationActionsTaskInput) GoString() string {
37932	return s.String()
37933}
37934
37935// Validate inspects the fields of the type to determine if they are valid.
37936func (s *DescribeAuditMitigationActionsTaskInput) Validate() error {
37937	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditMitigationActionsTaskInput"}
37938	if s.TaskId == nil {
37939		invalidParams.Add(request.NewErrParamRequired("TaskId"))
37940	}
37941	if s.TaskId != nil && len(*s.TaskId) < 1 {
37942		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
37943	}
37944
37945	if invalidParams.Len() > 0 {
37946		return invalidParams
37947	}
37948	return nil
37949}
37950
37951// SetTaskId sets the TaskId field's value.
37952func (s *DescribeAuditMitigationActionsTaskInput) SetTaskId(v string) *DescribeAuditMitigationActionsTaskInput {
37953	s.TaskId = &v
37954	return s
37955}
37956
37957type DescribeAuditMitigationActionsTaskOutput struct {
37958	_ struct{} `type:"structure"`
37959
37960	// Specifies the mitigation actions and their parameters that are applied as
37961	// part of this task.
37962	ActionsDefinition []*MitigationAction `locationName:"actionsDefinition" type:"list"`
37963
37964	// Specifies the mitigation actions that should be applied to specific audit
37965	// checks.
37966	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map"`
37967
37968	// The date and time when the task was completed or canceled.
37969	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
37970
37971	// The date and time when the task was started.
37972	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
37973
37974	// Identifies the findings to which the mitigation actions are applied. This
37975	// can be by audit checks, by audit task, or a set of findings.
37976	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure"`
37977
37978	// Aggregate counts of the results when the mitigation tasks were applied to
37979	// the findings for this audit mitigation actions task.
37980	TaskStatistics map[string]*TaskStatisticsForAuditCheck `locationName:"taskStatistics" type:"map"`
37981
37982	// The current status of the task.
37983	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
37984}
37985
37986// String returns the string representation.
37987//
37988// API parameter values that are decorated as "sensitive" in the API will not
37989// be included in the string output. The member name will be present, but the
37990// value will be replaced with "sensitive".
37991func (s DescribeAuditMitigationActionsTaskOutput) String() string {
37992	return awsutil.Prettify(s)
37993}
37994
37995// GoString returns the string representation.
37996//
37997// API parameter values that are decorated as "sensitive" in the API will not
37998// be included in the string output. The member name will be present, but the
37999// value will be replaced with "sensitive".
38000func (s DescribeAuditMitigationActionsTaskOutput) GoString() string {
38001	return s.String()
38002}
38003
38004// SetActionsDefinition sets the ActionsDefinition field's value.
38005func (s *DescribeAuditMitigationActionsTaskOutput) SetActionsDefinition(v []*MitigationAction) *DescribeAuditMitigationActionsTaskOutput {
38006	s.ActionsDefinition = v
38007	return s
38008}
38009
38010// SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
38011func (s *DescribeAuditMitigationActionsTaskOutput) SetAuditCheckToActionsMapping(v map[string][]*string) *DescribeAuditMitigationActionsTaskOutput {
38012	s.AuditCheckToActionsMapping = v
38013	return s
38014}
38015
38016// SetEndTime sets the EndTime field's value.
38017func (s *DescribeAuditMitigationActionsTaskOutput) SetEndTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
38018	s.EndTime = &v
38019	return s
38020}
38021
38022// SetStartTime sets the StartTime field's value.
38023func (s *DescribeAuditMitigationActionsTaskOutput) SetStartTime(v time.Time) *DescribeAuditMitigationActionsTaskOutput {
38024	s.StartTime = &v
38025	return s
38026}
38027
38028// SetTarget sets the Target field's value.
38029func (s *DescribeAuditMitigationActionsTaskOutput) SetTarget(v *AuditMitigationActionsTaskTarget) *DescribeAuditMitigationActionsTaskOutput {
38030	s.Target = v
38031	return s
38032}
38033
38034// SetTaskStatistics sets the TaskStatistics field's value.
38035func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatistics(v map[string]*TaskStatisticsForAuditCheck) *DescribeAuditMitigationActionsTaskOutput {
38036	s.TaskStatistics = v
38037	return s
38038}
38039
38040// SetTaskStatus sets the TaskStatus field's value.
38041func (s *DescribeAuditMitigationActionsTaskOutput) SetTaskStatus(v string) *DescribeAuditMitigationActionsTaskOutput {
38042	s.TaskStatus = &v
38043	return s
38044}
38045
38046type DescribeAuditSuppressionInput struct {
38047	_ struct{} `type:"structure"`
38048
38049	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
38050	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
38051	// to select which checks are enabled.)
38052	//
38053	// CheckName is a required field
38054	CheckName *string `locationName:"checkName" type:"string" required:"true"`
38055
38056	// Information that identifies the noncompliant resource.
38057	//
38058	// ResourceIdentifier is a required field
38059	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
38060}
38061
38062// String returns the string representation.
38063//
38064// API parameter values that are decorated as "sensitive" in the API will not
38065// be included in the string output. The member name will be present, but the
38066// value will be replaced with "sensitive".
38067func (s DescribeAuditSuppressionInput) String() string {
38068	return awsutil.Prettify(s)
38069}
38070
38071// GoString returns the string representation.
38072//
38073// API parameter values that are decorated as "sensitive" in the API will not
38074// be included in the string output. The member name will be present, but the
38075// value will be replaced with "sensitive".
38076func (s DescribeAuditSuppressionInput) GoString() string {
38077	return s.String()
38078}
38079
38080// Validate inspects the fields of the type to determine if they are valid.
38081func (s *DescribeAuditSuppressionInput) Validate() error {
38082	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditSuppressionInput"}
38083	if s.CheckName == nil {
38084		invalidParams.Add(request.NewErrParamRequired("CheckName"))
38085	}
38086	if s.ResourceIdentifier == nil {
38087		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
38088	}
38089	if s.ResourceIdentifier != nil {
38090		if err := s.ResourceIdentifier.Validate(); err != nil {
38091			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
38092		}
38093	}
38094
38095	if invalidParams.Len() > 0 {
38096		return invalidParams
38097	}
38098	return nil
38099}
38100
38101// SetCheckName sets the CheckName field's value.
38102func (s *DescribeAuditSuppressionInput) SetCheckName(v string) *DescribeAuditSuppressionInput {
38103	s.CheckName = &v
38104	return s
38105}
38106
38107// SetResourceIdentifier sets the ResourceIdentifier field's value.
38108func (s *DescribeAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *DescribeAuditSuppressionInput {
38109	s.ResourceIdentifier = v
38110	return s
38111}
38112
38113type DescribeAuditSuppressionOutput struct {
38114	_ struct{} `type:"structure"`
38115
38116	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
38117	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
38118	// to select which checks are enabled.)
38119	CheckName *string `locationName:"checkName" type:"string"`
38120
38121	// The description of the audit suppression.
38122	Description *string `locationName:"description" type:"string"`
38123
38124	// The epoch timestamp in seconds at which this suppression expires.
38125	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
38126
38127	// Information that identifies the noncompliant resource.
38128	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
38129
38130	// Indicates whether a suppression should exist indefinitely or not.
38131	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
38132}
38133
38134// String returns the string representation.
38135//
38136// API parameter values that are decorated as "sensitive" in the API will not
38137// be included in the string output. The member name will be present, but the
38138// value will be replaced with "sensitive".
38139func (s DescribeAuditSuppressionOutput) String() string {
38140	return awsutil.Prettify(s)
38141}
38142
38143// GoString returns the string representation.
38144//
38145// API parameter values that are decorated as "sensitive" in the API will not
38146// be included in the string output. The member name will be present, but the
38147// value will be replaced with "sensitive".
38148func (s DescribeAuditSuppressionOutput) GoString() string {
38149	return s.String()
38150}
38151
38152// SetCheckName sets the CheckName field's value.
38153func (s *DescribeAuditSuppressionOutput) SetCheckName(v string) *DescribeAuditSuppressionOutput {
38154	s.CheckName = &v
38155	return s
38156}
38157
38158// SetDescription sets the Description field's value.
38159func (s *DescribeAuditSuppressionOutput) SetDescription(v string) *DescribeAuditSuppressionOutput {
38160	s.Description = &v
38161	return s
38162}
38163
38164// SetExpirationDate sets the ExpirationDate field's value.
38165func (s *DescribeAuditSuppressionOutput) SetExpirationDate(v time.Time) *DescribeAuditSuppressionOutput {
38166	s.ExpirationDate = &v
38167	return s
38168}
38169
38170// SetResourceIdentifier sets the ResourceIdentifier field's value.
38171func (s *DescribeAuditSuppressionOutput) SetResourceIdentifier(v *ResourceIdentifier) *DescribeAuditSuppressionOutput {
38172	s.ResourceIdentifier = v
38173	return s
38174}
38175
38176// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
38177func (s *DescribeAuditSuppressionOutput) SetSuppressIndefinitely(v bool) *DescribeAuditSuppressionOutput {
38178	s.SuppressIndefinitely = &v
38179	return s
38180}
38181
38182type DescribeAuditTaskInput struct {
38183	_ struct{} `type:"structure" nopayload:"true"`
38184
38185	// The ID of the audit whose information you want to get.
38186	//
38187	// TaskId is a required field
38188	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
38189}
38190
38191// String returns the string representation.
38192//
38193// API parameter values that are decorated as "sensitive" in the API will not
38194// be included in the string output. The member name will be present, but the
38195// value will be replaced with "sensitive".
38196func (s DescribeAuditTaskInput) String() string {
38197	return awsutil.Prettify(s)
38198}
38199
38200// GoString returns the string representation.
38201//
38202// API parameter values that are decorated as "sensitive" in the API will not
38203// be included in the string output. The member name will be present, but the
38204// value will be replaced with "sensitive".
38205func (s DescribeAuditTaskInput) GoString() string {
38206	return s.String()
38207}
38208
38209// Validate inspects the fields of the type to determine if they are valid.
38210func (s *DescribeAuditTaskInput) Validate() error {
38211	invalidParams := request.ErrInvalidParams{Context: "DescribeAuditTaskInput"}
38212	if s.TaskId == nil {
38213		invalidParams.Add(request.NewErrParamRequired("TaskId"))
38214	}
38215	if s.TaskId != nil && len(*s.TaskId) < 1 {
38216		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
38217	}
38218
38219	if invalidParams.Len() > 0 {
38220		return invalidParams
38221	}
38222	return nil
38223}
38224
38225// SetTaskId sets the TaskId field's value.
38226func (s *DescribeAuditTaskInput) SetTaskId(v string) *DescribeAuditTaskInput {
38227	s.TaskId = &v
38228	return s
38229}
38230
38231type DescribeAuditTaskOutput struct {
38232	_ struct{} `type:"structure"`
38233
38234	// Detailed information about each check performed during this audit.
38235	AuditDetails map[string]*AuditCheckDetails `locationName:"auditDetails" type:"map"`
38236
38237	// The name of the scheduled audit (only if the audit was a scheduled audit).
38238	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
38239
38240	// The time the audit started.
38241	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
38242
38243	// Statistical information about the audit.
38244	TaskStatistics *TaskStatistics `locationName:"taskStatistics" type:"structure"`
38245
38246	// The status of the audit: one of "IN_PROGRESS", "COMPLETED", "FAILED", or
38247	// "CANCELED".
38248	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
38249
38250	// The type of audit: "ON_DEMAND_AUDIT_TASK" or "SCHEDULED_AUDIT_TASK".
38251	TaskType *string `locationName:"taskType" type:"string" enum:"AuditTaskType"`
38252}
38253
38254// String returns the string representation.
38255//
38256// API parameter values that are decorated as "sensitive" in the API will not
38257// be included in the string output. The member name will be present, but the
38258// value will be replaced with "sensitive".
38259func (s DescribeAuditTaskOutput) String() string {
38260	return awsutil.Prettify(s)
38261}
38262
38263// GoString returns the string representation.
38264//
38265// API parameter values that are decorated as "sensitive" in the API will not
38266// be included in the string output. The member name will be present, but the
38267// value will be replaced with "sensitive".
38268func (s DescribeAuditTaskOutput) GoString() string {
38269	return s.String()
38270}
38271
38272// SetAuditDetails sets the AuditDetails field's value.
38273func (s *DescribeAuditTaskOutput) SetAuditDetails(v map[string]*AuditCheckDetails) *DescribeAuditTaskOutput {
38274	s.AuditDetails = v
38275	return s
38276}
38277
38278// SetScheduledAuditName sets the ScheduledAuditName field's value.
38279func (s *DescribeAuditTaskOutput) SetScheduledAuditName(v string) *DescribeAuditTaskOutput {
38280	s.ScheduledAuditName = &v
38281	return s
38282}
38283
38284// SetTaskStartTime sets the TaskStartTime field's value.
38285func (s *DescribeAuditTaskOutput) SetTaskStartTime(v time.Time) *DescribeAuditTaskOutput {
38286	s.TaskStartTime = &v
38287	return s
38288}
38289
38290// SetTaskStatistics sets the TaskStatistics field's value.
38291func (s *DescribeAuditTaskOutput) SetTaskStatistics(v *TaskStatistics) *DescribeAuditTaskOutput {
38292	s.TaskStatistics = v
38293	return s
38294}
38295
38296// SetTaskStatus sets the TaskStatus field's value.
38297func (s *DescribeAuditTaskOutput) SetTaskStatus(v string) *DescribeAuditTaskOutput {
38298	s.TaskStatus = &v
38299	return s
38300}
38301
38302// SetTaskType sets the TaskType field's value.
38303func (s *DescribeAuditTaskOutput) SetTaskType(v string) *DescribeAuditTaskOutput {
38304	s.TaskType = &v
38305	return s
38306}
38307
38308type DescribeAuthorizerInput struct {
38309	_ struct{} `type:"structure" nopayload:"true"`
38310
38311	// The name of the authorizer to describe.
38312	//
38313	// AuthorizerName is a required field
38314	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
38315}
38316
38317// String returns the string representation.
38318//
38319// API parameter values that are decorated as "sensitive" in the API will not
38320// be included in the string output. The member name will be present, but the
38321// value will be replaced with "sensitive".
38322func (s DescribeAuthorizerInput) String() string {
38323	return awsutil.Prettify(s)
38324}
38325
38326// GoString returns the string representation.
38327//
38328// API parameter values that are decorated as "sensitive" in the API will not
38329// be included in the string output. The member name will be present, but the
38330// value will be replaced with "sensitive".
38331func (s DescribeAuthorizerInput) GoString() string {
38332	return s.String()
38333}
38334
38335// Validate inspects the fields of the type to determine if they are valid.
38336func (s *DescribeAuthorizerInput) Validate() error {
38337	invalidParams := request.ErrInvalidParams{Context: "DescribeAuthorizerInput"}
38338	if s.AuthorizerName == nil {
38339		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
38340	}
38341	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
38342		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
38343	}
38344
38345	if invalidParams.Len() > 0 {
38346		return invalidParams
38347	}
38348	return nil
38349}
38350
38351// SetAuthorizerName sets the AuthorizerName field's value.
38352func (s *DescribeAuthorizerInput) SetAuthorizerName(v string) *DescribeAuthorizerInput {
38353	s.AuthorizerName = &v
38354	return s
38355}
38356
38357type DescribeAuthorizerOutput struct {
38358	_ struct{} `type:"structure"`
38359
38360	// The authorizer description.
38361	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
38362}
38363
38364// String returns the string representation.
38365//
38366// API parameter values that are decorated as "sensitive" in the API will not
38367// be included in the string output. The member name will be present, but the
38368// value will be replaced with "sensitive".
38369func (s DescribeAuthorizerOutput) String() string {
38370	return awsutil.Prettify(s)
38371}
38372
38373// GoString returns the string representation.
38374//
38375// API parameter values that are decorated as "sensitive" in the API will not
38376// be included in the string output. The member name will be present, but the
38377// value will be replaced with "sensitive".
38378func (s DescribeAuthorizerOutput) GoString() string {
38379	return s.String()
38380}
38381
38382// SetAuthorizerDescription sets the AuthorizerDescription field's value.
38383func (s *DescribeAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeAuthorizerOutput {
38384	s.AuthorizerDescription = v
38385	return s
38386}
38387
38388type DescribeBillingGroupInput struct {
38389	_ struct{} `type:"structure" nopayload:"true"`
38390
38391	// The name of the billing group.
38392	//
38393	// BillingGroupName is a required field
38394	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
38395}
38396
38397// String returns the string representation.
38398//
38399// API parameter values that are decorated as "sensitive" in the API will not
38400// be included in the string output. The member name will be present, but the
38401// value will be replaced with "sensitive".
38402func (s DescribeBillingGroupInput) String() string {
38403	return awsutil.Prettify(s)
38404}
38405
38406// GoString returns the string representation.
38407//
38408// API parameter values that are decorated as "sensitive" in the API will not
38409// be included in the string output. The member name will be present, but the
38410// value will be replaced with "sensitive".
38411func (s DescribeBillingGroupInput) GoString() string {
38412	return s.String()
38413}
38414
38415// Validate inspects the fields of the type to determine if they are valid.
38416func (s *DescribeBillingGroupInput) Validate() error {
38417	invalidParams := request.ErrInvalidParams{Context: "DescribeBillingGroupInput"}
38418	if s.BillingGroupName == nil {
38419		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
38420	}
38421	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
38422		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
38423	}
38424
38425	if invalidParams.Len() > 0 {
38426		return invalidParams
38427	}
38428	return nil
38429}
38430
38431// SetBillingGroupName sets the BillingGroupName field's value.
38432func (s *DescribeBillingGroupInput) SetBillingGroupName(v string) *DescribeBillingGroupInput {
38433	s.BillingGroupName = &v
38434	return s
38435}
38436
38437type DescribeBillingGroupOutput struct {
38438	_ struct{} `type:"structure"`
38439
38440	// The ARN of the billing group.
38441	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
38442
38443	// The ID of the billing group.
38444	BillingGroupId *string `locationName:"billingGroupId" min:"1" type:"string"`
38445
38446	// Additional information about the billing group.
38447	BillingGroupMetadata *BillingGroupMetadata `locationName:"billingGroupMetadata" type:"structure"`
38448
38449	// The name of the billing group.
38450	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
38451
38452	// The properties of the billing group.
38453	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure"`
38454
38455	// The version of the billing group.
38456	Version *int64 `locationName:"version" type:"long"`
38457}
38458
38459// String returns the string representation.
38460//
38461// API parameter values that are decorated as "sensitive" in the API will not
38462// be included in the string output. The member name will be present, but the
38463// value will be replaced with "sensitive".
38464func (s DescribeBillingGroupOutput) String() string {
38465	return awsutil.Prettify(s)
38466}
38467
38468// GoString returns the string representation.
38469//
38470// API parameter values that are decorated as "sensitive" in the API will not
38471// be included in the string output. The member name will be present, but the
38472// value will be replaced with "sensitive".
38473func (s DescribeBillingGroupOutput) GoString() string {
38474	return s.String()
38475}
38476
38477// SetBillingGroupArn sets the BillingGroupArn field's value.
38478func (s *DescribeBillingGroupOutput) SetBillingGroupArn(v string) *DescribeBillingGroupOutput {
38479	s.BillingGroupArn = &v
38480	return s
38481}
38482
38483// SetBillingGroupId sets the BillingGroupId field's value.
38484func (s *DescribeBillingGroupOutput) SetBillingGroupId(v string) *DescribeBillingGroupOutput {
38485	s.BillingGroupId = &v
38486	return s
38487}
38488
38489// SetBillingGroupMetadata sets the BillingGroupMetadata field's value.
38490func (s *DescribeBillingGroupOutput) SetBillingGroupMetadata(v *BillingGroupMetadata) *DescribeBillingGroupOutput {
38491	s.BillingGroupMetadata = v
38492	return s
38493}
38494
38495// SetBillingGroupName sets the BillingGroupName field's value.
38496func (s *DescribeBillingGroupOutput) SetBillingGroupName(v string) *DescribeBillingGroupOutput {
38497	s.BillingGroupName = &v
38498	return s
38499}
38500
38501// SetBillingGroupProperties sets the BillingGroupProperties field's value.
38502func (s *DescribeBillingGroupOutput) SetBillingGroupProperties(v *BillingGroupProperties) *DescribeBillingGroupOutput {
38503	s.BillingGroupProperties = v
38504	return s
38505}
38506
38507// SetVersion sets the Version field's value.
38508func (s *DescribeBillingGroupOutput) SetVersion(v int64) *DescribeBillingGroupOutput {
38509	s.Version = &v
38510	return s
38511}
38512
38513// The input for the DescribeCACertificate operation.
38514type DescribeCACertificateInput struct {
38515	_ struct{} `type:"structure" nopayload:"true"`
38516
38517	// The CA certificate identifier.
38518	//
38519	// CertificateId is a required field
38520	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
38521}
38522
38523// String returns the string representation.
38524//
38525// API parameter values that are decorated as "sensitive" in the API will not
38526// be included in the string output. The member name will be present, but the
38527// value will be replaced with "sensitive".
38528func (s DescribeCACertificateInput) String() string {
38529	return awsutil.Prettify(s)
38530}
38531
38532// GoString returns the string representation.
38533//
38534// API parameter values that are decorated as "sensitive" in the API will not
38535// be included in the string output. The member name will be present, but the
38536// value will be replaced with "sensitive".
38537func (s DescribeCACertificateInput) GoString() string {
38538	return s.String()
38539}
38540
38541// Validate inspects the fields of the type to determine if they are valid.
38542func (s *DescribeCACertificateInput) Validate() error {
38543	invalidParams := request.ErrInvalidParams{Context: "DescribeCACertificateInput"}
38544	if s.CertificateId == nil {
38545		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
38546	}
38547	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
38548		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
38549	}
38550
38551	if invalidParams.Len() > 0 {
38552		return invalidParams
38553	}
38554	return nil
38555}
38556
38557// SetCertificateId sets the CertificateId field's value.
38558func (s *DescribeCACertificateInput) SetCertificateId(v string) *DescribeCACertificateInput {
38559	s.CertificateId = &v
38560	return s
38561}
38562
38563// The output from the DescribeCACertificate operation.
38564type DescribeCACertificateOutput struct {
38565	_ struct{} `type:"structure"`
38566
38567	// The CA certificate description.
38568	CertificateDescription *CACertificateDescription `locationName:"certificateDescription" type:"structure"`
38569
38570	// Information about the registration configuration.
38571	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
38572}
38573
38574// String returns the string representation.
38575//
38576// API parameter values that are decorated as "sensitive" in the API will not
38577// be included in the string output. The member name will be present, but the
38578// value will be replaced with "sensitive".
38579func (s DescribeCACertificateOutput) String() string {
38580	return awsutil.Prettify(s)
38581}
38582
38583// GoString returns the string representation.
38584//
38585// API parameter values that are decorated as "sensitive" in the API will not
38586// be included in the string output. The member name will be present, but the
38587// value will be replaced with "sensitive".
38588func (s DescribeCACertificateOutput) GoString() string {
38589	return s.String()
38590}
38591
38592// SetCertificateDescription sets the CertificateDescription field's value.
38593func (s *DescribeCACertificateOutput) SetCertificateDescription(v *CACertificateDescription) *DescribeCACertificateOutput {
38594	s.CertificateDescription = v
38595	return s
38596}
38597
38598// SetRegistrationConfig sets the RegistrationConfig field's value.
38599func (s *DescribeCACertificateOutput) SetRegistrationConfig(v *RegistrationConfig) *DescribeCACertificateOutput {
38600	s.RegistrationConfig = v
38601	return s
38602}
38603
38604// The input for the DescribeCertificate operation.
38605type DescribeCertificateInput struct {
38606	_ struct{} `type:"structure" nopayload:"true"`
38607
38608	// The ID of the certificate. (The last part of the certificate ARN contains
38609	// the certificate ID.)
38610	//
38611	// CertificateId is a required field
38612	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
38613}
38614
38615// String returns the string representation.
38616//
38617// API parameter values that are decorated as "sensitive" in the API will not
38618// be included in the string output. The member name will be present, but the
38619// value will be replaced with "sensitive".
38620func (s DescribeCertificateInput) String() string {
38621	return awsutil.Prettify(s)
38622}
38623
38624// GoString returns the string representation.
38625//
38626// API parameter values that are decorated as "sensitive" in the API will not
38627// be included in the string output. The member name will be present, but the
38628// value will be replaced with "sensitive".
38629func (s DescribeCertificateInput) GoString() string {
38630	return s.String()
38631}
38632
38633// Validate inspects the fields of the type to determine if they are valid.
38634func (s *DescribeCertificateInput) Validate() error {
38635	invalidParams := request.ErrInvalidParams{Context: "DescribeCertificateInput"}
38636	if s.CertificateId == nil {
38637		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
38638	}
38639	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
38640		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
38641	}
38642
38643	if invalidParams.Len() > 0 {
38644		return invalidParams
38645	}
38646	return nil
38647}
38648
38649// SetCertificateId sets the CertificateId field's value.
38650func (s *DescribeCertificateInput) SetCertificateId(v string) *DescribeCertificateInput {
38651	s.CertificateId = &v
38652	return s
38653}
38654
38655// The output of the DescribeCertificate operation.
38656type DescribeCertificateOutput struct {
38657	_ struct{} `type:"structure"`
38658
38659	// The description of the certificate.
38660	CertificateDescription *CertificateDescription `locationName:"certificateDescription" type:"structure"`
38661}
38662
38663// String returns the string representation.
38664//
38665// API parameter values that are decorated as "sensitive" in the API will not
38666// be included in the string output. The member name will be present, but the
38667// value will be replaced with "sensitive".
38668func (s DescribeCertificateOutput) String() string {
38669	return awsutil.Prettify(s)
38670}
38671
38672// GoString returns the string representation.
38673//
38674// API parameter values that are decorated as "sensitive" in the API will not
38675// be included in the string output. The member name will be present, but the
38676// value will be replaced with "sensitive".
38677func (s DescribeCertificateOutput) GoString() string {
38678	return s.String()
38679}
38680
38681// SetCertificateDescription sets the CertificateDescription field's value.
38682func (s *DescribeCertificateOutput) SetCertificateDescription(v *CertificateDescription) *DescribeCertificateOutput {
38683	s.CertificateDescription = v
38684	return s
38685}
38686
38687type DescribeCustomMetricInput struct {
38688	_ struct{} `type:"structure" nopayload:"true"`
38689
38690	// The name of the custom metric.
38691	//
38692	// MetricName is a required field
38693	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
38694}
38695
38696// String returns the string representation.
38697//
38698// API parameter values that are decorated as "sensitive" in the API will not
38699// be included in the string output. The member name will be present, but the
38700// value will be replaced with "sensitive".
38701func (s DescribeCustomMetricInput) String() string {
38702	return awsutil.Prettify(s)
38703}
38704
38705// GoString returns the string representation.
38706//
38707// API parameter values that are decorated as "sensitive" in the API will not
38708// be included in the string output. The member name will be present, but the
38709// value will be replaced with "sensitive".
38710func (s DescribeCustomMetricInput) GoString() string {
38711	return s.String()
38712}
38713
38714// Validate inspects the fields of the type to determine if they are valid.
38715func (s *DescribeCustomMetricInput) Validate() error {
38716	invalidParams := request.ErrInvalidParams{Context: "DescribeCustomMetricInput"}
38717	if s.MetricName == nil {
38718		invalidParams.Add(request.NewErrParamRequired("MetricName"))
38719	}
38720	if s.MetricName != nil && len(*s.MetricName) < 1 {
38721		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
38722	}
38723
38724	if invalidParams.Len() > 0 {
38725		return invalidParams
38726	}
38727	return nil
38728}
38729
38730// SetMetricName sets the MetricName field's value.
38731func (s *DescribeCustomMetricInput) SetMetricName(v string) *DescribeCustomMetricInput {
38732	s.MetricName = &v
38733	return s
38734}
38735
38736type DescribeCustomMetricOutput struct {
38737	_ struct{} `type:"structure"`
38738
38739	// The creation date of the custom metric in milliseconds since epoch.
38740	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
38741
38742	// Field represents a friendly name in the console for the custom metric; doesn't
38743	// have to be unique. Don't use this name as the metric identifier in the device
38744	// metric report. Can be updated.
38745	DisplayName *string `locationName:"displayName" type:"string"`
38746
38747	// The time the custom metric was last modified in milliseconds since epoch.
38748	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
38749
38750	// The Amazon Resource Number (ARN) of the custom metric.
38751	MetricArn *string `locationName:"metricArn" type:"string"`
38752
38753	// The name of the custom metric.
38754	MetricName *string `locationName:"metricName" min:"1" type:"string"`
38755
38756	// The type of the custom metric. Types include string-list, ip-address-list,
38757	// number-list, and number.
38758	MetricType *string `locationName:"metricType" type:"string" enum:"CustomMetricType"`
38759}
38760
38761// String returns the string representation.
38762//
38763// API parameter values that are decorated as "sensitive" in the API will not
38764// be included in the string output. The member name will be present, but the
38765// value will be replaced with "sensitive".
38766func (s DescribeCustomMetricOutput) String() string {
38767	return awsutil.Prettify(s)
38768}
38769
38770// GoString returns the string representation.
38771//
38772// API parameter values that are decorated as "sensitive" in the API will not
38773// be included in the string output. The member name will be present, but the
38774// value will be replaced with "sensitive".
38775func (s DescribeCustomMetricOutput) GoString() string {
38776	return s.String()
38777}
38778
38779// SetCreationDate sets the CreationDate field's value.
38780func (s *DescribeCustomMetricOutput) SetCreationDate(v time.Time) *DescribeCustomMetricOutput {
38781	s.CreationDate = &v
38782	return s
38783}
38784
38785// SetDisplayName sets the DisplayName field's value.
38786func (s *DescribeCustomMetricOutput) SetDisplayName(v string) *DescribeCustomMetricOutput {
38787	s.DisplayName = &v
38788	return s
38789}
38790
38791// SetLastModifiedDate sets the LastModifiedDate field's value.
38792func (s *DescribeCustomMetricOutput) SetLastModifiedDate(v time.Time) *DescribeCustomMetricOutput {
38793	s.LastModifiedDate = &v
38794	return s
38795}
38796
38797// SetMetricArn sets the MetricArn field's value.
38798func (s *DescribeCustomMetricOutput) SetMetricArn(v string) *DescribeCustomMetricOutput {
38799	s.MetricArn = &v
38800	return s
38801}
38802
38803// SetMetricName sets the MetricName field's value.
38804func (s *DescribeCustomMetricOutput) SetMetricName(v string) *DescribeCustomMetricOutput {
38805	s.MetricName = &v
38806	return s
38807}
38808
38809// SetMetricType sets the MetricType field's value.
38810func (s *DescribeCustomMetricOutput) SetMetricType(v string) *DescribeCustomMetricOutput {
38811	s.MetricType = &v
38812	return s
38813}
38814
38815type DescribeDefaultAuthorizerInput struct {
38816	_ struct{} `type:"structure" nopayload:"true"`
38817}
38818
38819// String returns the string representation.
38820//
38821// API parameter values that are decorated as "sensitive" in the API will not
38822// be included in the string output. The member name will be present, but the
38823// value will be replaced with "sensitive".
38824func (s DescribeDefaultAuthorizerInput) String() string {
38825	return awsutil.Prettify(s)
38826}
38827
38828// GoString returns the string representation.
38829//
38830// API parameter values that are decorated as "sensitive" in the API will not
38831// be included in the string output. The member name will be present, but the
38832// value will be replaced with "sensitive".
38833func (s DescribeDefaultAuthorizerInput) GoString() string {
38834	return s.String()
38835}
38836
38837type DescribeDefaultAuthorizerOutput struct {
38838	_ struct{} `type:"structure"`
38839
38840	// The default authorizer's description.
38841	AuthorizerDescription *AuthorizerDescription `locationName:"authorizerDescription" type:"structure"`
38842}
38843
38844// String returns the string representation.
38845//
38846// API parameter values that are decorated as "sensitive" in the API will not
38847// be included in the string output. The member name will be present, but the
38848// value will be replaced with "sensitive".
38849func (s DescribeDefaultAuthorizerOutput) String() string {
38850	return awsutil.Prettify(s)
38851}
38852
38853// GoString returns the string representation.
38854//
38855// API parameter values that are decorated as "sensitive" in the API will not
38856// be included in the string output. The member name will be present, but the
38857// value will be replaced with "sensitive".
38858func (s DescribeDefaultAuthorizerOutput) GoString() string {
38859	return s.String()
38860}
38861
38862// SetAuthorizerDescription sets the AuthorizerDescription field's value.
38863func (s *DescribeDefaultAuthorizerOutput) SetAuthorizerDescription(v *AuthorizerDescription) *DescribeDefaultAuthorizerOutput {
38864	s.AuthorizerDescription = v
38865	return s
38866}
38867
38868type DescribeDetectMitigationActionsTaskInput struct {
38869	_ struct{} `type:"structure" nopayload:"true"`
38870
38871	// The unique identifier of the task.
38872	//
38873	// TaskId is a required field
38874	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
38875}
38876
38877// String returns the string representation.
38878//
38879// API parameter values that are decorated as "sensitive" in the API will not
38880// be included in the string output. The member name will be present, but the
38881// value will be replaced with "sensitive".
38882func (s DescribeDetectMitigationActionsTaskInput) String() string {
38883	return awsutil.Prettify(s)
38884}
38885
38886// GoString returns the string representation.
38887//
38888// API parameter values that are decorated as "sensitive" in the API will not
38889// be included in the string output. The member name will be present, but the
38890// value will be replaced with "sensitive".
38891func (s DescribeDetectMitigationActionsTaskInput) GoString() string {
38892	return s.String()
38893}
38894
38895// Validate inspects the fields of the type to determine if they are valid.
38896func (s *DescribeDetectMitigationActionsTaskInput) Validate() error {
38897	invalidParams := request.ErrInvalidParams{Context: "DescribeDetectMitigationActionsTaskInput"}
38898	if s.TaskId == nil {
38899		invalidParams.Add(request.NewErrParamRequired("TaskId"))
38900	}
38901	if s.TaskId != nil && len(*s.TaskId) < 1 {
38902		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
38903	}
38904
38905	if invalidParams.Len() > 0 {
38906		return invalidParams
38907	}
38908	return nil
38909}
38910
38911// SetTaskId sets the TaskId field's value.
38912func (s *DescribeDetectMitigationActionsTaskInput) SetTaskId(v string) *DescribeDetectMitigationActionsTaskInput {
38913	s.TaskId = &v
38914	return s
38915}
38916
38917type DescribeDetectMitigationActionsTaskOutput struct {
38918	_ struct{} `type:"structure"`
38919
38920	// The description of a task.
38921	TaskSummary *DetectMitigationActionsTaskSummary `locationName:"taskSummary" type:"structure"`
38922}
38923
38924// String returns the string representation.
38925//
38926// API parameter values that are decorated as "sensitive" in the API will not
38927// be included in the string output. The member name will be present, but the
38928// value will be replaced with "sensitive".
38929func (s DescribeDetectMitigationActionsTaskOutput) String() string {
38930	return awsutil.Prettify(s)
38931}
38932
38933// GoString returns the string representation.
38934//
38935// API parameter values that are decorated as "sensitive" in the API will not
38936// be included in the string output. The member name will be present, but the
38937// value will be replaced with "sensitive".
38938func (s DescribeDetectMitigationActionsTaskOutput) GoString() string {
38939	return s.String()
38940}
38941
38942// SetTaskSummary sets the TaskSummary field's value.
38943func (s *DescribeDetectMitigationActionsTaskOutput) SetTaskSummary(v *DetectMitigationActionsTaskSummary) *DescribeDetectMitigationActionsTaskOutput {
38944	s.TaskSummary = v
38945	return s
38946}
38947
38948type DescribeDimensionInput struct {
38949	_ struct{} `type:"structure" nopayload:"true"`
38950
38951	// The unique identifier for the dimension.
38952	//
38953	// Name is a required field
38954	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
38955}
38956
38957// String returns the string representation.
38958//
38959// API parameter values that are decorated as "sensitive" in the API will not
38960// be included in the string output. The member name will be present, but the
38961// value will be replaced with "sensitive".
38962func (s DescribeDimensionInput) String() string {
38963	return awsutil.Prettify(s)
38964}
38965
38966// GoString returns the string representation.
38967//
38968// API parameter values that are decorated as "sensitive" in the API will not
38969// be included in the string output. The member name will be present, but the
38970// value will be replaced with "sensitive".
38971func (s DescribeDimensionInput) GoString() string {
38972	return s.String()
38973}
38974
38975// Validate inspects the fields of the type to determine if they are valid.
38976func (s *DescribeDimensionInput) Validate() error {
38977	invalidParams := request.ErrInvalidParams{Context: "DescribeDimensionInput"}
38978	if s.Name == nil {
38979		invalidParams.Add(request.NewErrParamRequired("Name"))
38980	}
38981	if s.Name != nil && len(*s.Name) < 1 {
38982		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
38983	}
38984
38985	if invalidParams.Len() > 0 {
38986		return invalidParams
38987	}
38988	return nil
38989}
38990
38991// SetName sets the Name field's value.
38992func (s *DescribeDimensionInput) SetName(v string) *DescribeDimensionInput {
38993	s.Name = &v
38994	return s
38995}
38996
38997type DescribeDimensionOutput struct {
38998	_ struct{} `type:"structure"`
38999
39000	// The Amazon Resource Name (ARN) for the dimension.
39001	Arn *string `locationName:"arn" type:"string"`
39002
39003	// The date the dimension was created.
39004	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
39005
39006	// The date the dimension was last modified.
39007	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
39008
39009	// The unique identifier for the dimension.
39010	Name *string `locationName:"name" min:"1" type:"string"`
39011
39012	// The value or list of values used to scope the dimension. For example, for
39013	// topic filters, this is the pattern used to match the MQTT topic name.
39014	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
39015
39016	// The type of the dimension.
39017	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
39018}
39019
39020// String returns the string representation.
39021//
39022// API parameter values that are decorated as "sensitive" in the API will not
39023// be included in the string output. The member name will be present, but the
39024// value will be replaced with "sensitive".
39025func (s DescribeDimensionOutput) String() string {
39026	return awsutil.Prettify(s)
39027}
39028
39029// GoString returns the string representation.
39030//
39031// API parameter values that are decorated as "sensitive" in the API will not
39032// be included in the string output. The member name will be present, but the
39033// value will be replaced with "sensitive".
39034func (s DescribeDimensionOutput) GoString() string {
39035	return s.String()
39036}
39037
39038// SetArn sets the Arn field's value.
39039func (s *DescribeDimensionOutput) SetArn(v string) *DescribeDimensionOutput {
39040	s.Arn = &v
39041	return s
39042}
39043
39044// SetCreationDate sets the CreationDate field's value.
39045func (s *DescribeDimensionOutput) SetCreationDate(v time.Time) *DescribeDimensionOutput {
39046	s.CreationDate = &v
39047	return s
39048}
39049
39050// SetLastModifiedDate sets the LastModifiedDate field's value.
39051func (s *DescribeDimensionOutput) SetLastModifiedDate(v time.Time) *DescribeDimensionOutput {
39052	s.LastModifiedDate = &v
39053	return s
39054}
39055
39056// SetName sets the Name field's value.
39057func (s *DescribeDimensionOutput) SetName(v string) *DescribeDimensionOutput {
39058	s.Name = &v
39059	return s
39060}
39061
39062// SetStringValues sets the StringValues field's value.
39063func (s *DescribeDimensionOutput) SetStringValues(v []*string) *DescribeDimensionOutput {
39064	s.StringValues = v
39065	return s
39066}
39067
39068// SetType sets the Type field's value.
39069func (s *DescribeDimensionOutput) SetType(v string) *DescribeDimensionOutput {
39070	s.Type = &v
39071	return s
39072}
39073
39074type DescribeDomainConfigurationInput struct {
39075	_ struct{} `type:"structure" nopayload:"true"`
39076
39077	// The name of the domain configuration.
39078	//
39079	// DomainConfigurationName is a required field
39080	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
39081}
39082
39083// String returns the string representation.
39084//
39085// API parameter values that are decorated as "sensitive" in the API will not
39086// be included in the string output. The member name will be present, but the
39087// value will be replaced with "sensitive".
39088func (s DescribeDomainConfigurationInput) String() string {
39089	return awsutil.Prettify(s)
39090}
39091
39092// GoString returns the string representation.
39093//
39094// API parameter values that are decorated as "sensitive" in the API will not
39095// be included in the string output. The member name will be present, but the
39096// value will be replaced with "sensitive".
39097func (s DescribeDomainConfigurationInput) GoString() string {
39098	return s.String()
39099}
39100
39101// Validate inspects the fields of the type to determine if they are valid.
39102func (s *DescribeDomainConfigurationInput) Validate() error {
39103	invalidParams := request.ErrInvalidParams{Context: "DescribeDomainConfigurationInput"}
39104	if s.DomainConfigurationName == nil {
39105		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
39106	}
39107	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
39108		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
39109	}
39110
39111	if invalidParams.Len() > 0 {
39112		return invalidParams
39113	}
39114	return nil
39115}
39116
39117// SetDomainConfigurationName sets the DomainConfigurationName field's value.
39118func (s *DescribeDomainConfigurationInput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationInput {
39119	s.DomainConfigurationName = &v
39120	return s
39121}
39122
39123type DescribeDomainConfigurationOutput struct {
39124	_ struct{} `type:"structure"`
39125
39126	// An object that specifies the authorization service for a domain.
39127	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
39128
39129	// The ARN of the domain configuration.
39130	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
39131
39132	// The name of the domain configuration.
39133	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
39134
39135	// A Boolean value that specifies the current state of the domain configuration.
39136	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
39137
39138	// The name of the domain.
39139	DomainName *string `locationName:"domainName" min:"1" type:"string"`
39140
39141	// The type of the domain.
39142	DomainType *string `locationName:"domainType" type:"string" enum:"DomainType"`
39143
39144	// The date and time the domain configuration's status was last changed.
39145	LastStatusChangeDate *time.Time `locationName:"lastStatusChangeDate" type:"timestamp"`
39146
39147	// A list containing summary information about the server certificate included
39148	// in the domain configuration.
39149	ServerCertificates []*ServerCertificateSummary `locationName:"serverCertificates" type:"list"`
39150
39151	// The type of service delivered by the endpoint.
39152	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
39153}
39154
39155// String returns the string representation.
39156//
39157// API parameter values that are decorated as "sensitive" in the API will not
39158// be included in the string output. The member name will be present, but the
39159// value will be replaced with "sensitive".
39160func (s DescribeDomainConfigurationOutput) String() string {
39161	return awsutil.Prettify(s)
39162}
39163
39164// GoString returns the string representation.
39165//
39166// API parameter values that are decorated as "sensitive" in the API will not
39167// be included in the string output. The member name will be present, but the
39168// value will be replaced with "sensitive".
39169func (s DescribeDomainConfigurationOutput) GoString() string {
39170	return s.String()
39171}
39172
39173// SetAuthorizerConfig sets the AuthorizerConfig field's value.
39174func (s *DescribeDomainConfigurationOutput) SetAuthorizerConfig(v *AuthorizerConfig) *DescribeDomainConfigurationOutput {
39175	s.AuthorizerConfig = v
39176	return s
39177}
39178
39179// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
39180func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationArn(v string) *DescribeDomainConfigurationOutput {
39181	s.DomainConfigurationArn = &v
39182	return s
39183}
39184
39185// SetDomainConfigurationName sets the DomainConfigurationName field's value.
39186func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationName(v string) *DescribeDomainConfigurationOutput {
39187	s.DomainConfigurationName = &v
39188	return s
39189}
39190
39191// SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
39192func (s *DescribeDomainConfigurationOutput) SetDomainConfigurationStatus(v string) *DescribeDomainConfigurationOutput {
39193	s.DomainConfigurationStatus = &v
39194	return s
39195}
39196
39197// SetDomainName sets the DomainName field's value.
39198func (s *DescribeDomainConfigurationOutput) SetDomainName(v string) *DescribeDomainConfigurationOutput {
39199	s.DomainName = &v
39200	return s
39201}
39202
39203// SetDomainType sets the DomainType field's value.
39204func (s *DescribeDomainConfigurationOutput) SetDomainType(v string) *DescribeDomainConfigurationOutput {
39205	s.DomainType = &v
39206	return s
39207}
39208
39209// SetLastStatusChangeDate sets the LastStatusChangeDate field's value.
39210func (s *DescribeDomainConfigurationOutput) SetLastStatusChangeDate(v time.Time) *DescribeDomainConfigurationOutput {
39211	s.LastStatusChangeDate = &v
39212	return s
39213}
39214
39215// SetServerCertificates sets the ServerCertificates field's value.
39216func (s *DescribeDomainConfigurationOutput) SetServerCertificates(v []*ServerCertificateSummary) *DescribeDomainConfigurationOutput {
39217	s.ServerCertificates = v
39218	return s
39219}
39220
39221// SetServiceType sets the ServiceType field's value.
39222func (s *DescribeDomainConfigurationOutput) SetServiceType(v string) *DescribeDomainConfigurationOutput {
39223	s.ServiceType = &v
39224	return s
39225}
39226
39227// The input for the DescribeEndpoint operation.
39228type DescribeEndpointInput struct {
39229	_ struct{} `type:"structure" nopayload:"true"`
39230
39231	// The endpoint type. Valid endpoint types include:
39232	//
39233	//    * iot:Data - Returns a VeriSign signed data endpoint.
39234	//
39235	//    * iot:Data-ATS - Returns an ATS signed data endpoint.
39236	//
39237	//    * iot:CredentialProvider - Returns an IoT credentials provider API endpoint.
39238	//
39239	//    * iot:Jobs - Returns an IoT device management Jobs API endpoint.
39240	//
39241	// We strongly recommend that customers use the newer iot:Data-ATS endpoint
39242	// type to avoid issues related to the widespread distrust of Symantec certificate
39243	// authorities.
39244	EndpointType *string `location:"querystring" locationName:"endpointType" type:"string"`
39245}
39246
39247// String returns the string representation.
39248//
39249// API parameter values that are decorated as "sensitive" in the API will not
39250// be included in the string output. The member name will be present, but the
39251// value will be replaced with "sensitive".
39252func (s DescribeEndpointInput) String() string {
39253	return awsutil.Prettify(s)
39254}
39255
39256// GoString returns the string representation.
39257//
39258// API parameter values that are decorated as "sensitive" in the API will not
39259// be included in the string output. The member name will be present, but the
39260// value will be replaced with "sensitive".
39261func (s DescribeEndpointInput) GoString() string {
39262	return s.String()
39263}
39264
39265// SetEndpointType sets the EndpointType field's value.
39266func (s *DescribeEndpointInput) SetEndpointType(v string) *DescribeEndpointInput {
39267	s.EndpointType = &v
39268	return s
39269}
39270
39271// The output from the DescribeEndpoint operation.
39272type DescribeEndpointOutput struct {
39273	_ struct{} `type:"structure"`
39274
39275	// The endpoint. The format of the endpoint is as follows: identifier.iot.region.amazonaws.com.
39276	EndpointAddress *string `locationName:"endpointAddress" type:"string"`
39277}
39278
39279// String returns the string representation.
39280//
39281// API parameter values that are decorated as "sensitive" in the API will not
39282// be included in the string output. The member name will be present, but the
39283// value will be replaced with "sensitive".
39284func (s DescribeEndpointOutput) String() string {
39285	return awsutil.Prettify(s)
39286}
39287
39288// GoString returns the string representation.
39289//
39290// API parameter values that are decorated as "sensitive" in the API will not
39291// be included in the string output. The member name will be present, but the
39292// value will be replaced with "sensitive".
39293func (s DescribeEndpointOutput) GoString() string {
39294	return s.String()
39295}
39296
39297// SetEndpointAddress sets the EndpointAddress field's value.
39298func (s *DescribeEndpointOutput) SetEndpointAddress(v string) *DescribeEndpointOutput {
39299	s.EndpointAddress = &v
39300	return s
39301}
39302
39303type DescribeEventConfigurationsInput struct {
39304	_ struct{} `type:"structure" nopayload:"true"`
39305}
39306
39307// String returns the string representation.
39308//
39309// API parameter values that are decorated as "sensitive" in the API will not
39310// be included in the string output. The member name will be present, but the
39311// value will be replaced with "sensitive".
39312func (s DescribeEventConfigurationsInput) String() string {
39313	return awsutil.Prettify(s)
39314}
39315
39316// GoString returns the string representation.
39317//
39318// API parameter values that are decorated as "sensitive" in the API will not
39319// be included in the string output. The member name will be present, but the
39320// value will be replaced with "sensitive".
39321func (s DescribeEventConfigurationsInput) GoString() string {
39322	return s.String()
39323}
39324
39325type DescribeEventConfigurationsOutput struct {
39326	_ struct{} `type:"structure"`
39327
39328	// The creation date of the event configuration.
39329	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
39330
39331	// The event configurations.
39332	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
39333
39334	// The date the event configurations were last modified.
39335	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
39336}
39337
39338// String returns the string representation.
39339//
39340// API parameter values that are decorated as "sensitive" in the API will not
39341// be included in the string output. The member name will be present, but the
39342// value will be replaced with "sensitive".
39343func (s DescribeEventConfigurationsOutput) String() string {
39344	return awsutil.Prettify(s)
39345}
39346
39347// GoString returns the string representation.
39348//
39349// API parameter values that are decorated as "sensitive" in the API will not
39350// be included in the string output. The member name will be present, but the
39351// value will be replaced with "sensitive".
39352func (s DescribeEventConfigurationsOutput) GoString() string {
39353	return s.String()
39354}
39355
39356// SetCreationDate sets the CreationDate field's value.
39357func (s *DescribeEventConfigurationsOutput) SetCreationDate(v time.Time) *DescribeEventConfigurationsOutput {
39358	s.CreationDate = &v
39359	return s
39360}
39361
39362// SetEventConfigurations sets the EventConfigurations field's value.
39363func (s *DescribeEventConfigurationsOutput) SetEventConfigurations(v map[string]*Configuration) *DescribeEventConfigurationsOutput {
39364	s.EventConfigurations = v
39365	return s
39366}
39367
39368// SetLastModifiedDate sets the LastModifiedDate field's value.
39369func (s *DescribeEventConfigurationsOutput) SetLastModifiedDate(v time.Time) *DescribeEventConfigurationsOutput {
39370	s.LastModifiedDate = &v
39371	return s
39372}
39373
39374type DescribeFleetMetricInput struct {
39375	_ struct{} `type:"structure" nopayload:"true"`
39376
39377	// The name of the fleet metric to describe.
39378	//
39379	// MetricName is a required field
39380	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
39381}
39382
39383// String returns the string representation.
39384//
39385// API parameter values that are decorated as "sensitive" in the API will not
39386// be included in the string output. The member name will be present, but the
39387// value will be replaced with "sensitive".
39388func (s DescribeFleetMetricInput) String() string {
39389	return awsutil.Prettify(s)
39390}
39391
39392// GoString returns the string representation.
39393//
39394// API parameter values that are decorated as "sensitive" in the API will not
39395// be included in the string output. The member name will be present, but the
39396// value will be replaced with "sensitive".
39397func (s DescribeFleetMetricInput) GoString() string {
39398	return s.String()
39399}
39400
39401// Validate inspects the fields of the type to determine if they are valid.
39402func (s *DescribeFleetMetricInput) Validate() error {
39403	invalidParams := request.ErrInvalidParams{Context: "DescribeFleetMetricInput"}
39404	if s.MetricName == nil {
39405		invalidParams.Add(request.NewErrParamRequired("MetricName"))
39406	}
39407	if s.MetricName != nil && len(*s.MetricName) < 1 {
39408		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
39409	}
39410
39411	if invalidParams.Len() > 0 {
39412		return invalidParams
39413	}
39414	return nil
39415}
39416
39417// SetMetricName sets the MetricName field's value.
39418func (s *DescribeFleetMetricInput) SetMetricName(v string) *DescribeFleetMetricInput {
39419	s.MetricName = &v
39420	return s
39421}
39422
39423type DescribeFleetMetricOutput struct {
39424	_ struct{} `type:"structure"`
39425
39426	// The field to aggregate.
39427	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
39428
39429	// The type of the aggregation query.
39430	AggregationType *AggregationType `locationName:"aggregationType" type:"structure"`
39431
39432	// The date when the fleet metric is created.
39433	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
39434
39435	// The fleet metric description.
39436	Description *string `locationName:"description" type:"string"`
39437
39438	// The name of the index to search.
39439	IndexName *string `locationName:"indexName" min:"1" type:"string"`
39440
39441	// The date when the fleet metric is last modified.
39442	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
39443
39444	// The ARN of the fleet metric to describe.
39445	MetricArn *string `locationName:"metricArn" type:"string"`
39446
39447	// The name of the fleet metric to describe.
39448	MetricName *string `locationName:"metricName" min:"1" type:"string"`
39449
39450	// The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1
39451	// day)] and must be multiple of 60.
39452	Period *int64 `locationName:"period" min:"60" type:"integer"`
39453
39454	// The search query string.
39455	QueryString *string `locationName:"queryString" min:"1" type:"string"`
39456
39457	// The query version.
39458	QueryVersion *string `locationName:"queryVersion" type:"string"`
39459
39460	// Used to support unit transformation such as milliseconds to seconds. The
39461	// unit must be supported by CW metric (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
39462	Unit *string `locationName:"unit" type:"string" enum:"FleetMetricUnit"`
39463
39464	// The version of the fleet metric.
39465	Version *int64 `locationName:"version" type:"long"`
39466}
39467
39468// String returns the string representation.
39469//
39470// API parameter values that are decorated as "sensitive" in the API will not
39471// be included in the string output. The member name will be present, but the
39472// value will be replaced with "sensitive".
39473func (s DescribeFleetMetricOutput) String() string {
39474	return awsutil.Prettify(s)
39475}
39476
39477// GoString returns the string representation.
39478//
39479// API parameter values that are decorated as "sensitive" in the API will not
39480// be included in the string output. The member name will be present, but the
39481// value will be replaced with "sensitive".
39482func (s DescribeFleetMetricOutput) GoString() string {
39483	return s.String()
39484}
39485
39486// SetAggregationField sets the AggregationField field's value.
39487func (s *DescribeFleetMetricOutput) SetAggregationField(v string) *DescribeFleetMetricOutput {
39488	s.AggregationField = &v
39489	return s
39490}
39491
39492// SetAggregationType sets the AggregationType field's value.
39493func (s *DescribeFleetMetricOutput) SetAggregationType(v *AggregationType) *DescribeFleetMetricOutput {
39494	s.AggregationType = v
39495	return s
39496}
39497
39498// SetCreationDate sets the CreationDate field's value.
39499func (s *DescribeFleetMetricOutput) SetCreationDate(v time.Time) *DescribeFleetMetricOutput {
39500	s.CreationDate = &v
39501	return s
39502}
39503
39504// SetDescription sets the Description field's value.
39505func (s *DescribeFleetMetricOutput) SetDescription(v string) *DescribeFleetMetricOutput {
39506	s.Description = &v
39507	return s
39508}
39509
39510// SetIndexName sets the IndexName field's value.
39511func (s *DescribeFleetMetricOutput) SetIndexName(v string) *DescribeFleetMetricOutput {
39512	s.IndexName = &v
39513	return s
39514}
39515
39516// SetLastModifiedDate sets the LastModifiedDate field's value.
39517func (s *DescribeFleetMetricOutput) SetLastModifiedDate(v time.Time) *DescribeFleetMetricOutput {
39518	s.LastModifiedDate = &v
39519	return s
39520}
39521
39522// SetMetricArn sets the MetricArn field's value.
39523func (s *DescribeFleetMetricOutput) SetMetricArn(v string) *DescribeFleetMetricOutput {
39524	s.MetricArn = &v
39525	return s
39526}
39527
39528// SetMetricName sets the MetricName field's value.
39529func (s *DescribeFleetMetricOutput) SetMetricName(v string) *DescribeFleetMetricOutput {
39530	s.MetricName = &v
39531	return s
39532}
39533
39534// SetPeriod sets the Period field's value.
39535func (s *DescribeFleetMetricOutput) SetPeriod(v int64) *DescribeFleetMetricOutput {
39536	s.Period = &v
39537	return s
39538}
39539
39540// SetQueryString sets the QueryString field's value.
39541func (s *DescribeFleetMetricOutput) SetQueryString(v string) *DescribeFleetMetricOutput {
39542	s.QueryString = &v
39543	return s
39544}
39545
39546// SetQueryVersion sets the QueryVersion field's value.
39547func (s *DescribeFleetMetricOutput) SetQueryVersion(v string) *DescribeFleetMetricOutput {
39548	s.QueryVersion = &v
39549	return s
39550}
39551
39552// SetUnit sets the Unit field's value.
39553func (s *DescribeFleetMetricOutput) SetUnit(v string) *DescribeFleetMetricOutput {
39554	s.Unit = &v
39555	return s
39556}
39557
39558// SetVersion sets the Version field's value.
39559func (s *DescribeFleetMetricOutput) SetVersion(v int64) *DescribeFleetMetricOutput {
39560	s.Version = &v
39561	return s
39562}
39563
39564type DescribeIndexInput struct {
39565	_ struct{} `type:"structure" nopayload:"true"`
39566
39567	// The index name.
39568	//
39569	// IndexName is a required field
39570	IndexName *string `location:"uri" locationName:"indexName" min:"1" type:"string" required:"true"`
39571}
39572
39573// String returns the string representation.
39574//
39575// API parameter values that are decorated as "sensitive" in the API will not
39576// be included in the string output. The member name will be present, but the
39577// value will be replaced with "sensitive".
39578func (s DescribeIndexInput) String() string {
39579	return awsutil.Prettify(s)
39580}
39581
39582// GoString returns the string representation.
39583//
39584// API parameter values that are decorated as "sensitive" in the API will not
39585// be included in the string output. The member name will be present, but the
39586// value will be replaced with "sensitive".
39587func (s DescribeIndexInput) GoString() string {
39588	return s.String()
39589}
39590
39591// Validate inspects the fields of the type to determine if they are valid.
39592func (s *DescribeIndexInput) Validate() error {
39593	invalidParams := request.ErrInvalidParams{Context: "DescribeIndexInput"}
39594	if s.IndexName == nil {
39595		invalidParams.Add(request.NewErrParamRequired("IndexName"))
39596	}
39597	if s.IndexName != nil && len(*s.IndexName) < 1 {
39598		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
39599	}
39600
39601	if invalidParams.Len() > 0 {
39602		return invalidParams
39603	}
39604	return nil
39605}
39606
39607// SetIndexName sets the IndexName field's value.
39608func (s *DescribeIndexInput) SetIndexName(v string) *DescribeIndexInput {
39609	s.IndexName = &v
39610	return s
39611}
39612
39613type DescribeIndexOutput struct {
39614	_ struct{} `type:"structure"`
39615
39616	// The index name.
39617	IndexName *string `locationName:"indexName" min:"1" type:"string"`
39618
39619	// The index status.
39620	IndexStatus *string `locationName:"indexStatus" type:"string" enum:"IndexStatus"`
39621
39622	// Contains a value that specifies the type of indexing performed. Valid values
39623	// are:
39624	//
39625	//    * REGISTRY – Your thing index contains only registry data.
39626	//
39627	//    * REGISTRY_AND_SHADOW - Your thing index contains registry data and shadow
39628	//    data.
39629	//
39630	//    * REGISTRY_AND_CONNECTIVITY_STATUS - Your thing index contains registry
39631	//    data and thing connectivity status data.
39632	//
39633	//    * REGISTRY_AND_SHADOW_AND_CONNECTIVITY_STATUS - Your thing index contains
39634	//    registry data, shadow data, and thing connectivity status data.
39635	Schema *string `locationName:"schema" type:"string"`
39636}
39637
39638// String returns the string representation.
39639//
39640// API parameter values that are decorated as "sensitive" in the API will not
39641// be included in the string output. The member name will be present, but the
39642// value will be replaced with "sensitive".
39643func (s DescribeIndexOutput) String() string {
39644	return awsutil.Prettify(s)
39645}
39646
39647// GoString returns the string representation.
39648//
39649// API parameter values that are decorated as "sensitive" in the API will not
39650// be included in the string output. The member name will be present, but the
39651// value will be replaced with "sensitive".
39652func (s DescribeIndexOutput) GoString() string {
39653	return s.String()
39654}
39655
39656// SetIndexName sets the IndexName field's value.
39657func (s *DescribeIndexOutput) SetIndexName(v string) *DescribeIndexOutput {
39658	s.IndexName = &v
39659	return s
39660}
39661
39662// SetIndexStatus sets the IndexStatus field's value.
39663func (s *DescribeIndexOutput) SetIndexStatus(v string) *DescribeIndexOutput {
39664	s.IndexStatus = &v
39665	return s
39666}
39667
39668// SetSchema sets the Schema field's value.
39669func (s *DescribeIndexOutput) SetSchema(v string) *DescribeIndexOutput {
39670	s.Schema = &v
39671	return s
39672}
39673
39674type DescribeJobExecutionInput struct {
39675	_ struct{} `type:"structure" nopayload:"true"`
39676
39677	// A string (consisting of the digits "0" through "9" which is used to specify
39678	// a particular job execution on a particular device.
39679	ExecutionNumber *int64 `location:"querystring" locationName:"executionNumber" type:"long"`
39680
39681	// The unique identifier you assigned to this job when it was created.
39682	//
39683	// JobId is a required field
39684	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
39685
39686	// The name of the thing on which the job execution is running.
39687	//
39688	// ThingName is a required field
39689	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
39690}
39691
39692// String returns the string representation.
39693//
39694// API parameter values that are decorated as "sensitive" in the API will not
39695// be included in the string output. The member name will be present, but the
39696// value will be replaced with "sensitive".
39697func (s DescribeJobExecutionInput) String() string {
39698	return awsutil.Prettify(s)
39699}
39700
39701// GoString returns the string representation.
39702//
39703// API parameter values that are decorated as "sensitive" in the API will not
39704// be included in the string output. The member name will be present, but the
39705// value will be replaced with "sensitive".
39706func (s DescribeJobExecutionInput) GoString() string {
39707	return s.String()
39708}
39709
39710// Validate inspects the fields of the type to determine if they are valid.
39711func (s *DescribeJobExecutionInput) Validate() error {
39712	invalidParams := request.ErrInvalidParams{Context: "DescribeJobExecutionInput"}
39713	if s.JobId == nil {
39714		invalidParams.Add(request.NewErrParamRequired("JobId"))
39715	}
39716	if s.JobId != nil && len(*s.JobId) < 1 {
39717		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
39718	}
39719	if s.ThingName == nil {
39720		invalidParams.Add(request.NewErrParamRequired("ThingName"))
39721	}
39722	if s.ThingName != nil && len(*s.ThingName) < 1 {
39723		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
39724	}
39725
39726	if invalidParams.Len() > 0 {
39727		return invalidParams
39728	}
39729	return nil
39730}
39731
39732// SetExecutionNumber sets the ExecutionNumber field's value.
39733func (s *DescribeJobExecutionInput) SetExecutionNumber(v int64) *DescribeJobExecutionInput {
39734	s.ExecutionNumber = &v
39735	return s
39736}
39737
39738// SetJobId sets the JobId field's value.
39739func (s *DescribeJobExecutionInput) SetJobId(v string) *DescribeJobExecutionInput {
39740	s.JobId = &v
39741	return s
39742}
39743
39744// SetThingName sets the ThingName field's value.
39745func (s *DescribeJobExecutionInput) SetThingName(v string) *DescribeJobExecutionInput {
39746	s.ThingName = &v
39747	return s
39748}
39749
39750type DescribeJobExecutionOutput struct {
39751	_ struct{} `type:"structure"`
39752
39753	// Information about the job execution.
39754	Execution *JobExecution `locationName:"execution" type:"structure"`
39755}
39756
39757// String returns the string representation.
39758//
39759// API parameter values that are decorated as "sensitive" in the API will not
39760// be included in the string output. The member name will be present, but the
39761// value will be replaced with "sensitive".
39762func (s DescribeJobExecutionOutput) String() string {
39763	return awsutil.Prettify(s)
39764}
39765
39766// GoString returns the string representation.
39767//
39768// API parameter values that are decorated as "sensitive" in the API will not
39769// be included in the string output. The member name will be present, but the
39770// value will be replaced with "sensitive".
39771func (s DescribeJobExecutionOutput) GoString() string {
39772	return s.String()
39773}
39774
39775// SetExecution sets the Execution field's value.
39776func (s *DescribeJobExecutionOutput) SetExecution(v *JobExecution) *DescribeJobExecutionOutput {
39777	s.Execution = v
39778	return s
39779}
39780
39781type DescribeJobInput struct {
39782	_ struct{} `type:"structure" nopayload:"true"`
39783
39784	// The unique identifier you assigned to this job when it was created.
39785	//
39786	// JobId is a required field
39787	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
39788}
39789
39790// String returns the string representation.
39791//
39792// API parameter values that are decorated as "sensitive" in the API will not
39793// be included in the string output. The member name will be present, but the
39794// value will be replaced with "sensitive".
39795func (s DescribeJobInput) String() string {
39796	return awsutil.Prettify(s)
39797}
39798
39799// GoString returns the string representation.
39800//
39801// API parameter values that are decorated as "sensitive" in the API will not
39802// be included in the string output. The member name will be present, but the
39803// value will be replaced with "sensitive".
39804func (s DescribeJobInput) GoString() string {
39805	return s.String()
39806}
39807
39808// Validate inspects the fields of the type to determine if they are valid.
39809func (s *DescribeJobInput) Validate() error {
39810	invalidParams := request.ErrInvalidParams{Context: "DescribeJobInput"}
39811	if s.JobId == nil {
39812		invalidParams.Add(request.NewErrParamRequired("JobId"))
39813	}
39814	if s.JobId != nil && len(*s.JobId) < 1 {
39815		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
39816	}
39817
39818	if invalidParams.Len() > 0 {
39819		return invalidParams
39820	}
39821	return nil
39822}
39823
39824// SetJobId sets the JobId field's value.
39825func (s *DescribeJobInput) SetJobId(v string) *DescribeJobInput {
39826	s.JobId = &v
39827	return s
39828}
39829
39830type DescribeJobOutput struct {
39831	_ struct{} `type:"structure"`
39832
39833	// An S3 link to the job document.
39834	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
39835
39836	// Information about the job.
39837	Job *Job `locationName:"job" type:"structure"`
39838}
39839
39840// String returns the string representation.
39841//
39842// API parameter values that are decorated as "sensitive" in the API will not
39843// be included in the string output. The member name will be present, but the
39844// value will be replaced with "sensitive".
39845func (s DescribeJobOutput) String() string {
39846	return awsutil.Prettify(s)
39847}
39848
39849// GoString returns the string representation.
39850//
39851// API parameter values that are decorated as "sensitive" in the API will not
39852// be included in the string output. The member name will be present, but the
39853// value will be replaced with "sensitive".
39854func (s DescribeJobOutput) GoString() string {
39855	return s.String()
39856}
39857
39858// SetDocumentSource sets the DocumentSource field's value.
39859func (s *DescribeJobOutput) SetDocumentSource(v string) *DescribeJobOutput {
39860	s.DocumentSource = &v
39861	return s
39862}
39863
39864// SetJob sets the Job field's value.
39865func (s *DescribeJobOutput) SetJob(v *Job) *DescribeJobOutput {
39866	s.Job = v
39867	return s
39868}
39869
39870type DescribeJobTemplateInput struct {
39871	_ struct{} `type:"structure" nopayload:"true"`
39872
39873	// The unique identifier of the job template.
39874	//
39875	// JobTemplateId is a required field
39876	JobTemplateId *string `location:"uri" locationName:"jobTemplateId" min:"1" type:"string" required:"true"`
39877}
39878
39879// String returns the string representation.
39880//
39881// API parameter values that are decorated as "sensitive" in the API will not
39882// be included in the string output. The member name will be present, but the
39883// value will be replaced with "sensitive".
39884func (s DescribeJobTemplateInput) String() string {
39885	return awsutil.Prettify(s)
39886}
39887
39888// GoString returns the string representation.
39889//
39890// API parameter values that are decorated as "sensitive" in the API will not
39891// be included in the string output. The member name will be present, but the
39892// value will be replaced with "sensitive".
39893func (s DescribeJobTemplateInput) GoString() string {
39894	return s.String()
39895}
39896
39897// Validate inspects the fields of the type to determine if they are valid.
39898func (s *DescribeJobTemplateInput) Validate() error {
39899	invalidParams := request.ErrInvalidParams{Context: "DescribeJobTemplateInput"}
39900	if s.JobTemplateId == nil {
39901		invalidParams.Add(request.NewErrParamRequired("JobTemplateId"))
39902	}
39903	if s.JobTemplateId != nil && len(*s.JobTemplateId) < 1 {
39904		invalidParams.Add(request.NewErrParamMinLen("JobTemplateId", 1))
39905	}
39906
39907	if invalidParams.Len() > 0 {
39908		return invalidParams
39909	}
39910	return nil
39911}
39912
39913// SetJobTemplateId sets the JobTemplateId field's value.
39914func (s *DescribeJobTemplateInput) SetJobTemplateId(v string) *DescribeJobTemplateInput {
39915	s.JobTemplateId = &v
39916	return s
39917}
39918
39919type DescribeJobTemplateOutput struct {
39920	_ struct{} `type:"structure"`
39921
39922	// The criteria that determine when and how a job abort takes place.
39923	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
39924
39925	// The time, in seconds since the epoch, when the job template was created.
39926	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
39927
39928	// A description of the job template.
39929	Description *string `locationName:"description" type:"string"`
39930
39931	// The job document.
39932	Document *string `locationName:"document" type:"string"`
39933
39934	// An S3 link to the job document.
39935	DocumentSource *string `locationName:"documentSource" min:"1" type:"string"`
39936
39937	// Allows you to create a staged rollout of a job.
39938	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
39939
39940	// The ARN of the job template.
39941	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
39942
39943	// The unique identifier of the job template.
39944	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
39945
39946	// Configuration for pre-signed S3 URLs.
39947	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
39948
39949	// Specifies the amount of time each device has to finish its execution of the
39950	// job. A timer is started when the job execution status is set to IN_PROGRESS.
39951	// If the job execution status is not set to another terminal state before the
39952	// timer expires, it will be automatically set to TIMED_OUT.
39953	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
39954}
39955
39956// String returns the string representation.
39957//
39958// API parameter values that are decorated as "sensitive" in the API will not
39959// be included in the string output. The member name will be present, but the
39960// value will be replaced with "sensitive".
39961func (s DescribeJobTemplateOutput) String() string {
39962	return awsutil.Prettify(s)
39963}
39964
39965// GoString returns the string representation.
39966//
39967// API parameter values that are decorated as "sensitive" in the API will not
39968// be included in the string output. The member name will be present, but the
39969// value will be replaced with "sensitive".
39970func (s DescribeJobTemplateOutput) GoString() string {
39971	return s.String()
39972}
39973
39974// SetAbortConfig sets the AbortConfig field's value.
39975func (s *DescribeJobTemplateOutput) SetAbortConfig(v *AbortConfig) *DescribeJobTemplateOutput {
39976	s.AbortConfig = v
39977	return s
39978}
39979
39980// SetCreatedAt sets the CreatedAt field's value.
39981func (s *DescribeJobTemplateOutput) SetCreatedAt(v time.Time) *DescribeJobTemplateOutput {
39982	s.CreatedAt = &v
39983	return s
39984}
39985
39986// SetDescription sets the Description field's value.
39987func (s *DescribeJobTemplateOutput) SetDescription(v string) *DescribeJobTemplateOutput {
39988	s.Description = &v
39989	return s
39990}
39991
39992// SetDocument sets the Document field's value.
39993func (s *DescribeJobTemplateOutput) SetDocument(v string) *DescribeJobTemplateOutput {
39994	s.Document = &v
39995	return s
39996}
39997
39998// SetDocumentSource sets the DocumentSource field's value.
39999func (s *DescribeJobTemplateOutput) SetDocumentSource(v string) *DescribeJobTemplateOutput {
40000	s.DocumentSource = &v
40001	return s
40002}
40003
40004// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
40005func (s *DescribeJobTemplateOutput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *DescribeJobTemplateOutput {
40006	s.JobExecutionsRolloutConfig = v
40007	return s
40008}
40009
40010// SetJobTemplateArn sets the JobTemplateArn field's value.
40011func (s *DescribeJobTemplateOutput) SetJobTemplateArn(v string) *DescribeJobTemplateOutput {
40012	s.JobTemplateArn = &v
40013	return s
40014}
40015
40016// SetJobTemplateId sets the JobTemplateId field's value.
40017func (s *DescribeJobTemplateOutput) SetJobTemplateId(v string) *DescribeJobTemplateOutput {
40018	s.JobTemplateId = &v
40019	return s
40020}
40021
40022// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
40023func (s *DescribeJobTemplateOutput) SetPresignedUrlConfig(v *PresignedUrlConfig) *DescribeJobTemplateOutput {
40024	s.PresignedUrlConfig = v
40025	return s
40026}
40027
40028// SetTimeoutConfig sets the TimeoutConfig field's value.
40029func (s *DescribeJobTemplateOutput) SetTimeoutConfig(v *TimeoutConfig) *DescribeJobTemplateOutput {
40030	s.TimeoutConfig = v
40031	return s
40032}
40033
40034type DescribeMitigationActionInput struct {
40035	_ struct{} `type:"structure" nopayload:"true"`
40036
40037	// The friendly name that uniquely identifies the mitigation action.
40038	//
40039	// ActionName is a required field
40040	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
40041}
40042
40043// String returns the string representation.
40044//
40045// API parameter values that are decorated as "sensitive" in the API will not
40046// be included in the string output. The member name will be present, but the
40047// value will be replaced with "sensitive".
40048func (s DescribeMitigationActionInput) String() string {
40049	return awsutil.Prettify(s)
40050}
40051
40052// GoString returns the string representation.
40053//
40054// API parameter values that are decorated as "sensitive" in the API will not
40055// be included in the string output. The member name will be present, but the
40056// value will be replaced with "sensitive".
40057func (s DescribeMitigationActionInput) GoString() string {
40058	return s.String()
40059}
40060
40061// Validate inspects the fields of the type to determine if they are valid.
40062func (s *DescribeMitigationActionInput) Validate() error {
40063	invalidParams := request.ErrInvalidParams{Context: "DescribeMitigationActionInput"}
40064	if s.ActionName == nil {
40065		invalidParams.Add(request.NewErrParamRequired("ActionName"))
40066	}
40067	if s.ActionName != nil && len(*s.ActionName) < 1 {
40068		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
40069	}
40070
40071	if invalidParams.Len() > 0 {
40072		return invalidParams
40073	}
40074	return nil
40075}
40076
40077// SetActionName sets the ActionName field's value.
40078func (s *DescribeMitigationActionInput) SetActionName(v string) *DescribeMitigationActionInput {
40079	s.ActionName = &v
40080	return s
40081}
40082
40083type DescribeMitigationActionOutput struct {
40084	_ struct{} `type:"structure"`
40085
40086	// The ARN that identifies this migration action.
40087	ActionArn *string `locationName:"actionArn" type:"string"`
40088
40089	// A unique identifier for this action.
40090	ActionId *string `locationName:"actionId" type:"string"`
40091
40092	// The friendly name that uniquely identifies the mitigation action.
40093	ActionName *string `locationName:"actionName" type:"string"`
40094
40095	// Parameters that control how the mitigation action is applied, specific to
40096	// the type of mitigation action.
40097	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
40098
40099	// The type of mitigation action.
40100	ActionType *string `locationName:"actionType" type:"string" enum:"MitigationActionType"`
40101
40102	// The date and time when the mitigation action was added to your Amazon Web
40103	// Services accounts.
40104	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
40105
40106	// The date and time when the mitigation action was last changed.
40107	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
40108
40109	// The ARN of the IAM role used to apply this action.
40110	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
40111}
40112
40113// String returns the string representation.
40114//
40115// API parameter values that are decorated as "sensitive" in the API will not
40116// be included in the string output. The member name will be present, but the
40117// value will be replaced with "sensitive".
40118func (s DescribeMitigationActionOutput) String() string {
40119	return awsutil.Prettify(s)
40120}
40121
40122// GoString returns the string representation.
40123//
40124// API parameter values that are decorated as "sensitive" in the API will not
40125// be included in the string output. The member name will be present, but the
40126// value will be replaced with "sensitive".
40127func (s DescribeMitigationActionOutput) GoString() string {
40128	return s.String()
40129}
40130
40131// SetActionArn sets the ActionArn field's value.
40132func (s *DescribeMitigationActionOutput) SetActionArn(v string) *DescribeMitigationActionOutput {
40133	s.ActionArn = &v
40134	return s
40135}
40136
40137// SetActionId sets the ActionId field's value.
40138func (s *DescribeMitigationActionOutput) SetActionId(v string) *DescribeMitigationActionOutput {
40139	s.ActionId = &v
40140	return s
40141}
40142
40143// SetActionName sets the ActionName field's value.
40144func (s *DescribeMitigationActionOutput) SetActionName(v string) *DescribeMitigationActionOutput {
40145	s.ActionName = &v
40146	return s
40147}
40148
40149// SetActionParams sets the ActionParams field's value.
40150func (s *DescribeMitigationActionOutput) SetActionParams(v *MitigationActionParams) *DescribeMitigationActionOutput {
40151	s.ActionParams = v
40152	return s
40153}
40154
40155// SetActionType sets the ActionType field's value.
40156func (s *DescribeMitigationActionOutput) SetActionType(v string) *DescribeMitigationActionOutput {
40157	s.ActionType = &v
40158	return s
40159}
40160
40161// SetCreationDate sets the CreationDate field's value.
40162func (s *DescribeMitigationActionOutput) SetCreationDate(v time.Time) *DescribeMitigationActionOutput {
40163	s.CreationDate = &v
40164	return s
40165}
40166
40167// SetLastModifiedDate sets the LastModifiedDate field's value.
40168func (s *DescribeMitigationActionOutput) SetLastModifiedDate(v time.Time) *DescribeMitigationActionOutput {
40169	s.LastModifiedDate = &v
40170	return s
40171}
40172
40173// SetRoleArn sets the RoleArn field's value.
40174func (s *DescribeMitigationActionOutput) SetRoleArn(v string) *DescribeMitigationActionOutput {
40175	s.RoleArn = &v
40176	return s
40177}
40178
40179type DescribeProvisioningTemplateInput struct {
40180	_ struct{} `type:"structure" nopayload:"true"`
40181
40182	// The name of the fleet provisioning template.
40183	//
40184	// TemplateName is a required field
40185	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
40186}
40187
40188// String returns the string representation.
40189//
40190// API parameter values that are decorated as "sensitive" in the API will not
40191// be included in the string output. The member name will be present, but the
40192// value will be replaced with "sensitive".
40193func (s DescribeProvisioningTemplateInput) String() string {
40194	return awsutil.Prettify(s)
40195}
40196
40197// GoString returns the string representation.
40198//
40199// API parameter values that are decorated as "sensitive" in the API will not
40200// be included in the string output. The member name will be present, but the
40201// value will be replaced with "sensitive".
40202func (s DescribeProvisioningTemplateInput) GoString() string {
40203	return s.String()
40204}
40205
40206// Validate inspects the fields of the type to determine if they are valid.
40207func (s *DescribeProvisioningTemplateInput) Validate() error {
40208	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateInput"}
40209	if s.TemplateName == nil {
40210		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
40211	}
40212	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
40213		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
40214	}
40215
40216	if invalidParams.Len() > 0 {
40217		return invalidParams
40218	}
40219	return nil
40220}
40221
40222// SetTemplateName sets the TemplateName field's value.
40223func (s *DescribeProvisioningTemplateInput) SetTemplateName(v string) *DescribeProvisioningTemplateInput {
40224	s.TemplateName = &v
40225	return s
40226}
40227
40228type DescribeProvisioningTemplateOutput struct {
40229	_ struct{} `type:"structure"`
40230
40231	// The date when the fleet provisioning template was created.
40232	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
40233
40234	// The default fleet template version ID.
40235	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
40236
40237	// The description of the fleet provisioning template.
40238	Description *string `locationName:"description" type:"string"`
40239
40240	// True if the fleet provisioning template is enabled, otherwise false.
40241	Enabled *bool `locationName:"enabled" type:"boolean"`
40242
40243	// The date when the fleet provisioning template was last modified.
40244	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
40245
40246	// Gets information about a pre-provisioned hook.
40247	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
40248
40249	// The ARN of the role associated with the provisioning template. This IoT role
40250	// grants permission to provision a device.
40251	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
40252
40253	// The ARN of the fleet provisioning template.
40254	TemplateArn *string `locationName:"templateArn" type:"string"`
40255
40256	// The JSON formatted contents of the fleet provisioning template.
40257	TemplateBody *string `locationName:"templateBody" type:"string"`
40258
40259	// The name of the fleet provisioning template.
40260	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
40261}
40262
40263// String returns the string representation.
40264//
40265// API parameter values that are decorated as "sensitive" in the API will not
40266// be included in the string output. The member name will be present, but the
40267// value will be replaced with "sensitive".
40268func (s DescribeProvisioningTemplateOutput) String() string {
40269	return awsutil.Prettify(s)
40270}
40271
40272// GoString returns the string representation.
40273//
40274// API parameter values that are decorated as "sensitive" in the API will not
40275// be included in the string output. The member name will be present, but the
40276// value will be replaced with "sensitive".
40277func (s DescribeProvisioningTemplateOutput) GoString() string {
40278	return s.String()
40279}
40280
40281// SetCreationDate sets the CreationDate field's value.
40282func (s *DescribeProvisioningTemplateOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateOutput {
40283	s.CreationDate = &v
40284	return s
40285}
40286
40287// SetDefaultVersionId sets the DefaultVersionId field's value.
40288func (s *DescribeProvisioningTemplateOutput) SetDefaultVersionId(v int64) *DescribeProvisioningTemplateOutput {
40289	s.DefaultVersionId = &v
40290	return s
40291}
40292
40293// SetDescription sets the Description field's value.
40294func (s *DescribeProvisioningTemplateOutput) SetDescription(v string) *DescribeProvisioningTemplateOutput {
40295	s.Description = &v
40296	return s
40297}
40298
40299// SetEnabled sets the Enabled field's value.
40300func (s *DescribeProvisioningTemplateOutput) SetEnabled(v bool) *DescribeProvisioningTemplateOutput {
40301	s.Enabled = &v
40302	return s
40303}
40304
40305// SetLastModifiedDate sets the LastModifiedDate field's value.
40306func (s *DescribeProvisioningTemplateOutput) SetLastModifiedDate(v time.Time) *DescribeProvisioningTemplateOutput {
40307	s.LastModifiedDate = &v
40308	return s
40309}
40310
40311// SetPreProvisioningHook sets the PreProvisioningHook field's value.
40312func (s *DescribeProvisioningTemplateOutput) SetPreProvisioningHook(v *ProvisioningHook) *DescribeProvisioningTemplateOutput {
40313	s.PreProvisioningHook = v
40314	return s
40315}
40316
40317// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
40318func (s *DescribeProvisioningTemplateOutput) SetProvisioningRoleArn(v string) *DescribeProvisioningTemplateOutput {
40319	s.ProvisioningRoleArn = &v
40320	return s
40321}
40322
40323// SetTemplateArn sets the TemplateArn field's value.
40324func (s *DescribeProvisioningTemplateOutput) SetTemplateArn(v string) *DescribeProvisioningTemplateOutput {
40325	s.TemplateArn = &v
40326	return s
40327}
40328
40329// SetTemplateBody sets the TemplateBody field's value.
40330func (s *DescribeProvisioningTemplateOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateOutput {
40331	s.TemplateBody = &v
40332	return s
40333}
40334
40335// SetTemplateName sets the TemplateName field's value.
40336func (s *DescribeProvisioningTemplateOutput) SetTemplateName(v string) *DescribeProvisioningTemplateOutput {
40337	s.TemplateName = &v
40338	return s
40339}
40340
40341type DescribeProvisioningTemplateVersionInput struct {
40342	_ struct{} `type:"structure" nopayload:"true"`
40343
40344	// The template name.
40345	//
40346	// TemplateName is a required field
40347	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
40348
40349	// The fleet provisioning template version ID.
40350	//
40351	// VersionId is a required field
40352	VersionId *int64 `location:"uri" locationName:"versionId" type:"integer" required:"true"`
40353}
40354
40355// String returns the string representation.
40356//
40357// API parameter values that are decorated as "sensitive" in the API will not
40358// be included in the string output. The member name will be present, but the
40359// value will be replaced with "sensitive".
40360func (s DescribeProvisioningTemplateVersionInput) String() string {
40361	return awsutil.Prettify(s)
40362}
40363
40364// GoString returns the string representation.
40365//
40366// API parameter values that are decorated as "sensitive" in the API will not
40367// be included in the string output. The member name will be present, but the
40368// value will be replaced with "sensitive".
40369func (s DescribeProvisioningTemplateVersionInput) GoString() string {
40370	return s.String()
40371}
40372
40373// Validate inspects the fields of the type to determine if they are valid.
40374func (s *DescribeProvisioningTemplateVersionInput) Validate() error {
40375	invalidParams := request.ErrInvalidParams{Context: "DescribeProvisioningTemplateVersionInput"}
40376	if s.TemplateName == nil {
40377		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
40378	}
40379	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
40380		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
40381	}
40382	if s.VersionId == nil {
40383		invalidParams.Add(request.NewErrParamRequired("VersionId"))
40384	}
40385
40386	if invalidParams.Len() > 0 {
40387		return invalidParams
40388	}
40389	return nil
40390}
40391
40392// SetTemplateName sets the TemplateName field's value.
40393func (s *DescribeProvisioningTemplateVersionInput) SetTemplateName(v string) *DescribeProvisioningTemplateVersionInput {
40394	s.TemplateName = &v
40395	return s
40396}
40397
40398// SetVersionId sets the VersionId field's value.
40399func (s *DescribeProvisioningTemplateVersionInput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionInput {
40400	s.VersionId = &v
40401	return s
40402}
40403
40404type DescribeProvisioningTemplateVersionOutput struct {
40405	_ struct{} `type:"structure"`
40406
40407	// The date when the fleet provisioning template version was created.
40408	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
40409
40410	// True if the fleet provisioning template version is the default version.
40411	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
40412
40413	// The JSON formatted contents of the fleet provisioning template version.
40414	TemplateBody *string `locationName:"templateBody" type:"string"`
40415
40416	// The fleet provisioning template version ID.
40417	VersionId *int64 `locationName:"versionId" type:"integer"`
40418}
40419
40420// String returns the string representation.
40421//
40422// API parameter values that are decorated as "sensitive" in the API will not
40423// be included in the string output. The member name will be present, but the
40424// value will be replaced with "sensitive".
40425func (s DescribeProvisioningTemplateVersionOutput) String() string {
40426	return awsutil.Prettify(s)
40427}
40428
40429// GoString returns the string representation.
40430//
40431// API parameter values that are decorated as "sensitive" in the API will not
40432// be included in the string output. The member name will be present, but the
40433// value will be replaced with "sensitive".
40434func (s DescribeProvisioningTemplateVersionOutput) GoString() string {
40435	return s.String()
40436}
40437
40438// SetCreationDate sets the CreationDate field's value.
40439func (s *DescribeProvisioningTemplateVersionOutput) SetCreationDate(v time.Time) *DescribeProvisioningTemplateVersionOutput {
40440	s.CreationDate = &v
40441	return s
40442}
40443
40444// SetIsDefaultVersion sets the IsDefaultVersion field's value.
40445func (s *DescribeProvisioningTemplateVersionOutput) SetIsDefaultVersion(v bool) *DescribeProvisioningTemplateVersionOutput {
40446	s.IsDefaultVersion = &v
40447	return s
40448}
40449
40450// SetTemplateBody sets the TemplateBody field's value.
40451func (s *DescribeProvisioningTemplateVersionOutput) SetTemplateBody(v string) *DescribeProvisioningTemplateVersionOutput {
40452	s.TemplateBody = &v
40453	return s
40454}
40455
40456// SetVersionId sets the VersionId field's value.
40457func (s *DescribeProvisioningTemplateVersionOutput) SetVersionId(v int64) *DescribeProvisioningTemplateVersionOutput {
40458	s.VersionId = &v
40459	return s
40460}
40461
40462type DescribeRoleAliasInput struct {
40463	_ struct{} `type:"structure" nopayload:"true"`
40464
40465	// The role alias to describe.
40466	//
40467	// RoleAlias is a required field
40468	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
40469}
40470
40471// String returns the string representation.
40472//
40473// API parameter values that are decorated as "sensitive" in the API will not
40474// be included in the string output. The member name will be present, but the
40475// value will be replaced with "sensitive".
40476func (s DescribeRoleAliasInput) String() string {
40477	return awsutil.Prettify(s)
40478}
40479
40480// GoString returns the string representation.
40481//
40482// API parameter values that are decorated as "sensitive" in the API will not
40483// be included in the string output. The member name will be present, but the
40484// value will be replaced with "sensitive".
40485func (s DescribeRoleAliasInput) GoString() string {
40486	return s.String()
40487}
40488
40489// Validate inspects the fields of the type to determine if they are valid.
40490func (s *DescribeRoleAliasInput) Validate() error {
40491	invalidParams := request.ErrInvalidParams{Context: "DescribeRoleAliasInput"}
40492	if s.RoleAlias == nil {
40493		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
40494	}
40495	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
40496		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
40497	}
40498
40499	if invalidParams.Len() > 0 {
40500		return invalidParams
40501	}
40502	return nil
40503}
40504
40505// SetRoleAlias sets the RoleAlias field's value.
40506func (s *DescribeRoleAliasInput) SetRoleAlias(v string) *DescribeRoleAliasInput {
40507	s.RoleAlias = &v
40508	return s
40509}
40510
40511type DescribeRoleAliasOutput struct {
40512	_ struct{} `type:"structure"`
40513
40514	// The role alias description.
40515	RoleAliasDescription *RoleAliasDescription `locationName:"roleAliasDescription" type:"structure"`
40516}
40517
40518// String returns the string representation.
40519//
40520// API parameter values that are decorated as "sensitive" in the API will not
40521// be included in the string output. The member name will be present, but the
40522// value will be replaced with "sensitive".
40523func (s DescribeRoleAliasOutput) String() string {
40524	return awsutil.Prettify(s)
40525}
40526
40527// GoString returns the string representation.
40528//
40529// API parameter values that are decorated as "sensitive" in the API will not
40530// be included in the string output. The member name will be present, but the
40531// value will be replaced with "sensitive".
40532func (s DescribeRoleAliasOutput) GoString() string {
40533	return s.String()
40534}
40535
40536// SetRoleAliasDescription sets the RoleAliasDescription field's value.
40537func (s *DescribeRoleAliasOutput) SetRoleAliasDescription(v *RoleAliasDescription) *DescribeRoleAliasOutput {
40538	s.RoleAliasDescription = v
40539	return s
40540}
40541
40542type DescribeScheduledAuditInput struct {
40543	_ struct{} `type:"structure" nopayload:"true"`
40544
40545	// The name of the scheduled audit whose information you want to get.
40546	//
40547	// ScheduledAuditName is a required field
40548	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
40549}
40550
40551// String returns the string representation.
40552//
40553// API parameter values that are decorated as "sensitive" in the API will not
40554// be included in the string output. The member name will be present, but the
40555// value will be replaced with "sensitive".
40556func (s DescribeScheduledAuditInput) String() string {
40557	return awsutil.Prettify(s)
40558}
40559
40560// GoString returns the string representation.
40561//
40562// API parameter values that are decorated as "sensitive" in the API will not
40563// be included in the string output. The member name will be present, but the
40564// value will be replaced with "sensitive".
40565func (s DescribeScheduledAuditInput) GoString() string {
40566	return s.String()
40567}
40568
40569// Validate inspects the fields of the type to determine if they are valid.
40570func (s *DescribeScheduledAuditInput) Validate() error {
40571	invalidParams := request.ErrInvalidParams{Context: "DescribeScheduledAuditInput"}
40572	if s.ScheduledAuditName == nil {
40573		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
40574	}
40575	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
40576		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
40577	}
40578
40579	if invalidParams.Len() > 0 {
40580		return invalidParams
40581	}
40582	return nil
40583}
40584
40585// SetScheduledAuditName sets the ScheduledAuditName field's value.
40586func (s *DescribeScheduledAuditInput) SetScheduledAuditName(v string) *DescribeScheduledAuditInput {
40587	s.ScheduledAuditName = &v
40588	return s
40589}
40590
40591type DescribeScheduledAuditOutput struct {
40592	_ struct{} `type:"structure"`
40593
40594	// The day of the month on which the scheduled audit takes place. This is will
40595	// be 1 through 31 or LAST. If days 29-31 are specified, and the month does
40596	// not have that many days, the audit takes place on the LAST day of the month.
40597	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
40598
40599	// The day of the week on which the scheduled audit takes place, either one
40600	// of SUN, MON, TUE, WED, THU, FRI, or SAT.
40601	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
40602
40603	// How often the scheduled audit takes place, either one of DAILY, WEEKLY, BIWEEKLY,
40604	// or MONTHLY. The start time of each audit is determined by the system.
40605	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
40606
40607	// The ARN of the scheduled audit.
40608	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
40609
40610	// The name of the scheduled audit.
40611	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
40612
40613	// Which checks are performed during the scheduled audit. Checks must be enabled
40614	// for your account. (Use DescribeAccountAuditConfiguration to see the list
40615	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
40616	// to select which checks are enabled.)
40617	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
40618}
40619
40620// String returns the string representation.
40621//
40622// API parameter values that are decorated as "sensitive" in the API will not
40623// be included in the string output. The member name will be present, but the
40624// value will be replaced with "sensitive".
40625func (s DescribeScheduledAuditOutput) String() string {
40626	return awsutil.Prettify(s)
40627}
40628
40629// GoString returns the string representation.
40630//
40631// API parameter values that are decorated as "sensitive" in the API will not
40632// be included in the string output. The member name will be present, but the
40633// value will be replaced with "sensitive".
40634func (s DescribeScheduledAuditOutput) GoString() string {
40635	return s.String()
40636}
40637
40638// SetDayOfMonth sets the DayOfMonth field's value.
40639func (s *DescribeScheduledAuditOutput) SetDayOfMonth(v string) *DescribeScheduledAuditOutput {
40640	s.DayOfMonth = &v
40641	return s
40642}
40643
40644// SetDayOfWeek sets the DayOfWeek field's value.
40645func (s *DescribeScheduledAuditOutput) SetDayOfWeek(v string) *DescribeScheduledAuditOutput {
40646	s.DayOfWeek = &v
40647	return s
40648}
40649
40650// SetFrequency sets the Frequency field's value.
40651func (s *DescribeScheduledAuditOutput) SetFrequency(v string) *DescribeScheduledAuditOutput {
40652	s.Frequency = &v
40653	return s
40654}
40655
40656// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
40657func (s *DescribeScheduledAuditOutput) SetScheduledAuditArn(v string) *DescribeScheduledAuditOutput {
40658	s.ScheduledAuditArn = &v
40659	return s
40660}
40661
40662// SetScheduledAuditName sets the ScheduledAuditName field's value.
40663func (s *DescribeScheduledAuditOutput) SetScheduledAuditName(v string) *DescribeScheduledAuditOutput {
40664	s.ScheduledAuditName = &v
40665	return s
40666}
40667
40668// SetTargetCheckNames sets the TargetCheckNames field's value.
40669func (s *DescribeScheduledAuditOutput) SetTargetCheckNames(v []*string) *DescribeScheduledAuditOutput {
40670	s.TargetCheckNames = v
40671	return s
40672}
40673
40674type DescribeSecurityProfileInput struct {
40675	_ struct{} `type:"structure" nopayload:"true"`
40676
40677	// The name of the security profile whose information you want to get.
40678	//
40679	// SecurityProfileName is a required field
40680	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
40681}
40682
40683// String returns the string representation.
40684//
40685// API parameter values that are decorated as "sensitive" in the API will not
40686// be included in the string output. The member name will be present, but the
40687// value will be replaced with "sensitive".
40688func (s DescribeSecurityProfileInput) String() string {
40689	return awsutil.Prettify(s)
40690}
40691
40692// GoString returns the string representation.
40693//
40694// API parameter values that are decorated as "sensitive" in the API will not
40695// be included in the string output. The member name will be present, but the
40696// value will be replaced with "sensitive".
40697func (s DescribeSecurityProfileInput) GoString() string {
40698	return s.String()
40699}
40700
40701// Validate inspects the fields of the type to determine if they are valid.
40702func (s *DescribeSecurityProfileInput) Validate() error {
40703	invalidParams := request.ErrInvalidParams{Context: "DescribeSecurityProfileInput"}
40704	if s.SecurityProfileName == nil {
40705		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
40706	}
40707	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
40708		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
40709	}
40710
40711	if invalidParams.Len() > 0 {
40712		return invalidParams
40713	}
40714	return nil
40715}
40716
40717// SetSecurityProfileName sets the SecurityProfileName field's value.
40718func (s *DescribeSecurityProfileInput) SetSecurityProfileName(v string) *DescribeSecurityProfileInput {
40719	s.SecurityProfileName = &v
40720	return s
40721}
40722
40723type DescribeSecurityProfileOutput struct {
40724	_ struct{} `type:"structure"`
40725
40726	// Please use DescribeSecurityProfileResponse$additionalMetricsToRetainV2 instead.
40727	//
40728	// A list of metrics whose data is retained (stored). By default, data is retained
40729	// for any metric used in the profile's behaviors, but it is also retained for
40730	// any metric specified here.
40731	//
40732	// Deprecated: Use additionalMetricsToRetainV2.
40733	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
40734
40735	// A list of metrics whose data is retained (stored). By default, data is retained
40736	// for any metric used in the profile's behaviors, but it is also retained for
40737	// any metric specified here.
40738	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
40739
40740	// Where the alerts are sent. (Alerts are always sent to the console.)
40741	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
40742
40743	// Specifies the behaviors that, when violated by a device (thing), cause an
40744	// alert.
40745	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
40746
40747	// The time the security profile was created.
40748	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
40749
40750	// The time the security profile was last modified.
40751	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
40752
40753	// The ARN of the security profile.
40754	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
40755
40756	// A description of the security profile (associated with the security profile
40757	// when it was created or updated).
40758	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
40759
40760	// The name of the security profile.
40761	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
40762
40763	// The version of the security profile. A new version is generated whenever
40764	// the security profile is updated.
40765	Version *int64 `locationName:"version" type:"long"`
40766}
40767
40768// String returns the string representation.
40769//
40770// API parameter values that are decorated as "sensitive" in the API will not
40771// be included in the string output. The member name will be present, but the
40772// value will be replaced with "sensitive".
40773func (s DescribeSecurityProfileOutput) String() string {
40774	return awsutil.Prettify(s)
40775}
40776
40777// GoString returns the string representation.
40778//
40779// API parameter values that are decorated as "sensitive" in the API will not
40780// be included in the string output. The member name will be present, but the
40781// value will be replaced with "sensitive".
40782func (s DescribeSecurityProfileOutput) GoString() string {
40783	return s.String()
40784}
40785
40786// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
40787func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *DescribeSecurityProfileOutput {
40788	s.AdditionalMetricsToRetain = v
40789	return s
40790}
40791
40792// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
40793func (s *DescribeSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *DescribeSecurityProfileOutput {
40794	s.AdditionalMetricsToRetainV2 = v
40795	return s
40796}
40797
40798// SetAlertTargets sets the AlertTargets field's value.
40799func (s *DescribeSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *DescribeSecurityProfileOutput {
40800	s.AlertTargets = v
40801	return s
40802}
40803
40804// SetBehaviors sets the Behaviors field's value.
40805func (s *DescribeSecurityProfileOutput) SetBehaviors(v []*Behavior) *DescribeSecurityProfileOutput {
40806	s.Behaviors = v
40807	return s
40808}
40809
40810// SetCreationDate sets the CreationDate field's value.
40811func (s *DescribeSecurityProfileOutput) SetCreationDate(v time.Time) *DescribeSecurityProfileOutput {
40812	s.CreationDate = &v
40813	return s
40814}
40815
40816// SetLastModifiedDate sets the LastModifiedDate field's value.
40817func (s *DescribeSecurityProfileOutput) SetLastModifiedDate(v time.Time) *DescribeSecurityProfileOutput {
40818	s.LastModifiedDate = &v
40819	return s
40820}
40821
40822// SetSecurityProfileArn sets the SecurityProfileArn field's value.
40823func (s *DescribeSecurityProfileOutput) SetSecurityProfileArn(v string) *DescribeSecurityProfileOutput {
40824	s.SecurityProfileArn = &v
40825	return s
40826}
40827
40828// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
40829func (s *DescribeSecurityProfileOutput) SetSecurityProfileDescription(v string) *DescribeSecurityProfileOutput {
40830	s.SecurityProfileDescription = &v
40831	return s
40832}
40833
40834// SetSecurityProfileName sets the SecurityProfileName field's value.
40835func (s *DescribeSecurityProfileOutput) SetSecurityProfileName(v string) *DescribeSecurityProfileOutput {
40836	s.SecurityProfileName = &v
40837	return s
40838}
40839
40840// SetVersion sets the Version field's value.
40841func (s *DescribeSecurityProfileOutput) SetVersion(v int64) *DescribeSecurityProfileOutput {
40842	s.Version = &v
40843	return s
40844}
40845
40846type DescribeStreamInput struct {
40847	_ struct{} `type:"structure" nopayload:"true"`
40848
40849	// The stream ID.
40850	//
40851	// StreamId is a required field
40852	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
40853}
40854
40855// String returns the string representation.
40856//
40857// API parameter values that are decorated as "sensitive" in the API will not
40858// be included in the string output. The member name will be present, but the
40859// value will be replaced with "sensitive".
40860func (s DescribeStreamInput) String() string {
40861	return awsutil.Prettify(s)
40862}
40863
40864// GoString returns the string representation.
40865//
40866// API parameter values that are decorated as "sensitive" in the API will not
40867// be included in the string output. The member name will be present, but the
40868// value will be replaced with "sensitive".
40869func (s DescribeStreamInput) GoString() string {
40870	return s.String()
40871}
40872
40873// Validate inspects the fields of the type to determine if they are valid.
40874func (s *DescribeStreamInput) Validate() error {
40875	invalidParams := request.ErrInvalidParams{Context: "DescribeStreamInput"}
40876	if s.StreamId == nil {
40877		invalidParams.Add(request.NewErrParamRequired("StreamId"))
40878	}
40879	if s.StreamId != nil && len(*s.StreamId) < 1 {
40880		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
40881	}
40882
40883	if invalidParams.Len() > 0 {
40884		return invalidParams
40885	}
40886	return nil
40887}
40888
40889// SetStreamId sets the StreamId field's value.
40890func (s *DescribeStreamInput) SetStreamId(v string) *DescribeStreamInput {
40891	s.StreamId = &v
40892	return s
40893}
40894
40895type DescribeStreamOutput struct {
40896	_ struct{} `type:"structure"`
40897
40898	// Information about the stream.
40899	StreamInfo *StreamInfo `locationName:"streamInfo" type:"structure"`
40900}
40901
40902// String returns the string representation.
40903//
40904// API parameter values that are decorated as "sensitive" in the API will not
40905// be included in the string output. The member name will be present, but the
40906// value will be replaced with "sensitive".
40907func (s DescribeStreamOutput) String() string {
40908	return awsutil.Prettify(s)
40909}
40910
40911// GoString returns the string representation.
40912//
40913// API parameter values that are decorated as "sensitive" in the API will not
40914// be included in the string output. The member name will be present, but the
40915// value will be replaced with "sensitive".
40916func (s DescribeStreamOutput) GoString() string {
40917	return s.String()
40918}
40919
40920// SetStreamInfo sets the StreamInfo field's value.
40921func (s *DescribeStreamOutput) SetStreamInfo(v *StreamInfo) *DescribeStreamOutput {
40922	s.StreamInfo = v
40923	return s
40924}
40925
40926type DescribeThingGroupInput struct {
40927	_ struct{} `type:"structure" nopayload:"true"`
40928
40929	// The name of the thing group.
40930	//
40931	// ThingGroupName is a required field
40932	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
40933}
40934
40935// String returns the string representation.
40936//
40937// API parameter values that are decorated as "sensitive" in the API will not
40938// be included in the string output. The member name will be present, but the
40939// value will be replaced with "sensitive".
40940func (s DescribeThingGroupInput) String() string {
40941	return awsutil.Prettify(s)
40942}
40943
40944// GoString returns the string representation.
40945//
40946// API parameter values that are decorated as "sensitive" in the API will not
40947// be included in the string output. The member name will be present, but the
40948// value will be replaced with "sensitive".
40949func (s DescribeThingGroupInput) GoString() string {
40950	return s.String()
40951}
40952
40953// Validate inspects the fields of the type to determine if they are valid.
40954func (s *DescribeThingGroupInput) Validate() error {
40955	invalidParams := request.ErrInvalidParams{Context: "DescribeThingGroupInput"}
40956	if s.ThingGroupName == nil {
40957		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
40958	}
40959	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
40960		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
40961	}
40962
40963	if invalidParams.Len() > 0 {
40964		return invalidParams
40965	}
40966	return nil
40967}
40968
40969// SetThingGroupName sets the ThingGroupName field's value.
40970func (s *DescribeThingGroupInput) SetThingGroupName(v string) *DescribeThingGroupInput {
40971	s.ThingGroupName = &v
40972	return s
40973}
40974
40975type DescribeThingGroupOutput struct {
40976	_ struct{} `type:"structure"`
40977
40978	// The dynamic thing group index name.
40979	IndexName *string `locationName:"indexName" min:"1" type:"string"`
40980
40981	// The dynamic thing group search query string.
40982	QueryString *string `locationName:"queryString" min:"1" type:"string"`
40983
40984	// The dynamic thing group query version.
40985	QueryVersion *string `locationName:"queryVersion" type:"string"`
40986
40987	// The dynamic thing group status.
40988	Status *string `locationName:"status" type:"string" enum:"DynamicGroupStatus"`
40989
40990	// The thing group ARN.
40991	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
40992
40993	// The thing group ID.
40994	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
40995
40996	// Thing group metadata.
40997	ThingGroupMetadata *ThingGroupMetadata `locationName:"thingGroupMetadata" type:"structure"`
40998
40999	// The name of the thing group.
41000	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
41001
41002	// The thing group properties.
41003	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure"`
41004
41005	// The version of the thing group.
41006	Version *int64 `locationName:"version" type:"long"`
41007}
41008
41009// String returns the string representation.
41010//
41011// API parameter values that are decorated as "sensitive" in the API will not
41012// be included in the string output. The member name will be present, but the
41013// value will be replaced with "sensitive".
41014func (s DescribeThingGroupOutput) String() string {
41015	return awsutil.Prettify(s)
41016}
41017
41018// GoString returns the string representation.
41019//
41020// API parameter values that are decorated as "sensitive" in the API will not
41021// be included in the string output. The member name will be present, but the
41022// value will be replaced with "sensitive".
41023func (s DescribeThingGroupOutput) GoString() string {
41024	return s.String()
41025}
41026
41027// SetIndexName sets the IndexName field's value.
41028func (s *DescribeThingGroupOutput) SetIndexName(v string) *DescribeThingGroupOutput {
41029	s.IndexName = &v
41030	return s
41031}
41032
41033// SetQueryString sets the QueryString field's value.
41034func (s *DescribeThingGroupOutput) SetQueryString(v string) *DescribeThingGroupOutput {
41035	s.QueryString = &v
41036	return s
41037}
41038
41039// SetQueryVersion sets the QueryVersion field's value.
41040func (s *DescribeThingGroupOutput) SetQueryVersion(v string) *DescribeThingGroupOutput {
41041	s.QueryVersion = &v
41042	return s
41043}
41044
41045// SetStatus sets the Status field's value.
41046func (s *DescribeThingGroupOutput) SetStatus(v string) *DescribeThingGroupOutput {
41047	s.Status = &v
41048	return s
41049}
41050
41051// SetThingGroupArn sets the ThingGroupArn field's value.
41052func (s *DescribeThingGroupOutput) SetThingGroupArn(v string) *DescribeThingGroupOutput {
41053	s.ThingGroupArn = &v
41054	return s
41055}
41056
41057// SetThingGroupId sets the ThingGroupId field's value.
41058func (s *DescribeThingGroupOutput) SetThingGroupId(v string) *DescribeThingGroupOutput {
41059	s.ThingGroupId = &v
41060	return s
41061}
41062
41063// SetThingGroupMetadata sets the ThingGroupMetadata field's value.
41064func (s *DescribeThingGroupOutput) SetThingGroupMetadata(v *ThingGroupMetadata) *DescribeThingGroupOutput {
41065	s.ThingGroupMetadata = v
41066	return s
41067}
41068
41069// SetThingGroupName sets the ThingGroupName field's value.
41070func (s *DescribeThingGroupOutput) SetThingGroupName(v string) *DescribeThingGroupOutput {
41071	s.ThingGroupName = &v
41072	return s
41073}
41074
41075// SetThingGroupProperties sets the ThingGroupProperties field's value.
41076func (s *DescribeThingGroupOutput) SetThingGroupProperties(v *ThingGroupProperties) *DescribeThingGroupOutput {
41077	s.ThingGroupProperties = v
41078	return s
41079}
41080
41081// SetVersion sets the Version field's value.
41082func (s *DescribeThingGroupOutput) SetVersion(v int64) *DescribeThingGroupOutput {
41083	s.Version = &v
41084	return s
41085}
41086
41087// The input for the DescribeThing operation.
41088type DescribeThingInput struct {
41089	_ struct{} `type:"structure" nopayload:"true"`
41090
41091	// The name of the thing.
41092	//
41093	// ThingName is a required field
41094	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
41095}
41096
41097// String returns the string representation.
41098//
41099// API parameter values that are decorated as "sensitive" in the API will not
41100// be included in the string output. The member name will be present, but the
41101// value will be replaced with "sensitive".
41102func (s DescribeThingInput) String() string {
41103	return awsutil.Prettify(s)
41104}
41105
41106// GoString returns the string representation.
41107//
41108// API parameter values that are decorated as "sensitive" in the API will not
41109// be included in the string output. The member name will be present, but the
41110// value will be replaced with "sensitive".
41111func (s DescribeThingInput) GoString() string {
41112	return s.String()
41113}
41114
41115// Validate inspects the fields of the type to determine if they are valid.
41116func (s *DescribeThingInput) Validate() error {
41117	invalidParams := request.ErrInvalidParams{Context: "DescribeThingInput"}
41118	if s.ThingName == nil {
41119		invalidParams.Add(request.NewErrParamRequired("ThingName"))
41120	}
41121	if s.ThingName != nil && len(*s.ThingName) < 1 {
41122		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
41123	}
41124
41125	if invalidParams.Len() > 0 {
41126		return invalidParams
41127	}
41128	return nil
41129}
41130
41131// SetThingName sets the ThingName field's value.
41132func (s *DescribeThingInput) SetThingName(v string) *DescribeThingInput {
41133	s.ThingName = &v
41134	return s
41135}
41136
41137// The output from the DescribeThing operation.
41138type DescribeThingOutput struct {
41139	_ struct{} `type:"structure"`
41140
41141	// The thing attributes.
41142	Attributes map[string]*string `locationName:"attributes" type:"map"`
41143
41144	// The name of the billing group the thing belongs to.
41145	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
41146
41147	// The default MQTT client ID. For a typical device, the thing name is also
41148	// used as the default MQTT client ID. Although we don’t require a mapping
41149	// between a thing's registry name and its use of MQTT client IDs, certificates,
41150	// or shadow state, we recommend that you choose a thing name and use it as
41151	// the MQTT client ID for the registry and the Device Shadow service.
41152	//
41153	// This lets you better organize your IoT fleet without removing the flexibility
41154	// of the underlying device certificate model or shadows.
41155	DefaultClientId *string `locationName:"defaultClientId" type:"string"`
41156
41157	// The ARN of the thing to describe.
41158	ThingArn *string `locationName:"thingArn" type:"string"`
41159
41160	// The ID of the thing to describe.
41161	ThingId *string `locationName:"thingId" type:"string"`
41162
41163	// The name of the thing.
41164	ThingName *string `locationName:"thingName" min:"1" type:"string"`
41165
41166	// The thing type name.
41167	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
41168
41169	// The current version of the thing record in the registry.
41170	//
41171	// To avoid unintentional changes to the information in the registry, you can
41172	// pass the version information in the expectedVersion parameter of the UpdateThing
41173	// and DeleteThing calls.
41174	Version *int64 `locationName:"version" type:"long"`
41175}
41176
41177// String returns the string representation.
41178//
41179// API parameter values that are decorated as "sensitive" in the API will not
41180// be included in the string output. The member name will be present, but the
41181// value will be replaced with "sensitive".
41182func (s DescribeThingOutput) String() string {
41183	return awsutil.Prettify(s)
41184}
41185
41186// GoString returns the string representation.
41187//
41188// API parameter values that are decorated as "sensitive" in the API will not
41189// be included in the string output. The member name will be present, but the
41190// value will be replaced with "sensitive".
41191func (s DescribeThingOutput) GoString() string {
41192	return s.String()
41193}
41194
41195// SetAttributes sets the Attributes field's value.
41196func (s *DescribeThingOutput) SetAttributes(v map[string]*string) *DescribeThingOutput {
41197	s.Attributes = v
41198	return s
41199}
41200
41201// SetBillingGroupName sets the BillingGroupName field's value.
41202func (s *DescribeThingOutput) SetBillingGroupName(v string) *DescribeThingOutput {
41203	s.BillingGroupName = &v
41204	return s
41205}
41206
41207// SetDefaultClientId sets the DefaultClientId field's value.
41208func (s *DescribeThingOutput) SetDefaultClientId(v string) *DescribeThingOutput {
41209	s.DefaultClientId = &v
41210	return s
41211}
41212
41213// SetThingArn sets the ThingArn field's value.
41214func (s *DescribeThingOutput) SetThingArn(v string) *DescribeThingOutput {
41215	s.ThingArn = &v
41216	return s
41217}
41218
41219// SetThingId sets the ThingId field's value.
41220func (s *DescribeThingOutput) SetThingId(v string) *DescribeThingOutput {
41221	s.ThingId = &v
41222	return s
41223}
41224
41225// SetThingName sets the ThingName field's value.
41226func (s *DescribeThingOutput) SetThingName(v string) *DescribeThingOutput {
41227	s.ThingName = &v
41228	return s
41229}
41230
41231// SetThingTypeName sets the ThingTypeName field's value.
41232func (s *DescribeThingOutput) SetThingTypeName(v string) *DescribeThingOutput {
41233	s.ThingTypeName = &v
41234	return s
41235}
41236
41237// SetVersion sets the Version field's value.
41238func (s *DescribeThingOutput) SetVersion(v int64) *DescribeThingOutput {
41239	s.Version = &v
41240	return s
41241}
41242
41243type DescribeThingRegistrationTaskInput struct {
41244	_ struct{} `type:"structure" nopayload:"true"`
41245
41246	// The task ID.
41247	//
41248	// TaskId is a required field
41249	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
41250}
41251
41252// String returns the string representation.
41253//
41254// API parameter values that are decorated as "sensitive" in the API will not
41255// be included in the string output. The member name will be present, but the
41256// value will be replaced with "sensitive".
41257func (s DescribeThingRegistrationTaskInput) String() string {
41258	return awsutil.Prettify(s)
41259}
41260
41261// GoString returns the string representation.
41262//
41263// API parameter values that are decorated as "sensitive" in the API will not
41264// be included in the string output. The member name will be present, but the
41265// value will be replaced with "sensitive".
41266func (s DescribeThingRegistrationTaskInput) GoString() string {
41267	return s.String()
41268}
41269
41270// Validate inspects the fields of the type to determine if they are valid.
41271func (s *DescribeThingRegistrationTaskInput) Validate() error {
41272	invalidParams := request.ErrInvalidParams{Context: "DescribeThingRegistrationTaskInput"}
41273	if s.TaskId == nil {
41274		invalidParams.Add(request.NewErrParamRequired("TaskId"))
41275	}
41276	if s.TaskId != nil && len(*s.TaskId) < 1 {
41277		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
41278	}
41279
41280	if invalidParams.Len() > 0 {
41281		return invalidParams
41282	}
41283	return nil
41284}
41285
41286// SetTaskId sets the TaskId field's value.
41287func (s *DescribeThingRegistrationTaskInput) SetTaskId(v string) *DescribeThingRegistrationTaskInput {
41288	s.TaskId = &v
41289	return s
41290}
41291
41292type DescribeThingRegistrationTaskOutput struct {
41293	_ struct{} `type:"structure"`
41294
41295	// The task creation date.
41296	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
41297
41298	// The number of things that failed to be provisioned.
41299	FailureCount *int64 `locationName:"failureCount" type:"integer"`
41300
41301	// The S3 bucket that contains the input file.
41302	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string"`
41303
41304	// The input file key.
41305	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string"`
41306
41307	// The date when the task was last modified.
41308	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
41309
41310	// The message.
41311	Message *string `locationName:"message" type:"string"`
41312
41313	// The progress of the bulk provisioning task expressed as a percentage.
41314	PercentageProgress *int64 `locationName:"percentageProgress" type:"integer"`
41315
41316	// The role ARN that grants access to the input file bucket.
41317	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
41318
41319	// The status of the bulk thing provisioning task.
41320	Status *string `locationName:"status" type:"string" enum:"Status"`
41321
41322	// The number of things successfully provisioned.
41323	SuccessCount *int64 `locationName:"successCount" type:"integer"`
41324
41325	// The task ID.
41326	TaskId *string `locationName:"taskId" type:"string"`
41327
41328	// The task's template.
41329	TemplateBody *string `locationName:"templateBody" type:"string"`
41330}
41331
41332// String returns the string representation.
41333//
41334// API parameter values that are decorated as "sensitive" in the API will not
41335// be included in the string output. The member name will be present, but the
41336// value will be replaced with "sensitive".
41337func (s DescribeThingRegistrationTaskOutput) String() string {
41338	return awsutil.Prettify(s)
41339}
41340
41341// GoString returns the string representation.
41342//
41343// API parameter values that are decorated as "sensitive" in the API will not
41344// be included in the string output. The member name will be present, but the
41345// value will be replaced with "sensitive".
41346func (s DescribeThingRegistrationTaskOutput) GoString() string {
41347	return s.String()
41348}
41349
41350// SetCreationDate sets the CreationDate field's value.
41351func (s *DescribeThingRegistrationTaskOutput) SetCreationDate(v time.Time) *DescribeThingRegistrationTaskOutput {
41352	s.CreationDate = &v
41353	return s
41354}
41355
41356// SetFailureCount sets the FailureCount field's value.
41357func (s *DescribeThingRegistrationTaskOutput) SetFailureCount(v int64) *DescribeThingRegistrationTaskOutput {
41358	s.FailureCount = &v
41359	return s
41360}
41361
41362// SetInputFileBucket sets the InputFileBucket field's value.
41363func (s *DescribeThingRegistrationTaskOutput) SetInputFileBucket(v string) *DescribeThingRegistrationTaskOutput {
41364	s.InputFileBucket = &v
41365	return s
41366}
41367
41368// SetInputFileKey sets the InputFileKey field's value.
41369func (s *DescribeThingRegistrationTaskOutput) SetInputFileKey(v string) *DescribeThingRegistrationTaskOutput {
41370	s.InputFileKey = &v
41371	return s
41372}
41373
41374// SetLastModifiedDate sets the LastModifiedDate field's value.
41375func (s *DescribeThingRegistrationTaskOutput) SetLastModifiedDate(v time.Time) *DescribeThingRegistrationTaskOutput {
41376	s.LastModifiedDate = &v
41377	return s
41378}
41379
41380// SetMessage sets the Message field's value.
41381func (s *DescribeThingRegistrationTaskOutput) SetMessage(v string) *DescribeThingRegistrationTaskOutput {
41382	s.Message = &v
41383	return s
41384}
41385
41386// SetPercentageProgress sets the PercentageProgress field's value.
41387func (s *DescribeThingRegistrationTaskOutput) SetPercentageProgress(v int64) *DescribeThingRegistrationTaskOutput {
41388	s.PercentageProgress = &v
41389	return s
41390}
41391
41392// SetRoleArn sets the RoleArn field's value.
41393func (s *DescribeThingRegistrationTaskOutput) SetRoleArn(v string) *DescribeThingRegistrationTaskOutput {
41394	s.RoleArn = &v
41395	return s
41396}
41397
41398// SetStatus sets the Status field's value.
41399func (s *DescribeThingRegistrationTaskOutput) SetStatus(v string) *DescribeThingRegistrationTaskOutput {
41400	s.Status = &v
41401	return s
41402}
41403
41404// SetSuccessCount sets the SuccessCount field's value.
41405func (s *DescribeThingRegistrationTaskOutput) SetSuccessCount(v int64) *DescribeThingRegistrationTaskOutput {
41406	s.SuccessCount = &v
41407	return s
41408}
41409
41410// SetTaskId sets the TaskId field's value.
41411func (s *DescribeThingRegistrationTaskOutput) SetTaskId(v string) *DescribeThingRegistrationTaskOutput {
41412	s.TaskId = &v
41413	return s
41414}
41415
41416// SetTemplateBody sets the TemplateBody field's value.
41417func (s *DescribeThingRegistrationTaskOutput) SetTemplateBody(v string) *DescribeThingRegistrationTaskOutput {
41418	s.TemplateBody = &v
41419	return s
41420}
41421
41422// The input for the DescribeThingType operation.
41423type DescribeThingTypeInput struct {
41424	_ struct{} `type:"structure" nopayload:"true"`
41425
41426	// The name of the thing type.
41427	//
41428	// ThingTypeName is a required field
41429	ThingTypeName *string `location:"uri" locationName:"thingTypeName" min:"1" type:"string" required:"true"`
41430}
41431
41432// String returns the string representation.
41433//
41434// API parameter values that are decorated as "sensitive" in the API will not
41435// be included in the string output. The member name will be present, but the
41436// value will be replaced with "sensitive".
41437func (s DescribeThingTypeInput) String() string {
41438	return awsutil.Prettify(s)
41439}
41440
41441// GoString returns the string representation.
41442//
41443// API parameter values that are decorated as "sensitive" in the API will not
41444// be included in the string output. The member name will be present, but the
41445// value will be replaced with "sensitive".
41446func (s DescribeThingTypeInput) GoString() string {
41447	return s.String()
41448}
41449
41450// Validate inspects the fields of the type to determine if they are valid.
41451func (s *DescribeThingTypeInput) Validate() error {
41452	invalidParams := request.ErrInvalidParams{Context: "DescribeThingTypeInput"}
41453	if s.ThingTypeName == nil {
41454		invalidParams.Add(request.NewErrParamRequired("ThingTypeName"))
41455	}
41456	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
41457		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
41458	}
41459
41460	if invalidParams.Len() > 0 {
41461		return invalidParams
41462	}
41463	return nil
41464}
41465
41466// SetThingTypeName sets the ThingTypeName field's value.
41467func (s *DescribeThingTypeInput) SetThingTypeName(v string) *DescribeThingTypeInput {
41468	s.ThingTypeName = &v
41469	return s
41470}
41471
41472// The output for the DescribeThingType operation.
41473type DescribeThingTypeOutput struct {
41474	_ struct{} `type:"structure"`
41475
41476	// The thing type ARN.
41477	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
41478
41479	// The thing type ID.
41480	ThingTypeId *string `locationName:"thingTypeId" type:"string"`
41481
41482	// The ThingTypeMetadata contains additional information about the thing type
41483	// including: creation date and time, a value indicating whether the thing type
41484	// is deprecated, and a date and time when it was deprecated.
41485	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
41486
41487	// The name of the thing type.
41488	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
41489
41490	// The ThingTypeProperties contains information about the thing type including
41491	// description, and a list of searchable thing attribute names.
41492	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
41493}
41494
41495// String returns the string representation.
41496//
41497// API parameter values that are decorated as "sensitive" in the API will not
41498// be included in the string output. The member name will be present, but the
41499// value will be replaced with "sensitive".
41500func (s DescribeThingTypeOutput) String() string {
41501	return awsutil.Prettify(s)
41502}
41503
41504// GoString returns the string representation.
41505//
41506// API parameter values that are decorated as "sensitive" in the API will not
41507// be included in the string output. The member name will be present, but the
41508// value will be replaced with "sensitive".
41509func (s DescribeThingTypeOutput) GoString() string {
41510	return s.String()
41511}
41512
41513// SetThingTypeArn sets the ThingTypeArn field's value.
41514func (s *DescribeThingTypeOutput) SetThingTypeArn(v string) *DescribeThingTypeOutput {
41515	s.ThingTypeArn = &v
41516	return s
41517}
41518
41519// SetThingTypeId sets the ThingTypeId field's value.
41520func (s *DescribeThingTypeOutput) SetThingTypeId(v string) *DescribeThingTypeOutput {
41521	s.ThingTypeId = &v
41522	return s
41523}
41524
41525// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
41526func (s *DescribeThingTypeOutput) SetThingTypeMetadata(v *ThingTypeMetadata) *DescribeThingTypeOutput {
41527	s.ThingTypeMetadata = v
41528	return s
41529}
41530
41531// SetThingTypeName sets the ThingTypeName field's value.
41532func (s *DescribeThingTypeOutput) SetThingTypeName(v string) *DescribeThingTypeOutput {
41533	s.ThingTypeName = &v
41534	return s
41535}
41536
41537// SetThingTypeProperties sets the ThingTypeProperties field's value.
41538func (s *DescribeThingTypeOutput) SetThingTypeProperties(v *ThingTypeProperties) *DescribeThingTypeOutput {
41539	s.ThingTypeProperties = v
41540	return s
41541}
41542
41543// Describes the location of the updated firmware.
41544type Destination struct {
41545	_ struct{} `type:"structure"`
41546
41547	// Describes the location in S3 of the updated firmware.
41548	S3Destination *S3Destination `locationName:"s3Destination" type:"structure"`
41549}
41550
41551// String returns the string representation.
41552//
41553// API parameter values that are decorated as "sensitive" in the API will not
41554// be included in the string output. The member name will be present, but the
41555// value will be replaced with "sensitive".
41556func (s Destination) String() string {
41557	return awsutil.Prettify(s)
41558}
41559
41560// GoString returns the string representation.
41561//
41562// API parameter values that are decorated as "sensitive" in the API will not
41563// be included in the string output. The member name will be present, but the
41564// value will be replaced with "sensitive".
41565func (s Destination) GoString() string {
41566	return s.String()
41567}
41568
41569// Validate inspects the fields of the type to determine if they are valid.
41570func (s *Destination) Validate() error {
41571	invalidParams := request.ErrInvalidParams{Context: "Destination"}
41572	if s.S3Destination != nil {
41573		if err := s.S3Destination.Validate(); err != nil {
41574			invalidParams.AddNested("S3Destination", err.(request.ErrInvalidParams))
41575		}
41576	}
41577
41578	if invalidParams.Len() > 0 {
41579		return invalidParams
41580	}
41581	return nil
41582}
41583
41584// SetS3Destination sets the S3Destination field's value.
41585func (s *Destination) SetS3Destination(v *S3Destination) *Destination {
41586	s.S3Destination = v
41587	return s
41588}
41589
41590type DetachPolicyInput struct {
41591	_ struct{} `type:"structure"`
41592
41593	// The policy to detach.
41594	//
41595	// PolicyName is a required field
41596	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
41597
41598	// The target from which the policy will be detached.
41599	//
41600	// Target is a required field
41601	Target *string `locationName:"target" type:"string" required:"true"`
41602}
41603
41604// String returns the string representation.
41605//
41606// API parameter values that are decorated as "sensitive" in the API will not
41607// be included in the string output. The member name will be present, but the
41608// value will be replaced with "sensitive".
41609func (s DetachPolicyInput) String() string {
41610	return awsutil.Prettify(s)
41611}
41612
41613// GoString returns the string representation.
41614//
41615// API parameter values that are decorated as "sensitive" in the API will not
41616// be included in the string output. The member name will be present, but the
41617// value will be replaced with "sensitive".
41618func (s DetachPolicyInput) GoString() string {
41619	return s.String()
41620}
41621
41622// Validate inspects the fields of the type to determine if they are valid.
41623func (s *DetachPolicyInput) Validate() error {
41624	invalidParams := request.ErrInvalidParams{Context: "DetachPolicyInput"}
41625	if s.PolicyName == nil {
41626		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
41627	}
41628	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
41629		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
41630	}
41631	if s.Target == nil {
41632		invalidParams.Add(request.NewErrParamRequired("Target"))
41633	}
41634
41635	if invalidParams.Len() > 0 {
41636		return invalidParams
41637	}
41638	return nil
41639}
41640
41641// SetPolicyName sets the PolicyName field's value.
41642func (s *DetachPolicyInput) SetPolicyName(v string) *DetachPolicyInput {
41643	s.PolicyName = &v
41644	return s
41645}
41646
41647// SetTarget sets the Target field's value.
41648func (s *DetachPolicyInput) SetTarget(v string) *DetachPolicyInput {
41649	s.Target = &v
41650	return s
41651}
41652
41653type DetachPolicyOutput struct {
41654	_ struct{} `type:"structure"`
41655}
41656
41657// String returns the string representation.
41658//
41659// API parameter values that are decorated as "sensitive" in the API will not
41660// be included in the string output. The member name will be present, but the
41661// value will be replaced with "sensitive".
41662func (s DetachPolicyOutput) String() string {
41663	return awsutil.Prettify(s)
41664}
41665
41666// GoString returns the string representation.
41667//
41668// API parameter values that are decorated as "sensitive" in the API will not
41669// be included in the string output. The member name will be present, but the
41670// value will be replaced with "sensitive".
41671func (s DetachPolicyOutput) GoString() string {
41672	return s.String()
41673}
41674
41675// The input for the DetachPrincipalPolicy operation.
41676type DetachPrincipalPolicyInput struct {
41677	_ struct{} `type:"structure" nopayload:"true"`
41678
41679	// The name of the policy to detach.
41680	//
41681	// PolicyName is a required field
41682	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
41683
41684	// The principal.
41685	//
41686	// Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
41687	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
41688	// (region:id).
41689	//
41690	// Principal is a required field
41691	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
41692}
41693
41694// String returns the string representation.
41695//
41696// API parameter values that are decorated as "sensitive" in the API will not
41697// be included in the string output. The member name will be present, but the
41698// value will be replaced with "sensitive".
41699func (s DetachPrincipalPolicyInput) String() string {
41700	return awsutil.Prettify(s)
41701}
41702
41703// GoString returns the string representation.
41704//
41705// API parameter values that are decorated as "sensitive" in the API will not
41706// be included in the string output. The member name will be present, but the
41707// value will be replaced with "sensitive".
41708func (s DetachPrincipalPolicyInput) GoString() string {
41709	return s.String()
41710}
41711
41712// Validate inspects the fields of the type to determine if they are valid.
41713func (s *DetachPrincipalPolicyInput) Validate() error {
41714	invalidParams := request.ErrInvalidParams{Context: "DetachPrincipalPolicyInput"}
41715	if s.PolicyName == nil {
41716		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
41717	}
41718	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
41719		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
41720	}
41721	if s.Principal == nil {
41722		invalidParams.Add(request.NewErrParamRequired("Principal"))
41723	}
41724
41725	if invalidParams.Len() > 0 {
41726		return invalidParams
41727	}
41728	return nil
41729}
41730
41731// SetPolicyName sets the PolicyName field's value.
41732func (s *DetachPrincipalPolicyInput) SetPolicyName(v string) *DetachPrincipalPolicyInput {
41733	s.PolicyName = &v
41734	return s
41735}
41736
41737// SetPrincipal sets the Principal field's value.
41738func (s *DetachPrincipalPolicyInput) SetPrincipal(v string) *DetachPrincipalPolicyInput {
41739	s.Principal = &v
41740	return s
41741}
41742
41743type DetachPrincipalPolicyOutput struct {
41744	_ struct{} `type:"structure"`
41745}
41746
41747// String returns the string representation.
41748//
41749// API parameter values that are decorated as "sensitive" in the API will not
41750// be included in the string output. The member name will be present, but the
41751// value will be replaced with "sensitive".
41752func (s DetachPrincipalPolicyOutput) String() string {
41753	return awsutil.Prettify(s)
41754}
41755
41756// GoString returns the string representation.
41757//
41758// API parameter values that are decorated as "sensitive" in the API will not
41759// be included in the string output. The member name will be present, but the
41760// value will be replaced with "sensitive".
41761func (s DetachPrincipalPolicyOutput) GoString() string {
41762	return s.String()
41763}
41764
41765type DetachSecurityProfileInput struct {
41766	_ struct{} `type:"structure" nopayload:"true"`
41767
41768	// The security profile that is detached.
41769	//
41770	// SecurityProfileName is a required field
41771	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
41772
41773	// The ARN of the thing group from which the security profile is detached.
41774	//
41775	// SecurityProfileTargetArn is a required field
41776	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
41777}
41778
41779// String returns the string representation.
41780//
41781// API parameter values that are decorated as "sensitive" in the API will not
41782// be included in the string output. The member name will be present, but the
41783// value will be replaced with "sensitive".
41784func (s DetachSecurityProfileInput) String() string {
41785	return awsutil.Prettify(s)
41786}
41787
41788// GoString returns the string representation.
41789//
41790// API parameter values that are decorated as "sensitive" in the API will not
41791// be included in the string output. The member name will be present, but the
41792// value will be replaced with "sensitive".
41793func (s DetachSecurityProfileInput) GoString() string {
41794	return s.String()
41795}
41796
41797// Validate inspects the fields of the type to determine if they are valid.
41798func (s *DetachSecurityProfileInput) Validate() error {
41799	invalidParams := request.ErrInvalidParams{Context: "DetachSecurityProfileInput"}
41800	if s.SecurityProfileName == nil {
41801		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
41802	}
41803	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
41804		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
41805	}
41806	if s.SecurityProfileTargetArn == nil {
41807		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
41808	}
41809
41810	if invalidParams.Len() > 0 {
41811		return invalidParams
41812	}
41813	return nil
41814}
41815
41816// SetSecurityProfileName sets the SecurityProfileName field's value.
41817func (s *DetachSecurityProfileInput) SetSecurityProfileName(v string) *DetachSecurityProfileInput {
41818	s.SecurityProfileName = &v
41819	return s
41820}
41821
41822// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
41823func (s *DetachSecurityProfileInput) SetSecurityProfileTargetArn(v string) *DetachSecurityProfileInput {
41824	s.SecurityProfileTargetArn = &v
41825	return s
41826}
41827
41828type DetachSecurityProfileOutput struct {
41829	_ struct{} `type:"structure"`
41830}
41831
41832// String returns the string representation.
41833//
41834// API parameter values that are decorated as "sensitive" in the API will not
41835// be included in the string output. The member name will be present, but the
41836// value will be replaced with "sensitive".
41837func (s DetachSecurityProfileOutput) String() string {
41838	return awsutil.Prettify(s)
41839}
41840
41841// GoString returns the string representation.
41842//
41843// API parameter values that are decorated as "sensitive" in the API will not
41844// be included in the string output. The member name will be present, but the
41845// value will be replaced with "sensitive".
41846func (s DetachSecurityProfileOutput) GoString() string {
41847	return s.String()
41848}
41849
41850// The input for the DetachThingPrincipal operation.
41851type DetachThingPrincipalInput struct {
41852	_ struct{} `type:"structure" nopayload:"true"`
41853
41854	// If the principal is a certificate, this value must be ARN of the certificate.
41855	// If the principal is an Amazon Cognito identity, this value must be the ID
41856	// of the Amazon Cognito identity.
41857	//
41858	// Principal is a required field
41859	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
41860
41861	// The name of the thing.
41862	//
41863	// ThingName is a required field
41864	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
41865}
41866
41867// String returns the string representation.
41868//
41869// API parameter values that are decorated as "sensitive" in the API will not
41870// be included in the string output. The member name will be present, but the
41871// value will be replaced with "sensitive".
41872func (s DetachThingPrincipalInput) String() string {
41873	return awsutil.Prettify(s)
41874}
41875
41876// GoString returns the string representation.
41877//
41878// API parameter values that are decorated as "sensitive" in the API will not
41879// be included in the string output. The member name will be present, but the
41880// value will be replaced with "sensitive".
41881func (s DetachThingPrincipalInput) GoString() string {
41882	return s.String()
41883}
41884
41885// Validate inspects the fields of the type to determine if they are valid.
41886func (s *DetachThingPrincipalInput) Validate() error {
41887	invalidParams := request.ErrInvalidParams{Context: "DetachThingPrincipalInput"}
41888	if s.Principal == nil {
41889		invalidParams.Add(request.NewErrParamRequired("Principal"))
41890	}
41891	if s.ThingName == nil {
41892		invalidParams.Add(request.NewErrParamRequired("ThingName"))
41893	}
41894	if s.ThingName != nil && len(*s.ThingName) < 1 {
41895		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
41896	}
41897
41898	if invalidParams.Len() > 0 {
41899		return invalidParams
41900	}
41901	return nil
41902}
41903
41904// SetPrincipal sets the Principal field's value.
41905func (s *DetachThingPrincipalInput) SetPrincipal(v string) *DetachThingPrincipalInput {
41906	s.Principal = &v
41907	return s
41908}
41909
41910// SetThingName sets the ThingName field's value.
41911func (s *DetachThingPrincipalInput) SetThingName(v string) *DetachThingPrincipalInput {
41912	s.ThingName = &v
41913	return s
41914}
41915
41916// The output from the DetachThingPrincipal operation.
41917type DetachThingPrincipalOutput struct {
41918	_ struct{} `type:"structure"`
41919}
41920
41921// String returns the string representation.
41922//
41923// API parameter values that are decorated as "sensitive" in the API will not
41924// be included in the string output. The member name will be present, but the
41925// value will be replaced with "sensitive".
41926func (s DetachThingPrincipalOutput) String() string {
41927	return awsutil.Prettify(s)
41928}
41929
41930// GoString returns the string representation.
41931//
41932// API parameter values that are decorated as "sensitive" in the API will not
41933// be included in the string output. The member name will be present, but the
41934// value will be replaced with "sensitive".
41935func (s DetachThingPrincipalOutput) GoString() string {
41936	return s.String()
41937}
41938
41939// Describes which mitigation actions should be executed.
41940type DetectMitigationActionExecution struct {
41941	_ struct{} `type:"structure"`
41942
41943	// The friendly name that uniquely identifies the mitigation action.
41944	ActionName *string `locationName:"actionName" type:"string"`
41945
41946	// The error code of a mitigation action.
41947	ErrorCode *string `locationName:"errorCode" type:"string"`
41948
41949	// The date a mitigation action ended.
41950	ExecutionEndDate *time.Time `locationName:"executionEndDate" type:"timestamp"`
41951
41952	// The date a mitigation action was started.
41953	ExecutionStartDate *time.Time `locationName:"executionStartDate" type:"timestamp"`
41954
41955	// The message of a mitigation action.
41956	Message *string `locationName:"message" type:"string"`
41957
41958	// The status of a mitigation action.
41959	Status *string `locationName:"status" type:"string" enum:"DetectMitigationActionExecutionStatus"`
41960
41961	// The unique identifier of the task.
41962	TaskId *string `locationName:"taskId" min:"1" type:"string"`
41963
41964	// The name of the thing.
41965	ThingName *string `locationName:"thingName" min:"1" type:"string"`
41966
41967	// The unique identifier of the violation.
41968	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
41969}
41970
41971// String returns the string representation.
41972//
41973// API parameter values that are decorated as "sensitive" in the API will not
41974// be included in the string output. The member name will be present, but the
41975// value will be replaced with "sensitive".
41976func (s DetectMitigationActionExecution) String() string {
41977	return awsutil.Prettify(s)
41978}
41979
41980// GoString returns the string representation.
41981//
41982// API parameter values that are decorated as "sensitive" in the API will not
41983// be included in the string output. The member name will be present, but the
41984// value will be replaced with "sensitive".
41985func (s DetectMitigationActionExecution) GoString() string {
41986	return s.String()
41987}
41988
41989// SetActionName sets the ActionName field's value.
41990func (s *DetectMitigationActionExecution) SetActionName(v string) *DetectMitigationActionExecution {
41991	s.ActionName = &v
41992	return s
41993}
41994
41995// SetErrorCode sets the ErrorCode field's value.
41996func (s *DetectMitigationActionExecution) SetErrorCode(v string) *DetectMitigationActionExecution {
41997	s.ErrorCode = &v
41998	return s
41999}
42000
42001// SetExecutionEndDate sets the ExecutionEndDate field's value.
42002func (s *DetectMitigationActionExecution) SetExecutionEndDate(v time.Time) *DetectMitigationActionExecution {
42003	s.ExecutionEndDate = &v
42004	return s
42005}
42006
42007// SetExecutionStartDate sets the ExecutionStartDate field's value.
42008func (s *DetectMitigationActionExecution) SetExecutionStartDate(v time.Time) *DetectMitigationActionExecution {
42009	s.ExecutionStartDate = &v
42010	return s
42011}
42012
42013// SetMessage sets the Message field's value.
42014func (s *DetectMitigationActionExecution) SetMessage(v string) *DetectMitigationActionExecution {
42015	s.Message = &v
42016	return s
42017}
42018
42019// SetStatus sets the Status field's value.
42020func (s *DetectMitigationActionExecution) SetStatus(v string) *DetectMitigationActionExecution {
42021	s.Status = &v
42022	return s
42023}
42024
42025// SetTaskId sets the TaskId field's value.
42026func (s *DetectMitigationActionExecution) SetTaskId(v string) *DetectMitigationActionExecution {
42027	s.TaskId = &v
42028	return s
42029}
42030
42031// SetThingName sets the ThingName field's value.
42032func (s *DetectMitigationActionExecution) SetThingName(v string) *DetectMitigationActionExecution {
42033	s.ThingName = &v
42034	return s
42035}
42036
42037// SetViolationId sets the ViolationId field's value.
42038func (s *DetectMitigationActionExecution) SetViolationId(v string) *DetectMitigationActionExecution {
42039	s.ViolationId = &v
42040	return s
42041}
42042
42043// The statistics of a mitigation action task.
42044type DetectMitigationActionsTaskStatistics struct {
42045	_ struct{} `type:"structure"`
42046
42047	// The actions that were performed.
42048	ActionsExecuted *int64 `locationName:"actionsExecuted" type:"long"`
42049
42050	// The actions that failed.
42051	ActionsFailed *int64 `locationName:"actionsFailed" type:"long"`
42052
42053	// The actions that were skipped.
42054	ActionsSkipped *int64 `locationName:"actionsSkipped" type:"long"`
42055}
42056
42057// String returns the string representation.
42058//
42059// API parameter values that are decorated as "sensitive" in the API will not
42060// be included in the string output. The member name will be present, but the
42061// value will be replaced with "sensitive".
42062func (s DetectMitigationActionsTaskStatistics) String() string {
42063	return awsutil.Prettify(s)
42064}
42065
42066// GoString returns the string representation.
42067//
42068// API parameter values that are decorated as "sensitive" in the API will not
42069// be included in the string output. The member name will be present, but the
42070// value will be replaced with "sensitive".
42071func (s DetectMitigationActionsTaskStatistics) GoString() string {
42072	return s.String()
42073}
42074
42075// SetActionsExecuted sets the ActionsExecuted field's value.
42076func (s *DetectMitigationActionsTaskStatistics) SetActionsExecuted(v int64) *DetectMitigationActionsTaskStatistics {
42077	s.ActionsExecuted = &v
42078	return s
42079}
42080
42081// SetActionsFailed sets the ActionsFailed field's value.
42082func (s *DetectMitigationActionsTaskStatistics) SetActionsFailed(v int64) *DetectMitigationActionsTaskStatistics {
42083	s.ActionsFailed = &v
42084	return s
42085}
42086
42087// SetActionsSkipped sets the ActionsSkipped field's value.
42088func (s *DetectMitigationActionsTaskStatistics) SetActionsSkipped(v int64) *DetectMitigationActionsTaskStatistics {
42089	s.ActionsSkipped = &v
42090	return s
42091}
42092
42093// The summary of the mitigation action tasks.
42094type DetectMitigationActionsTaskSummary struct {
42095	_ struct{} `type:"structure"`
42096
42097	// The definition of the actions.
42098	ActionsDefinition []*MitigationAction `locationName:"actionsDefinition" type:"list"`
42099
42100	// Includes only active violations.
42101	OnlyActiveViolationsIncluded *bool `locationName:"onlyActiveViolationsIncluded" type:"boolean"`
42102
42103	// Includes suppressed alerts.
42104	SuppressedAlertsIncluded *bool `locationName:"suppressedAlertsIncluded" type:"boolean"`
42105
42106	// Specifies the ML Detect findings to which the mitigation actions are applied.
42107	Target *DetectMitigationActionsTaskTarget `locationName:"target" type:"structure"`
42108
42109	// The date the task ended.
42110	TaskEndTime *time.Time `locationName:"taskEndTime" type:"timestamp"`
42111
42112	// The unique identifier of the task.
42113	TaskId *string `locationName:"taskId" min:"1" type:"string"`
42114
42115	// The date the task started.
42116	TaskStartTime *time.Time `locationName:"taskStartTime" type:"timestamp"`
42117
42118	// The statistics of a mitigation action task.
42119	TaskStatistics *DetectMitigationActionsTaskStatistics `locationName:"taskStatistics" type:"structure"`
42120
42121	// The status of the task.
42122	TaskStatus *string `locationName:"taskStatus" type:"string" enum:"DetectMitigationActionsTaskStatus"`
42123
42124	// Specifies the time period of which violation events occurred between.
42125	ViolationEventOccurrenceRange *ViolationEventOccurrenceRange `locationName:"violationEventOccurrenceRange" type:"structure"`
42126}
42127
42128// String returns the string representation.
42129//
42130// API parameter values that are decorated as "sensitive" in the API will not
42131// be included in the string output. The member name will be present, but the
42132// value will be replaced with "sensitive".
42133func (s DetectMitigationActionsTaskSummary) String() string {
42134	return awsutil.Prettify(s)
42135}
42136
42137// GoString returns the string representation.
42138//
42139// API parameter values that are decorated as "sensitive" in the API will not
42140// be included in the string output. The member name will be present, but the
42141// value will be replaced with "sensitive".
42142func (s DetectMitigationActionsTaskSummary) GoString() string {
42143	return s.String()
42144}
42145
42146// SetActionsDefinition sets the ActionsDefinition field's value.
42147func (s *DetectMitigationActionsTaskSummary) SetActionsDefinition(v []*MitigationAction) *DetectMitigationActionsTaskSummary {
42148	s.ActionsDefinition = v
42149	return s
42150}
42151
42152// SetOnlyActiveViolationsIncluded sets the OnlyActiveViolationsIncluded field's value.
42153func (s *DetectMitigationActionsTaskSummary) SetOnlyActiveViolationsIncluded(v bool) *DetectMitigationActionsTaskSummary {
42154	s.OnlyActiveViolationsIncluded = &v
42155	return s
42156}
42157
42158// SetSuppressedAlertsIncluded sets the SuppressedAlertsIncluded field's value.
42159func (s *DetectMitigationActionsTaskSummary) SetSuppressedAlertsIncluded(v bool) *DetectMitigationActionsTaskSummary {
42160	s.SuppressedAlertsIncluded = &v
42161	return s
42162}
42163
42164// SetTarget sets the Target field's value.
42165func (s *DetectMitigationActionsTaskSummary) SetTarget(v *DetectMitigationActionsTaskTarget) *DetectMitigationActionsTaskSummary {
42166	s.Target = v
42167	return s
42168}
42169
42170// SetTaskEndTime sets the TaskEndTime field's value.
42171func (s *DetectMitigationActionsTaskSummary) SetTaskEndTime(v time.Time) *DetectMitigationActionsTaskSummary {
42172	s.TaskEndTime = &v
42173	return s
42174}
42175
42176// SetTaskId sets the TaskId field's value.
42177func (s *DetectMitigationActionsTaskSummary) SetTaskId(v string) *DetectMitigationActionsTaskSummary {
42178	s.TaskId = &v
42179	return s
42180}
42181
42182// SetTaskStartTime sets the TaskStartTime field's value.
42183func (s *DetectMitigationActionsTaskSummary) SetTaskStartTime(v time.Time) *DetectMitigationActionsTaskSummary {
42184	s.TaskStartTime = &v
42185	return s
42186}
42187
42188// SetTaskStatistics sets the TaskStatistics field's value.
42189func (s *DetectMitigationActionsTaskSummary) SetTaskStatistics(v *DetectMitigationActionsTaskStatistics) *DetectMitigationActionsTaskSummary {
42190	s.TaskStatistics = v
42191	return s
42192}
42193
42194// SetTaskStatus sets the TaskStatus field's value.
42195func (s *DetectMitigationActionsTaskSummary) SetTaskStatus(v string) *DetectMitigationActionsTaskSummary {
42196	s.TaskStatus = &v
42197	return s
42198}
42199
42200// SetViolationEventOccurrenceRange sets the ViolationEventOccurrenceRange field's value.
42201func (s *DetectMitigationActionsTaskSummary) SetViolationEventOccurrenceRange(v *ViolationEventOccurrenceRange) *DetectMitigationActionsTaskSummary {
42202	s.ViolationEventOccurrenceRange = v
42203	return s
42204}
42205
42206// The target of a mitigation action task.
42207type DetectMitigationActionsTaskTarget struct {
42208	_ struct{} `type:"structure"`
42209
42210	// The name of the behavior.
42211	BehaviorName *string `locationName:"behaviorName" min:"1" type:"string"`
42212
42213	// The name of the security profile.
42214	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
42215
42216	// The unique identifiers of the violations.
42217	ViolationIds []*string `locationName:"violationIds" min:"1" type:"list"`
42218}
42219
42220// String returns the string representation.
42221//
42222// API parameter values that are decorated as "sensitive" in the API will not
42223// be included in the string output. The member name will be present, but the
42224// value will be replaced with "sensitive".
42225func (s DetectMitigationActionsTaskTarget) String() string {
42226	return awsutil.Prettify(s)
42227}
42228
42229// GoString returns the string representation.
42230//
42231// API parameter values that are decorated as "sensitive" in the API will not
42232// be included in the string output. The member name will be present, but the
42233// value will be replaced with "sensitive".
42234func (s DetectMitigationActionsTaskTarget) GoString() string {
42235	return s.String()
42236}
42237
42238// Validate inspects the fields of the type to determine if they are valid.
42239func (s *DetectMitigationActionsTaskTarget) Validate() error {
42240	invalidParams := request.ErrInvalidParams{Context: "DetectMitigationActionsTaskTarget"}
42241	if s.BehaviorName != nil && len(*s.BehaviorName) < 1 {
42242		invalidParams.Add(request.NewErrParamMinLen("BehaviorName", 1))
42243	}
42244	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
42245		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
42246	}
42247	if s.ViolationIds != nil && len(s.ViolationIds) < 1 {
42248		invalidParams.Add(request.NewErrParamMinLen("ViolationIds", 1))
42249	}
42250
42251	if invalidParams.Len() > 0 {
42252		return invalidParams
42253	}
42254	return nil
42255}
42256
42257// SetBehaviorName sets the BehaviorName field's value.
42258func (s *DetectMitigationActionsTaskTarget) SetBehaviorName(v string) *DetectMitigationActionsTaskTarget {
42259	s.BehaviorName = &v
42260	return s
42261}
42262
42263// SetSecurityProfileName sets the SecurityProfileName field's value.
42264func (s *DetectMitigationActionsTaskTarget) SetSecurityProfileName(v string) *DetectMitigationActionsTaskTarget {
42265	s.SecurityProfileName = &v
42266	return s
42267}
42268
42269// SetViolationIds sets the ViolationIds field's value.
42270func (s *DetectMitigationActionsTaskTarget) SetViolationIds(v []*string) *DetectMitigationActionsTaskTarget {
42271	s.ViolationIds = v
42272	return s
42273}
42274
42275// The input for the DisableTopicRuleRequest operation.
42276type DisableTopicRuleInput struct {
42277	_ struct{} `type:"structure" nopayload:"true"`
42278
42279	// The name of the rule to disable.
42280	//
42281	// RuleName is a required field
42282	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
42283}
42284
42285// String returns the string representation.
42286//
42287// API parameter values that are decorated as "sensitive" in the API will not
42288// be included in the string output. The member name will be present, but the
42289// value will be replaced with "sensitive".
42290func (s DisableTopicRuleInput) String() string {
42291	return awsutil.Prettify(s)
42292}
42293
42294// GoString returns the string representation.
42295//
42296// API parameter values that are decorated as "sensitive" in the API will not
42297// be included in the string output. The member name will be present, but the
42298// value will be replaced with "sensitive".
42299func (s DisableTopicRuleInput) GoString() string {
42300	return s.String()
42301}
42302
42303// Validate inspects the fields of the type to determine if they are valid.
42304func (s *DisableTopicRuleInput) Validate() error {
42305	invalidParams := request.ErrInvalidParams{Context: "DisableTopicRuleInput"}
42306	if s.RuleName == nil {
42307		invalidParams.Add(request.NewErrParamRequired("RuleName"))
42308	}
42309	if s.RuleName != nil && len(*s.RuleName) < 1 {
42310		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
42311	}
42312
42313	if invalidParams.Len() > 0 {
42314		return invalidParams
42315	}
42316	return nil
42317}
42318
42319// SetRuleName sets the RuleName field's value.
42320func (s *DisableTopicRuleInput) SetRuleName(v string) *DisableTopicRuleInput {
42321	s.RuleName = &v
42322	return s
42323}
42324
42325type DisableTopicRuleOutput struct {
42326	_ struct{} `type:"structure"`
42327}
42328
42329// String returns the string representation.
42330//
42331// API parameter values that are decorated as "sensitive" in the API will not
42332// be included in the string output. The member name will be present, but the
42333// value will be replaced with "sensitive".
42334func (s DisableTopicRuleOutput) String() string {
42335	return awsutil.Prettify(s)
42336}
42337
42338// GoString returns the string representation.
42339//
42340// API parameter values that are decorated as "sensitive" in the API will not
42341// be included in the string output. The member name will be present, but the
42342// value will be replaced with "sensitive".
42343func (s DisableTopicRuleOutput) GoString() string {
42344	return s.String()
42345}
42346
42347// The summary of a domain configuration. A domain configuration specifies custom
42348// IoT-specific information about a domain. A domain configuration can be associated
42349// with an Amazon Web Services-managed domain (for example, dbc123defghijk.iot.us-west-2.amazonaws.com),
42350// a customer managed domain, or a default endpoint.
42351//
42352//    * Data
42353//
42354//    * Jobs
42355//
42356//    * CredentialProvider
42357type DomainConfigurationSummary struct {
42358	_ struct{} `type:"structure"`
42359
42360	// The ARN of the domain configuration.
42361	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
42362
42363	// The name of the domain configuration. This value must be unique to a region.
42364	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
42365
42366	// The type of service delivered by the endpoint.
42367	ServiceType *string `locationName:"serviceType" type:"string" enum:"ServiceType"`
42368}
42369
42370// String returns the string representation.
42371//
42372// API parameter values that are decorated as "sensitive" in the API will not
42373// be included in the string output. The member name will be present, but the
42374// value will be replaced with "sensitive".
42375func (s DomainConfigurationSummary) String() string {
42376	return awsutil.Prettify(s)
42377}
42378
42379// GoString returns the string representation.
42380//
42381// API parameter values that are decorated as "sensitive" in the API will not
42382// be included in the string output. The member name will be present, but the
42383// value will be replaced with "sensitive".
42384func (s DomainConfigurationSummary) GoString() string {
42385	return s.String()
42386}
42387
42388// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
42389func (s *DomainConfigurationSummary) SetDomainConfigurationArn(v string) *DomainConfigurationSummary {
42390	s.DomainConfigurationArn = &v
42391	return s
42392}
42393
42394// SetDomainConfigurationName sets the DomainConfigurationName field's value.
42395func (s *DomainConfigurationSummary) SetDomainConfigurationName(v string) *DomainConfigurationSummary {
42396	s.DomainConfigurationName = &v
42397	return s
42398}
42399
42400// SetServiceType sets the ServiceType field's value.
42401func (s *DomainConfigurationSummary) SetServiceType(v string) *DomainConfigurationSummary {
42402	s.ServiceType = &v
42403	return s
42404}
42405
42406// Describes an action to write to a DynamoDB table.
42407//
42408// The tableName, hashKeyField, and rangeKeyField values must match the values
42409// used when you created the table.
42410//
42411// The hashKeyValue and rangeKeyvalue fields use a substitution template syntax.
42412// These templates provide data at runtime. The syntax is as follows: ${sql-expression}.
42413//
42414// You can specify any valid expression in a WHERE or SELECT clause, including
42415// JSON properties, comparisons, calculations, and functions. For example, the
42416// following field uses the third level of the topic:
42417//
42418// "hashKeyValue": "${topic(3)}"
42419//
42420// The following field uses the timestamp:
42421//
42422// "rangeKeyValue": "${timestamp()}"
42423type DynamoDBAction struct {
42424	_ struct{} `type:"structure"`
42425
42426	// The hash key name.
42427	//
42428	// HashKeyField is a required field
42429	HashKeyField *string `locationName:"hashKeyField" type:"string" required:"true"`
42430
42431	// The hash key type. Valid values are "STRING" or "NUMBER"
42432	HashKeyType *string `locationName:"hashKeyType" type:"string" enum:"DynamoKeyType"`
42433
42434	// The hash key value.
42435	//
42436	// HashKeyValue is a required field
42437	HashKeyValue *string `locationName:"hashKeyValue" type:"string" required:"true"`
42438
42439	// The type of operation to be performed. This follows the substitution template,
42440	// so it can be ${operation}, but the substitution must result in one of the
42441	// following: INSERT, UPDATE, or DELETE.
42442	Operation *string `locationName:"operation" type:"string"`
42443
42444	// The action payload. This name can be customized.
42445	PayloadField *string `locationName:"payloadField" type:"string"`
42446
42447	// The range key name.
42448	RangeKeyField *string `locationName:"rangeKeyField" type:"string"`
42449
42450	// The range key type. Valid values are "STRING" or "NUMBER"
42451	RangeKeyType *string `locationName:"rangeKeyType" type:"string" enum:"DynamoKeyType"`
42452
42453	// The range key value.
42454	RangeKeyValue *string `locationName:"rangeKeyValue" type:"string"`
42455
42456	// The ARN of the IAM role that grants access to the DynamoDB table.
42457	//
42458	// RoleArn is a required field
42459	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
42460
42461	// The name of the DynamoDB table.
42462	//
42463	// TableName is a required field
42464	TableName *string `locationName:"tableName" type:"string" required:"true"`
42465}
42466
42467// String returns the string representation.
42468//
42469// API parameter values that are decorated as "sensitive" in the API will not
42470// be included in the string output. The member name will be present, but the
42471// value will be replaced with "sensitive".
42472func (s DynamoDBAction) String() string {
42473	return awsutil.Prettify(s)
42474}
42475
42476// GoString returns the string representation.
42477//
42478// API parameter values that are decorated as "sensitive" in the API will not
42479// be included in the string output. The member name will be present, but the
42480// value will be replaced with "sensitive".
42481func (s DynamoDBAction) GoString() string {
42482	return s.String()
42483}
42484
42485// Validate inspects the fields of the type to determine if they are valid.
42486func (s *DynamoDBAction) Validate() error {
42487	invalidParams := request.ErrInvalidParams{Context: "DynamoDBAction"}
42488	if s.HashKeyField == nil {
42489		invalidParams.Add(request.NewErrParamRequired("HashKeyField"))
42490	}
42491	if s.HashKeyValue == nil {
42492		invalidParams.Add(request.NewErrParamRequired("HashKeyValue"))
42493	}
42494	if s.RoleArn == nil {
42495		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
42496	}
42497	if s.TableName == nil {
42498		invalidParams.Add(request.NewErrParamRequired("TableName"))
42499	}
42500
42501	if invalidParams.Len() > 0 {
42502		return invalidParams
42503	}
42504	return nil
42505}
42506
42507// SetHashKeyField sets the HashKeyField field's value.
42508func (s *DynamoDBAction) SetHashKeyField(v string) *DynamoDBAction {
42509	s.HashKeyField = &v
42510	return s
42511}
42512
42513// SetHashKeyType sets the HashKeyType field's value.
42514func (s *DynamoDBAction) SetHashKeyType(v string) *DynamoDBAction {
42515	s.HashKeyType = &v
42516	return s
42517}
42518
42519// SetHashKeyValue sets the HashKeyValue field's value.
42520func (s *DynamoDBAction) SetHashKeyValue(v string) *DynamoDBAction {
42521	s.HashKeyValue = &v
42522	return s
42523}
42524
42525// SetOperation sets the Operation field's value.
42526func (s *DynamoDBAction) SetOperation(v string) *DynamoDBAction {
42527	s.Operation = &v
42528	return s
42529}
42530
42531// SetPayloadField sets the PayloadField field's value.
42532func (s *DynamoDBAction) SetPayloadField(v string) *DynamoDBAction {
42533	s.PayloadField = &v
42534	return s
42535}
42536
42537// SetRangeKeyField sets the RangeKeyField field's value.
42538func (s *DynamoDBAction) SetRangeKeyField(v string) *DynamoDBAction {
42539	s.RangeKeyField = &v
42540	return s
42541}
42542
42543// SetRangeKeyType sets the RangeKeyType field's value.
42544func (s *DynamoDBAction) SetRangeKeyType(v string) *DynamoDBAction {
42545	s.RangeKeyType = &v
42546	return s
42547}
42548
42549// SetRangeKeyValue sets the RangeKeyValue field's value.
42550func (s *DynamoDBAction) SetRangeKeyValue(v string) *DynamoDBAction {
42551	s.RangeKeyValue = &v
42552	return s
42553}
42554
42555// SetRoleArn sets the RoleArn field's value.
42556func (s *DynamoDBAction) SetRoleArn(v string) *DynamoDBAction {
42557	s.RoleArn = &v
42558	return s
42559}
42560
42561// SetTableName sets the TableName field's value.
42562func (s *DynamoDBAction) SetTableName(v string) *DynamoDBAction {
42563	s.TableName = &v
42564	return s
42565}
42566
42567// Describes an action to write to a DynamoDB table.
42568//
42569// This DynamoDB action writes each attribute in the message payload into it's
42570// own column in the DynamoDB table.
42571type DynamoDBv2Action struct {
42572	_ struct{} `type:"structure"`
42573
42574	// Specifies the DynamoDB table to which the message data will be written. For
42575	// example:
42576	//
42577	// { "dynamoDBv2": { "roleArn": "aws:iam:12341251:my-role" "putItem": { "tableName":
42578	// "my-table" } } }
42579	//
42580	// Each attribute in the message payload will be written to a separate column
42581	// in the DynamoDB database.
42582	//
42583	// PutItem is a required field
42584	PutItem *PutItemInput `locationName:"putItem" type:"structure" required:"true"`
42585
42586	// The ARN of the IAM role that grants access to the DynamoDB table.
42587	//
42588	// RoleArn is a required field
42589	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
42590}
42591
42592// String returns the string representation.
42593//
42594// API parameter values that are decorated as "sensitive" in the API will not
42595// be included in the string output. The member name will be present, but the
42596// value will be replaced with "sensitive".
42597func (s DynamoDBv2Action) String() string {
42598	return awsutil.Prettify(s)
42599}
42600
42601// GoString returns the string representation.
42602//
42603// API parameter values that are decorated as "sensitive" in the API will not
42604// be included in the string output. The member name will be present, but the
42605// value will be replaced with "sensitive".
42606func (s DynamoDBv2Action) GoString() string {
42607	return s.String()
42608}
42609
42610// Validate inspects the fields of the type to determine if they are valid.
42611func (s *DynamoDBv2Action) Validate() error {
42612	invalidParams := request.ErrInvalidParams{Context: "DynamoDBv2Action"}
42613	if s.PutItem == nil {
42614		invalidParams.Add(request.NewErrParamRequired("PutItem"))
42615	}
42616	if s.RoleArn == nil {
42617		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
42618	}
42619	if s.PutItem != nil {
42620		if err := s.PutItem.Validate(); err != nil {
42621			invalidParams.AddNested("PutItem", err.(request.ErrInvalidParams))
42622		}
42623	}
42624
42625	if invalidParams.Len() > 0 {
42626		return invalidParams
42627	}
42628	return nil
42629}
42630
42631// SetPutItem sets the PutItem field's value.
42632func (s *DynamoDBv2Action) SetPutItem(v *PutItemInput) *DynamoDBv2Action {
42633	s.PutItem = v
42634	return s
42635}
42636
42637// SetRoleArn sets the RoleArn field's value.
42638func (s *DynamoDBv2Action) SetRoleArn(v string) *DynamoDBv2Action {
42639	s.RoleArn = &v
42640	return s
42641}
42642
42643// The policy that has the effect on the authorization results.
42644type EffectivePolicy struct {
42645	_ struct{} `type:"structure"`
42646
42647	// The policy ARN.
42648	PolicyArn *string `locationName:"policyArn" type:"string"`
42649
42650	// The IAM policy document.
42651	PolicyDocument *string `locationName:"policyDocument" type:"string"`
42652
42653	// The policy name.
42654	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
42655}
42656
42657// String returns the string representation.
42658//
42659// API parameter values that are decorated as "sensitive" in the API will not
42660// be included in the string output. The member name will be present, but the
42661// value will be replaced with "sensitive".
42662func (s EffectivePolicy) String() string {
42663	return awsutil.Prettify(s)
42664}
42665
42666// GoString returns the string representation.
42667//
42668// API parameter values that are decorated as "sensitive" in the API will not
42669// be included in the string output. The member name will be present, but the
42670// value will be replaced with "sensitive".
42671func (s EffectivePolicy) GoString() string {
42672	return s.String()
42673}
42674
42675// SetPolicyArn sets the PolicyArn field's value.
42676func (s *EffectivePolicy) SetPolicyArn(v string) *EffectivePolicy {
42677	s.PolicyArn = &v
42678	return s
42679}
42680
42681// SetPolicyDocument sets the PolicyDocument field's value.
42682func (s *EffectivePolicy) SetPolicyDocument(v string) *EffectivePolicy {
42683	s.PolicyDocument = &v
42684	return s
42685}
42686
42687// SetPolicyName sets the PolicyName field's value.
42688func (s *EffectivePolicy) SetPolicyName(v string) *EffectivePolicy {
42689	s.PolicyName = &v
42690	return s
42691}
42692
42693// Describes an action that writes data to an Amazon OpenSearch Service domain.
42694//
42695// The Elasticsearch action can only be used by existing rule actions. To create
42696// a new rule action or to update an existing rule action, use the OpenSearch
42697// rule action instead. For more information, see OpenSearchAction (https://docs.aws.amazon.com/iot/latest/apireference/API_OpenSearchAction.html).
42698type ElasticsearchAction struct {
42699	_ struct{} `type:"structure"`
42700
42701	// The endpoint of your OpenSearch domain.
42702	//
42703	// Endpoint is a required field
42704	Endpoint *string `locationName:"endpoint" type:"string" required:"true"`
42705
42706	// The unique identifier for the document you are storing.
42707	//
42708	// Id is a required field
42709	Id *string `locationName:"id" type:"string" required:"true"`
42710
42711	// The index where you want to store your data.
42712	//
42713	// Index is a required field
42714	Index *string `locationName:"index" type:"string" required:"true"`
42715
42716	// The IAM role ARN that has access to OpenSearch.
42717	//
42718	// RoleArn is a required field
42719	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
42720
42721	// The type of document you are storing.
42722	//
42723	// Type is a required field
42724	Type *string `locationName:"type" type:"string" required:"true"`
42725}
42726
42727// String returns the string representation.
42728//
42729// API parameter values that are decorated as "sensitive" in the API will not
42730// be included in the string output. The member name will be present, but the
42731// value will be replaced with "sensitive".
42732func (s ElasticsearchAction) String() string {
42733	return awsutil.Prettify(s)
42734}
42735
42736// GoString returns the string representation.
42737//
42738// API parameter values that are decorated as "sensitive" in the API will not
42739// be included in the string output. The member name will be present, but the
42740// value will be replaced with "sensitive".
42741func (s ElasticsearchAction) GoString() string {
42742	return s.String()
42743}
42744
42745// Validate inspects the fields of the type to determine if they are valid.
42746func (s *ElasticsearchAction) Validate() error {
42747	invalidParams := request.ErrInvalidParams{Context: "ElasticsearchAction"}
42748	if s.Endpoint == nil {
42749		invalidParams.Add(request.NewErrParamRequired("Endpoint"))
42750	}
42751	if s.Id == nil {
42752		invalidParams.Add(request.NewErrParamRequired("Id"))
42753	}
42754	if s.Index == nil {
42755		invalidParams.Add(request.NewErrParamRequired("Index"))
42756	}
42757	if s.RoleArn == nil {
42758		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
42759	}
42760	if s.Type == nil {
42761		invalidParams.Add(request.NewErrParamRequired("Type"))
42762	}
42763
42764	if invalidParams.Len() > 0 {
42765		return invalidParams
42766	}
42767	return nil
42768}
42769
42770// SetEndpoint sets the Endpoint field's value.
42771func (s *ElasticsearchAction) SetEndpoint(v string) *ElasticsearchAction {
42772	s.Endpoint = &v
42773	return s
42774}
42775
42776// SetId sets the Id field's value.
42777func (s *ElasticsearchAction) SetId(v string) *ElasticsearchAction {
42778	s.Id = &v
42779	return s
42780}
42781
42782// SetIndex sets the Index field's value.
42783func (s *ElasticsearchAction) SetIndex(v string) *ElasticsearchAction {
42784	s.Index = &v
42785	return s
42786}
42787
42788// SetRoleArn sets the RoleArn field's value.
42789func (s *ElasticsearchAction) SetRoleArn(v string) *ElasticsearchAction {
42790	s.RoleArn = &v
42791	return s
42792}
42793
42794// SetType sets the Type field's value.
42795func (s *ElasticsearchAction) SetType(v string) *ElasticsearchAction {
42796	s.Type = &v
42797	return s
42798}
42799
42800// Parameters used when defining a mitigation action that enable Amazon Web
42801// Services IoT Core logging.
42802type EnableIoTLoggingParams struct {
42803	_ struct{} `type:"structure"`
42804
42805	// Specifies the type of information to be logged.
42806	//
42807	// LogLevel is a required field
42808	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
42809
42810	// The Amazon Resource Name (ARN) of the IAM role used for logging.
42811	//
42812	// RoleArnForLogging is a required field
42813	RoleArnForLogging *string `locationName:"roleArnForLogging" min:"20" type:"string" required:"true"`
42814}
42815
42816// String returns the string representation.
42817//
42818// API parameter values that are decorated as "sensitive" in the API will not
42819// be included in the string output. The member name will be present, but the
42820// value will be replaced with "sensitive".
42821func (s EnableIoTLoggingParams) String() string {
42822	return awsutil.Prettify(s)
42823}
42824
42825// GoString returns the string representation.
42826//
42827// API parameter values that are decorated as "sensitive" in the API will not
42828// be included in the string output. The member name will be present, but the
42829// value will be replaced with "sensitive".
42830func (s EnableIoTLoggingParams) GoString() string {
42831	return s.String()
42832}
42833
42834// Validate inspects the fields of the type to determine if they are valid.
42835func (s *EnableIoTLoggingParams) Validate() error {
42836	invalidParams := request.ErrInvalidParams{Context: "EnableIoTLoggingParams"}
42837	if s.LogLevel == nil {
42838		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
42839	}
42840	if s.RoleArnForLogging == nil {
42841		invalidParams.Add(request.NewErrParamRequired("RoleArnForLogging"))
42842	}
42843	if s.RoleArnForLogging != nil && len(*s.RoleArnForLogging) < 20 {
42844		invalidParams.Add(request.NewErrParamMinLen("RoleArnForLogging", 20))
42845	}
42846
42847	if invalidParams.Len() > 0 {
42848		return invalidParams
42849	}
42850	return nil
42851}
42852
42853// SetLogLevel sets the LogLevel field's value.
42854func (s *EnableIoTLoggingParams) SetLogLevel(v string) *EnableIoTLoggingParams {
42855	s.LogLevel = &v
42856	return s
42857}
42858
42859// SetRoleArnForLogging sets the RoleArnForLogging field's value.
42860func (s *EnableIoTLoggingParams) SetRoleArnForLogging(v string) *EnableIoTLoggingParams {
42861	s.RoleArnForLogging = &v
42862	return s
42863}
42864
42865// The input for the EnableTopicRuleRequest operation.
42866type EnableTopicRuleInput struct {
42867	_ struct{} `type:"structure" nopayload:"true"`
42868
42869	// The name of the topic rule to enable.
42870	//
42871	// RuleName is a required field
42872	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
42873}
42874
42875// String returns the string representation.
42876//
42877// API parameter values that are decorated as "sensitive" in the API will not
42878// be included in the string output. The member name will be present, but the
42879// value will be replaced with "sensitive".
42880func (s EnableTopicRuleInput) String() string {
42881	return awsutil.Prettify(s)
42882}
42883
42884// GoString returns the string representation.
42885//
42886// API parameter values that are decorated as "sensitive" in the API will not
42887// be included in the string output. The member name will be present, but the
42888// value will be replaced with "sensitive".
42889func (s EnableTopicRuleInput) GoString() string {
42890	return s.String()
42891}
42892
42893// Validate inspects the fields of the type to determine if they are valid.
42894func (s *EnableTopicRuleInput) Validate() error {
42895	invalidParams := request.ErrInvalidParams{Context: "EnableTopicRuleInput"}
42896	if s.RuleName == nil {
42897		invalidParams.Add(request.NewErrParamRequired("RuleName"))
42898	}
42899	if s.RuleName != nil && len(*s.RuleName) < 1 {
42900		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
42901	}
42902
42903	if invalidParams.Len() > 0 {
42904		return invalidParams
42905	}
42906	return nil
42907}
42908
42909// SetRuleName sets the RuleName field's value.
42910func (s *EnableTopicRuleInput) SetRuleName(v string) *EnableTopicRuleInput {
42911	s.RuleName = &v
42912	return s
42913}
42914
42915type EnableTopicRuleOutput struct {
42916	_ struct{} `type:"structure"`
42917}
42918
42919// String returns the string representation.
42920//
42921// API parameter values that are decorated as "sensitive" in the API will not
42922// be included in the string output. The member name will be present, but the
42923// value will be replaced with "sensitive".
42924func (s EnableTopicRuleOutput) String() string {
42925	return awsutil.Prettify(s)
42926}
42927
42928// GoString returns the string representation.
42929//
42930// API parameter values that are decorated as "sensitive" in the API will not
42931// be included in the string output. The member name will be present, but the
42932// value will be replaced with "sensitive".
42933func (s EnableTopicRuleOutput) GoString() string {
42934	return s.String()
42935}
42936
42937// Error information.
42938type ErrorInfo struct {
42939	_ struct{} `type:"structure"`
42940
42941	// The error code.
42942	Code *string `locationName:"code" type:"string"`
42943
42944	// The error message.
42945	Message *string `locationName:"message" type:"string"`
42946}
42947
42948// String returns the string representation.
42949//
42950// API parameter values that are decorated as "sensitive" in the API will not
42951// be included in the string output. The member name will be present, but the
42952// value will be replaced with "sensitive".
42953func (s ErrorInfo) String() string {
42954	return awsutil.Prettify(s)
42955}
42956
42957// GoString returns the string representation.
42958//
42959// API parameter values that are decorated as "sensitive" in the API will not
42960// be included in the string output. The member name will be present, but the
42961// value will be replaced with "sensitive".
42962func (s ErrorInfo) GoString() string {
42963	return s.String()
42964}
42965
42966// SetCode sets the Code field's value.
42967func (s *ErrorInfo) SetCode(v string) *ErrorInfo {
42968	s.Code = &v
42969	return s
42970}
42971
42972// SetMessage sets the Message field's value.
42973func (s *ErrorInfo) SetMessage(v string) *ErrorInfo {
42974	s.Message = &v
42975	return s
42976}
42977
42978// Information that explicitly denies authorization.
42979type ExplicitDeny struct {
42980	_ struct{} `type:"structure"`
42981
42982	// The policies that denied the authorization.
42983	Policies []*Policy `locationName:"policies" type:"list"`
42984}
42985
42986// String returns the string representation.
42987//
42988// API parameter values that are decorated as "sensitive" in the API will not
42989// be included in the string output. The member name will be present, but the
42990// value will be replaced with "sensitive".
42991func (s ExplicitDeny) String() string {
42992	return awsutil.Prettify(s)
42993}
42994
42995// GoString returns the string representation.
42996//
42997// API parameter values that are decorated as "sensitive" in the API will not
42998// be included in the string output. The member name will be present, but the
42999// value will be replaced with "sensitive".
43000func (s ExplicitDeny) GoString() string {
43001	return s.String()
43002}
43003
43004// SetPolicies sets the Policies field's value.
43005func (s *ExplicitDeny) SetPolicies(v []*Policy) *ExplicitDeny {
43006	s.Policies = v
43007	return s
43008}
43009
43010// Allows you to create an exponential rate of rollout for a job.
43011type ExponentialRolloutRate struct {
43012	_ struct{} `type:"structure"`
43013
43014	// The minimum number of things that will be notified of a pending job, per
43015	// minute at the start of job rollout. This parameter allows you to define the
43016	// initial rate of rollout.
43017	//
43018	// BaseRatePerMinute is a required field
43019	BaseRatePerMinute *int64 `locationName:"baseRatePerMinute" min:"1" type:"integer" required:"true"`
43020
43021	// The exponential factor to increase the rate of rollout for a job.
43022	//
43023	// Amazon Web Services IoT Core supports up to one digit after the decimal (for
43024	// example, 1.5, but not 1.55).
43025	//
43026	// IncrementFactor is a required field
43027	IncrementFactor *float64 `locationName:"incrementFactor" min:"1" type:"double" required:"true"`
43028
43029	// The criteria to initiate the increase in rate of rollout for a job.
43030	//
43031	// RateIncreaseCriteria is a required field
43032	RateIncreaseCriteria *RateIncreaseCriteria `locationName:"rateIncreaseCriteria" type:"structure" required:"true"`
43033}
43034
43035// String returns the string representation.
43036//
43037// API parameter values that are decorated as "sensitive" in the API will not
43038// be included in the string output. The member name will be present, but the
43039// value will be replaced with "sensitive".
43040func (s ExponentialRolloutRate) String() string {
43041	return awsutil.Prettify(s)
43042}
43043
43044// GoString returns the string representation.
43045//
43046// API parameter values that are decorated as "sensitive" in the API will not
43047// be included in the string output. The member name will be present, but the
43048// value will be replaced with "sensitive".
43049func (s ExponentialRolloutRate) GoString() string {
43050	return s.String()
43051}
43052
43053// Validate inspects the fields of the type to determine if they are valid.
43054func (s *ExponentialRolloutRate) Validate() error {
43055	invalidParams := request.ErrInvalidParams{Context: "ExponentialRolloutRate"}
43056	if s.BaseRatePerMinute == nil {
43057		invalidParams.Add(request.NewErrParamRequired("BaseRatePerMinute"))
43058	}
43059	if s.BaseRatePerMinute != nil && *s.BaseRatePerMinute < 1 {
43060		invalidParams.Add(request.NewErrParamMinValue("BaseRatePerMinute", 1))
43061	}
43062	if s.IncrementFactor == nil {
43063		invalidParams.Add(request.NewErrParamRequired("IncrementFactor"))
43064	}
43065	if s.IncrementFactor != nil && *s.IncrementFactor < 1 {
43066		invalidParams.Add(request.NewErrParamMinValue("IncrementFactor", 1))
43067	}
43068	if s.RateIncreaseCriteria == nil {
43069		invalidParams.Add(request.NewErrParamRequired("RateIncreaseCriteria"))
43070	}
43071	if s.RateIncreaseCriteria != nil {
43072		if err := s.RateIncreaseCriteria.Validate(); err != nil {
43073			invalidParams.AddNested("RateIncreaseCriteria", err.(request.ErrInvalidParams))
43074		}
43075	}
43076
43077	if invalidParams.Len() > 0 {
43078		return invalidParams
43079	}
43080	return nil
43081}
43082
43083// SetBaseRatePerMinute sets the BaseRatePerMinute field's value.
43084func (s *ExponentialRolloutRate) SetBaseRatePerMinute(v int64) *ExponentialRolloutRate {
43085	s.BaseRatePerMinute = &v
43086	return s
43087}
43088
43089// SetIncrementFactor sets the IncrementFactor field's value.
43090func (s *ExponentialRolloutRate) SetIncrementFactor(v float64) *ExponentialRolloutRate {
43091	s.IncrementFactor = &v
43092	return s
43093}
43094
43095// SetRateIncreaseCriteria sets the RateIncreaseCriteria field's value.
43096func (s *ExponentialRolloutRate) SetRateIncreaseCriteria(v *RateIncreaseCriteria) *ExponentialRolloutRate {
43097	s.RateIncreaseCriteria = v
43098	return s
43099}
43100
43101// Describes the name and data type at a field.
43102type Field struct {
43103	_ struct{} `type:"structure"`
43104
43105	// The name of the field.
43106	Name *string `locationName:"name" type:"string"`
43107
43108	// The data type of the field.
43109	Type *string `locationName:"type" type:"string" enum:"FieldType"`
43110}
43111
43112// String returns the string representation.
43113//
43114// API parameter values that are decorated as "sensitive" in the API will not
43115// be included in the string output. The member name will be present, but the
43116// value will be replaced with "sensitive".
43117func (s Field) String() string {
43118	return awsutil.Prettify(s)
43119}
43120
43121// GoString returns the string representation.
43122//
43123// API parameter values that are decorated as "sensitive" in the API will not
43124// be included in the string output. The member name will be present, but the
43125// value will be replaced with "sensitive".
43126func (s Field) GoString() string {
43127	return s.String()
43128}
43129
43130// SetName sets the Name field's value.
43131func (s *Field) SetName(v string) *Field {
43132	s.Name = &v
43133	return s
43134}
43135
43136// SetType sets the Type field's value.
43137func (s *Field) SetType(v string) *Field {
43138	s.Type = &v
43139	return s
43140}
43141
43142// The location of the OTA update.
43143type FileLocation struct {
43144	_ struct{} `type:"structure"`
43145
43146	// The location of the updated firmware in S3.
43147	S3Location *S3Location `locationName:"s3Location" type:"structure"`
43148
43149	// The stream that contains the OTA update.
43150	Stream *Stream `locationName:"stream" type:"structure"`
43151}
43152
43153// String returns the string representation.
43154//
43155// API parameter values that are decorated as "sensitive" in the API will not
43156// be included in the string output. The member name will be present, but the
43157// value will be replaced with "sensitive".
43158func (s FileLocation) String() string {
43159	return awsutil.Prettify(s)
43160}
43161
43162// GoString returns the string representation.
43163//
43164// API parameter values that are decorated as "sensitive" in the API will not
43165// be included in the string output. The member name will be present, but the
43166// value will be replaced with "sensitive".
43167func (s FileLocation) GoString() string {
43168	return s.String()
43169}
43170
43171// Validate inspects the fields of the type to determine if they are valid.
43172func (s *FileLocation) Validate() error {
43173	invalidParams := request.ErrInvalidParams{Context: "FileLocation"}
43174	if s.S3Location != nil {
43175		if err := s.S3Location.Validate(); err != nil {
43176			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
43177		}
43178	}
43179	if s.Stream != nil {
43180		if err := s.Stream.Validate(); err != nil {
43181			invalidParams.AddNested("Stream", err.(request.ErrInvalidParams))
43182		}
43183	}
43184
43185	if invalidParams.Len() > 0 {
43186		return invalidParams
43187	}
43188	return nil
43189}
43190
43191// SetS3Location sets the S3Location field's value.
43192func (s *FileLocation) SetS3Location(v *S3Location) *FileLocation {
43193	s.S3Location = v
43194	return s
43195}
43196
43197// SetStream sets the Stream field's value.
43198func (s *FileLocation) SetStream(v *Stream) *FileLocation {
43199	s.Stream = v
43200	return s
43201}
43202
43203// Describes an action that writes data to an Amazon Kinesis Firehose stream.
43204type FirehoseAction struct {
43205	_ struct{} `type:"structure"`
43206
43207	// Whether to deliver the Kinesis Data Firehose stream as a batch by using PutRecordBatch
43208	// (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html).
43209	// The default value is false.
43210	//
43211	// When batchMode is true and the rule's SQL statement evaluates to an Array,
43212	// each Array element forms one record in the PutRecordBatch (https://docs.aws.amazon.com/firehose/latest/APIReference/API_PutRecordBatch.html)
43213	// request. The resulting array can't have more than 500 records.
43214	BatchMode *bool `locationName:"batchMode" type:"boolean"`
43215
43216	// The delivery stream name.
43217	//
43218	// DeliveryStreamName is a required field
43219	DeliveryStreamName *string `locationName:"deliveryStreamName" type:"string" required:"true"`
43220
43221	// The IAM role that grants access to the Amazon Kinesis Firehose stream.
43222	//
43223	// RoleArn is a required field
43224	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
43225
43226	// A character separator that will be used to separate records written to the
43227	// Firehose stream. Valid values are: '\n' (newline), '\t' (tab), '\r\n' (Windows
43228	// newline), ',' (comma).
43229	Separator *string `locationName:"separator" type:"string"`
43230}
43231
43232// String returns the string representation.
43233//
43234// API parameter values that are decorated as "sensitive" in the API will not
43235// be included in the string output. The member name will be present, but the
43236// value will be replaced with "sensitive".
43237func (s FirehoseAction) String() string {
43238	return awsutil.Prettify(s)
43239}
43240
43241// GoString returns the string representation.
43242//
43243// API parameter values that are decorated as "sensitive" in the API will not
43244// be included in the string output. The member name will be present, but the
43245// value will be replaced with "sensitive".
43246func (s FirehoseAction) GoString() string {
43247	return s.String()
43248}
43249
43250// Validate inspects the fields of the type to determine if they are valid.
43251func (s *FirehoseAction) Validate() error {
43252	invalidParams := request.ErrInvalidParams{Context: "FirehoseAction"}
43253	if s.DeliveryStreamName == nil {
43254		invalidParams.Add(request.NewErrParamRequired("DeliveryStreamName"))
43255	}
43256	if s.RoleArn == nil {
43257		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
43258	}
43259
43260	if invalidParams.Len() > 0 {
43261		return invalidParams
43262	}
43263	return nil
43264}
43265
43266// SetBatchMode sets the BatchMode field's value.
43267func (s *FirehoseAction) SetBatchMode(v bool) *FirehoseAction {
43268	s.BatchMode = &v
43269	return s
43270}
43271
43272// SetDeliveryStreamName sets the DeliveryStreamName field's value.
43273func (s *FirehoseAction) SetDeliveryStreamName(v string) *FirehoseAction {
43274	s.DeliveryStreamName = &v
43275	return s
43276}
43277
43278// SetRoleArn sets the RoleArn field's value.
43279func (s *FirehoseAction) SetRoleArn(v string) *FirehoseAction {
43280	s.RoleArn = &v
43281	return s
43282}
43283
43284// SetSeparator sets the Separator field's value.
43285func (s *FirehoseAction) SetSeparator(v string) *FirehoseAction {
43286	s.Separator = &v
43287	return s
43288}
43289
43290// The name and ARN of a fleet metric.
43291type FleetMetricNameAndArn struct {
43292	_ struct{} `type:"structure"`
43293
43294	// The fleet metric ARN.
43295	MetricArn *string `locationName:"metricArn" type:"string"`
43296
43297	// The fleet metric name.
43298	MetricName *string `locationName:"metricName" min:"1" type:"string"`
43299}
43300
43301// String returns the string representation.
43302//
43303// API parameter values that are decorated as "sensitive" in the API will not
43304// be included in the string output. The member name will be present, but the
43305// value will be replaced with "sensitive".
43306func (s FleetMetricNameAndArn) String() string {
43307	return awsutil.Prettify(s)
43308}
43309
43310// GoString returns the string representation.
43311//
43312// API parameter values that are decorated as "sensitive" in the API will not
43313// be included in the string output. The member name will be present, but the
43314// value will be replaced with "sensitive".
43315func (s FleetMetricNameAndArn) GoString() string {
43316	return s.String()
43317}
43318
43319// SetMetricArn sets the MetricArn field's value.
43320func (s *FleetMetricNameAndArn) SetMetricArn(v string) *FleetMetricNameAndArn {
43321	s.MetricArn = &v
43322	return s
43323}
43324
43325// SetMetricName sets the MetricName field's value.
43326func (s *FleetMetricNameAndArn) SetMetricName(v string) *FleetMetricNameAndArn {
43327	s.MetricName = &v
43328	return s
43329}
43330
43331type GetBehaviorModelTrainingSummariesInput struct {
43332	_ struct{} `type:"structure" nopayload:"true"`
43333
43334	// The maximum number of results to return at one time. The default is 25.
43335	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
43336
43337	// The token for the next set of results.
43338	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
43339
43340	// The name of the security profile.
43341	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
43342}
43343
43344// String returns the string representation.
43345//
43346// API parameter values that are decorated as "sensitive" in the API will not
43347// be included in the string output. The member name will be present, but the
43348// value will be replaced with "sensitive".
43349func (s GetBehaviorModelTrainingSummariesInput) String() string {
43350	return awsutil.Prettify(s)
43351}
43352
43353// GoString returns the string representation.
43354//
43355// API parameter values that are decorated as "sensitive" in the API will not
43356// be included in the string output. The member name will be present, but the
43357// value will be replaced with "sensitive".
43358func (s GetBehaviorModelTrainingSummariesInput) GoString() string {
43359	return s.String()
43360}
43361
43362// Validate inspects the fields of the type to determine if they are valid.
43363func (s *GetBehaviorModelTrainingSummariesInput) Validate() error {
43364	invalidParams := request.ErrInvalidParams{Context: "GetBehaviorModelTrainingSummariesInput"}
43365	if s.MaxResults != nil && *s.MaxResults < 1 {
43366		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
43367	}
43368	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
43369		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
43370	}
43371
43372	if invalidParams.Len() > 0 {
43373		return invalidParams
43374	}
43375	return nil
43376}
43377
43378// SetMaxResults sets the MaxResults field's value.
43379func (s *GetBehaviorModelTrainingSummariesInput) SetMaxResults(v int64) *GetBehaviorModelTrainingSummariesInput {
43380	s.MaxResults = &v
43381	return s
43382}
43383
43384// SetNextToken sets the NextToken field's value.
43385func (s *GetBehaviorModelTrainingSummariesInput) SetNextToken(v string) *GetBehaviorModelTrainingSummariesInput {
43386	s.NextToken = &v
43387	return s
43388}
43389
43390// SetSecurityProfileName sets the SecurityProfileName field's value.
43391func (s *GetBehaviorModelTrainingSummariesInput) SetSecurityProfileName(v string) *GetBehaviorModelTrainingSummariesInput {
43392	s.SecurityProfileName = &v
43393	return s
43394}
43395
43396type GetBehaviorModelTrainingSummariesOutput struct {
43397	_ struct{} `type:"structure"`
43398
43399	// A token that can be used to retrieve the next set of results, or null if
43400	// there are no additional results.
43401	NextToken *string `locationName:"nextToken" type:"string"`
43402
43403	// A list of all ML Detect behaviors and their model status for a given Security
43404	// Profile.
43405	Summaries []*BehaviorModelTrainingSummary `locationName:"summaries" type:"list"`
43406}
43407
43408// String returns the string representation.
43409//
43410// API parameter values that are decorated as "sensitive" in the API will not
43411// be included in the string output. The member name will be present, but the
43412// value will be replaced with "sensitive".
43413func (s GetBehaviorModelTrainingSummariesOutput) String() string {
43414	return awsutil.Prettify(s)
43415}
43416
43417// GoString returns the string representation.
43418//
43419// API parameter values that are decorated as "sensitive" in the API will not
43420// be included in the string output. The member name will be present, but the
43421// value will be replaced with "sensitive".
43422func (s GetBehaviorModelTrainingSummariesOutput) GoString() string {
43423	return s.String()
43424}
43425
43426// SetNextToken sets the NextToken field's value.
43427func (s *GetBehaviorModelTrainingSummariesOutput) SetNextToken(v string) *GetBehaviorModelTrainingSummariesOutput {
43428	s.NextToken = &v
43429	return s
43430}
43431
43432// SetSummaries sets the Summaries field's value.
43433func (s *GetBehaviorModelTrainingSummariesOutput) SetSummaries(v []*BehaviorModelTrainingSummary) *GetBehaviorModelTrainingSummariesOutput {
43434	s.Summaries = v
43435	return s
43436}
43437
43438type GetBucketsAggregationInput struct {
43439	_ struct{} `type:"structure"`
43440
43441	// The aggregation field.
43442	//
43443	// AggregationField is a required field
43444	AggregationField *string `locationName:"aggregationField" min:"1" type:"string" required:"true"`
43445
43446	// The basic control of the response shape and the bucket aggregation type to
43447	// perform.
43448	//
43449	// BucketsAggregationType is a required field
43450	BucketsAggregationType *BucketsAggregationType `locationName:"bucketsAggregationType" type:"structure" required:"true"`
43451
43452	// The name of the index to search.
43453	IndexName *string `locationName:"indexName" min:"1" type:"string"`
43454
43455	// The search query string.
43456	//
43457	// QueryString is a required field
43458	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
43459
43460	// The version of the query.
43461	QueryVersion *string `locationName:"queryVersion" type:"string"`
43462}
43463
43464// String returns the string representation.
43465//
43466// API parameter values that are decorated as "sensitive" in the API will not
43467// be included in the string output. The member name will be present, but the
43468// value will be replaced with "sensitive".
43469func (s GetBucketsAggregationInput) String() string {
43470	return awsutil.Prettify(s)
43471}
43472
43473// GoString returns the string representation.
43474//
43475// API parameter values that are decorated as "sensitive" in the API will not
43476// be included in the string output. The member name will be present, but the
43477// value will be replaced with "sensitive".
43478func (s GetBucketsAggregationInput) GoString() string {
43479	return s.String()
43480}
43481
43482// Validate inspects the fields of the type to determine if they are valid.
43483func (s *GetBucketsAggregationInput) Validate() error {
43484	invalidParams := request.ErrInvalidParams{Context: "GetBucketsAggregationInput"}
43485	if s.AggregationField == nil {
43486		invalidParams.Add(request.NewErrParamRequired("AggregationField"))
43487	}
43488	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
43489		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
43490	}
43491	if s.BucketsAggregationType == nil {
43492		invalidParams.Add(request.NewErrParamRequired("BucketsAggregationType"))
43493	}
43494	if s.IndexName != nil && len(*s.IndexName) < 1 {
43495		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
43496	}
43497	if s.QueryString == nil {
43498		invalidParams.Add(request.NewErrParamRequired("QueryString"))
43499	}
43500	if s.QueryString != nil && len(*s.QueryString) < 1 {
43501		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
43502	}
43503	if s.BucketsAggregationType != nil {
43504		if err := s.BucketsAggregationType.Validate(); err != nil {
43505			invalidParams.AddNested("BucketsAggregationType", err.(request.ErrInvalidParams))
43506		}
43507	}
43508
43509	if invalidParams.Len() > 0 {
43510		return invalidParams
43511	}
43512	return nil
43513}
43514
43515// SetAggregationField sets the AggregationField field's value.
43516func (s *GetBucketsAggregationInput) SetAggregationField(v string) *GetBucketsAggregationInput {
43517	s.AggregationField = &v
43518	return s
43519}
43520
43521// SetBucketsAggregationType sets the BucketsAggregationType field's value.
43522func (s *GetBucketsAggregationInput) SetBucketsAggregationType(v *BucketsAggregationType) *GetBucketsAggregationInput {
43523	s.BucketsAggregationType = v
43524	return s
43525}
43526
43527// SetIndexName sets the IndexName field's value.
43528func (s *GetBucketsAggregationInput) SetIndexName(v string) *GetBucketsAggregationInput {
43529	s.IndexName = &v
43530	return s
43531}
43532
43533// SetQueryString sets the QueryString field's value.
43534func (s *GetBucketsAggregationInput) SetQueryString(v string) *GetBucketsAggregationInput {
43535	s.QueryString = &v
43536	return s
43537}
43538
43539// SetQueryVersion sets the QueryVersion field's value.
43540func (s *GetBucketsAggregationInput) SetQueryVersion(v string) *GetBucketsAggregationInput {
43541	s.QueryVersion = &v
43542	return s
43543}
43544
43545type GetBucketsAggregationOutput struct {
43546	_ struct{} `type:"structure"`
43547
43548	// The main part of the response with a list of buckets. Each bucket contains
43549	// a keyValue and a count.
43550	//
43551	// keyValue: The aggregation field value counted for the particular bucket.
43552	//
43553	// count: The number of documents that have that value.
43554	Buckets []*Bucket `locationName:"buckets" type:"list"`
43555
43556	// The total number of documents that fit the query string criteria and contain
43557	// a value for the Aggregation field targeted in the request.
43558	TotalCount *int64 `locationName:"totalCount" type:"integer"`
43559}
43560
43561// String returns the string representation.
43562//
43563// API parameter values that are decorated as "sensitive" in the API will not
43564// be included in the string output. The member name will be present, but the
43565// value will be replaced with "sensitive".
43566func (s GetBucketsAggregationOutput) String() string {
43567	return awsutil.Prettify(s)
43568}
43569
43570// GoString returns the string representation.
43571//
43572// API parameter values that are decorated as "sensitive" in the API will not
43573// be included in the string output. The member name will be present, but the
43574// value will be replaced with "sensitive".
43575func (s GetBucketsAggregationOutput) GoString() string {
43576	return s.String()
43577}
43578
43579// SetBuckets sets the Buckets field's value.
43580func (s *GetBucketsAggregationOutput) SetBuckets(v []*Bucket) *GetBucketsAggregationOutput {
43581	s.Buckets = v
43582	return s
43583}
43584
43585// SetTotalCount sets the TotalCount field's value.
43586func (s *GetBucketsAggregationOutput) SetTotalCount(v int64) *GetBucketsAggregationOutput {
43587	s.TotalCount = &v
43588	return s
43589}
43590
43591type GetCardinalityInput struct {
43592	_ struct{} `type:"structure"`
43593
43594	// The field to aggregate.
43595	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
43596
43597	// The name of the index to search.
43598	IndexName *string `locationName:"indexName" min:"1" type:"string"`
43599
43600	// The search query string.
43601	//
43602	// QueryString is a required field
43603	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
43604
43605	// The query version.
43606	QueryVersion *string `locationName:"queryVersion" type:"string"`
43607}
43608
43609// String returns the string representation.
43610//
43611// API parameter values that are decorated as "sensitive" in the API will not
43612// be included in the string output. The member name will be present, but the
43613// value will be replaced with "sensitive".
43614func (s GetCardinalityInput) String() string {
43615	return awsutil.Prettify(s)
43616}
43617
43618// GoString returns the string representation.
43619//
43620// API parameter values that are decorated as "sensitive" in the API will not
43621// be included in the string output. The member name will be present, but the
43622// value will be replaced with "sensitive".
43623func (s GetCardinalityInput) GoString() string {
43624	return s.String()
43625}
43626
43627// Validate inspects the fields of the type to determine if they are valid.
43628func (s *GetCardinalityInput) Validate() error {
43629	invalidParams := request.ErrInvalidParams{Context: "GetCardinalityInput"}
43630	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
43631		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
43632	}
43633	if s.IndexName != nil && len(*s.IndexName) < 1 {
43634		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
43635	}
43636	if s.QueryString == nil {
43637		invalidParams.Add(request.NewErrParamRequired("QueryString"))
43638	}
43639	if s.QueryString != nil && len(*s.QueryString) < 1 {
43640		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
43641	}
43642
43643	if invalidParams.Len() > 0 {
43644		return invalidParams
43645	}
43646	return nil
43647}
43648
43649// SetAggregationField sets the AggregationField field's value.
43650func (s *GetCardinalityInput) SetAggregationField(v string) *GetCardinalityInput {
43651	s.AggregationField = &v
43652	return s
43653}
43654
43655// SetIndexName sets the IndexName field's value.
43656func (s *GetCardinalityInput) SetIndexName(v string) *GetCardinalityInput {
43657	s.IndexName = &v
43658	return s
43659}
43660
43661// SetQueryString sets the QueryString field's value.
43662func (s *GetCardinalityInput) SetQueryString(v string) *GetCardinalityInput {
43663	s.QueryString = &v
43664	return s
43665}
43666
43667// SetQueryVersion sets the QueryVersion field's value.
43668func (s *GetCardinalityInput) SetQueryVersion(v string) *GetCardinalityInput {
43669	s.QueryVersion = &v
43670	return s
43671}
43672
43673type GetCardinalityOutput struct {
43674	_ struct{} `type:"structure"`
43675
43676	// The approximate count of unique values that match the query.
43677	Cardinality *int64 `locationName:"cardinality" type:"integer"`
43678}
43679
43680// String returns the string representation.
43681//
43682// API parameter values that are decorated as "sensitive" in the API will not
43683// be included in the string output. The member name will be present, but the
43684// value will be replaced with "sensitive".
43685func (s GetCardinalityOutput) String() string {
43686	return awsutil.Prettify(s)
43687}
43688
43689// GoString returns the string representation.
43690//
43691// API parameter values that are decorated as "sensitive" in the API will not
43692// be included in the string output. The member name will be present, but the
43693// value will be replaced with "sensitive".
43694func (s GetCardinalityOutput) GoString() string {
43695	return s.String()
43696}
43697
43698// SetCardinality sets the Cardinality field's value.
43699func (s *GetCardinalityOutput) SetCardinality(v int64) *GetCardinalityOutput {
43700	s.Cardinality = &v
43701	return s
43702}
43703
43704type GetEffectivePoliciesInput struct {
43705	_ struct{} `type:"structure"`
43706
43707	// The Cognito identity pool ID.
43708	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
43709
43710	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
43711	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
43712	// (region:id).
43713	Principal *string `locationName:"principal" type:"string"`
43714
43715	// The thing name.
43716	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
43717}
43718
43719// String returns the string representation.
43720//
43721// API parameter values that are decorated as "sensitive" in the API will not
43722// be included in the string output. The member name will be present, but the
43723// value will be replaced with "sensitive".
43724func (s GetEffectivePoliciesInput) String() string {
43725	return awsutil.Prettify(s)
43726}
43727
43728// GoString returns the string representation.
43729//
43730// API parameter values that are decorated as "sensitive" in the API will not
43731// be included in the string output. The member name will be present, but the
43732// value will be replaced with "sensitive".
43733func (s GetEffectivePoliciesInput) GoString() string {
43734	return s.String()
43735}
43736
43737// Validate inspects the fields of the type to determine if they are valid.
43738func (s *GetEffectivePoliciesInput) Validate() error {
43739	invalidParams := request.ErrInvalidParams{Context: "GetEffectivePoliciesInput"}
43740	if s.ThingName != nil && len(*s.ThingName) < 1 {
43741		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
43742	}
43743
43744	if invalidParams.Len() > 0 {
43745		return invalidParams
43746	}
43747	return nil
43748}
43749
43750// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
43751func (s *GetEffectivePoliciesInput) SetCognitoIdentityPoolId(v string) *GetEffectivePoliciesInput {
43752	s.CognitoIdentityPoolId = &v
43753	return s
43754}
43755
43756// SetPrincipal sets the Principal field's value.
43757func (s *GetEffectivePoliciesInput) SetPrincipal(v string) *GetEffectivePoliciesInput {
43758	s.Principal = &v
43759	return s
43760}
43761
43762// SetThingName sets the ThingName field's value.
43763func (s *GetEffectivePoliciesInput) SetThingName(v string) *GetEffectivePoliciesInput {
43764	s.ThingName = &v
43765	return s
43766}
43767
43768type GetEffectivePoliciesOutput struct {
43769	_ struct{} `type:"structure"`
43770
43771	// The effective policies.
43772	EffectivePolicies []*EffectivePolicy `locationName:"effectivePolicies" type:"list"`
43773}
43774
43775// String returns the string representation.
43776//
43777// API parameter values that are decorated as "sensitive" in the API will not
43778// be included in the string output. The member name will be present, but the
43779// value will be replaced with "sensitive".
43780func (s GetEffectivePoliciesOutput) String() string {
43781	return awsutil.Prettify(s)
43782}
43783
43784// GoString returns the string representation.
43785//
43786// API parameter values that are decorated as "sensitive" in the API will not
43787// be included in the string output. The member name will be present, but the
43788// value will be replaced with "sensitive".
43789func (s GetEffectivePoliciesOutput) GoString() string {
43790	return s.String()
43791}
43792
43793// SetEffectivePolicies sets the EffectivePolicies field's value.
43794func (s *GetEffectivePoliciesOutput) SetEffectivePolicies(v []*EffectivePolicy) *GetEffectivePoliciesOutput {
43795	s.EffectivePolicies = v
43796	return s
43797}
43798
43799type GetIndexingConfigurationInput struct {
43800	_ struct{} `type:"structure" nopayload:"true"`
43801}
43802
43803// String returns the string representation.
43804//
43805// API parameter values that are decorated as "sensitive" in the API will not
43806// be included in the string output. The member name will be present, but the
43807// value will be replaced with "sensitive".
43808func (s GetIndexingConfigurationInput) String() string {
43809	return awsutil.Prettify(s)
43810}
43811
43812// GoString returns the string representation.
43813//
43814// API parameter values that are decorated as "sensitive" in the API will not
43815// be included in the string output. The member name will be present, but the
43816// value will be replaced with "sensitive".
43817func (s GetIndexingConfigurationInput) GoString() string {
43818	return s.String()
43819}
43820
43821type GetIndexingConfigurationOutput struct {
43822	_ struct{} `type:"structure"`
43823
43824	// The index configuration.
43825	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
43826
43827	// Thing indexing configuration.
43828	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
43829}
43830
43831// String returns the string representation.
43832//
43833// API parameter values that are decorated as "sensitive" in the API will not
43834// be included in the string output. The member name will be present, but the
43835// value will be replaced with "sensitive".
43836func (s GetIndexingConfigurationOutput) String() string {
43837	return awsutil.Prettify(s)
43838}
43839
43840// GoString returns the string representation.
43841//
43842// API parameter values that are decorated as "sensitive" in the API will not
43843// be included in the string output. The member name will be present, but the
43844// value will be replaced with "sensitive".
43845func (s GetIndexingConfigurationOutput) GoString() string {
43846	return s.String()
43847}
43848
43849// SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
43850func (s *GetIndexingConfigurationOutput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *GetIndexingConfigurationOutput {
43851	s.ThingGroupIndexingConfiguration = v
43852	return s
43853}
43854
43855// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
43856func (s *GetIndexingConfigurationOutput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *GetIndexingConfigurationOutput {
43857	s.ThingIndexingConfiguration = v
43858	return s
43859}
43860
43861type GetJobDocumentInput struct {
43862	_ struct{} `type:"structure" nopayload:"true"`
43863
43864	// The unique identifier you assigned to this job when it was created.
43865	//
43866	// JobId is a required field
43867	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
43868}
43869
43870// String returns the string representation.
43871//
43872// API parameter values that are decorated as "sensitive" in the API will not
43873// be included in the string output. The member name will be present, but the
43874// value will be replaced with "sensitive".
43875func (s GetJobDocumentInput) String() string {
43876	return awsutil.Prettify(s)
43877}
43878
43879// GoString returns the string representation.
43880//
43881// API parameter values that are decorated as "sensitive" in the API will not
43882// be included in the string output. The member name will be present, but the
43883// value will be replaced with "sensitive".
43884func (s GetJobDocumentInput) GoString() string {
43885	return s.String()
43886}
43887
43888// Validate inspects the fields of the type to determine if they are valid.
43889func (s *GetJobDocumentInput) Validate() error {
43890	invalidParams := request.ErrInvalidParams{Context: "GetJobDocumentInput"}
43891	if s.JobId == nil {
43892		invalidParams.Add(request.NewErrParamRequired("JobId"))
43893	}
43894	if s.JobId != nil && len(*s.JobId) < 1 {
43895		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
43896	}
43897
43898	if invalidParams.Len() > 0 {
43899		return invalidParams
43900	}
43901	return nil
43902}
43903
43904// SetJobId sets the JobId field's value.
43905func (s *GetJobDocumentInput) SetJobId(v string) *GetJobDocumentInput {
43906	s.JobId = &v
43907	return s
43908}
43909
43910type GetJobDocumentOutput struct {
43911	_ struct{} `type:"structure"`
43912
43913	// The job document content.
43914	Document *string `locationName:"document" type:"string"`
43915}
43916
43917// String returns the string representation.
43918//
43919// API parameter values that are decorated as "sensitive" in the API will not
43920// be included in the string output. The member name will be present, but the
43921// value will be replaced with "sensitive".
43922func (s GetJobDocumentOutput) String() string {
43923	return awsutil.Prettify(s)
43924}
43925
43926// GoString returns the string representation.
43927//
43928// API parameter values that are decorated as "sensitive" in the API will not
43929// be included in the string output. The member name will be present, but the
43930// value will be replaced with "sensitive".
43931func (s GetJobDocumentOutput) GoString() string {
43932	return s.String()
43933}
43934
43935// SetDocument sets the Document field's value.
43936func (s *GetJobDocumentOutput) SetDocument(v string) *GetJobDocumentOutput {
43937	s.Document = &v
43938	return s
43939}
43940
43941// The input for the GetLoggingOptions operation.
43942type GetLoggingOptionsInput struct {
43943	_ struct{} `type:"structure" nopayload:"true"`
43944}
43945
43946// String returns the string representation.
43947//
43948// API parameter values that are decorated as "sensitive" in the API will not
43949// be included in the string output. The member name will be present, but the
43950// value will be replaced with "sensitive".
43951func (s GetLoggingOptionsInput) String() string {
43952	return awsutil.Prettify(s)
43953}
43954
43955// GoString returns the string representation.
43956//
43957// API parameter values that are decorated as "sensitive" in the API will not
43958// be included in the string output. The member name will be present, but the
43959// value will be replaced with "sensitive".
43960func (s GetLoggingOptionsInput) GoString() string {
43961	return s.String()
43962}
43963
43964// The output from the GetLoggingOptions operation.
43965type GetLoggingOptionsOutput struct {
43966	_ struct{} `type:"structure"`
43967
43968	// The logging level.
43969	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
43970
43971	// The ARN of the IAM role that grants access.
43972	RoleArn *string `locationName:"roleArn" type:"string"`
43973}
43974
43975// String returns the string representation.
43976//
43977// API parameter values that are decorated as "sensitive" in the API will not
43978// be included in the string output. The member name will be present, but the
43979// value will be replaced with "sensitive".
43980func (s GetLoggingOptionsOutput) String() string {
43981	return awsutil.Prettify(s)
43982}
43983
43984// GoString returns the string representation.
43985//
43986// API parameter values that are decorated as "sensitive" in the API will not
43987// be included in the string output. The member name will be present, but the
43988// value will be replaced with "sensitive".
43989func (s GetLoggingOptionsOutput) GoString() string {
43990	return s.String()
43991}
43992
43993// SetLogLevel sets the LogLevel field's value.
43994func (s *GetLoggingOptionsOutput) SetLogLevel(v string) *GetLoggingOptionsOutput {
43995	s.LogLevel = &v
43996	return s
43997}
43998
43999// SetRoleArn sets the RoleArn field's value.
44000func (s *GetLoggingOptionsOutput) SetRoleArn(v string) *GetLoggingOptionsOutput {
44001	s.RoleArn = &v
44002	return s
44003}
44004
44005type GetOTAUpdateInput struct {
44006	_ struct{} `type:"structure" nopayload:"true"`
44007
44008	// The OTA update ID.
44009	//
44010	// OtaUpdateId is a required field
44011	OtaUpdateId *string `location:"uri" locationName:"otaUpdateId" min:"1" type:"string" required:"true"`
44012}
44013
44014// String returns the string representation.
44015//
44016// API parameter values that are decorated as "sensitive" in the API will not
44017// be included in the string output. The member name will be present, but the
44018// value will be replaced with "sensitive".
44019func (s GetOTAUpdateInput) String() string {
44020	return awsutil.Prettify(s)
44021}
44022
44023// GoString returns the string representation.
44024//
44025// API parameter values that are decorated as "sensitive" in the API will not
44026// be included in the string output. The member name will be present, but the
44027// value will be replaced with "sensitive".
44028func (s GetOTAUpdateInput) GoString() string {
44029	return s.String()
44030}
44031
44032// Validate inspects the fields of the type to determine if they are valid.
44033func (s *GetOTAUpdateInput) Validate() error {
44034	invalidParams := request.ErrInvalidParams{Context: "GetOTAUpdateInput"}
44035	if s.OtaUpdateId == nil {
44036		invalidParams.Add(request.NewErrParamRequired("OtaUpdateId"))
44037	}
44038	if s.OtaUpdateId != nil && len(*s.OtaUpdateId) < 1 {
44039		invalidParams.Add(request.NewErrParamMinLen("OtaUpdateId", 1))
44040	}
44041
44042	if invalidParams.Len() > 0 {
44043		return invalidParams
44044	}
44045	return nil
44046}
44047
44048// SetOtaUpdateId sets the OtaUpdateId field's value.
44049func (s *GetOTAUpdateInput) SetOtaUpdateId(v string) *GetOTAUpdateInput {
44050	s.OtaUpdateId = &v
44051	return s
44052}
44053
44054type GetOTAUpdateOutput struct {
44055	_ struct{} `type:"structure"`
44056
44057	// The OTA update info.
44058	OtaUpdateInfo *OTAUpdateInfo `locationName:"otaUpdateInfo" type:"structure"`
44059}
44060
44061// String returns the string representation.
44062//
44063// API parameter values that are decorated as "sensitive" in the API will not
44064// be included in the string output. The member name will be present, but the
44065// value will be replaced with "sensitive".
44066func (s GetOTAUpdateOutput) String() string {
44067	return awsutil.Prettify(s)
44068}
44069
44070// GoString returns the string representation.
44071//
44072// API parameter values that are decorated as "sensitive" in the API will not
44073// be included in the string output. The member name will be present, but the
44074// value will be replaced with "sensitive".
44075func (s GetOTAUpdateOutput) GoString() string {
44076	return s.String()
44077}
44078
44079// SetOtaUpdateInfo sets the OtaUpdateInfo field's value.
44080func (s *GetOTAUpdateOutput) SetOtaUpdateInfo(v *OTAUpdateInfo) *GetOTAUpdateOutput {
44081	s.OtaUpdateInfo = v
44082	return s
44083}
44084
44085type GetPercentilesInput struct {
44086	_ struct{} `type:"structure"`
44087
44088	// The field to aggregate.
44089	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
44090
44091	// The name of the index to search.
44092	IndexName *string `locationName:"indexName" min:"1" type:"string"`
44093
44094	// The percentile groups returned.
44095	Percents []*float64 `locationName:"percents" type:"list"`
44096
44097	// The search query string.
44098	//
44099	// QueryString is a required field
44100	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
44101
44102	// The query version.
44103	QueryVersion *string `locationName:"queryVersion" type:"string"`
44104}
44105
44106// String returns the string representation.
44107//
44108// API parameter values that are decorated as "sensitive" in the API will not
44109// be included in the string output. The member name will be present, but the
44110// value will be replaced with "sensitive".
44111func (s GetPercentilesInput) String() string {
44112	return awsutil.Prettify(s)
44113}
44114
44115// GoString returns the string representation.
44116//
44117// API parameter values that are decorated as "sensitive" in the API will not
44118// be included in the string output. The member name will be present, but the
44119// value will be replaced with "sensitive".
44120func (s GetPercentilesInput) GoString() string {
44121	return s.String()
44122}
44123
44124// Validate inspects the fields of the type to determine if they are valid.
44125func (s *GetPercentilesInput) Validate() error {
44126	invalidParams := request.ErrInvalidParams{Context: "GetPercentilesInput"}
44127	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
44128		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
44129	}
44130	if s.IndexName != nil && len(*s.IndexName) < 1 {
44131		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
44132	}
44133	if s.QueryString == nil {
44134		invalidParams.Add(request.NewErrParamRequired("QueryString"))
44135	}
44136	if s.QueryString != nil && len(*s.QueryString) < 1 {
44137		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
44138	}
44139
44140	if invalidParams.Len() > 0 {
44141		return invalidParams
44142	}
44143	return nil
44144}
44145
44146// SetAggregationField sets the AggregationField field's value.
44147func (s *GetPercentilesInput) SetAggregationField(v string) *GetPercentilesInput {
44148	s.AggregationField = &v
44149	return s
44150}
44151
44152// SetIndexName sets the IndexName field's value.
44153func (s *GetPercentilesInput) SetIndexName(v string) *GetPercentilesInput {
44154	s.IndexName = &v
44155	return s
44156}
44157
44158// SetPercents sets the Percents field's value.
44159func (s *GetPercentilesInput) SetPercents(v []*float64) *GetPercentilesInput {
44160	s.Percents = v
44161	return s
44162}
44163
44164// SetQueryString sets the QueryString field's value.
44165func (s *GetPercentilesInput) SetQueryString(v string) *GetPercentilesInput {
44166	s.QueryString = &v
44167	return s
44168}
44169
44170// SetQueryVersion sets the QueryVersion field's value.
44171func (s *GetPercentilesInput) SetQueryVersion(v string) *GetPercentilesInput {
44172	s.QueryVersion = &v
44173	return s
44174}
44175
44176type GetPercentilesOutput struct {
44177	_ struct{} `type:"structure"`
44178
44179	// The percentile values of the aggregated fields.
44180	Percentiles []*PercentPair `locationName:"percentiles" type:"list"`
44181}
44182
44183// String returns the string representation.
44184//
44185// API parameter values that are decorated as "sensitive" in the API will not
44186// be included in the string output. The member name will be present, but the
44187// value will be replaced with "sensitive".
44188func (s GetPercentilesOutput) String() string {
44189	return awsutil.Prettify(s)
44190}
44191
44192// GoString returns the string representation.
44193//
44194// API parameter values that are decorated as "sensitive" in the API will not
44195// be included in the string output. The member name will be present, but the
44196// value will be replaced with "sensitive".
44197func (s GetPercentilesOutput) GoString() string {
44198	return s.String()
44199}
44200
44201// SetPercentiles sets the Percentiles field's value.
44202func (s *GetPercentilesOutput) SetPercentiles(v []*PercentPair) *GetPercentilesOutput {
44203	s.Percentiles = v
44204	return s
44205}
44206
44207// The input for the GetPolicy operation.
44208type GetPolicyInput struct {
44209	_ struct{} `type:"structure" nopayload:"true"`
44210
44211	// The name of the policy.
44212	//
44213	// PolicyName is a required field
44214	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
44215}
44216
44217// String returns the string representation.
44218//
44219// API parameter values that are decorated as "sensitive" in the API will not
44220// be included in the string output. The member name will be present, but the
44221// value will be replaced with "sensitive".
44222func (s GetPolicyInput) String() string {
44223	return awsutil.Prettify(s)
44224}
44225
44226// GoString returns the string representation.
44227//
44228// API parameter values that are decorated as "sensitive" in the API will not
44229// be included in the string output. The member name will be present, but the
44230// value will be replaced with "sensitive".
44231func (s GetPolicyInput) GoString() string {
44232	return s.String()
44233}
44234
44235// Validate inspects the fields of the type to determine if they are valid.
44236func (s *GetPolicyInput) Validate() error {
44237	invalidParams := request.ErrInvalidParams{Context: "GetPolicyInput"}
44238	if s.PolicyName == nil {
44239		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
44240	}
44241	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
44242		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
44243	}
44244
44245	if invalidParams.Len() > 0 {
44246		return invalidParams
44247	}
44248	return nil
44249}
44250
44251// SetPolicyName sets the PolicyName field's value.
44252func (s *GetPolicyInput) SetPolicyName(v string) *GetPolicyInput {
44253	s.PolicyName = &v
44254	return s
44255}
44256
44257// The output from the GetPolicy operation.
44258type GetPolicyOutput struct {
44259	_ struct{} `type:"structure"`
44260
44261	// The date the policy was created.
44262	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
44263
44264	// The default policy version ID.
44265	DefaultVersionId *string `locationName:"defaultVersionId" type:"string"`
44266
44267	// The generation ID of the policy.
44268	GenerationId *string `locationName:"generationId" type:"string"`
44269
44270	// The date the policy was last modified.
44271	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
44272
44273	// The policy ARN.
44274	PolicyArn *string `locationName:"policyArn" type:"string"`
44275
44276	// The JSON document that describes the policy.
44277	PolicyDocument *string `locationName:"policyDocument" type:"string"`
44278
44279	// The policy name.
44280	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
44281}
44282
44283// String returns the string representation.
44284//
44285// API parameter values that are decorated as "sensitive" in the API will not
44286// be included in the string output. The member name will be present, but the
44287// value will be replaced with "sensitive".
44288func (s GetPolicyOutput) String() string {
44289	return awsutil.Prettify(s)
44290}
44291
44292// GoString returns the string representation.
44293//
44294// API parameter values that are decorated as "sensitive" in the API will not
44295// be included in the string output. The member name will be present, but the
44296// value will be replaced with "sensitive".
44297func (s GetPolicyOutput) GoString() string {
44298	return s.String()
44299}
44300
44301// SetCreationDate sets the CreationDate field's value.
44302func (s *GetPolicyOutput) SetCreationDate(v time.Time) *GetPolicyOutput {
44303	s.CreationDate = &v
44304	return s
44305}
44306
44307// SetDefaultVersionId sets the DefaultVersionId field's value.
44308func (s *GetPolicyOutput) SetDefaultVersionId(v string) *GetPolicyOutput {
44309	s.DefaultVersionId = &v
44310	return s
44311}
44312
44313// SetGenerationId sets the GenerationId field's value.
44314func (s *GetPolicyOutput) SetGenerationId(v string) *GetPolicyOutput {
44315	s.GenerationId = &v
44316	return s
44317}
44318
44319// SetLastModifiedDate sets the LastModifiedDate field's value.
44320func (s *GetPolicyOutput) SetLastModifiedDate(v time.Time) *GetPolicyOutput {
44321	s.LastModifiedDate = &v
44322	return s
44323}
44324
44325// SetPolicyArn sets the PolicyArn field's value.
44326func (s *GetPolicyOutput) SetPolicyArn(v string) *GetPolicyOutput {
44327	s.PolicyArn = &v
44328	return s
44329}
44330
44331// SetPolicyDocument sets the PolicyDocument field's value.
44332func (s *GetPolicyOutput) SetPolicyDocument(v string) *GetPolicyOutput {
44333	s.PolicyDocument = &v
44334	return s
44335}
44336
44337// SetPolicyName sets the PolicyName field's value.
44338func (s *GetPolicyOutput) SetPolicyName(v string) *GetPolicyOutput {
44339	s.PolicyName = &v
44340	return s
44341}
44342
44343// The input for the GetPolicyVersion operation.
44344type GetPolicyVersionInput struct {
44345	_ struct{} `type:"structure" nopayload:"true"`
44346
44347	// The name of the policy.
44348	//
44349	// PolicyName is a required field
44350	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
44351
44352	// The policy version ID.
44353	//
44354	// PolicyVersionId is a required field
44355	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
44356}
44357
44358// String returns the string representation.
44359//
44360// API parameter values that are decorated as "sensitive" in the API will not
44361// be included in the string output. The member name will be present, but the
44362// value will be replaced with "sensitive".
44363func (s GetPolicyVersionInput) String() string {
44364	return awsutil.Prettify(s)
44365}
44366
44367// GoString returns the string representation.
44368//
44369// API parameter values that are decorated as "sensitive" in the API will not
44370// be included in the string output. The member name will be present, but the
44371// value will be replaced with "sensitive".
44372func (s GetPolicyVersionInput) GoString() string {
44373	return s.String()
44374}
44375
44376// Validate inspects the fields of the type to determine if they are valid.
44377func (s *GetPolicyVersionInput) Validate() error {
44378	invalidParams := request.ErrInvalidParams{Context: "GetPolicyVersionInput"}
44379	if s.PolicyName == nil {
44380		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
44381	}
44382	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
44383		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
44384	}
44385	if s.PolicyVersionId == nil {
44386		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
44387	}
44388	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
44389		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
44390	}
44391
44392	if invalidParams.Len() > 0 {
44393		return invalidParams
44394	}
44395	return nil
44396}
44397
44398// SetPolicyName sets the PolicyName field's value.
44399func (s *GetPolicyVersionInput) SetPolicyName(v string) *GetPolicyVersionInput {
44400	s.PolicyName = &v
44401	return s
44402}
44403
44404// SetPolicyVersionId sets the PolicyVersionId field's value.
44405func (s *GetPolicyVersionInput) SetPolicyVersionId(v string) *GetPolicyVersionInput {
44406	s.PolicyVersionId = &v
44407	return s
44408}
44409
44410// The output from the GetPolicyVersion operation.
44411type GetPolicyVersionOutput struct {
44412	_ struct{} `type:"structure"`
44413
44414	// The date the policy was created.
44415	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
44416
44417	// The generation ID of the policy version.
44418	GenerationId *string `locationName:"generationId" type:"string"`
44419
44420	// Specifies whether the policy version is the default.
44421	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
44422
44423	// The date the policy was last modified.
44424	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
44425
44426	// The policy ARN.
44427	PolicyArn *string `locationName:"policyArn" type:"string"`
44428
44429	// The JSON document that describes the policy.
44430	PolicyDocument *string `locationName:"policyDocument" type:"string"`
44431
44432	// The policy name.
44433	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
44434
44435	// The policy version ID.
44436	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
44437}
44438
44439// String returns the string representation.
44440//
44441// API parameter values that are decorated as "sensitive" in the API will not
44442// be included in the string output. The member name will be present, but the
44443// value will be replaced with "sensitive".
44444func (s GetPolicyVersionOutput) String() string {
44445	return awsutil.Prettify(s)
44446}
44447
44448// GoString returns the string representation.
44449//
44450// API parameter values that are decorated as "sensitive" in the API will not
44451// be included in the string output. The member name will be present, but the
44452// value will be replaced with "sensitive".
44453func (s GetPolicyVersionOutput) GoString() string {
44454	return s.String()
44455}
44456
44457// SetCreationDate sets the CreationDate field's value.
44458func (s *GetPolicyVersionOutput) SetCreationDate(v time.Time) *GetPolicyVersionOutput {
44459	s.CreationDate = &v
44460	return s
44461}
44462
44463// SetGenerationId sets the GenerationId field's value.
44464func (s *GetPolicyVersionOutput) SetGenerationId(v string) *GetPolicyVersionOutput {
44465	s.GenerationId = &v
44466	return s
44467}
44468
44469// SetIsDefaultVersion sets the IsDefaultVersion field's value.
44470func (s *GetPolicyVersionOutput) SetIsDefaultVersion(v bool) *GetPolicyVersionOutput {
44471	s.IsDefaultVersion = &v
44472	return s
44473}
44474
44475// SetLastModifiedDate sets the LastModifiedDate field's value.
44476func (s *GetPolicyVersionOutput) SetLastModifiedDate(v time.Time) *GetPolicyVersionOutput {
44477	s.LastModifiedDate = &v
44478	return s
44479}
44480
44481// SetPolicyArn sets the PolicyArn field's value.
44482func (s *GetPolicyVersionOutput) SetPolicyArn(v string) *GetPolicyVersionOutput {
44483	s.PolicyArn = &v
44484	return s
44485}
44486
44487// SetPolicyDocument sets the PolicyDocument field's value.
44488func (s *GetPolicyVersionOutput) SetPolicyDocument(v string) *GetPolicyVersionOutput {
44489	s.PolicyDocument = &v
44490	return s
44491}
44492
44493// SetPolicyName sets the PolicyName field's value.
44494func (s *GetPolicyVersionOutput) SetPolicyName(v string) *GetPolicyVersionOutput {
44495	s.PolicyName = &v
44496	return s
44497}
44498
44499// SetPolicyVersionId sets the PolicyVersionId field's value.
44500func (s *GetPolicyVersionOutput) SetPolicyVersionId(v string) *GetPolicyVersionOutput {
44501	s.PolicyVersionId = &v
44502	return s
44503}
44504
44505// The input to the GetRegistrationCode operation.
44506type GetRegistrationCodeInput struct {
44507	_ struct{} `type:"structure" nopayload:"true"`
44508}
44509
44510// String returns the string representation.
44511//
44512// API parameter values that are decorated as "sensitive" in the API will not
44513// be included in the string output. The member name will be present, but the
44514// value will be replaced with "sensitive".
44515func (s GetRegistrationCodeInput) String() string {
44516	return awsutil.Prettify(s)
44517}
44518
44519// GoString returns the string representation.
44520//
44521// API parameter values that are decorated as "sensitive" in the API will not
44522// be included in the string output. The member name will be present, but the
44523// value will be replaced with "sensitive".
44524func (s GetRegistrationCodeInput) GoString() string {
44525	return s.String()
44526}
44527
44528// The output from the GetRegistrationCode operation.
44529type GetRegistrationCodeOutput struct {
44530	_ struct{} `type:"structure"`
44531
44532	// The CA certificate registration code.
44533	RegistrationCode *string `locationName:"registrationCode" min:"64" type:"string"`
44534}
44535
44536// String returns the string representation.
44537//
44538// API parameter values that are decorated as "sensitive" in the API will not
44539// be included in the string output. The member name will be present, but the
44540// value will be replaced with "sensitive".
44541func (s GetRegistrationCodeOutput) String() string {
44542	return awsutil.Prettify(s)
44543}
44544
44545// GoString returns the string representation.
44546//
44547// API parameter values that are decorated as "sensitive" in the API will not
44548// be included in the string output. The member name will be present, but the
44549// value will be replaced with "sensitive".
44550func (s GetRegistrationCodeOutput) GoString() string {
44551	return s.String()
44552}
44553
44554// SetRegistrationCode sets the RegistrationCode field's value.
44555func (s *GetRegistrationCodeOutput) SetRegistrationCode(v string) *GetRegistrationCodeOutput {
44556	s.RegistrationCode = &v
44557	return s
44558}
44559
44560type GetStatisticsInput struct {
44561	_ struct{} `type:"structure"`
44562
44563	// The aggregation field name.
44564	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
44565
44566	// The name of the index to search. The default value is AWS_Things.
44567	IndexName *string `locationName:"indexName" min:"1" type:"string"`
44568
44569	// The query used to search. You can specify "*" for the query string to get
44570	// the count of all indexed things in your Amazon Web Services account.
44571	//
44572	// QueryString is a required field
44573	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
44574
44575	// The version of the query used to search.
44576	QueryVersion *string `locationName:"queryVersion" type:"string"`
44577}
44578
44579// String returns the string representation.
44580//
44581// API parameter values that are decorated as "sensitive" in the API will not
44582// be included in the string output. The member name will be present, but the
44583// value will be replaced with "sensitive".
44584func (s GetStatisticsInput) String() string {
44585	return awsutil.Prettify(s)
44586}
44587
44588// GoString returns the string representation.
44589//
44590// API parameter values that are decorated as "sensitive" in the API will not
44591// be included in the string output. The member name will be present, but the
44592// value will be replaced with "sensitive".
44593func (s GetStatisticsInput) GoString() string {
44594	return s.String()
44595}
44596
44597// Validate inspects the fields of the type to determine if they are valid.
44598func (s *GetStatisticsInput) Validate() error {
44599	invalidParams := request.ErrInvalidParams{Context: "GetStatisticsInput"}
44600	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
44601		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
44602	}
44603	if s.IndexName != nil && len(*s.IndexName) < 1 {
44604		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
44605	}
44606	if s.QueryString == nil {
44607		invalidParams.Add(request.NewErrParamRequired("QueryString"))
44608	}
44609	if s.QueryString != nil && len(*s.QueryString) < 1 {
44610		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
44611	}
44612
44613	if invalidParams.Len() > 0 {
44614		return invalidParams
44615	}
44616	return nil
44617}
44618
44619// SetAggregationField sets the AggregationField field's value.
44620func (s *GetStatisticsInput) SetAggregationField(v string) *GetStatisticsInput {
44621	s.AggregationField = &v
44622	return s
44623}
44624
44625// SetIndexName sets the IndexName field's value.
44626func (s *GetStatisticsInput) SetIndexName(v string) *GetStatisticsInput {
44627	s.IndexName = &v
44628	return s
44629}
44630
44631// SetQueryString sets the QueryString field's value.
44632func (s *GetStatisticsInput) SetQueryString(v string) *GetStatisticsInput {
44633	s.QueryString = &v
44634	return s
44635}
44636
44637// SetQueryVersion sets the QueryVersion field's value.
44638func (s *GetStatisticsInput) SetQueryVersion(v string) *GetStatisticsInput {
44639	s.QueryVersion = &v
44640	return s
44641}
44642
44643type GetStatisticsOutput struct {
44644	_ struct{} `type:"structure"`
44645
44646	// The statistics returned by the Fleet Indexing service based on the query
44647	// and aggregation field.
44648	Statistics *Statistics `locationName:"statistics" type:"structure"`
44649}
44650
44651// String returns the string representation.
44652//
44653// API parameter values that are decorated as "sensitive" in the API will not
44654// be included in the string output. The member name will be present, but the
44655// value will be replaced with "sensitive".
44656func (s GetStatisticsOutput) String() string {
44657	return awsutil.Prettify(s)
44658}
44659
44660// GoString returns the string representation.
44661//
44662// API parameter values that are decorated as "sensitive" in the API will not
44663// be included in the string output. The member name will be present, but the
44664// value will be replaced with "sensitive".
44665func (s GetStatisticsOutput) GoString() string {
44666	return s.String()
44667}
44668
44669// SetStatistics sets the Statistics field's value.
44670func (s *GetStatisticsOutput) SetStatistics(v *Statistics) *GetStatisticsOutput {
44671	s.Statistics = v
44672	return s
44673}
44674
44675type GetTopicRuleDestinationInput struct {
44676	_ struct{} `type:"structure" nopayload:"true"`
44677
44678	// The ARN of the topic rule destination.
44679	//
44680	// Arn is a required field
44681	Arn *string `location:"uri" locationName:"arn" type:"string" required:"true"`
44682}
44683
44684// String returns the string representation.
44685//
44686// API parameter values that are decorated as "sensitive" in the API will not
44687// be included in the string output. The member name will be present, but the
44688// value will be replaced with "sensitive".
44689func (s GetTopicRuleDestinationInput) String() string {
44690	return awsutil.Prettify(s)
44691}
44692
44693// GoString returns the string representation.
44694//
44695// API parameter values that are decorated as "sensitive" in the API will not
44696// be included in the string output. The member name will be present, but the
44697// value will be replaced with "sensitive".
44698func (s GetTopicRuleDestinationInput) GoString() string {
44699	return s.String()
44700}
44701
44702// Validate inspects the fields of the type to determine if they are valid.
44703func (s *GetTopicRuleDestinationInput) Validate() error {
44704	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleDestinationInput"}
44705	if s.Arn == nil {
44706		invalidParams.Add(request.NewErrParamRequired("Arn"))
44707	}
44708	if s.Arn != nil && len(*s.Arn) < 1 {
44709		invalidParams.Add(request.NewErrParamMinLen("Arn", 1))
44710	}
44711
44712	if invalidParams.Len() > 0 {
44713		return invalidParams
44714	}
44715	return nil
44716}
44717
44718// SetArn sets the Arn field's value.
44719func (s *GetTopicRuleDestinationInput) SetArn(v string) *GetTopicRuleDestinationInput {
44720	s.Arn = &v
44721	return s
44722}
44723
44724type GetTopicRuleDestinationOutput struct {
44725	_ struct{} `type:"structure"`
44726
44727	// The topic rule destination.
44728	TopicRuleDestination *TopicRuleDestination `locationName:"topicRuleDestination" type:"structure"`
44729}
44730
44731// String returns the string representation.
44732//
44733// API parameter values that are decorated as "sensitive" in the API will not
44734// be included in the string output. The member name will be present, but the
44735// value will be replaced with "sensitive".
44736func (s GetTopicRuleDestinationOutput) String() string {
44737	return awsutil.Prettify(s)
44738}
44739
44740// GoString returns the string representation.
44741//
44742// API parameter values that are decorated as "sensitive" in the API will not
44743// be included in the string output. The member name will be present, but the
44744// value will be replaced with "sensitive".
44745func (s GetTopicRuleDestinationOutput) GoString() string {
44746	return s.String()
44747}
44748
44749// SetTopicRuleDestination sets the TopicRuleDestination field's value.
44750func (s *GetTopicRuleDestinationOutput) SetTopicRuleDestination(v *TopicRuleDestination) *GetTopicRuleDestinationOutput {
44751	s.TopicRuleDestination = v
44752	return s
44753}
44754
44755// The input for the GetTopicRule operation.
44756type GetTopicRuleInput struct {
44757	_ struct{} `type:"structure" nopayload:"true"`
44758
44759	// The name of the rule.
44760	//
44761	// RuleName is a required field
44762	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
44763}
44764
44765// String returns the string representation.
44766//
44767// API parameter values that are decorated as "sensitive" in the API will not
44768// be included in the string output. The member name will be present, but the
44769// value will be replaced with "sensitive".
44770func (s GetTopicRuleInput) String() string {
44771	return awsutil.Prettify(s)
44772}
44773
44774// GoString returns the string representation.
44775//
44776// API parameter values that are decorated as "sensitive" in the API will not
44777// be included in the string output. The member name will be present, but the
44778// value will be replaced with "sensitive".
44779func (s GetTopicRuleInput) GoString() string {
44780	return s.String()
44781}
44782
44783// Validate inspects the fields of the type to determine if they are valid.
44784func (s *GetTopicRuleInput) Validate() error {
44785	invalidParams := request.ErrInvalidParams{Context: "GetTopicRuleInput"}
44786	if s.RuleName == nil {
44787		invalidParams.Add(request.NewErrParamRequired("RuleName"))
44788	}
44789	if s.RuleName != nil && len(*s.RuleName) < 1 {
44790		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
44791	}
44792
44793	if invalidParams.Len() > 0 {
44794		return invalidParams
44795	}
44796	return nil
44797}
44798
44799// SetRuleName sets the RuleName field's value.
44800func (s *GetTopicRuleInput) SetRuleName(v string) *GetTopicRuleInput {
44801	s.RuleName = &v
44802	return s
44803}
44804
44805// The output from the GetTopicRule operation.
44806type GetTopicRuleOutput struct {
44807	_ struct{} `type:"structure"`
44808
44809	// The rule.
44810	Rule *TopicRule `locationName:"rule" type:"structure"`
44811
44812	// The rule ARN.
44813	RuleArn *string `locationName:"ruleArn" type:"string"`
44814}
44815
44816// String returns the string representation.
44817//
44818// API parameter values that are decorated as "sensitive" in the API will not
44819// be included in the string output. The member name will be present, but the
44820// value will be replaced with "sensitive".
44821func (s GetTopicRuleOutput) String() string {
44822	return awsutil.Prettify(s)
44823}
44824
44825// GoString returns the string representation.
44826//
44827// API parameter values that are decorated as "sensitive" in the API will not
44828// be included in the string output. The member name will be present, but the
44829// value will be replaced with "sensitive".
44830func (s GetTopicRuleOutput) GoString() string {
44831	return s.String()
44832}
44833
44834// SetRule sets the Rule field's value.
44835func (s *GetTopicRuleOutput) SetRule(v *TopicRule) *GetTopicRuleOutput {
44836	s.Rule = v
44837	return s
44838}
44839
44840// SetRuleArn sets the RuleArn field's value.
44841func (s *GetTopicRuleOutput) SetRuleArn(v string) *GetTopicRuleOutput {
44842	s.RuleArn = &v
44843	return s
44844}
44845
44846type GetV2LoggingOptionsInput struct {
44847	_ struct{} `type:"structure" nopayload:"true"`
44848}
44849
44850// String returns the string representation.
44851//
44852// API parameter values that are decorated as "sensitive" in the API will not
44853// be included in the string output. The member name will be present, but the
44854// value will be replaced with "sensitive".
44855func (s GetV2LoggingOptionsInput) String() string {
44856	return awsutil.Prettify(s)
44857}
44858
44859// GoString returns the string representation.
44860//
44861// API parameter values that are decorated as "sensitive" in the API will not
44862// be included in the string output. The member name will be present, but the
44863// value will be replaced with "sensitive".
44864func (s GetV2LoggingOptionsInput) GoString() string {
44865	return s.String()
44866}
44867
44868type GetV2LoggingOptionsOutput struct {
44869	_ struct{} `type:"structure"`
44870
44871	// The default log level.
44872	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
44873
44874	// Disables all logs.
44875	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
44876
44877	// The IAM role ARN IoT uses to write to your CloudWatch logs.
44878	RoleArn *string `locationName:"roleArn" type:"string"`
44879}
44880
44881// String returns the string representation.
44882//
44883// API parameter values that are decorated as "sensitive" in the API will not
44884// be included in the string output. The member name will be present, but the
44885// value will be replaced with "sensitive".
44886func (s GetV2LoggingOptionsOutput) String() string {
44887	return awsutil.Prettify(s)
44888}
44889
44890// GoString returns the string representation.
44891//
44892// API parameter values that are decorated as "sensitive" in the API will not
44893// be included in the string output. The member name will be present, but the
44894// value will be replaced with "sensitive".
44895func (s GetV2LoggingOptionsOutput) GoString() string {
44896	return s.String()
44897}
44898
44899// SetDefaultLogLevel sets the DefaultLogLevel field's value.
44900func (s *GetV2LoggingOptionsOutput) SetDefaultLogLevel(v string) *GetV2LoggingOptionsOutput {
44901	s.DefaultLogLevel = &v
44902	return s
44903}
44904
44905// SetDisableAllLogs sets the DisableAllLogs field's value.
44906func (s *GetV2LoggingOptionsOutput) SetDisableAllLogs(v bool) *GetV2LoggingOptionsOutput {
44907	s.DisableAllLogs = &v
44908	return s
44909}
44910
44911// SetRoleArn sets the RoleArn field's value.
44912func (s *GetV2LoggingOptionsOutput) SetRoleArn(v string) *GetV2LoggingOptionsOutput {
44913	s.RoleArn = &v
44914	return s
44915}
44916
44917// The name and ARN of a group.
44918type GroupNameAndArn struct {
44919	_ struct{} `type:"structure"`
44920
44921	// The group ARN.
44922	GroupArn *string `locationName:"groupArn" type:"string"`
44923
44924	// The group name.
44925	GroupName *string `locationName:"groupName" min:"1" type:"string"`
44926}
44927
44928// String returns the string representation.
44929//
44930// API parameter values that are decorated as "sensitive" in the API will not
44931// be included in the string output. The member name will be present, but the
44932// value will be replaced with "sensitive".
44933func (s GroupNameAndArn) String() string {
44934	return awsutil.Prettify(s)
44935}
44936
44937// GoString returns the string representation.
44938//
44939// API parameter values that are decorated as "sensitive" in the API will not
44940// be included in the string output. The member name will be present, but the
44941// value will be replaced with "sensitive".
44942func (s GroupNameAndArn) GoString() string {
44943	return s.String()
44944}
44945
44946// SetGroupArn sets the GroupArn field's value.
44947func (s *GroupNameAndArn) SetGroupArn(v string) *GroupNameAndArn {
44948	s.GroupArn = &v
44949	return s
44950}
44951
44952// SetGroupName sets the GroupName field's value.
44953func (s *GroupNameAndArn) SetGroupName(v string) *GroupNameAndArn {
44954	s.GroupName = &v
44955	return s
44956}
44957
44958// Send data to an HTTPS endpoint.
44959type HttpAction struct {
44960	_ struct{} `type:"structure"`
44961
44962	// The authentication method to use when sending data to an HTTPS endpoint.
44963	Auth *HttpAuthorization `locationName:"auth" type:"structure"`
44964
44965	// The URL to which IoT sends a confirmation message. The value of the confirmation
44966	// URL must be a prefix of the endpoint URL. If you do not specify a confirmation
44967	// URL IoT uses the endpoint URL as the confirmation URL. If you use substitution
44968	// templates in the confirmationUrl, you must create and enable topic rule destinations
44969	// that match each possible value of the substitution template before traffic
44970	// is allowed to your endpoint URL.
44971	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
44972
44973	// The HTTP headers to send with the message data.
44974	Headers []*HttpActionHeader `locationName:"headers" type:"list"`
44975
44976	// The endpoint URL. If substitution templates are used in the URL, you must
44977	// also specify a confirmationUrl. If this is a new destination, a new TopicRuleDestination
44978	// is created if possible.
44979	//
44980	// Url is a required field
44981	Url *string `locationName:"url" type:"string" required:"true"`
44982}
44983
44984// String returns the string representation.
44985//
44986// API parameter values that are decorated as "sensitive" in the API will not
44987// be included in the string output. The member name will be present, but the
44988// value will be replaced with "sensitive".
44989func (s HttpAction) String() string {
44990	return awsutil.Prettify(s)
44991}
44992
44993// GoString returns the string representation.
44994//
44995// API parameter values that are decorated as "sensitive" in the API will not
44996// be included in the string output. The member name will be present, but the
44997// value will be replaced with "sensitive".
44998func (s HttpAction) GoString() string {
44999	return s.String()
45000}
45001
45002// Validate inspects the fields of the type to determine if they are valid.
45003func (s *HttpAction) Validate() error {
45004	invalidParams := request.ErrInvalidParams{Context: "HttpAction"}
45005	if s.Url == nil {
45006		invalidParams.Add(request.NewErrParamRequired("Url"))
45007	}
45008	if s.Auth != nil {
45009		if err := s.Auth.Validate(); err != nil {
45010			invalidParams.AddNested("Auth", err.(request.ErrInvalidParams))
45011		}
45012	}
45013	if s.Headers != nil {
45014		for i, v := range s.Headers {
45015			if v == nil {
45016				continue
45017			}
45018			if err := v.Validate(); err != nil {
45019				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Headers", i), err.(request.ErrInvalidParams))
45020			}
45021		}
45022	}
45023
45024	if invalidParams.Len() > 0 {
45025		return invalidParams
45026	}
45027	return nil
45028}
45029
45030// SetAuth sets the Auth field's value.
45031func (s *HttpAction) SetAuth(v *HttpAuthorization) *HttpAction {
45032	s.Auth = v
45033	return s
45034}
45035
45036// SetConfirmationUrl sets the ConfirmationUrl field's value.
45037func (s *HttpAction) SetConfirmationUrl(v string) *HttpAction {
45038	s.ConfirmationUrl = &v
45039	return s
45040}
45041
45042// SetHeaders sets the Headers field's value.
45043func (s *HttpAction) SetHeaders(v []*HttpActionHeader) *HttpAction {
45044	s.Headers = v
45045	return s
45046}
45047
45048// SetUrl sets the Url field's value.
45049func (s *HttpAction) SetUrl(v string) *HttpAction {
45050	s.Url = &v
45051	return s
45052}
45053
45054// The HTTP action header.
45055type HttpActionHeader struct {
45056	_ struct{} `type:"structure"`
45057
45058	// The HTTP header key.
45059	//
45060	// Key is a required field
45061	Key *string `locationName:"key" min:"1" type:"string" required:"true"`
45062
45063	// The HTTP header value. Substitution templates are supported.
45064	//
45065	// Value is a required field
45066	Value *string `locationName:"value" type:"string" required:"true"`
45067}
45068
45069// String returns the string representation.
45070//
45071// API parameter values that are decorated as "sensitive" in the API will not
45072// be included in the string output. The member name will be present, but the
45073// value will be replaced with "sensitive".
45074func (s HttpActionHeader) String() string {
45075	return awsutil.Prettify(s)
45076}
45077
45078// GoString returns the string representation.
45079//
45080// API parameter values that are decorated as "sensitive" in the API will not
45081// be included in the string output. The member name will be present, but the
45082// value will be replaced with "sensitive".
45083func (s HttpActionHeader) GoString() string {
45084	return s.String()
45085}
45086
45087// Validate inspects the fields of the type to determine if they are valid.
45088func (s *HttpActionHeader) Validate() error {
45089	invalidParams := request.ErrInvalidParams{Context: "HttpActionHeader"}
45090	if s.Key == nil {
45091		invalidParams.Add(request.NewErrParamRequired("Key"))
45092	}
45093	if s.Key != nil && len(*s.Key) < 1 {
45094		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
45095	}
45096	if s.Value == nil {
45097		invalidParams.Add(request.NewErrParamRequired("Value"))
45098	}
45099
45100	if invalidParams.Len() > 0 {
45101		return invalidParams
45102	}
45103	return nil
45104}
45105
45106// SetKey sets the Key field's value.
45107func (s *HttpActionHeader) SetKey(v string) *HttpActionHeader {
45108	s.Key = &v
45109	return s
45110}
45111
45112// SetValue sets the Value field's value.
45113func (s *HttpActionHeader) SetValue(v string) *HttpActionHeader {
45114	s.Value = &v
45115	return s
45116}
45117
45118// The authorization method used to send messages.
45119type HttpAuthorization struct {
45120	_ struct{} `type:"structure"`
45121
45122	// Use Sig V4 authorization. For more information, see Signature Version 4 Signing
45123	// Process (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
45124	Sigv4 *SigV4Authorization `locationName:"sigv4" type:"structure"`
45125}
45126
45127// String returns the string representation.
45128//
45129// API parameter values that are decorated as "sensitive" in the API will not
45130// be included in the string output. The member name will be present, but the
45131// value will be replaced with "sensitive".
45132func (s HttpAuthorization) String() string {
45133	return awsutil.Prettify(s)
45134}
45135
45136// GoString returns the string representation.
45137//
45138// API parameter values that are decorated as "sensitive" in the API will not
45139// be included in the string output. The member name will be present, but the
45140// value will be replaced with "sensitive".
45141func (s HttpAuthorization) GoString() string {
45142	return s.String()
45143}
45144
45145// Validate inspects the fields of the type to determine if they are valid.
45146func (s *HttpAuthorization) Validate() error {
45147	invalidParams := request.ErrInvalidParams{Context: "HttpAuthorization"}
45148	if s.Sigv4 != nil {
45149		if err := s.Sigv4.Validate(); err != nil {
45150			invalidParams.AddNested("Sigv4", err.(request.ErrInvalidParams))
45151		}
45152	}
45153
45154	if invalidParams.Len() > 0 {
45155		return invalidParams
45156	}
45157	return nil
45158}
45159
45160// SetSigv4 sets the Sigv4 field's value.
45161func (s *HttpAuthorization) SetSigv4(v *SigV4Authorization) *HttpAuthorization {
45162	s.Sigv4 = v
45163	return s
45164}
45165
45166// Specifies the HTTP context to use for the test authorizer request.
45167type HttpContext struct {
45168	_ struct{} `type:"structure"`
45169
45170	// The header keys and values in an HTTP authorization request.
45171	Headers map[string]*string `locationName:"headers" type:"map"`
45172
45173	// The query string keys and values in an HTTP authorization request.
45174	QueryString *string `locationName:"queryString" min:"1" type:"string"`
45175}
45176
45177// String returns the string representation.
45178//
45179// API parameter values that are decorated as "sensitive" in the API will not
45180// be included in the string output. The member name will be present, but the
45181// value will be replaced with "sensitive".
45182func (s HttpContext) String() string {
45183	return awsutil.Prettify(s)
45184}
45185
45186// GoString returns the string representation.
45187//
45188// API parameter values that are decorated as "sensitive" in the API will not
45189// be included in the string output. The member name will be present, but the
45190// value will be replaced with "sensitive".
45191func (s HttpContext) GoString() string {
45192	return s.String()
45193}
45194
45195// Validate inspects the fields of the type to determine if they are valid.
45196func (s *HttpContext) Validate() error {
45197	invalidParams := request.ErrInvalidParams{Context: "HttpContext"}
45198	if s.QueryString != nil && len(*s.QueryString) < 1 {
45199		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
45200	}
45201
45202	if invalidParams.Len() > 0 {
45203		return invalidParams
45204	}
45205	return nil
45206}
45207
45208// SetHeaders sets the Headers field's value.
45209func (s *HttpContext) SetHeaders(v map[string]*string) *HttpContext {
45210	s.Headers = v
45211	return s
45212}
45213
45214// SetQueryString sets the QueryString field's value.
45215func (s *HttpContext) SetQueryString(v string) *HttpContext {
45216	s.QueryString = &v
45217	return s
45218}
45219
45220// HTTP URL destination configuration used by the topic rule's HTTP action.
45221type HttpUrlDestinationConfiguration struct {
45222	_ struct{} `type:"structure"`
45223
45224	// The URL IoT uses to confirm ownership of or access to the topic rule destination
45225	// URL.
45226	//
45227	// ConfirmationUrl is a required field
45228	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string" required:"true"`
45229}
45230
45231// String returns the string representation.
45232//
45233// API parameter values that are decorated as "sensitive" in the API will not
45234// be included in the string output. The member name will be present, but the
45235// value will be replaced with "sensitive".
45236func (s HttpUrlDestinationConfiguration) String() string {
45237	return awsutil.Prettify(s)
45238}
45239
45240// GoString returns the string representation.
45241//
45242// API parameter values that are decorated as "sensitive" in the API will not
45243// be included in the string output. The member name will be present, but the
45244// value will be replaced with "sensitive".
45245func (s HttpUrlDestinationConfiguration) GoString() string {
45246	return s.String()
45247}
45248
45249// Validate inspects the fields of the type to determine if they are valid.
45250func (s *HttpUrlDestinationConfiguration) Validate() error {
45251	invalidParams := request.ErrInvalidParams{Context: "HttpUrlDestinationConfiguration"}
45252	if s.ConfirmationUrl == nil {
45253		invalidParams.Add(request.NewErrParamRequired("ConfirmationUrl"))
45254	}
45255
45256	if invalidParams.Len() > 0 {
45257		return invalidParams
45258	}
45259	return nil
45260}
45261
45262// SetConfirmationUrl sets the ConfirmationUrl field's value.
45263func (s *HttpUrlDestinationConfiguration) SetConfirmationUrl(v string) *HttpUrlDestinationConfiguration {
45264	s.ConfirmationUrl = &v
45265	return s
45266}
45267
45268// HTTP URL destination properties.
45269type HttpUrlDestinationProperties struct {
45270	_ struct{} `type:"structure"`
45271
45272	// The URL used to confirm the HTTP topic rule destination URL.
45273	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
45274}
45275
45276// String returns the string representation.
45277//
45278// API parameter values that are decorated as "sensitive" in the API will not
45279// be included in the string output. The member name will be present, but the
45280// value will be replaced with "sensitive".
45281func (s HttpUrlDestinationProperties) String() string {
45282	return awsutil.Prettify(s)
45283}
45284
45285// GoString returns the string representation.
45286//
45287// API parameter values that are decorated as "sensitive" in the API will not
45288// be included in the string output. The member name will be present, but the
45289// value will be replaced with "sensitive".
45290func (s HttpUrlDestinationProperties) GoString() string {
45291	return s.String()
45292}
45293
45294// SetConfirmationUrl sets the ConfirmationUrl field's value.
45295func (s *HttpUrlDestinationProperties) SetConfirmationUrl(v string) *HttpUrlDestinationProperties {
45296	s.ConfirmationUrl = &v
45297	return s
45298}
45299
45300// Information about an HTTP URL destination.
45301type HttpUrlDestinationSummary struct {
45302	_ struct{} `type:"structure"`
45303
45304	// The URL used to confirm ownership of or access to the HTTP topic rule destination
45305	// URL.
45306	ConfirmationUrl *string `locationName:"confirmationUrl" type:"string"`
45307}
45308
45309// String returns the string representation.
45310//
45311// API parameter values that are decorated as "sensitive" in the API will not
45312// be included in the string output. The member name will be present, but the
45313// value will be replaced with "sensitive".
45314func (s HttpUrlDestinationSummary) String() string {
45315	return awsutil.Prettify(s)
45316}
45317
45318// GoString returns the string representation.
45319//
45320// API parameter values that are decorated as "sensitive" in the API will not
45321// be included in the string output. The member name will be present, but the
45322// value will be replaced with "sensitive".
45323func (s HttpUrlDestinationSummary) GoString() string {
45324	return s.String()
45325}
45326
45327// SetConfirmationUrl sets the ConfirmationUrl field's value.
45328func (s *HttpUrlDestinationSummary) SetConfirmationUrl(v string) *HttpUrlDestinationSummary {
45329	s.ConfirmationUrl = &v
45330	return s
45331}
45332
45333// Information that implicitly denies authorization. When policy doesn't explicitly
45334// deny or allow an action on a resource it is considered an implicit deny.
45335type ImplicitDeny struct {
45336	_ struct{} `type:"structure"`
45337
45338	// Policies that don't contain a matching allow or deny statement for the specified
45339	// action on the specified resource.
45340	Policies []*Policy `locationName:"policies" type:"list"`
45341}
45342
45343// String returns the string representation.
45344//
45345// API parameter values that are decorated as "sensitive" in the API will not
45346// be included in the string output. The member name will be present, but the
45347// value will be replaced with "sensitive".
45348func (s ImplicitDeny) String() string {
45349	return awsutil.Prettify(s)
45350}
45351
45352// GoString returns the string representation.
45353//
45354// API parameter values that are decorated as "sensitive" in the API will not
45355// be included in the string output. The member name will be present, but the
45356// value will be replaced with "sensitive".
45357func (s ImplicitDeny) GoString() string {
45358	return s.String()
45359}
45360
45361// SetPolicies sets the Policies field's value.
45362func (s *ImplicitDeny) SetPolicies(v []*Policy) *ImplicitDeny {
45363	s.Policies = v
45364	return s
45365}
45366
45367// The index is not ready.
45368type IndexNotReadyException struct {
45369	_            struct{}                  `type:"structure"`
45370	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
45371
45372	// The message for the exception.
45373	Message_ *string `locationName:"message" type:"string"`
45374}
45375
45376// String returns the string representation.
45377//
45378// API parameter values that are decorated as "sensitive" in the API will not
45379// be included in the string output. The member name will be present, but the
45380// value will be replaced with "sensitive".
45381func (s IndexNotReadyException) String() string {
45382	return awsutil.Prettify(s)
45383}
45384
45385// GoString returns the string representation.
45386//
45387// API parameter values that are decorated as "sensitive" in the API will not
45388// be included in the string output. The member name will be present, but the
45389// value will be replaced with "sensitive".
45390func (s IndexNotReadyException) GoString() string {
45391	return s.String()
45392}
45393
45394func newErrorIndexNotReadyException(v protocol.ResponseMetadata) error {
45395	return &IndexNotReadyException{
45396		RespMetadata: v,
45397	}
45398}
45399
45400// Code returns the exception type name.
45401func (s *IndexNotReadyException) Code() string {
45402	return "IndexNotReadyException"
45403}
45404
45405// Message returns the exception's message.
45406func (s *IndexNotReadyException) Message() string {
45407	if s.Message_ != nil {
45408		return *s.Message_
45409	}
45410	return ""
45411}
45412
45413// OrigErr always returns nil, satisfies awserr.Error interface.
45414func (s *IndexNotReadyException) OrigErr() error {
45415	return nil
45416}
45417
45418func (s *IndexNotReadyException) Error() string {
45419	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
45420}
45421
45422// Status code returns the HTTP status code for the request's response error.
45423func (s *IndexNotReadyException) StatusCode() int {
45424	return s.RespMetadata.StatusCode
45425}
45426
45427// RequestID returns the service's response RequestID for request.
45428func (s *IndexNotReadyException) RequestID() string {
45429	return s.RespMetadata.RequestID
45430}
45431
45432// An unexpected error has occurred.
45433type InternalException struct {
45434	_            struct{}                  `type:"structure"`
45435	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
45436
45437	// The message for the exception.
45438	Message_ *string `locationName:"message" type:"string"`
45439}
45440
45441// String returns the string representation.
45442//
45443// API parameter values that are decorated as "sensitive" in the API will not
45444// be included in the string output. The member name will be present, but the
45445// value will be replaced with "sensitive".
45446func (s InternalException) String() string {
45447	return awsutil.Prettify(s)
45448}
45449
45450// GoString returns the string representation.
45451//
45452// API parameter values that are decorated as "sensitive" in the API will not
45453// be included in the string output. The member name will be present, but the
45454// value will be replaced with "sensitive".
45455func (s InternalException) GoString() string {
45456	return s.String()
45457}
45458
45459func newErrorInternalException(v protocol.ResponseMetadata) error {
45460	return &InternalException{
45461		RespMetadata: v,
45462	}
45463}
45464
45465// Code returns the exception type name.
45466func (s *InternalException) Code() string {
45467	return "InternalException"
45468}
45469
45470// Message returns the exception's message.
45471func (s *InternalException) Message() string {
45472	if s.Message_ != nil {
45473		return *s.Message_
45474	}
45475	return ""
45476}
45477
45478// OrigErr always returns nil, satisfies awserr.Error interface.
45479func (s *InternalException) OrigErr() error {
45480	return nil
45481}
45482
45483func (s *InternalException) Error() string {
45484	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
45485}
45486
45487// Status code returns the HTTP status code for the request's response error.
45488func (s *InternalException) StatusCode() int {
45489	return s.RespMetadata.StatusCode
45490}
45491
45492// RequestID returns the service's response RequestID for request.
45493func (s *InternalException) RequestID() string {
45494	return s.RespMetadata.RequestID
45495}
45496
45497// An unexpected error has occurred.
45498type InternalFailureException struct {
45499	_            struct{}                  `type:"structure"`
45500	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
45501
45502	// The message for the exception.
45503	Message_ *string `locationName:"message" type:"string"`
45504}
45505
45506// String returns the string representation.
45507//
45508// API parameter values that are decorated as "sensitive" in the API will not
45509// be included in the string output. The member name will be present, but the
45510// value will be replaced with "sensitive".
45511func (s InternalFailureException) String() string {
45512	return awsutil.Prettify(s)
45513}
45514
45515// GoString returns the string representation.
45516//
45517// API parameter values that are decorated as "sensitive" in the API will not
45518// be included in the string output. The member name will be present, but the
45519// value will be replaced with "sensitive".
45520func (s InternalFailureException) GoString() string {
45521	return s.String()
45522}
45523
45524func newErrorInternalFailureException(v protocol.ResponseMetadata) error {
45525	return &InternalFailureException{
45526		RespMetadata: v,
45527	}
45528}
45529
45530// Code returns the exception type name.
45531func (s *InternalFailureException) Code() string {
45532	return "InternalFailureException"
45533}
45534
45535// Message returns the exception's message.
45536func (s *InternalFailureException) Message() string {
45537	if s.Message_ != nil {
45538		return *s.Message_
45539	}
45540	return ""
45541}
45542
45543// OrigErr always returns nil, satisfies awserr.Error interface.
45544func (s *InternalFailureException) OrigErr() error {
45545	return nil
45546}
45547
45548func (s *InternalFailureException) Error() string {
45549	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
45550}
45551
45552// Status code returns the HTTP status code for the request's response error.
45553func (s *InternalFailureException) StatusCode() int {
45554	return s.RespMetadata.StatusCode
45555}
45556
45557// RequestID returns the service's response RequestID for request.
45558func (s *InternalFailureException) RequestID() string {
45559	return s.RespMetadata.RequestID
45560}
45561
45562// The aggregation is invalid.
45563type InvalidAggregationException struct {
45564	_            struct{}                  `type:"structure"`
45565	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
45566
45567	Message_ *string `locationName:"message" type:"string"`
45568}
45569
45570// String returns the string representation.
45571//
45572// API parameter values that are decorated as "sensitive" in the API will not
45573// be included in the string output. The member name will be present, but the
45574// value will be replaced with "sensitive".
45575func (s InvalidAggregationException) String() string {
45576	return awsutil.Prettify(s)
45577}
45578
45579// GoString returns the string representation.
45580//
45581// API parameter values that are decorated as "sensitive" in the API will not
45582// be included in the string output. The member name will be present, but the
45583// value will be replaced with "sensitive".
45584func (s InvalidAggregationException) GoString() string {
45585	return s.String()
45586}
45587
45588func newErrorInvalidAggregationException(v protocol.ResponseMetadata) error {
45589	return &InvalidAggregationException{
45590		RespMetadata: v,
45591	}
45592}
45593
45594// Code returns the exception type name.
45595func (s *InvalidAggregationException) Code() string {
45596	return "InvalidAggregationException"
45597}
45598
45599// Message returns the exception's message.
45600func (s *InvalidAggregationException) Message() string {
45601	if s.Message_ != nil {
45602		return *s.Message_
45603	}
45604	return ""
45605}
45606
45607// OrigErr always returns nil, satisfies awserr.Error interface.
45608func (s *InvalidAggregationException) OrigErr() error {
45609	return nil
45610}
45611
45612func (s *InvalidAggregationException) Error() string {
45613	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
45614}
45615
45616// Status code returns the HTTP status code for the request's response error.
45617func (s *InvalidAggregationException) StatusCode() int {
45618	return s.RespMetadata.StatusCode
45619}
45620
45621// RequestID returns the service's response RequestID for request.
45622func (s *InvalidAggregationException) RequestID() string {
45623	return s.RespMetadata.RequestID
45624}
45625
45626// The query is invalid.
45627type InvalidQueryException struct {
45628	_            struct{}                  `type:"structure"`
45629	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
45630
45631	// The message for the exception.
45632	Message_ *string `locationName:"message" type:"string"`
45633}
45634
45635// String returns the string representation.
45636//
45637// API parameter values that are decorated as "sensitive" in the API will not
45638// be included in the string output. The member name will be present, but the
45639// value will be replaced with "sensitive".
45640func (s InvalidQueryException) String() string {
45641	return awsutil.Prettify(s)
45642}
45643
45644// GoString returns the string representation.
45645//
45646// API parameter values that are decorated as "sensitive" in the API will not
45647// be included in the string output. The member name will be present, but the
45648// value will be replaced with "sensitive".
45649func (s InvalidQueryException) GoString() string {
45650	return s.String()
45651}
45652
45653func newErrorInvalidQueryException(v protocol.ResponseMetadata) error {
45654	return &InvalidQueryException{
45655		RespMetadata: v,
45656	}
45657}
45658
45659// Code returns the exception type name.
45660func (s *InvalidQueryException) Code() string {
45661	return "InvalidQueryException"
45662}
45663
45664// Message returns the exception's message.
45665func (s *InvalidQueryException) Message() string {
45666	if s.Message_ != nil {
45667		return *s.Message_
45668	}
45669	return ""
45670}
45671
45672// OrigErr always returns nil, satisfies awserr.Error interface.
45673func (s *InvalidQueryException) OrigErr() error {
45674	return nil
45675}
45676
45677func (s *InvalidQueryException) Error() string {
45678	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
45679}
45680
45681// Status code returns the HTTP status code for the request's response error.
45682func (s *InvalidQueryException) StatusCode() int {
45683	return s.RespMetadata.StatusCode
45684}
45685
45686// RequestID returns the service's response RequestID for request.
45687func (s *InvalidQueryException) RequestID() string {
45688	return s.RespMetadata.RequestID
45689}
45690
45691// The request is not valid.
45692type InvalidRequestException struct {
45693	_            struct{}                  `type:"structure"`
45694	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
45695
45696	// The message for the exception.
45697	Message_ *string `locationName:"message" type:"string"`
45698}
45699
45700// String returns the string representation.
45701//
45702// API parameter values that are decorated as "sensitive" in the API will not
45703// be included in the string output. The member name will be present, but the
45704// value will be replaced with "sensitive".
45705func (s InvalidRequestException) String() string {
45706	return awsutil.Prettify(s)
45707}
45708
45709// GoString returns the string representation.
45710//
45711// API parameter values that are decorated as "sensitive" in the API will not
45712// be included in the string output. The member name will be present, but the
45713// value will be replaced with "sensitive".
45714func (s InvalidRequestException) GoString() string {
45715	return s.String()
45716}
45717
45718func newErrorInvalidRequestException(v protocol.ResponseMetadata) error {
45719	return &InvalidRequestException{
45720		RespMetadata: v,
45721	}
45722}
45723
45724// Code returns the exception type name.
45725func (s *InvalidRequestException) Code() string {
45726	return "InvalidRequestException"
45727}
45728
45729// Message returns the exception's message.
45730func (s *InvalidRequestException) Message() string {
45731	if s.Message_ != nil {
45732		return *s.Message_
45733	}
45734	return ""
45735}
45736
45737// OrigErr always returns nil, satisfies awserr.Error interface.
45738func (s *InvalidRequestException) OrigErr() error {
45739	return nil
45740}
45741
45742func (s *InvalidRequestException) Error() string {
45743	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
45744}
45745
45746// Status code returns the HTTP status code for the request's response error.
45747func (s *InvalidRequestException) StatusCode() int {
45748	return s.RespMetadata.StatusCode
45749}
45750
45751// RequestID returns the service's response RequestID for request.
45752func (s *InvalidRequestException) RequestID() string {
45753	return s.RespMetadata.RequestID
45754}
45755
45756// The response is invalid.
45757type InvalidResponseException struct {
45758	_            struct{}                  `type:"structure"`
45759	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
45760
45761	// The message for the exception.
45762	Message_ *string `locationName:"message" type:"string"`
45763}
45764
45765// String returns the string representation.
45766//
45767// API parameter values that are decorated as "sensitive" in the API will not
45768// be included in the string output. The member name will be present, but the
45769// value will be replaced with "sensitive".
45770func (s InvalidResponseException) String() string {
45771	return awsutil.Prettify(s)
45772}
45773
45774// GoString returns the string representation.
45775//
45776// API parameter values that are decorated as "sensitive" in the API will not
45777// be included in the string output. The member name will be present, but the
45778// value will be replaced with "sensitive".
45779func (s InvalidResponseException) GoString() string {
45780	return s.String()
45781}
45782
45783func newErrorInvalidResponseException(v protocol.ResponseMetadata) error {
45784	return &InvalidResponseException{
45785		RespMetadata: v,
45786	}
45787}
45788
45789// Code returns the exception type name.
45790func (s *InvalidResponseException) Code() string {
45791	return "InvalidResponseException"
45792}
45793
45794// Message returns the exception's message.
45795func (s *InvalidResponseException) Message() string {
45796	if s.Message_ != nil {
45797		return *s.Message_
45798	}
45799	return ""
45800}
45801
45802// OrigErr always returns nil, satisfies awserr.Error interface.
45803func (s *InvalidResponseException) OrigErr() error {
45804	return nil
45805}
45806
45807func (s *InvalidResponseException) Error() string {
45808	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
45809}
45810
45811// Status code returns the HTTP status code for the request's response error.
45812func (s *InvalidResponseException) StatusCode() int {
45813	return s.RespMetadata.StatusCode
45814}
45815
45816// RequestID returns the service's response RequestID for request.
45817func (s *InvalidResponseException) RequestID() string {
45818	return s.RespMetadata.RequestID
45819}
45820
45821// An attempt was made to change to an invalid state, for example by deleting
45822// a job or a job execution which is "IN_PROGRESS" without setting the force
45823// parameter.
45824type InvalidStateTransitionException struct {
45825	_            struct{}                  `type:"structure"`
45826	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
45827
45828	// The message for the exception.
45829	Message_ *string `locationName:"message" type:"string"`
45830}
45831
45832// String returns the string representation.
45833//
45834// API parameter values that are decorated as "sensitive" in the API will not
45835// be included in the string output. The member name will be present, but the
45836// value will be replaced with "sensitive".
45837func (s InvalidStateTransitionException) String() string {
45838	return awsutil.Prettify(s)
45839}
45840
45841// GoString returns the string representation.
45842//
45843// API parameter values that are decorated as "sensitive" in the API will not
45844// be included in the string output. The member name will be present, but the
45845// value will be replaced with "sensitive".
45846func (s InvalidStateTransitionException) GoString() string {
45847	return s.String()
45848}
45849
45850func newErrorInvalidStateTransitionException(v protocol.ResponseMetadata) error {
45851	return &InvalidStateTransitionException{
45852		RespMetadata: v,
45853	}
45854}
45855
45856// Code returns the exception type name.
45857func (s *InvalidStateTransitionException) Code() string {
45858	return "InvalidStateTransitionException"
45859}
45860
45861// Message returns the exception's message.
45862func (s *InvalidStateTransitionException) Message() string {
45863	if s.Message_ != nil {
45864		return *s.Message_
45865	}
45866	return ""
45867}
45868
45869// OrigErr always returns nil, satisfies awserr.Error interface.
45870func (s *InvalidStateTransitionException) OrigErr() error {
45871	return nil
45872}
45873
45874func (s *InvalidStateTransitionException) Error() string {
45875	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
45876}
45877
45878// Status code returns the HTTP status code for the request's response error.
45879func (s *InvalidStateTransitionException) StatusCode() int {
45880	return s.RespMetadata.StatusCode
45881}
45882
45883// RequestID returns the service's response RequestID for request.
45884func (s *InvalidStateTransitionException) RequestID() string {
45885	return s.RespMetadata.RequestID
45886}
45887
45888// Sends message data to an IoT Analytics channel.
45889type IotAnalyticsAction struct {
45890	_ struct{} `type:"structure"`
45891
45892	// Whether to process the action as a batch. The default value is false.
45893	//
45894	// When batchMode is true and the rule SQL statement evaluates to an Array,
45895	// each Array element is delivered as a separate message when passed by BatchPutMessage
45896	// (https://docs.aws.amazon.com/iotanalytics/latest/APIReference/API_BatchPutMessage.html)
45897	// to the IoT Analytics channel. The resulting array can't have more than 100
45898	// messages.
45899	BatchMode *bool `locationName:"batchMode" type:"boolean"`
45900
45901	// (deprecated) The ARN of the IoT Analytics channel to which message data will
45902	// be sent.
45903	ChannelArn *string `locationName:"channelArn" type:"string"`
45904
45905	// The name of the IoT Analytics channel to which message data will be sent.
45906	ChannelName *string `locationName:"channelName" type:"string"`
45907
45908	// The ARN of the role which has a policy that grants IoT Analytics permission
45909	// to send message data via IoT Analytics (iotanalytics:BatchPutMessage).
45910	RoleArn *string `locationName:"roleArn" type:"string"`
45911}
45912
45913// String returns the string representation.
45914//
45915// API parameter values that are decorated as "sensitive" in the API will not
45916// be included in the string output. The member name will be present, but the
45917// value will be replaced with "sensitive".
45918func (s IotAnalyticsAction) String() string {
45919	return awsutil.Prettify(s)
45920}
45921
45922// GoString returns the string representation.
45923//
45924// API parameter values that are decorated as "sensitive" in the API will not
45925// be included in the string output. The member name will be present, but the
45926// value will be replaced with "sensitive".
45927func (s IotAnalyticsAction) GoString() string {
45928	return s.String()
45929}
45930
45931// SetBatchMode sets the BatchMode field's value.
45932func (s *IotAnalyticsAction) SetBatchMode(v bool) *IotAnalyticsAction {
45933	s.BatchMode = &v
45934	return s
45935}
45936
45937// SetChannelArn sets the ChannelArn field's value.
45938func (s *IotAnalyticsAction) SetChannelArn(v string) *IotAnalyticsAction {
45939	s.ChannelArn = &v
45940	return s
45941}
45942
45943// SetChannelName sets the ChannelName field's value.
45944func (s *IotAnalyticsAction) SetChannelName(v string) *IotAnalyticsAction {
45945	s.ChannelName = &v
45946	return s
45947}
45948
45949// SetRoleArn sets the RoleArn field's value.
45950func (s *IotAnalyticsAction) SetRoleArn(v string) *IotAnalyticsAction {
45951	s.RoleArn = &v
45952	return s
45953}
45954
45955// Sends an input to an IoT Events detector.
45956type IotEventsAction struct {
45957	_ struct{} `type:"structure"`
45958
45959	// Whether to process the event actions as a batch. The default value is false.
45960	//
45961	// When batchMode is true, you can't specify a messageId.
45962	//
45963	// When batchMode is true and the rule SQL statement evaluates to an Array,
45964	// each Array element is treated as a separate message when it's sent to IoT
45965	// Events by calling BatchPutMessage (https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html).
45966	// The resulting array can't have more than 10 messages.
45967	BatchMode *bool `locationName:"batchMode" type:"boolean"`
45968
45969	// The name of the IoT Events input.
45970	//
45971	// InputName is a required field
45972	InputName *string `locationName:"inputName" min:"1" type:"string" required:"true"`
45973
45974	// The ID of the message. The default messageId is a new UUID value.
45975	//
45976	// When batchMode is true, you can't specify a messageId--a new UUID value will
45977	// be assigned.
45978	//
45979	// Assign a value to this property to ensure that only one input (message) with
45980	// a given messageId will be processed by an IoT Events detector.
45981	MessageId *string `locationName:"messageId" type:"string"`
45982
45983	// The ARN of the role that grants IoT permission to send an input to an IoT
45984	// Events detector. ("Action":"iotevents:BatchPutMessage").
45985	//
45986	// RoleArn is a required field
45987	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
45988}
45989
45990// String returns the string representation.
45991//
45992// API parameter values that are decorated as "sensitive" in the API will not
45993// be included in the string output. The member name will be present, but the
45994// value will be replaced with "sensitive".
45995func (s IotEventsAction) String() string {
45996	return awsutil.Prettify(s)
45997}
45998
45999// GoString returns the string representation.
46000//
46001// API parameter values that are decorated as "sensitive" in the API will not
46002// be included in the string output. The member name will be present, but the
46003// value will be replaced with "sensitive".
46004func (s IotEventsAction) GoString() string {
46005	return s.String()
46006}
46007
46008// Validate inspects the fields of the type to determine if they are valid.
46009func (s *IotEventsAction) Validate() error {
46010	invalidParams := request.ErrInvalidParams{Context: "IotEventsAction"}
46011	if s.InputName == nil {
46012		invalidParams.Add(request.NewErrParamRequired("InputName"))
46013	}
46014	if s.InputName != nil && len(*s.InputName) < 1 {
46015		invalidParams.Add(request.NewErrParamMinLen("InputName", 1))
46016	}
46017	if s.RoleArn == nil {
46018		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
46019	}
46020
46021	if invalidParams.Len() > 0 {
46022		return invalidParams
46023	}
46024	return nil
46025}
46026
46027// SetBatchMode sets the BatchMode field's value.
46028func (s *IotEventsAction) SetBatchMode(v bool) *IotEventsAction {
46029	s.BatchMode = &v
46030	return s
46031}
46032
46033// SetInputName sets the InputName field's value.
46034func (s *IotEventsAction) SetInputName(v string) *IotEventsAction {
46035	s.InputName = &v
46036	return s
46037}
46038
46039// SetMessageId sets the MessageId field's value.
46040func (s *IotEventsAction) SetMessageId(v string) *IotEventsAction {
46041	s.MessageId = &v
46042	return s
46043}
46044
46045// SetRoleArn sets the RoleArn field's value.
46046func (s *IotEventsAction) SetRoleArn(v string) *IotEventsAction {
46047	s.RoleArn = &v
46048	return s
46049}
46050
46051// Describes an action to send data from an MQTT message that triggered the
46052// rule to IoT SiteWise asset properties.
46053type IotSiteWiseAction struct {
46054	_ struct{} `type:"structure"`
46055
46056	// A list of asset property value entries.
46057	//
46058	// PutAssetPropertyValueEntries is a required field
46059	PutAssetPropertyValueEntries []*PutAssetPropertyValueEntry `locationName:"putAssetPropertyValueEntries" min:"1" type:"list" required:"true"`
46060
46061	// The ARN of the role that grants IoT permission to send an asset property
46062	// value to IoT SiteWise. ("Action": "iotsitewise:BatchPutAssetPropertyValue").
46063	// The trust policy can restrict access to specific asset hierarchy paths.
46064	//
46065	// RoleArn is a required field
46066	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
46067}
46068
46069// String returns the string representation.
46070//
46071// API parameter values that are decorated as "sensitive" in the API will not
46072// be included in the string output. The member name will be present, but the
46073// value will be replaced with "sensitive".
46074func (s IotSiteWiseAction) String() string {
46075	return awsutil.Prettify(s)
46076}
46077
46078// GoString returns the string representation.
46079//
46080// API parameter values that are decorated as "sensitive" in the API will not
46081// be included in the string output. The member name will be present, but the
46082// value will be replaced with "sensitive".
46083func (s IotSiteWiseAction) GoString() string {
46084	return s.String()
46085}
46086
46087// Validate inspects the fields of the type to determine if they are valid.
46088func (s *IotSiteWiseAction) Validate() error {
46089	invalidParams := request.ErrInvalidParams{Context: "IotSiteWiseAction"}
46090	if s.PutAssetPropertyValueEntries == nil {
46091		invalidParams.Add(request.NewErrParamRequired("PutAssetPropertyValueEntries"))
46092	}
46093	if s.PutAssetPropertyValueEntries != nil && len(s.PutAssetPropertyValueEntries) < 1 {
46094		invalidParams.Add(request.NewErrParamMinLen("PutAssetPropertyValueEntries", 1))
46095	}
46096	if s.RoleArn == nil {
46097		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
46098	}
46099	if s.PutAssetPropertyValueEntries != nil {
46100		for i, v := range s.PutAssetPropertyValueEntries {
46101			if v == nil {
46102				continue
46103			}
46104			if err := v.Validate(); err != nil {
46105				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PutAssetPropertyValueEntries", i), err.(request.ErrInvalidParams))
46106			}
46107		}
46108	}
46109
46110	if invalidParams.Len() > 0 {
46111		return invalidParams
46112	}
46113	return nil
46114}
46115
46116// SetPutAssetPropertyValueEntries sets the PutAssetPropertyValueEntries field's value.
46117func (s *IotSiteWiseAction) SetPutAssetPropertyValueEntries(v []*PutAssetPropertyValueEntry) *IotSiteWiseAction {
46118	s.PutAssetPropertyValueEntries = v
46119	return s
46120}
46121
46122// SetRoleArn sets the RoleArn field's value.
46123func (s *IotSiteWiseAction) SetRoleArn(v string) *IotSiteWiseAction {
46124	s.RoleArn = &v
46125	return s
46126}
46127
46128// The Job object contains details about a job.
46129type Job struct {
46130	_ struct{} `type:"structure"`
46131
46132	// Configuration for criteria to abort the job.
46133	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
46134
46135	// If the job was updated, describes the reason for the update.
46136	Comment *string `locationName:"comment" type:"string"`
46137
46138	// The time, in seconds since the epoch, when the job was completed.
46139	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
46140
46141	// The time, in seconds since the epoch, when the job was created.
46142	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
46143
46144	// A short text description of the job.
46145	Description *string `locationName:"description" type:"string"`
46146
46147	// Will be true if the job was canceled with the optional force parameter set
46148	// to true.
46149	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
46150
46151	// An ARN identifying the job with format "arn:aws:iot:region:account:job/jobId".
46152	JobArn *string `locationName:"jobArn" type:"string"`
46153
46154	// Allows you to create a staged rollout of a job.
46155	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
46156
46157	// The unique identifier you assigned to this job when it was created.
46158	JobId *string `locationName:"jobId" min:"1" type:"string"`
46159
46160	// Details about the job process.
46161	JobProcessDetails *JobProcessDetails `locationName:"jobProcessDetails" type:"structure"`
46162
46163	// The ARN of the job template used to create the job.
46164	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
46165
46166	// The time, in seconds since the epoch, when the job was last updated.
46167	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
46168
46169	// The namespace used to indicate that a job is a customer-managed job.
46170	//
46171	// When you specify a value for this parameter, Amazon Web Services IoT Core
46172	// sends jobs notifications to MQTT topics that contain the value in the following
46173	// format.
46174	//
46175	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
46176	//
46177	// The namespaceId feature is in public preview.
46178	NamespaceId *string `locationName:"namespaceId" min:"1" type:"string"`
46179
46180	// Configuration for pre-signed S3 URLs.
46181	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
46182
46183	// If the job was updated, provides the reason code for the update.
46184	ReasonCode *string `locationName:"reasonCode" type:"string"`
46185
46186	// The status of the job, one of IN_PROGRESS, CANCELED, DELETION_IN_PROGRESS
46187	// or COMPLETED.
46188	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
46189
46190	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
46191	// after all those things specified as targets have completed the job (SNAPSHOT).
46192	// If continuous, the job may also be run on a thing when a change is detected
46193	// in a target. For example, a job will run on a device when the thing representing
46194	// the device is added to a target group, even after the job was completed by
46195	// all things originally in the group.
46196	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
46197
46198	// A list of IoT things and thing groups to which the job should be sent.
46199	Targets []*string `locationName:"targets" min:"1" type:"list"`
46200
46201	// Specifies the amount of time each device has to finish its execution of the
46202	// job. A timer is started when the job execution status is set to IN_PROGRESS.
46203	// If the job execution status is not set to another terminal state before the
46204	// timer expires, it will be automatically set to TIMED_OUT.
46205	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
46206}
46207
46208// String returns the string representation.
46209//
46210// API parameter values that are decorated as "sensitive" in the API will not
46211// be included in the string output. The member name will be present, but the
46212// value will be replaced with "sensitive".
46213func (s Job) String() string {
46214	return awsutil.Prettify(s)
46215}
46216
46217// GoString returns the string representation.
46218//
46219// API parameter values that are decorated as "sensitive" in the API will not
46220// be included in the string output. The member name will be present, but the
46221// value will be replaced with "sensitive".
46222func (s Job) GoString() string {
46223	return s.String()
46224}
46225
46226// SetAbortConfig sets the AbortConfig field's value.
46227func (s *Job) SetAbortConfig(v *AbortConfig) *Job {
46228	s.AbortConfig = v
46229	return s
46230}
46231
46232// SetComment sets the Comment field's value.
46233func (s *Job) SetComment(v string) *Job {
46234	s.Comment = &v
46235	return s
46236}
46237
46238// SetCompletedAt sets the CompletedAt field's value.
46239func (s *Job) SetCompletedAt(v time.Time) *Job {
46240	s.CompletedAt = &v
46241	return s
46242}
46243
46244// SetCreatedAt sets the CreatedAt field's value.
46245func (s *Job) SetCreatedAt(v time.Time) *Job {
46246	s.CreatedAt = &v
46247	return s
46248}
46249
46250// SetDescription sets the Description field's value.
46251func (s *Job) SetDescription(v string) *Job {
46252	s.Description = &v
46253	return s
46254}
46255
46256// SetForceCanceled sets the ForceCanceled field's value.
46257func (s *Job) SetForceCanceled(v bool) *Job {
46258	s.ForceCanceled = &v
46259	return s
46260}
46261
46262// SetJobArn sets the JobArn field's value.
46263func (s *Job) SetJobArn(v string) *Job {
46264	s.JobArn = &v
46265	return s
46266}
46267
46268// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
46269func (s *Job) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *Job {
46270	s.JobExecutionsRolloutConfig = v
46271	return s
46272}
46273
46274// SetJobId sets the JobId field's value.
46275func (s *Job) SetJobId(v string) *Job {
46276	s.JobId = &v
46277	return s
46278}
46279
46280// SetJobProcessDetails sets the JobProcessDetails field's value.
46281func (s *Job) SetJobProcessDetails(v *JobProcessDetails) *Job {
46282	s.JobProcessDetails = v
46283	return s
46284}
46285
46286// SetJobTemplateArn sets the JobTemplateArn field's value.
46287func (s *Job) SetJobTemplateArn(v string) *Job {
46288	s.JobTemplateArn = &v
46289	return s
46290}
46291
46292// SetLastUpdatedAt sets the LastUpdatedAt field's value.
46293func (s *Job) SetLastUpdatedAt(v time.Time) *Job {
46294	s.LastUpdatedAt = &v
46295	return s
46296}
46297
46298// SetNamespaceId sets the NamespaceId field's value.
46299func (s *Job) SetNamespaceId(v string) *Job {
46300	s.NamespaceId = &v
46301	return s
46302}
46303
46304// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
46305func (s *Job) SetPresignedUrlConfig(v *PresignedUrlConfig) *Job {
46306	s.PresignedUrlConfig = v
46307	return s
46308}
46309
46310// SetReasonCode sets the ReasonCode field's value.
46311func (s *Job) SetReasonCode(v string) *Job {
46312	s.ReasonCode = &v
46313	return s
46314}
46315
46316// SetStatus sets the Status field's value.
46317func (s *Job) SetStatus(v string) *Job {
46318	s.Status = &v
46319	return s
46320}
46321
46322// SetTargetSelection sets the TargetSelection field's value.
46323func (s *Job) SetTargetSelection(v string) *Job {
46324	s.TargetSelection = &v
46325	return s
46326}
46327
46328// SetTargets sets the Targets field's value.
46329func (s *Job) SetTargets(v []*string) *Job {
46330	s.Targets = v
46331	return s
46332}
46333
46334// SetTimeoutConfig sets the TimeoutConfig field's value.
46335func (s *Job) SetTimeoutConfig(v *TimeoutConfig) *Job {
46336	s.TimeoutConfig = v
46337	return s
46338}
46339
46340// The job execution object represents the execution of a job on a particular
46341// device.
46342type JobExecution struct {
46343	_ struct{} `type:"structure"`
46344
46345	// The estimated number of seconds that remain before the job execution status
46346	// will be changed to TIMED_OUT. The timeout interval can be anywhere between
46347	// 1 minute and 7 days (1 to 10080 minutes). The actual job execution timeout
46348	// can occur up to 60 seconds later than the estimated duration. This value
46349	// will not be included if the job execution has reached a terminal status.
46350	ApproximateSecondsBeforeTimedOut *int64 `locationName:"approximateSecondsBeforeTimedOut" type:"long"`
46351
46352	// A string (consisting of the digits "0" through "9") which identifies this
46353	// particular job execution on this particular device. It can be used in commands
46354	// which return or update job execution information.
46355	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
46356
46357	// Will be true if the job execution was canceled with the optional force parameter
46358	// set to true.
46359	ForceCanceled *bool `locationName:"forceCanceled" type:"boolean"`
46360
46361	// The unique identifier you assigned to the job when it was created.
46362	JobId *string `locationName:"jobId" min:"1" type:"string"`
46363
46364	// The time, in seconds since the epoch, when the job execution was last updated.
46365	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
46366
46367	// The time, in seconds since the epoch, when the job execution was queued.
46368	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
46369
46370	// The time, in seconds since the epoch, when the job execution started.
46371	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
46372
46373	// The status of the job execution (IN_PROGRESS, QUEUED, FAILED, SUCCEEDED,
46374	// TIMED_OUT, CANCELED, or REJECTED).
46375	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
46376
46377	// A collection of name/value pairs that describe the status of the job execution.
46378	StatusDetails *JobExecutionStatusDetails `locationName:"statusDetails" type:"structure"`
46379
46380	// The ARN of the thing on which the job execution is running.
46381	ThingArn *string `locationName:"thingArn" type:"string"`
46382
46383	// The version of the job execution. Job execution versions are incremented
46384	// each time they are updated by a device.
46385	VersionNumber *int64 `locationName:"versionNumber" type:"long"`
46386}
46387
46388// String returns the string representation.
46389//
46390// API parameter values that are decorated as "sensitive" in the API will not
46391// be included in the string output. The member name will be present, but the
46392// value will be replaced with "sensitive".
46393func (s JobExecution) String() string {
46394	return awsutil.Prettify(s)
46395}
46396
46397// GoString returns the string representation.
46398//
46399// API parameter values that are decorated as "sensitive" in the API will not
46400// be included in the string output. The member name will be present, but the
46401// value will be replaced with "sensitive".
46402func (s JobExecution) GoString() string {
46403	return s.String()
46404}
46405
46406// SetApproximateSecondsBeforeTimedOut sets the ApproximateSecondsBeforeTimedOut field's value.
46407func (s *JobExecution) SetApproximateSecondsBeforeTimedOut(v int64) *JobExecution {
46408	s.ApproximateSecondsBeforeTimedOut = &v
46409	return s
46410}
46411
46412// SetExecutionNumber sets the ExecutionNumber field's value.
46413func (s *JobExecution) SetExecutionNumber(v int64) *JobExecution {
46414	s.ExecutionNumber = &v
46415	return s
46416}
46417
46418// SetForceCanceled sets the ForceCanceled field's value.
46419func (s *JobExecution) SetForceCanceled(v bool) *JobExecution {
46420	s.ForceCanceled = &v
46421	return s
46422}
46423
46424// SetJobId sets the JobId field's value.
46425func (s *JobExecution) SetJobId(v string) *JobExecution {
46426	s.JobId = &v
46427	return s
46428}
46429
46430// SetLastUpdatedAt sets the LastUpdatedAt field's value.
46431func (s *JobExecution) SetLastUpdatedAt(v time.Time) *JobExecution {
46432	s.LastUpdatedAt = &v
46433	return s
46434}
46435
46436// SetQueuedAt sets the QueuedAt field's value.
46437func (s *JobExecution) SetQueuedAt(v time.Time) *JobExecution {
46438	s.QueuedAt = &v
46439	return s
46440}
46441
46442// SetStartedAt sets the StartedAt field's value.
46443func (s *JobExecution) SetStartedAt(v time.Time) *JobExecution {
46444	s.StartedAt = &v
46445	return s
46446}
46447
46448// SetStatus sets the Status field's value.
46449func (s *JobExecution) SetStatus(v string) *JobExecution {
46450	s.Status = &v
46451	return s
46452}
46453
46454// SetStatusDetails sets the StatusDetails field's value.
46455func (s *JobExecution) SetStatusDetails(v *JobExecutionStatusDetails) *JobExecution {
46456	s.StatusDetails = v
46457	return s
46458}
46459
46460// SetThingArn sets the ThingArn field's value.
46461func (s *JobExecution) SetThingArn(v string) *JobExecution {
46462	s.ThingArn = &v
46463	return s
46464}
46465
46466// SetVersionNumber sets the VersionNumber field's value.
46467func (s *JobExecution) SetVersionNumber(v int64) *JobExecution {
46468	s.VersionNumber = &v
46469	return s
46470}
46471
46472// Details of the job execution status.
46473type JobExecutionStatusDetails struct {
46474	_ struct{} `type:"structure"`
46475
46476	// The job execution status.
46477	DetailsMap map[string]*string `locationName:"detailsMap" type:"map"`
46478}
46479
46480// String returns the string representation.
46481//
46482// API parameter values that are decorated as "sensitive" in the API will not
46483// be included in the string output. The member name will be present, but the
46484// value will be replaced with "sensitive".
46485func (s JobExecutionStatusDetails) String() string {
46486	return awsutil.Prettify(s)
46487}
46488
46489// GoString returns the string representation.
46490//
46491// API parameter values that are decorated as "sensitive" in the API will not
46492// be included in the string output. The member name will be present, but the
46493// value will be replaced with "sensitive".
46494func (s JobExecutionStatusDetails) GoString() string {
46495	return s.String()
46496}
46497
46498// SetDetailsMap sets the DetailsMap field's value.
46499func (s *JobExecutionStatusDetails) SetDetailsMap(v map[string]*string) *JobExecutionStatusDetails {
46500	s.DetailsMap = v
46501	return s
46502}
46503
46504// The job execution summary.
46505type JobExecutionSummary struct {
46506	_ struct{} `type:"structure"`
46507
46508	// A string (consisting of the digits "0" through "9") which identifies this
46509	// particular job execution on this particular device. It can be used later
46510	// in commands which return or update job execution information.
46511	ExecutionNumber *int64 `locationName:"executionNumber" type:"long"`
46512
46513	// The time, in seconds since the epoch, when the job execution was last updated.
46514	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
46515
46516	// The time, in seconds since the epoch, when the job execution was queued.
46517	QueuedAt *time.Time `locationName:"queuedAt" type:"timestamp"`
46518
46519	// The time, in seconds since the epoch, when the job execution started.
46520	StartedAt *time.Time `locationName:"startedAt" type:"timestamp"`
46521
46522	// The status of the job execution.
46523	Status *string `locationName:"status" type:"string" enum:"JobExecutionStatus"`
46524}
46525
46526// String returns the string representation.
46527//
46528// API parameter values that are decorated as "sensitive" in the API will not
46529// be included in the string output. The member name will be present, but the
46530// value will be replaced with "sensitive".
46531func (s JobExecutionSummary) String() string {
46532	return awsutil.Prettify(s)
46533}
46534
46535// GoString returns the string representation.
46536//
46537// API parameter values that are decorated as "sensitive" in the API will not
46538// be included in the string output. The member name will be present, but the
46539// value will be replaced with "sensitive".
46540func (s JobExecutionSummary) GoString() string {
46541	return s.String()
46542}
46543
46544// SetExecutionNumber sets the ExecutionNumber field's value.
46545func (s *JobExecutionSummary) SetExecutionNumber(v int64) *JobExecutionSummary {
46546	s.ExecutionNumber = &v
46547	return s
46548}
46549
46550// SetLastUpdatedAt sets the LastUpdatedAt field's value.
46551func (s *JobExecutionSummary) SetLastUpdatedAt(v time.Time) *JobExecutionSummary {
46552	s.LastUpdatedAt = &v
46553	return s
46554}
46555
46556// SetQueuedAt sets the QueuedAt field's value.
46557func (s *JobExecutionSummary) SetQueuedAt(v time.Time) *JobExecutionSummary {
46558	s.QueuedAt = &v
46559	return s
46560}
46561
46562// SetStartedAt sets the StartedAt field's value.
46563func (s *JobExecutionSummary) SetStartedAt(v time.Time) *JobExecutionSummary {
46564	s.StartedAt = &v
46565	return s
46566}
46567
46568// SetStatus sets the Status field's value.
46569func (s *JobExecutionSummary) SetStatus(v string) *JobExecutionSummary {
46570	s.Status = &v
46571	return s
46572}
46573
46574// Contains a summary of information about job executions for a specific job.
46575type JobExecutionSummaryForJob struct {
46576	_ struct{} `type:"structure"`
46577
46578	// Contains a subset of information about a job execution.
46579	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
46580
46581	// The ARN of the thing on which the job execution is running.
46582	ThingArn *string `locationName:"thingArn" type:"string"`
46583}
46584
46585// String returns the string representation.
46586//
46587// API parameter values that are decorated as "sensitive" in the API will not
46588// be included in the string output. The member name will be present, but the
46589// value will be replaced with "sensitive".
46590func (s JobExecutionSummaryForJob) String() string {
46591	return awsutil.Prettify(s)
46592}
46593
46594// GoString returns the string representation.
46595//
46596// API parameter values that are decorated as "sensitive" in the API will not
46597// be included in the string output. The member name will be present, but the
46598// value will be replaced with "sensitive".
46599func (s JobExecutionSummaryForJob) GoString() string {
46600	return s.String()
46601}
46602
46603// SetJobExecutionSummary sets the JobExecutionSummary field's value.
46604func (s *JobExecutionSummaryForJob) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForJob {
46605	s.JobExecutionSummary = v
46606	return s
46607}
46608
46609// SetThingArn sets the ThingArn field's value.
46610func (s *JobExecutionSummaryForJob) SetThingArn(v string) *JobExecutionSummaryForJob {
46611	s.ThingArn = &v
46612	return s
46613}
46614
46615// The job execution summary for a thing.
46616type JobExecutionSummaryForThing struct {
46617	_ struct{} `type:"structure"`
46618
46619	// Contains a subset of information about a job execution.
46620	JobExecutionSummary *JobExecutionSummary `locationName:"jobExecutionSummary" type:"structure"`
46621
46622	// The unique identifier you assigned to this job when it was created.
46623	JobId *string `locationName:"jobId" min:"1" type:"string"`
46624}
46625
46626// String returns the string representation.
46627//
46628// API parameter values that are decorated as "sensitive" in the API will not
46629// be included in the string output. The member name will be present, but the
46630// value will be replaced with "sensitive".
46631func (s JobExecutionSummaryForThing) String() string {
46632	return awsutil.Prettify(s)
46633}
46634
46635// GoString returns the string representation.
46636//
46637// API parameter values that are decorated as "sensitive" in the API will not
46638// be included in the string output. The member name will be present, but the
46639// value will be replaced with "sensitive".
46640func (s JobExecutionSummaryForThing) GoString() string {
46641	return s.String()
46642}
46643
46644// SetJobExecutionSummary sets the JobExecutionSummary field's value.
46645func (s *JobExecutionSummaryForThing) SetJobExecutionSummary(v *JobExecutionSummary) *JobExecutionSummaryForThing {
46646	s.JobExecutionSummary = v
46647	return s
46648}
46649
46650// SetJobId sets the JobId field's value.
46651func (s *JobExecutionSummaryForThing) SetJobId(v string) *JobExecutionSummaryForThing {
46652	s.JobId = &v
46653	return s
46654}
46655
46656// Allows you to create a staged rollout of a job.
46657type JobExecutionsRolloutConfig struct {
46658	_ struct{} `type:"structure"`
46659
46660	// The rate of increase for a job rollout. This parameter allows you to define
46661	// an exponential rate for a job rollout.
46662	ExponentialRate *ExponentialRolloutRate `locationName:"exponentialRate" type:"structure"`
46663
46664	// The maximum number of things that will be notified of a pending job, per
46665	// minute. This parameter allows you to create a staged rollout.
46666	MaximumPerMinute *int64 `locationName:"maximumPerMinute" min:"1" type:"integer"`
46667}
46668
46669// String returns the string representation.
46670//
46671// API parameter values that are decorated as "sensitive" in the API will not
46672// be included in the string output. The member name will be present, but the
46673// value will be replaced with "sensitive".
46674func (s JobExecutionsRolloutConfig) String() string {
46675	return awsutil.Prettify(s)
46676}
46677
46678// GoString returns the string representation.
46679//
46680// API parameter values that are decorated as "sensitive" in the API will not
46681// be included in the string output. The member name will be present, but the
46682// value will be replaced with "sensitive".
46683func (s JobExecutionsRolloutConfig) GoString() string {
46684	return s.String()
46685}
46686
46687// Validate inspects the fields of the type to determine if they are valid.
46688func (s *JobExecutionsRolloutConfig) Validate() error {
46689	invalidParams := request.ErrInvalidParams{Context: "JobExecutionsRolloutConfig"}
46690	if s.MaximumPerMinute != nil && *s.MaximumPerMinute < 1 {
46691		invalidParams.Add(request.NewErrParamMinValue("MaximumPerMinute", 1))
46692	}
46693	if s.ExponentialRate != nil {
46694		if err := s.ExponentialRate.Validate(); err != nil {
46695			invalidParams.AddNested("ExponentialRate", err.(request.ErrInvalidParams))
46696		}
46697	}
46698
46699	if invalidParams.Len() > 0 {
46700		return invalidParams
46701	}
46702	return nil
46703}
46704
46705// SetExponentialRate sets the ExponentialRate field's value.
46706func (s *JobExecutionsRolloutConfig) SetExponentialRate(v *ExponentialRolloutRate) *JobExecutionsRolloutConfig {
46707	s.ExponentialRate = v
46708	return s
46709}
46710
46711// SetMaximumPerMinute sets the MaximumPerMinute field's value.
46712func (s *JobExecutionsRolloutConfig) SetMaximumPerMinute(v int64) *JobExecutionsRolloutConfig {
46713	s.MaximumPerMinute = &v
46714	return s
46715}
46716
46717// The job process details.
46718type JobProcessDetails struct {
46719	_ struct{} `type:"structure"`
46720
46721	// The number of things that cancelled the job.
46722	NumberOfCanceledThings *int64 `locationName:"numberOfCanceledThings" type:"integer"`
46723
46724	// The number of things that failed executing the job.
46725	NumberOfFailedThings *int64 `locationName:"numberOfFailedThings" type:"integer"`
46726
46727	// The number of things currently executing the job.
46728	NumberOfInProgressThings *int64 `locationName:"numberOfInProgressThings" type:"integer"`
46729
46730	// The number of things that are awaiting execution of the job.
46731	NumberOfQueuedThings *int64 `locationName:"numberOfQueuedThings" type:"integer"`
46732
46733	// The number of things that rejected the job.
46734	NumberOfRejectedThings *int64 `locationName:"numberOfRejectedThings" type:"integer"`
46735
46736	// The number of things that are no longer scheduled to execute the job because
46737	// they have been deleted or have been removed from the group that was a target
46738	// of the job.
46739	NumberOfRemovedThings *int64 `locationName:"numberOfRemovedThings" type:"integer"`
46740
46741	// The number of things which successfully completed the job.
46742	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" type:"integer"`
46743
46744	// The number of things whose job execution status is TIMED_OUT.
46745	NumberOfTimedOutThings *int64 `locationName:"numberOfTimedOutThings" type:"integer"`
46746
46747	// The target devices to which the job execution is being rolled out. This value
46748	// will be null after the job execution has finished rolling out to all the
46749	// target devices.
46750	ProcessingTargets []*string `locationName:"processingTargets" type:"list"`
46751}
46752
46753// String returns the string representation.
46754//
46755// API parameter values that are decorated as "sensitive" in the API will not
46756// be included in the string output. The member name will be present, but the
46757// value will be replaced with "sensitive".
46758func (s JobProcessDetails) String() string {
46759	return awsutil.Prettify(s)
46760}
46761
46762// GoString returns the string representation.
46763//
46764// API parameter values that are decorated as "sensitive" in the API will not
46765// be included in the string output. The member name will be present, but the
46766// value will be replaced with "sensitive".
46767func (s JobProcessDetails) GoString() string {
46768	return s.String()
46769}
46770
46771// SetNumberOfCanceledThings sets the NumberOfCanceledThings field's value.
46772func (s *JobProcessDetails) SetNumberOfCanceledThings(v int64) *JobProcessDetails {
46773	s.NumberOfCanceledThings = &v
46774	return s
46775}
46776
46777// SetNumberOfFailedThings sets the NumberOfFailedThings field's value.
46778func (s *JobProcessDetails) SetNumberOfFailedThings(v int64) *JobProcessDetails {
46779	s.NumberOfFailedThings = &v
46780	return s
46781}
46782
46783// SetNumberOfInProgressThings sets the NumberOfInProgressThings field's value.
46784func (s *JobProcessDetails) SetNumberOfInProgressThings(v int64) *JobProcessDetails {
46785	s.NumberOfInProgressThings = &v
46786	return s
46787}
46788
46789// SetNumberOfQueuedThings sets the NumberOfQueuedThings field's value.
46790func (s *JobProcessDetails) SetNumberOfQueuedThings(v int64) *JobProcessDetails {
46791	s.NumberOfQueuedThings = &v
46792	return s
46793}
46794
46795// SetNumberOfRejectedThings sets the NumberOfRejectedThings field's value.
46796func (s *JobProcessDetails) SetNumberOfRejectedThings(v int64) *JobProcessDetails {
46797	s.NumberOfRejectedThings = &v
46798	return s
46799}
46800
46801// SetNumberOfRemovedThings sets the NumberOfRemovedThings field's value.
46802func (s *JobProcessDetails) SetNumberOfRemovedThings(v int64) *JobProcessDetails {
46803	s.NumberOfRemovedThings = &v
46804	return s
46805}
46806
46807// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
46808func (s *JobProcessDetails) SetNumberOfSucceededThings(v int64) *JobProcessDetails {
46809	s.NumberOfSucceededThings = &v
46810	return s
46811}
46812
46813// SetNumberOfTimedOutThings sets the NumberOfTimedOutThings field's value.
46814func (s *JobProcessDetails) SetNumberOfTimedOutThings(v int64) *JobProcessDetails {
46815	s.NumberOfTimedOutThings = &v
46816	return s
46817}
46818
46819// SetProcessingTargets sets the ProcessingTargets field's value.
46820func (s *JobProcessDetails) SetProcessingTargets(v []*string) *JobProcessDetails {
46821	s.ProcessingTargets = v
46822	return s
46823}
46824
46825// The job summary.
46826type JobSummary struct {
46827	_ struct{} `type:"structure"`
46828
46829	// The time, in seconds since the epoch, when the job completed.
46830	CompletedAt *time.Time `locationName:"completedAt" type:"timestamp"`
46831
46832	// The time, in seconds since the epoch, when the job was created.
46833	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
46834
46835	// The job ARN.
46836	JobArn *string `locationName:"jobArn" type:"string"`
46837
46838	// The unique identifier you assigned to this job when it was created.
46839	JobId *string `locationName:"jobId" min:"1" type:"string"`
46840
46841	// The time, in seconds since the epoch, when the job was last updated.
46842	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
46843
46844	// The job summary status.
46845	Status *string `locationName:"status" type:"string" enum:"JobStatus"`
46846
46847	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
46848	// after all those things specified as targets have completed the job (SNAPSHOT).
46849	// If continuous, the job may also be run on a thing when a change is detected
46850	// in a target. For example, a job will run on a thing when the thing is added
46851	// to a target group, even after the job was completed by all things originally
46852	// in the group.
46853	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
46854
46855	// The ID of the thing group.
46856	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
46857}
46858
46859// String returns the string representation.
46860//
46861// API parameter values that are decorated as "sensitive" in the API will not
46862// be included in the string output. The member name will be present, but the
46863// value will be replaced with "sensitive".
46864func (s JobSummary) String() string {
46865	return awsutil.Prettify(s)
46866}
46867
46868// GoString returns the string representation.
46869//
46870// API parameter values that are decorated as "sensitive" in the API will not
46871// be included in the string output. The member name will be present, but the
46872// value will be replaced with "sensitive".
46873func (s JobSummary) GoString() string {
46874	return s.String()
46875}
46876
46877// SetCompletedAt sets the CompletedAt field's value.
46878func (s *JobSummary) SetCompletedAt(v time.Time) *JobSummary {
46879	s.CompletedAt = &v
46880	return s
46881}
46882
46883// SetCreatedAt sets the CreatedAt field's value.
46884func (s *JobSummary) SetCreatedAt(v time.Time) *JobSummary {
46885	s.CreatedAt = &v
46886	return s
46887}
46888
46889// SetJobArn sets the JobArn field's value.
46890func (s *JobSummary) SetJobArn(v string) *JobSummary {
46891	s.JobArn = &v
46892	return s
46893}
46894
46895// SetJobId sets the JobId field's value.
46896func (s *JobSummary) SetJobId(v string) *JobSummary {
46897	s.JobId = &v
46898	return s
46899}
46900
46901// SetLastUpdatedAt sets the LastUpdatedAt field's value.
46902func (s *JobSummary) SetLastUpdatedAt(v time.Time) *JobSummary {
46903	s.LastUpdatedAt = &v
46904	return s
46905}
46906
46907// SetStatus sets the Status field's value.
46908func (s *JobSummary) SetStatus(v string) *JobSummary {
46909	s.Status = &v
46910	return s
46911}
46912
46913// SetTargetSelection sets the TargetSelection field's value.
46914func (s *JobSummary) SetTargetSelection(v string) *JobSummary {
46915	s.TargetSelection = &v
46916	return s
46917}
46918
46919// SetThingGroupId sets the ThingGroupId field's value.
46920func (s *JobSummary) SetThingGroupId(v string) *JobSummary {
46921	s.ThingGroupId = &v
46922	return s
46923}
46924
46925// An object that contains information about the job template.
46926type JobTemplateSummary struct {
46927	_ struct{} `type:"structure"`
46928
46929	// The time, in seconds since the epoch, when the job template was created.
46930	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
46931
46932	// A description of the job template.
46933	Description *string `locationName:"description" type:"string"`
46934
46935	// The ARN of the job template.
46936	JobTemplateArn *string `locationName:"jobTemplateArn" min:"1" type:"string"`
46937
46938	// The unique identifier of the job template.
46939	JobTemplateId *string `locationName:"jobTemplateId" min:"1" type:"string"`
46940}
46941
46942// String returns the string representation.
46943//
46944// API parameter values that are decorated as "sensitive" in the API will not
46945// be included in the string output. The member name will be present, but the
46946// value will be replaced with "sensitive".
46947func (s JobTemplateSummary) String() string {
46948	return awsutil.Prettify(s)
46949}
46950
46951// GoString returns the string representation.
46952//
46953// API parameter values that are decorated as "sensitive" in the API will not
46954// be included in the string output. The member name will be present, but the
46955// value will be replaced with "sensitive".
46956func (s JobTemplateSummary) GoString() string {
46957	return s.String()
46958}
46959
46960// SetCreatedAt sets the CreatedAt field's value.
46961func (s *JobTemplateSummary) SetCreatedAt(v time.Time) *JobTemplateSummary {
46962	s.CreatedAt = &v
46963	return s
46964}
46965
46966// SetDescription sets the Description field's value.
46967func (s *JobTemplateSummary) SetDescription(v string) *JobTemplateSummary {
46968	s.Description = &v
46969	return s
46970}
46971
46972// SetJobTemplateArn sets the JobTemplateArn field's value.
46973func (s *JobTemplateSummary) SetJobTemplateArn(v string) *JobTemplateSummary {
46974	s.JobTemplateArn = &v
46975	return s
46976}
46977
46978// SetJobTemplateId sets the JobTemplateId field's value.
46979func (s *JobTemplateSummary) SetJobTemplateId(v string) *JobTemplateSummary {
46980	s.JobTemplateId = &v
46981	return s
46982}
46983
46984// Send messages to an Amazon Managed Streaming for Apache Kafka (Amazon MSK)
46985// or self-managed Apache Kafka cluster.
46986type KafkaAction struct {
46987	_ struct{} `type:"structure"`
46988
46989	// Properties of the Apache Kafka producer client.
46990	//
46991	// ClientProperties is a required field
46992	ClientProperties map[string]*string `locationName:"clientProperties" type:"map" required:"true"`
46993
46994	// The ARN of Kafka action's VPC TopicRuleDestination.
46995	//
46996	// DestinationArn is a required field
46997	DestinationArn *string `locationName:"destinationArn" type:"string" required:"true"`
46998
46999	// The Kafka message key.
47000	Key *string `locationName:"key" type:"string"`
47001
47002	// The Kafka message partition.
47003	Partition *string `locationName:"partition" type:"string"`
47004
47005	// The Kafka topic for messages to be sent to the Kafka broker.
47006	//
47007	// Topic is a required field
47008	Topic *string `locationName:"topic" type:"string" required:"true"`
47009}
47010
47011// String returns the string representation.
47012//
47013// API parameter values that are decorated as "sensitive" in the API will not
47014// be included in the string output. The member name will be present, but the
47015// value will be replaced with "sensitive".
47016func (s KafkaAction) String() string {
47017	return awsutil.Prettify(s)
47018}
47019
47020// GoString returns the string representation.
47021//
47022// API parameter values that are decorated as "sensitive" in the API will not
47023// be included in the string output. The member name will be present, but the
47024// value will be replaced with "sensitive".
47025func (s KafkaAction) GoString() string {
47026	return s.String()
47027}
47028
47029// Validate inspects the fields of the type to determine if they are valid.
47030func (s *KafkaAction) Validate() error {
47031	invalidParams := request.ErrInvalidParams{Context: "KafkaAction"}
47032	if s.ClientProperties == nil {
47033		invalidParams.Add(request.NewErrParamRequired("ClientProperties"))
47034	}
47035	if s.DestinationArn == nil {
47036		invalidParams.Add(request.NewErrParamRequired("DestinationArn"))
47037	}
47038	if s.Topic == nil {
47039		invalidParams.Add(request.NewErrParamRequired("Topic"))
47040	}
47041
47042	if invalidParams.Len() > 0 {
47043		return invalidParams
47044	}
47045	return nil
47046}
47047
47048// SetClientProperties sets the ClientProperties field's value.
47049func (s *KafkaAction) SetClientProperties(v map[string]*string) *KafkaAction {
47050	s.ClientProperties = v
47051	return s
47052}
47053
47054// SetDestinationArn sets the DestinationArn field's value.
47055func (s *KafkaAction) SetDestinationArn(v string) *KafkaAction {
47056	s.DestinationArn = &v
47057	return s
47058}
47059
47060// SetKey sets the Key field's value.
47061func (s *KafkaAction) SetKey(v string) *KafkaAction {
47062	s.Key = &v
47063	return s
47064}
47065
47066// SetPartition sets the Partition field's value.
47067func (s *KafkaAction) SetPartition(v string) *KafkaAction {
47068	s.Partition = &v
47069	return s
47070}
47071
47072// SetTopic sets the Topic field's value.
47073func (s *KafkaAction) SetTopic(v string) *KafkaAction {
47074	s.Topic = &v
47075	return s
47076}
47077
47078// Describes a key pair.
47079type KeyPair struct {
47080	_ struct{} `type:"structure"`
47081
47082	// The private key.
47083	//
47084	// PrivateKey is a sensitive parameter and its value will be
47085	// replaced with "sensitive" in string returned by KeyPair's
47086	// String and GoString methods.
47087	PrivateKey *string `min:"1" type:"string" sensitive:"true"`
47088
47089	// The public key.
47090	PublicKey *string `min:"1" type:"string"`
47091}
47092
47093// String returns the string representation.
47094//
47095// API parameter values that are decorated as "sensitive" in the API will not
47096// be included in the string output. The member name will be present, but the
47097// value will be replaced with "sensitive".
47098func (s KeyPair) String() string {
47099	return awsutil.Prettify(s)
47100}
47101
47102// GoString returns the string representation.
47103//
47104// API parameter values that are decorated as "sensitive" in the API will not
47105// be included in the string output. The member name will be present, but the
47106// value will be replaced with "sensitive".
47107func (s KeyPair) GoString() string {
47108	return s.String()
47109}
47110
47111// SetPrivateKey sets the PrivateKey field's value.
47112func (s *KeyPair) SetPrivateKey(v string) *KeyPair {
47113	s.PrivateKey = &v
47114	return s
47115}
47116
47117// SetPublicKey sets the PublicKey field's value.
47118func (s *KeyPair) SetPublicKey(v string) *KeyPair {
47119	s.PublicKey = &v
47120	return s
47121}
47122
47123// Describes an action to write data to an Amazon Kinesis stream.
47124type KinesisAction struct {
47125	_ struct{} `type:"structure"`
47126
47127	// The partition key.
47128	PartitionKey *string `locationName:"partitionKey" type:"string"`
47129
47130	// The ARN of the IAM role that grants access to the Amazon Kinesis stream.
47131	//
47132	// RoleArn is a required field
47133	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
47134
47135	// The name of the Amazon Kinesis stream.
47136	//
47137	// StreamName is a required field
47138	StreamName *string `locationName:"streamName" type:"string" required:"true"`
47139}
47140
47141// String returns the string representation.
47142//
47143// API parameter values that are decorated as "sensitive" in the API will not
47144// be included in the string output. The member name will be present, but the
47145// value will be replaced with "sensitive".
47146func (s KinesisAction) String() string {
47147	return awsutil.Prettify(s)
47148}
47149
47150// GoString returns the string representation.
47151//
47152// API parameter values that are decorated as "sensitive" in the API will not
47153// be included in the string output. The member name will be present, but the
47154// value will be replaced with "sensitive".
47155func (s KinesisAction) GoString() string {
47156	return s.String()
47157}
47158
47159// Validate inspects the fields of the type to determine if they are valid.
47160func (s *KinesisAction) Validate() error {
47161	invalidParams := request.ErrInvalidParams{Context: "KinesisAction"}
47162	if s.RoleArn == nil {
47163		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
47164	}
47165	if s.StreamName == nil {
47166		invalidParams.Add(request.NewErrParamRequired("StreamName"))
47167	}
47168
47169	if invalidParams.Len() > 0 {
47170		return invalidParams
47171	}
47172	return nil
47173}
47174
47175// SetPartitionKey sets the PartitionKey field's value.
47176func (s *KinesisAction) SetPartitionKey(v string) *KinesisAction {
47177	s.PartitionKey = &v
47178	return s
47179}
47180
47181// SetRoleArn sets the RoleArn field's value.
47182func (s *KinesisAction) SetRoleArn(v string) *KinesisAction {
47183	s.RoleArn = &v
47184	return s
47185}
47186
47187// SetStreamName sets the StreamName field's value.
47188func (s *KinesisAction) SetStreamName(v string) *KinesisAction {
47189	s.StreamName = &v
47190	return s
47191}
47192
47193// Describes an action to invoke a Lambda function.
47194type LambdaAction struct {
47195	_ struct{} `type:"structure"`
47196
47197	// The ARN of the Lambda function.
47198	//
47199	// FunctionArn is a required field
47200	FunctionArn *string `locationName:"functionArn" type:"string" required:"true"`
47201}
47202
47203// String returns the string representation.
47204//
47205// API parameter values that are decorated as "sensitive" in the API will not
47206// be included in the string output. The member name will be present, but the
47207// value will be replaced with "sensitive".
47208func (s LambdaAction) String() string {
47209	return awsutil.Prettify(s)
47210}
47211
47212// GoString returns the string representation.
47213//
47214// API parameter values that are decorated as "sensitive" in the API will not
47215// be included in the string output. The member name will be present, but the
47216// value will be replaced with "sensitive".
47217func (s LambdaAction) GoString() string {
47218	return s.String()
47219}
47220
47221// Validate inspects the fields of the type to determine if they are valid.
47222func (s *LambdaAction) Validate() error {
47223	invalidParams := request.ErrInvalidParams{Context: "LambdaAction"}
47224	if s.FunctionArn == nil {
47225		invalidParams.Add(request.NewErrParamRequired("FunctionArn"))
47226	}
47227
47228	if invalidParams.Len() > 0 {
47229		return invalidParams
47230	}
47231	return nil
47232}
47233
47234// SetFunctionArn sets the FunctionArn field's value.
47235func (s *LambdaAction) SetFunctionArn(v string) *LambdaAction {
47236	s.FunctionArn = &v
47237	return s
47238}
47239
47240// A limit has been exceeded.
47241type LimitExceededException struct {
47242	_            struct{}                  `type:"structure"`
47243	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
47244
47245	// The message for the exception.
47246	Message_ *string `locationName:"message" type:"string"`
47247}
47248
47249// String returns the string representation.
47250//
47251// API parameter values that are decorated as "sensitive" in the API will not
47252// be included in the string output. The member name will be present, but the
47253// value will be replaced with "sensitive".
47254func (s LimitExceededException) String() string {
47255	return awsutil.Prettify(s)
47256}
47257
47258// GoString returns the string representation.
47259//
47260// API parameter values that are decorated as "sensitive" in the API will not
47261// be included in the string output. The member name will be present, but the
47262// value will be replaced with "sensitive".
47263func (s LimitExceededException) GoString() string {
47264	return s.String()
47265}
47266
47267func newErrorLimitExceededException(v protocol.ResponseMetadata) error {
47268	return &LimitExceededException{
47269		RespMetadata: v,
47270	}
47271}
47272
47273// Code returns the exception type name.
47274func (s *LimitExceededException) Code() string {
47275	return "LimitExceededException"
47276}
47277
47278// Message returns the exception's message.
47279func (s *LimitExceededException) Message() string {
47280	if s.Message_ != nil {
47281		return *s.Message_
47282	}
47283	return ""
47284}
47285
47286// OrigErr always returns nil, satisfies awserr.Error interface.
47287func (s *LimitExceededException) OrigErr() error {
47288	return nil
47289}
47290
47291func (s *LimitExceededException) Error() string {
47292	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
47293}
47294
47295// Status code returns the HTTP status code for the request's response error.
47296func (s *LimitExceededException) StatusCode() int {
47297	return s.RespMetadata.StatusCode
47298}
47299
47300// RequestID returns the service's response RequestID for request.
47301func (s *LimitExceededException) RequestID() string {
47302	return s.RespMetadata.RequestID
47303}
47304
47305type ListActiveViolationsInput struct {
47306	_ struct{} `type:"structure" nopayload:"true"`
47307
47308	// The criteria for a behavior.
47309	BehaviorCriteriaType *string `location:"querystring" locationName:"behaviorCriteriaType" type:"string" enum:"BehaviorCriteriaType"`
47310
47311	// A list of all suppressed alerts.
47312	ListSuppressedAlerts *bool `location:"querystring" locationName:"listSuppressedAlerts" type:"boolean"`
47313
47314	// The maximum number of results to return at one time.
47315	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47316
47317	// The token for the next set of results.
47318	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47319
47320	// The name of the Device Defender security profile for which violations are
47321	// listed.
47322	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
47323
47324	// The name of the thing whose active violations are listed.
47325	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
47326
47327	// The verification state of the violation (detect alarm).
47328	VerificationState *string `location:"querystring" locationName:"verificationState" type:"string" enum:"VerificationState"`
47329}
47330
47331// String returns the string representation.
47332//
47333// API parameter values that are decorated as "sensitive" in the API will not
47334// be included in the string output. The member name will be present, but the
47335// value will be replaced with "sensitive".
47336func (s ListActiveViolationsInput) String() string {
47337	return awsutil.Prettify(s)
47338}
47339
47340// GoString returns the string representation.
47341//
47342// API parameter values that are decorated as "sensitive" in the API will not
47343// be included in the string output. The member name will be present, but the
47344// value will be replaced with "sensitive".
47345func (s ListActiveViolationsInput) GoString() string {
47346	return s.String()
47347}
47348
47349// Validate inspects the fields of the type to determine if they are valid.
47350func (s *ListActiveViolationsInput) Validate() error {
47351	invalidParams := request.ErrInvalidParams{Context: "ListActiveViolationsInput"}
47352	if s.MaxResults != nil && *s.MaxResults < 1 {
47353		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47354	}
47355	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
47356		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
47357	}
47358	if s.ThingName != nil && len(*s.ThingName) < 1 {
47359		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
47360	}
47361
47362	if invalidParams.Len() > 0 {
47363		return invalidParams
47364	}
47365	return nil
47366}
47367
47368// SetBehaviorCriteriaType sets the BehaviorCriteriaType field's value.
47369func (s *ListActiveViolationsInput) SetBehaviorCriteriaType(v string) *ListActiveViolationsInput {
47370	s.BehaviorCriteriaType = &v
47371	return s
47372}
47373
47374// SetListSuppressedAlerts sets the ListSuppressedAlerts field's value.
47375func (s *ListActiveViolationsInput) SetListSuppressedAlerts(v bool) *ListActiveViolationsInput {
47376	s.ListSuppressedAlerts = &v
47377	return s
47378}
47379
47380// SetMaxResults sets the MaxResults field's value.
47381func (s *ListActiveViolationsInput) SetMaxResults(v int64) *ListActiveViolationsInput {
47382	s.MaxResults = &v
47383	return s
47384}
47385
47386// SetNextToken sets the NextToken field's value.
47387func (s *ListActiveViolationsInput) SetNextToken(v string) *ListActiveViolationsInput {
47388	s.NextToken = &v
47389	return s
47390}
47391
47392// SetSecurityProfileName sets the SecurityProfileName field's value.
47393func (s *ListActiveViolationsInput) SetSecurityProfileName(v string) *ListActiveViolationsInput {
47394	s.SecurityProfileName = &v
47395	return s
47396}
47397
47398// SetThingName sets the ThingName field's value.
47399func (s *ListActiveViolationsInput) SetThingName(v string) *ListActiveViolationsInput {
47400	s.ThingName = &v
47401	return s
47402}
47403
47404// SetVerificationState sets the VerificationState field's value.
47405func (s *ListActiveViolationsInput) SetVerificationState(v string) *ListActiveViolationsInput {
47406	s.VerificationState = &v
47407	return s
47408}
47409
47410type ListActiveViolationsOutput struct {
47411	_ struct{} `type:"structure"`
47412
47413	// The list of active violations.
47414	ActiveViolations []*ActiveViolation `locationName:"activeViolations" type:"list"`
47415
47416	// A token that can be used to retrieve the next set of results, or null if
47417	// there are no additional results.
47418	NextToken *string `locationName:"nextToken" type:"string"`
47419}
47420
47421// String returns the string representation.
47422//
47423// API parameter values that are decorated as "sensitive" in the API will not
47424// be included in the string output. The member name will be present, but the
47425// value will be replaced with "sensitive".
47426func (s ListActiveViolationsOutput) String() string {
47427	return awsutil.Prettify(s)
47428}
47429
47430// GoString returns the string representation.
47431//
47432// API parameter values that are decorated as "sensitive" in the API will not
47433// be included in the string output. The member name will be present, but the
47434// value will be replaced with "sensitive".
47435func (s ListActiveViolationsOutput) GoString() string {
47436	return s.String()
47437}
47438
47439// SetActiveViolations sets the ActiveViolations field's value.
47440func (s *ListActiveViolationsOutput) SetActiveViolations(v []*ActiveViolation) *ListActiveViolationsOutput {
47441	s.ActiveViolations = v
47442	return s
47443}
47444
47445// SetNextToken sets the NextToken field's value.
47446func (s *ListActiveViolationsOutput) SetNextToken(v string) *ListActiveViolationsOutput {
47447	s.NextToken = &v
47448	return s
47449}
47450
47451type ListAttachedPoliciesInput struct {
47452	_ struct{} `type:"structure" nopayload:"true"`
47453
47454	// The token to retrieve the next set of results.
47455	Marker *string `location:"querystring" locationName:"marker" type:"string"`
47456
47457	// The maximum number of results to be returned per request.
47458	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
47459
47460	// When true, recursively list attached policies.
47461	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
47462
47463	// The group or principal for which the policies will be listed. Valid principals
47464	// are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId), thingGroupArn
47465	// (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId (region:id).
47466	//
47467	// Target is a required field
47468	Target *string `location:"uri" locationName:"target" type:"string" required:"true"`
47469}
47470
47471// String returns the string representation.
47472//
47473// API parameter values that are decorated as "sensitive" in the API will not
47474// be included in the string output. The member name will be present, but the
47475// value will be replaced with "sensitive".
47476func (s ListAttachedPoliciesInput) String() string {
47477	return awsutil.Prettify(s)
47478}
47479
47480// GoString returns the string representation.
47481//
47482// API parameter values that are decorated as "sensitive" in the API will not
47483// be included in the string output. The member name will be present, but the
47484// value will be replaced with "sensitive".
47485func (s ListAttachedPoliciesInput) GoString() string {
47486	return s.String()
47487}
47488
47489// Validate inspects the fields of the type to determine if they are valid.
47490func (s *ListAttachedPoliciesInput) Validate() error {
47491	invalidParams := request.ErrInvalidParams{Context: "ListAttachedPoliciesInput"}
47492	if s.PageSize != nil && *s.PageSize < 1 {
47493		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
47494	}
47495	if s.Target == nil {
47496		invalidParams.Add(request.NewErrParamRequired("Target"))
47497	}
47498	if s.Target != nil && len(*s.Target) < 1 {
47499		invalidParams.Add(request.NewErrParamMinLen("Target", 1))
47500	}
47501
47502	if invalidParams.Len() > 0 {
47503		return invalidParams
47504	}
47505	return nil
47506}
47507
47508// SetMarker sets the Marker field's value.
47509func (s *ListAttachedPoliciesInput) SetMarker(v string) *ListAttachedPoliciesInput {
47510	s.Marker = &v
47511	return s
47512}
47513
47514// SetPageSize sets the PageSize field's value.
47515func (s *ListAttachedPoliciesInput) SetPageSize(v int64) *ListAttachedPoliciesInput {
47516	s.PageSize = &v
47517	return s
47518}
47519
47520// SetRecursive sets the Recursive field's value.
47521func (s *ListAttachedPoliciesInput) SetRecursive(v bool) *ListAttachedPoliciesInput {
47522	s.Recursive = &v
47523	return s
47524}
47525
47526// SetTarget sets the Target field's value.
47527func (s *ListAttachedPoliciesInput) SetTarget(v string) *ListAttachedPoliciesInput {
47528	s.Target = &v
47529	return s
47530}
47531
47532type ListAttachedPoliciesOutput struct {
47533	_ struct{} `type:"structure"`
47534
47535	// The token to retrieve the next set of results, or ``null`` if there are no
47536	// more results.
47537	NextMarker *string `locationName:"nextMarker" type:"string"`
47538
47539	// The policies.
47540	Policies []*Policy `locationName:"policies" type:"list"`
47541}
47542
47543// String returns the string representation.
47544//
47545// API parameter values that are decorated as "sensitive" in the API will not
47546// be included in the string output. The member name will be present, but the
47547// value will be replaced with "sensitive".
47548func (s ListAttachedPoliciesOutput) String() string {
47549	return awsutil.Prettify(s)
47550}
47551
47552// GoString returns the string representation.
47553//
47554// API parameter values that are decorated as "sensitive" in the API will not
47555// be included in the string output. The member name will be present, but the
47556// value will be replaced with "sensitive".
47557func (s ListAttachedPoliciesOutput) GoString() string {
47558	return s.String()
47559}
47560
47561// SetNextMarker sets the NextMarker field's value.
47562func (s *ListAttachedPoliciesOutput) SetNextMarker(v string) *ListAttachedPoliciesOutput {
47563	s.NextMarker = &v
47564	return s
47565}
47566
47567// SetPolicies sets the Policies field's value.
47568func (s *ListAttachedPoliciesOutput) SetPolicies(v []*Policy) *ListAttachedPoliciesOutput {
47569	s.Policies = v
47570	return s
47571}
47572
47573type ListAuditFindingsInput struct {
47574	_ struct{} `type:"structure"`
47575
47576	// A filter to limit results to the findings for the specified audit check.
47577	CheckName *string `locationName:"checkName" type:"string"`
47578
47579	// A filter to limit results to those found before the specified time. You must
47580	// specify either the startTime and endTime or the taskId, but not both.
47581	EndTime *time.Time `locationName:"endTime" type:"timestamp"`
47582
47583	// Boolean flag indicating whether only the suppressed findings or the unsuppressed
47584	// findings should be listed. If this parameter isn't provided, the response
47585	// will list both suppressed and unsuppressed findings.
47586	ListSuppressedFindings *bool `locationName:"listSuppressedFindings" type:"boolean"`
47587
47588	// The maximum number of results to return at one time. The default is 25.
47589	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
47590
47591	// The token for the next set of results.
47592	NextToken *string `locationName:"nextToken" type:"string"`
47593
47594	// Information identifying the noncompliant resource.
47595	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
47596
47597	// A filter to limit results to those found after the specified time. You must
47598	// specify either the startTime and endTime or the taskId, but not both.
47599	StartTime *time.Time `locationName:"startTime" type:"timestamp"`
47600
47601	// A filter to limit results to the audit with the specified ID. You must specify
47602	// either the taskId or the startTime and endTime, but not both.
47603	TaskId *string `locationName:"taskId" min:"1" type:"string"`
47604}
47605
47606// String returns the string representation.
47607//
47608// API parameter values that are decorated as "sensitive" in the API will not
47609// be included in the string output. The member name will be present, but the
47610// value will be replaced with "sensitive".
47611func (s ListAuditFindingsInput) String() string {
47612	return awsutil.Prettify(s)
47613}
47614
47615// GoString returns the string representation.
47616//
47617// API parameter values that are decorated as "sensitive" in the API will not
47618// be included in the string output. The member name will be present, but the
47619// value will be replaced with "sensitive".
47620func (s ListAuditFindingsInput) GoString() string {
47621	return s.String()
47622}
47623
47624// Validate inspects the fields of the type to determine if they are valid.
47625func (s *ListAuditFindingsInput) Validate() error {
47626	invalidParams := request.ErrInvalidParams{Context: "ListAuditFindingsInput"}
47627	if s.MaxResults != nil && *s.MaxResults < 1 {
47628		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47629	}
47630	if s.TaskId != nil && len(*s.TaskId) < 1 {
47631		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
47632	}
47633	if s.ResourceIdentifier != nil {
47634		if err := s.ResourceIdentifier.Validate(); err != nil {
47635			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
47636		}
47637	}
47638
47639	if invalidParams.Len() > 0 {
47640		return invalidParams
47641	}
47642	return nil
47643}
47644
47645// SetCheckName sets the CheckName field's value.
47646func (s *ListAuditFindingsInput) SetCheckName(v string) *ListAuditFindingsInput {
47647	s.CheckName = &v
47648	return s
47649}
47650
47651// SetEndTime sets the EndTime field's value.
47652func (s *ListAuditFindingsInput) SetEndTime(v time.Time) *ListAuditFindingsInput {
47653	s.EndTime = &v
47654	return s
47655}
47656
47657// SetListSuppressedFindings sets the ListSuppressedFindings field's value.
47658func (s *ListAuditFindingsInput) SetListSuppressedFindings(v bool) *ListAuditFindingsInput {
47659	s.ListSuppressedFindings = &v
47660	return s
47661}
47662
47663// SetMaxResults sets the MaxResults field's value.
47664func (s *ListAuditFindingsInput) SetMaxResults(v int64) *ListAuditFindingsInput {
47665	s.MaxResults = &v
47666	return s
47667}
47668
47669// SetNextToken sets the NextToken field's value.
47670func (s *ListAuditFindingsInput) SetNextToken(v string) *ListAuditFindingsInput {
47671	s.NextToken = &v
47672	return s
47673}
47674
47675// SetResourceIdentifier sets the ResourceIdentifier field's value.
47676func (s *ListAuditFindingsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditFindingsInput {
47677	s.ResourceIdentifier = v
47678	return s
47679}
47680
47681// SetStartTime sets the StartTime field's value.
47682func (s *ListAuditFindingsInput) SetStartTime(v time.Time) *ListAuditFindingsInput {
47683	s.StartTime = &v
47684	return s
47685}
47686
47687// SetTaskId sets the TaskId field's value.
47688func (s *ListAuditFindingsInput) SetTaskId(v string) *ListAuditFindingsInput {
47689	s.TaskId = &v
47690	return s
47691}
47692
47693type ListAuditFindingsOutput struct {
47694	_ struct{} `type:"structure"`
47695
47696	// The findings (results) of the audit.
47697	Findings []*AuditFinding `locationName:"findings" type:"list"`
47698
47699	// A token that can be used to retrieve the next set of results, or null if
47700	// there are no additional results.
47701	NextToken *string `locationName:"nextToken" type:"string"`
47702}
47703
47704// String returns the string representation.
47705//
47706// API parameter values that are decorated as "sensitive" in the API will not
47707// be included in the string output. The member name will be present, but the
47708// value will be replaced with "sensitive".
47709func (s ListAuditFindingsOutput) String() string {
47710	return awsutil.Prettify(s)
47711}
47712
47713// GoString returns the string representation.
47714//
47715// API parameter values that are decorated as "sensitive" in the API will not
47716// be included in the string output. The member name will be present, but the
47717// value will be replaced with "sensitive".
47718func (s ListAuditFindingsOutput) GoString() string {
47719	return s.String()
47720}
47721
47722// SetFindings sets the Findings field's value.
47723func (s *ListAuditFindingsOutput) SetFindings(v []*AuditFinding) *ListAuditFindingsOutput {
47724	s.Findings = v
47725	return s
47726}
47727
47728// SetNextToken sets the NextToken field's value.
47729func (s *ListAuditFindingsOutput) SetNextToken(v string) *ListAuditFindingsOutput {
47730	s.NextToken = &v
47731	return s
47732}
47733
47734type ListAuditMitigationActionsExecutionsInput struct {
47735	_ struct{} `type:"structure" nopayload:"true"`
47736
47737	// Specify this filter to limit results to those with a specific status.
47738	ActionStatus *string `location:"querystring" locationName:"actionStatus" type:"string" enum:"AuditMitigationActionsExecutionStatus"`
47739
47740	// Specify this filter to limit results to those that were applied to a specific
47741	// audit finding.
47742	//
47743	// FindingId is a required field
47744	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string" required:"true"`
47745
47746	// The maximum number of results to return at one time. The default is 25.
47747	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47748
47749	// The token for the next set of results.
47750	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47751
47752	// Specify this filter to limit results to actions for a specific audit mitigation
47753	// actions task.
47754	//
47755	// TaskId is a required field
47756	TaskId *string `location:"querystring" locationName:"taskId" min:"1" type:"string" required:"true"`
47757}
47758
47759// String returns the string representation.
47760//
47761// API parameter values that are decorated as "sensitive" in the API will not
47762// be included in the string output. The member name will be present, but the
47763// value will be replaced with "sensitive".
47764func (s ListAuditMitigationActionsExecutionsInput) String() string {
47765	return awsutil.Prettify(s)
47766}
47767
47768// GoString returns the string representation.
47769//
47770// API parameter values that are decorated as "sensitive" in the API will not
47771// be included in the string output. The member name will be present, but the
47772// value will be replaced with "sensitive".
47773func (s ListAuditMitigationActionsExecutionsInput) GoString() string {
47774	return s.String()
47775}
47776
47777// Validate inspects the fields of the type to determine if they are valid.
47778func (s *ListAuditMitigationActionsExecutionsInput) Validate() error {
47779	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsExecutionsInput"}
47780	if s.FindingId == nil {
47781		invalidParams.Add(request.NewErrParamRequired("FindingId"))
47782	}
47783	if s.FindingId != nil && len(*s.FindingId) < 1 {
47784		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
47785	}
47786	if s.MaxResults != nil && *s.MaxResults < 1 {
47787		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47788	}
47789	if s.TaskId == nil {
47790		invalidParams.Add(request.NewErrParamRequired("TaskId"))
47791	}
47792	if s.TaskId != nil && len(*s.TaskId) < 1 {
47793		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
47794	}
47795
47796	if invalidParams.Len() > 0 {
47797		return invalidParams
47798	}
47799	return nil
47800}
47801
47802// SetActionStatus sets the ActionStatus field's value.
47803func (s *ListAuditMitigationActionsExecutionsInput) SetActionStatus(v string) *ListAuditMitigationActionsExecutionsInput {
47804	s.ActionStatus = &v
47805	return s
47806}
47807
47808// SetFindingId sets the FindingId field's value.
47809func (s *ListAuditMitigationActionsExecutionsInput) SetFindingId(v string) *ListAuditMitigationActionsExecutionsInput {
47810	s.FindingId = &v
47811	return s
47812}
47813
47814// SetMaxResults sets the MaxResults field's value.
47815func (s *ListAuditMitigationActionsExecutionsInput) SetMaxResults(v int64) *ListAuditMitigationActionsExecutionsInput {
47816	s.MaxResults = &v
47817	return s
47818}
47819
47820// SetNextToken sets the NextToken field's value.
47821func (s *ListAuditMitigationActionsExecutionsInput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsInput {
47822	s.NextToken = &v
47823	return s
47824}
47825
47826// SetTaskId sets the TaskId field's value.
47827func (s *ListAuditMitigationActionsExecutionsInput) SetTaskId(v string) *ListAuditMitigationActionsExecutionsInput {
47828	s.TaskId = &v
47829	return s
47830}
47831
47832type ListAuditMitigationActionsExecutionsOutput struct {
47833	_ struct{} `type:"structure"`
47834
47835	// A set of task execution results based on the input parameters. Details include
47836	// the mitigation action applied, start time, and task status.
47837	ActionsExecutions []*AuditMitigationActionExecutionMetadata `locationName:"actionsExecutions" type:"list"`
47838
47839	// The token for the next set of results.
47840	NextToken *string `locationName:"nextToken" type:"string"`
47841}
47842
47843// String returns the string representation.
47844//
47845// API parameter values that are decorated as "sensitive" in the API will not
47846// be included in the string output. The member name will be present, but the
47847// value will be replaced with "sensitive".
47848func (s ListAuditMitigationActionsExecutionsOutput) String() string {
47849	return awsutil.Prettify(s)
47850}
47851
47852// GoString returns the string representation.
47853//
47854// API parameter values that are decorated as "sensitive" in the API will not
47855// be included in the string output. The member name will be present, but the
47856// value will be replaced with "sensitive".
47857func (s ListAuditMitigationActionsExecutionsOutput) GoString() string {
47858	return s.String()
47859}
47860
47861// SetActionsExecutions sets the ActionsExecutions field's value.
47862func (s *ListAuditMitigationActionsExecutionsOutput) SetActionsExecutions(v []*AuditMitigationActionExecutionMetadata) *ListAuditMitigationActionsExecutionsOutput {
47863	s.ActionsExecutions = v
47864	return s
47865}
47866
47867// SetNextToken sets the NextToken field's value.
47868func (s *ListAuditMitigationActionsExecutionsOutput) SetNextToken(v string) *ListAuditMitigationActionsExecutionsOutput {
47869	s.NextToken = &v
47870	return s
47871}
47872
47873type ListAuditMitigationActionsTasksInput struct {
47874	_ struct{} `type:"structure" nopayload:"true"`
47875
47876	// Specify this filter to limit results to tasks that were applied to results
47877	// for a specific audit.
47878	AuditTaskId *string `location:"querystring" locationName:"auditTaskId" min:"1" type:"string"`
47879
47880	// Specify this filter to limit results to tasks that were completed or canceled
47881	// on or before a specific date and time.
47882	//
47883	// EndTime is a required field
47884	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
47885
47886	// Specify this filter to limit results to tasks that were applied to a specific
47887	// audit finding.
47888	FindingId *string `location:"querystring" locationName:"findingId" min:"1" type:"string"`
47889
47890	// The maximum number of results to return at one time. The default is 25.
47891	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
47892
47893	// The token for the next set of results.
47894	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
47895
47896	// Specify this filter to limit results to tasks that began on or after a specific
47897	// date and time.
47898	//
47899	// StartTime is a required field
47900	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
47901
47902	// Specify this filter to limit results to tasks that are in a specific state.
47903	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditMitigationActionsTaskStatus"`
47904}
47905
47906// String returns the string representation.
47907//
47908// API parameter values that are decorated as "sensitive" in the API will not
47909// be included in the string output. The member name will be present, but the
47910// value will be replaced with "sensitive".
47911func (s ListAuditMitigationActionsTasksInput) String() string {
47912	return awsutil.Prettify(s)
47913}
47914
47915// GoString returns the string representation.
47916//
47917// API parameter values that are decorated as "sensitive" in the API will not
47918// be included in the string output. The member name will be present, but the
47919// value will be replaced with "sensitive".
47920func (s ListAuditMitigationActionsTasksInput) GoString() string {
47921	return s.String()
47922}
47923
47924// Validate inspects the fields of the type to determine if they are valid.
47925func (s *ListAuditMitigationActionsTasksInput) Validate() error {
47926	invalidParams := request.ErrInvalidParams{Context: "ListAuditMitigationActionsTasksInput"}
47927	if s.AuditTaskId != nil && len(*s.AuditTaskId) < 1 {
47928		invalidParams.Add(request.NewErrParamMinLen("AuditTaskId", 1))
47929	}
47930	if s.EndTime == nil {
47931		invalidParams.Add(request.NewErrParamRequired("EndTime"))
47932	}
47933	if s.FindingId != nil && len(*s.FindingId) < 1 {
47934		invalidParams.Add(request.NewErrParamMinLen("FindingId", 1))
47935	}
47936	if s.MaxResults != nil && *s.MaxResults < 1 {
47937		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
47938	}
47939	if s.StartTime == nil {
47940		invalidParams.Add(request.NewErrParamRequired("StartTime"))
47941	}
47942
47943	if invalidParams.Len() > 0 {
47944		return invalidParams
47945	}
47946	return nil
47947}
47948
47949// SetAuditTaskId sets the AuditTaskId field's value.
47950func (s *ListAuditMitigationActionsTasksInput) SetAuditTaskId(v string) *ListAuditMitigationActionsTasksInput {
47951	s.AuditTaskId = &v
47952	return s
47953}
47954
47955// SetEndTime sets the EndTime field's value.
47956func (s *ListAuditMitigationActionsTasksInput) SetEndTime(v time.Time) *ListAuditMitigationActionsTasksInput {
47957	s.EndTime = &v
47958	return s
47959}
47960
47961// SetFindingId sets the FindingId field's value.
47962func (s *ListAuditMitigationActionsTasksInput) SetFindingId(v string) *ListAuditMitigationActionsTasksInput {
47963	s.FindingId = &v
47964	return s
47965}
47966
47967// SetMaxResults sets the MaxResults field's value.
47968func (s *ListAuditMitigationActionsTasksInput) SetMaxResults(v int64) *ListAuditMitigationActionsTasksInput {
47969	s.MaxResults = &v
47970	return s
47971}
47972
47973// SetNextToken sets the NextToken field's value.
47974func (s *ListAuditMitigationActionsTasksInput) SetNextToken(v string) *ListAuditMitigationActionsTasksInput {
47975	s.NextToken = &v
47976	return s
47977}
47978
47979// SetStartTime sets the StartTime field's value.
47980func (s *ListAuditMitigationActionsTasksInput) SetStartTime(v time.Time) *ListAuditMitigationActionsTasksInput {
47981	s.StartTime = &v
47982	return s
47983}
47984
47985// SetTaskStatus sets the TaskStatus field's value.
47986func (s *ListAuditMitigationActionsTasksInput) SetTaskStatus(v string) *ListAuditMitigationActionsTasksInput {
47987	s.TaskStatus = &v
47988	return s
47989}
47990
47991type ListAuditMitigationActionsTasksOutput struct {
47992	_ struct{} `type:"structure"`
47993
47994	// The token for the next set of results.
47995	NextToken *string `locationName:"nextToken" type:"string"`
47996
47997	// The collection of audit mitigation tasks that matched the filter criteria.
47998	Tasks []*AuditMitigationActionsTaskMetadata `locationName:"tasks" type:"list"`
47999}
48000
48001// String returns the string representation.
48002//
48003// API parameter values that are decorated as "sensitive" in the API will not
48004// be included in the string output. The member name will be present, but the
48005// value will be replaced with "sensitive".
48006func (s ListAuditMitigationActionsTasksOutput) String() string {
48007	return awsutil.Prettify(s)
48008}
48009
48010// GoString returns the string representation.
48011//
48012// API parameter values that are decorated as "sensitive" in the API will not
48013// be included in the string output. The member name will be present, but the
48014// value will be replaced with "sensitive".
48015func (s ListAuditMitigationActionsTasksOutput) GoString() string {
48016	return s.String()
48017}
48018
48019// SetNextToken sets the NextToken field's value.
48020func (s *ListAuditMitigationActionsTasksOutput) SetNextToken(v string) *ListAuditMitigationActionsTasksOutput {
48021	s.NextToken = &v
48022	return s
48023}
48024
48025// SetTasks sets the Tasks field's value.
48026func (s *ListAuditMitigationActionsTasksOutput) SetTasks(v []*AuditMitigationActionsTaskMetadata) *ListAuditMitigationActionsTasksOutput {
48027	s.Tasks = v
48028	return s
48029}
48030
48031type ListAuditSuppressionsInput struct {
48032	_ struct{} `type:"structure"`
48033
48034	// Determines whether suppressions are listed in ascending order by expiration
48035	// date or not. If parameter isn't provided, ascendingOrder=true.
48036	AscendingOrder *bool `locationName:"ascendingOrder" type:"boolean"`
48037
48038	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
48039	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
48040	// to select which checks are enabled.)
48041	CheckName *string `locationName:"checkName" type:"string"`
48042
48043	// The maximum number of results to return at one time. The default is 25.
48044	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
48045
48046	// The token for the next set of results.
48047	NextToken *string `locationName:"nextToken" type:"string"`
48048
48049	// Information that identifies the noncompliant resource.
48050	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
48051}
48052
48053// String returns the string representation.
48054//
48055// API parameter values that are decorated as "sensitive" in the API will not
48056// be included in the string output. The member name will be present, but the
48057// value will be replaced with "sensitive".
48058func (s ListAuditSuppressionsInput) String() string {
48059	return awsutil.Prettify(s)
48060}
48061
48062// GoString returns the string representation.
48063//
48064// API parameter values that are decorated as "sensitive" in the API will not
48065// be included in the string output. The member name will be present, but the
48066// value will be replaced with "sensitive".
48067func (s ListAuditSuppressionsInput) GoString() string {
48068	return s.String()
48069}
48070
48071// Validate inspects the fields of the type to determine if they are valid.
48072func (s *ListAuditSuppressionsInput) Validate() error {
48073	invalidParams := request.ErrInvalidParams{Context: "ListAuditSuppressionsInput"}
48074	if s.MaxResults != nil && *s.MaxResults < 1 {
48075		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
48076	}
48077	if s.ResourceIdentifier != nil {
48078		if err := s.ResourceIdentifier.Validate(); err != nil {
48079			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
48080		}
48081	}
48082
48083	if invalidParams.Len() > 0 {
48084		return invalidParams
48085	}
48086	return nil
48087}
48088
48089// SetAscendingOrder sets the AscendingOrder field's value.
48090func (s *ListAuditSuppressionsInput) SetAscendingOrder(v bool) *ListAuditSuppressionsInput {
48091	s.AscendingOrder = &v
48092	return s
48093}
48094
48095// SetCheckName sets the CheckName field's value.
48096func (s *ListAuditSuppressionsInput) SetCheckName(v string) *ListAuditSuppressionsInput {
48097	s.CheckName = &v
48098	return s
48099}
48100
48101// SetMaxResults sets the MaxResults field's value.
48102func (s *ListAuditSuppressionsInput) SetMaxResults(v int64) *ListAuditSuppressionsInput {
48103	s.MaxResults = &v
48104	return s
48105}
48106
48107// SetNextToken sets the NextToken field's value.
48108func (s *ListAuditSuppressionsInput) SetNextToken(v string) *ListAuditSuppressionsInput {
48109	s.NextToken = &v
48110	return s
48111}
48112
48113// SetResourceIdentifier sets the ResourceIdentifier field's value.
48114func (s *ListAuditSuppressionsInput) SetResourceIdentifier(v *ResourceIdentifier) *ListAuditSuppressionsInput {
48115	s.ResourceIdentifier = v
48116	return s
48117}
48118
48119type ListAuditSuppressionsOutput struct {
48120	_ struct{} `type:"structure"`
48121
48122	// A token that can be used to retrieve the next set of results, or null if
48123	// there are no additional results.
48124	NextToken *string `locationName:"nextToken" type:"string"`
48125
48126	// List of audit suppressions.
48127	Suppressions []*AuditSuppression `locationName:"suppressions" type:"list"`
48128}
48129
48130// String returns the string representation.
48131//
48132// API parameter values that are decorated as "sensitive" in the API will not
48133// be included in the string output. The member name will be present, but the
48134// value will be replaced with "sensitive".
48135func (s ListAuditSuppressionsOutput) String() string {
48136	return awsutil.Prettify(s)
48137}
48138
48139// GoString returns the string representation.
48140//
48141// API parameter values that are decorated as "sensitive" in the API will not
48142// be included in the string output. The member name will be present, but the
48143// value will be replaced with "sensitive".
48144func (s ListAuditSuppressionsOutput) GoString() string {
48145	return s.String()
48146}
48147
48148// SetNextToken sets the NextToken field's value.
48149func (s *ListAuditSuppressionsOutput) SetNextToken(v string) *ListAuditSuppressionsOutput {
48150	s.NextToken = &v
48151	return s
48152}
48153
48154// SetSuppressions sets the Suppressions field's value.
48155func (s *ListAuditSuppressionsOutput) SetSuppressions(v []*AuditSuppression) *ListAuditSuppressionsOutput {
48156	s.Suppressions = v
48157	return s
48158}
48159
48160type ListAuditTasksInput struct {
48161	_ struct{} `type:"structure" nopayload:"true"`
48162
48163	// The end of the time period.
48164	//
48165	// EndTime is a required field
48166	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
48167
48168	// The maximum number of results to return at one time. The default is 25.
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 beginning of the time period. Audit information is retained for a limited
48175	// time (90 days). Requesting a start time prior to what is retained results
48176	// in an "InvalidRequestException".
48177	//
48178	// StartTime is a required field
48179	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
48180
48181	// A filter to limit the output to audits with the specified completion status:
48182	// can be one of "IN_PROGRESS", "COMPLETED", "FAILED", or "CANCELED".
48183	TaskStatus *string `location:"querystring" locationName:"taskStatus" type:"string" enum:"AuditTaskStatus"`
48184
48185	// A filter to limit the output to the specified type of audit: can be one of
48186	// "ON_DEMAND_AUDIT_TASK" or "SCHEDULED__AUDIT_TASK".
48187	TaskType *string `location:"querystring" locationName:"taskType" type:"string" enum:"AuditTaskType"`
48188}
48189
48190// String returns the string representation.
48191//
48192// API parameter values that are decorated as "sensitive" in the API will not
48193// be included in the string output. The member name will be present, but the
48194// value will be replaced with "sensitive".
48195func (s ListAuditTasksInput) String() string {
48196	return awsutil.Prettify(s)
48197}
48198
48199// GoString returns the string representation.
48200//
48201// API parameter values that are decorated as "sensitive" in the API will not
48202// be included in the string output. The member name will be present, but the
48203// value will be replaced with "sensitive".
48204func (s ListAuditTasksInput) GoString() string {
48205	return s.String()
48206}
48207
48208// Validate inspects the fields of the type to determine if they are valid.
48209func (s *ListAuditTasksInput) Validate() error {
48210	invalidParams := request.ErrInvalidParams{Context: "ListAuditTasksInput"}
48211	if s.EndTime == nil {
48212		invalidParams.Add(request.NewErrParamRequired("EndTime"))
48213	}
48214	if s.MaxResults != nil && *s.MaxResults < 1 {
48215		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
48216	}
48217	if s.StartTime == nil {
48218		invalidParams.Add(request.NewErrParamRequired("StartTime"))
48219	}
48220
48221	if invalidParams.Len() > 0 {
48222		return invalidParams
48223	}
48224	return nil
48225}
48226
48227// SetEndTime sets the EndTime field's value.
48228func (s *ListAuditTasksInput) SetEndTime(v time.Time) *ListAuditTasksInput {
48229	s.EndTime = &v
48230	return s
48231}
48232
48233// SetMaxResults sets the MaxResults field's value.
48234func (s *ListAuditTasksInput) SetMaxResults(v int64) *ListAuditTasksInput {
48235	s.MaxResults = &v
48236	return s
48237}
48238
48239// SetNextToken sets the NextToken field's value.
48240func (s *ListAuditTasksInput) SetNextToken(v string) *ListAuditTasksInput {
48241	s.NextToken = &v
48242	return s
48243}
48244
48245// SetStartTime sets the StartTime field's value.
48246func (s *ListAuditTasksInput) SetStartTime(v time.Time) *ListAuditTasksInput {
48247	s.StartTime = &v
48248	return s
48249}
48250
48251// SetTaskStatus sets the TaskStatus field's value.
48252func (s *ListAuditTasksInput) SetTaskStatus(v string) *ListAuditTasksInput {
48253	s.TaskStatus = &v
48254	return s
48255}
48256
48257// SetTaskType sets the TaskType field's value.
48258func (s *ListAuditTasksInput) SetTaskType(v string) *ListAuditTasksInput {
48259	s.TaskType = &v
48260	return s
48261}
48262
48263type ListAuditTasksOutput struct {
48264	_ struct{} `type:"structure"`
48265
48266	// A token that can be used to retrieve the next set of results, or null if
48267	// there are no additional results.
48268	NextToken *string `locationName:"nextToken" type:"string"`
48269
48270	// The audits that were performed during the specified time period.
48271	Tasks []*AuditTaskMetadata `locationName:"tasks" type:"list"`
48272}
48273
48274// String returns the string representation.
48275//
48276// API parameter values that are decorated as "sensitive" in the API will not
48277// be included in the string output. The member name will be present, but the
48278// value will be replaced with "sensitive".
48279func (s ListAuditTasksOutput) String() string {
48280	return awsutil.Prettify(s)
48281}
48282
48283// GoString returns the string representation.
48284//
48285// API parameter values that are decorated as "sensitive" in the API will not
48286// be included in the string output. The member name will be present, but the
48287// value will be replaced with "sensitive".
48288func (s ListAuditTasksOutput) GoString() string {
48289	return s.String()
48290}
48291
48292// SetNextToken sets the NextToken field's value.
48293func (s *ListAuditTasksOutput) SetNextToken(v string) *ListAuditTasksOutput {
48294	s.NextToken = &v
48295	return s
48296}
48297
48298// SetTasks sets the Tasks field's value.
48299func (s *ListAuditTasksOutput) SetTasks(v []*AuditTaskMetadata) *ListAuditTasksOutput {
48300	s.Tasks = v
48301	return s
48302}
48303
48304type ListAuthorizersInput struct {
48305	_ struct{} `type:"structure" nopayload:"true"`
48306
48307	// Return the list of authorizers in ascending alphabetical order.
48308	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
48309
48310	// A marker used to get the next set of results.
48311	Marker *string `location:"querystring" locationName:"marker" type:"string"`
48312
48313	// The maximum number of results to return at one time.
48314	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
48315
48316	// The status of the list authorizers request.
48317	Status *string `location:"querystring" locationName:"status" type:"string" enum:"AuthorizerStatus"`
48318}
48319
48320// String returns the string representation.
48321//
48322// API parameter values that are decorated as "sensitive" in the API will not
48323// be included in the string output. The member name will be present, but the
48324// value will be replaced with "sensitive".
48325func (s ListAuthorizersInput) String() string {
48326	return awsutil.Prettify(s)
48327}
48328
48329// GoString returns the string representation.
48330//
48331// API parameter values that are decorated as "sensitive" in the API will not
48332// be included in the string output. The member name will be present, but the
48333// value will be replaced with "sensitive".
48334func (s ListAuthorizersInput) GoString() string {
48335	return s.String()
48336}
48337
48338// Validate inspects the fields of the type to determine if they are valid.
48339func (s *ListAuthorizersInput) Validate() error {
48340	invalidParams := request.ErrInvalidParams{Context: "ListAuthorizersInput"}
48341	if s.PageSize != nil && *s.PageSize < 1 {
48342		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
48343	}
48344
48345	if invalidParams.Len() > 0 {
48346		return invalidParams
48347	}
48348	return nil
48349}
48350
48351// SetAscendingOrder sets the AscendingOrder field's value.
48352func (s *ListAuthorizersInput) SetAscendingOrder(v bool) *ListAuthorizersInput {
48353	s.AscendingOrder = &v
48354	return s
48355}
48356
48357// SetMarker sets the Marker field's value.
48358func (s *ListAuthorizersInput) SetMarker(v string) *ListAuthorizersInput {
48359	s.Marker = &v
48360	return s
48361}
48362
48363// SetPageSize sets the PageSize field's value.
48364func (s *ListAuthorizersInput) SetPageSize(v int64) *ListAuthorizersInput {
48365	s.PageSize = &v
48366	return s
48367}
48368
48369// SetStatus sets the Status field's value.
48370func (s *ListAuthorizersInput) SetStatus(v string) *ListAuthorizersInput {
48371	s.Status = &v
48372	return s
48373}
48374
48375type ListAuthorizersOutput struct {
48376	_ struct{} `type:"structure"`
48377
48378	// The authorizers.
48379	Authorizers []*AuthorizerSummary `locationName:"authorizers" type:"list"`
48380
48381	// A marker used to get the next set of results.
48382	NextMarker *string `locationName:"nextMarker" type:"string"`
48383}
48384
48385// String returns the string representation.
48386//
48387// API parameter values that are decorated as "sensitive" in the API will not
48388// be included in the string output. The member name will be present, but the
48389// value will be replaced with "sensitive".
48390func (s ListAuthorizersOutput) String() string {
48391	return awsutil.Prettify(s)
48392}
48393
48394// GoString returns the string representation.
48395//
48396// API parameter values that are decorated as "sensitive" in the API will not
48397// be included in the string output. The member name will be present, but the
48398// value will be replaced with "sensitive".
48399func (s ListAuthorizersOutput) GoString() string {
48400	return s.String()
48401}
48402
48403// SetAuthorizers sets the Authorizers field's value.
48404func (s *ListAuthorizersOutput) SetAuthorizers(v []*AuthorizerSummary) *ListAuthorizersOutput {
48405	s.Authorizers = v
48406	return s
48407}
48408
48409// SetNextMarker sets the NextMarker field's value.
48410func (s *ListAuthorizersOutput) SetNextMarker(v string) *ListAuthorizersOutput {
48411	s.NextMarker = &v
48412	return s
48413}
48414
48415type ListBillingGroupsInput struct {
48416	_ struct{} `type:"structure" nopayload:"true"`
48417
48418	// The maximum number of results to return per request.
48419	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
48420
48421	// Limit the results to billing groups whose names have the given prefix.
48422	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
48423
48424	// To retrieve the next set of results, the nextToken value from a previous
48425	// response; otherwise null to receive the first set of results.
48426	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
48427}
48428
48429// String returns the string representation.
48430//
48431// API parameter values that are decorated as "sensitive" in the API will not
48432// be included in the string output. The member name will be present, but the
48433// value will be replaced with "sensitive".
48434func (s ListBillingGroupsInput) String() string {
48435	return awsutil.Prettify(s)
48436}
48437
48438// GoString returns the string representation.
48439//
48440// API parameter values that are decorated as "sensitive" in the API will not
48441// be included in the string output. The member name will be present, but the
48442// value will be replaced with "sensitive".
48443func (s ListBillingGroupsInput) GoString() string {
48444	return s.String()
48445}
48446
48447// Validate inspects the fields of the type to determine if they are valid.
48448func (s *ListBillingGroupsInput) Validate() error {
48449	invalidParams := request.ErrInvalidParams{Context: "ListBillingGroupsInput"}
48450	if s.MaxResults != nil && *s.MaxResults < 1 {
48451		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
48452	}
48453	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
48454		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
48455	}
48456
48457	if invalidParams.Len() > 0 {
48458		return invalidParams
48459	}
48460	return nil
48461}
48462
48463// SetMaxResults sets the MaxResults field's value.
48464func (s *ListBillingGroupsInput) SetMaxResults(v int64) *ListBillingGroupsInput {
48465	s.MaxResults = &v
48466	return s
48467}
48468
48469// SetNamePrefixFilter sets the NamePrefixFilter field's value.
48470func (s *ListBillingGroupsInput) SetNamePrefixFilter(v string) *ListBillingGroupsInput {
48471	s.NamePrefixFilter = &v
48472	return s
48473}
48474
48475// SetNextToken sets the NextToken field's value.
48476func (s *ListBillingGroupsInput) SetNextToken(v string) *ListBillingGroupsInput {
48477	s.NextToken = &v
48478	return s
48479}
48480
48481type ListBillingGroupsOutput struct {
48482	_ struct{} `type:"structure"`
48483
48484	// The list of billing groups.
48485	BillingGroups []*GroupNameAndArn `locationName:"billingGroups" type:"list"`
48486
48487	// The token to use to get the next set of results, or null if there are no
48488	// additional results.
48489	NextToken *string `locationName:"nextToken" type:"string"`
48490}
48491
48492// String returns the string representation.
48493//
48494// API parameter values that are decorated as "sensitive" in the API will not
48495// be included in the string output. The member name will be present, but the
48496// value will be replaced with "sensitive".
48497func (s ListBillingGroupsOutput) String() string {
48498	return awsutil.Prettify(s)
48499}
48500
48501// GoString returns the string representation.
48502//
48503// API parameter values that are decorated as "sensitive" in the API will not
48504// be included in the string output. The member name will be present, but the
48505// value will be replaced with "sensitive".
48506func (s ListBillingGroupsOutput) GoString() string {
48507	return s.String()
48508}
48509
48510// SetBillingGroups sets the BillingGroups field's value.
48511func (s *ListBillingGroupsOutput) SetBillingGroups(v []*GroupNameAndArn) *ListBillingGroupsOutput {
48512	s.BillingGroups = v
48513	return s
48514}
48515
48516// SetNextToken sets the NextToken field's value.
48517func (s *ListBillingGroupsOutput) SetNextToken(v string) *ListBillingGroupsOutput {
48518	s.NextToken = &v
48519	return s
48520}
48521
48522// Input for the ListCACertificates operation.
48523type ListCACertificatesInput struct {
48524	_ struct{} `type:"structure" nopayload:"true"`
48525
48526	// Determines the order of the results.
48527	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
48528
48529	// The marker for the next set of results.
48530	Marker *string `location:"querystring" locationName:"marker" type:"string"`
48531
48532	// The result page size.
48533	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
48534}
48535
48536// String returns the string representation.
48537//
48538// API parameter values that are decorated as "sensitive" in the API will not
48539// be included in the string output. The member name will be present, but the
48540// value will be replaced with "sensitive".
48541func (s ListCACertificatesInput) String() string {
48542	return awsutil.Prettify(s)
48543}
48544
48545// GoString returns the string representation.
48546//
48547// API parameter values that are decorated as "sensitive" in the API will not
48548// be included in the string output. The member name will be present, but the
48549// value will be replaced with "sensitive".
48550func (s ListCACertificatesInput) GoString() string {
48551	return s.String()
48552}
48553
48554// Validate inspects the fields of the type to determine if they are valid.
48555func (s *ListCACertificatesInput) Validate() error {
48556	invalidParams := request.ErrInvalidParams{Context: "ListCACertificatesInput"}
48557	if s.PageSize != nil && *s.PageSize < 1 {
48558		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
48559	}
48560
48561	if invalidParams.Len() > 0 {
48562		return invalidParams
48563	}
48564	return nil
48565}
48566
48567// SetAscendingOrder sets the AscendingOrder field's value.
48568func (s *ListCACertificatesInput) SetAscendingOrder(v bool) *ListCACertificatesInput {
48569	s.AscendingOrder = &v
48570	return s
48571}
48572
48573// SetMarker sets the Marker field's value.
48574func (s *ListCACertificatesInput) SetMarker(v string) *ListCACertificatesInput {
48575	s.Marker = &v
48576	return s
48577}
48578
48579// SetPageSize sets the PageSize field's value.
48580func (s *ListCACertificatesInput) SetPageSize(v int64) *ListCACertificatesInput {
48581	s.PageSize = &v
48582	return s
48583}
48584
48585// The output from the ListCACertificates operation.
48586type ListCACertificatesOutput struct {
48587	_ struct{} `type:"structure"`
48588
48589	// The CA certificates registered in your Amazon Web Services account.
48590	Certificates []*CACertificate `locationName:"certificates" type:"list"`
48591
48592	// The current position within the list of CA certificates.
48593	NextMarker *string `locationName:"nextMarker" type:"string"`
48594}
48595
48596// String returns the string representation.
48597//
48598// API parameter values that are decorated as "sensitive" in the API will not
48599// be included in the string output. The member name will be present, but the
48600// value will be replaced with "sensitive".
48601func (s ListCACertificatesOutput) String() string {
48602	return awsutil.Prettify(s)
48603}
48604
48605// GoString returns the string representation.
48606//
48607// API parameter values that are decorated as "sensitive" in the API will not
48608// be included in the string output. The member name will be present, but the
48609// value will be replaced with "sensitive".
48610func (s ListCACertificatesOutput) GoString() string {
48611	return s.String()
48612}
48613
48614// SetCertificates sets the Certificates field's value.
48615func (s *ListCACertificatesOutput) SetCertificates(v []*CACertificate) *ListCACertificatesOutput {
48616	s.Certificates = v
48617	return s
48618}
48619
48620// SetNextMarker sets the NextMarker field's value.
48621func (s *ListCACertificatesOutput) SetNextMarker(v string) *ListCACertificatesOutput {
48622	s.NextMarker = &v
48623	return s
48624}
48625
48626// The input to the ListCertificatesByCA operation.
48627type ListCertificatesByCAInput struct {
48628	_ struct{} `type:"structure" nopayload:"true"`
48629
48630	// Specifies the order for results. If True, the results are returned in ascending
48631	// order, based on the creation date.
48632	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
48633
48634	// The ID of the CA certificate. This operation will list all registered device
48635	// certificate that were signed by this CA certificate.
48636	//
48637	// CaCertificateId is a required field
48638	CaCertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
48639
48640	// The marker for the next set of results.
48641	Marker *string `location:"querystring" locationName:"marker" type:"string"`
48642
48643	// The result page size.
48644	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
48645}
48646
48647// String returns the string representation.
48648//
48649// API parameter values that are decorated as "sensitive" in the API will not
48650// be included in the string output. The member name will be present, but the
48651// value will be replaced with "sensitive".
48652func (s ListCertificatesByCAInput) String() string {
48653	return awsutil.Prettify(s)
48654}
48655
48656// GoString returns the string representation.
48657//
48658// API parameter values that are decorated as "sensitive" in the API will not
48659// be included in the string output. The member name will be present, but the
48660// value will be replaced with "sensitive".
48661func (s ListCertificatesByCAInput) GoString() string {
48662	return s.String()
48663}
48664
48665// Validate inspects the fields of the type to determine if they are valid.
48666func (s *ListCertificatesByCAInput) Validate() error {
48667	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesByCAInput"}
48668	if s.CaCertificateId == nil {
48669		invalidParams.Add(request.NewErrParamRequired("CaCertificateId"))
48670	}
48671	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
48672		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
48673	}
48674	if s.PageSize != nil && *s.PageSize < 1 {
48675		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
48676	}
48677
48678	if invalidParams.Len() > 0 {
48679		return invalidParams
48680	}
48681	return nil
48682}
48683
48684// SetAscendingOrder sets the AscendingOrder field's value.
48685func (s *ListCertificatesByCAInput) SetAscendingOrder(v bool) *ListCertificatesByCAInput {
48686	s.AscendingOrder = &v
48687	return s
48688}
48689
48690// SetCaCertificateId sets the CaCertificateId field's value.
48691func (s *ListCertificatesByCAInput) SetCaCertificateId(v string) *ListCertificatesByCAInput {
48692	s.CaCertificateId = &v
48693	return s
48694}
48695
48696// SetMarker sets the Marker field's value.
48697func (s *ListCertificatesByCAInput) SetMarker(v string) *ListCertificatesByCAInput {
48698	s.Marker = &v
48699	return s
48700}
48701
48702// SetPageSize sets the PageSize field's value.
48703func (s *ListCertificatesByCAInput) SetPageSize(v int64) *ListCertificatesByCAInput {
48704	s.PageSize = &v
48705	return s
48706}
48707
48708// The output of the ListCertificatesByCA operation.
48709type ListCertificatesByCAOutput struct {
48710	_ struct{} `type:"structure"`
48711
48712	// The device certificates signed by the specified CA certificate.
48713	Certificates []*Certificate `locationName:"certificates" type:"list"`
48714
48715	// The marker for the next set of results, or null if there are no additional
48716	// results.
48717	NextMarker *string `locationName:"nextMarker" type:"string"`
48718}
48719
48720// String returns the string representation.
48721//
48722// API parameter values that are decorated as "sensitive" in the API will not
48723// be included in the string output. The member name will be present, but the
48724// value will be replaced with "sensitive".
48725func (s ListCertificatesByCAOutput) String() string {
48726	return awsutil.Prettify(s)
48727}
48728
48729// GoString returns the string representation.
48730//
48731// API parameter values that are decorated as "sensitive" in the API will not
48732// be included in the string output. The member name will be present, but the
48733// value will be replaced with "sensitive".
48734func (s ListCertificatesByCAOutput) GoString() string {
48735	return s.String()
48736}
48737
48738// SetCertificates sets the Certificates field's value.
48739func (s *ListCertificatesByCAOutput) SetCertificates(v []*Certificate) *ListCertificatesByCAOutput {
48740	s.Certificates = v
48741	return s
48742}
48743
48744// SetNextMarker sets the NextMarker field's value.
48745func (s *ListCertificatesByCAOutput) SetNextMarker(v string) *ListCertificatesByCAOutput {
48746	s.NextMarker = &v
48747	return s
48748}
48749
48750// The input for the ListCertificates operation.
48751type ListCertificatesInput struct {
48752	_ struct{} `type:"structure" nopayload:"true"`
48753
48754	// Specifies the order for results. If True, the results are returned in ascending
48755	// order, based on the creation date.
48756	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
48757
48758	// The marker for the next set of results.
48759	Marker *string `location:"querystring" locationName:"marker" type:"string"`
48760
48761	// The result page size.
48762	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
48763}
48764
48765// String returns the string representation.
48766//
48767// API parameter values that are decorated as "sensitive" in the API will not
48768// be included in the string output. The member name will be present, but the
48769// value will be replaced with "sensitive".
48770func (s ListCertificatesInput) String() string {
48771	return awsutil.Prettify(s)
48772}
48773
48774// GoString returns the string representation.
48775//
48776// API parameter values that are decorated as "sensitive" in the API will not
48777// be included in the string output. The member name will be present, but the
48778// value will be replaced with "sensitive".
48779func (s ListCertificatesInput) GoString() string {
48780	return s.String()
48781}
48782
48783// Validate inspects the fields of the type to determine if they are valid.
48784func (s *ListCertificatesInput) Validate() error {
48785	invalidParams := request.ErrInvalidParams{Context: "ListCertificatesInput"}
48786	if s.PageSize != nil && *s.PageSize < 1 {
48787		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
48788	}
48789
48790	if invalidParams.Len() > 0 {
48791		return invalidParams
48792	}
48793	return nil
48794}
48795
48796// SetAscendingOrder sets the AscendingOrder field's value.
48797func (s *ListCertificatesInput) SetAscendingOrder(v bool) *ListCertificatesInput {
48798	s.AscendingOrder = &v
48799	return s
48800}
48801
48802// SetMarker sets the Marker field's value.
48803func (s *ListCertificatesInput) SetMarker(v string) *ListCertificatesInput {
48804	s.Marker = &v
48805	return s
48806}
48807
48808// SetPageSize sets the PageSize field's value.
48809func (s *ListCertificatesInput) SetPageSize(v int64) *ListCertificatesInput {
48810	s.PageSize = &v
48811	return s
48812}
48813
48814// The output of the ListCertificates operation.
48815type ListCertificatesOutput struct {
48816	_ struct{} `type:"structure"`
48817
48818	// The descriptions of the certificates.
48819	Certificates []*Certificate `locationName:"certificates" type:"list"`
48820
48821	// The marker for the next set of results, or null if there are no additional
48822	// results.
48823	NextMarker *string `locationName:"nextMarker" type:"string"`
48824}
48825
48826// String returns the string representation.
48827//
48828// API parameter values that are decorated as "sensitive" in the API will not
48829// be included in the string output. The member name will be present, but the
48830// value will be replaced with "sensitive".
48831func (s ListCertificatesOutput) String() string {
48832	return awsutil.Prettify(s)
48833}
48834
48835// GoString returns the string representation.
48836//
48837// API parameter values that are decorated as "sensitive" in the API will not
48838// be included in the string output. The member name will be present, but the
48839// value will be replaced with "sensitive".
48840func (s ListCertificatesOutput) GoString() string {
48841	return s.String()
48842}
48843
48844// SetCertificates sets the Certificates field's value.
48845func (s *ListCertificatesOutput) SetCertificates(v []*Certificate) *ListCertificatesOutput {
48846	s.Certificates = v
48847	return s
48848}
48849
48850// SetNextMarker sets the NextMarker field's value.
48851func (s *ListCertificatesOutput) SetNextMarker(v string) *ListCertificatesOutput {
48852	s.NextMarker = &v
48853	return s
48854}
48855
48856type ListCustomMetricsInput struct {
48857	_ struct{} `type:"structure" nopayload:"true"`
48858
48859	// The maximum number of results to return at one time. The default is 25.
48860	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
48861
48862	// The token for the next set of results.
48863	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
48864}
48865
48866// String returns the string representation.
48867//
48868// API parameter values that are decorated as "sensitive" in the API will not
48869// be included in the string output. The member name will be present, but the
48870// value will be replaced with "sensitive".
48871func (s ListCustomMetricsInput) String() string {
48872	return awsutil.Prettify(s)
48873}
48874
48875// GoString returns the string representation.
48876//
48877// API parameter values that are decorated as "sensitive" in the API will not
48878// be included in the string output. The member name will be present, but the
48879// value will be replaced with "sensitive".
48880func (s ListCustomMetricsInput) GoString() string {
48881	return s.String()
48882}
48883
48884// Validate inspects the fields of the type to determine if they are valid.
48885func (s *ListCustomMetricsInput) Validate() error {
48886	invalidParams := request.ErrInvalidParams{Context: "ListCustomMetricsInput"}
48887	if s.MaxResults != nil && *s.MaxResults < 1 {
48888		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
48889	}
48890
48891	if invalidParams.Len() > 0 {
48892		return invalidParams
48893	}
48894	return nil
48895}
48896
48897// SetMaxResults sets the MaxResults field's value.
48898func (s *ListCustomMetricsInput) SetMaxResults(v int64) *ListCustomMetricsInput {
48899	s.MaxResults = &v
48900	return s
48901}
48902
48903// SetNextToken sets the NextToken field's value.
48904func (s *ListCustomMetricsInput) SetNextToken(v string) *ListCustomMetricsInput {
48905	s.NextToken = &v
48906	return s
48907}
48908
48909type ListCustomMetricsOutput struct {
48910	_ struct{} `type:"structure"`
48911
48912	// The name of the custom metric.
48913	MetricNames []*string `locationName:"metricNames" type:"list"`
48914
48915	// A token that can be used to retrieve the next set of results, or null if
48916	// there are no additional results.
48917	NextToken *string `locationName:"nextToken" type:"string"`
48918}
48919
48920// String returns the string representation.
48921//
48922// API parameter values that are decorated as "sensitive" in the API will not
48923// be included in the string output. The member name will be present, but the
48924// value will be replaced with "sensitive".
48925func (s ListCustomMetricsOutput) String() string {
48926	return awsutil.Prettify(s)
48927}
48928
48929// GoString returns the string representation.
48930//
48931// API parameter values that are decorated as "sensitive" in the API will not
48932// be included in the string output. The member name will be present, but the
48933// value will be replaced with "sensitive".
48934func (s ListCustomMetricsOutput) GoString() string {
48935	return s.String()
48936}
48937
48938// SetMetricNames sets the MetricNames field's value.
48939func (s *ListCustomMetricsOutput) SetMetricNames(v []*string) *ListCustomMetricsOutput {
48940	s.MetricNames = v
48941	return s
48942}
48943
48944// SetNextToken sets the NextToken field's value.
48945func (s *ListCustomMetricsOutput) SetNextToken(v string) *ListCustomMetricsOutput {
48946	s.NextToken = &v
48947	return s
48948}
48949
48950type ListDetectMitigationActionsExecutionsInput struct {
48951	_ struct{} `type:"structure" nopayload:"true"`
48952
48953	// The end of the time period for which ML Detect mitigation actions executions
48954	// are returned.
48955	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp"`
48956
48957	// The maximum number of results to return at one time. The default is 25.
48958	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
48959
48960	// The token for the next set of results.
48961	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
48962
48963	// A filter to limit results to those found after the specified time. You must
48964	// specify either the startTime and endTime or the taskId, but not both.
48965	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp"`
48966
48967	// The unique identifier of the task.
48968	TaskId *string `location:"querystring" locationName:"taskId" min:"1" type:"string"`
48969
48970	// The name of the thing whose mitigation actions are listed.
48971	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
48972
48973	// The unique identifier of the violation.
48974	ViolationId *string `location:"querystring" locationName:"violationId" min:"1" type:"string"`
48975}
48976
48977// String returns the string representation.
48978//
48979// API parameter values that are decorated as "sensitive" in the API will not
48980// be included in the string output. The member name will be present, but the
48981// value will be replaced with "sensitive".
48982func (s ListDetectMitigationActionsExecutionsInput) String() string {
48983	return awsutil.Prettify(s)
48984}
48985
48986// GoString returns the string representation.
48987//
48988// API parameter values that are decorated as "sensitive" in the API will not
48989// be included in the string output. The member name will be present, but the
48990// value will be replaced with "sensitive".
48991func (s ListDetectMitigationActionsExecutionsInput) GoString() string {
48992	return s.String()
48993}
48994
48995// Validate inspects the fields of the type to determine if they are valid.
48996func (s *ListDetectMitigationActionsExecutionsInput) Validate() error {
48997	invalidParams := request.ErrInvalidParams{Context: "ListDetectMitigationActionsExecutionsInput"}
48998	if s.MaxResults != nil && *s.MaxResults < 1 {
48999		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49000	}
49001	if s.TaskId != nil && len(*s.TaskId) < 1 {
49002		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
49003	}
49004	if s.ThingName != nil && len(*s.ThingName) < 1 {
49005		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
49006	}
49007	if s.ViolationId != nil && len(*s.ViolationId) < 1 {
49008		invalidParams.Add(request.NewErrParamMinLen("ViolationId", 1))
49009	}
49010
49011	if invalidParams.Len() > 0 {
49012		return invalidParams
49013	}
49014	return nil
49015}
49016
49017// SetEndTime sets the EndTime field's value.
49018func (s *ListDetectMitigationActionsExecutionsInput) SetEndTime(v time.Time) *ListDetectMitigationActionsExecutionsInput {
49019	s.EndTime = &v
49020	return s
49021}
49022
49023// SetMaxResults sets the MaxResults field's value.
49024func (s *ListDetectMitigationActionsExecutionsInput) SetMaxResults(v int64) *ListDetectMitigationActionsExecutionsInput {
49025	s.MaxResults = &v
49026	return s
49027}
49028
49029// SetNextToken sets the NextToken field's value.
49030func (s *ListDetectMitigationActionsExecutionsInput) SetNextToken(v string) *ListDetectMitigationActionsExecutionsInput {
49031	s.NextToken = &v
49032	return s
49033}
49034
49035// SetStartTime sets the StartTime field's value.
49036func (s *ListDetectMitigationActionsExecutionsInput) SetStartTime(v time.Time) *ListDetectMitigationActionsExecutionsInput {
49037	s.StartTime = &v
49038	return s
49039}
49040
49041// SetTaskId sets the TaskId field's value.
49042func (s *ListDetectMitigationActionsExecutionsInput) SetTaskId(v string) *ListDetectMitigationActionsExecutionsInput {
49043	s.TaskId = &v
49044	return s
49045}
49046
49047// SetThingName sets the ThingName field's value.
49048func (s *ListDetectMitigationActionsExecutionsInput) SetThingName(v string) *ListDetectMitigationActionsExecutionsInput {
49049	s.ThingName = &v
49050	return s
49051}
49052
49053// SetViolationId sets the ViolationId field's value.
49054func (s *ListDetectMitigationActionsExecutionsInput) SetViolationId(v string) *ListDetectMitigationActionsExecutionsInput {
49055	s.ViolationId = &v
49056	return s
49057}
49058
49059type ListDetectMitigationActionsExecutionsOutput struct {
49060	_ struct{} `type:"structure"`
49061
49062	// List of actions executions.
49063	ActionsExecutions []*DetectMitigationActionExecution `locationName:"actionsExecutions" type:"list"`
49064
49065	// A token that can be used to retrieve the next set of results, or null if
49066	// there are no additional results.
49067	NextToken *string `locationName:"nextToken" type:"string"`
49068}
49069
49070// String returns the string representation.
49071//
49072// API parameter values that are decorated as "sensitive" in the API will not
49073// be included in the string output. The member name will be present, but the
49074// value will be replaced with "sensitive".
49075func (s ListDetectMitigationActionsExecutionsOutput) String() string {
49076	return awsutil.Prettify(s)
49077}
49078
49079// GoString returns the string representation.
49080//
49081// API parameter values that are decorated as "sensitive" in the API will not
49082// be included in the string output. The member name will be present, but the
49083// value will be replaced with "sensitive".
49084func (s ListDetectMitigationActionsExecutionsOutput) GoString() string {
49085	return s.String()
49086}
49087
49088// SetActionsExecutions sets the ActionsExecutions field's value.
49089func (s *ListDetectMitigationActionsExecutionsOutput) SetActionsExecutions(v []*DetectMitigationActionExecution) *ListDetectMitigationActionsExecutionsOutput {
49090	s.ActionsExecutions = v
49091	return s
49092}
49093
49094// SetNextToken sets the NextToken field's value.
49095func (s *ListDetectMitigationActionsExecutionsOutput) SetNextToken(v string) *ListDetectMitigationActionsExecutionsOutput {
49096	s.NextToken = &v
49097	return s
49098}
49099
49100type ListDetectMitigationActionsTasksInput struct {
49101	_ struct{} `type:"structure" nopayload:"true"`
49102
49103	// The end of the time period for which ML Detect mitigation actions tasks are
49104	// returned.
49105	//
49106	// EndTime is a required field
49107	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
49108
49109	// The maximum number of results to return at one time. The default is 25.
49110	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
49111
49112	// The token for the next set of results.
49113	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
49114
49115	// A filter to limit results to those found after the specified time. You must
49116	// specify either the startTime and endTime or the taskId, but not both.
49117	//
49118	// StartTime is a required field
49119	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
49120}
49121
49122// String returns the string representation.
49123//
49124// API parameter values that are decorated as "sensitive" in the API will not
49125// be included in the string output. The member name will be present, but the
49126// value will be replaced with "sensitive".
49127func (s ListDetectMitigationActionsTasksInput) String() string {
49128	return awsutil.Prettify(s)
49129}
49130
49131// GoString returns the string representation.
49132//
49133// API parameter values that are decorated as "sensitive" in the API will not
49134// be included in the string output. The member name will be present, but the
49135// value will be replaced with "sensitive".
49136func (s ListDetectMitigationActionsTasksInput) GoString() string {
49137	return s.String()
49138}
49139
49140// Validate inspects the fields of the type to determine if they are valid.
49141func (s *ListDetectMitigationActionsTasksInput) Validate() error {
49142	invalidParams := request.ErrInvalidParams{Context: "ListDetectMitigationActionsTasksInput"}
49143	if s.EndTime == nil {
49144		invalidParams.Add(request.NewErrParamRequired("EndTime"))
49145	}
49146	if s.MaxResults != nil && *s.MaxResults < 1 {
49147		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49148	}
49149	if s.StartTime == nil {
49150		invalidParams.Add(request.NewErrParamRequired("StartTime"))
49151	}
49152
49153	if invalidParams.Len() > 0 {
49154		return invalidParams
49155	}
49156	return nil
49157}
49158
49159// SetEndTime sets the EndTime field's value.
49160func (s *ListDetectMitigationActionsTasksInput) SetEndTime(v time.Time) *ListDetectMitigationActionsTasksInput {
49161	s.EndTime = &v
49162	return s
49163}
49164
49165// SetMaxResults sets the MaxResults field's value.
49166func (s *ListDetectMitigationActionsTasksInput) SetMaxResults(v int64) *ListDetectMitigationActionsTasksInput {
49167	s.MaxResults = &v
49168	return s
49169}
49170
49171// SetNextToken sets the NextToken field's value.
49172func (s *ListDetectMitigationActionsTasksInput) SetNextToken(v string) *ListDetectMitigationActionsTasksInput {
49173	s.NextToken = &v
49174	return s
49175}
49176
49177// SetStartTime sets the StartTime field's value.
49178func (s *ListDetectMitigationActionsTasksInput) SetStartTime(v time.Time) *ListDetectMitigationActionsTasksInput {
49179	s.StartTime = &v
49180	return s
49181}
49182
49183type ListDetectMitigationActionsTasksOutput struct {
49184	_ struct{} `type:"structure"`
49185
49186	// A token that can be used to retrieve the next set of results, or null if
49187	// there are no additional results.
49188	NextToken *string `locationName:"nextToken" type:"string"`
49189
49190	// The collection of ML Detect mitigation tasks that matched the filter criteria.
49191	Tasks []*DetectMitigationActionsTaskSummary `locationName:"tasks" type:"list"`
49192}
49193
49194// String returns the string representation.
49195//
49196// API parameter values that are decorated as "sensitive" in the API will not
49197// be included in the string output. The member name will be present, but the
49198// value will be replaced with "sensitive".
49199func (s ListDetectMitigationActionsTasksOutput) String() string {
49200	return awsutil.Prettify(s)
49201}
49202
49203// GoString returns the string representation.
49204//
49205// API parameter values that are decorated as "sensitive" in the API will not
49206// be included in the string output. The member name will be present, but the
49207// value will be replaced with "sensitive".
49208func (s ListDetectMitigationActionsTasksOutput) GoString() string {
49209	return s.String()
49210}
49211
49212// SetNextToken sets the NextToken field's value.
49213func (s *ListDetectMitigationActionsTasksOutput) SetNextToken(v string) *ListDetectMitigationActionsTasksOutput {
49214	s.NextToken = &v
49215	return s
49216}
49217
49218// SetTasks sets the Tasks field's value.
49219func (s *ListDetectMitigationActionsTasksOutput) SetTasks(v []*DetectMitigationActionsTaskSummary) *ListDetectMitigationActionsTasksOutput {
49220	s.Tasks = v
49221	return s
49222}
49223
49224type ListDimensionsInput struct {
49225	_ struct{} `type:"structure" nopayload:"true"`
49226
49227	// The maximum number of results to retrieve at one time.
49228	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
49229
49230	// The token for the next set of results.
49231	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
49232}
49233
49234// String returns the string representation.
49235//
49236// API parameter values that are decorated as "sensitive" in the API will not
49237// be included in the string output. The member name will be present, but the
49238// value will be replaced with "sensitive".
49239func (s ListDimensionsInput) String() string {
49240	return awsutil.Prettify(s)
49241}
49242
49243// GoString returns the string representation.
49244//
49245// API parameter values that are decorated as "sensitive" in the API will not
49246// be included in the string output. The member name will be present, but the
49247// value will be replaced with "sensitive".
49248func (s ListDimensionsInput) GoString() string {
49249	return s.String()
49250}
49251
49252// Validate inspects the fields of the type to determine if they are valid.
49253func (s *ListDimensionsInput) Validate() error {
49254	invalidParams := request.ErrInvalidParams{Context: "ListDimensionsInput"}
49255	if s.MaxResults != nil && *s.MaxResults < 1 {
49256		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49257	}
49258
49259	if invalidParams.Len() > 0 {
49260		return invalidParams
49261	}
49262	return nil
49263}
49264
49265// SetMaxResults sets the MaxResults field's value.
49266func (s *ListDimensionsInput) SetMaxResults(v int64) *ListDimensionsInput {
49267	s.MaxResults = &v
49268	return s
49269}
49270
49271// SetNextToken sets the NextToken field's value.
49272func (s *ListDimensionsInput) SetNextToken(v string) *ListDimensionsInput {
49273	s.NextToken = &v
49274	return s
49275}
49276
49277type ListDimensionsOutput struct {
49278	_ struct{} `type:"structure"`
49279
49280	// A list of the names of the defined dimensions. Use DescribeDimension to get
49281	// details for a dimension.
49282	DimensionNames []*string `locationName:"dimensionNames" type:"list"`
49283
49284	// A token that can be used to retrieve the next set of results, or null if
49285	// there are no additional results.
49286	NextToken *string `locationName:"nextToken" type:"string"`
49287}
49288
49289// String returns the string representation.
49290//
49291// API parameter values that are decorated as "sensitive" in the API will not
49292// be included in the string output. The member name will be present, but the
49293// value will be replaced with "sensitive".
49294func (s ListDimensionsOutput) String() string {
49295	return awsutil.Prettify(s)
49296}
49297
49298// GoString returns the string representation.
49299//
49300// API parameter values that are decorated as "sensitive" in the API will not
49301// be included in the string output. The member name will be present, but the
49302// value will be replaced with "sensitive".
49303func (s ListDimensionsOutput) GoString() string {
49304	return s.String()
49305}
49306
49307// SetDimensionNames sets the DimensionNames field's value.
49308func (s *ListDimensionsOutput) SetDimensionNames(v []*string) *ListDimensionsOutput {
49309	s.DimensionNames = v
49310	return s
49311}
49312
49313// SetNextToken sets the NextToken field's value.
49314func (s *ListDimensionsOutput) SetNextToken(v string) *ListDimensionsOutput {
49315	s.NextToken = &v
49316	return s
49317}
49318
49319type ListDomainConfigurationsInput struct {
49320	_ struct{} `type:"structure" nopayload:"true"`
49321
49322	// The marker for the next set of results.
49323	Marker *string `location:"querystring" locationName:"marker" type:"string"`
49324
49325	// The result page size.
49326	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
49327
49328	// The type of service delivered by the endpoint.
49329	ServiceType *string `location:"querystring" locationName:"serviceType" type:"string" enum:"ServiceType"`
49330}
49331
49332// String returns the string representation.
49333//
49334// API parameter values that are decorated as "sensitive" in the API will not
49335// be included in the string output. The member name will be present, but the
49336// value will be replaced with "sensitive".
49337func (s ListDomainConfigurationsInput) String() string {
49338	return awsutil.Prettify(s)
49339}
49340
49341// GoString returns the string representation.
49342//
49343// API parameter values that are decorated as "sensitive" in the API will not
49344// be included in the string output. The member name will be present, but the
49345// value will be replaced with "sensitive".
49346func (s ListDomainConfigurationsInput) GoString() string {
49347	return s.String()
49348}
49349
49350// Validate inspects the fields of the type to determine if they are valid.
49351func (s *ListDomainConfigurationsInput) Validate() error {
49352	invalidParams := request.ErrInvalidParams{Context: "ListDomainConfigurationsInput"}
49353	if s.PageSize != nil && *s.PageSize < 1 {
49354		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
49355	}
49356
49357	if invalidParams.Len() > 0 {
49358		return invalidParams
49359	}
49360	return nil
49361}
49362
49363// SetMarker sets the Marker field's value.
49364func (s *ListDomainConfigurationsInput) SetMarker(v string) *ListDomainConfigurationsInput {
49365	s.Marker = &v
49366	return s
49367}
49368
49369// SetPageSize sets the PageSize field's value.
49370func (s *ListDomainConfigurationsInput) SetPageSize(v int64) *ListDomainConfigurationsInput {
49371	s.PageSize = &v
49372	return s
49373}
49374
49375// SetServiceType sets the ServiceType field's value.
49376func (s *ListDomainConfigurationsInput) SetServiceType(v string) *ListDomainConfigurationsInput {
49377	s.ServiceType = &v
49378	return s
49379}
49380
49381type ListDomainConfigurationsOutput struct {
49382	_ struct{} `type:"structure"`
49383
49384	// A list of objects that contain summary information about the user's domain
49385	// configurations.
49386	DomainConfigurations []*DomainConfigurationSummary `locationName:"domainConfigurations" type:"list"`
49387
49388	// The marker for the next set of results.
49389	NextMarker *string `locationName:"nextMarker" type:"string"`
49390}
49391
49392// String returns the string representation.
49393//
49394// API parameter values that are decorated as "sensitive" in the API will not
49395// be included in the string output. The member name will be present, but the
49396// value will be replaced with "sensitive".
49397func (s ListDomainConfigurationsOutput) String() string {
49398	return awsutil.Prettify(s)
49399}
49400
49401// GoString returns the string representation.
49402//
49403// API parameter values that are decorated as "sensitive" in the API will not
49404// be included in the string output. The member name will be present, but the
49405// value will be replaced with "sensitive".
49406func (s ListDomainConfigurationsOutput) GoString() string {
49407	return s.String()
49408}
49409
49410// SetDomainConfigurations sets the DomainConfigurations field's value.
49411func (s *ListDomainConfigurationsOutput) SetDomainConfigurations(v []*DomainConfigurationSummary) *ListDomainConfigurationsOutput {
49412	s.DomainConfigurations = v
49413	return s
49414}
49415
49416// SetNextMarker sets the NextMarker field's value.
49417func (s *ListDomainConfigurationsOutput) SetNextMarker(v string) *ListDomainConfigurationsOutput {
49418	s.NextMarker = &v
49419	return s
49420}
49421
49422type ListFleetMetricsInput struct {
49423	_ struct{} `type:"structure" nopayload:"true"`
49424
49425	// The maximum number of results to return in this operation.
49426	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
49427
49428	// To retrieve the next set of results, the nextToken value from a previous
49429	// response; otherwise null to receive the first set of results.
49430	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
49431}
49432
49433// String returns the string representation.
49434//
49435// API parameter values that are decorated as "sensitive" in the API will not
49436// be included in the string output. The member name will be present, but the
49437// value will be replaced with "sensitive".
49438func (s ListFleetMetricsInput) String() string {
49439	return awsutil.Prettify(s)
49440}
49441
49442// GoString returns the string representation.
49443//
49444// API parameter values that are decorated as "sensitive" in the API will not
49445// be included in the string output. The member name will be present, but the
49446// value will be replaced with "sensitive".
49447func (s ListFleetMetricsInput) GoString() string {
49448	return s.String()
49449}
49450
49451// Validate inspects the fields of the type to determine if they are valid.
49452func (s *ListFleetMetricsInput) Validate() error {
49453	invalidParams := request.ErrInvalidParams{Context: "ListFleetMetricsInput"}
49454	if s.MaxResults != nil && *s.MaxResults < 1 {
49455		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49456	}
49457
49458	if invalidParams.Len() > 0 {
49459		return invalidParams
49460	}
49461	return nil
49462}
49463
49464// SetMaxResults sets the MaxResults field's value.
49465func (s *ListFleetMetricsInput) SetMaxResults(v int64) *ListFleetMetricsInput {
49466	s.MaxResults = &v
49467	return s
49468}
49469
49470// SetNextToken sets the NextToken field's value.
49471func (s *ListFleetMetricsInput) SetNextToken(v string) *ListFleetMetricsInput {
49472	s.NextToken = &v
49473	return s
49474}
49475
49476type ListFleetMetricsOutput struct {
49477	_ struct{} `type:"structure"`
49478
49479	// The list of fleet metrics objects.
49480	FleetMetrics []*FleetMetricNameAndArn `locationName:"fleetMetrics" type:"list"`
49481
49482	// The token for the next set of results. Will not be returned if the operation
49483	// has returned all results.
49484	NextToken *string `locationName:"nextToken" type:"string"`
49485}
49486
49487// String returns the string representation.
49488//
49489// API parameter values that are decorated as "sensitive" in the API will not
49490// be included in the string output. The member name will be present, but the
49491// value will be replaced with "sensitive".
49492func (s ListFleetMetricsOutput) String() string {
49493	return awsutil.Prettify(s)
49494}
49495
49496// GoString returns the string representation.
49497//
49498// API parameter values that are decorated as "sensitive" in the API will not
49499// be included in the string output. The member name will be present, but the
49500// value will be replaced with "sensitive".
49501func (s ListFleetMetricsOutput) GoString() string {
49502	return s.String()
49503}
49504
49505// SetFleetMetrics sets the FleetMetrics field's value.
49506func (s *ListFleetMetricsOutput) SetFleetMetrics(v []*FleetMetricNameAndArn) *ListFleetMetricsOutput {
49507	s.FleetMetrics = v
49508	return s
49509}
49510
49511// SetNextToken sets the NextToken field's value.
49512func (s *ListFleetMetricsOutput) SetNextToken(v string) *ListFleetMetricsOutput {
49513	s.NextToken = &v
49514	return s
49515}
49516
49517type ListIndicesInput struct {
49518	_ struct{} `type:"structure" nopayload:"true"`
49519
49520	// The maximum number of results to return at one time.
49521	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
49522
49523	// The token used to get the next set of results, or null if there are no additional
49524	// results.
49525	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
49526}
49527
49528// String returns the string representation.
49529//
49530// API parameter values that are decorated as "sensitive" in the API will not
49531// be included in the string output. The member name will be present, but the
49532// value will be replaced with "sensitive".
49533func (s ListIndicesInput) String() string {
49534	return awsutil.Prettify(s)
49535}
49536
49537// GoString returns the string representation.
49538//
49539// API parameter values that are decorated as "sensitive" in the API will not
49540// be included in the string output. The member name will be present, but the
49541// value will be replaced with "sensitive".
49542func (s ListIndicesInput) GoString() string {
49543	return s.String()
49544}
49545
49546// Validate inspects the fields of the type to determine if they are valid.
49547func (s *ListIndicesInput) Validate() error {
49548	invalidParams := request.ErrInvalidParams{Context: "ListIndicesInput"}
49549	if s.MaxResults != nil && *s.MaxResults < 1 {
49550		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49551	}
49552
49553	if invalidParams.Len() > 0 {
49554		return invalidParams
49555	}
49556	return nil
49557}
49558
49559// SetMaxResults sets the MaxResults field's value.
49560func (s *ListIndicesInput) SetMaxResults(v int64) *ListIndicesInput {
49561	s.MaxResults = &v
49562	return s
49563}
49564
49565// SetNextToken sets the NextToken field's value.
49566func (s *ListIndicesInput) SetNextToken(v string) *ListIndicesInput {
49567	s.NextToken = &v
49568	return s
49569}
49570
49571type ListIndicesOutput struct {
49572	_ struct{} `type:"structure"`
49573
49574	// The index names.
49575	IndexNames []*string `locationName:"indexNames" type:"list"`
49576
49577	// The token used to get the next set of results, or null if there are no additional
49578	// results.
49579	NextToken *string `locationName:"nextToken" type:"string"`
49580}
49581
49582// String returns the string representation.
49583//
49584// API parameter values that are decorated as "sensitive" in the API will not
49585// be included in the string output. The member name will be present, but the
49586// value will be replaced with "sensitive".
49587func (s ListIndicesOutput) String() string {
49588	return awsutil.Prettify(s)
49589}
49590
49591// GoString returns the string representation.
49592//
49593// API parameter values that are decorated as "sensitive" in the API will not
49594// be included in the string output. The member name will be present, but the
49595// value will be replaced with "sensitive".
49596func (s ListIndicesOutput) GoString() string {
49597	return s.String()
49598}
49599
49600// SetIndexNames sets the IndexNames field's value.
49601func (s *ListIndicesOutput) SetIndexNames(v []*string) *ListIndicesOutput {
49602	s.IndexNames = v
49603	return s
49604}
49605
49606// SetNextToken sets the NextToken field's value.
49607func (s *ListIndicesOutput) SetNextToken(v string) *ListIndicesOutput {
49608	s.NextToken = &v
49609	return s
49610}
49611
49612type ListJobExecutionsForJobInput struct {
49613	_ struct{} `type:"structure" nopayload:"true"`
49614
49615	// The unique identifier you assigned to this job when it was created.
49616	//
49617	// JobId is a required field
49618	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
49619
49620	// The maximum number of results to be returned per request.
49621	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
49622
49623	// The token to retrieve the next set of results.
49624	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
49625
49626	// The status of the job.
49627	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
49628}
49629
49630// String returns the string representation.
49631//
49632// API parameter values that are decorated as "sensitive" in the API will not
49633// be included in the string output. The member name will be present, but the
49634// value will be replaced with "sensitive".
49635func (s ListJobExecutionsForJobInput) String() string {
49636	return awsutil.Prettify(s)
49637}
49638
49639// GoString returns the string representation.
49640//
49641// API parameter values that are decorated as "sensitive" in the API will not
49642// be included in the string output. The member name will be present, but the
49643// value will be replaced with "sensitive".
49644func (s ListJobExecutionsForJobInput) GoString() string {
49645	return s.String()
49646}
49647
49648// Validate inspects the fields of the type to determine if they are valid.
49649func (s *ListJobExecutionsForJobInput) Validate() error {
49650	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForJobInput"}
49651	if s.JobId == nil {
49652		invalidParams.Add(request.NewErrParamRequired("JobId"))
49653	}
49654	if s.JobId != nil && len(*s.JobId) < 1 {
49655		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
49656	}
49657	if s.MaxResults != nil && *s.MaxResults < 1 {
49658		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49659	}
49660
49661	if invalidParams.Len() > 0 {
49662		return invalidParams
49663	}
49664	return nil
49665}
49666
49667// SetJobId sets the JobId field's value.
49668func (s *ListJobExecutionsForJobInput) SetJobId(v string) *ListJobExecutionsForJobInput {
49669	s.JobId = &v
49670	return s
49671}
49672
49673// SetMaxResults sets the MaxResults field's value.
49674func (s *ListJobExecutionsForJobInput) SetMaxResults(v int64) *ListJobExecutionsForJobInput {
49675	s.MaxResults = &v
49676	return s
49677}
49678
49679// SetNextToken sets the NextToken field's value.
49680func (s *ListJobExecutionsForJobInput) SetNextToken(v string) *ListJobExecutionsForJobInput {
49681	s.NextToken = &v
49682	return s
49683}
49684
49685// SetStatus sets the Status field's value.
49686func (s *ListJobExecutionsForJobInput) SetStatus(v string) *ListJobExecutionsForJobInput {
49687	s.Status = &v
49688	return s
49689}
49690
49691type ListJobExecutionsForJobOutput struct {
49692	_ struct{} `type:"structure"`
49693
49694	// A list of job execution summaries.
49695	ExecutionSummaries []*JobExecutionSummaryForJob `locationName:"executionSummaries" type:"list"`
49696
49697	// The token for the next set of results, or null if there are no additional
49698	// results.
49699	NextToken *string `locationName:"nextToken" type:"string"`
49700}
49701
49702// String returns the string representation.
49703//
49704// API parameter values that are decorated as "sensitive" in the API will not
49705// be included in the string output. The member name will be present, but the
49706// value will be replaced with "sensitive".
49707func (s ListJobExecutionsForJobOutput) String() string {
49708	return awsutil.Prettify(s)
49709}
49710
49711// GoString returns the string representation.
49712//
49713// API parameter values that are decorated as "sensitive" in the API will not
49714// be included in the string output. The member name will be present, but the
49715// value will be replaced with "sensitive".
49716func (s ListJobExecutionsForJobOutput) GoString() string {
49717	return s.String()
49718}
49719
49720// SetExecutionSummaries sets the ExecutionSummaries field's value.
49721func (s *ListJobExecutionsForJobOutput) SetExecutionSummaries(v []*JobExecutionSummaryForJob) *ListJobExecutionsForJobOutput {
49722	s.ExecutionSummaries = v
49723	return s
49724}
49725
49726// SetNextToken sets the NextToken field's value.
49727func (s *ListJobExecutionsForJobOutput) SetNextToken(v string) *ListJobExecutionsForJobOutput {
49728	s.NextToken = &v
49729	return s
49730}
49731
49732type ListJobExecutionsForThingInput struct {
49733	_ struct{} `type:"structure" nopayload:"true"`
49734
49735	// The maximum number of results to be returned per request.
49736	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
49737
49738	// The namespace used to indicate that a job is a customer-managed job.
49739	//
49740	// When you specify a value for this parameter, Amazon Web Services IoT Core
49741	// sends jobs notifications to MQTT topics that contain the value in the following
49742	// format.
49743	//
49744	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
49745	//
49746	// The namespaceId feature is in public preview.
49747	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
49748
49749	// The token to retrieve the next set of results.
49750	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
49751
49752	// An optional filter that lets you search for jobs that have the specified
49753	// status.
49754	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobExecutionStatus"`
49755
49756	// The thing name.
49757	//
49758	// ThingName is a required field
49759	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
49760}
49761
49762// String returns the string representation.
49763//
49764// API parameter values that are decorated as "sensitive" in the API will not
49765// be included in the string output. The member name will be present, but the
49766// value will be replaced with "sensitive".
49767func (s ListJobExecutionsForThingInput) String() string {
49768	return awsutil.Prettify(s)
49769}
49770
49771// GoString returns the string representation.
49772//
49773// API parameter values that are decorated as "sensitive" in the API will not
49774// be included in the string output. The member name will be present, but the
49775// value will be replaced with "sensitive".
49776func (s ListJobExecutionsForThingInput) GoString() string {
49777	return s.String()
49778}
49779
49780// Validate inspects the fields of the type to determine if they are valid.
49781func (s *ListJobExecutionsForThingInput) Validate() error {
49782	invalidParams := request.ErrInvalidParams{Context: "ListJobExecutionsForThingInput"}
49783	if s.MaxResults != nil && *s.MaxResults < 1 {
49784		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49785	}
49786	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
49787		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
49788	}
49789	if s.ThingName == nil {
49790		invalidParams.Add(request.NewErrParamRequired("ThingName"))
49791	}
49792	if s.ThingName != nil && len(*s.ThingName) < 1 {
49793		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
49794	}
49795
49796	if invalidParams.Len() > 0 {
49797		return invalidParams
49798	}
49799	return nil
49800}
49801
49802// SetMaxResults sets the MaxResults field's value.
49803func (s *ListJobExecutionsForThingInput) SetMaxResults(v int64) *ListJobExecutionsForThingInput {
49804	s.MaxResults = &v
49805	return s
49806}
49807
49808// SetNamespaceId sets the NamespaceId field's value.
49809func (s *ListJobExecutionsForThingInput) SetNamespaceId(v string) *ListJobExecutionsForThingInput {
49810	s.NamespaceId = &v
49811	return s
49812}
49813
49814// SetNextToken sets the NextToken field's value.
49815func (s *ListJobExecutionsForThingInput) SetNextToken(v string) *ListJobExecutionsForThingInput {
49816	s.NextToken = &v
49817	return s
49818}
49819
49820// SetStatus sets the Status field's value.
49821func (s *ListJobExecutionsForThingInput) SetStatus(v string) *ListJobExecutionsForThingInput {
49822	s.Status = &v
49823	return s
49824}
49825
49826// SetThingName sets the ThingName field's value.
49827func (s *ListJobExecutionsForThingInput) SetThingName(v string) *ListJobExecutionsForThingInput {
49828	s.ThingName = &v
49829	return s
49830}
49831
49832type ListJobExecutionsForThingOutput struct {
49833	_ struct{} `type:"structure"`
49834
49835	// A list of job execution summaries.
49836	ExecutionSummaries []*JobExecutionSummaryForThing `locationName:"executionSummaries" type:"list"`
49837
49838	// The token for the next set of results, or null if there are no additional
49839	// results.
49840	NextToken *string `locationName:"nextToken" type:"string"`
49841}
49842
49843// String returns the string representation.
49844//
49845// API parameter values that are decorated as "sensitive" in the API will not
49846// be included in the string output. The member name will be present, but the
49847// value will be replaced with "sensitive".
49848func (s ListJobExecutionsForThingOutput) String() string {
49849	return awsutil.Prettify(s)
49850}
49851
49852// GoString returns the string representation.
49853//
49854// API parameter values that are decorated as "sensitive" in the API will not
49855// be included in the string output. The member name will be present, but the
49856// value will be replaced with "sensitive".
49857func (s ListJobExecutionsForThingOutput) GoString() string {
49858	return s.String()
49859}
49860
49861// SetExecutionSummaries sets the ExecutionSummaries field's value.
49862func (s *ListJobExecutionsForThingOutput) SetExecutionSummaries(v []*JobExecutionSummaryForThing) *ListJobExecutionsForThingOutput {
49863	s.ExecutionSummaries = v
49864	return s
49865}
49866
49867// SetNextToken sets the NextToken field's value.
49868func (s *ListJobExecutionsForThingOutput) SetNextToken(v string) *ListJobExecutionsForThingOutput {
49869	s.NextToken = &v
49870	return s
49871}
49872
49873type ListJobTemplatesInput struct {
49874	_ struct{} `type:"structure" nopayload:"true"`
49875
49876	// The maximum number of results to return in the list.
49877	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
49878
49879	// The token to use to return the next set of results in the list.
49880	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
49881}
49882
49883// String returns the string representation.
49884//
49885// API parameter values that are decorated as "sensitive" in the API will not
49886// be included in the string output. The member name will be present, but the
49887// value will be replaced with "sensitive".
49888func (s ListJobTemplatesInput) String() string {
49889	return awsutil.Prettify(s)
49890}
49891
49892// GoString returns the string representation.
49893//
49894// API parameter values that are decorated as "sensitive" in the API will not
49895// be included in the string output. The member name will be present, but the
49896// value will be replaced with "sensitive".
49897func (s ListJobTemplatesInput) GoString() string {
49898	return s.String()
49899}
49900
49901// Validate inspects the fields of the type to determine if they are valid.
49902func (s *ListJobTemplatesInput) Validate() error {
49903	invalidParams := request.ErrInvalidParams{Context: "ListJobTemplatesInput"}
49904	if s.MaxResults != nil && *s.MaxResults < 1 {
49905		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
49906	}
49907
49908	if invalidParams.Len() > 0 {
49909		return invalidParams
49910	}
49911	return nil
49912}
49913
49914// SetMaxResults sets the MaxResults field's value.
49915func (s *ListJobTemplatesInput) SetMaxResults(v int64) *ListJobTemplatesInput {
49916	s.MaxResults = &v
49917	return s
49918}
49919
49920// SetNextToken sets the NextToken field's value.
49921func (s *ListJobTemplatesInput) SetNextToken(v string) *ListJobTemplatesInput {
49922	s.NextToken = &v
49923	return s
49924}
49925
49926type ListJobTemplatesOutput struct {
49927	_ struct{} `type:"structure"`
49928
49929	// A list of objects that contain information about the job templates.
49930	JobTemplates []*JobTemplateSummary `locationName:"jobTemplates" type:"list"`
49931
49932	// The token for the next set of results, or null if there are no additional
49933	// results.
49934	NextToken *string `locationName:"nextToken" type:"string"`
49935}
49936
49937// String returns the string representation.
49938//
49939// API parameter values that are decorated as "sensitive" in the API will not
49940// be included in the string output. The member name will be present, but the
49941// value will be replaced with "sensitive".
49942func (s ListJobTemplatesOutput) String() string {
49943	return awsutil.Prettify(s)
49944}
49945
49946// GoString returns the string representation.
49947//
49948// API parameter values that are decorated as "sensitive" in the API will not
49949// be included in the string output. The member name will be present, but the
49950// value will be replaced with "sensitive".
49951func (s ListJobTemplatesOutput) GoString() string {
49952	return s.String()
49953}
49954
49955// SetJobTemplates sets the JobTemplates field's value.
49956func (s *ListJobTemplatesOutput) SetJobTemplates(v []*JobTemplateSummary) *ListJobTemplatesOutput {
49957	s.JobTemplates = v
49958	return s
49959}
49960
49961// SetNextToken sets the NextToken field's value.
49962func (s *ListJobTemplatesOutput) SetNextToken(v string) *ListJobTemplatesOutput {
49963	s.NextToken = &v
49964	return s
49965}
49966
49967type ListJobsInput struct {
49968	_ struct{} `type:"structure" nopayload:"true"`
49969
49970	// The maximum number of results to return per request.
49971	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
49972
49973	// The namespace used to indicate that a job is a customer-managed job.
49974	//
49975	// When you specify a value for this parameter, Amazon Web Services IoT Core
49976	// sends jobs notifications to MQTT topics that contain the value in the following
49977	// format.
49978	//
49979	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
49980	//
49981	// The namespaceId feature is in public preview.
49982	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
49983
49984	// The token to retrieve the next set of results.
49985	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
49986
49987	// An optional filter that lets you search for jobs that have the specified
49988	// status.
49989	Status *string `location:"querystring" locationName:"status" type:"string" enum:"JobStatus"`
49990
49991	// Specifies whether the job will continue to run (CONTINUOUS), or will be complete
49992	// after all those things specified as targets have completed the job (SNAPSHOT).
49993	// If continuous, the job may also be run on a thing when a change is detected
49994	// in a target. For example, a job will run on a thing when the thing is added
49995	// to a target group, even after the job was completed by all things originally
49996	// in the group.
49997	TargetSelection *string `location:"querystring" locationName:"targetSelection" type:"string" enum:"TargetSelection"`
49998
49999	// A filter that limits the returned jobs to those for the specified group.
50000	ThingGroupId *string `location:"querystring" locationName:"thingGroupId" min:"1" type:"string"`
50001
50002	// A filter that limits the returned jobs to those for the specified group.
50003	ThingGroupName *string `location:"querystring" locationName:"thingGroupName" min:"1" type:"string"`
50004}
50005
50006// String returns the string representation.
50007//
50008// API parameter values that are decorated as "sensitive" in the API will not
50009// be included in the string output. The member name will be present, but the
50010// value will be replaced with "sensitive".
50011func (s ListJobsInput) String() string {
50012	return awsutil.Prettify(s)
50013}
50014
50015// GoString returns the string representation.
50016//
50017// API parameter values that are decorated as "sensitive" in the API will not
50018// be included in the string output. The member name will be present, but the
50019// value will be replaced with "sensitive".
50020func (s ListJobsInput) GoString() string {
50021	return s.String()
50022}
50023
50024// Validate inspects the fields of the type to determine if they are valid.
50025func (s *ListJobsInput) Validate() error {
50026	invalidParams := request.ErrInvalidParams{Context: "ListJobsInput"}
50027	if s.MaxResults != nil && *s.MaxResults < 1 {
50028		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
50029	}
50030	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
50031		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
50032	}
50033	if s.ThingGroupId != nil && len(*s.ThingGroupId) < 1 {
50034		invalidParams.Add(request.NewErrParamMinLen("ThingGroupId", 1))
50035	}
50036	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
50037		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
50038	}
50039
50040	if invalidParams.Len() > 0 {
50041		return invalidParams
50042	}
50043	return nil
50044}
50045
50046// SetMaxResults sets the MaxResults field's value.
50047func (s *ListJobsInput) SetMaxResults(v int64) *ListJobsInput {
50048	s.MaxResults = &v
50049	return s
50050}
50051
50052// SetNamespaceId sets the NamespaceId field's value.
50053func (s *ListJobsInput) SetNamespaceId(v string) *ListJobsInput {
50054	s.NamespaceId = &v
50055	return s
50056}
50057
50058// SetNextToken sets the NextToken field's value.
50059func (s *ListJobsInput) SetNextToken(v string) *ListJobsInput {
50060	s.NextToken = &v
50061	return s
50062}
50063
50064// SetStatus sets the Status field's value.
50065func (s *ListJobsInput) SetStatus(v string) *ListJobsInput {
50066	s.Status = &v
50067	return s
50068}
50069
50070// SetTargetSelection sets the TargetSelection field's value.
50071func (s *ListJobsInput) SetTargetSelection(v string) *ListJobsInput {
50072	s.TargetSelection = &v
50073	return s
50074}
50075
50076// SetThingGroupId sets the ThingGroupId field's value.
50077func (s *ListJobsInput) SetThingGroupId(v string) *ListJobsInput {
50078	s.ThingGroupId = &v
50079	return s
50080}
50081
50082// SetThingGroupName sets the ThingGroupName field's value.
50083func (s *ListJobsInput) SetThingGroupName(v string) *ListJobsInput {
50084	s.ThingGroupName = &v
50085	return s
50086}
50087
50088type ListJobsOutput struct {
50089	_ struct{} `type:"structure"`
50090
50091	// A list of jobs.
50092	Jobs []*JobSummary `locationName:"jobs" type:"list"`
50093
50094	// The token for the next set of results, or null if there are no additional
50095	// results.
50096	NextToken *string `locationName:"nextToken" type:"string"`
50097}
50098
50099// String returns the string representation.
50100//
50101// API parameter values that are decorated as "sensitive" in the API will not
50102// be included in the string output. The member name will be present, but the
50103// value will be replaced with "sensitive".
50104func (s ListJobsOutput) String() string {
50105	return awsutil.Prettify(s)
50106}
50107
50108// GoString returns the string representation.
50109//
50110// API parameter values that are decorated as "sensitive" in the API will not
50111// be included in the string output. The member name will be present, but the
50112// value will be replaced with "sensitive".
50113func (s ListJobsOutput) GoString() string {
50114	return s.String()
50115}
50116
50117// SetJobs sets the Jobs field's value.
50118func (s *ListJobsOutput) SetJobs(v []*JobSummary) *ListJobsOutput {
50119	s.Jobs = v
50120	return s
50121}
50122
50123// SetNextToken sets the NextToken field's value.
50124func (s *ListJobsOutput) SetNextToken(v string) *ListJobsOutput {
50125	s.NextToken = &v
50126	return s
50127}
50128
50129type ListMitigationActionsInput struct {
50130	_ struct{} `type:"structure" nopayload:"true"`
50131
50132	// Specify a value to limit the result to mitigation actions with a specific
50133	// action type.
50134	ActionType *string `location:"querystring" locationName:"actionType" type:"string" enum:"MitigationActionType"`
50135
50136	// The maximum number of results to return at one time. The default is 25.
50137	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
50138
50139	// The token for the next set of results.
50140	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
50141}
50142
50143// String returns the string representation.
50144//
50145// API parameter values that are decorated as "sensitive" in the API will not
50146// be included in the string output. The member name will be present, but the
50147// value will be replaced with "sensitive".
50148func (s ListMitigationActionsInput) String() string {
50149	return awsutil.Prettify(s)
50150}
50151
50152// GoString returns the string representation.
50153//
50154// API parameter values that are decorated as "sensitive" in the API will not
50155// be included in the string output. The member name will be present, but the
50156// value will be replaced with "sensitive".
50157func (s ListMitigationActionsInput) GoString() string {
50158	return s.String()
50159}
50160
50161// Validate inspects the fields of the type to determine if they are valid.
50162func (s *ListMitigationActionsInput) Validate() error {
50163	invalidParams := request.ErrInvalidParams{Context: "ListMitigationActionsInput"}
50164	if s.MaxResults != nil && *s.MaxResults < 1 {
50165		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
50166	}
50167
50168	if invalidParams.Len() > 0 {
50169		return invalidParams
50170	}
50171	return nil
50172}
50173
50174// SetActionType sets the ActionType field's value.
50175func (s *ListMitigationActionsInput) SetActionType(v string) *ListMitigationActionsInput {
50176	s.ActionType = &v
50177	return s
50178}
50179
50180// SetMaxResults sets the MaxResults field's value.
50181func (s *ListMitigationActionsInput) SetMaxResults(v int64) *ListMitigationActionsInput {
50182	s.MaxResults = &v
50183	return s
50184}
50185
50186// SetNextToken sets the NextToken field's value.
50187func (s *ListMitigationActionsInput) SetNextToken(v string) *ListMitigationActionsInput {
50188	s.NextToken = &v
50189	return s
50190}
50191
50192type ListMitigationActionsOutput struct {
50193	_ struct{} `type:"structure"`
50194
50195	// A set of actions that matched the specified filter criteria.
50196	ActionIdentifiers []*MitigationActionIdentifier `locationName:"actionIdentifiers" type:"list"`
50197
50198	// The token for the next set of results.
50199	NextToken *string `locationName:"nextToken" type:"string"`
50200}
50201
50202// String returns the string representation.
50203//
50204// API parameter values that are decorated as "sensitive" in the API will not
50205// be included in the string output. The member name will be present, but the
50206// value will be replaced with "sensitive".
50207func (s ListMitigationActionsOutput) String() string {
50208	return awsutil.Prettify(s)
50209}
50210
50211// GoString returns the string representation.
50212//
50213// API parameter values that are decorated as "sensitive" in the API will not
50214// be included in the string output. The member name will be present, but the
50215// value will be replaced with "sensitive".
50216func (s ListMitigationActionsOutput) GoString() string {
50217	return s.String()
50218}
50219
50220// SetActionIdentifiers sets the ActionIdentifiers field's value.
50221func (s *ListMitigationActionsOutput) SetActionIdentifiers(v []*MitigationActionIdentifier) *ListMitigationActionsOutput {
50222	s.ActionIdentifiers = v
50223	return s
50224}
50225
50226// SetNextToken sets the NextToken field's value.
50227func (s *ListMitigationActionsOutput) SetNextToken(v string) *ListMitigationActionsOutput {
50228	s.NextToken = &v
50229	return s
50230}
50231
50232type ListOTAUpdatesInput struct {
50233	_ struct{} `type:"structure" nopayload:"true"`
50234
50235	// The maximum number of results to return at one time.
50236	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
50237
50238	// A token used to retrieve the next set of results.
50239	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
50240
50241	// The OTA update job status.
50242	OtaUpdateStatus *string `location:"querystring" locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
50243}
50244
50245// String returns the string representation.
50246//
50247// API parameter values that are decorated as "sensitive" in the API will not
50248// be included in the string output. The member name will be present, but the
50249// value will be replaced with "sensitive".
50250func (s ListOTAUpdatesInput) String() string {
50251	return awsutil.Prettify(s)
50252}
50253
50254// GoString returns the string representation.
50255//
50256// API parameter values that are decorated as "sensitive" in the API will not
50257// be included in the string output. The member name will be present, but the
50258// value will be replaced with "sensitive".
50259func (s ListOTAUpdatesInput) GoString() string {
50260	return s.String()
50261}
50262
50263// Validate inspects the fields of the type to determine if they are valid.
50264func (s *ListOTAUpdatesInput) Validate() error {
50265	invalidParams := request.ErrInvalidParams{Context: "ListOTAUpdatesInput"}
50266	if s.MaxResults != nil && *s.MaxResults < 1 {
50267		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
50268	}
50269
50270	if invalidParams.Len() > 0 {
50271		return invalidParams
50272	}
50273	return nil
50274}
50275
50276// SetMaxResults sets the MaxResults field's value.
50277func (s *ListOTAUpdatesInput) SetMaxResults(v int64) *ListOTAUpdatesInput {
50278	s.MaxResults = &v
50279	return s
50280}
50281
50282// SetNextToken sets the NextToken field's value.
50283func (s *ListOTAUpdatesInput) SetNextToken(v string) *ListOTAUpdatesInput {
50284	s.NextToken = &v
50285	return s
50286}
50287
50288// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
50289func (s *ListOTAUpdatesInput) SetOtaUpdateStatus(v string) *ListOTAUpdatesInput {
50290	s.OtaUpdateStatus = &v
50291	return s
50292}
50293
50294type ListOTAUpdatesOutput struct {
50295	_ struct{} `type:"structure"`
50296
50297	// A token to use to get the next set of results.
50298	NextToken *string `locationName:"nextToken" type:"string"`
50299
50300	// A list of OTA update jobs.
50301	OtaUpdates []*OTAUpdateSummary `locationName:"otaUpdates" type:"list"`
50302}
50303
50304// String returns the string representation.
50305//
50306// API parameter values that are decorated as "sensitive" in the API will not
50307// be included in the string output. The member name will be present, but the
50308// value will be replaced with "sensitive".
50309func (s ListOTAUpdatesOutput) String() string {
50310	return awsutil.Prettify(s)
50311}
50312
50313// GoString returns the string representation.
50314//
50315// API parameter values that are decorated as "sensitive" in the API will not
50316// be included in the string output. The member name will be present, but the
50317// value will be replaced with "sensitive".
50318func (s ListOTAUpdatesOutput) GoString() string {
50319	return s.String()
50320}
50321
50322// SetNextToken sets the NextToken field's value.
50323func (s *ListOTAUpdatesOutput) SetNextToken(v string) *ListOTAUpdatesOutput {
50324	s.NextToken = &v
50325	return s
50326}
50327
50328// SetOtaUpdates sets the OtaUpdates field's value.
50329func (s *ListOTAUpdatesOutput) SetOtaUpdates(v []*OTAUpdateSummary) *ListOTAUpdatesOutput {
50330	s.OtaUpdates = v
50331	return s
50332}
50333
50334// The input to the ListOutgoingCertificates operation.
50335type ListOutgoingCertificatesInput struct {
50336	_ struct{} `type:"structure" nopayload:"true"`
50337
50338	// Specifies the order for results. If True, the results are returned in ascending
50339	// order, based on the creation date.
50340	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
50341
50342	// The marker for the next set of results.
50343	Marker *string `location:"querystring" locationName:"marker" type:"string"`
50344
50345	// The result page size.
50346	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
50347}
50348
50349// String returns the string representation.
50350//
50351// API parameter values that are decorated as "sensitive" in the API will not
50352// be included in the string output. The member name will be present, but the
50353// value will be replaced with "sensitive".
50354func (s ListOutgoingCertificatesInput) String() string {
50355	return awsutil.Prettify(s)
50356}
50357
50358// GoString returns the string representation.
50359//
50360// API parameter values that are decorated as "sensitive" in the API will not
50361// be included in the string output. The member name will be present, but the
50362// value will be replaced with "sensitive".
50363func (s ListOutgoingCertificatesInput) GoString() string {
50364	return s.String()
50365}
50366
50367// Validate inspects the fields of the type to determine if they are valid.
50368func (s *ListOutgoingCertificatesInput) Validate() error {
50369	invalidParams := request.ErrInvalidParams{Context: "ListOutgoingCertificatesInput"}
50370	if s.PageSize != nil && *s.PageSize < 1 {
50371		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
50372	}
50373
50374	if invalidParams.Len() > 0 {
50375		return invalidParams
50376	}
50377	return nil
50378}
50379
50380// SetAscendingOrder sets the AscendingOrder field's value.
50381func (s *ListOutgoingCertificatesInput) SetAscendingOrder(v bool) *ListOutgoingCertificatesInput {
50382	s.AscendingOrder = &v
50383	return s
50384}
50385
50386// SetMarker sets the Marker field's value.
50387func (s *ListOutgoingCertificatesInput) SetMarker(v string) *ListOutgoingCertificatesInput {
50388	s.Marker = &v
50389	return s
50390}
50391
50392// SetPageSize sets the PageSize field's value.
50393func (s *ListOutgoingCertificatesInput) SetPageSize(v int64) *ListOutgoingCertificatesInput {
50394	s.PageSize = &v
50395	return s
50396}
50397
50398// The output from the ListOutgoingCertificates operation.
50399type ListOutgoingCertificatesOutput struct {
50400	_ struct{} `type:"structure"`
50401
50402	// The marker for the next set of results.
50403	NextMarker *string `locationName:"nextMarker" type:"string"`
50404
50405	// The certificates that are being transferred but not yet accepted.
50406	OutgoingCertificates []*OutgoingCertificate `locationName:"outgoingCertificates" type:"list"`
50407}
50408
50409// String returns the string representation.
50410//
50411// API parameter values that are decorated as "sensitive" in the API will not
50412// be included in the string output. The member name will be present, but the
50413// value will be replaced with "sensitive".
50414func (s ListOutgoingCertificatesOutput) String() string {
50415	return awsutil.Prettify(s)
50416}
50417
50418// GoString returns the string representation.
50419//
50420// API parameter values that are decorated as "sensitive" in the API will not
50421// be included in the string output. The member name will be present, but the
50422// value will be replaced with "sensitive".
50423func (s ListOutgoingCertificatesOutput) GoString() string {
50424	return s.String()
50425}
50426
50427// SetNextMarker sets the NextMarker field's value.
50428func (s *ListOutgoingCertificatesOutput) SetNextMarker(v string) *ListOutgoingCertificatesOutput {
50429	s.NextMarker = &v
50430	return s
50431}
50432
50433// SetOutgoingCertificates sets the OutgoingCertificates field's value.
50434func (s *ListOutgoingCertificatesOutput) SetOutgoingCertificates(v []*OutgoingCertificate) *ListOutgoingCertificatesOutput {
50435	s.OutgoingCertificates = v
50436	return s
50437}
50438
50439// The input for the ListPolicies operation.
50440type ListPoliciesInput struct {
50441	_ struct{} `type:"structure" nopayload:"true"`
50442
50443	// Specifies the order for results. If true, the results are returned in ascending
50444	// creation order.
50445	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
50446
50447	// The marker for the next set of results.
50448	Marker *string `location:"querystring" locationName:"marker" type:"string"`
50449
50450	// The result page size.
50451	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
50452}
50453
50454// String returns the string representation.
50455//
50456// API parameter values that are decorated as "sensitive" in the API will not
50457// be included in the string output. The member name will be present, but the
50458// value will be replaced with "sensitive".
50459func (s ListPoliciesInput) String() string {
50460	return awsutil.Prettify(s)
50461}
50462
50463// GoString returns the string representation.
50464//
50465// API parameter values that are decorated as "sensitive" in the API will not
50466// be included in the string output. The member name will be present, but the
50467// value will be replaced with "sensitive".
50468func (s ListPoliciesInput) GoString() string {
50469	return s.String()
50470}
50471
50472// Validate inspects the fields of the type to determine if they are valid.
50473func (s *ListPoliciesInput) Validate() error {
50474	invalidParams := request.ErrInvalidParams{Context: "ListPoliciesInput"}
50475	if s.PageSize != nil && *s.PageSize < 1 {
50476		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
50477	}
50478
50479	if invalidParams.Len() > 0 {
50480		return invalidParams
50481	}
50482	return nil
50483}
50484
50485// SetAscendingOrder sets the AscendingOrder field's value.
50486func (s *ListPoliciesInput) SetAscendingOrder(v bool) *ListPoliciesInput {
50487	s.AscendingOrder = &v
50488	return s
50489}
50490
50491// SetMarker sets the Marker field's value.
50492func (s *ListPoliciesInput) SetMarker(v string) *ListPoliciesInput {
50493	s.Marker = &v
50494	return s
50495}
50496
50497// SetPageSize sets the PageSize field's value.
50498func (s *ListPoliciesInput) SetPageSize(v int64) *ListPoliciesInput {
50499	s.PageSize = &v
50500	return s
50501}
50502
50503// The output from the ListPolicies operation.
50504type ListPoliciesOutput struct {
50505	_ struct{} `type:"structure"`
50506
50507	// The marker for the next set of results, or null if there are no additional
50508	// results.
50509	NextMarker *string `locationName:"nextMarker" type:"string"`
50510
50511	// The descriptions of the policies.
50512	Policies []*Policy `locationName:"policies" type:"list"`
50513}
50514
50515// String returns the string representation.
50516//
50517// API parameter values that are decorated as "sensitive" in the API will not
50518// be included in the string output. The member name will be present, but the
50519// value will be replaced with "sensitive".
50520func (s ListPoliciesOutput) String() string {
50521	return awsutil.Prettify(s)
50522}
50523
50524// GoString returns the string representation.
50525//
50526// API parameter values that are decorated as "sensitive" in the API will not
50527// be included in the string output. The member name will be present, but the
50528// value will be replaced with "sensitive".
50529func (s ListPoliciesOutput) GoString() string {
50530	return s.String()
50531}
50532
50533// SetNextMarker sets the NextMarker field's value.
50534func (s *ListPoliciesOutput) SetNextMarker(v string) *ListPoliciesOutput {
50535	s.NextMarker = &v
50536	return s
50537}
50538
50539// SetPolicies sets the Policies field's value.
50540func (s *ListPoliciesOutput) SetPolicies(v []*Policy) *ListPoliciesOutput {
50541	s.Policies = v
50542	return s
50543}
50544
50545// The input for the ListPolicyPrincipals operation.
50546type ListPolicyPrincipalsInput struct {
50547	_ struct{} `type:"structure" nopayload:"true"`
50548
50549	// Specifies the order for results. If true, the results are returned in ascending
50550	// creation order.
50551	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
50552
50553	// The marker for the next set of results.
50554	Marker *string `location:"querystring" locationName:"marker" type:"string"`
50555
50556	// The result page size.
50557	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
50558
50559	// The policy name.
50560	//
50561	// PolicyName is a required field
50562	PolicyName *string `location:"header" locationName:"x-amzn-iot-policy" min:"1" type:"string" required:"true"`
50563}
50564
50565// String returns the string representation.
50566//
50567// API parameter values that are decorated as "sensitive" in the API will not
50568// be included in the string output. The member name will be present, but the
50569// value will be replaced with "sensitive".
50570func (s ListPolicyPrincipalsInput) String() string {
50571	return awsutil.Prettify(s)
50572}
50573
50574// GoString returns the string representation.
50575//
50576// API parameter values that are decorated as "sensitive" in the API will not
50577// be included in the string output. The member name will be present, but the
50578// value will be replaced with "sensitive".
50579func (s ListPolicyPrincipalsInput) GoString() string {
50580	return s.String()
50581}
50582
50583// Validate inspects the fields of the type to determine if they are valid.
50584func (s *ListPolicyPrincipalsInput) Validate() error {
50585	invalidParams := request.ErrInvalidParams{Context: "ListPolicyPrincipalsInput"}
50586	if s.PageSize != nil && *s.PageSize < 1 {
50587		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
50588	}
50589	if s.PolicyName == nil {
50590		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
50591	}
50592	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
50593		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
50594	}
50595
50596	if invalidParams.Len() > 0 {
50597		return invalidParams
50598	}
50599	return nil
50600}
50601
50602// SetAscendingOrder sets the AscendingOrder field's value.
50603func (s *ListPolicyPrincipalsInput) SetAscendingOrder(v bool) *ListPolicyPrincipalsInput {
50604	s.AscendingOrder = &v
50605	return s
50606}
50607
50608// SetMarker sets the Marker field's value.
50609func (s *ListPolicyPrincipalsInput) SetMarker(v string) *ListPolicyPrincipalsInput {
50610	s.Marker = &v
50611	return s
50612}
50613
50614// SetPageSize sets the PageSize field's value.
50615func (s *ListPolicyPrincipalsInput) SetPageSize(v int64) *ListPolicyPrincipalsInput {
50616	s.PageSize = &v
50617	return s
50618}
50619
50620// SetPolicyName sets the PolicyName field's value.
50621func (s *ListPolicyPrincipalsInput) SetPolicyName(v string) *ListPolicyPrincipalsInput {
50622	s.PolicyName = &v
50623	return s
50624}
50625
50626// The output from the ListPolicyPrincipals operation.
50627type ListPolicyPrincipalsOutput struct {
50628	_ struct{} `type:"structure"`
50629
50630	// The marker for the next set of results, or null if there are no additional
50631	// results.
50632	NextMarker *string `locationName:"nextMarker" type:"string"`
50633
50634	// The descriptions of the principals.
50635	Principals []*string `locationName:"principals" type:"list"`
50636}
50637
50638// String returns the string representation.
50639//
50640// API parameter values that are decorated as "sensitive" in the API will not
50641// be included in the string output. The member name will be present, but the
50642// value will be replaced with "sensitive".
50643func (s ListPolicyPrincipalsOutput) String() string {
50644	return awsutil.Prettify(s)
50645}
50646
50647// GoString returns the string representation.
50648//
50649// API parameter values that are decorated as "sensitive" in the API will not
50650// be included in the string output. The member name will be present, but the
50651// value will be replaced with "sensitive".
50652func (s ListPolicyPrincipalsOutput) GoString() string {
50653	return s.String()
50654}
50655
50656// SetNextMarker sets the NextMarker field's value.
50657func (s *ListPolicyPrincipalsOutput) SetNextMarker(v string) *ListPolicyPrincipalsOutput {
50658	s.NextMarker = &v
50659	return s
50660}
50661
50662// SetPrincipals sets the Principals field's value.
50663func (s *ListPolicyPrincipalsOutput) SetPrincipals(v []*string) *ListPolicyPrincipalsOutput {
50664	s.Principals = v
50665	return s
50666}
50667
50668// The input for the ListPolicyVersions operation.
50669type ListPolicyVersionsInput struct {
50670	_ struct{} `type:"structure" nopayload:"true"`
50671
50672	// The policy name.
50673	//
50674	// PolicyName is a required field
50675	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
50676}
50677
50678// String returns the string representation.
50679//
50680// API parameter values that are decorated as "sensitive" in the API will not
50681// be included in the string output. The member name will be present, but the
50682// value will be replaced with "sensitive".
50683func (s ListPolicyVersionsInput) String() string {
50684	return awsutil.Prettify(s)
50685}
50686
50687// GoString returns the string representation.
50688//
50689// API parameter values that are decorated as "sensitive" in the API will not
50690// be included in the string output. The member name will be present, but the
50691// value will be replaced with "sensitive".
50692func (s ListPolicyVersionsInput) GoString() string {
50693	return s.String()
50694}
50695
50696// Validate inspects the fields of the type to determine if they are valid.
50697func (s *ListPolicyVersionsInput) Validate() error {
50698	invalidParams := request.ErrInvalidParams{Context: "ListPolicyVersionsInput"}
50699	if s.PolicyName == nil {
50700		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
50701	}
50702	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
50703		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
50704	}
50705
50706	if invalidParams.Len() > 0 {
50707		return invalidParams
50708	}
50709	return nil
50710}
50711
50712// SetPolicyName sets the PolicyName field's value.
50713func (s *ListPolicyVersionsInput) SetPolicyName(v string) *ListPolicyVersionsInput {
50714	s.PolicyName = &v
50715	return s
50716}
50717
50718// The output from the ListPolicyVersions operation.
50719type ListPolicyVersionsOutput struct {
50720	_ struct{} `type:"structure"`
50721
50722	// The policy versions.
50723	PolicyVersions []*PolicyVersion `locationName:"policyVersions" type:"list"`
50724}
50725
50726// String returns the string representation.
50727//
50728// API parameter values that are decorated as "sensitive" in the API will not
50729// be included in the string output. The member name will be present, but the
50730// value will be replaced with "sensitive".
50731func (s ListPolicyVersionsOutput) String() string {
50732	return awsutil.Prettify(s)
50733}
50734
50735// GoString returns the string representation.
50736//
50737// API parameter values that are decorated as "sensitive" in the API will not
50738// be included in the string output. The member name will be present, but the
50739// value will be replaced with "sensitive".
50740func (s ListPolicyVersionsOutput) GoString() string {
50741	return s.String()
50742}
50743
50744// SetPolicyVersions sets the PolicyVersions field's value.
50745func (s *ListPolicyVersionsOutput) SetPolicyVersions(v []*PolicyVersion) *ListPolicyVersionsOutput {
50746	s.PolicyVersions = v
50747	return s
50748}
50749
50750// The input for the ListPrincipalPolicies operation.
50751type ListPrincipalPoliciesInput struct {
50752	_ struct{} `type:"structure" nopayload:"true"`
50753
50754	// Specifies the order for results. If true, results are returned in ascending
50755	// creation order.
50756	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
50757
50758	// The marker for the next set of results.
50759	Marker *string `location:"querystring" locationName:"marker" type:"string"`
50760
50761	// The result page size.
50762	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
50763
50764	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
50765	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
50766	// (region:id).
50767	//
50768	// Principal is a required field
50769	Principal *string `location:"header" locationName:"x-amzn-iot-principal" type:"string" required:"true"`
50770}
50771
50772// String returns the string representation.
50773//
50774// API parameter values that are decorated as "sensitive" in the API will not
50775// be included in the string output. The member name will be present, but the
50776// value will be replaced with "sensitive".
50777func (s ListPrincipalPoliciesInput) String() string {
50778	return awsutil.Prettify(s)
50779}
50780
50781// GoString returns the string representation.
50782//
50783// API parameter values that are decorated as "sensitive" in the API will not
50784// be included in the string output. The member name will be present, but the
50785// value will be replaced with "sensitive".
50786func (s ListPrincipalPoliciesInput) GoString() string {
50787	return s.String()
50788}
50789
50790// Validate inspects the fields of the type to determine if they are valid.
50791func (s *ListPrincipalPoliciesInput) Validate() error {
50792	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalPoliciesInput"}
50793	if s.PageSize != nil && *s.PageSize < 1 {
50794		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
50795	}
50796	if s.Principal == nil {
50797		invalidParams.Add(request.NewErrParamRequired("Principal"))
50798	}
50799
50800	if invalidParams.Len() > 0 {
50801		return invalidParams
50802	}
50803	return nil
50804}
50805
50806// SetAscendingOrder sets the AscendingOrder field's value.
50807func (s *ListPrincipalPoliciesInput) SetAscendingOrder(v bool) *ListPrincipalPoliciesInput {
50808	s.AscendingOrder = &v
50809	return s
50810}
50811
50812// SetMarker sets the Marker field's value.
50813func (s *ListPrincipalPoliciesInput) SetMarker(v string) *ListPrincipalPoliciesInput {
50814	s.Marker = &v
50815	return s
50816}
50817
50818// SetPageSize sets the PageSize field's value.
50819func (s *ListPrincipalPoliciesInput) SetPageSize(v int64) *ListPrincipalPoliciesInput {
50820	s.PageSize = &v
50821	return s
50822}
50823
50824// SetPrincipal sets the Principal field's value.
50825func (s *ListPrincipalPoliciesInput) SetPrincipal(v string) *ListPrincipalPoliciesInput {
50826	s.Principal = &v
50827	return s
50828}
50829
50830// The output from the ListPrincipalPolicies operation.
50831type ListPrincipalPoliciesOutput struct {
50832	_ struct{} `type:"structure"`
50833
50834	// The marker for the next set of results, or null if there are no additional
50835	// results.
50836	NextMarker *string `locationName:"nextMarker" type:"string"`
50837
50838	// The policies.
50839	Policies []*Policy `locationName:"policies" type:"list"`
50840}
50841
50842// String returns the string representation.
50843//
50844// API parameter values that are decorated as "sensitive" in the API will not
50845// be included in the string output. The member name will be present, but the
50846// value will be replaced with "sensitive".
50847func (s ListPrincipalPoliciesOutput) String() string {
50848	return awsutil.Prettify(s)
50849}
50850
50851// GoString returns the string representation.
50852//
50853// API parameter values that are decorated as "sensitive" in the API will not
50854// be included in the string output. The member name will be present, but the
50855// value will be replaced with "sensitive".
50856func (s ListPrincipalPoliciesOutput) GoString() string {
50857	return s.String()
50858}
50859
50860// SetNextMarker sets the NextMarker field's value.
50861func (s *ListPrincipalPoliciesOutput) SetNextMarker(v string) *ListPrincipalPoliciesOutput {
50862	s.NextMarker = &v
50863	return s
50864}
50865
50866// SetPolicies sets the Policies field's value.
50867func (s *ListPrincipalPoliciesOutput) SetPolicies(v []*Policy) *ListPrincipalPoliciesOutput {
50868	s.Policies = v
50869	return s
50870}
50871
50872// The input for the ListPrincipalThings operation.
50873type ListPrincipalThingsInput struct {
50874	_ struct{} `type:"structure" nopayload:"true"`
50875
50876	// The maximum number of results to return in this operation.
50877	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
50878
50879	// To retrieve the next set of results, the nextToken value from a previous
50880	// response; otherwise null to receive the first set of results.
50881	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
50882
50883	// The principal.
50884	//
50885	// Principal is a required field
50886	Principal *string `location:"header" locationName:"x-amzn-principal" type:"string" required:"true"`
50887}
50888
50889// String returns the string representation.
50890//
50891// API parameter values that are decorated as "sensitive" in the API will not
50892// be included in the string output. The member name will be present, but the
50893// value will be replaced with "sensitive".
50894func (s ListPrincipalThingsInput) String() string {
50895	return awsutil.Prettify(s)
50896}
50897
50898// GoString returns the string representation.
50899//
50900// API parameter values that are decorated as "sensitive" in the API will not
50901// be included in the string output. The member name will be present, but the
50902// value will be replaced with "sensitive".
50903func (s ListPrincipalThingsInput) GoString() string {
50904	return s.String()
50905}
50906
50907// Validate inspects the fields of the type to determine if they are valid.
50908func (s *ListPrincipalThingsInput) Validate() error {
50909	invalidParams := request.ErrInvalidParams{Context: "ListPrincipalThingsInput"}
50910	if s.MaxResults != nil && *s.MaxResults < 1 {
50911		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
50912	}
50913	if s.Principal == nil {
50914		invalidParams.Add(request.NewErrParamRequired("Principal"))
50915	}
50916
50917	if invalidParams.Len() > 0 {
50918		return invalidParams
50919	}
50920	return nil
50921}
50922
50923// SetMaxResults sets the MaxResults field's value.
50924func (s *ListPrincipalThingsInput) SetMaxResults(v int64) *ListPrincipalThingsInput {
50925	s.MaxResults = &v
50926	return s
50927}
50928
50929// SetNextToken sets the NextToken field's value.
50930func (s *ListPrincipalThingsInput) SetNextToken(v string) *ListPrincipalThingsInput {
50931	s.NextToken = &v
50932	return s
50933}
50934
50935// SetPrincipal sets the Principal field's value.
50936func (s *ListPrincipalThingsInput) SetPrincipal(v string) *ListPrincipalThingsInput {
50937	s.Principal = &v
50938	return s
50939}
50940
50941// The output from the ListPrincipalThings operation.
50942type ListPrincipalThingsOutput struct {
50943	_ struct{} `type:"structure"`
50944
50945	// The token to use to get the next set of results, or null if there are no
50946	// additional results.
50947	NextToken *string `locationName:"nextToken" type:"string"`
50948
50949	// The things.
50950	Things []*string `locationName:"things" type:"list"`
50951}
50952
50953// String returns the string representation.
50954//
50955// API parameter values that are decorated as "sensitive" in the API will not
50956// be included in the string output. The member name will be present, but the
50957// value will be replaced with "sensitive".
50958func (s ListPrincipalThingsOutput) String() string {
50959	return awsutil.Prettify(s)
50960}
50961
50962// GoString returns the string representation.
50963//
50964// API parameter values that are decorated as "sensitive" in the API will not
50965// be included in the string output. The member name will be present, but the
50966// value will be replaced with "sensitive".
50967func (s ListPrincipalThingsOutput) GoString() string {
50968	return s.String()
50969}
50970
50971// SetNextToken sets the NextToken field's value.
50972func (s *ListPrincipalThingsOutput) SetNextToken(v string) *ListPrincipalThingsOutput {
50973	s.NextToken = &v
50974	return s
50975}
50976
50977// SetThings sets the Things field's value.
50978func (s *ListPrincipalThingsOutput) SetThings(v []*string) *ListPrincipalThingsOutput {
50979	s.Things = v
50980	return s
50981}
50982
50983type ListProvisioningTemplateVersionsInput struct {
50984	_ struct{} `type:"structure" nopayload:"true"`
50985
50986	// The maximum number of results to return at one time.
50987	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
50988
50989	// A token to retrieve the next set of results.
50990	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
50991
50992	// The name of the fleet provisioning template.
50993	//
50994	// TemplateName is a required field
50995	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
50996}
50997
50998// String returns the string representation.
50999//
51000// API parameter values that are decorated as "sensitive" in the API will not
51001// be included in the string output. The member name will be present, but the
51002// value will be replaced with "sensitive".
51003func (s ListProvisioningTemplateVersionsInput) String() string {
51004	return awsutil.Prettify(s)
51005}
51006
51007// GoString returns the string representation.
51008//
51009// API parameter values that are decorated as "sensitive" in the API will not
51010// be included in the string output. The member name will be present, but the
51011// value will be replaced with "sensitive".
51012func (s ListProvisioningTemplateVersionsInput) GoString() string {
51013	return s.String()
51014}
51015
51016// Validate inspects the fields of the type to determine if they are valid.
51017func (s *ListProvisioningTemplateVersionsInput) Validate() error {
51018	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplateVersionsInput"}
51019	if s.MaxResults != nil && *s.MaxResults < 1 {
51020		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
51021	}
51022	if s.TemplateName == nil {
51023		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
51024	}
51025	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
51026		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
51027	}
51028
51029	if invalidParams.Len() > 0 {
51030		return invalidParams
51031	}
51032	return nil
51033}
51034
51035// SetMaxResults sets the MaxResults field's value.
51036func (s *ListProvisioningTemplateVersionsInput) SetMaxResults(v int64) *ListProvisioningTemplateVersionsInput {
51037	s.MaxResults = &v
51038	return s
51039}
51040
51041// SetNextToken sets the NextToken field's value.
51042func (s *ListProvisioningTemplateVersionsInput) SetNextToken(v string) *ListProvisioningTemplateVersionsInput {
51043	s.NextToken = &v
51044	return s
51045}
51046
51047// SetTemplateName sets the TemplateName field's value.
51048func (s *ListProvisioningTemplateVersionsInput) SetTemplateName(v string) *ListProvisioningTemplateVersionsInput {
51049	s.TemplateName = &v
51050	return s
51051}
51052
51053type ListProvisioningTemplateVersionsOutput struct {
51054	_ struct{} `type:"structure"`
51055
51056	// A token to retrieve the next set of results.
51057	NextToken *string `locationName:"nextToken" type:"string"`
51058
51059	// The list of fleet provisioning template versions.
51060	Versions []*ProvisioningTemplateVersionSummary `locationName:"versions" type:"list"`
51061}
51062
51063// String returns the string representation.
51064//
51065// API parameter values that are decorated as "sensitive" in the API will not
51066// be included in the string output. The member name will be present, but the
51067// value will be replaced with "sensitive".
51068func (s ListProvisioningTemplateVersionsOutput) String() string {
51069	return awsutil.Prettify(s)
51070}
51071
51072// GoString returns the string representation.
51073//
51074// API parameter values that are decorated as "sensitive" in the API will not
51075// be included in the string output. The member name will be present, but the
51076// value will be replaced with "sensitive".
51077func (s ListProvisioningTemplateVersionsOutput) GoString() string {
51078	return s.String()
51079}
51080
51081// SetNextToken sets the NextToken field's value.
51082func (s *ListProvisioningTemplateVersionsOutput) SetNextToken(v string) *ListProvisioningTemplateVersionsOutput {
51083	s.NextToken = &v
51084	return s
51085}
51086
51087// SetVersions sets the Versions field's value.
51088func (s *ListProvisioningTemplateVersionsOutput) SetVersions(v []*ProvisioningTemplateVersionSummary) *ListProvisioningTemplateVersionsOutput {
51089	s.Versions = v
51090	return s
51091}
51092
51093type ListProvisioningTemplatesInput struct {
51094	_ struct{} `type:"structure" nopayload:"true"`
51095
51096	// The maximum number of results to return at one time.
51097	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
51098
51099	// A token to retrieve the next set of results.
51100	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
51101}
51102
51103// String returns the string representation.
51104//
51105// API parameter values that are decorated as "sensitive" in the API will not
51106// be included in the string output. The member name will be present, but the
51107// value will be replaced with "sensitive".
51108func (s ListProvisioningTemplatesInput) String() string {
51109	return awsutil.Prettify(s)
51110}
51111
51112// GoString returns the string representation.
51113//
51114// API parameter values that are decorated as "sensitive" in the API will not
51115// be included in the string output. The member name will be present, but the
51116// value will be replaced with "sensitive".
51117func (s ListProvisioningTemplatesInput) GoString() string {
51118	return s.String()
51119}
51120
51121// Validate inspects the fields of the type to determine if they are valid.
51122func (s *ListProvisioningTemplatesInput) Validate() error {
51123	invalidParams := request.ErrInvalidParams{Context: "ListProvisioningTemplatesInput"}
51124	if s.MaxResults != nil && *s.MaxResults < 1 {
51125		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
51126	}
51127
51128	if invalidParams.Len() > 0 {
51129		return invalidParams
51130	}
51131	return nil
51132}
51133
51134// SetMaxResults sets the MaxResults field's value.
51135func (s *ListProvisioningTemplatesInput) SetMaxResults(v int64) *ListProvisioningTemplatesInput {
51136	s.MaxResults = &v
51137	return s
51138}
51139
51140// SetNextToken sets the NextToken field's value.
51141func (s *ListProvisioningTemplatesInput) SetNextToken(v string) *ListProvisioningTemplatesInput {
51142	s.NextToken = &v
51143	return s
51144}
51145
51146type ListProvisioningTemplatesOutput struct {
51147	_ struct{} `type:"structure"`
51148
51149	// A token to retrieve the next set of results.
51150	NextToken *string `locationName:"nextToken" type:"string"`
51151
51152	// A list of fleet provisioning templates
51153	Templates []*ProvisioningTemplateSummary `locationName:"templates" type:"list"`
51154}
51155
51156// String returns the string representation.
51157//
51158// API parameter values that are decorated as "sensitive" in the API will not
51159// be included in the string output. The member name will be present, but the
51160// value will be replaced with "sensitive".
51161func (s ListProvisioningTemplatesOutput) String() string {
51162	return awsutil.Prettify(s)
51163}
51164
51165// GoString returns the string representation.
51166//
51167// API parameter values that are decorated as "sensitive" in the API will not
51168// be included in the string output. The member name will be present, but the
51169// value will be replaced with "sensitive".
51170func (s ListProvisioningTemplatesOutput) GoString() string {
51171	return s.String()
51172}
51173
51174// SetNextToken sets the NextToken field's value.
51175func (s *ListProvisioningTemplatesOutput) SetNextToken(v string) *ListProvisioningTemplatesOutput {
51176	s.NextToken = &v
51177	return s
51178}
51179
51180// SetTemplates sets the Templates field's value.
51181func (s *ListProvisioningTemplatesOutput) SetTemplates(v []*ProvisioningTemplateSummary) *ListProvisioningTemplatesOutput {
51182	s.Templates = v
51183	return s
51184}
51185
51186type ListRoleAliasesInput struct {
51187	_ struct{} `type:"structure" nopayload:"true"`
51188
51189	// Return the list of role aliases in ascending alphabetical order.
51190	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
51191
51192	// A marker used to get the next set of results.
51193	Marker *string `location:"querystring" locationName:"marker" type:"string"`
51194
51195	// The maximum number of results to return at one time.
51196	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
51197}
51198
51199// String returns the string representation.
51200//
51201// API parameter values that are decorated as "sensitive" in the API will not
51202// be included in the string output. The member name will be present, but the
51203// value will be replaced with "sensitive".
51204func (s ListRoleAliasesInput) String() string {
51205	return awsutil.Prettify(s)
51206}
51207
51208// GoString returns the string representation.
51209//
51210// API parameter values that are decorated as "sensitive" in the API will not
51211// be included in the string output. The member name will be present, but the
51212// value will be replaced with "sensitive".
51213func (s ListRoleAliasesInput) GoString() string {
51214	return s.String()
51215}
51216
51217// Validate inspects the fields of the type to determine if they are valid.
51218func (s *ListRoleAliasesInput) Validate() error {
51219	invalidParams := request.ErrInvalidParams{Context: "ListRoleAliasesInput"}
51220	if s.PageSize != nil && *s.PageSize < 1 {
51221		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
51222	}
51223
51224	if invalidParams.Len() > 0 {
51225		return invalidParams
51226	}
51227	return nil
51228}
51229
51230// SetAscendingOrder sets the AscendingOrder field's value.
51231func (s *ListRoleAliasesInput) SetAscendingOrder(v bool) *ListRoleAliasesInput {
51232	s.AscendingOrder = &v
51233	return s
51234}
51235
51236// SetMarker sets the Marker field's value.
51237func (s *ListRoleAliasesInput) SetMarker(v string) *ListRoleAliasesInput {
51238	s.Marker = &v
51239	return s
51240}
51241
51242// SetPageSize sets the PageSize field's value.
51243func (s *ListRoleAliasesInput) SetPageSize(v int64) *ListRoleAliasesInput {
51244	s.PageSize = &v
51245	return s
51246}
51247
51248type ListRoleAliasesOutput struct {
51249	_ struct{} `type:"structure"`
51250
51251	// A marker used to get the next set of results.
51252	NextMarker *string `locationName:"nextMarker" type:"string"`
51253
51254	// The role aliases.
51255	RoleAliases []*string `locationName:"roleAliases" type:"list"`
51256}
51257
51258// String returns the string representation.
51259//
51260// API parameter values that are decorated as "sensitive" in the API will not
51261// be included in the string output. The member name will be present, but the
51262// value will be replaced with "sensitive".
51263func (s ListRoleAliasesOutput) String() string {
51264	return awsutil.Prettify(s)
51265}
51266
51267// GoString returns the string representation.
51268//
51269// API parameter values that are decorated as "sensitive" in the API will not
51270// be included in the string output. The member name will be present, but the
51271// value will be replaced with "sensitive".
51272func (s ListRoleAliasesOutput) GoString() string {
51273	return s.String()
51274}
51275
51276// SetNextMarker sets the NextMarker field's value.
51277func (s *ListRoleAliasesOutput) SetNextMarker(v string) *ListRoleAliasesOutput {
51278	s.NextMarker = &v
51279	return s
51280}
51281
51282// SetRoleAliases sets the RoleAliases field's value.
51283func (s *ListRoleAliasesOutput) SetRoleAliases(v []*string) *ListRoleAliasesOutput {
51284	s.RoleAliases = v
51285	return s
51286}
51287
51288type ListScheduledAuditsInput struct {
51289	_ struct{} `type:"structure" nopayload:"true"`
51290
51291	// The maximum number of results to return at one time. The default is 25.
51292	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
51293
51294	// The token for the next set of results.
51295	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
51296}
51297
51298// String returns the string representation.
51299//
51300// API parameter values that are decorated as "sensitive" in the API will not
51301// be included in the string output. The member name will be present, but the
51302// value will be replaced with "sensitive".
51303func (s ListScheduledAuditsInput) String() string {
51304	return awsutil.Prettify(s)
51305}
51306
51307// GoString returns the string representation.
51308//
51309// API parameter values that are decorated as "sensitive" in the API will not
51310// be included in the string output. The member name will be present, but the
51311// value will be replaced with "sensitive".
51312func (s ListScheduledAuditsInput) GoString() string {
51313	return s.String()
51314}
51315
51316// Validate inspects the fields of the type to determine if they are valid.
51317func (s *ListScheduledAuditsInput) Validate() error {
51318	invalidParams := request.ErrInvalidParams{Context: "ListScheduledAuditsInput"}
51319	if s.MaxResults != nil && *s.MaxResults < 1 {
51320		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
51321	}
51322
51323	if invalidParams.Len() > 0 {
51324		return invalidParams
51325	}
51326	return nil
51327}
51328
51329// SetMaxResults sets the MaxResults field's value.
51330func (s *ListScheduledAuditsInput) SetMaxResults(v int64) *ListScheduledAuditsInput {
51331	s.MaxResults = &v
51332	return s
51333}
51334
51335// SetNextToken sets the NextToken field's value.
51336func (s *ListScheduledAuditsInput) SetNextToken(v string) *ListScheduledAuditsInput {
51337	s.NextToken = &v
51338	return s
51339}
51340
51341type ListScheduledAuditsOutput struct {
51342	_ struct{} `type:"structure"`
51343
51344	// A token that can be used to retrieve the next set of results, or null if
51345	// there are no additional results.
51346	NextToken *string `locationName:"nextToken" type:"string"`
51347
51348	// The list of scheduled audits.
51349	ScheduledAudits []*ScheduledAuditMetadata `locationName:"scheduledAudits" type:"list"`
51350}
51351
51352// String returns the string representation.
51353//
51354// API parameter values that are decorated as "sensitive" in the API will not
51355// be included in the string output. The member name will be present, but the
51356// value will be replaced with "sensitive".
51357func (s ListScheduledAuditsOutput) String() string {
51358	return awsutil.Prettify(s)
51359}
51360
51361// GoString returns the string representation.
51362//
51363// API parameter values that are decorated as "sensitive" in the API will not
51364// be included in the string output. The member name will be present, but the
51365// value will be replaced with "sensitive".
51366func (s ListScheduledAuditsOutput) GoString() string {
51367	return s.String()
51368}
51369
51370// SetNextToken sets the NextToken field's value.
51371func (s *ListScheduledAuditsOutput) SetNextToken(v string) *ListScheduledAuditsOutput {
51372	s.NextToken = &v
51373	return s
51374}
51375
51376// SetScheduledAudits sets the ScheduledAudits field's value.
51377func (s *ListScheduledAuditsOutput) SetScheduledAudits(v []*ScheduledAuditMetadata) *ListScheduledAuditsOutput {
51378	s.ScheduledAudits = v
51379	return s
51380}
51381
51382type ListSecurityProfilesForTargetInput struct {
51383	_ struct{} `type:"structure" nopayload:"true"`
51384
51385	// The maximum number of results to return at one time.
51386	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
51387
51388	// The token for the next set of results.
51389	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
51390
51391	// If true, return child groups too.
51392	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
51393
51394	// The ARN of the target (thing group) whose attached security profiles you
51395	// want to get.
51396	//
51397	// SecurityProfileTargetArn is a required field
51398	SecurityProfileTargetArn *string `location:"querystring" locationName:"securityProfileTargetArn" type:"string" required:"true"`
51399}
51400
51401// String returns the string representation.
51402//
51403// API parameter values that are decorated as "sensitive" in the API will not
51404// be included in the string output. The member name will be present, but the
51405// value will be replaced with "sensitive".
51406func (s ListSecurityProfilesForTargetInput) String() string {
51407	return awsutil.Prettify(s)
51408}
51409
51410// GoString returns the string representation.
51411//
51412// API parameter values that are decorated as "sensitive" in the API will not
51413// be included in the string output. The member name will be present, but the
51414// value will be replaced with "sensitive".
51415func (s ListSecurityProfilesForTargetInput) GoString() string {
51416	return s.String()
51417}
51418
51419// Validate inspects the fields of the type to determine if they are valid.
51420func (s *ListSecurityProfilesForTargetInput) Validate() error {
51421	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesForTargetInput"}
51422	if s.MaxResults != nil && *s.MaxResults < 1 {
51423		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
51424	}
51425	if s.SecurityProfileTargetArn == nil {
51426		invalidParams.Add(request.NewErrParamRequired("SecurityProfileTargetArn"))
51427	}
51428
51429	if invalidParams.Len() > 0 {
51430		return invalidParams
51431	}
51432	return nil
51433}
51434
51435// SetMaxResults sets the MaxResults field's value.
51436func (s *ListSecurityProfilesForTargetInput) SetMaxResults(v int64) *ListSecurityProfilesForTargetInput {
51437	s.MaxResults = &v
51438	return s
51439}
51440
51441// SetNextToken sets the NextToken field's value.
51442func (s *ListSecurityProfilesForTargetInput) SetNextToken(v string) *ListSecurityProfilesForTargetInput {
51443	s.NextToken = &v
51444	return s
51445}
51446
51447// SetRecursive sets the Recursive field's value.
51448func (s *ListSecurityProfilesForTargetInput) SetRecursive(v bool) *ListSecurityProfilesForTargetInput {
51449	s.Recursive = &v
51450	return s
51451}
51452
51453// SetSecurityProfileTargetArn sets the SecurityProfileTargetArn field's value.
51454func (s *ListSecurityProfilesForTargetInput) SetSecurityProfileTargetArn(v string) *ListSecurityProfilesForTargetInput {
51455	s.SecurityProfileTargetArn = &v
51456	return s
51457}
51458
51459type ListSecurityProfilesForTargetOutput struct {
51460	_ struct{} `type:"structure"`
51461
51462	// A token that can be used to retrieve the next set of results, or null if
51463	// there are no additional results.
51464	NextToken *string `locationName:"nextToken" type:"string"`
51465
51466	// A list of security profiles and their associated targets.
51467	SecurityProfileTargetMappings []*SecurityProfileTargetMapping `locationName:"securityProfileTargetMappings" type:"list"`
51468}
51469
51470// String returns the string representation.
51471//
51472// API parameter values that are decorated as "sensitive" in the API will not
51473// be included in the string output. The member name will be present, but the
51474// value will be replaced with "sensitive".
51475func (s ListSecurityProfilesForTargetOutput) String() string {
51476	return awsutil.Prettify(s)
51477}
51478
51479// GoString returns the string representation.
51480//
51481// API parameter values that are decorated as "sensitive" in the API will not
51482// be included in the string output. The member name will be present, but the
51483// value will be replaced with "sensitive".
51484func (s ListSecurityProfilesForTargetOutput) GoString() string {
51485	return s.String()
51486}
51487
51488// SetNextToken sets the NextToken field's value.
51489func (s *ListSecurityProfilesForTargetOutput) SetNextToken(v string) *ListSecurityProfilesForTargetOutput {
51490	s.NextToken = &v
51491	return s
51492}
51493
51494// SetSecurityProfileTargetMappings sets the SecurityProfileTargetMappings field's value.
51495func (s *ListSecurityProfilesForTargetOutput) SetSecurityProfileTargetMappings(v []*SecurityProfileTargetMapping) *ListSecurityProfilesForTargetOutput {
51496	s.SecurityProfileTargetMappings = v
51497	return s
51498}
51499
51500type ListSecurityProfilesInput struct {
51501	_ struct{} `type:"structure" nopayload:"true"`
51502
51503	// A filter to limit results to the security profiles that use the defined dimension.
51504	// Cannot be used with metricName
51505	DimensionName *string `location:"querystring" locationName:"dimensionName" min:"1" type:"string"`
51506
51507	// The maximum number of results to return at one time.
51508	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
51509
51510	// The name of the custom metric. Cannot be used with dimensionName.
51511	MetricName *string `location:"querystring" locationName:"metricName" min:"1" type:"string"`
51512
51513	// The token for the next set of results.
51514	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
51515}
51516
51517// String returns the string representation.
51518//
51519// API parameter values that are decorated as "sensitive" in the API will not
51520// be included in the string output. The member name will be present, but the
51521// value will be replaced with "sensitive".
51522func (s ListSecurityProfilesInput) String() string {
51523	return awsutil.Prettify(s)
51524}
51525
51526// GoString returns the string representation.
51527//
51528// API parameter values that are decorated as "sensitive" in the API will not
51529// be included in the string output. The member name will be present, but the
51530// value will be replaced with "sensitive".
51531func (s ListSecurityProfilesInput) GoString() string {
51532	return s.String()
51533}
51534
51535// Validate inspects the fields of the type to determine if they are valid.
51536func (s *ListSecurityProfilesInput) Validate() error {
51537	invalidParams := request.ErrInvalidParams{Context: "ListSecurityProfilesInput"}
51538	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
51539		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
51540	}
51541	if s.MaxResults != nil && *s.MaxResults < 1 {
51542		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
51543	}
51544	if s.MetricName != nil && len(*s.MetricName) < 1 {
51545		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
51546	}
51547
51548	if invalidParams.Len() > 0 {
51549		return invalidParams
51550	}
51551	return nil
51552}
51553
51554// SetDimensionName sets the DimensionName field's value.
51555func (s *ListSecurityProfilesInput) SetDimensionName(v string) *ListSecurityProfilesInput {
51556	s.DimensionName = &v
51557	return s
51558}
51559
51560// SetMaxResults sets the MaxResults field's value.
51561func (s *ListSecurityProfilesInput) SetMaxResults(v int64) *ListSecurityProfilesInput {
51562	s.MaxResults = &v
51563	return s
51564}
51565
51566// SetMetricName sets the MetricName field's value.
51567func (s *ListSecurityProfilesInput) SetMetricName(v string) *ListSecurityProfilesInput {
51568	s.MetricName = &v
51569	return s
51570}
51571
51572// SetNextToken sets the NextToken field's value.
51573func (s *ListSecurityProfilesInput) SetNextToken(v string) *ListSecurityProfilesInput {
51574	s.NextToken = &v
51575	return s
51576}
51577
51578type ListSecurityProfilesOutput struct {
51579	_ struct{} `type:"structure"`
51580
51581	// A token that can be used to retrieve the next set of results, or null if
51582	// there are no additional results.
51583	NextToken *string `locationName:"nextToken" type:"string"`
51584
51585	// A list of security profile identifiers (names and ARNs).
51586	SecurityProfileIdentifiers []*SecurityProfileIdentifier `locationName:"securityProfileIdentifiers" type:"list"`
51587}
51588
51589// String returns the string representation.
51590//
51591// API parameter values that are decorated as "sensitive" in the API will not
51592// be included in the string output. The member name will be present, but the
51593// value will be replaced with "sensitive".
51594func (s ListSecurityProfilesOutput) String() string {
51595	return awsutil.Prettify(s)
51596}
51597
51598// GoString returns the string representation.
51599//
51600// API parameter values that are decorated as "sensitive" in the API will not
51601// be included in the string output. The member name will be present, but the
51602// value will be replaced with "sensitive".
51603func (s ListSecurityProfilesOutput) GoString() string {
51604	return s.String()
51605}
51606
51607// SetNextToken sets the NextToken field's value.
51608func (s *ListSecurityProfilesOutput) SetNextToken(v string) *ListSecurityProfilesOutput {
51609	s.NextToken = &v
51610	return s
51611}
51612
51613// SetSecurityProfileIdentifiers sets the SecurityProfileIdentifiers field's value.
51614func (s *ListSecurityProfilesOutput) SetSecurityProfileIdentifiers(v []*SecurityProfileIdentifier) *ListSecurityProfilesOutput {
51615	s.SecurityProfileIdentifiers = v
51616	return s
51617}
51618
51619type ListStreamsInput struct {
51620	_ struct{} `type:"structure" nopayload:"true"`
51621
51622	// Set to true to return the list of streams in ascending order.
51623	AscendingOrder *bool `location:"querystring" locationName:"isAscendingOrder" type:"boolean"`
51624
51625	// The maximum number of results to return at a time.
51626	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
51627
51628	// A token used to get the next set of results.
51629	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
51630}
51631
51632// String returns the string representation.
51633//
51634// API parameter values that are decorated as "sensitive" in the API will not
51635// be included in the string output. The member name will be present, but the
51636// value will be replaced with "sensitive".
51637func (s ListStreamsInput) String() string {
51638	return awsutil.Prettify(s)
51639}
51640
51641// GoString returns the string representation.
51642//
51643// API parameter values that are decorated as "sensitive" in the API will not
51644// be included in the string output. The member name will be present, but the
51645// value will be replaced with "sensitive".
51646func (s ListStreamsInput) GoString() string {
51647	return s.String()
51648}
51649
51650// Validate inspects the fields of the type to determine if they are valid.
51651func (s *ListStreamsInput) Validate() error {
51652	invalidParams := request.ErrInvalidParams{Context: "ListStreamsInput"}
51653	if s.MaxResults != nil && *s.MaxResults < 1 {
51654		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
51655	}
51656
51657	if invalidParams.Len() > 0 {
51658		return invalidParams
51659	}
51660	return nil
51661}
51662
51663// SetAscendingOrder sets the AscendingOrder field's value.
51664func (s *ListStreamsInput) SetAscendingOrder(v bool) *ListStreamsInput {
51665	s.AscendingOrder = &v
51666	return s
51667}
51668
51669// SetMaxResults sets the MaxResults field's value.
51670func (s *ListStreamsInput) SetMaxResults(v int64) *ListStreamsInput {
51671	s.MaxResults = &v
51672	return s
51673}
51674
51675// SetNextToken sets the NextToken field's value.
51676func (s *ListStreamsInput) SetNextToken(v string) *ListStreamsInput {
51677	s.NextToken = &v
51678	return s
51679}
51680
51681type ListStreamsOutput struct {
51682	_ struct{} `type:"structure"`
51683
51684	// A token used to get the next set of results.
51685	NextToken *string `locationName:"nextToken" type:"string"`
51686
51687	// A list of streams.
51688	Streams []*StreamSummary `locationName:"streams" type:"list"`
51689}
51690
51691// String returns the string representation.
51692//
51693// API parameter values that are decorated as "sensitive" in the API will not
51694// be included in the string output. The member name will be present, but the
51695// value will be replaced with "sensitive".
51696func (s ListStreamsOutput) String() string {
51697	return awsutil.Prettify(s)
51698}
51699
51700// GoString returns the string representation.
51701//
51702// API parameter values that are decorated as "sensitive" in the API will not
51703// be included in the string output. The member name will be present, but the
51704// value will be replaced with "sensitive".
51705func (s ListStreamsOutput) GoString() string {
51706	return s.String()
51707}
51708
51709// SetNextToken sets the NextToken field's value.
51710func (s *ListStreamsOutput) SetNextToken(v string) *ListStreamsOutput {
51711	s.NextToken = &v
51712	return s
51713}
51714
51715// SetStreams sets the Streams field's value.
51716func (s *ListStreamsOutput) SetStreams(v []*StreamSummary) *ListStreamsOutput {
51717	s.Streams = v
51718	return s
51719}
51720
51721type ListTagsForResourceInput struct {
51722	_ struct{} `type:"structure" nopayload:"true"`
51723
51724	// To retrieve the next set of results, the nextToken value from a previous
51725	// response; otherwise null to receive the first set of results.
51726	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
51727
51728	// The ARN of the resource.
51729	//
51730	// ResourceArn is a required field
51731	ResourceArn *string `location:"querystring" locationName:"resourceArn" type:"string" required:"true"`
51732}
51733
51734// String returns the string representation.
51735//
51736// API parameter values that are decorated as "sensitive" in the API will not
51737// be included in the string output. The member name will be present, but the
51738// value will be replaced with "sensitive".
51739func (s ListTagsForResourceInput) String() string {
51740	return awsutil.Prettify(s)
51741}
51742
51743// GoString returns the string representation.
51744//
51745// API parameter values that are decorated as "sensitive" in the API will not
51746// be included in the string output. The member name will be present, but the
51747// value will be replaced with "sensitive".
51748func (s ListTagsForResourceInput) GoString() string {
51749	return s.String()
51750}
51751
51752// Validate inspects the fields of the type to determine if they are valid.
51753func (s *ListTagsForResourceInput) Validate() error {
51754	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
51755	if s.ResourceArn == nil {
51756		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
51757	}
51758
51759	if invalidParams.Len() > 0 {
51760		return invalidParams
51761	}
51762	return nil
51763}
51764
51765// SetNextToken sets the NextToken field's value.
51766func (s *ListTagsForResourceInput) SetNextToken(v string) *ListTagsForResourceInput {
51767	s.NextToken = &v
51768	return s
51769}
51770
51771// SetResourceArn sets the ResourceArn field's value.
51772func (s *ListTagsForResourceInput) SetResourceArn(v string) *ListTagsForResourceInput {
51773	s.ResourceArn = &v
51774	return s
51775}
51776
51777type ListTagsForResourceOutput struct {
51778	_ struct{} `type:"structure"`
51779
51780	// The token to use to get the next set of results, or null if there are no
51781	// additional results.
51782	NextToken *string `locationName:"nextToken" type:"string"`
51783
51784	// The list of tags assigned to the resource.
51785	Tags []*Tag `locationName:"tags" type:"list"`
51786}
51787
51788// String returns the string representation.
51789//
51790// API parameter values that are decorated as "sensitive" in the API will not
51791// be included in the string output. The member name will be present, but the
51792// value will be replaced with "sensitive".
51793func (s ListTagsForResourceOutput) String() string {
51794	return awsutil.Prettify(s)
51795}
51796
51797// GoString returns the string representation.
51798//
51799// API parameter values that are decorated as "sensitive" in the API will not
51800// be included in the string output. The member name will be present, but the
51801// value will be replaced with "sensitive".
51802func (s ListTagsForResourceOutput) GoString() string {
51803	return s.String()
51804}
51805
51806// SetNextToken sets the NextToken field's value.
51807func (s *ListTagsForResourceOutput) SetNextToken(v string) *ListTagsForResourceOutput {
51808	s.NextToken = &v
51809	return s
51810}
51811
51812// SetTags sets the Tags field's value.
51813func (s *ListTagsForResourceOutput) SetTags(v []*Tag) *ListTagsForResourceOutput {
51814	s.Tags = v
51815	return s
51816}
51817
51818type ListTargetsForPolicyInput struct {
51819	_ struct{} `type:"structure" nopayload:"true"`
51820
51821	// A marker used to get the next set of results.
51822	Marker *string `location:"querystring" locationName:"marker" type:"string"`
51823
51824	// The maximum number of results to return at one time.
51825	PageSize *int64 `location:"querystring" locationName:"pageSize" min:"1" type:"integer"`
51826
51827	// The policy name.
51828	//
51829	// PolicyName is a required field
51830	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
51831}
51832
51833// String returns the string representation.
51834//
51835// API parameter values that are decorated as "sensitive" in the API will not
51836// be included in the string output. The member name will be present, but the
51837// value will be replaced with "sensitive".
51838func (s ListTargetsForPolicyInput) String() string {
51839	return awsutil.Prettify(s)
51840}
51841
51842// GoString returns the string representation.
51843//
51844// API parameter values that are decorated as "sensitive" in the API will not
51845// be included in the string output. The member name will be present, but the
51846// value will be replaced with "sensitive".
51847func (s ListTargetsForPolicyInput) GoString() string {
51848	return s.String()
51849}
51850
51851// Validate inspects the fields of the type to determine if they are valid.
51852func (s *ListTargetsForPolicyInput) Validate() error {
51853	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForPolicyInput"}
51854	if s.PageSize != nil && *s.PageSize < 1 {
51855		invalidParams.Add(request.NewErrParamMinValue("PageSize", 1))
51856	}
51857	if s.PolicyName == nil {
51858		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
51859	}
51860	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
51861		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
51862	}
51863
51864	if invalidParams.Len() > 0 {
51865		return invalidParams
51866	}
51867	return nil
51868}
51869
51870// SetMarker sets the Marker field's value.
51871func (s *ListTargetsForPolicyInput) SetMarker(v string) *ListTargetsForPolicyInput {
51872	s.Marker = &v
51873	return s
51874}
51875
51876// SetPageSize sets the PageSize field's value.
51877func (s *ListTargetsForPolicyInput) SetPageSize(v int64) *ListTargetsForPolicyInput {
51878	s.PageSize = &v
51879	return s
51880}
51881
51882// SetPolicyName sets the PolicyName field's value.
51883func (s *ListTargetsForPolicyInput) SetPolicyName(v string) *ListTargetsForPolicyInput {
51884	s.PolicyName = &v
51885	return s
51886}
51887
51888type ListTargetsForPolicyOutput struct {
51889	_ struct{} `type:"structure"`
51890
51891	// A marker used to get the next set of results.
51892	NextMarker *string `locationName:"nextMarker" type:"string"`
51893
51894	// The policy targets.
51895	Targets []*string `locationName:"targets" type:"list"`
51896}
51897
51898// String returns the string representation.
51899//
51900// API parameter values that are decorated as "sensitive" in the API will not
51901// be included in the string output. The member name will be present, but the
51902// value will be replaced with "sensitive".
51903func (s ListTargetsForPolicyOutput) String() string {
51904	return awsutil.Prettify(s)
51905}
51906
51907// GoString returns the string representation.
51908//
51909// API parameter values that are decorated as "sensitive" in the API will not
51910// be included in the string output. The member name will be present, but the
51911// value will be replaced with "sensitive".
51912func (s ListTargetsForPolicyOutput) GoString() string {
51913	return s.String()
51914}
51915
51916// SetNextMarker sets the NextMarker field's value.
51917func (s *ListTargetsForPolicyOutput) SetNextMarker(v string) *ListTargetsForPolicyOutput {
51918	s.NextMarker = &v
51919	return s
51920}
51921
51922// SetTargets sets the Targets field's value.
51923func (s *ListTargetsForPolicyOutput) SetTargets(v []*string) *ListTargetsForPolicyOutput {
51924	s.Targets = v
51925	return s
51926}
51927
51928type ListTargetsForSecurityProfileInput struct {
51929	_ struct{} `type:"structure" nopayload:"true"`
51930
51931	// The maximum number of results to return at one time.
51932	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
51933
51934	// The token for the next set of results.
51935	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
51936
51937	// The security profile.
51938	//
51939	// SecurityProfileName is a required field
51940	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
51941}
51942
51943// String returns the string representation.
51944//
51945// API parameter values that are decorated as "sensitive" in the API will not
51946// be included in the string output. The member name will be present, but the
51947// value will be replaced with "sensitive".
51948func (s ListTargetsForSecurityProfileInput) String() string {
51949	return awsutil.Prettify(s)
51950}
51951
51952// GoString returns the string representation.
51953//
51954// API parameter values that are decorated as "sensitive" in the API will not
51955// be included in the string output. The member name will be present, but the
51956// value will be replaced with "sensitive".
51957func (s ListTargetsForSecurityProfileInput) GoString() string {
51958	return s.String()
51959}
51960
51961// Validate inspects the fields of the type to determine if they are valid.
51962func (s *ListTargetsForSecurityProfileInput) Validate() error {
51963	invalidParams := request.ErrInvalidParams{Context: "ListTargetsForSecurityProfileInput"}
51964	if s.MaxResults != nil && *s.MaxResults < 1 {
51965		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
51966	}
51967	if s.SecurityProfileName == nil {
51968		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
51969	}
51970	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
51971		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
51972	}
51973
51974	if invalidParams.Len() > 0 {
51975		return invalidParams
51976	}
51977	return nil
51978}
51979
51980// SetMaxResults sets the MaxResults field's value.
51981func (s *ListTargetsForSecurityProfileInput) SetMaxResults(v int64) *ListTargetsForSecurityProfileInput {
51982	s.MaxResults = &v
51983	return s
51984}
51985
51986// SetNextToken sets the NextToken field's value.
51987func (s *ListTargetsForSecurityProfileInput) SetNextToken(v string) *ListTargetsForSecurityProfileInput {
51988	s.NextToken = &v
51989	return s
51990}
51991
51992// SetSecurityProfileName sets the SecurityProfileName field's value.
51993func (s *ListTargetsForSecurityProfileInput) SetSecurityProfileName(v string) *ListTargetsForSecurityProfileInput {
51994	s.SecurityProfileName = &v
51995	return s
51996}
51997
51998type ListTargetsForSecurityProfileOutput struct {
51999	_ struct{} `type:"structure"`
52000
52001	// A token that can be used to retrieve the next set of results, or null if
52002	// there are no additional results.
52003	NextToken *string `locationName:"nextToken" type:"string"`
52004
52005	// The thing groups to which the security profile is attached.
52006	SecurityProfileTargets []*SecurityProfileTarget `locationName:"securityProfileTargets" type:"list"`
52007}
52008
52009// String returns the string representation.
52010//
52011// API parameter values that are decorated as "sensitive" in the API will not
52012// be included in the string output. The member name will be present, but the
52013// value will be replaced with "sensitive".
52014func (s ListTargetsForSecurityProfileOutput) String() string {
52015	return awsutil.Prettify(s)
52016}
52017
52018// GoString returns the string representation.
52019//
52020// API parameter values that are decorated as "sensitive" in the API will not
52021// be included in the string output. The member name will be present, but the
52022// value will be replaced with "sensitive".
52023func (s ListTargetsForSecurityProfileOutput) GoString() string {
52024	return s.String()
52025}
52026
52027// SetNextToken sets the NextToken field's value.
52028func (s *ListTargetsForSecurityProfileOutput) SetNextToken(v string) *ListTargetsForSecurityProfileOutput {
52029	s.NextToken = &v
52030	return s
52031}
52032
52033// SetSecurityProfileTargets sets the SecurityProfileTargets field's value.
52034func (s *ListTargetsForSecurityProfileOutput) SetSecurityProfileTargets(v []*SecurityProfileTarget) *ListTargetsForSecurityProfileOutput {
52035	s.SecurityProfileTargets = v
52036	return s
52037}
52038
52039type ListThingGroupsForThingInput struct {
52040	_ struct{} `type:"structure" nopayload:"true"`
52041
52042	// The maximum number of results to return at one time.
52043	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
52044
52045	// To retrieve the next set of results, the nextToken value from a previous
52046	// response; otherwise null to receive the first set of results.
52047	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
52048
52049	// The thing name.
52050	//
52051	// ThingName is a required field
52052	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
52053}
52054
52055// String returns the string representation.
52056//
52057// API parameter values that are decorated as "sensitive" in the API will not
52058// be included in the string output. The member name will be present, but the
52059// value will be replaced with "sensitive".
52060func (s ListThingGroupsForThingInput) String() string {
52061	return awsutil.Prettify(s)
52062}
52063
52064// GoString returns the string representation.
52065//
52066// API parameter values that are decorated as "sensitive" in the API will not
52067// be included in the string output. The member name will be present, but the
52068// value will be replaced with "sensitive".
52069func (s ListThingGroupsForThingInput) GoString() string {
52070	return s.String()
52071}
52072
52073// Validate inspects the fields of the type to determine if they are valid.
52074func (s *ListThingGroupsForThingInput) Validate() error {
52075	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsForThingInput"}
52076	if s.MaxResults != nil && *s.MaxResults < 1 {
52077		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
52078	}
52079	if s.ThingName == nil {
52080		invalidParams.Add(request.NewErrParamRequired("ThingName"))
52081	}
52082	if s.ThingName != nil && len(*s.ThingName) < 1 {
52083		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
52084	}
52085
52086	if invalidParams.Len() > 0 {
52087		return invalidParams
52088	}
52089	return nil
52090}
52091
52092// SetMaxResults sets the MaxResults field's value.
52093func (s *ListThingGroupsForThingInput) SetMaxResults(v int64) *ListThingGroupsForThingInput {
52094	s.MaxResults = &v
52095	return s
52096}
52097
52098// SetNextToken sets the NextToken field's value.
52099func (s *ListThingGroupsForThingInput) SetNextToken(v string) *ListThingGroupsForThingInput {
52100	s.NextToken = &v
52101	return s
52102}
52103
52104// SetThingName sets the ThingName field's value.
52105func (s *ListThingGroupsForThingInput) SetThingName(v string) *ListThingGroupsForThingInput {
52106	s.ThingName = &v
52107	return s
52108}
52109
52110type ListThingGroupsForThingOutput struct {
52111	_ struct{} `type:"structure"`
52112
52113	// The token to use to get the next set of results, or null if there are no
52114	// additional results.
52115	NextToken *string `locationName:"nextToken" type:"string"`
52116
52117	// The thing groups.
52118	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
52119}
52120
52121// String returns the string representation.
52122//
52123// API parameter values that are decorated as "sensitive" in the API will not
52124// be included in the string output. The member name will be present, but the
52125// value will be replaced with "sensitive".
52126func (s ListThingGroupsForThingOutput) String() string {
52127	return awsutil.Prettify(s)
52128}
52129
52130// GoString returns the string representation.
52131//
52132// API parameter values that are decorated as "sensitive" in the API will not
52133// be included in the string output. The member name will be present, but the
52134// value will be replaced with "sensitive".
52135func (s ListThingGroupsForThingOutput) GoString() string {
52136	return s.String()
52137}
52138
52139// SetNextToken sets the NextToken field's value.
52140func (s *ListThingGroupsForThingOutput) SetNextToken(v string) *ListThingGroupsForThingOutput {
52141	s.NextToken = &v
52142	return s
52143}
52144
52145// SetThingGroups sets the ThingGroups field's value.
52146func (s *ListThingGroupsForThingOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsForThingOutput {
52147	s.ThingGroups = v
52148	return s
52149}
52150
52151type ListThingGroupsInput struct {
52152	_ struct{} `type:"structure" nopayload:"true"`
52153
52154	// The maximum number of results to return at one time.
52155	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
52156
52157	// A filter that limits the results to those with the specified name prefix.
52158	NamePrefixFilter *string `location:"querystring" locationName:"namePrefixFilter" min:"1" type:"string"`
52159
52160	// To retrieve the next set of results, the nextToken value from a previous
52161	// response; otherwise null to receive the first set of results.
52162	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
52163
52164	// A filter that limits the results to those with the specified parent group.
52165	ParentGroup *string `location:"querystring" locationName:"parentGroup" min:"1" type:"string"`
52166
52167	// If true, return child groups as well.
52168	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
52169}
52170
52171// String returns the string representation.
52172//
52173// API parameter values that are decorated as "sensitive" in the API will not
52174// be included in the string output. The member name will be present, but the
52175// value will be replaced with "sensitive".
52176func (s ListThingGroupsInput) String() string {
52177	return awsutil.Prettify(s)
52178}
52179
52180// GoString returns the string representation.
52181//
52182// API parameter values that are decorated as "sensitive" in the API will not
52183// be included in the string output. The member name will be present, but the
52184// value will be replaced with "sensitive".
52185func (s ListThingGroupsInput) GoString() string {
52186	return s.String()
52187}
52188
52189// Validate inspects the fields of the type to determine if they are valid.
52190func (s *ListThingGroupsInput) Validate() error {
52191	invalidParams := request.ErrInvalidParams{Context: "ListThingGroupsInput"}
52192	if s.MaxResults != nil && *s.MaxResults < 1 {
52193		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
52194	}
52195	if s.NamePrefixFilter != nil && len(*s.NamePrefixFilter) < 1 {
52196		invalidParams.Add(request.NewErrParamMinLen("NamePrefixFilter", 1))
52197	}
52198	if s.ParentGroup != nil && len(*s.ParentGroup) < 1 {
52199		invalidParams.Add(request.NewErrParamMinLen("ParentGroup", 1))
52200	}
52201
52202	if invalidParams.Len() > 0 {
52203		return invalidParams
52204	}
52205	return nil
52206}
52207
52208// SetMaxResults sets the MaxResults field's value.
52209func (s *ListThingGroupsInput) SetMaxResults(v int64) *ListThingGroupsInput {
52210	s.MaxResults = &v
52211	return s
52212}
52213
52214// SetNamePrefixFilter sets the NamePrefixFilter field's value.
52215func (s *ListThingGroupsInput) SetNamePrefixFilter(v string) *ListThingGroupsInput {
52216	s.NamePrefixFilter = &v
52217	return s
52218}
52219
52220// SetNextToken sets the NextToken field's value.
52221func (s *ListThingGroupsInput) SetNextToken(v string) *ListThingGroupsInput {
52222	s.NextToken = &v
52223	return s
52224}
52225
52226// SetParentGroup sets the ParentGroup field's value.
52227func (s *ListThingGroupsInput) SetParentGroup(v string) *ListThingGroupsInput {
52228	s.ParentGroup = &v
52229	return s
52230}
52231
52232// SetRecursive sets the Recursive field's value.
52233func (s *ListThingGroupsInput) SetRecursive(v bool) *ListThingGroupsInput {
52234	s.Recursive = &v
52235	return s
52236}
52237
52238type ListThingGroupsOutput struct {
52239	_ struct{} `type:"structure"`
52240
52241	// The token to use to get the next set of results. Will not be returned if
52242	// operation has returned all results.
52243	NextToken *string `locationName:"nextToken" type:"string"`
52244
52245	// The thing groups.
52246	ThingGroups []*GroupNameAndArn `locationName:"thingGroups" type:"list"`
52247}
52248
52249// String returns the string representation.
52250//
52251// API parameter values that are decorated as "sensitive" in the API will not
52252// be included in the string output. The member name will be present, but the
52253// value will be replaced with "sensitive".
52254func (s ListThingGroupsOutput) String() string {
52255	return awsutil.Prettify(s)
52256}
52257
52258// GoString returns the string representation.
52259//
52260// API parameter values that are decorated as "sensitive" in the API will not
52261// be included in the string output. The member name will be present, but the
52262// value will be replaced with "sensitive".
52263func (s ListThingGroupsOutput) GoString() string {
52264	return s.String()
52265}
52266
52267// SetNextToken sets the NextToken field's value.
52268func (s *ListThingGroupsOutput) SetNextToken(v string) *ListThingGroupsOutput {
52269	s.NextToken = &v
52270	return s
52271}
52272
52273// SetThingGroups sets the ThingGroups field's value.
52274func (s *ListThingGroupsOutput) SetThingGroups(v []*GroupNameAndArn) *ListThingGroupsOutput {
52275	s.ThingGroups = v
52276	return s
52277}
52278
52279// The input for the ListThingPrincipal operation.
52280type ListThingPrincipalsInput struct {
52281	_ struct{} `type:"structure" nopayload:"true"`
52282
52283	// The maximum number of results to return in this operation.
52284	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
52285
52286	// To retrieve the next set of results, the nextToken value from a previous
52287	// response; otherwise null to receive the first set of results.
52288	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
52289
52290	// The name of the thing.
52291	//
52292	// ThingName is a required field
52293	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
52294}
52295
52296// String returns the string representation.
52297//
52298// API parameter values that are decorated as "sensitive" in the API will not
52299// be included in the string output. The member name will be present, but the
52300// value will be replaced with "sensitive".
52301func (s ListThingPrincipalsInput) String() string {
52302	return awsutil.Prettify(s)
52303}
52304
52305// GoString returns the string representation.
52306//
52307// API parameter values that are decorated as "sensitive" in the API will not
52308// be included in the string output. The member name will be present, but the
52309// value will be replaced with "sensitive".
52310func (s ListThingPrincipalsInput) GoString() string {
52311	return s.String()
52312}
52313
52314// Validate inspects the fields of the type to determine if they are valid.
52315func (s *ListThingPrincipalsInput) Validate() error {
52316	invalidParams := request.ErrInvalidParams{Context: "ListThingPrincipalsInput"}
52317	if s.MaxResults != nil && *s.MaxResults < 1 {
52318		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
52319	}
52320	if s.ThingName == nil {
52321		invalidParams.Add(request.NewErrParamRequired("ThingName"))
52322	}
52323	if s.ThingName != nil && len(*s.ThingName) < 1 {
52324		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
52325	}
52326
52327	if invalidParams.Len() > 0 {
52328		return invalidParams
52329	}
52330	return nil
52331}
52332
52333// SetMaxResults sets the MaxResults field's value.
52334func (s *ListThingPrincipalsInput) SetMaxResults(v int64) *ListThingPrincipalsInput {
52335	s.MaxResults = &v
52336	return s
52337}
52338
52339// SetNextToken sets the NextToken field's value.
52340func (s *ListThingPrincipalsInput) SetNextToken(v string) *ListThingPrincipalsInput {
52341	s.NextToken = &v
52342	return s
52343}
52344
52345// SetThingName sets the ThingName field's value.
52346func (s *ListThingPrincipalsInput) SetThingName(v string) *ListThingPrincipalsInput {
52347	s.ThingName = &v
52348	return s
52349}
52350
52351// The output from the ListThingPrincipals operation.
52352type ListThingPrincipalsOutput struct {
52353	_ struct{} `type:"structure"`
52354
52355	// The token to use to get the next set of results, or null if there are no
52356	// additional results.
52357	NextToken *string `locationName:"nextToken" type:"string"`
52358
52359	// The principals associated with the thing.
52360	Principals []*string `locationName:"principals" type:"list"`
52361}
52362
52363// String returns the string representation.
52364//
52365// API parameter values that are decorated as "sensitive" in the API will not
52366// be included in the string output. The member name will be present, but the
52367// value will be replaced with "sensitive".
52368func (s ListThingPrincipalsOutput) String() string {
52369	return awsutil.Prettify(s)
52370}
52371
52372// GoString returns the string representation.
52373//
52374// API parameter values that are decorated as "sensitive" in the API will not
52375// be included in the string output. The member name will be present, but the
52376// value will be replaced with "sensitive".
52377func (s ListThingPrincipalsOutput) GoString() string {
52378	return s.String()
52379}
52380
52381// SetNextToken sets the NextToken field's value.
52382func (s *ListThingPrincipalsOutput) SetNextToken(v string) *ListThingPrincipalsOutput {
52383	s.NextToken = &v
52384	return s
52385}
52386
52387// SetPrincipals sets the Principals field's value.
52388func (s *ListThingPrincipalsOutput) SetPrincipals(v []*string) *ListThingPrincipalsOutput {
52389	s.Principals = v
52390	return s
52391}
52392
52393type ListThingRegistrationTaskReportsInput struct {
52394	_ struct{} `type:"structure" nopayload:"true"`
52395
52396	// The maximum number of results to return per request.
52397	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
52398
52399	// To retrieve the next set of results, the nextToken value from a previous
52400	// response; otherwise null to receive the first set of results.
52401	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
52402
52403	// The type of task report.
52404	//
52405	// ReportType is a required field
52406	ReportType *string `location:"querystring" locationName:"reportType" type:"string" required:"true" enum:"ReportType"`
52407
52408	// The id of the task.
52409	//
52410	// TaskId is a required field
52411	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
52412}
52413
52414// String returns the string representation.
52415//
52416// API parameter values that are decorated as "sensitive" in the API will not
52417// be included in the string output. The member name will be present, but the
52418// value will be replaced with "sensitive".
52419func (s ListThingRegistrationTaskReportsInput) String() string {
52420	return awsutil.Prettify(s)
52421}
52422
52423// GoString returns the string representation.
52424//
52425// API parameter values that are decorated as "sensitive" in the API will not
52426// be included in the string output. The member name will be present, but the
52427// value will be replaced with "sensitive".
52428func (s ListThingRegistrationTaskReportsInput) GoString() string {
52429	return s.String()
52430}
52431
52432// Validate inspects the fields of the type to determine if they are valid.
52433func (s *ListThingRegistrationTaskReportsInput) Validate() error {
52434	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTaskReportsInput"}
52435	if s.MaxResults != nil && *s.MaxResults < 1 {
52436		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
52437	}
52438	if s.ReportType == nil {
52439		invalidParams.Add(request.NewErrParamRequired("ReportType"))
52440	}
52441	if s.TaskId == nil {
52442		invalidParams.Add(request.NewErrParamRequired("TaskId"))
52443	}
52444	if s.TaskId != nil && len(*s.TaskId) < 1 {
52445		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
52446	}
52447
52448	if invalidParams.Len() > 0 {
52449		return invalidParams
52450	}
52451	return nil
52452}
52453
52454// SetMaxResults sets the MaxResults field's value.
52455func (s *ListThingRegistrationTaskReportsInput) SetMaxResults(v int64) *ListThingRegistrationTaskReportsInput {
52456	s.MaxResults = &v
52457	return s
52458}
52459
52460// SetNextToken sets the NextToken field's value.
52461func (s *ListThingRegistrationTaskReportsInput) SetNextToken(v string) *ListThingRegistrationTaskReportsInput {
52462	s.NextToken = &v
52463	return s
52464}
52465
52466// SetReportType sets the ReportType field's value.
52467func (s *ListThingRegistrationTaskReportsInput) SetReportType(v string) *ListThingRegistrationTaskReportsInput {
52468	s.ReportType = &v
52469	return s
52470}
52471
52472// SetTaskId sets the TaskId field's value.
52473func (s *ListThingRegistrationTaskReportsInput) SetTaskId(v string) *ListThingRegistrationTaskReportsInput {
52474	s.TaskId = &v
52475	return s
52476}
52477
52478type ListThingRegistrationTaskReportsOutput struct {
52479	_ struct{} `type:"structure"`
52480
52481	// The token to use to get the next set of results, or null if there are no
52482	// additional results.
52483	NextToken *string `locationName:"nextToken" type:"string"`
52484
52485	// The type of task report.
52486	ReportType *string `locationName:"reportType" type:"string" enum:"ReportType"`
52487
52488	// Links to the task resources.
52489	ResourceLinks []*string `locationName:"resourceLinks" type:"list"`
52490}
52491
52492// String returns the string representation.
52493//
52494// API parameter values that are decorated as "sensitive" in the API will not
52495// be included in the string output. The member name will be present, but the
52496// value will be replaced with "sensitive".
52497func (s ListThingRegistrationTaskReportsOutput) String() string {
52498	return awsutil.Prettify(s)
52499}
52500
52501// GoString returns the string representation.
52502//
52503// API parameter values that are decorated as "sensitive" in the API will not
52504// be included in the string output. The member name will be present, but the
52505// value will be replaced with "sensitive".
52506func (s ListThingRegistrationTaskReportsOutput) GoString() string {
52507	return s.String()
52508}
52509
52510// SetNextToken sets the NextToken field's value.
52511func (s *ListThingRegistrationTaskReportsOutput) SetNextToken(v string) *ListThingRegistrationTaskReportsOutput {
52512	s.NextToken = &v
52513	return s
52514}
52515
52516// SetReportType sets the ReportType field's value.
52517func (s *ListThingRegistrationTaskReportsOutput) SetReportType(v string) *ListThingRegistrationTaskReportsOutput {
52518	s.ReportType = &v
52519	return s
52520}
52521
52522// SetResourceLinks sets the ResourceLinks field's value.
52523func (s *ListThingRegistrationTaskReportsOutput) SetResourceLinks(v []*string) *ListThingRegistrationTaskReportsOutput {
52524	s.ResourceLinks = v
52525	return s
52526}
52527
52528type ListThingRegistrationTasksInput struct {
52529	_ struct{} `type:"structure" nopayload:"true"`
52530
52531	// The maximum number of results to return at one time.
52532	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
52533
52534	// To retrieve the next set of results, the nextToken value from a previous
52535	// response; otherwise null to receive the first set of results.
52536	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
52537
52538	// The status of the bulk thing provisioning task.
52539	Status *string `location:"querystring" locationName:"status" type:"string" enum:"Status"`
52540}
52541
52542// String returns the string representation.
52543//
52544// API parameter values that are decorated as "sensitive" in the API will not
52545// be included in the string output. The member name will be present, but the
52546// value will be replaced with "sensitive".
52547func (s ListThingRegistrationTasksInput) String() string {
52548	return awsutil.Prettify(s)
52549}
52550
52551// GoString returns the string representation.
52552//
52553// API parameter values that are decorated as "sensitive" in the API will not
52554// be included in the string output. The member name will be present, but the
52555// value will be replaced with "sensitive".
52556func (s ListThingRegistrationTasksInput) GoString() string {
52557	return s.String()
52558}
52559
52560// Validate inspects the fields of the type to determine if they are valid.
52561func (s *ListThingRegistrationTasksInput) Validate() error {
52562	invalidParams := request.ErrInvalidParams{Context: "ListThingRegistrationTasksInput"}
52563	if s.MaxResults != nil && *s.MaxResults < 1 {
52564		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
52565	}
52566
52567	if invalidParams.Len() > 0 {
52568		return invalidParams
52569	}
52570	return nil
52571}
52572
52573// SetMaxResults sets the MaxResults field's value.
52574func (s *ListThingRegistrationTasksInput) SetMaxResults(v int64) *ListThingRegistrationTasksInput {
52575	s.MaxResults = &v
52576	return s
52577}
52578
52579// SetNextToken sets the NextToken field's value.
52580func (s *ListThingRegistrationTasksInput) SetNextToken(v string) *ListThingRegistrationTasksInput {
52581	s.NextToken = &v
52582	return s
52583}
52584
52585// SetStatus sets the Status field's value.
52586func (s *ListThingRegistrationTasksInput) SetStatus(v string) *ListThingRegistrationTasksInput {
52587	s.Status = &v
52588	return s
52589}
52590
52591type ListThingRegistrationTasksOutput struct {
52592	_ struct{} `type:"structure"`
52593
52594	// The token to use to get the next set of results, or null if there are no
52595	// additional results.
52596	NextToken *string `locationName:"nextToken" type:"string"`
52597
52598	// A list of bulk thing provisioning task IDs.
52599	TaskIds []*string `locationName:"taskIds" type:"list"`
52600}
52601
52602// String returns the string representation.
52603//
52604// API parameter values that are decorated as "sensitive" in the API will not
52605// be included in the string output. The member name will be present, but the
52606// value will be replaced with "sensitive".
52607func (s ListThingRegistrationTasksOutput) String() string {
52608	return awsutil.Prettify(s)
52609}
52610
52611// GoString returns the string representation.
52612//
52613// API parameter values that are decorated as "sensitive" in the API will not
52614// be included in the string output. The member name will be present, but the
52615// value will be replaced with "sensitive".
52616func (s ListThingRegistrationTasksOutput) GoString() string {
52617	return s.String()
52618}
52619
52620// SetNextToken sets the NextToken field's value.
52621func (s *ListThingRegistrationTasksOutput) SetNextToken(v string) *ListThingRegistrationTasksOutput {
52622	s.NextToken = &v
52623	return s
52624}
52625
52626// SetTaskIds sets the TaskIds field's value.
52627func (s *ListThingRegistrationTasksOutput) SetTaskIds(v []*string) *ListThingRegistrationTasksOutput {
52628	s.TaskIds = v
52629	return s
52630}
52631
52632// The input for the ListThingTypes operation.
52633type ListThingTypesInput struct {
52634	_ struct{} `type:"structure" nopayload:"true"`
52635
52636	// The maximum number of results to return in this operation.
52637	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
52638
52639	// To retrieve the next set of results, the nextToken value from a previous
52640	// response; otherwise null to receive the first set of results.
52641	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
52642
52643	// The name of the thing type.
52644	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
52645}
52646
52647// String returns the string representation.
52648//
52649// API parameter values that are decorated as "sensitive" in the API will not
52650// be included in the string output. The member name will be present, but the
52651// value will be replaced with "sensitive".
52652func (s ListThingTypesInput) String() string {
52653	return awsutil.Prettify(s)
52654}
52655
52656// GoString returns the string representation.
52657//
52658// API parameter values that are decorated as "sensitive" in the API will not
52659// be included in the string output. The member name will be present, but the
52660// value will be replaced with "sensitive".
52661func (s ListThingTypesInput) GoString() string {
52662	return s.String()
52663}
52664
52665// Validate inspects the fields of the type to determine if they are valid.
52666func (s *ListThingTypesInput) Validate() error {
52667	invalidParams := request.ErrInvalidParams{Context: "ListThingTypesInput"}
52668	if s.MaxResults != nil && *s.MaxResults < 1 {
52669		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
52670	}
52671	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
52672		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
52673	}
52674
52675	if invalidParams.Len() > 0 {
52676		return invalidParams
52677	}
52678	return nil
52679}
52680
52681// SetMaxResults sets the MaxResults field's value.
52682func (s *ListThingTypesInput) SetMaxResults(v int64) *ListThingTypesInput {
52683	s.MaxResults = &v
52684	return s
52685}
52686
52687// SetNextToken sets the NextToken field's value.
52688func (s *ListThingTypesInput) SetNextToken(v string) *ListThingTypesInput {
52689	s.NextToken = &v
52690	return s
52691}
52692
52693// SetThingTypeName sets the ThingTypeName field's value.
52694func (s *ListThingTypesInput) SetThingTypeName(v string) *ListThingTypesInput {
52695	s.ThingTypeName = &v
52696	return s
52697}
52698
52699// The output for the ListThingTypes operation.
52700type ListThingTypesOutput struct {
52701	_ struct{} `type:"structure"`
52702
52703	// The token for the next set of results. Will not be returned if operation
52704	// has returned all results.
52705	NextToken *string `locationName:"nextToken" type:"string"`
52706
52707	// The thing types.
52708	ThingTypes []*ThingTypeDefinition `locationName:"thingTypes" type:"list"`
52709}
52710
52711// String returns the string representation.
52712//
52713// API parameter values that are decorated as "sensitive" in the API will not
52714// be included in the string output. The member name will be present, but the
52715// value will be replaced with "sensitive".
52716func (s ListThingTypesOutput) String() string {
52717	return awsutil.Prettify(s)
52718}
52719
52720// GoString returns the string representation.
52721//
52722// API parameter values that are decorated as "sensitive" in the API will not
52723// be included in the string output. The member name will be present, but the
52724// value will be replaced with "sensitive".
52725func (s ListThingTypesOutput) GoString() string {
52726	return s.String()
52727}
52728
52729// SetNextToken sets the NextToken field's value.
52730func (s *ListThingTypesOutput) SetNextToken(v string) *ListThingTypesOutput {
52731	s.NextToken = &v
52732	return s
52733}
52734
52735// SetThingTypes sets the ThingTypes field's value.
52736func (s *ListThingTypesOutput) SetThingTypes(v []*ThingTypeDefinition) *ListThingTypesOutput {
52737	s.ThingTypes = v
52738	return s
52739}
52740
52741type ListThingsInBillingGroupInput struct {
52742	_ struct{} `type:"structure" nopayload:"true"`
52743
52744	// The name of the billing group.
52745	//
52746	// BillingGroupName is a required field
52747	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
52748
52749	// The maximum number of results to return per request.
52750	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
52751
52752	// To retrieve the next set of results, the nextToken value from a previous
52753	// response; otherwise null to receive the first set of results.
52754	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
52755}
52756
52757// String returns the string representation.
52758//
52759// API parameter values that are decorated as "sensitive" in the API will not
52760// be included in the string output. The member name will be present, but the
52761// value will be replaced with "sensitive".
52762func (s ListThingsInBillingGroupInput) String() string {
52763	return awsutil.Prettify(s)
52764}
52765
52766// GoString returns the string representation.
52767//
52768// API parameter values that are decorated as "sensitive" in the API will not
52769// be included in the string output. The member name will be present, but the
52770// value will be replaced with "sensitive".
52771func (s ListThingsInBillingGroupInput) GoString() string {
52772	return s.String()
52773}
52774
52775// Validate inspects the fields of the type to determine if they are valid.
52776func (s *ListThingsInBillingGroupInput) Validate() error {
52777	invalidParams := request.ErrInvalidParams{Context: "ListThingsInBillingGroupInput"}
52778	if s.BillingGroupName == nil {
52779		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
52780	}
52781	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
52782		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
52783	}
52784	if s.MaxResults != nil && *s.MaxResults < 1 {
52785		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
52786	}
52787
52788	if invalidParams.Len() > 0 {
52789		return invalidParams
52790	}
52791	return nil
52792}
52793
52794// SetBillingGroupName sets the BillingGroupName field's value.
52795func (s *ListThingsInBillingGroupInput) SetBillingGroupName(v string) *ListThingsInBillingGroupInput {
52796	s.BillingGroupName = &v
52797	return s
52798}
52799
52800// SetMaxResults sets the MaxResults field's value.
52801func (s *ListThingsInBillingGroupInput) SetMaxResults(v int64) *ListThingsInBillingGroupInput {
52802	s.MaxResults = &v
52803	return s
52804}
52805
52806// SetNextToken sets the NextToken field's value.
52807func (s *ListThingsInBillingGroupInput) SetNextToken(v string) *ListThingsInBillingGroupInput {
52808	s.NextToken = &v
52809	return s
52810}
52811
52812type ListThingsInBillingGroupOutput struct {
52813	_ struct{} `type:"structure"`
52814
52815	// The token to use to get the next set of results. Will not be returned if
52816	// operation has returned all results.
52817	NextToken *string `locationName:"nextToken" type:"string"`
52818
52819	// A list of things in the billing group.
52820	Things []*string `locationName:"things" type:"list"`
52821}
52822
52823// String returns the string representation.
52824//
52825// API parameter values that are decorated as "sensitive" in the API will not
52826// be included in the string output. The member name will be present, but the
52827// value will be replaced with "sensitive".
52828func (s ListThingsInBillingGroupOutput) String() string {
52829	return awsutil.Prettify(s)
52830}
52831
52832// GoString returns the string representation.
52833//
52834// API parameter values that are decorated as "sensitive" in the API will not
52835// be included in the string output. The member name will be present, but the
52836// value will be replaced with "sensitive".
52837func (s ListThingsInBillingGroupOutput) GoString() string {
52838	return s.String()
52839}
52840
52841// SetNextToken sets the NextToken field's value.
52842func (s *ListThingsInBillingGroupOutput) SetNextToken(v string) *ListThingsInBillingGroupOutput {
52843	s.NextToken = &v
52844	return s
52845}
52846
52847// SetThings sets the Things field's value.
52848func (s *ListThingsInBillingGroupOutput) SetThings(v []*string) *ListThingsInBillingGroupOutput {
52849	s.Things = v
52850	return s
52851}
52852
52853type ListThingsInThingGroupInput struct {
52854	_ struct{} `type:"structure" nopayload:"true"`
52855
52856	// The maximum number of results to return at one time.
52857	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
52858
52859	// To retrieve the next set of results, the nextToken value from a previous
52860	// response; otherwise null to receive the first set of results.
52861	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
52862
52863	// When true, list things in this thing group and in all child groups as well.
52864	Recursive *bool `location:"querystring" locationName:"recursive" type:"boolean"`
52865
52866	// The thing group name.
52867	//
52868	// ThingGroupName is a required field
52869	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
52870}
52871
52872// String returns the string representation.
52873//
52874// API parameter values that are decorated as "sensitive" in the API will not
52875// be included in the string output. The member name will be present, but the
52876// value will be replaced with "sensitive".
52877func (s ListThingsInThingGroupInput) String() string {
52878	return awsutil.Prettify(s)
52879}
52880
52881// GoString returns the string representation.
52882//
52883// API parameter values that are decorated as "sensitive" in the API will not
52884// be included in the string output. The member name will be present, but the
52885// value will be replaced with "sensitive".
52886func (s ListThingsInThingGroupInput) GoString() string {
52887	return s.String()
52888}
52889
52890// Validate inspects the fields of the type to determine if they are valid.
52891func (s *ListThingsInThingGroupInput) Validate() error {
52892	invalidParams := request.ErrInvalidParams{Context: "ListThingsInThingGroupInput"}
52893	if s.MaxResults != nil && *s.MaxResults < 1 {
52894		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
52895	}
52896	if s.ThingGroupName == nil {
52897		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
52898	}
52899	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
52900		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
52901	}
52902
52903	if invalidParams.Len() > 0 {
52904		return invalidParams
52905	}
52906	return nil
52907}
52908
52909// SetMaxResults sets the MaxResults field's value.
52910func (s *ListThingsInThingGroupInput) SetMaxResults(v int64) *ListThingsInThingGroupInput {
52911	s.MaxResults = &v
52912	return s
52913}
52914
52915// SetNextToken sets the NextToken field's value.
52916func (s *ListThingsInThingGroupInput) SetNextToken(v string) *ListThingsInThingGroupInput {
52917	s.NextToken = &v
52918	return s
52919}
52920
52921// SetRecursive sets the Recursive field's value.
52922func (s *ListThingsInThingGroupInput) SetRecursive(v bool) *ListThingsInThingGroupInput {
52923	s.Recursive = &v
52924	return s
52925}
52926
52927// SetThingGroupName sets the ThingGroupName field's value.
52928func (s *ListThingsInThingGroupInput) SetThingGroupName(v string) *ListThingsInThingGroupInput {
52929	s.ThingGroupName = &v
52930	return s
52931}
52932
52933type ListThingsInThingGroupOutput struct {
52934	_ struct{} `type:"structure"`
52935
52936	// The token to use to get the next set of results, or null if there are no
52937	// additional results.
52938	NextToken *string `locationName:"nextToken" type:"string"`
52939
52940	// The things in the specified thing group.
52941	Things []*string `locationName:"things" type:"list"`
52942}
52943
52944// String returns the string representation.
52945//
52946// API parameter values that are decorated as "sensitive" in the API will not
52947// be included in the string output. The member name will be present, but the
52948// value will be replaced with "sensitive".
52949func (s ListThingsInThingGroupOutput) String() string {
52950	return awsutil.Prettify(s)
52951}
52952
52953// GoString returns the string representation.
52954//
52955// API parameter values that are decorated as "sensitive" in the API will not
52956// be included in the string output. The member name will be present, but the
52957// value will be replaced with "sensitive".
52958func (s ListThingsInThingGroupOutput) GoString() string {
52959	return s.String()
52960}
52961
52962// SetNextToken sets the NextToken field's value.
52963func (s *ListThingsInThingGroupOutput) SetNextToken(v string) *ListThingsInThingGroupOutput {
52964	s.NextToken = &v
52965	return s
52966}
52967
52968// SetThings sets the Things field's value.
52969func (s *ListThingsInThingGroupOutput) SetThings(v []*string) *ListThingsInThingGroupOutput {
52970	s.Things = v
52971	return s
52972}
52973
52974// The input for the ListThings operation.
52975type ListThingsInput struct {
52976	_ struct{} `type:"structure" nopayload:"true"`
52977
52978	// The attribute name used to search for things.
52979	AttributeName *string `location:"querystring" locationName:"attributeName" type:"string"`
52980
52981	// The attribute value used to search for things.
52982	AttributeValue *string `location:"querystring" locationName:"attributeValue" type:"string"`
52983
52984	// The maximum number of results to return in this operation.
52985	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
52986
52987	// To retrieve the next set of results, the nextToken value from a previous
52988	// response; otherwise null to receive the first set of results.
52989	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
52990
52991	// The name of the thing type used to search for things.
52992	ThingTypeName *string `location:"querystring" locationName:"thingTypeName" min:"1" type:"string"`
52993
52994	// When true, the action returns the thing resources with attribute values that
52995	// start with the attributeValue provided.
52996	//
52997	// When false, or not present, the action returns only the thing resources with
52998	// attribute values that match the entire attributeValue provided.
52999	UsePrefixAttributeValue *bool `location:"querystring" locationName:"usePrefixAttributeValue" type:"boolean"`
53000}
53001
53002// String returns the string representation.
53003//
53004// API parameter values that are decorated as "sensitive" in the API will not
53005// be included in the string output. The member name will be present, but the
53006// value will be replaced with "sensitive".
53007func (s ListThingsInput) String() string {
53008	return awsutil.Prettify(s)
53009}
53010
53011// GoString returns the string representation.
53012//
53013// API parameter values that are decorated as "sensitive" in the API will not
53014// be included in the string output. The member name will be present, but the
53015// value will be replaced with "sensitive".
53016func (s ListThingsInput) GoString() string {
53017	return s.String()
53018}
53019
53020// Validate inspects the fields of the type to determine if they are valid.
53021func (s *ListThingsInput) Validate() error {
53022	invalidParams := request.ErrInvalidParams{Context: "ListThingsInput"}
53023	if s.MaxResults != nil && *s.MaxResults < 1 {
53024		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
53025	}
53026	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
53027		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
53028	}
53029
53030	if invalidParams.Len() > 0 {
53031		return invalidParams
53032	}
53033	return nil
53034}
53035
53036// SetAttributeName sets the AttributeName field's value.
53037func (s *ListThingsInput) SetAttributeName(v string) *ListThingsInput {
53038	s.AttributeName = &v
53039	return s
53040}
53041
53042// SetAttributeValue sets the AttributeValue field's value.
53043func (s *ListThingsInput) SetAttributeValue(v string) *ListThingsInput {
53044	s.AttributeValue = &v
53045	return s
53046}
53047
53048// SetMaxResults sets the MaxResults field's value.
53049func (s *ListThingsInput) SetMaxResults(v int64) *ListThingsInput {
53050	s.MaxResults = &v
53051	return s
53052}
53053
53054// SetNextToken sets the NextToken field's value.
53055func (s *ListThingsInput) SetNextToken(v string) *ListThingsInput {
53056	s.NextToken = &v
53057	return s
53058}
53059
53060// SetThingTypeName sets the ThingTypeName field's value.
53061func (s *ListThingsInput) SetThingTypeName(v string) *ListThingsInput {
53062	s.ThingTypeName = &v
53063	return s
53064}
53065
53066// SetUsePrefixAttributeValue sets the UsePrefixAttributeValue field's value.
53067func (s *ListThingsInput) SetUsePrefixAttributeValue(v bool) *ListThingsInput {
53068	s.UsePrefixAttributeValue = &v
53069	return s
53070}
53071
53072// The output from the ListThings operation.
53073type ListThingsOutput struct {
53074	_ struct{} `type:"structure"`
53075
53076	// The token to use to get the next set of results. Will not be returned if
53077	// operation has returned all results.
53078	NextToken *string `locationName:"nextToken" type:"string"`
53079
53080	// The things.
53081	Things []*ThingAttribute `locationName:"things" type:"list"`
53082}
53083
53084// String returns the string representation.
53085//
53086// API parameter values that are decorated as "sensitive" in the API will not
53087// be included in the string output. The member name will be present, but the
53088// value will be replaced with "sensitive".
53089func (s ListThingsOutput) String() string {
53090	return awsutil.Prettify(s)
53091}
53092
53093// GoString returns the string representation.
53094//
53095// API parameter values that are decorated as "sensitive" in the API will not
53096// be included in the string output. The member name will be present, but the
53097// value will be replaced with "sensitive".
53098func (s ListThingsOutput) GoString() string {
53099	return s.String()
53100}
53101
53102// SetNextToken sets the NextToken field's value.
53103func (s *ListThingsOutput) SetNextToken(v string) *ListThingsOutput {
53104	s.NextToken = &v
53105	return s
53106}
53107
53108// SetThings sets the Things field's value.
53109func (s *ListThingsOutput) SetThings(v []*ThingAttribute) *ListThingsOutput {
53110	s.Things = v
53111	return s
53112}
53113
53114type ListTopicRuleDestinationsInput struct {
53115	_ struct{} `type:"structure" nopayload:"true"`
53116
53117	// The maximum number of results to return at one time.
53118	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
53119
53120	// To retrieve the next set of results, the nextToken value from a previous
53121	// response; otherwise null to receive the first set of results.
53122	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
53123}
53124
53125// String returns the string representation.
53126//
53127// API parameter values that are decorated as "sensitive" in the API will not
53128// be included in the string output. The member name will be present, but the
53129// value will be replaced with "sensitive".
53130func (s ListTopicRuleDestinationsInput) String() string {
53131	return awsutil.Prettify(s)
53132}
53133
53134// GoString returns the string representation.
53135//
53136// API parameter values that are decorated as "sensitive" in the API will not
53137// be included in the string output. The member name will be present, but the
53138// value will be replaced with "sensitive".
53139func (s ListTopicRuleDestinationsInput) GoString() string {
53140	return s.String()
53141}
53142
53143// Validate inspects the fields of the type to determine if they are valid.
53144func (s *ListTopicRuleDestinationsInput) Validate() error {
53145	invalidParams := request.ErrInvalidParams{Context: "ListTopicRuleDestinationsInput"}
53146	if s.MaxResults != nil && *s.MaxResults < 1 {
53147		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
53148	}
53149
53150	if invalidParams.Len() > 0 {
53151		return invalidParams
53152	}
53153	return nil
53154}
53155
53156// SetMaxResults sets the MaxResults field's value.
53157func (s *ListTopicRuleDestinationsInput) SetMaxResults(v int64) *ListTopicRuleDestinationsInput {
53158	s.MaxResults = &v
53159	return s
53160}
53161
53162// SetNextToken sets the NextToken field's value.
53163func (s *ListTopicRuleDestinationsInput) SetNextToken(v string) *ListTopicRuleDestinationsInput {
53164	s.NextToken = &v
53165	return s
53166}
53167
53168type ListTopicRuleDestinationsOutput struct {
53169	_ struct{} `type:"structure"`
53170
53171	// Information about a topic rule destination.
53172	DestinationSummaries []*TopicRuleDestinationSummary `locationName:"destinationSummaries" type:"list"`
53173
53174	// The token to use to get the next set of results, or null if there are no
53175	// additional results.
53176	NextToken *string `locationName:"nextToken" type:"string"`
53177}
53178
53179// String returns the string representation.
53180//
53181// API parameter values that are decorated as "sensitive" in the API will not
53182// be included in the string output. The member name will be present, but the
53183// value will be replaced with "sensitive".
53184func (s ListTopicRuleDestinationsOutput) String() string {
53185	return awsutil.Prettify(s)
53186}
53187
53188// GoString returns the string representation.
53189//
53190// API parameter values that are decorated as "sensitive" in the API will not
53191// be included in the string output. The member name will be present, but the
53192// value will be replaced with "sensitive".
53193func (s ListTopicRuleDestinationsOutput) GoString() string {
53194	return s.String()
53195}
53196
53197// SetDestinationSummaries sets the DestinationSummaries field's value.
53198func (s *ListTopicRuleDestinationsOutput) SetDestinationSummaries(v []*TopicRuleDestinationSummary) *ListTopicRuleDestinationsOutput {
53199	s.DestinationSummaries = v
53200	return s
53201}
53202
53203// SetNextToken sets the NextToken field's value.
53204func (s *ListTopicRuleDestinationsOutput) SetNextToken(v string) *ListTopicRuleDestinationsOutput {
53205	s.NextToken = &v
53206	return s
53207}
53208
53209// The input for the ListTopicRules operation.
53210type ListTopicRulesInput struct {
53211	_ struct{} `type:"structure" nopayload:"true"`
53212
53213	// The maximum number of results to return.
53214	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
53215
53216	// To retrieve the next set of results, the nextToken value from a previous
53217	// response; otherwise null to receive the first set of results.
53218	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
53219
53220	// Specifies whether the rule is disabled.
53221	RuleDisabled *bool `location:"querystring" locationName:"ruleDisabled" type:"boolean"`
53222
53223	// The topic.
53224	Topic *string `location:"querystring" locationName:"topic" type:"string"`
53225}
53226
53227// String returns the string representation.
53228//
53229// API parameter values that are decorated as "sensitive" in the API will not
53230// be included in the string output. The member name will be present, but the
53231// value will be replaced with "sensitive".
53232func (s ListTopicRulesInput) String() string {
53233	return awsutil.Prettify(s)
53234}
53235
53236// GoString returns the string representation.
53237//
53238// API parameter values that are decorated as "sensitive" in the API will not
53239// be included in the string output. The member name will be present, but the
53240// value will be replaced with "sensitive".
53241func (s ListTopicRulesInput) GoString() string {
53242	return s.String()
53243}
53244
53245// Validate inspects the fields of the type to determine if they are valid.
53246func (s *ListTopicRulesInput) Validate() error {
53247	invalidParams := request.ErrInvalidParams{Context: "ListTopicRulesInput"}
53248	if s.MaxResults != nil && *s.MaxResults < 1 {
53249		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
53250	}
53251
53252	if invalidParams.Len() > 0 {
53253		return invalidParams
53254	}
53255	return nil
53256}
53257
53258// SetMaxResults sets the MaxResults field's value.
53259func (s *ListTopicRulesInput) SetMaxResults(v int64) *ListTopicRulesInput {
53260	s.MaxResults = &v
53261	return s
53262}
53263
53264// SetNextToken sets the NextToken field's value.
53265func (s *ListTopicRulesInput) SetNextToken(v string) *ListTopicRulesInput {
53266	s.NextToken = &v
53267	return s
53268}
53269
53270// SetRuleDisabled sets the RuleDisabled field's value.
53271func (s *ListTopicRulesInput) SetRuleDisabled(v bool) *ListTopicRulesInput {
53272	s.RuleDisabled = &v
53273	return s
53274}
53275
53276// SetTopic sets the Topic field's value.
53277func (s *ListTopicRulesInput) SetTopic(v string) *ListTopicRulesInput {
53278	s.Topic = &v
53279	return s
53280}
53281
53282// The output from the ListTopicRules operation.
53283type ListTopicRulesOutput struct {
53284	_ struct{} `type:"structure"`
53285
53286	// The token to use to get the next set of results, or null if there are no
53287	// additional results.
53288	NextToken *string `locationName:"nextToken" type:"string"`
53289
53290	// The rules.
53291	Rules []*TopicRuleListItem `locationName:"rules" type:"list"`
53292}
53293
53294// String returns the string representation.
53295//
53296// API parameter values that are decorated as "sensitive" in the API will not
53297// be included in the string output. The member name will be present, but the
53298// value will be replaced with "sensitive".
53299func (s ListTopicRulesOutput) String() string {
53300	return awsutil.Prettify(s)
53301}
53302
53303// GoString returns the string representation.
53304//
53305// API parameter values that are decorated as "sensitive" in the API will not
53306// be included in the string output. The member name will be present, but the
53307// value will be replaced with "sensitive".
53308func (s ListTopicRulesOutput) GoString() string {
53309	return s.String()
53310}
53311
53312// SetNextToken sets the NextToken field's value.
53313func (s *ListTopicRulesOutput) SetNextToken(v string) *ListTopicRulesOutput {
53314	s.NextToken = &v
53315	return s
53316}
53317
53318// SetRules sets the Rules field's value.
53319func (s *ListTopicRulesOutput) SetRules(v []*TopicRuleListItem) *ListTopicRulesOutput {
53320	s.Rules = v
53321	return s
53322}
53323
53324type ListV2LoggingLevelsInput struct {
53325	_ struct{} `type:"structure" nopayload:"true"`
53326
53327	// The maximum number of results to return at one time.
53328	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
53329
53330	// To retrieve the next set of results, the nextToken value from a previous
53331	// response; otherwise null to receive the first set of results.
53332	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
53333
53334	// The type of resource for which you are configuring logging. Must be THING_Group.
53335	TargetType *string `location:"querystring" locationName:"targetType" type:"string" enum:"LogTargetType"`
53336}
53337
53338// String returns the string representation.
53339//
53340// API parameter values that are decorated as "sensitive" in the API will not
53341// be included in the string output. The member name will be present, but the
53342// value will be replaced with "sensitive".
53343func (s ListV2LoggingLevelsInput) String() string {
53344	return awsutil.Prettify(s)
53345}
53346
53347// GoString returns the string representation.
53348//
53349// API parameter values that are decorated as "sensitive" in the API will not
53350// be included in the string output. The member name will be present, but the
53351// value will be replaced with "sensitive".
53352func (s ListV2LoggingLevelsInput) GoString() string {
53353	return s.String()
53354}
53355
53356// Validate inspects the fields of the type to determine if they are valid.
53357func (s *ListV2LoggingLevelsInput) Validate() error {
53358	invalidParams := request.ErrInvalidParams{Context: "ListV2LoggingLevelsInput"}
53359	if s.MaxResults != nil && *s.MaxResults < 1 {
53360		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
53361	}
53362
53363	if invalidParams.Len() > 0 {
53364		return invalidParams
53365	}
53366	return nil
53367}
53368
53369// SetMaxResults sets the MaxResults field's value.
53370func (s *ListV2LoggingLevelsInput) SetMaxResults(v int64) *ListV2LoggingLevelsInput {
53371	s.MaxResults = &v
53372	return s
53373}
53374
53375// SetNextToken sets the NextToken field's value.
53376func (s *ListV2LoggingLevelsInput) SetNextToken(v string) *ListV2LoggingLevelsInput {
53377	s.NextToken = &v
53378	return s
53379}
53380
53381// SetTargetType sets the TargetType field's value.
53382func (s *ListV2LoggingLevelsInput) SetTargetType(v string) *ListV2LoggingLevelsInput {
53383	s.TargetType = &v
53384	return s
53385}
53386
53387type ListV2LoggingLevelsOutput struct {
53388	_ struct{} `type:"structure"`
53389
53390	// The logging configuration for a target.
53391	LogTargetConfigurations []*LogTargetConfiguration `locationName:"logTargetConfigurations" type:"list"`
53392
53393	// The token to use to get the next set of results, or null if there are no
53394	// additional results.
53395	NextToken *string `locationName:"nextToken" type:"string"`
53396}
53397
53398// String returns the string representation.
53399//
53400// API parameter values that are decorated as "sensitive" in the API will not
53401// be included in the string output. The member name will be present, but the
53402// value will be replaced with "sensitive".
53403func (s ListV2LoggingLevelsOutput) String() string {
53404	return awsutil.Prettify(s)
53405}
53406
53407// GoString returns the string representation.
53408//
53409// API parameter values that are decorated as "sensitive" in the API will not
53410// be included in the string output. The member name will be present, but the
53411// value will be replaced with "sensitive".
53412func (s ListV2LoggingLevelsOutput) GoString() string {
53413	return s.String()
53414}
53415
53416// SetLogTargetConfigurations sets the LogTargetConfigurations field's value.
53417func (s *ListV2LoggingLevelsOutput) SetLogTargetConfigurations(v []*LogTargetConfiguration) *ListV2LoggingLevelsOutput {
53418	s.LogTargetConfigurations = v
53419	return s
53420}
53421
53422// SetNextToken sets the NextToken field's value.
53423func (s *ListV2LoggingLevelsOutput) SetNextToken(v string) *ListV2LoggingLevelsOutput {
53424	s.NextToken = &v
53425	return s
53426}
53427
53428type ListViolationEventsInput struct {
53429	_ struct{} `type:"structure" nopayload:"true"`
53430
53431	// The criteria for a behavior.
53432	BehaviorCriteriaType *string `location:"querystring" locationName:"behaviorCriteriaType" type:"string" enum:"BehaviorCriteriaType"`
53433
53434	// The end time for the alerts to be listed.
53435	//
53436	// EndTime is a required field
53437	EndTime *time.Time `location:"querystring" locationName:"endTime" type:"timestamp" required:"true"`
53438
53439	// A list of all suppressed alerts.
53440	ListSuppressedAlerts *bool `location:"querystring" locationName:"listSuppressedAlerts" type:"boolean"`
53441
53442	// The maximum number of results to return at one time.
53443	MaxResults *int64 `location:"querystring" locationName:"maxResults" min:"1" type:"integer"`
53444
53445	// The token for the next set of results.
53446	NextToken *string `location:"querystring" locationName:"nextToken" type:"string"`
53447
53448	// A filter to limit results to those alerts generated by the specified security
53449	// profile.
53450	SecurityProfileName *string `location:"querystring" locationName:"securityProfileName" min:"1" type:"string"`
53451
53452	// The start time for the alerts to be listed.
53453	//
53454	// StartTime is a required field
53455	StartTime *time.Time `location:"querystring" locationName:"startTime" type:"timestamp" required:"true"`
53456
53457	// A filter to limit results to those alerts caused by the specified thing.
53458	ThingName *string `location:"querystring" locationName:"thingName" min:"1" type:"string"`
53459
53460	// The verification state of the violation (detect alarm).
53461	VerificationState *string `location:"querystring" locationName:"verificationState" type:"string" enum:"VerificationState"`
53462}
53463
53464// String returns the string representation.
53465//
53466// API parameter values that are decorated as "sensitive" in the API will not
53467// be included in the string output. The member name will be present, but the
53468// value will be replaced with "sensitive".
53469func (s ListViolationEventsInput) String() string {
53470	return awsutil.Prettify(s)
53471}
53472
53473// GoString returns the string representation.
53474//
53475// API parameter values that are decorated as "sensitive" in the API will not
53476// be included in the string output. The member name will be present, but the
53477// value will be replaced with "sensitive".
53478func (s ListViolationEventsInput) GoString() string {
53479	return s.String()
53480}
53481
53482// Validate inspects the fields of the type to determine if they are valid.
53483func (s *ListViolationEventsInput) Validate() error {
53484	invalidParams := request.ErrInvalidParams{Context: "ListViolationEventsInput"}
53485	if s.EndTime == nil {
53486		invalidParams.Add(request.NewErrParamRequired("EndTime"))
53487	}
53488	if s.MaxResults != nil && *s.MaxResults < 1 {
53489		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
53490	}
53491	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
53492		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
53493	}
53494	if s.StartTime == nil {
53495		invalidParams.Add(request.NewErrParamRequired("StartTime"))
53496	}
53497	if s.ThingName != nil && len(*s.ThingName) < 1 {
53498		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
53499	}
53500
53501	if invalidParams.Len() > 0 {
53502		return invalidParams
53503	}
53504	return nil
53505}
53506
53507// SetBehaviorCriteriaType sets the BehaviorCriteriaType field's value.
53508func (s *ListViolationEventsInput) SetBehaviorCriteriaType(v string) *ListViolationEventsInput {
53509	s.BehaviorCriteriaType = &v
53510	return s
53511}
53512
53513// SetEndTime sets the EndTime field's value.
53514func (s *ListViolationEventsInput) SetEndTime(v time.Time) *ListViolationEventsInput {
53515	s.EndTime = &v
53516	return s
53517}
53518
53519// SetListSuppressedAlerts sets the ListSuppressedAlerts field's value.
53520func (s *ListViolationEventsInput) SetListSuppressedAlerts(v bool) *ListViolationEventsInput {
53521	s.ListSuppressedAlerts = &v
53522	return s
53523}
53524
53525// SetMaxResults sets the MaxResults field's value.
53526func (s *ListViolationEventsInput) SetMaxResults(v int64) *ListViolationEventsInput {
53527	s.MaxResults = &v
53528	return s
53529}
53530
53531// SetNextToken sets the NextToken field's value.
53532func (s *ListViolationEventsInput) SetNextToken(v string) *ListViolationEventsInput {
53533	s.NextToken = &v
53534	return s
53535}
53536
53537// SetSecurityProfileName sets the SecurityProfileName field's value.
53538func (s *ListViolationEventsInput) SetSecurityProfileName(v string) *ListViolationEventsInput {
53539	s.SecurityProfileName = &v
53540	return s
53541}
53542
53543// SetStartTime sets the StartTime field's value.
53544func (s *ListViolationEventsInput) SetStartTime(v time.Time) *ListViolationEventsInput {
53545	s.StartTime = &v
53546	return s
53547}
53548
53549// SetThingName sets the ThingName field's value.
53550func (s *ListViolationEventsInput) SetThingName(v string) *ListViolationEventsInput {
53551	s.ThingName = &v
53552	return s
53553}
53554
53555// SetVerificationState sets the VerificationState field's value.
53556func (s *ListViolationEventsInput) SetVerificationState(v string) *ListViolationEventsInput {
53557	s.VerificationState = &v
53558	return s
53559}
53560
53561type ListViolationEventsOutput struct {
53562	_ struct{} `type:"structure"`
53563
53564	// A token that can be used to retrieve the next set of results, or null if
53565	// there are no additional results.
53566	NextToken *string `locationName:"nextToken" type:"string"`
53567
53568	// The security profile violation alerts issued for this account during the
53569	// given time period, potentially filtered by security profile, behavior violated,
53570	// or thing (device) violating.
53571	ViolationEvents []*ViolationEvent `locationName:"violationEvents" type:"list"`
53572}
53573
53574// String returns the string representation.
53575//
53576// API parameter values that are decorated as "sensitive" in the API will not
53577// be included in the string output. The member name will be present, but the
53578// value will be replaced with "sensitive".
53579func (s ListViolationEventsOutput) String() string {
53580	return awsutil.Prettify(s)
53581}
53582
53583// GoString returns the string representation.
53584//
53585// API parameter values that are decorated as "sensitive" in the API will not
53586// be included in the string output. The member name will be present, but the
53587// value will be replaced with "sensitive".
53588func (s ListViolationEventsOutput) GoString() string {
53589	return s.String()
53590}
53591
53592// SetNextToken sets the NextToken field's value.
53593func (s *ListViolationEventsOutput) SetNextToken(v string) *ListViolationEventsOutput {
53594	s.NextToken = &v
53595	return s
53596}
53597
53598// SetViolationEvents sets the ViolationEvents field's value.
53599func (s *ListViolationEventsOutput) SetViolationEvents(v []*ViolationEvent) *ListViolationEventsOutput {
53600	s.ViolationEvents = v
53601	return s
53602}
53603
53604// A log target.
53605type LogTarget struct {
53606	_ struct{} `type:"structure"`
53607
53608	// The target name.
53609	TargetName *string `locationName:"targetName" type:"string"`
53610
53611	// The target type.
53612	//
53613	// TargetType is a required field
53614	TargetType *string `locationName:"targetType" type:"string" required:"true" enum:"LogTargetType"`
53615}
53616
53617// String returns the string representation.
53618//
53619// API parameter values that are decorated as "sensitive" in the API will not
53620// be included in the string output. The member name will be present, but the
53621// value will be replaced with "sensitive".
53622func (s LogTarget) String() string {
53623	return awsutil.Prettify(s)
53624}
53625
53626// GoString returns the string representation.
53627//
53628// API parameter values that are decorated as "sensitive" in the API will not
53629// be included in the string output. The member name will be present, but the
53630// value will be replaced with "sensitive".
53631func (s LogTarget) GoString() string {
53632	return s.String()
53633}
53634
53635// Validate inspects the fields of the type to determine if they are valid.
53636func (s *LogTarget) Validate() error {
53637	invalidParams := request.ErrInvalidParams{Context: "LogTarget"}
53638	if s.TargetType == nil {
53639		invalidParams.Add(request.NewErrParamRequired("TargetType"))
53640	}
53641
53642	if invalidParams.Len() > 0 {
53643		return invalidParams
53644	}
53645	return nil
53646}
53647
53648// SetTargetName sets the TargetName field's value.
53649func (s *LogTarget) SetTargetName(v string) *LogTarget {
53650	s.TargetName = &v
53651	return s
53652}
53653
53654// SetTargetType sets the TargetType field's value.
53655func (s *LogTarget) SetTargetType(v string) *LogTarget {
53656	s.TargetType = &v
53657	return s
53658}
53659
53660// The target configuration.
53661type LogTargetConfiguration struct {
53662	_ struct{} `type:"structure"`
53663
53664	// The logging level.
53665	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
53666
53667	// A log target
53668	LogTarget *LogTarget `locationName:"logTarget" type:"structure"`
53669}
53670
53671// String returns the string representation.
53672//
53673// API parameter values that are decorated as "sensitive" in the API will not
53674// be included in the string output. The member name will be present, but the
53675// value will be replaced with "sensitive".
53676func (s LogTargetConfiguration) String() string {
53677	return awsutil.Prettify(s)
53678}
53679
53680// GoString returns the string representation.
53681//
53682// API parameter values that are decorated as "sensitive" in the API will not
53683// be included in the string output. The member name will be present, but the
53684// value will be replaced with "sensitive".
53685func (s LogTargetConfiguration) GoString() string {
53686	return s.String()
53687}
53688
53689// SetLogLevel sets the LogLevel field's value.
53690func (s *LogTargetConfiguration) SetLogLevel(v string) *LogTargetConfiguration {
53691	s.LogLevel = &v
53692	return s
53693}
53694
53695// SetLogTarget sets the LogTarget field's value.
53696func (s *LogTargetConfiguration) SetLogTarget(v *LogTarget) *LogTargetConfiguration {
53697	s.LogTarget = v
53698	return s
53699}
53700
53701// Describes the logging options payload.
53702type LoggingOptionsPayload struct {
53703	_ struct{} `type:"structure"`
53704
53705	// The log level.
53706	LogLevel *string `locationName:"logLevel" type:"string" enum:"LogLevel"`
53707
53708	// The ARN of the IAM role that grants access.
53709	//
53710	// RoleArn is a required field
53711	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
53712}
53713
53714// String returns the string representation.
53715//
53716// API parameter values that are decorated as "sensitive" in the API will not
53717// be included in the string output. The member name will be present, but the
53718// value will be replaced with "sensitive".
53719func (s LoggingOptionsPayload) String() string {
53720	return awsutil.Prettify(s)
53721}
53722
53723// GoString returns the string representation.
53724//
53725// API parameter values that are decorated as "sensitive" in the API will not
53726// be included in the string output. The member name will be present, but the
53727// value will be replaced with "sensitive".
53728func (s LoggingOptionsPayload) GoString() string {
53729	return s.String()
53730}
53731
53732// Validate inspects the fields of the type to determine if they are valid.
53733func (s *LoggingOptionsPayload) Validate() error {
53734	invalidParams := request.ErrInvalidParams{Context: "LoggingOptionsPayload"}
53735	if s.RoleArn == nil {
53736		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
53737	}
53738
53739	if invalidParams.Len() > 0 {
53740		return invalidParams
53741	}
53742	return nil
53743}
53744
53745// SetLogLevel sets the LogLevel field's value.
53746func (s *LoggingOptionsPayload) SetLogLevel(v string) *LoggingOptionsPayload {
53747	s.LogLevel = &v
53748	return s
53749}
53750
53751// SetRoleArn sets the RoleArn field's value.
53752func (s *LoggingOptionsPayload) SetRoleArn(v string) *LoggingOptionsPayload {
53753	s.RoleArn = &v
53754	return s
53755}
53756
53757// The configuration of an ML Detect Security Profile.
53758type MachineLearningDetectionConfig struct {
53759	_ struct{} `type:"structure"`
53760
53761	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or
53762	// High.
53763	//
53764	// ConfidenceLevel is a required field
53765	ConfidenceLevel *string `locationName:"confidenceLevel" type:"string" required:"true" enum:"ConfidenceLevel"`
53766}
53767
53768// String returns the string representation.
53769//
53770// API parameter values that are decorated as "sensitive" in the API will not
53771// be included in the string output. The member name will be present, but the
53772// value will be replaced with "sensitive".
53773func (s MachineLearningDetectionConfig) String() string {
53774	return awsutil.Prettify(s)
53775}
53776
53777// GoString returns the string representation.
53778//
53779// API parameter values that are decorated as "sensitive" in the API will not
53780// be included in the string output. The member name will be present, but the
53781// value will be replaced with "sensitive".
53782func (s MachineLearningDetectionConfig) GoString() string {
53783	return s.String()
53784}
53785
53786// Validate inspects the fields of the type to determine if they are valid.
53787func (s *MachineLearningDetectionConfig) Validate() error {
53788	invalidParams := request.ErrInvalidParams{Context: "MachineLearningDetectionConfig"}
53789	if s.ConfidenceLevel == nil {
53790		invalidParams.Add(request.NewErrParamRequired("ConfidenceLevel"))
53791	}
53792
53793	if invalidParams.Len() > 0 {
53794		return invalidParams
53795	}
53796	return nil
53797}
53798
53799// SetConfidenceLevel sets the ConfidenceLevel field's value.
53800func (s *MachineLearningDetectionConfig) SetConfidenceLevel(v string) *MachineLearningDetectionConfig {
53801	s.ConfidenceLevel = &v
53802	return s
53803}
53804
53805// The policy documentation is not valid.
53806type MalformedPolicyException struct {
53807	_            struct{}                  `type:"structure"`
53808	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
53809
53810	// The message for the exception.
53811	Message_ *string `locationName:"message" type:"string"`
53812}
53813
53814// String returns the string representation.
53815//
53816// API parameter values that are decorated as "sensitive" in the API will not
53817// be included in the string output. The member name will be present, but the
53818// value will be replaced with "sensitive".
53819func (s MalformedPolicyException) String() string {
53820	return awsutil.Prettify(s)
53821}
53822
53823// GoString returns the string representation.
53824//
53825// API parameter values that are decorated as "sensitive" in the API will not
53826// be included in the string output. The member name will be present, but the
53827// value will be replaced with "sensitive".
53828func (s MalformedPolicyException) GoString() string {
53829	return s.String()
53830}
53831
53832func newErrorMalformedPolicyException(v protocol.ResponseMetadata) error {
53833	return &MalformedPolicyException{
53834		RespMetadata: v,
53835	}
53836}
53837
53838// Code returns the exception type name.
53839func (s *MalformedPolicyException) Code() string {
53840	return "MalformedPolicyException"
53841}
53842
53843// Message returns the exception's message.
53844func (s *MalformedPolicyException) Message() string {
53845	if s.Message_ != nil {
53846		return *s.Message_
53847	}
53848	return ""
53849}
53850
53851// OrigErr always returns nil, satisfies awserr.Error interface.
53852func (s *MalformedPolicyException) OrigErr() error {
53853	return nil
53854}
53855
53856func (s *MalformedPolicyException) Error() string {
53857	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
53858}
53859
53860// Status code returns the HTTP status code for the request's response error.
53861func (s *MalformedPolicyException) StatusCode() int {
53862	return s.RespMetadata.StatusCode
53863}
53864
53865// RequestID returns the service's response RequestID for request.
53866func (s *MalformedPolicyException) RequestID() string {
53867	return s.RespMetadata.RequestID
53868}
53869
53870// The dimension of a metric.
53871type MetricDimension struct {
53872	_ struct{} `type:"structure"`
53873
53874	// A unique identifier for the dimension.
53875	//
53876	// DimensionName is a required field
53877	DimensionName *string `locationName:"dimensionName" min:"1" type:"string" required:"true"`
53878
53879	// Defines how the dimensionValues of a dimension are interpreted. For example,
53880	// for dimension type TOPIC_FILTER, the IN operator, a message will be counted
53881	// only if its topic matches one of the topic filters. With NOT_IN operator,
53882	// a message will be counted only if it doesn't match any of the topic filters.
53883	// The operator is optional: if it's not provided (is null), it will be interpreted
53884	// as IN.
53885	Operator *string `locationName:"operator" type:"string" enum:"DimensionValueOperator"`
53886}
53887
53888// String returns the string representation.
53889//
53890// API parameter values that are decorated as "sensitive" in the API will not
53891// be included in the string output. The member name will be present, but the
53892// value will be replaced with "sensitive".
53893func (s MetricDimension) String() string {
53894	return awsutil.Prettify(s)
53895}
53896
53897// GoString returns the string representation.
53898//
53899// API parameter values that are decorated as "sensitive" in the API will not
53900// be included in the string output. The member name will be present, but the
53901// value will be replaced with "sensitive".
53902func (s MetricDimension) GoString() string {
53903	return s.String()
53904}
53905
53906// Validate inspects the fields of the type to determine if they are valid.
53907func (s *MetricDimension) Validate() error {
53908	invalidParams := request.ErrInvalidParams{Context: "MetricDimension"}
53909	if s.DimensionName == nil {
53910		invalidParams.Add(request.NewErrParamRequired("DimensionName"))
53911	}
53912	if s.DimensionName != nil && len(*s.DimensionName) < 1 {
53913		invalidParams.Add(request.NewErrParamMinLen("DimensionName", 1))
53914	}
53915
53916	if invalidParams.Len() > 0 {
53917		return invalidParams
53918	}
53919	return nil
53920}
53921
53922// SetDimensionName sets the DimensionName field's value.
53923func (s *MetricDimension) SetDimensionName(v string) *MetricDimension {
53924	s.DimensionName = &v
53925	return s
53926}
53927
53928// SetOperator sets the Operator field's value.
53929func (s *MetricDimension) SetOperator(v string) *MetricDimension {
53930	s.Operator = &v
53931	return s
53932}
53933
53934// The metric you want to retain. Dimensions are optional.
53935type MetricToRetain struct {
53936	_ struct{} `type:"structure"`
53937
53938	// What is measured by the behavior.
53939	//
53940	// Metric is a required field
53941	Metric *string `locationName:"metric" type:"string" required:"true"`
53942
53943	// The dimension of a metric. This can't be used with custom metrics.
53944	MetricDimension *MetricDimension `locationName:"metricDimension" type:"structure"`
53945}
53946
53947// String returns the string representation.
53948//
53949// API parameter values that are decorated as "sensitive" in the API will not
53950// be included in the string output. The member name will be present, but the
53951// value will be replaced with "sensitive".
53952func (s MetricToRetain) String() string {
53953	return awsutil.Prettify(s)
53954}
53955
53956// GoString returns the string representation.
53957//
53958// API parameter values that are decorated as "sensitive" in the API will not
53959// be included in the string output. The member name will be present, but the
53960// value will be replaced with "sensitive".
53961func (s MetricToRetain) GoString() string {
53962	return s.String()
53963}
53964
53965// Validate inspects the fields of the type to determine if they are valid.
53966func (s *MetricToRetain) Validate() error {
53967	invalidParams := request.ErrInvalidParams{Context: "MetricToRetain"}
53968	if s.Metric == nil {
53969		invalidParams.Add(request.NewErrParamRequired("Metric"))
53970	}
53971	if s.MetricDimension != nil {
53972		if err := s.MetricDimension.Validate(); err != nil {
53973			invalidParams.AddNested("MetricDimension", err.(request.ErrInvalidParams))
53974		}
53975	}
53976
53977	if invalidParams.Len() > 0 {
53978		return invalidParams
53979	}
53980	return nil
53981}
53982
53983// SetMetric sets the Metric field's value.
53984func (s *MetricToRetain) SetMetric(v string) *MetricToRetain {
53985	s.Metric = &v
53986	return s
53987}
53988
53989// SetMetricDimension sets the MetricDimension field's value.
53990func (s *MetricToRetain) SetMetricDimension(v *MetricDimension) *MetricToRetain {
53991	s.MetricDimension = v
53992	return s
53993}
53994
53995// The value to be compared with the metric.
53996type MetricValue struct {
53997	_ struct{} `type:"structure"`
53998
53999	// If the comparisonOperator calls for a set of CIDRs, use this to specify that
54000	// set to be compared with the metric.
54001	Cidrs []*string `locationName:"cidrs" type:"list"`
54002
54003	// If the comparisonOperator calls for a numeric value, use this to specify
54004	// that numeric value to be compared with the metric.
54005	Count *int64 `locationName:"count" type:"long"`
54006
54007	// The numeral value of a metric.
54008	Number *float64 `locationName:"number" type:"double"`
54009
54010	// The numeral values of a metric.
54011	Numbers []*float64 `locationName:"numbers" type:"list"`
54012
54013	// If the comparisonOperator calls for a set of ports, use this to specify that
54014	// set to be compared with the metric.
54015	Ports []*int64 `locationName:"ports" type:"list"`
54016
54017	// The string values of a metric.
54018	Strings []*string `locationName:"strings" type:"list"`
54019}
54020
54021// String returns the string representation.
54022//
54023// API parameter values that are decorated as "sensitive" in the API will not
54024// be included in the string output. The member name will be present, but the
54025// value will be replaced with "sensitive".
54026func (s MetricValue) String() string {
54027	return awsutil.Prettify(s)
54028}
54029
54030// GoString returns the string representation.
54031//
54032// API parameter values that are decorated as "sensitive" in the API will not
54033// be included in the string output. The member name will be present, but the
54034// value will be replaced with "sensitive".
54035func (s MetricValue) GoString() string {
54036	return s.String()
54037}
54038
54039// SetCidrs sets the Cidrs field's value.
54040func (s *MetricValue) SetCidrs(v []*string) *MetricValue {
54041	s.Cidrs = v
54042	return s
54043}
54044
54045// SetCount sets the Count field's value.
54046func (s *MetricValue) SetCount(v int64) *MetricValue {
54047	s.Count = &v
54048	return s
54049}
54050
54051// SetNumber sets the Number field's value.
54052func (s *MetricValue) SetNumber(v float64) *MetricValue {
54053	s.Number = &v
54054	return s
54055}
54056
54057// SetNumbers sets the Numbers field's value.
54058func (s *MetricValue) SetNumbers(v []*float64) *MetricValue {
54059	s.Numbers = v
54060	return s
54061}
54062
54063// SetPorts sets the Ports field's value.
54064func (s *MetricValue) SetPorts(v []*int64) *MetricValue {
54065	s.Ports = v
54066	return s
54067}
54068
54069// SetStrings sets the Strings field's value.
54070func (s *MetricValue) SetStrings(v []*string) *MetricValue {
54071	s.Strings = v
54072	return s
54073}
54074
54075// Describes which changes should be applied as part of a mitigation action.
54076type MitigationAction struct {
54077	_ struct{} `type:"structure"`
54078
54079	// The set of parameters for this mitigation action. The parameters vary, depending
54080	// on the kind of action you apply.
54081	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
54082
54083	// A unique identifier for the mitigation action.
54084	Id *string `locationName:"id" type:"string"`
54085
54086	// A user-friendly name for the mitigation action.
54087	Name *string `locationName:"name" type:"string"`
54088
54089	// The IAM role ARN used to apply this mitigation action.
54090	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
54091}
54092
54093// String returns the string representation.
54094//
54095// API parameter values that are decorated as "sensitive" in the API will not
54096// be included in the string output. The member name will be present, but the
54097// value will be replaced with "sensitive".
54098func (s MitigationAction) String() string {
54099	return awsutil.Prettify(s)
54100}
54101
54102// GoString returns the string representation.
54103//
54104// API parameter values that are decorated as "sensitive" in the API will not
54105// be included in the string output. The member name will be present, but the
54106// value will be replaced with "sensitive".
54107func (s MitigationAction) GoString() string {
54108	return s.String()
54109}
54110
54111// SetActionParams sets the ActionParams field's value.
54112func (s *MitigationAction) SetActionParams(v *MitigationActionParams) *MitigationAction {
54113	s.ActionParams = v
54114	return s
54115}
54116
54117// SetId sets the Id field's value.
54118func (s *MitigationAction) SetId(v string) *MitigationAction {
54119	s.Id = &v
54120	return s
54121}
54122
54123// SetName sets the Name field's value.
54124func (s *MitigationAction) SetName(v string) *MitigationAction {
54125	s.Name = &v
54126	return s
54127}
54128
54129// SetRoleArn sets the RoleArn field's value.
54130func (s *MitigationAction) SetRoleArn(v string) *MitigationAction {
54131	s.RoleArn = &v
54132	return s
54133}
54134
54135// Information that identifies a mitigation action. This information is returned
54136// by ListMitigationActions.
54137type MitigationActionIdentifier struct {
54138	_ struct{} `type:"structure"`
54139
54140	// The IAM role ARN used to apply this mitigation action.
54141	ActionArn *string `locationName:"actionArn" type:"string"`
54142
54143	// The friendly name of the mitigation action.
54144	ActionName *string `locationName:"actionName" type:"string"`
54145
54146	// The date when this mitigation action was created.
54147	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
54148}
54149
54150// String returns the string representation.
54151//
54152// API parameter values that are decorated as "sensitive" in the API will not
54153// be included in the string output. The member name will be present, but the
54154// value will be replaced with "sensitive".
54155func (s MitigationActionIdentifier) String() string {
54156	return awsutil.Prettify(s)
54157}
54158
54159// GoString returns the string representation.
54160//
54161// API parameter values that are decorated as "sensitive" in the API will not
54162// be included in the string output. The member name will be present, but the
54163// value will be replaced with "sensitive".
54164func (s MitigationActionIdentifier) GoString() string {
54165	return s.String()
54166}
54167
54168// SetActionArn sets the ActionArn field's value.
54169func (s *MitigationActionIdentifier) SetActionArn(v string) *MitigationActionIdentifier {
54170	s.ActionArn = &v
54171	return s
54172}
54173
54174// SetActionName sets the ActionName field's value.
54175func (s *MitigationActionIdentifier) SetActionName(v string) *MitigationActionIdentifier {
54176	s.ActionName = &v
54177	return s
54178}
54179
54180// SetCreationDate sets the CreationDate field's value.
54181func (s *MitigationActionIdentifier) SetCreationDate(v time.Time) *MitigationActionIdentifier {
54182	s.CreationDate = &v
54183	return s
54184}
54185
54186// The set of parameters for this mitigation action. You can specify only one
54187// type of parameter (in other words, you can apply only one action for each
54188// defined mitigation action).
54189type MitigationActionParams struct {
54190	_ struct{} `type:"structure"`
54191
54192	// Parameters to define a mitigation action that moves devices associated with
54193	// a certificate to one or more specified thing groups, typically for quarantine.
54194	AddThingsToThingGroupParams *AddThingsToThingGroupParams `locationName:"addThingsToThingGroupParams" type:"structure"`
54195
54196	// Parameters to define a mitigation action that enables Amazon Web Services
54197	// IoT Core logging at a specified level of detail.
54198	EnableIoTLoggingParams *EnableIoTLoggingParams `locationName:"enableIoTLoggingParams" type:"structure"`
54199
54200	// Parameters to define a mitigation action that publishes findings to Amazon
54201	// Simple Notification Service (Amazon SNS. You can implement your own custom
54202	// actions in response to the Amazon SNS messages.
54203	PublishFindingToSnsParams *PublishFindingToSnsParams `locationName:"publishFindingToSnsParams" type:"structure"`
54204
54205	// Parameters to define a mitigation action that adds a blank policy to restrict
54206	// permissions.
54207	ReplaceDefaultPolicyVersionParams *ReplaceDefaultPolicyVersionParams `locationName:"replaceDefaultPolicyVersionParams" type:"structure"`
54208
54209	// Parameters to define a mitigation action that changes the state of the CA
54210	// certificate to inactive.
54211	UpdateCACertificateParams *UpdateCACertificateParams `locationName:"updateCACertificateParams" type:"structure"`
54212
54213	// Parameters to define a mitigation action that changes the state of the device
54214	// certificate to inactive.
54215	UpdateDeviceCertificateParams *UpdateDeviceCertificateParams `locationName:"updateDeviceCertificateParams" type:"structure"`
54216}
54217
54218// String returns the string representation.
54219//
54220// API parameter values that are decorated as "sensitive" in the API will not
54221// be included in the string output. The member name will be present, but the
54222// value will be replaced with "sensitive".
54223func (s MitigationActionParams) String() string {
54224	return awsutil.Prettify(s)
54225}
54226
54227// GoString returns the string representation.
54228//
54229// API parameter values that are decorated as "sensitive" in the API will not
54230// be included in the string output. The member name will be present, but the
54231// value will be replaced with "sensitive".
54232func (s MitigationActionParams) GoString() string {
54233	return s.String()
54234}
54235
54236// Validate inspects the fields of the type to determine if they are valid.
54237func (s *MitigationActionParams) Validate() error {
54238	invalidParams := request.ErrInvalidParams{Context: "MitigationActionParams"}
54239	if s.AddThingsToThingGroupParams != nil {
54240		if err := s.AddThingsToThingGroupParams.Validate(); err != nil {
54241			invalidParams.AddNested("AddThingsToThingGroupParams", err.(request.ErrInvalidParams))
54242		}
54243	}
54244	if s.EnableIoTLoggingParams != nil {
54245		if err := s.EnableIoTLoggingParams.Validate(); err != nil {
54246			invalidParams.AddNested("EnableIoTLoggingParams", err.(request.ErrInvalidParams))
54247		}
54248	}
54249	if s.PublishFindingToSnsParams != nil {
54250		if err := s.PublishFindingToSnsParams.Validate(); err != nil {
54251			invalidParams.AddNested("PublishFindingToSnsParams", err.(request.ErrInvalidParams))
54252		}
54253	}
54254	if s.ReplaceDefaultPolicyVersionParams != nil {
54255		if err := s.ReplaceDefaultPolicyVersionParams.Validate(); err != nil {
54256			invalidParams.AddNested("ReplaceDefaultPolicyVersionParams", err.(request.ErrInvalidParams))
54257		}
54258	}
54259	if s.UpdateCACertificateParams != nil {
54260		if err := s.UpdateCACertificateParams.Validate(); err != nil {
54261			invalidParams.AddNested("UpdateCACertificateParams", err.(request.ErrInvalidParams))
54262		}
54263	}
54264	if s.UpdateDeviceCertificateParams != nil {
54265		if err := s.UpdateDeviceCertificateParams.Validate(); err != nil {
54266			invalidParams.AddNested("UpdateDeviceCertificateParams", err.(request.ErrInvalidParams))
54267		}
54268	}
54269
54270	if invalidParams.Len() > 0 {
54271		return invalidParams
54272	}
54273	return nil
54274}
54275
54276// SetAddThingsToThingGroupParams sets the AddThingsToThingGroupParams field's value.
54277func (s *MitigationActionParams) SetAddThingsToThingGroupParams(v *AddThingsToThingGroupParams) *MitigationActionParams {
54278	s.AddThingsToThingGroupParams = v
54279	return s
54280}
54281
54282// SetEnableIoTLoggingParams sets the EnableIoTLoggingParams field's value.
54283func (s *MitigationActionParams) SetEnableIoTLoggingParams(v *EnableIoTLoggingParams) *MitigationActionParams {
54284	s.EnableIoTLoggingParams = v
54285	return s
54286}
54287
54288// SetPublishFindingToSnsParams sets the PublishFindingToSnsParams field's value.
54289func (s *MitigationActionParams) SetPublishFindingToSnsParams(v *PublishFindingToSnsParams) *MitigationActionParams {
54290	s.PublishFindingToSnsParams = v
54291	return s
54292}
54293
54294// SetReplaceDefaultPolicyVersionParams sets the ReplaceDefaultPolicyVersionParams field's value.
54295func (s *MitigationActionParams) SetReplaceDefaultPolicyVersionParams(v *ReplaceDefaultPolicyVersionParams) *MitigationActionParams {
54296	s.ReplaceDefaultPolicyVersionParams = v
54297	return s
54298}
54299
54300// SetUpdateCACertificateParams sets the UpdateCACertificateParams field's value.
54301func (s *MitigationActionParams) SetUpdateCACertificateParams(v *UpdateCACertificateParams) *MitigationActionParams {
54302	s.UpdateCACertificateParams = v
54303	return s
54304}
54305
54306// SetUpdateDeviceCertificateParams sets the UpdateDeviceCertificateParams field's value.
54307func (s *MitigationActionParams) SetUpdateDeviceCertificateParams(v *UpdateDeviceCertificateParams) *MitigationActionParams {
54308	s.UpdateDeviceCertificateParams = v
54309	return s
54310}
54311
54312// Specifies the MQTT context to use for the test authorizer request
54313type MqttContext struct {
54314	_ struct{} `type:"structure"`
54315
54316	// The value of the clientId key in an MQTT authorization request.
54317	ClientId *string `locationName:"clientId" min:"1" type:"string"`
54318
54319	// The value of the password key in an MQTT authorization request.
54320	// Password is automatically base64 encoded/decoded by the SDK.
54321	Password []byte `locationName:"password" min:"1" type:"blob"`
54322
54323	// The value of the username key in an MQTT authorization request.
54324	Username *string `locationName:"username" min:"1" type:"string"`
54325}
54326
54327// String returns the string representation.
54328//
54329// API parameter values that are decorated as "sensitive" in the API will not
54330// be included in the string output. The member name will be present, but the
54331// value will be replaced with "sensitive".
54332func (s MqttContext) String() string {
54333	return awsutil.Prettify(s)
54334}
54335
54336// GoString returns the string representation.
54337//
54338// API parameter values that are decorated as "sensitive" in the API will not
54339// be included in the string output. The member name will be present, but the
54340// value will be replaced with "sensitive".
54341func (s MqttContext) GoString() string {
54342	return s.String()
54343}
54344
54345// Validate inspects the fields of the type to determine if they are valid.
54346func (s *MqttContext) Validate() error {
54347	invalidParams := request.ErrInvalidParams{Context: "MqttContext"}
54348	if s.ClientId != nil && len(*s.ClientId) < 1 {
54349		invalidParams.Add(request.NewErrParamMinLen("ClientId", 1))
54350	}
54351	if s.Password != nil && len(s.Password) < 1 {
54352		invalidParams.Add(request.NewErrParamMinLen("Password", 1))
54353	}
54354	if s.Username != nil && len(*s.Username) < 1 {
54355		invalidParams.Add(request.NewErrParamMinLen("Username", 1))
54356	}
54357
54358	if invalidParams.Len() > 0 {
54359		return invalidParams
54360	}
54361	return nil
54362}
54363
54364// SetClientId sets the ClientId field's value.
54365func (s *MqttContext) SetClientId(v string) *MqttContext {
54366	s.ClientId = &v
54367	return s
54368}
54369
54370// SetPassword sets the Password field's value.
54371func (s *MqttContext) SetPassword(v []byte) *MqttContext {
54372	s.Password = v
54373	return s
54374}
54375
54376// SetUsername sets the Username field's value.
54377func (s *MqttContext) SetUsername(v string) *MqttContext {
54378	s.Username = &v
54379	return s
54380}
54381
54382// Information about the resource that was noncompliant with the audit check.
54383type NonCompliantResource struct {
54384	_ struct{} `type:"structure"`
54385
54386	// Other information about the noncompliant resource.
54387	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
54388
54389	// Information that identifies the noncompliant resource.
54390	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
54391
54392	// The type of the noncompliant resource.
54393	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
54394}
54395
54396// String returns the string representation.
54397//
54398// API parameter values that are decorated as "sensitive" in the API will not
54399// be included in the string output. The member name will be present, but the
54400// value will be replaced with "sensitive".
54401func (s NonCompliantResource) String() string {
54402	return awsutil.Prettify(s)
54403}
54404
54405// GoString returns the string representation.
54406//
54407// API parameter values that are decorated as "sensitive" in the API will not
54408// be included in the string output. The member name will be present, but the
54409// value will be replaced with "sensitive".
54410func (s NonCompliantResource) GoString() string {
54411	return s.String()
54412}
54413
54414// SetAdditionalInfo sets the AdditionalInfo field's value.
54415func (s *NonCompliantResource) SetAdditionalInfo(v map[string]*string) *NonCompliantResource {
54416	s.AdditionalInfo = v
54417	return s
54418}
54419
54420// SetResourceIdentifier sets the ResourceIdentifier field's value.
54421func (s *NonCompliantResource) SetResourceIdentifier(v *ResourceIdentifier) *NonCompliantResource {
54422	s.ResourceIdentifier = v
54423	return s
54424}
54425
54426// SetResourceType sets the ResourceType field's value.
54427func (s *NonCompliantResource) SetResourceType(v string) *NonCompliantResource {
54428	s.ResourceType = &v
54429	return s
54430}
54431
54432// The resource is not configured.
54433type NotConfiguredException struct {
54434	_            struct{}                  `type:"structure"`
54435	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
54436
54437	// The message for the exception.
54438	Message_ *string `locationName:"message" type:"string"`
54439}
54440
54441// String returns the string representation.
54442//
54443// API parameter values that are decorated as "sensitive" in the API will not
54444// be included in the string output. The member name will be present, but the
54445// value will be replaced with "sensitive".
54446func (s NotConfiguredException) String() string {
54447	return awsutil.Prettify(s)
54448}
54449
54450// GoString returns the string representation.
54451//
54452// API parameter values that are decorated as "sensitive" in the API will not
54453// be included in the string output. The member name will be present, but the
54454// value will be replaced with "sensitive".
54455func (s NotConfiguredException) GoString() string {
54456	return s.String()
54457}
54458
54459func newErrorNotConfiguredException(v protocol.ResponseMetadata) error {
54460	return &NotConfiguredException{
54461		RespMetadata: v,
54462	}
54463}
54464
54465// Code returns the exception type name.
54466func (s *NotConfiguredException) Code() string {
54467	return "NotConfiguredException"
54468}
54469
54470// Message returns the exception's message.
54471func (s *NotConfiguredException) Message() string {
54472	if s.Message_ != nil {
54473		return *s.Message_
54474	}
54475	return ""
54476}
54477
54478// OrigErr always returns nil, satisfies awserr.Error interface.
54479func (s *NotConfiguredException) OrigErr() error {
54480	return nil
54481}
54482
54483func (s *NotConfiguredException) Error() string {
54484	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
54485}
54486
54487// Status code returns the HTTP status code for the request's response error.
54488func (s *NotConfiguredException) StatusCode() int {
54489	return s.RespMetadata.StatusCode
54490}
54491
54492// RequestID returns the service's response RequestID for request.
54493func (s *NotConfiguredException) RequestID() string {
54494	return s.RespMetadata.RequestID
54495}
54496
54497// Describes a file to be associated with an OTA update.
54498type OTAUpdateFile struct {
54499	_ struct{} `type:"structure"`
54500
54501	// A list of name/attribute pairs.
54502	Attributes map[string]*string `locationName:"attributes" type:"map"`
54503
54504	// The code signing method of the file.
54505	CodeSigning *CodeSigning `locationName:"codeSigning" type:"structure"`
54506
54507	// The location of the updated firmware.
54508	FileLocation *FileLocation `locationName:"fileLocation" type:"structure"`
54509
54510	// The name of the file.
54511	FileName *string `locationName:"fileName" type:"string"`
54512
54513	// An integer value you can include in the job document to allow your devices
54514	// to identify the type of file received from the cloud.
54515	FileType *int64 `locationName:"fileType" type:"integer"`
54516
54517	// The file version.
54518	FileVersion *string `locationName:"fileVersion" type:"string"`
54519}
54520
54521// String returns the string representation.
54522//
54523// API parameter values that are decorated as "sensitive" in the API will not
54524// be included in the string output. The member name will be present, but the
54525// value will be replaced with "sensitive".
54526func (s OTAUpdateFile) String() string {
54527	return awsutil.Prettify(s)
54528}
54529
54530// GoString returns the string representation.
54531//
54532// API parameter values that are decorated as "sensitive" in the API will not
54533// be included in the string output. The member name will be present, but the
54534// value will be replaced with "sensitive".
54535func (s OTAUpdateFile) GoString() string {
54536	return s.String()
54537}
54538
54539// Validate inspects the fields of the type to determine if they are valid.
54540func (s *OTAUpdateFile) Validate() error {
54541	invalidParams := request.ErrInvalidParams{Context: "OTAUpdateFile"}
54542	if s.CodeSigning != nil {
54543		if err := s.CodeSigning.Validate(); err != nil {
54544			invalidParams.AddNested("CodeSigning", err.(request.ErrInvalidParams))
54545		}
54546	}
54547	if s.FileLocation != nil {
54548		if err := s.FileLocation.Validate(); err != nil {
54549			invalidParams.AddNested("FileLocation", err.(request.ErrInvalidParams))
54550		}
54551	}
54552
54553	if invalidParams.Len() > 0 {
54554		return invalidParams
54555	}
54556	return nil
54557}
54558
54559// SetAttributes sets the Attributes field's value.
54560func (s *OTAUpdateFile) SetAttributes(v map[string]*string) *OTAUpdateFile {
54561	s.Attributes = v
54562	return s
54563}
54564
54565// SetCodeSigning sets the CodeSigning field's value.
54566func (s *OTAUpdateFile) SetCodeSigning(v *CodeSigning) *OTAUpdateFile {
54567	s.CodeSigning = v
54568	return s
54569}
54570
54571// SetFileLocation sets the FileLocation field's value.
54572func (s *OTAUpdateFile) SetFileLocation(v *FileLocation) *OTAUpdateFile {
54573	s.FileLocation = v
54574	return s
54575}
54576
54577// SetFileName sets the FileName field's value.
54578func (s *OTAUpdateFile) SetFileName(v string) *OTAUpdateFile {
54579	s.FileName = &v
54580	return s
54581}
54582
54583// SetFileType sets the FileType field's value.
54584func (s *OTAUpdateFile) SetFileType(v int64) *OTAUpdateFile {
54585	s.FileType = &v
54586	return s
54587}
54588
54589// SetFileVersion sets the FileVersion field's value.
54590func (s *OTAUpdateFile) SetFileVersion(v string) *OTAUpdateFile {
54591	s.FileVersion = &v
54592	return s
54593}
54594
54595// Information about an OTA update.
54596type OTAUpdateInfo struct {
54597	_ struct{} `type:"structure"`
54598
54599	// A collection of name/value pairs
54600	AdditionalParameters map[string]*string `locationName:"additionalParameters" type:"map"`
54601
54602	// The IoT job ARN associated with the OTA update.
54603	AwsIotJobArn *string `locationName:"awsIotJobArn" type:"string"`
54604
54605	// The IoT job ID associated with the OTA update.
54606	AwsIotJobId *string `locationName:"awsIotJobId" type:"string"`
54607
54608	// Configuration for the rollout of OTA updates.
54609	AwsJobExecutionsRolloutConfig *AwsJobExecutionsRolloutConfig `locationName:"awsJobExecutionsRolloutConfig" type:"structure"`
54610
54611	// Configuration information for pre-signed URLs. Valid when protocols contains
54612	// HTTP.
54613	AwsJobPresignedUrlConfig *AwsJobPresignedUrlConfig `locationName:"awsJobPresignedUrlConfig" type:"structure"`
54614
54615	// The date when the OTA update was created.
54616	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
54617
54618	// A description of the OTA update.
54619	Description *string `locationName:"description" type:"string"`
54620
54621	// Error information associated with the OTA update.
54622	ErrorInfo *ErrorInfo `locationName:"errorInfo" type:"structure"`
54623
54624	// The date when the OTA update was last updated.
54625	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
54626
54627	// The OTA update ARN.
54628	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
54629
54630	// A list of files associated with the OTA update.
54631	OtaUpdateFiles []*OTAUpdateFile `locationName:"otaUpdateFiles" min:"1" type:"list"`
54632
54633	// The OTA update ID.
54634	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
54635
54636	// The status of the OTA update.
54637	OtaUpdateStatus *string `locationName:"otaUpdateStatus" type:"string" enum:"OTAUpdateStatus"`
54638
54639	// The protocol used to transfer the OTA update image. Valid values are [HTTP],
54640	// [MQTT], [HTTP, MQTT]. When both HTTP and MQTT are specified, the target device
54641	// can choose the protocol.
54642	Protocols []*string `locationName:"protocols" min:"1" type:"list"`
54643
54644	// Specifies whether the OTA update will continue to run (CONTINUOUS), or will
54645	// be complete after all those things specified as targets have completed the
54646	// OTA update (SNAPSHOT). If continuous, the OTA update may also be run on a
54647	// thing when a change is detected in a target. For example, an OTA update will
54648	// run on a thing when the thing is added to a target group, even after the
54649	// OTA update was completed by all things originally in the group.
54650	TargetSelection *string `locationName:"targetSelection" type:"string" enum:"TargetSelection"`
54651
54652	// The targets of the OTA update.
54653	Targets []*string `locationName:"targets" min:"1" type:"list"`
54654}
54655
54656// String returns the string representation.
54657//
54658// API parameter values that are decorated as "sensitive" in the API will not
54659// be included in the string output. The member name will be present, but the
54660// value will be replaced with "sensitive".
54661func (s OTAUpdateInfo) String() string {
54662	return awsutil.Prettify(s)
54663}
54664
54665// GoString returns the string representation.
54666//
54667// API parameter values that are decorated as "sensitive" in the API will not
54668// be included in the string output. The member name will be present, but the
54669// value will be replaced with "sensitive".
54670func (s OTAUpdateInfo) GoString() string {
54671	return s.String()
54672}
54673
54674// SetAdditionalParameters sets the AdditionalParameters field's value.
54675func (s *OTAUpdateInfo) SetAdditionalParameters(v map[string]*string) *OTAUpdateInfo {
54676	s.AdditionalParameters = v
54677	return s
54678}
54679
54680// SetAwsIotJobArn sets the AwsIotJobArn field's value.
54681func (s *OTAUpdateInfo) SetAwsIotJobArn(v string) *OTAUpdateInfo {
54682	s.AwsIotJobArn = &v
54683	return s
54684}
54685
54686// SetAwsIotJobId sets the AwsIotJobId field's value.
54687func (s *OTAUpdateInfo) SetAwsIotJobId(v string) *OTAUpdateInfo {
54688	s.AwsIotJobId = &v
54689	return s
54690}
54691
54692// SetAwsJobExecutionsRolloutConfig sets the AwsJobExecutionsRolloutConfig field's value.
54693func (s *OTAUpdateInfo) SetAwsJobExecutionsRolloutConfig(v *AwsJobExecutionsRolloutConfig) *OTAUpdateInfo {
54694	s.AwsJobExecutionsRolloutConfig = v
54695	return s
54696}
54697
54698// SetAwsJobPresignedUrlConfig sets the AwsJobPresignedUrlConfig field's value.
54699func (s *OTAUpdateInfo) SetAwsJobPresignedUrlConfig(v *AwsJobPresignedUrlConfig) *OTAUpdateInfo {
54700	s.AwsJobPresignedUrlConfig = v
54701	return s
54702}
54703
54704// SetCreationDate sets the CreationDate field's value.
54705func (s *OTAUpdateInfo) SetCreationDate(v time.Time) *OTAUpdateInfo {
54706	s.CreationDate = &v
54707	return s
54708}
54709
54710// SetDescription sets the Description field's value.
54711func (s *OTAUpdateInfo) SetDescription(v string) *OTAUpdateInfo {
54712	s.Description = &v
54713	return s
54714}
54715
54716// SetErrorInfo sets the ErrorInfo field's value.
54717func (s *OTAUpdateInfo) SetErrorInfo(v *ErrorInfo) *OTAUpdateInfo {
54718	s.ErrorInfo = v
54719	return s
54720}
54721
54722// SetLastModifiedDate sets the LastModifiedDate field's value.
54723func (s *OTAUpdateInfo) SetLastModifiedDate(v time.Time) *OTAUpdateInfo {
54724	s.LastModifiedDate = &v
54725	return s
54726}
54727
54728// SetOtaUpdateArn sets the OtaUpdateArn field's value.
54729func (s *OTAUpdateInfo) SetOtaUpdateArn(v string) *OTAUpdateInfo {
54730	s.OtaUpdateArn = &v
54731	return s
54732}
54733
54734// SetOtaUpdateFiles sets the OtaUpdateFiles field's value.
54735func (s *OTAUpdateInfo) SetOtaUpdateFiles(v []*OTAUpdateFile) *OTAUpdateInfo {
54736	s.OtaUpdateFiles = v
54737	return s
54738}
54739
54740// SetOtaUpdateId sets the OtaUpdateId field's value.
54741func (s *OTAUpdateInfo) SetOtaUpdateId(v string) *OTAUpdateInfo {
54742	s.OtaUpdateId = &v
54743	return s
54744}
54745
54746// SetOtaUpdateStatus sets the OtaUpdateStatus field's value.
54747func (s *OTAUpdateInfo) SetOtaUpdateStatus(v string) *OTAUpdateInfo {
54748	s.OtaUpdateStatus = &v
54749	return s
54750}
54751
54752// SetProtocols sets the Protocols field's value.
54753func (s *OTAUpdateInfo) SetProtocols(v []*string) *OTAUpdateInfo {
54754	s.Protocols = v
54755	return s
54756}
54757
54758// SetTargetSelection sets the TargetSelection field's value.
54759func (s *OTAUpdateInfo) SetTargetSelection(v string) *OTAUpdateInfo {
54760	s.TargetSelection = &v
54761	return s
54762}
54763
54764// SetTargets sets the Targets field's value.
54765func (s *OTAUpdateInfo) SetTargets(v []*string) *OTAUpdateInfo {
54766	s.Targets = v
54767	return s
54768}
54769
54770// An OTA update summary.
54771type OTAUpdateSummary struct {
54772	_ struct{} `type:"structure"`
54773
54774	// The date when the OTA update was created.
54775	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
54776
54777	// The OTA update ARN.
54778	OtaUpdateArn *string `locationName:"otaUpdateArn" type:"string"`
54779
54780	// The OTA update ID.
54781	OtaUpdateId *string `locationName:"otaUpdateId" min:"1" type:"string"`
54782}
54783
54784// String returns the string representation.
54785//
54786// API parameter values that are decorated as "sensitive" in the API will not
54787// be included in the string output. The member name will be present, but the
54788// value will be replaced with "sensitive".
54789func (s OTAUpdateSummary) String() string {
54790	return awsutil.Prettify(s)
54791}
54792
54793// GoString returns the string representation.
54794//
54795// API parameter values that are decorated as "sensitive" in the API will not
54796// be included in the string output. The member name will be present, but the
54797// value will be replaced with "sensitive".
54798func (s OTAUpdateSummary) GoString() string {
54799	return s.String()
54800}
54801
54802// SetCreationDate sets the CreationDate field's value.
54803func (s *OTAUpdateSummary) SetCreationDate(v time.Time) *OTAUpdateSummary {
54804	s.CreationDate = &v
54805	return s
54806}
54807
54808// SetOtaUpdateArn sets the OtaUpdateArn field's value.
54809func (s *OTAUpdateSummary) SetOtaUpdateArn(v string) *OTAUpdateSummary {
54810	s.OtaUpdateArn = &v
54811	return s
54812}
54813
54814// SetOtaUpdateId sets the OtaUpdateId field's value.
54815func (s *OTAUpdateSummary) SetOtaUpdateId(v string) *OTAUpdateSummary {
54816	s.OtaUpdateId = &v
54817	return s
54818}
54819
54820// Describes an action that writes data to an Amazon OpenSearch Service domain.
54821type OpenSearchAction struct {
54822	_ struct{} `type:"structure"`
54823
54824	// The endpoint of your OpenSearch domain.
54825	//
54826	// Endpoint is a required field
54827	Endpoint *string `locationName:"endpoint" type:"string" required:"true"`
54828
54829	// The unique identifier for the document you are storing.
54830	//
54831	// Id is a required field
54832	Id *string `locationName:"id" type:"string" required:"true"`
54833
54834	// The OpenSearch index where you want to store your data.
54835	//
54836	// Index is a required field
54837	Index *string `locationName:"index" type:"string" required:"true"`
54838
54839	// The IAM role ARN that has access to OpenSearch.
54840	//
54841	// RoleArn is a required field
54842	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
54843
54844	// The type of document you are storing.
54845	//
54846	// Type is a required field
54847	Type *string `locationName:"type" type:"string" required:"true"`
54848}
54849
54850// String returns the string representation.
54851//
54852// API parameter values that are decorated as "sensitive" in the API will not
54853// be included in the string output. The member name will be present, but the
54854// value will be replaced with "sensitive".
54855func (s OpenSearchAction) String() string {
54856	return awsutil.Prettify(s)
54857}
54858
54859// GoString returns the string representation.
54860//
54861// API parameter values that are decorated as "sensitive" in the API will not
54862// be included in the string output. The member name will be present, but the
54863// value will be replaced with "sensitive".
54864func (s OpenSearchAction) GoString() string {
54865	return s.String()
54866}
54867
54868// Validate inspects the fields of the type to determine if they are valid.
54869func (s *OpenSearchAction) Validate() error {
54870	invalidParams := request.ErrInvalidParams{Context: "OpenSearchAction"}
54871	if s.Endpoint == nil {
54872		invalidParams.Add(request.NewErrParamRequired("Endpoint"))
54873	}
54874	if s.Id == nil {
54875		invalidParams.Add(request.NewErrParamRequired("Id"))
54876	}
54877	if s.Index == nil {
54878		invalidParams.Add(request.NewErrParamRequired("Index"))
54879	}
54880	if s.RoleArn == nil {
54881		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
54882	}
54883	if s.Type == nil {
54884		invalidParams.Add(request.NewErrParamRequired("Type"))
54885	}
54886
54887	if invalidParams.Len() > 0 {
54888		return invalidParams
54889	}
54890	return nil
54891}
54892
54893// SetEndpoint sets the Endpoint field's value.
54894func (s *OpenSearchAction) SetEndpoint(v string) *OpenSearchAction {
54895	s.Endpoint = &v
54896	return s
54897}
54898
54899// SetId sets the Id field's value.
54900func (s *OpenSearchAction) SetId(v string) *OpenSearchAction {
54901	s.Id = &v
54902	return s
54903}
54904
54905// SetIndex sets the Index field's value.
54906func (s *OpenSearchAction) SetIndex(v string) *OpenSearchAction {
54907	s.Index = &v
54908	return s
54909}
54910
54911// SetRoleArn sets the RoleArn field's value.
54912func (s *OpenSearchAction) SetRoleArn(v string) *OpenSearchAction {
54913	s.RoleArn = &v
54914	return s
54915}
54916
54917// SetType sets the Type field's value.
54918func (s *OpenSearchAction) SetType(v string) *OpenSearchAction {
54919	s.Type = &v
54920	return s
54921}
54922
54923// A certificate that has been transferred but not yet accepted.
54924type OutgoingCertificate struct {
54925	_ struct{} `type:"structure"`
54926
54927	// The certificate ARN.
54928	CertificateArn *string `locationName:"certificateArn" type:"string"`
54929
54930	// The certificate ID.
54931	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
54932
54933	// The certificate creation date.
54934	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
54935
54936	// The date the transfer was initiated.
54937	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
54938
54939	// The transfer message.
54940	TransferMessage *string `locationName:"transferMessage" type:"string"`
54941
54942	// The Amazon Web Services account to which the transfer was made.
54943	TransferredTo *string `locationName:"transferredTo" min:"12" type:"string"`
54944}
54945
54946// String returns the string representation.
54947//
54948// API parameter values that are decorated as "sensitive" in the API will not
54949// be included in the string output. The member name will be present, but the
54950// value will be replaced with "sensitive".
54951func (s OutgoingCertificate) String() string {
54952	return awsutil.Prettify(s)
54953}
54954
54955// GoString returns the string representation.
54956//
54957// API parameter values that are decorated as "sensitive" in the API will not
54958// be included in the string output. The member name will be present, but the
54959// value will be replaced with "sensitive".
54960func (s OutgoingCertificate) GoString() string {
54961	return s.String()
54962}
54963
54964// SetCertificateArn sets the CertificateArn field's value.
54965func (s *OutgoingCertificate) SetCertificateArn(v string) *OutgoingCertificate {
54966	s.CertificateArn = &v
54967	return s
54968}
54969
54970// SetCertificateId sets the CertificateId field's value.
54971func (s *OutgoingCertificate) SetCertificateId(v string) *OutgoingCertificate {
54972	s.CertificateId = &v
54973	return s
54974}
54975
54976// SetCreationDate sets the CreationDate field's value.
54977func (s *OutgoingCertificate) SetCreationDate(v time.Time) *OutgoingCertificate {
54978	s.CreationDate = &v
54979	return s
54980}
54981
54982// SetTransferDate sets the TransferDate field's value.
54983func (s *OutgoingCertificate) SetTransferDate(v time.Time) *OutgoingCertificate {
54984	s.TransferDate = &v
54985	return s
54986}
54987
54988// SetTransferMessage sets the TransferMessage field's value.
54989func (s *OutgoingCertificate) SetTransferMessage(v string) *OutgoingCertificate {
54990	s.TransferMessage = &v
54991	return s
54992}
54993
54994// SetTransferredTo sets the TransferredTo field's value.
54995func (s *OutgoingCertificate) SetTransferredTo(v string) *OutgoingCertificate {
54996	s.TransferredTo = &v
54997	return s
54998}
54999
55000// Describes the percentile and percentile value.
55001type PercentPair struct {
55002	_ struct{} `type:"structure"`
55003
55004	// The percentile.
55005	Percent *float64 `locationName:"percent" type:"double"`
55006
55007	// The value of the percentile.
55008	Value *float64 `locationName:"value" type:"double"`
55009}
55010
55011// String returns the string representation.
55012//
55013// API parameter values that are decorated as "sensitive" in the API will not
55014// be included in the string output. The member name will be present, but the
55015// value will be replaced with "sensitive".
55016func (s PercentPair) String() string {
55017	return awsutil.Prettify(s)
55018}
55019
55020// GoString returns the string representation.
55021//
55022// API parameter values that are decorated as "sensitive" in the API will not
55023// be included in the string output. The member name will be present, but the
55024// value will be replaced with "sensitive".
55025func (s PercentPair) GoString() string {
55026	return s.String()
55027}
55028
55029// SetPercent sets the Percent field's value.
55030func (s *PercentPair) SetPercent(v float64) *PercentPair {
55031	s.Percent = &v
55032	return s
55033}
55034
55035// SetValue sets the Value field's value.
55036func (s *PercentPair) SetValue(v float64) *PercentPair {
55037	s.Value = &v
55038	return s
55039}
55040
55041// Describes an IoT policy.
55042type Policy struct {
55043	_ struct{} `type:"structure"`
55044
55045	// The policy ARN.
55046	PolicyArn *string `locationName:"policyArn" type:"string"`
55047
55048	// The policy name.
55049	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
55050}
55051
55052// String returns the string representation.
55053//
55054// API parameter values that are decorated as "sensitive" in the API will not
55055// be included in the string output. The member name will be present, but the
55056// value will be replaced with "sensitive".
55057func (s Policy) String() string {
55058	return awsutil.Prettify(s)
55059}
55060
55061// GoString returns the string representation.
55062//
55063// API parameter values that are decorated as "sensitive" in the API will not
55064// be included in the string output. The member name will be present, but the
55065// value will be replaced with "sensitive".
55066func (s Policy) GoString() string {
55067	return s.String()
55068}
55069
55070// SetPolicyArn sets the PolicyArn field's value.
55071func (s *Policy) SetPolicyArn(v string) *Policy {
55072	s.PolicyArn = &v
55073	return s
55074}
55075
55076// SetPolicyName sets the PolicyName field's value.
55077func (s *Policy) SetPolicyName(v string) *Policy {
55078	s.PolicyName = &v
55079	return s
55080}
55081
55082// Describes a policy version.
55083type PolicyVersion struct {
55084	_ struct{} `type:"structure"`
55085
55086	// The date and time the policy was created.
55087	CreateDate *time.Time `locationName:"createDate" type:"timestamp"`
55088
55089	// Specifies whether the policy version is the default.
55090	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
55091
55092	// The policy version ID.
55093	VersionId *string `locationName:"versionId" type:"string"`
55094}
55095
55096// String returns the string representation.
55097//
55098// API parameter values that are decorated as "sensitive" in the API will not
55099// be included in the string output. The member name will be present, but the
55100// value will be replaced with "sensitive".
55101func (s PolicyVersion) String() string {
55102	return awsutil.Prettify(s)
55103}
55104
55105// GoString returns the string representation.
55106//
55107// API parameter values that are decorated as "sensitive" in the API will not
55108// be included in the string output. The member name will be present, but the
55109// value will be replaced with "sensitive".
55110func (s PolicyVersion) GoString() string {
55111	return s.String()
55112}
55113
55114// SetCreateDate sets the CreateDate field's value.
55115func (s *PolicyVersion) SetCreateDate(v time.Time) *PolicyVersion {
55116	s.CreateDate = &v
55117	return s
55118}
55119
55120// SetIsDefaultVersion sets the IsDefaultVersion field's value.
55121func (s *PolicyVersion) SetIsDefaultVersion(v bool) *PolicyVersion {
55122	s.IsDefaultVersion = &v
55123	return s
55124}
55125
55126// SetVersionId sets the VersionId field's value.
55127func (s *PolicyVersion) SetVersionId(v string) *PolicyVersion {
55128	s.VersionId = &v
55129	return s
55130}
55131
55132// Information about the version of the policy associated with the resource.
55133type PolicyVersionIdentifier struct {
55134	_ struct{} `type:"structure"`
55135
55136	// The name of the policy.
55137	PolicyName *string `locationName:"policyName" min:"1" type:"string"`
55138
55139	// The ID of the version of the policy associated with the resource.
55140	PolicyVersionId *string `locationName:"policyVersionId" type:"string"`
55141}
55142
55143// String returns the string representation.
55144//
55145// API parameter values that are decorated as "sensitive" in the API will not
55146// be included in the string output. The member name will be present, but the
55147// value will be replaced with "sensitive".
55148func (s PolicyVersionIdentifier) String() string {
55149	return awsutil.Prettify(s)
55150}
55151
55152// GoString returns the string representation.
55153//
55154// API parameter values that are decorated as "sensitive" in the API will not
55155// be included in the string output. The member name will be present, but the
55156// value will be replaced with "sensitive".
55157func (s PolicyVersionIdentifier) GoString() string {
55158	return s.String()
55159}
55160
55161// Validate inspects the fields of the type to determine if they are valid.
55162func (s *PolicyVersionIdentifier) Validate() error {
55163	invalidParams := request.ErrInvalidParams{Context: "PolicyVersionIdentifier"}
55164	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
55165		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
55166	}
55167
55168	if invalidParams.Len() > 0 {
55169		return invalidParams
55170	}
55171	return nil
55172}
55173
55174// SetPolicyName sets the PolicyName field's value.
55175func (s *PolicyVersionIdentifier) SetPolicyName(v string) *PolicyVersionIdentifier {
55176	s.PolicyName = &v
55177	return s
55178}
55179
55180// SetPolicyVersionId sets the PolicyVersionId field's value.
55181func (s *PolicyVersionIdentifier) SetPolicyVersionId(v string) *PolicyVersionIdentifier {
55182	s.PolicyVersionId = &v
55183	return s
55184}
55185
55186// Configuration for pre-signed S3 URLs.
55187type PresignedUrlConfig struct {
55188	_ struct{} `type:"structure"`
55189
55190	// How long (in seconds) pre-signed URLs are valid. Valid values are 60 - 3600,
55191	// the default value is 3600 seconds. Pre-signed URLs are generated when Jobs
55192	// receives an MQTT request for the job document.
55193	ExpiresInSec *int64 `locationName:"expiresInSec" min:"60" type:"long"`
55194
55195	// The ARN of an IAM role that grants grants permission to download files from
55196	// the S3 bucket where the job data/updates are stored. The role must also grant
55197	// permission for IoT to download the files.
55198	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
55199}
55200
55201// String returns the string representation.
55202//
55203// API parameter values that are decorated as "sensitive" in the API will not
55204// be included in the string output. The member name will be present, but the
55205// value will be replaced with "sensitive".
55206func (s PresignedUrlConfig) String() string {
55207	return awsutil.Prettify(s)
55208}
55209
55210// GoString returns the string representation.
55211//
55212// API parameter values that are decorated as "sensitive" in the API will not
55213// be included in the string output. The member name will be present, but the
55214// value will be replaced with "sensitive".
55215func (s PresignedUrlConfig) GoString() string {
55216	return s.String()
55217}
55218
55219// Validate inspects the fields of the type to determine if they are valid.
55220func (s *PresignedUrlConfig) Validate() error {
55221	invalidParams := request.ErrInvalidParams{Context: "PresignedUrlConfig"}
55222	if s.ExpiresInSec != nil && *s.ExpiresInSec < 60 {
55223		invalidParams.Add(request.NewErrParamMinValue("ExpiresInSec", 60))
55224	}
55225	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
55226		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
55227	}
55228
55229	if invalidParams.Len() > 0 {
55230		return invalidParams
55231	}
55232	return nil
55233}
55234
55235// SetExpiresInSec sets the ExpiresInSec field's value.
55236func (s *PresignedUrlConfig) SetExpiresInSec(v int64) *PresignedUrlConfig {
55237	s.ExpiresInSec = &v
55238	return s
55239}
55240
55241// SetRoleArn sets the RoleArn field's value.
55242func (s *PresignedUrlConfig) SetRoleArn(v string) *PresignedUrlConfig {
55243	s.RoleArn = &v
55244	return s
55245}
55246
55247// Structure that contains payloadVersion and targetArn.
55248type ProvisioningHook struct {
55249	_ struct{} `type:"structure"`
55250
55251	// The payload that was sent to the target function.
55252	//
55253	// Note: Only Lambda functions are currently supported.
55254	PayloadVersion *string `locationName:"payloadVersion" min:"10" type:"string"`
55255
55256	// The ARN of the target function.
55257	//
55258	// Note: Only Lambda functions are currently supported.
55259	//
55260	// TargetArn is a required field
55261	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
55262}
55263
55264// String returns the string representation.
55265//
55266// API parameter values that are decorated as "sensitive" in the API will not
55267// be included in the string output. The member name will be present, but the
55268// value will be replaced with "sensitive".
55269func (s ProvisioningHook) String() string {
55270	return awsutil.Prettify(s)
55271}
55272
55273// GoString returns the string representation.
55274//
55275// API parameter values that are decorated as "sensitive" in the API will not
55276// be included in the string output. The member name will be present, but the
55277// value will be replaced with "sensitive".
55278func (s ProvisioningHook) GoString() string {
55279	return s.String()
55280}
55281
55282// Validate inspects the fields of the type to determine if they are valid.
55283func (s *ProvisioningHook) Validate() error {
55284	invalidParams := request.ErrInvalidParams{Context: "ProvisioningHook"}
55285	if s.PayloadVersion != nil && len(*s.PayloadVersion) < 10 {
55286		invalidParams.Add(request.NewErrParamMinLen("PayloadVersion", 10))
55287	}
55288	if s.TargetArn == nil {
55289		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
55290	}
55291
55292	if invalidParams.Len() > 0 {
55293		return invalidParams
55294	}
55295	return nil
55296}
55297
55298// SetPayloadVersion sets the PayloadVersion field's value.
55299func (s *ProvisioningHook) SetPayloadVersion(v string) *ProvisioningHook {
55300	s.PayloadVersion = &v
55301	return s
55302}
55303
55304// SetTargetArn sets the TargetArn field's value.
55305func (s *ProvisioningHook) SetTargetArn(v string) *ProvisioningHook {
55306	s.TargetArn = &v
55307	return s
55308}
55309
55310// A summary of information about a fleet provisioning template.
55311type ProvisioningTemplateSummary struct {
55312	_ struct{} `type:"structure"`
55313
55314	// The date when the fleet provisioning template summary was created.
55315	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
55316
55317	// The description of the fleet provisioning template.
55318	Description *string `locationName:"description" type:"string"`
55319
55320	// True if the fleet provision template is enabled, otherwise false.
55321	Enabled *bool `locationName:"enabled" type:"boolean"`
55322
55323	// The date when the fleet provisioning template summary was last modified.
55324	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
55325
55326	// The ARN of the fleet provisioning template.
55327	TemplateArn *string `locationName:"templateArn" type:"string"`
55328
55329	// The name of the fleet provisioning template.
55330	TemplateName *string `locationName:"templateName" min:"1" type:"string"`
55331}
55332
55333// String returns the string representation.
55334//
55335// API parameter values that are decorated as "sensitive" in the API will not
55336// be included in the string output. The member name will be present, but the
55337// value will be replaced with "sensitive".
55338func (s ProvisioningTemplateSummary) String() string {
55339	return awsutil.Prettify(s)
55340}
55341
55342// GoString returns the string representation.
55343//
55344// API parameter values that are decorated as "sensitive" in the API will not
55345// be included in the string output. The member name will be present, but the
55346// value will be replaced with "sensitive".
55347func (s ProvisioningTemplateSummary) GoString() string {
55348	return s.String()
55349}
55350
55351// SetCreationDate sets the CreationDate field's value.
55352func (s *ProvisioningTemplateSummary) SetCreationDate(v time.Time) *ProvisioningTemplateSummary {
55353	s.CreationDate = &v
55354	return s
55355}
55356
55357// SetDescription sets the Description field's value.
55358func (s *ProvisioningTemplateSummary) SetDescription(v string) *ProvisioningTemplateSummary {
55359	s.Description = &v
55360	return s
55361}
55362
55363// SetEnabled sets the Enabled field's value.
55364func (s *ProvisioningTemplateSummary) SetEnabled(v bool) *ProvisioningTemplateSummary {
55365	s.Enabled = &v
55366	return s
55367}
55368
55369// SetLastModifiedDate sets the LastModifiedDate field's value.
55370func (s *ProvisioningTemplateSummary) SetLastModifiedDate(v time.Time) *ProvisioningTemplateSummary {
55371	s.LastModifiedDate = &v
55372	return s
55373}
55374
55375// SetTemplateArn sets the TemplateArn field's value.
55376func (s *ProvisioningTemplateSummary) SetTemplateArn(v string) *ProvisioningTemplateSummary {
55377	s.TemplateArn = &v
55378	return s
55379}
55380
55381// SetTemplateName sets the TemplateName field's value.
55382func (s *ProvisioningTemplateSummary) SetTemplateName(v string) *ProvisioningTemplateSummary {
55383	s.TemplateName = &v
55384	return s
55385}
55386
55387// A summary of information about a fleet provision template version.
55388type ProvisioningTemplateVersionSummary struct {
55389	_ struct{} `type:"structure"`
55390
55391	// The date when the fleet provisioning template version was created
55392	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
55393
55394	// True if the fleet provisioning template version is the default version, otherwise
55395	// false.
55396	IsDefaultVersion *bool `locationName:"isDefaultVersion" type:"boolean"`
55397
55398	// The ID of the fleet privisioning template version.
55399	VersionId *int64 `locationName:"versionId" type:"integer"`
55400}
55401
55402// String returns the string representation.
55403//
55404// API parameter values that are decorated as "sensitive" in the API will not
55405// be included in the string output. The member name will be present, but the
55406// value will be replaced with "sensitive".
55407func (s ProvisioningTemplateVersionSummary) String() string {
55408	return awsutil.Prettify(s)
55409}
55410
55411// GoString returns the string representation.
55412//
55413// API parameter values that are decorated as "sensitive" in the API will not
55414// be included in the string output. The member name will be present, but the
55415// value will be replaced with "sensitive".
55416func (s ProvisioningTemplateVersionSummary) GoString() string {
55417	return s.String()
55418}
55419
55420// SetCreationDate sets the CreationDate field's value.
55421func (s *ProvisioningTemplateVersionSummary) SetCreationDate(v time.Time) *ProvisioningTemplateVersionSummary {
55422	s.CreationDate = &v
55423	return s
55424}
55425
55426// SetIsDefaultVersion sets the IsDefaultVersion field's value.
55427func (s *ProvisioningTemplateVersionSummary) SetIsDefaultVersion(v bool) *ProvisioningTemplateVersionSummary {
55428	s.IsDefaultVersion = &v
55429	return s
55430}
55431
55432// SetVersionId sets the VersionId field's value.
55433func (s *ProvisioningTemplateVersionSummary) SetVersionId(v int64) *ProvisioningTemplateVersionSummary {
55434	s.VersionId = &v
55435	return s
55436}
55437
55438// Parameters to define a mitigation action that publishes findings to Amazon
55439// SNS. You can implement your own custom actions in response to the Amazon
55440// SNS messages.
55441type PublishFindingToSnsParams struct {
55442	_ struct{} `type:"structure"`
55443
55444	// The ARN of the topic to which you want to publish the findings.
55445	//
55446	// TopicArn is a required field
55447	TopicArn *string `locationName:"topicArn" type:"string" required:"true"`
55448}
55449
55450// String returns the string representation.
55451//
55452// API parameter values that are decorated as "sensitive" in the API will not
55453// be included in the string output. The member name will be present, but the
55454// value will be replaced with "sensitive".
55455func (s PublishFindingToSnsParams) String() string {
55456	return awsutil.Prettify(s)
55457}
55458
55459// GoString returns the string representation.
55460//
55461// API parameter values that are decorated as "sensitive" in the API will not
55462// be included in the string output. The member name will be present, but the
55463// value will be replaced with "sensitive".
55464func (s PublishFindingToSnsParams) GoString() string {
55465	return s.String()
55466}
55467
55468// Validate inspects the fields of the type to determine if they are valid.
55469func (s *PublishFindingToSnsParams) Validate() error {
55470	invalidParams := request.ErrInvalidParams{Context: "PublishFindingToSnsParams"}
55471	if s.TopicArn == nil {
55472		invalidParams.Add(request.NewErrParamRequired("TopicArn"))
55473	}
55474
55475	if invalidParams.Len() > 0 {
55476		return invalidParams
55477	}
55478	return nil
55479}
55480
55481// SetTopicArn sets the TopicArn field's value.
55482func (s *PublishFindingToSnsParams) SetTopicArn(v string) *PublishFindingToSnsParams {
55483	s.TopicArn = &v
55484	return s
55485}
55486
55487// An asset property value entry containing the following information.
55488type PutAssetPropertyValueEntry struct {
55489	_ struct{} `type:"structure"`
55490
55491	// The ID of the IoT SiteWise asset. You must specify either a propertyAlias
55492	// or both an aliasId and a propertyId. Accepts substitution templates.
55493	AssetId *string `locationName:"assetId" type:"string"`
55494
55495	// Optional. A unique identifier for this entry that you can define to better
55496	// track which message caused an error in case of failure. Accepts substitution
55497	// templates. Defaults to a new UUID.
55498	EntryId *string `locationName:"entryId" type:"string"`
55499
55500	// The name of the property alias associated with your asset property. You must
55501	// specify either a propertyAlias or both an aliasId and a propertyId. Accepts
55502	// substitution templates.
55503	PropertyAlias *string `locationName:"propertyAlias" min:"1" type:"string"`
55504
55505	// The ID of the asset's property. You must specify either a propertyAlias or
55506	// both an aliasId and a propertyId. Accepts substitution templates.
55507	PropertyId *string `locationName:"propertyId" type:"string"`
55508
55509	// A list of property values to insert that each contain timestamp, quality,
55510	// and value (TQV) information.
55511	//
55512	// PropertyValues is a required field
55513	PropertyValues []*AssetPropertyValue `locationName:"propertyValues" min:"1" type:"list" required:"true"`
55514}
55515
55516// String returns the string representation.
55517//
55518// API parameter values that are decorated as "sensitive" in the API will not
55519// be included in the string output. The member name will be present, but the
55520// value will be replaced with "sensitive".
55521func (s PutAssetPropertyValueEntry) String() string {
55522	return awsutil.Prettify(s)
55523}
55524
55525// GoString returns the string representation.
55526//
55527// API parameter values that are decorated as "sensitive" in the API will not
55528// be included in the string output. The member name will be present, but the
55529// value will be replaced with "sensitive".
55530func (s PutAssetPropertyValueEntry) GoString() string {
55531	return s.String()
55532}
55533
55534// Validate inspects the fields of the type to determine if they are valid.
55535func (s *PutAssetPropertyValueEntry) Validate() error {
55536	invalidParams := request.ErrInvalidParams{Context: "PutAssetPropertyValueEntry"}
55537	if s.PropertyAlias != nil && len(*s.PropertyAlias) < 1 {
55538		invalidParams.Add(request.NewErrParamMinLen("PropertyAlias", 1))
55539	}
55540	if s.PropertyValues == nil {
55541		invalidParams.Add(request.NewErrParamRequired("PropertyValues"))
55542	}
55543	if s.PropertyValues != nil && len(s.PropertyValues) < 1 {
55544		invalidParams.Add(request.NewErrParamMinLen("PropertyValues", 1))
55545	}
55546	if s.PropertyValues != nil {
55547		for i, v := range s.PropertyValues {
55548			if v == nil {
55549				continue
55550			}
55551			if err := v.Validate(); err != nil {
55552				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "PropertyValues", i), err.(request.ErrInvalidParams))
55553			}
55554		}
55555	}
55556
55557	if invalidParams.Len() > 0 {
55558		return invalidParams
55559	}
55560	return nil
55561}
55562
55563// SetAssetId sets the AssetId field's value.
55564func (s *PutAssetPropertyValueEntry) SetAssetId(v string) *PutAssetPropertyValueEntry {
55565	s.AssetId = &v
55566	return s
55567}
55568
55569// SetEntryId sets the EntryId field's value.
55570func (s *PutAssetPropertyValueEntry) SetEntryId(v string) *PutAssetPropertyValueEntry {
55571	s.EntryId = &v
55572	return s
55573}
55574
55575// SetPropertyAlias sets the PropertyAlias field's value.
55576func (s *PutAssetPropertyValueEntry) SetPropertyAlias(v string) *PutAssetPropertyValueEntry {
55577	s.PropertyAlias = &v
55578	return s
55579}
55580
55581// SetPropertyId sets the PropertyId field's value.
55582func (s *PutAssetPropertyValueEntry) SetPropertyId(v string) *PutAssetPropertyValueEntry {
55583	s.PropertyId = &v
55584	return s
55585}
55586
55587// SetPropertyValues sets the PropertyValues field's value.
55588func (s *PutAssetPropertyValueEntry) SetPropertyValues(v []*AssetPropertyValue) *PutAssetPropertyValueEntry {
55589	s.PropertyValues = v
55590	return s
55591}
55592
55593// The input for the DynamoActionVS action that specifies the DynamoDB table
55594// to which the message data will be written.
55595type PutItemInput struct {
55596	_ struct{} `type:"structure"`
55597
55598	// The table where the message data will be written.
55599	//
55600	// TableName is a required field
55601	TableName *string `locationName:"tableName" type:"string" required:"true"`
55602}
55603
55604// String returns the string representation.
55605//
55606// API parameter values that are decorated as "sensitive" in the API will not
55607// be included in the string output. The member name will be present, but the
55608// value will be replaced with "sensitive".
55609func (s PutItemInput) String() string {
55610	return awsutil.Prettify(s)
55611}
55612
55613// GoString returns the string representation.
55614//
55615// API parameter values that are decorated as "sensitive" in the API will not
55616// be included in the string output. The member name will be present, but the
55617// value will be replaced with "sensitive".
55618func (s PutItemInput) GoString() string {
55619	return s.String()
55620}
55621
55622// Validate inspects the fields of the type to determine if they are valid.
55623func (s *PutItemInput) Validate() error {
55624	invalidParams := request.ErrInvalidParams{Context: "PutItemInput"}
55625	if s.TableName == nil {
55626		invalidParams.Add(request.NewErrParamRequired("TableName"))
55627	}
55628
55629	if invalidParams.Len() > 0 {
55630		return invalidParams
55631	}
55632	return nil
55633}
55634
55635// SetTableName sets the TableName field's value.
55636func (s *PutItemInput) SetTableName(v string) *PutItemInput {
55637	s.TableName = &v
55638	return s
55639}
55640
55641type PutVerificationStateOnViolationInput struct {
55642	_ struct{} `type:"structure"`
55643
55644	// The verification state of the violation.
55645	//
55646	// VerificationState is a required field
55647	VerificationState *string `locationName:"verificationState" type:"string" required:"true" enum:"VerificationState"`
55648
55649	// The description of the verification state of the violation (detect alarm).
55650	VerificationStateDescription *string `locationName:"verificationStateDescription" type:"string"`
55651
55652	// The violation ID.
55653	//
55654	// ViolationId is a required field
55655	ViolationId *string `location:"uri" locationName:"violationId" min:"1" type:"string" required:"true"`
55656}
55657
55658// String returns the string representation.
55659//
55660// API parameter values that are decorated as "sensitive" in the API will not
55661// be included in the string output. The member name will be present, but the
55662// value will be replaced with "sensitive".
55663func (s PutVerificationStateOnViolationInput) String() string {
55664	return awsutil.Prettify(s)
55665}
55666
55667// GoString returns the string representation.
55668//
55669// API parameter values that are decorated as "sensitive" in the API will not
55670// be included in the string output. The member name will be present, but the
55671// value will be replaced with "sensitive".
55672func (s PutVerificationStateOnViolationInput) GoString() string {
55673	return s.String()
55674}
55675
55676// Validate inspects the fields of the type to determine if they are valid.
55677func (s *PutVerificationStateOnViolationInput) Validate() error {
55678	invalidParams := request.ErrInvalidParams{Context: "PutVerificationStateOnViolationInput"}
55679	if s.VerificationState == nil {
55680		invalidParams.Add(request.NewErrParamRequired("VerificationState"))
55681	}
55682	if s.ViolationId == nil {
55683		invalidParams.Add(request.NewErrParamRequired("ViolationId"))
55684	}
55685	if s.ViolationId != nil && len(*s.ViolationId) < 1 {
55686		invalidParams.Add(request.NewErrParamMinLen("ViolationId", 1))
55687	}
55688
55689	if invalidParams.Len() > 0 {
55690		return invalidParams
55691	}
55692	return nil
55693}
55694
55695// SetVerificationState sets the VerificationState field's value.
55696func (s *PutVerificationStateOnViolationInput) SetVerificationState(v string) *PutVerificationStateOnViolationInput {
55697	s.VerificationState = &v
55698	return s
55699}
55700
55701// SetVerificationStateDescription sets the VerificationStateDescription field's value.
55702func (s *PutVerificationStateOnViolationInput) SetVerificationStateDescription(v string) *PutVerificationStateOnViolationInput {
55703	s.VerificationStateDescription = &v
55704	return s
55705}
55706
55707// SetViolationId sets the ViolationId field's value.
55708func (s *PutVerificationStateOnViolationInput) SetViolationId(v string) *PutVerificationStateOnViolationInput {
55709	s.ViolationId = &v
55710	return s
55711}
55712
55713type PutVerificationStateOnViolationOutput struct {
55714	_ struct{} `type:"structure"`
55715}
55716
55717// String returns the string representation.
55718//
55719// API parameter values that are decorated as "sensitive" in the API will not
55720// be included in the string output. The member name will be present, but the
55721// value will be replaced with "sensitive".
55722func (s PutVerificationStateOnViolationOutput) String() string {
55723	return awsutil.Prettify(s)
55724}
55725
55726// GoString returns the string representation.
55727//
55728// API parameter values that are decorated as "sensitive" in the API will not
55729// be included in the string output. The member name will be present, but the
55730// value will be replaced with "sensitive".
55731func (s PutVerificationStateOnViolationOutput) GoString() string {
55732	return s.String()
55733}
55734
55735// Allows you to define a criteria to initiate the increase in rate of rollout
55736// for a job.
55737type RateIncreaseCriteria struct {
55738	_ struct{} `type:"structure"`
55739
55740	// The threshold for number of notified things that will initiate the increase
55741	// in rate of rollout.
55742	NumberOfNotifiedThings *int64 `locationName:"numberOfNotifiedThings" min:"1" type:"integer"`
55743
55744	// The threshold for number of succeeded things that will initiate the increase
55745	// in rate of rollout.
55746	NumberOfSucceededThings *int64 `locationName:"numberOfSucceededThings" min:"1" type:"integer"`
55747}
55748
55749// String returns the string representation.
55750//
55751// API parameter values that are decorated as "sensitive" in the API will not
55752// be included in the string output. The member name will be present, but the
55753// value will be replaced with "sensitive".
55754func (s RateIncreaseCriteria) String() string {
55755	return awsutil.Prettify(s)
55756}
55757
55758// GoString returns the string representation.
55759//
55760// API parameter values that are decorated as "sensitive" in the API will not
55761// be included in the string output. The member name will be present, but the
55762// value will be replaced with "sensitive".
55763func (s RateIncreaseCriteria) GoString() string {
55764	return s.String()
55765}
55766
55767// Validate inspects the fields of the type to determine if they are valid.
55768func (s *RateIncreaseCriteria) Validate() error {
55769	invalidParams := request.ErrInvalidParams{Context: "RateIncreaseCriteria"}
55770	if s.NumberOfNotifiedThings != nil && *s.NumberOfNotifiedThings < 1 {
55771		invalidParams.Add(request.NewErrParamMinValue("NumberOfNotifiedThings", 1))
55772	}
55773	if s.NumberOfSucceededThings != nil && *s.NumberOfSucceededThings < 1 {
55774		invalidParams.Add(request.NewErrParamMinValue("NumberOfSucceededThings", 1))
55775	}
55776
55777	if invalidParams.Len() > 0 {
55778		return invalidParams
55779	}
55780	return nil
55781}
55782
55783// SetNumberOfNotifiedThings sets the NumberOfNotifiedThings field's value.
55784func (s *RateIncreaseCriteria) SetNumberOfNotifiedThings(v int64) *RateIncreaseCriteria {
55785	s.NumberOfNotifiedThings = &v
55786	return s
55787}
55788
55789// SetNumberOfSucceededThings sets the NumberOfSucceededThings field's value.
55790func (s *RateIncreaseCriteria) SetNumberOfSucceededThings(v int64) *RateIncreaseCriteria {
55791	s.NumberOfSucceededThings = &v
55792	return s
55793}
55794
55795// The input to the RegisterCACertificate operation.
55796type RegisterCACertificateInput struct {
55797	_ struct{} `type:"structure"`
55798
55799	// Allows this CA certificate to be used for auto registration of device certificates.
55800	AllowAutoRegistration *bool `location:"querystring" locationName:"allowAutoRegistration" type:"boolean"`
55801
55802	// The CA certificate.
55803	//
55804	// CaCertificate is a required field
55805	CaCertificate *string `locationName:"caCertificate" min:"1" type:"string" required:"true"`
55806
55807	// Information about the registration configuration.
55808	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
55809
55810	// A boolean value that specifies if the CA certificate is set to active.
55811	SetAsActive *bool `location:"querystring" locationName:"setAsActive" type:"boolean"`
55812
55813	// Metadata which can be used to manage the CA certificate.
55814	//
55815	// For URI Request parameters use format: ...key1=value1&key2=value2...
55816	//
55817	// For the CLI command-line parameter use format: &&tags "key1=value1&key2=value2..."
55818	//
55819	// For the cli-input-json file use format: "tags": "key1=value1&key2=value2..."
55820	Tags []*Tag `locationName:"tags" type:"list"`
55821
55822	// The private key verification certificate.
55823	//
55824	// VerificationCertificate is a required field
55825	VerificationCertificate *string `locationName:"verificationCertificate" min:"1" type:"string" required:"true"`
55826}
55827
55828// String returns the string representation.
55829//
55830// API parameter values that are decorated as "sensitive" in the API will not
55831// be included in the string output. The member name will be present, but the
55832// value will be replaced with "sensitive".
55833func (s RegisterCACertificateInput) String() string {
55834	return awsutil.Prettify(s)
55835}
55836
55837// GoString returns the string representation.
55838//
55839// API parameter values that are decorated as "sensitive" in the API will not
55840// be included in the string output. The member name will be present, but the
55841// value will be replaced with "sensitive".
55842func (s RegisterCACertificateInput) GoString() string {
55843	return s.String()
55844}
55845
55846// Validate inspects the fields of the type to determine if they are valid.
55847func (s *RegisterCACertificateInput) Validate() error {
55848	invalidParams := request.ErrInvalidParams{Context: "RegisterCACertificateInput"}
55849	if s.CaCertificate == nil {
55850		invalidParams.Add(request.NewErrParamRequired("CaCertificate"))
55851	}
55852	if s.CaCertificate != nil && len(*s.CaCertificate) < 1 {
55853		invalidParams.Add(request.NewErrParamMinLen("CaCertificate", 1))
55854	}
55855	if s.VerificationCertificate == nil {
55856		invalidParams.Add(request.NewErrParamRequired("VerificationCertificate"))
55857	}
55858	if s.VerificationCertificate != nil && len(*s.VerificationCertificate) < 1 {
55859		invalidParams.Add(request.NewErrParamMinLen("VerificationCertificate", 1))
55860	}
55861	if s.RegistrationConfig != nil {
55862		if err := s.RegistrationConfig.Validate(); err != nil {
55863			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
55864		}
55865	}
55866	if s.Tags != nil {
55867		for i, v := range s.Tags {
55868			if v == nil {
55869				continue
55870			}
55871			if err := v.Validate(); err != nil {
55872				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
55873			}
55874		}
55875	}
55876
55877	if invalidParams.Len() > 0 {
55878		return invalidParams
55879	}
55880	return nil
55881}
55882
55883// SetAllowAutoRegistration sets the AllowAutoRegistration field's value.
55884func (s *RegisterCACertificateInput) SetAllowAutoRegistration(v bool) *RegisterCACertificateInput {
55885	s.AllowAutoRegistration = &v
55886	return s
55887}
55888
55889// SetCaCertificate sets the CaCertificate field's value.
55890func (s *RegisterCACertificateInput) SetCaCertificate(v string) *RegisterCACertificateInput {
55891	s.CaCertificate = &v
55892	return s
55893}
55894
55895// SetRegistrationConfig sets the RegistrationConfig field's value.
55896func (s *RegisterCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *RegisterCACertificateInput {
55897	s.RegistrationConfig = v
55898	return s
55899}
55900
55901// SetSetAsActive sets the SetAsActive field's value.
55902func (s *RegisterCACertificateInput) SetSetAsActive(v bool) *RegisterCACertificateInput {
55903	s.SetAsActive = &v
55904	return s
55905}
55906
55907// SetTags sets the Tags field's value.
55908func (s *RegisterCACertificateInput) SetTags(v []*Tag) *RegisterCACertificateInput {
55909	s.Tags = v
55910	return s
55911}
55912
55913// SetVerificationCertificate sets the VerificationCertificate field's value.
55914func (s *RegisterCACertificateInput) SetVerificationCertificate(v string) *RegisterCACertificateInput {
55915	s.VerificationCertificate = &v
55916	return s
55917}
55918
55919// The output from the RegisterCACertificateResponse operation.
55920type RegisterCACertificateOutput struct {
55921	_ struct{} `type:"structure"`
55922
55923	// The CA certificate ARN.
55924	CertificateArn *string `locationName:"certificateArn" type:"string"`
55925
55926	// The CA certificate identifier.
55927	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
55928}
55929
55930// String returns the string representation.
55931//
55932// API parameter values that are decorated as "sensitive" in the API will not
55933// be included in the string output. The member name will be present, but the
55934// value will be replaced with "sensitive".
55935func (s RegisterCACertificateOutput) String() string {
55936	return awsutil.Prettify(s)
55937}
55938
55939// GoString returns the string representation.
55940//
55941// API parameter values that are decorated as "sensitive" in the API will not
55942// be included in the string output. The member name will be present, but the
55943// value will be replaced with "sensitive".
55944func (s RegisterCACertificateOutput) GoString() string {
55945	return s.String()
55946}
55947
55948// SetCertificateArn sets the CertificateArn field's value.
55949func (s *RegisterCACertificateOutput) SetCertificateArn(v string) *RegisterCACertificateOutput {
55950	s.CertificateArn = &v
55951	return s
55952}
55953
55954// SetCertificateId sets the CertificateId field's value.
55955func (s *RegisterCACertificateOutput) SetCertificateId(v string) *RegisterCACertificateOutput {
55956	s.CertificateId = &v
55957	return s
55958}
55959
55960// The input to the RegisterCertificate operation.
55961type RegisterCertificateInput struct {
55962	_ struct{} `type:"structure"`
55963
55964	// The CA certificate used to sign the device certificate being registered.
55965	CaCertificatePem *string `locationName:"caCertificatePem" min:"1" type:"string"`
55966
55967	// The certificate data, in PEM format.
55968	//
55969	// CertificatePem is a required field
55970	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
55971
55972	// A boolean value that specifies if the certificate is set to active.
55973	//
55974	// Deprecated: SetAsActive has been deprecated
55975	SetAsActive *bool `location:"querystring" locationName:"setAsActive" deprecated:"true" type:"boolean"`
55976
55977	// The status of the register certificate request.
55978	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
55979}
55980
55981// String returns the string representation.
55982//
55983// API parameter values that are decorated as "sensitive" in the API will not
55984// be included in the string output. The member name will be present, but the
55985// value will be replaced with "sensitive".
55986func (s RegisterCertificateInput) String() string {
55987	return awsutil.Prettify(s)
55988}
55989
55990// GoString returns the string representation.
55991//
55992// API parameter values that are decorated as "sensitive" in the API will not
55993// be included in the string output. The member name will be present, but the
55994// value will be replaced with "sensitive".
55995func (s RegisterCertificateInput) GoString() string {
55996	return s.String()
55997}
55998
55999// Validate inspects the fields of the type to determine if they are valid.
56000func (s *RegisterCertificateInput) Validate() error {
56001	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateInput"}
56002	if s.CaCertificatePem != nil && len(*s.CaCertificatePem) < 1 {
56003		invalidParams.Add(request.NewErrParamMinLen("CaCertificatePem", 1))
56004	}
56005	if s.CertificatePem == nil {
56006		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
56007	}
56008	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
56009		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
56010	}
56011
56012	if invalidParams.Len() > 0 {
56013		return invalidParams
56014	}
56015	return nil
56016}
56017
56018// SetCaCertificatePem sets the CaCertificatePem field's value.
56019func (s *RegisterCertificateInput) SetCaCertificatePem(v string) *RegisterCertificateInput {
56020	s.CaCertificatePem = &v
56021	return s
56022}
56023
56024// SetCertificatePem sets the CertificatePem field's value.
56025func (s *RegisterCertificateInput) SetCertificatePem(v string) *RegisterCertificateInput {
56026	s.CertificatePem = &v
56027	return s
56028}
56029
56030// SetSetAsActive sets the SetAsActive field's value.
56031func (s *RegisterCertificateInput) SetSetAsActive(v bool) *RegisterCertificateInput {
56032	s.SetAsActive = &v
56033	return s
56034}
56035
56036// SetStatus sets the Status field's value.
56037func (s *RegisterCertificateInput) SetStatus(v string) *RegisterCertificateInput {
56038	s.Status = &v
56039	return s
56040}
56041
56042// The output from the RegisterCertificate operation.
56043type RegisterCertificateOutput struct {
56044	_ struct{} `type:"structure"`
56045
56046	// The certificate ARN.
56047	CertificateArn *string `locationName:"certificateArn" type:"string"`
56048
56049	// The certificate identifier.
56050	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
56051}
56052
56053// String returns the string representation.
56054//
56055// API parameter values that are decorated as "sensitive" in the API will not
56056// be included in the string output. The member name will be present, but the
56057// value will be replaced with "sensitive".
56058func (s RegisterCertificateOutput) String() string {
56059	return awsutil.Prettify(s)
56060}
56061
56062// GoString returns the string representation.
56063//
56064// API parameter values that are decorated as "sensitive" in the API will not
56065// be included in the string output. The member name will be present, but the
56066// value will be replaced with "sensitive".
56067func (s RegisterCertificateOutput) GoString() string {
56068	return s.String()
56069}
56070
56071// SetCertificateArn sets the CertificateArn field's value.
56072func (s *RegisterCertificateOutput) SetCertificateArn(v string) *RegisterCertificateOutput {
56073	s.CertificateArn = &v
56074	return s
56075}
56076
56077// SetCertificateId sets the CertificateId field's value.
56078func (s *RegisterCertificateOutput) SetCertificateId(v string) *RegisterCertificateOutput {
56079	s.CertificateId = &v
56080	return s
56081}
56082
56083type RegisterCertificateWithoutCAInput struct {
56084	_ struct{} `type:"structure"`
56085
56086	// The certificate data, in PEM format.
56087	//
56088	// CertificatePem is a required field
56089	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string" required:"true"`
56090
56091	// The status of the register certificate request.
56092	Status *string `locationName:"status" type:"string" enum:"CertificateStatus"`
56093}
56094
56095// String returns the string representation.
56096//
56097// API parameter values that are decorated as "sensitive" in the API will not
56098// be included in the string output. The member name will be present, but the
56099// value will be replaced with "sensitive".
56100func (s RegisterCertificateWithoutCAInput) String() string {
56101	return awsutil.Prettify(s)
56102}
56103
56104// GoString returns the string representation.
56105//
56106// API parameter values that are decorated as "sensitive" in the API will not
56107// be included in the string output. The member name will be present, but the
56108// value will be replaced with "sensitive".
56109func (s RegisterCertificateWithoutCAInput) GoString() string {
56110	return s.String()
56111}
56112
56113// Validate inspects the fields of the type to determine if they are valid.
56114func (s *RegisterCertificateWithoutCAInput) Validate() error {
56115	invalidParams := request.ErrInvalidParams{Context: "RegisterCertificateWithoutCAInput"}
56116	if s.CertificatePem == nil {
56117		invalidParams.Add(request.NewErrParamRequired("CertificatePem"))
56118	}
56119	if s.CertificatePem != nil && len(*s.CertificatePem) < 1 {
56120		invalidParams.Add(request.NewErrParamMinLen("CertificatePem", 1))
56121	}
56122
56123	if invalidParams.Len() > 0 {
56124		return invalidParams
56125	}
56126	return nil
56127}
56128
56129// SetCertificatePem sets the CertificatePem field's value.
56130func (s *RegisterCertificateWithoutCAInput) SetCertificatePem(v string) *RegisterCertificateWithoutCAInput {
56131	s.CertificatePem = &v
56132	return s
56133}
56134
56135// SetStatus sets the Status field's value.
56136func (s *RegisterCertificateWithoutCAInput) SetStatus(v string) *RegisterCertificateWithoutCAInput {
56137	s.Status = &v
56138	return s
56139}
56140
56141type RegisterCertificateWithoutCAOutput struct {
56142	_ struct{} `type:"structure"`
56143
56144	// The Amazon Resource Name (ARN) of the registered certificate.
56145	CertificateArn *string `locationName:"certificateArn" type:"string"`
56146
56147	// The ID of the registered certificate. (The last part of the certificate ARN
56148	// contains the certificate ID.
56149	CertificateId *string `locationName:"certificateId" min:"64" type:"string"`
56150}
56151
56152// String returns the string representation.
56153//
56154// API parameter values that are decorated as "sensitive" in the API will not
56155// be included in the string output. The member name will be present, but the
56156// value will be replaced with "sensitive".
56157func (s RegisterCertificateWithoutCAOutput) String() string {
56158	return awsutil.Prettify(s)
56159}
56160
56161// GoString returns the string representation.
56162//
56163// API parameter values that are decorated as "sensitive" in the API will not
56164// be included in the string output. The member name will be present, but the
56165// value will be replaced with "sensitive".
56166func (s RegisterCertificateWithoutCAOutput) GoString() string {
56167	return s.String()
56168}
56169
56170// SetCertificateArn sets the CertificateArn field's value.
56171func (s *RegisterCertificateWithoutCAOutput) SetCertificateArn(v string) *RegisterCertificateWithoutCAOutput {
56172	s.CertificateArn = &v
56173	return s
56174}
56175
56176// SetCertificateId sets the CertificateId field's value.
56177func (s *RegisterCertificateWithoutCAOutput) SetCertificateId(v string) *RegisterCertificateWithoutCAOutput {
56178	s.CertificateId = &v
56179	return s
56180}
56181
56182type RegisterThingInput struct {
56183	_ struct{} `type:"structure"`
56184
56185	// The parameters for provisioning a thing. See Provisioning Templates (https://docs.aws.amazon.com/iot/latest/developerguide/provision-template.html)
56186	// for more information.
56187	Parameters map[string]*string `locationName:"parameters" type:"map"`
56188
56189	// The provisioning template. See Provisioning Devices That Have Device Certificates
56190	// (https://docs.aws.amazon.com/iot/latest/developerguide/provision-w-cert.html)
56191	// for more information.
56192	//
56193	// TemplateBody is a required field
56194	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
56195}
56196
56197// String returns the string representation.
56198//
56199// API parameter values that are decorated as "sensitive" in the API will not
56200// be included in the string output. The member name will be present, but the
56201// value will be replaced with "sensitive".
56202func (s RegisterThingInput) String() string {
56203	return awsutil.Prettify(s)
56204}
56205
56206// GoString returns the string representation.
56207//
56208// API parameter values that are decorated as "sensitive" in the API will not
56209// be included in the string output. The member name will be present, but the
56210// value will be replaced with "sensitive".
56211func (s RegisterThingInput) GoString() string {
56212	return s.String()
56213}
56214
56215// Validate inspects the fields of the type to determine if they are valid.
56216func (s *RegisterThingInput) Validate() error {
56217	invalidParams := request.ErrInvalidParams{Context: "RegisterThingInput"}
56218	if s.TemplateBody == nil {
56219		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
56220	}
56221
56222	if invalidParams.Len() > 0 {
56223		return invalidParams
56224	}
56225	return nil
56226}
56227
56228// SetParameters sets the Parameters field's value.
56229func (s *RegisterThingInput) SetParameters(v map[string]*string) *RegisterThingInput {
56230	s.Parameters = v
56231	return s
56232}
56233
56234// SetTemplateBody sets the TemplateBody field's value.
56235func (s *RegisterThingInput) SetTemplateBody(v string) *RegisterThingInput {
56236	s.TemplateBody = &v
56237	return s
56238}
56239
56240type RegisterThingOutput struct {
56241	_ struct{} `type:"structure"`
56242
56243	// The certificate data, in PEM format.
56244	CertificatePem *string `locationName:"certificatePem" min:"1" type:"string"`
56245
56246	// ARNs for the generated resources.
56247	ResourceArns map[string]*string `locationName:"resourceArns" type:"map"`
56248}
56249
56250// String returns the string representation.
56251//
56252// API parameter values that are decorated as "sensitive" in the API will not
56253// be included in the string output. The member name will be present, but the
56254// value will be replaced with "sensitive".
56255func (s RegisterThingOutput) String() string {
56256	return awsutil.Prettify(s)
56257}
56258
56259// GoString returns the string representation.
56260//
56261// API parameter values that are decorated as "sensitive" in the API will not
56262// be included in the string output. The member name will be present, but the
56263// value will be replaced with "sensitive".
56264func (s RegisterThingOutput) GoString() string {
56265	return s.String()
56266}
56267
56268// SetCertificatePem sets the CertificatePem field's value.
56269func (s *RegisterThingOutput) SetCertificatePem(v string) *RegisterThingOutput {
56270	s.CertificatePem = &v
56271	return s
56272}
56273
56274// SetResourceArns sets the ResourceArns field's value.
56275func (s *RegisterThingOutput) SetResourceArns(v map[string]*string) *RegisterThingOutput {
56276	s.ResourceArns = v
56277	return s
56278}
56279
56280// The registration code is invalid.
56281type RegistrationCodeValidationException struct {
56282	_            struct{}                  `type:"structure"`
56283	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
56284
56285	// Additional information about the exception.
56286	Message_ *string `locationName:"message" type:"string"`
56287}
56288
56289// String returns the string representation.
56290//
56291// API parameter values that are decorated as "sensitive" in the API will not
56292// be included in the string output. The member name will be present, but the
56293// value will be replaced with "sensitive".
56294func (s RegistrationCodeValidationException) String() string {
56295	return awsutil.Prettify(s)
56296}
56297
56298// GoString returns the string representation.
56299//
56300// API parameter values that are decorated as "sensitive" in the API will not
56301// be included in the string output. The member name will be present, but the
56302// value will be replaced with "sensitive".
56303func (s RegistrationCodeValidationException) GoString() string {
56304	return s.String()
56305}
56306
56307func newErrorRegistrationCodeValidationException(v protocol.ResponseMetadata) error {
56308	return &RegistrationCodeValidationException{
56309		RespMetadata: v,
56310	}
56311}
56312
56313// Code returns the exception type name.
56314func (s *RegistrationCodeValidationException) Code() string {
56315	return "RegistrationCodeValidationException"
56316}
56317
56318// Message returns the exception's message.
56319func (s *RegistrationCodeValidationException) Message() string {
56320	if s.Message_ != nil {
56321		return *s.Message_
56322	}
56323	return ""
56324}
56325
56326// OrigErr always returns nil, satisfies awserr.Error interface.
56327func (s *RegistrationCodeValidationException) OrigErr() error {
56328	return nil
56329}
56330
56331func (s *RegistrationCodeValidationException) Error() string {
56332	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
56333}
56334
56335// Status code returns the HTTP status code for the request's response error.
56336func (s *RegistrationCodeValidationException) StatusCode() int {
56337	return s.RespMetadata.StatusCode
56338}
56339
56340// RequestID returns the service's response RequestID for request.
56341func (s *RegistrationCodeValidationException) RequestID() string {
56342	return s.RespMetadata.RequestID
56343}
56344
56345// The registration configuration.
56346type RegistrationConfig struct {
56347	_ struct{} `type:"structure"`
56348
56349	// The ARN of the role.
56350	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
56351
56352	// The template body.
56353	TemplateBody *string `locationName:"templateBody" type:"string"`
56354}
56355
56356// String returns the string representation.
56357//
56358// API parameter values that are decorated as "sensitive" in the API will not
56359// be included in the string output. The member name will be present, but the
56360// value will be replaced with "sensitive".
56361func (s RegistrationConfig) String() string {
56362	return awsutil.Prettify(s)
56363}
56364
56365// GoString returns the string representation.
56366//
56367// API parameter values that are decorated as "sensitive" in the API will not
56368// be included in the string output. The member name will be present, but the
56369// value will be replaced with "sensitive".
56370func (s RegistrationConfig) GoString() string {
56371	return s.String()
56372}
56373
56374// Validate inspects the fields of the type to determine if they are valid.
56375func (s *RegistrationConfig) Validate() error {
56376	invalidParams := request.ErrInvalidParams{Context: "RegistrationConfig"}
56377	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
56378		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
56379	}
56380
56381	if invalidParams.Len() > 0 {
56382		return invalidParams
56383	}
56384	return nil
56385}
56386
56387// SetRoleArn sets the RoleArn field's value.
56388func (s *RegistrationConfig) SetRoleArn(v string) *RegistrationConfig {
56389	s.RoleArn = &v
56390	return s
56391}
56392
56393// SetTemplateBody sets the TemplateBody field's value.
56394func (s *RegistrationConfig) SetTemplateBody(v string) *RegistrationConfig {
56395	s.TemplateBody = &v
56396	return s
56397}
56398
56399// The input for the RejectCertificateTransfer operation.
56400type RejectCertificateTransferInput struct {
56401	_ struct{} `type:"structure"`
56402
56403	// The ID of the certificate. (The last part of the certificate ARN contains
56404	// the certificate ID.)
56405	//
56406	// CertificateId is a required field
56407	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
56408
56409	// The reason the certificate transfer was rejected.
56410	RejectReason *string `locationName:"rejectReason" type:"string"`
56411}
56412
56413// String returns the string representation.
56414//
56415// API parameter values that are decorated as "sensitive" in the API will not
56416// be included in the string output. The member name will be present, but the
56417// value will be replaced with "sensitive".
56418func (s RejectCertificateTransferInput) String() string {
56419	return awsutil.Prettify(s)
56420}
56421
56422// GoString returns the string representation.
56423//
56424// API parameter values that are decorated as "sensitive" in the API will not
56425// be included in the string output. The member name will be present, but the
56426// value will be replaced with "sensitive".
56427func (s RejectCertificateTransferInput) GoString() string {
56428	return s.String()
56429}
56430
56431// Validate inspects the fields of the type to determine if they are valid.
56432func (s *RejectCertificateTransferInput) Validate() error {
56433	invalidParams := request.ErrInvalidParams{Context: "RejectCertificateTransferInput"}
56434	if s.CertificateId == nil {
56435		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
56436	}
56437	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
56438		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
56439	}
56440
56441	if invalidParams.Len() > 0 {
56442		return invalidParams
56443	}
56444	return nil
56445}
56446
56447// SetCertificateId sets the CertificateId field's value.
56448func (s *RejectCertificateTransferInput) SetCertificateId(v string) *RejectCertificateTransferInput {
56449	s.CertificateId = &v
56450	return s
56451}
56452
56453// SetRejectReason sets the RejectReason field's value.
56454func (s *RejectCertificateTransferInput) SetRejectReason(v string) *RejectCertificateTransferInput {
56455	s.RejectReason = &v
56456	return s
56457}
56458
56459type RejectCertificateTransferOutput struct {
56460	_ struct{} `type:"structure"`
56461}
56462
56463// String returns the string representation.
56464//
56465// API parameter values that are decorated as "sensitive" in the API will not
56466// be included in the string output. The member name will be present, but the
56467// value will be replaced with "sensitive".
56468func (s RejectCertificateTransferOutput) String() string {
56469	return awsutil.Prettify(s)
56470}
56471
56472// GoString returns the string representation.
56473//
56474// API parameter values that are decorated as "sensitive" in the API will not
56475// be included in the string output. The member name will be present, but the
56476// value will be replaced with "sensitive".
56477func (s RejectCertificateTransferOutput) GoString() string {
56478	return s.String()
56479}
56480
56481// Information about a related resource.
56482type RelatedResource struct {
56483	_ struct{} `type:"structure"`
56484
56485	// Other information about the resource.
56486	AdditionalInfo map[string]*string `locationName:"additionalInfo" type:"map"`
56487
56488	// Information that identifies the resource.
56489	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure"`
56490
56491	// The type of resource.
56492	ResourceType *string `locationName:"resourceType" type:"string" enum:"ResourceType"`
56493}
56494
56495// String returns the string representation.
56496//
56497// API parameter values that are decorated as "sensitive" in the API will not
56498// be included in the string output. The member name will be present, but the
56499// value will be replaced with "sensitive".
56500func (s RelatedResource) String() string {
56501	return awsutil.Prettify(s)
56502}
56503
56504// GoString returns the string representation.
56505//
56506// API parameter values that are decorated as "sensitive" in the API will not
56507// be included in the string output. The member name will be present, but the
56508// value will be replaced with "sensitive".
56509func (s RelatedResource) GoString() string {
56510	return s.String()
56511}
56512
56513// SetAdditionalInfo sets the AdditionalInfo field's value.
56514func (s *RelatedResource) SetAdditionalInfo(v map[string]*string) *RelatedResource {
56515	s.AdditionalInfo = v
56516	return s
56517}
56518
56519// SetResourceIdentifier sets the ResourceIdentifier field's value.
56520func (s *RelatedResource) SetResourceIdentifier(v *ResourceIdentifier) *RelatedResource {
56521	s.ResourceIdentifier = v
56522	return s
56523}
56524
56525// SetResourceType sets the ResourceType field's value.
56526func (s *RelatedResource) SetResourceType(v string) *RelatedResource {
56527	s.ResourceType = &v
56528	return s
56529}
56530
56531type RemoveThingFromBillingGroupInput struct {
56532	_ struct{} `type:"structure"`
56533
56534	// The ARN of the billing group.
56535	BillingGroupArn *string `locationName:"billingGroupArn" type:"string"`
56536
56537	// The name of the billing group.
56538	BillingGroupName *string `locationName:"billingGroupName" min:"1" type:"string"`
56539
56540	// The ARN of the thing to be removed from the billing group.
56541	ThingArn *string `locationName:"thingArn" type:"string"`
56542
56543	// The name of the thing to be removed from the billing group.
56544	ThingName *string `locationName:"thingName" min:"1" type:"string"`
56545}
56546
56547// String returns the string representation.
56548//
56549// API parameter values that are decorated as "sensitive" in the API will not
56550// be included in the string output. The member name will be present, but the
56551// value will be replaced with "sensitive".
56552func (s RemoveThingFromBillingGroupInput) String() string {
56553	return awsutil.Prettify(s)
56554}
56555
56556// GoString returns the string representation.
56557//
56558// API parameter values that are decorated as "sensitive" in the API will not
56559// be included in the string output. The member name will be present, but the
56560// value will be replaced with "sensitive".
56561func (s RemoveThingFromBillingGroupInput) GoString() string {
56562	return s.String()
56563}
56564
56565// Validate inspects the fields of the type to determine if they are valid.
56566func (s *RemoveThingFromBillingGroupInput) Validate() error {
56567	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromBillingGroupInput"}
56568	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
56569		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
56570	}
56571	if s.ThingName != nil && len(*s.ThingName) < 1 {
56572		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
56573	}
56574
56575	if invalidParams.Len() > 0 {
56576		return invalidParams
56577	}
56578	return nil
56579}
56580
56581// SetBillingGroupArn sets the BillingGroupArn field's value.
56582func (s *RemoveThingFromBillingGroupInput) SetBillingGroupArn(v string) *RemoveThingFromBillingGroupInput {
56583	s.BillingGroupArn = &v
56584	return s
56585}
56586
56587// SetBillingGroupName sets the BillingGroupName field's value.
56588func (s *RemoveThingFromBillingGroupInput) SetBillingGroupName(v string) *RemoveThingFromBillingGroupInput {
56589	s.BillingGroupName = &v
56590	return s
56591}
56592
56593// SetThingArn sets the ThingArn field's value.
56594func (s *RemoveThingFromBillingGroupInput) SetThingArn(v string) *RemoveThingFromBillingGroupInput {
56595	s.ThingArn = &v
56596	return s
56597}
56598
56599// SetThingName sets the ThingName field's value.
56600func (s *RemoveThingFromBillingGroupInput) SetThingName(v string) *RemoveThingFromBillingGroupInput {
56601	s.ThingName = &v
56602	return s
56603}
56604
56605type RemoveThingFromBillingGroupOutput struct {
56606	_ struct{} `type:"structure"`
56607}
56608
56609// String returns the string representation.
56610//
56611// API parameter values that are decorated as "sensitive" in the API will not
56612// be included in the string output. The member name will be present, but the
56613// value will be replaced with "sensitive".
56614func (s RemoveThingFromBillingGroupOutput) String() string {
56615	return awsutil.Prettify(s)
56616}
56617
56618// GoString returns the string representation.
56619//
56620// API parameter values that are decorated as "sensitive" in the API will not
56621// be included in the string output. The member name will be present, but the
56622// value will be replaced with "sensitive".
56623func (s RemoveThingFromBillingGroupOutput) GoString() string {
56624	return s.String()
56625}
56626
56627type RemoveThingFromThingGroupInput struct {
56628	_ struct{} `type:"structure"`
56629
56630	// The ARN of the thing to remove from the group.
56631	ThingArn *string `locationName:"thingArn" type:"string"`
56632
56633	// The group ARN.
56634	ThingGroupArn *string `locationName:"thingGroupArn" type:"string"`
56635
56636	// The group name.
56637	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
56638
56639	// The name of the thing to remove from the group.
56640	ThingName *string `locationName:"thingName" min:"1" type:"string"`
56641}
56642
56643// String returns the string representation.
56644//
56645// API parameter values that are decorated as "sensitive" in the API will not
56646// be included in the string output. The member name will be present, but the
56647// value will be replaced with "sensitive".
56648func (s RemoveThingFromThingGroupInput) String() string {
56649	return awsutil.Prettify(s)
56650}
56651
56652// GoString returns the string representation.
56653//
56654// API parameter values that are decorated as "sensitive" in the API will not
56655// be included in the string output. The member name will be present, but the
56656// value will be replaced with "sensitive".
56657func (s RemoveThingFromThingGroupInput) GoString() string {
56658	return s.String()
56659}
56660
56661// Validate inspects the fields of the type to determine if they are valid.
56662func (s *RemoveThingFromThingGroupInput) Validate() error {
56663	invalidParams := request.ErrInvalidParams{Context: "RemoveThingFromThingGroupInput"}
56664	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
56665		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
56666	}
56667	if s.ThingName != nil && len(*s.ThingName) < 1 {
56668		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
56669	}
56670
56671	if invalidParams.Len() > 0 {
56672		return invalidParams
56673	}
56674	return nil
56675}
56676
56677// SetThingArn sets the ThingArn field's value.
56678func (s *RemoveThingFromThingGroupInput) SetThingArn(v string) *RemoveThingFromThingGroupInput {
56679	s.ThingArn = &v
56680	return s
56681}
56682
56683// SetThingGroupArn sets the ThingGroupArn field's value.
56684func (s *RemoveThingFromThingGroupInput) SetThingGroupArn(v string) *RemoveThingFromThingGroupInput {
56685	s.ThingGroupArn = &v
56686	return s
56687}
56688
56689// SetThingGroupName sets the ThingGroupName field's value.
56690func (s *RemoveThingFromThingGroupInput) SetThingGroupName(v string) *RemoveThingFromThingGroupInput {
56691	s.ThingGroupName = &v
56692	return s
56693}
56694
56695// SetThingName sets the ThingName field's value.
56696func (s *RemoveThingFromThingGroupInput) SetThingName(v string) *RemoveThingFromThingGroupInput {
56697	s.ThingName = &v
56698	return s
56699}
56700
56701type RemoveThingFromThingGroupOutput struct {
56702	_ struct{} `type:"structure"`
56703}
56704
56705// String returns the string representation.
56706//
56707// API parameter values that are decorated as "sensitive" in the API will not
56708// be included in the string output. The member name will be present, but the
56709// value will be replaced with "sensitive".
56710func (s RemoveThingFromThingGroupOutput) String() string {
56711	return awsutil.Prettify(s)
56712}
56713
56714// GoString returns the string representation.
56715//
56716// API parameter values that are decorated as "sensitive" in the API will not
56717// be included in the string output. The member name will be present, but the
56718// value will be replaced with "sensitive".
56719func (s RemoveThingFromThingGroupOutput) GoString() string {
56720	return s.String()
56721}
56722
56723// Parameters to define a mitigation action that adds a blank policy to restrict
56724// permissions.
56725type ReplaceDefaultPolicyVersionParams struct {
56726	_ struct{} `type:"structure"`
56727
56728	// The name of the template to be applied. The only supported value is BLANK_POLICY.
56729	//
56730	// TemplateName is a required field
56731	TemplateName *string `locationName:"templateName" type:"string" required:"true" enum:"PolicyTemplateName"`
56732}
56733
56734// String returns the string representation.
56735//
56736// API parameter values that are decorated as "sensitive" in the API will not
56737// be included in the string output. The member name will be present, but the
56738// value will be replaced with "sensitive".
56739func (s ReplaceDefaultPolicyVersionParams) String() string {
56740	return awsutil.Prettify(s)
56741}
56742
56743// GoString returns the string representation.
56744//
56745// API parameter values that are decorated as "sensitive" in the API will not
56746// be included in the string output. The member name will be present, but the
56747// value will be replaced with "sensitive".
56748func (s ReplaceDefaultPolicyVersionParams) GoString() string {
56749	return s.String()
56750}
56751
56752// Validate inspects the fields of the type to determine if they are valid.
56753func (s *ReplaceDefaultPolicyVersionParams) Validate() error {
56754	invalidParams := request.ErrInvalidParams{Context: "ReplaceDefaultPolicyVersionParams"}
56755	if s.TemplateName == nil {
56756		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
56757	}
56758
56759	if invalidParams.Len() > 0 {
56760		return invalidParams
56761	}
56762	return nil
56763}
56764
56765// SetTemplateName sets the TemplateName field's value.
56766func (s *ReplaceDefaultPolicyVersionParams) SetTemplateName(v string) *ReplaceDefaultPolicyVersionParams {
56767	s.TemplateName = &v
56768	return s
56769}
56770
56771// The input for the ReplaceTopicRule operation.
56772type ReplaceTopicRuleInput struct {
56773	_ struct{} `type:"structure" payload:"TopicRulePayload"`
56774
56775	// The name of the rule.
56776	//
56777	// RuleName is a required field
56778	RuleName *string `location:"uri" locationName:"ruleName" min:"1" type:"string" required:"true"`
56779
56780	// The rule payload.
56781	//
56782	// TopicRulePayload is a required field
56783	TopicRulePayload *TopicRulePayload `locationName:"topicRulePayload" type:"structure" required:"true"`
56784}
56785
56786// String returns the string representation.
56787//
56788// API parameter values that are decorated as "sensitive" in the API will not
56789// be included in the string output. The member name will be present, but the
56790// value will be replaced with "sensitive".
56791func (s ReplaceTopicRuleInput) String() string {
56792	return awsutil.Prettify(s)
56793}
56794
56795// GoString returns the string representation.
56796//
56797// API parameter values that are decorated as "sensitive" in the API will not
56798// be included in the string output. The member name will be present, but the
56799// value will be replaced with "sensitive".
56800func (s ReplaceTopicRuleInput) GoString() string {
56801	return s.String()
56802}
56803
56804// Validate inspects the fields of the type to determine if they are valid.
56805func (s *ReplaceTopicRuleInput) Validate() error {
56806	invalidParams := request.ErrInvalidParams{Context: "ReplaceTopicRuleInput"}
56807	if s.RuleName == nil {
56808		invalidParams.Add(request.NewErrParamRequired("RuleName"))
56809	}
56810	if s.RuleName != nil && len(*s.RuleName) < 1 {
56811		invalidParams.Add(request.NewErrParamMinLen("RuleName", 1))
56812	}
56813	if s.TopicRulePayload == nil {
56814		invalidParams.Add(request.NewErrParamRequired("TopicRulePayload"))
56815	}
56816	if s.TopicRulePayload != nil {
56817		if err := s.TopicRulePayload.Validate(); err != nil {
56818			invalidParams.AddNested("TopicRulePayload", err.(request.ErrInvalidParams))
56819		}
56820	}
56821
56822	if invalidParams.Len() > 0 {
56823		return invalidParams
56824	}
56825	return nil
56826}
56827
56828// SetRuleName sets the RuleName field's value.
56829func (s *ReplaceTopicRuleInput) SetRuleName(v string) *ReplaceTopicRuleInput {
56830	s.RuleName = &v
56831	return s
56832}
56833
56834// SetTopicRulePayload sets the TopicRulePayload field's value.
56835func (s *ReplaceTopicRuleInput) SetTopicRulePayload(v *TopicRulePayload) *ReplaceTopicRuleInput {
56836	s.TopicRulePayload = v
56837	return s
56838}
56839
56840type ReplaceTopicRuleOutput struct {
56841	_ struct{} `type:"structure"`
56842}
56843
56844// String returns the string representation.
56845//
56846// API parameter values that are decorated as "sensitive" in the API will not
56847// be included in the string output. The member name will be present, but the
56848// value will be replaced with "sensitive".
56849func (s ReplaceTopicRuleOutput) String() string {
56850	return awsutil.Prettify(s)
56851}
56852
56853// GoString returns the string representation.
56854//
56855// API parameter values that are decorated as "sensitive" in the API will not
56856// be included in the string output. The member name will be present, but the
56857// value will be replaced with "sensitive".
56858func (s ReplaceTopicRuleOutput) GoString() string {
56859	return s.String()
56860}
56861
56862// Describes an action to republish to another topic.
56863type RepublishAction struct {
56864	_ struct{} `type:"structure"`
56865
56866	// The Quality of Service (QoS) level to use when republishing messages. The
56867	// default value is 0.
56868	Qos *int64 `locationName:"qos" type:"integer"`
56869
56870	// The ARN of the IAM role that grants access.
56871	//
56872	// RoleArn is a required field
56873	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
56874
56875	// The name of the MQTT topic.
56876	//
56877	// Topic is a required field
56878	Topic *string `locationName:"topic" type:"string" required:"true"`
56879}
56880
56881// String returns the string representation.
56882//
56883// API parameter values that are decorated as "sensitive" in the API will not
56884// be included in the string output. The member name will be present, but the
56885// value will be replaced with "sensitive".
56886func (s RepublishAction) String() string {
56887	return awsutil.Prettify(s)
56888}
56889
56890// GoString returns the string representation.
56891//
56892// API parameter values that are decorated as "sensitive" in the API will not
56893// be included in the string output. The member name will be present, but the
56894// value will be replaced with "sensitive".
56895func (s RepublishAction) GoString() string {
56896	return s.String()
56897}
56898
56899// Validate inspects the fields of the type to determine if they are valid.
56900func (s *RepublishAction) Validate() error {
56901	invalidParams := request.ErrInvalidParams{Context: "RepublishAction"}
56902	if s.RoleArn == nil {
56903		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
56904	}
56905	if s.Topic == nil {
56906		invalidParams.Add(request.NewErrParamRequired("Topic"))
56907	}
56908
56909	if invalidParams.Len() > 0 {
56910		return invalidParams
56911	}
56912	return nil
56913}
56914
56915// SetQos sets the Qos field's value.
56916func (s *RepublishAction) SetQos(v int64) *RepublishAction {
56917	s.Qos = &v
56918	return s
56919}
56920
56921// SetRoleArn sets the RoleArn field's value.
56922func (s *RepublishAction) SetRoleArn(v string) *RepublishAction {
56923	s.RoleArn = &v
56924	return s
56925}
56926
56927// SetTopic sets the Topic field's value.
56928func (s *RepublishAction) SetTopic(v string) *RepublishAction {
56929	s.Topic = &v
56930	return s
56931}
56932
56933// The resource already exists.
56934type ResourceAlreadyExistsException struct {
56935	_            struct{}                  `type:"structure"`
56936	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
56937
56938	// The message for the exception.
56939	Message_ *string `locationName:"message" type:"string"`
56940
56941	// The ARN of the resource that caused the exception.
56942	ResourceArn *string `locationName:"resourceArn" type:"string"`
56943
56944	// The ID of the resource that caused the exception.
56945	ResourceId *string `locationName:"resourceId" type:"string"`
56946}
56947
56948// String returns the string representation.
56949//
56950// API parameter values that are decorated as "sensitive" in the API will not
56951// be included in the string output. The member name will be present, but the
56952// value will be replaced with "sensitive".
56953func (s ResourceAlreadyExistsException) String() string {
56954	return awsutil.Prettify(s)
56955}
56956
56957// GoString returns the string representation.
56958//
56959// API parameter values that are decorated as "sensitive" in the API will not
56960// be included in the string output. The member name will be present, but the
56961// value will be replaced with "sensitive".
56962func (s ResourceAlreadyExistsException) GoString() string {
56963	return s.String()
56964}
56965
56966func newErrorResourceAlreadyExistsException(v protocol.ResponseMetadata) error {
56967	return &ResourceAlreadyExistsException{
56968		RespMetadata: v,
56969	}
56970}
56971
56972// Code returns the exception type name.
56973func (s *ResourceAlreadyExistsException) Code() string {
56974	return "ResourceAlreadyExistsException"
56975}
56976
56977// Message returns the exception's message.
56978func (s *ResourceAlreadyExistsException) Message() string {
56979	if s.Message_ != nil {
56980		return *s.Message_
56981	}
56982	return ""
56983}
56984
56985// OrigErr always returns nil, satisfies awserr.Error interface.
56986func (s *ResourceAlreadyExistsException) OrigErr() error {
56987	return nil
56988}
56989
56990func (s *ResourceAlreadyExistsException) Error() string {
56991	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
56992}
56993
56994// Status code returns the HTTP status code for the request's response error.
56995func (s *ResourceAlreadyExistsException) StatusCode() int {
56996	return s.RespMetadata.StatusCode
56997}
56998
56999// RequestID returns the service's response RequestID for request.
57000func (s *ResourceAlreadyExistsException) RequestID() string {
57001	return s.RespMetadata.RequestID
57002}
57003
57004// Information that identifies the noncompliant resource.
57005type ResourceIdentifier struct {
57006	_ struct{} `type:"structure"`
57007
57008	// The account with which the resource is associated.
57009	Account *string `locationName:"account" min:"12" type:"string"`
57010
57011	// The ID of the CA certificate used to authorize the certificate.
57012	CaCertificateId *string `locationName:"caCertificateId" min:"64" type:"string"`
57013
57014	// The client ID.
57015	ClientId *string `locationName:"clientId" type:"string"`
57016
57017	// The ID of the Amazon Cognito identity pool.
57018	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
57019
57020	// The ID of the certificate attached to the resource.
57021	DeviceCertificateId *string `locationName:"deviceCertificateId" min:"64" type:"string"`
57022
57023	// The ARN of the IAM role that has overly permissive actions.
57024	IamRoleArn *string `locationName:"iamRoleArn" min:"20" type:"string"`
57025
57026	// The version of the policy associated with the resource.
57027	PolicyVersionIdentifier *PolicyVersionIdentifier `locationName:"policyVersionIdentifier" type:"structure"`
57028
57029	// The ARN of the role alias that has overly permissive actions.
57030	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
57031}
57032
57033// String returns the string representation.
57034//
57035// API parameter values that are decorated as "sensitive" in the API will not
57036// be included in the string output. The member name will be present, but the
57037// value will be replaced with "sensitive".
57038func (s ResourceIdentifier) String() string {
57039	return awsutil.Prettify(s)
57040}
57041
57042// GoString returns the string representation.
57043//
57044// API parameter values that are decorated as "sensitive" in the API will not
57045// be included in the string output. The member name will be present, but the
57046// value will be replaced with "sensitive".
57047func (s ResourceIdentifier) GoString() string {
57048	return s.String()
57049}
57050
57051// Validate inspects the fields of the type to determine if they are valid.
57052func (s *ResourceIdentifier) Validate() error {
57053	invalidParams := request.ErrInvalidParams{Context: "ResourceIdentifier"}
57054	if s.Account != nil && len(*s.Account) < 12 {
57055		invalidParams.Add(request.NewErrParamMinLen("Account", 12))
57056	}
57057	if s.CaCertificateId != nil && len(*s.CaCertificateId) < 64 {
57058		invalidParams.Add(request.NewErrParamMinLen("CaCertificateId", 64))
57059	}
57060	if s.DeviceCertificateId != nil && len(*s.DeviceCertificateId) < 64 {
57061		invalidParams.Add(request.NewErrParamMinLen("DeviceCertificateId", 64))
57062	}
57063	if s.IamRoleArn != nil && len(*s.IamRoleArn) < 20 {
57064		invalidParams.Add(request.NewErrParamMinLen("IamRoleArn", 20))
57065	}
57066	if s.RoleAliasArn != nil && len(*s.RoleAliasArn) < 1 {
57067		invalidParams.Add(request.NewErrParamMinLen("RoleAliasArn", 1))
57068	}
57069	if s.PolicyVersionIdentifier != nil {
57070		if err := s.PolicyVersionIdentifier.Validate(); err != nil {
57071			invalidParams.AddNested("PolicyVersionIdentifier", err.(request.ErrInvalidParams))
57072		}
57073	}
57074
57075	if invalidParams.Len() > 0 {
57076		return invalidParams
57077	}
57078	return nil
57079}
57080
57081// SetAccount sets the Account field's value.
57082func (s *ResourceIdentifier) SetAccount(v string) *ResourceIdentifier {
57083	s.Account = &v
57084	return s
57085}
57086
57087// SetCaCertificateId sets the CaCertificateId field's value.
57088func (s *ResourceIdentifier) SetCaCertificateId(v string) *ResourceIdentifier {
57089	s.CaCertificateId = &v
57090	return s
57091}
57092
57093// SetClientId sets the ClientId field's value.
57094func (s *ResourceIdentifier) SetClientId(v string) *ResourceIdentifier {
57095	s.ClientId = &v
57096	return s
57097}
57098
57099// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
57100func (s *ResourceIdentifier) SetCognitoIdentityPoolId(v string) *ResourceIdentifier {
57101	s.CognitoIdentityPoolId = &v
57102	return s
57103}
57104
57105// SetDeviceCertificateId sets the DeviceCertificateId field's value.
57106func (s *ResourceIdentifier) SetDeviceCertificateId(v string) *ResourceIdentifier {
57107	s.DeviceCertificateId = &v
57108	return s
57109}
57110
57111// SetIamRoleArn sets the IamRoleArn field's value.
57112func (s *ResourceIdentifier) SetIamRoleArn(v string) *ResourceIdentifier {
57113	s.IamRoleArn = &v
57114	return s
57115}
57116
57117// SetPolicyVersionIdentifier sets the PolicyVersionIdentifier field's value.
57118func (s *ResourceIdentifier) SetPolicyVersionIdentifier(v *PolicyVersionIdentifier) *ResourceIdentifier {
57119	s.PolicyVersionIdentifier = v
57120	return s
57121}
57122
57123// SetRoleAliasArn sets the RoleAliasArn field's value.
57124func (s *ResourceIdentifier) SetRoleAliasArn(v string) *ResourceIdentifier {
57125	s.RoleAliasArn = &v
57126	return s
57127}
57128
57129// The specified resource does not exist.
57130type ResourceNotFoundException struct {
57131	_            struct{}                  `type:"structure"`
57132	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
57133
57134	// The message for the exception.
57135	Message_ *string `locationName:"message" type:"string"`
57136}
57137
57138// String returns the string representation.
57139//
57140// API parameter values that are decorated as "sensitive" in the API will not
57141// be included in the string output. The member name will be present, but the
57142// value will be replaced with "sensitive".
57143func (s ResourceNotFoundException) String() string {
57144	return awsutil.Prettify(s)
57145}
57146
57147// GoString returns the string representation.
57148//
57149// API parameter values that are decorated as "sensitive" in the API will not
57150// be included in the string output. The member name will be present, but the
57151// value will be replaced with "sensitive".
57152func (s ResourceNotFoundException) GoString() string {
57153	return s.String()
57154}
57155
57156func newErrorResourceNotFoundException(v protocol.ResponseMetadata) error {
57157	return &ResourceNotFoundException{
57158		RespMetadata: v,
57159	}
57160}
57161
57162// Code returns the exception type name.
57163func (s *ResourceNotFoundException) Code() string {
57164	return "ResourceNotFoundException"
57165}
57166
57167// Message returns the exception's message.
57168func (s *ResourceNotFoundException) Message() string {
57169	if s.Message_ != nil {
57170		return *s.Message_
57171	}
57172	return ""
57173}
57174
57175// OrigErr always returns nil, satisfies awserr.Error interface.
57176func (s *ResourceNotFoundException) OrigErr() error {
57177	return nil
57178}
57179
57180func (s *ResourceNotFoundException) Error() string {
57181	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
57182}
57183
57184// Status code returns the HTTP status code for the request's response error.
57185func (s *ResourceNotFoundException) StatusCode() int {
57186	return s.RespMetadata.StatusCode
57187}
57188
57189// RequestID returns the service's response RequestID for request.
57190func (s *ResourceNotFoundException) RequestID() string {
57191	return s.RespMetadata.RequestID
57192}
57193
57194// The resource registration failed.
57195type ResourceRegistrationFailureException struct {
57196	_            struct{}                  `type:"structure"`
57197	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
57198
57199	// The message for the exception.
57200	Message_ *string `locationName:"message" type:"string"`
57201}
57202
57203// String returns the string representation.
57204//
57205// API parameter values that are decorated as "sensitive" in the API will not
57206// be included in the string output. The member name will be present, but the
57207// value will be replaced with "sensitive".
57208func (s ResourceRegistrationFailureException) String() string {
57209	return awsutil.Prettify(s)
57210}
57211
57212// GoString returns the string representation.
57213//
57214// API parameter values that are decorated as "sensitive" in the API will not
57215// be included in the string output. The member name will be present, but the
57216// value will be replaced with "sensitive".
57217func (s ResourceRegistrationFailureException) GoString() string {
57218	return s.String()
57219}
57220
57221func newErrorResourceRegistrationFailureException(v protocol.ResponseMetadata) error {
57222	return &ResourceRegistrationFailureException{
57223		RespMetadata: v,
57224	}
57225}
57226
57227// Code returns the exception type name.
57228func (s *ResourceRegistrationFailureException) Code() string {
57229	return "ResourceRegistrationFailureException"
57230}
57231
57232// Message returns the exception's message.
57233func (s *ResourceRegistrationFailureException) Message() string {
57234	if s.Message_ != nil {
57235		return *s.Message_
57236	}
57237	return ""
57238}
57239
57240// OrigErr always returns nil, satisfies awserr.Error interface.
57241func (s *ResourceRegistrationFailureException) OrigErr() error {
57242	return nil
57243}
57244
57245func (s *ResourceRegistrationFailureException) Error() string {
57246	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
57247}
57248
57249// Status code returns the HTTP status code for the request's response error.
57250func (s *ResourceRegistrationFailureException) StatusCode() int {
57251	return s.RespMetadata.StatusCode
57252}
57253
57254// RequestID returns the service's response RequestID for request.
57255func (s *ResourceRegistrationFailureException) RequestID() string {
57256	return s.RespMetadata.RequestID
57257}
57258
57259// Role alias description.
57260type RoleAliasDescription struct {
57261	_ struct{} `type:"structure"`
57262
57263	// The UNIX timestamp of when the role alias was created.
57264	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
57265
57266	// The number of seconds for which the credential is valid.
57267	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
57268
57269	// The UNIX timestamp of when the role alias was last modified.
57270	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
57271
57272	// The role alias owner.
57273	Owner *string `locationName:"owner" min:"12" type:"string"`
57274
57275	// The role alias.
57276	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
57277
57278	// The ARN of the role alias.
57279	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
57280
57281	// The role ARN.
57282	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
57283}
57284
57285// String returns the string representation.
57286//
57287// API parameter values that are decorated as "sensitive" in the API will not
57288// be included in the string output. The member name will be present, but the
57289// value will be replaced with "sensitive".
57290func (s RoleAliasDescription) String() string {
57291	return awsutil.Prettify(s)
57292}
57293
57294// GoString returns the string representation.
57295//
57296// API parameter values that are decorated as "sensitive" in the API will not
57297// be included in the string output. The member name will be present, but the
57298// value will be replaced with "sensitive".
57299func (s RoleAliasDescription) GoString() string {
57300	return s.String()
57301}
57302
57303// SetCreationDate sets the CreationDate field's value.
57304func (s *RoleAliasDescription) SetCreationDate(v time.Time) *RoleAliasDescription {
57305	s.CreationDate = &v
57306	return s
57307}
57308
57309// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
57310func (s *RoleAliasDescription) SetCredentialDurationSeconds(v int64) *RoleAliasDescription {
57311	s.CredentialDurationSeconds = &v
57312	return s
57313}
57314
57315// SetLastModifiedDate sets the LastModifiedDate field's value.
57316func (s *RoleAliasDescription) SetLastModifiedDate(v time.Time) *RoleAliasDescription {
57317	s.LastModifiedDate = &v
57318	return s
57319}
57320
57321// SetOwner sets the Owner field's value.
57322func (s *RoleAliasDescription) SetOwner(v string) *RoleAliasDescription {
57323	s.Owner = &v
57324	return s
57325}
57326
57327// SetRoleAlias sets the RoleAlias field's value.
57328func (s *RoleAliasDescription) SetRoleAlias(v string) *RoleAliasDescription {
57329	s.RoleAlias = &v
57330	return s
57331}
57332
57333// SetRoleAliasArn sets the RoleAliasArn field's value.
57334func (s *RoleAliasDescription) SetRoleAliasArn(v string) *RoleAliasDescription {
57335	s.RoleAliasArn = &v
57336	return s
57337}
57338
57339// SetRoleArn sets the RoleArn field's value.
57340func (s *RoleAliasDescription) SetRoleArn(v string) *RoleAliasDescription {
57341	s.RoleArn = &v
57342	return s
57343}
57344
57345// Describes an action to write data to an Amazon S3 bucket.
57346type S3Action struct {
57347	_ struct{} `type:"structure"`
57348
57349	// The Amazon S3 bucket.
57350	//
57351	// BucketName is a required field
57352	BucketName *string `locationName:"bucketName" type:"string" required:"true"`
57353
57354	// The Amazon S3 canned ACL that controls access to the object identified by
57355	// the object key. For more information, see S3 canned ACLs (https://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl).
57356	CannedAcl *string `locationName:"cannedAcl" type:"string" enum:"CannedAccessControlList"`
57357
57358	// The object key. For more information, see Actions, resources, and condition
57359	// keys for Amazon S3 (https://docs.aws.amazon.com/AmazonS3/latest/dev/list_amazons3.html).
57360	//
57361	// Key is a required field
57362	Key *string `locationName:"key" type:"string" required:"true"`
57363
57364	// The ARN of the IAM role that grants access.
57365	//
57366	// RoleArn is a required field
57367	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
57368}
57369
57370// String returns the string representation.
57371//
57372// API parameter values that are decorated as "sensitive" in the API will not
57373// be included in the string output. The member name will be present, but the
57374// value will be replaced with "sensitive".
57375func (s S3Action) String() string {
57376	return awsutil.Prettify(s)
57377}
57378
57379// GoString returns the string representation.
57380//
57381// API parameter values that are decorated as "sensitive" in the API will not
57382// be included in the string output. The member name will be present, but the
57383// value will be replaced with "sensitive".
57384func (s S3Action) GoString() string {
57385	return s.String()
57386}
57387
57388// Validate inspects the fields of the type to determine if they are valid.
57389func (s *S3Action) Validate() error {
57390	invalidParams := request.ErrInvalidParams{Context: "S3Action"}
57391	if s.BucketName == nil {
57392		invalidParams.Add(request.NewErrParamRequired("BucketName"))
57393	}
57394	if s.Key == nil {
57395		invalidParams.Add(request.NewErrParamRequired("Key"))
57396	}
57397	if s.RoleArn == nil {
57398		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
57399	}
57400
57401	if invalidParams.Len() > 0 {
57402		return invalidParams
57403	}
57404	return nil
57405}
57406
57407// SetBucketName sets the BucketName field's value.
57408func (s *S3Action) SetBucketName(v string) *S3Action {
57409	s.BucketName = &v
57410	return s
57411}
57412
57413// SetCannedAcl sets the CannedAcl field's value.
57414func (s *S3Action) SetCannedAcl(v string) *S3Action {
57415	s.CannedAcl = &v
57416	return s
57417}
57418
57419// SetKey sets the Key field's value.
57420func (s *S3Action) SetKey(v string) *S3Action {
57421	s.Key = &v
57422	return s
57423}
57424
57425// SetRoleArn sets the RoleArn field's value.
57426func (s *S3Action) SetRoleArn(v string) *S3Action {
57427	s.RoleArn = &v
57428	return s
57429}
57430
57431// Describes the location of updated firmware in S3.
57432type S3Destination struct {
57433	_ struct{} `type:"structure"`
57434
57435	// The S3 bucket that contains the updated firmware.
57436	Bucket *string `locationName:"bucket" min:"1" type:"string"`
57437
57438	// The S3 prefix.
57439	Prefix *string `locationName:"prefix" type:"string"`
57440}
57441
57442// String returns the string representation.
57443//
57444// API parameter values that are decorated as "sensitive" in the API will not
57445// be included in the string output. The member name will be present, but the
57446// value will be replaced with "sensitive".
57447func (s S3Destination) String() string {
57448	return awsutil.Prettify(s)
57449}
57450
57451// GoString returns the string representation.
57452//
57453// API parameter values that are decorated as "sensitive" in the API will not
57454// be included in the string output. The member name will be present, but the
57455// value will be replaced with "sensitive".
57456func (s S3Destination) GoString() string {
57457	return s.String()
57458}
57459
57460// Validate inspects the fields of the type to determine if they are valid.
57461func (s *S3Destination) Validate() error {
57462	invalidParams := request.ErrInvalidParams{Context: "S3Destination"}
57463	if s.Bucket != nil && len(*s.Bucket) < 1 {
57464		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
57465	}
57466
57467	if invalidParams.Len() > 0 {
57468		return invalidParams
57469	}
57470	return nil
57471}
57472
57473// SetBucket sets the Bucket field's value.
57474func (s *S3Destination) SetBucket(v string) *S3Destination {
57475	s.Bucket = &v
57476	return s
57477}
57478
57479// SetPrefix sets the Prefix field's value.
57480func (s *S3Destination) SetPrefix(v string) *S3Destination {
57481	s.Prefix = &v
57482	return s
57483}
57484
57485// The S3 location.
57486type S3Location struct {
57487	_ struct{} `type:"structure"`
57488
57489	// The S3 bucket.
57490	Bucket *string `locationName:"bucket" min:"1" type:"string"`
57491
57492	// The S3 key.
57493	Key *string `locationName:"key" min:"1" type:"string"`
57494
57495	// The S3 bucket version.
57496	Version *string `locationName:"version" type:"string"`
57497}
57498
57499// String returns the string representation.
57500//
57501// API parameter values that are decorated as "sensitive" in the API will not
57502// be included in the string output. The member name will be present, but the
57503// value will be replaced with "sensitive".
57504func (s S3Location) String() string {
57505	return awsutil.Prettify(s)
57506}
57507
57508// GoString returns the string representation.
57509//
57510// API parameter values that are decorated as "sensitive" in the API will not
57511// be included in the string output. The member name will be present, but the
57512// value will be replaced with "sensitive".
57513func (s S3Location) GoString() string {
57514	return s.String()
57515}
57516
57517// Validate inspects the fields of the type to determine if they are valid.
57518func (s *S3Location) Validate() error {
57519	invalidParams := request.ErrInvalidParams{Context: "S3Location"}
57520	if s.Bucket != nil && len(*s.Bucket) < 1 {
57521		invalidParams.Add(request.NewErrParamMinLen("Bucket", 1))
57522	}
57523	if s.Key != nil && len(*s.Key) < 1 {
57524		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
57525	}
57526
57527	if invalidParams.Len() > 0 {
57528		return invalidParams
57529	}
57530	return nil
57531}
57532
57533// SetBucket sets the Bucket field's value.
57534func (s *S3Location) SetBucket(v string) *S3Location {
57535	s.Bucket = &v
57536	return s
57537}
57538
57539// SetKey sets the Key field's value.
57540func (s *S3Location) SetKey(v string) *S3Location {
57541	s.Key = &v
57542	return s
57543}
57544
57545// SetVersion sets the Version field's value.
57546func (s *S3Location) SetVersion(v string) *S3Location {
57547	s.Version = &v
57548	return s
57549}
57550
57551// Describes an action to write a message to a Salesforce IoT Cloud Input Stream.
57552type SalesforceAction struct {
57553	_ struct{} `type:"structure"`
57554
57555	// The token used to authenticate access to the Salesforce IoT Cloud Input Stream.
57556	// The token is available from the Salesforce IoT Cloud platform after creation
57557	// of the Input Stream.
57558	//
57559	// Token is a required field
57560	Token *string `locationName:"token" min:"40" type:"string" required:"true"`
57561
57562	// The URL exposed by the Salesforce IoT Cloud Input Stream. The URL is available
57563	// from the Salesforce IoT Cloud platform after creation of the Input Stream.
57564	//
57565	// Url is a required field
57566	Url *string `locationName:"url" type:"string" required:"true"`
57567}
57568
57569// String returns the string representation.
57570//
57571// API parameter values that are decorated as "sensitive" in the API will not
57572// be included in the string output. The member name will be present, but the
57573// value will be replaced with "sensitive".
57574func (s SalesforceAction) String() string {
57575	return awsutil.Prettify(s)
57576}
57577
57578// GoString returns the string representation.
57579//
57580// API parameter values that are decorated as "sensitive" in the API will not
57581// be included in the string output. The member name will be present, but the
57582// value will be replaced with "sensitive".
57583func (s SalesforceAction) GoString() string {
57584	return s.String()
57585}
57586
57587// Validate inspects the fields of the type to determine if they are valid.
57588func (s *SalesforceAction) Validate() error {
57589	invalidParams := request.ErrInvalidParams{Context: "SalesforceAction"}
57590	if s.Token == nil {
57591		invalidParams.Add(request.NewErrParamRequired("Token"))
57592	}
57593	if s.Token != nil && len(*s.Token) < 40 {
57594		invalidParams.Add(request.NewErrParamMinLen("Token", 40))
57595	}
57596	if s.Url == nil {
57597		invalidParams.Add(request.NewErrParamRequired("Url"))
57598	}
57599
57600	if invalidParams.Len() > 0 {
57601		return invalidParams
57602	}
57603	return nil
57604}
57605
57606// SetToken sets the Token field's value.
57607func (s *SalesforceAction) SetToken(v string) *SalesforceAction {
57608	s.Token = &v
57609	return s
57610}
57611
57612// SetUrl sets the Url field's value.
57613func (s *SalesforceAction) SetUrl(v string) *SalesforceAction {
57614	s.Url = &v
57615	return s
57616}
57617
57618// Information about the scheduled audit.
57619type ScheduledAuditMetadata struct {
57620	_ struct{} `type:"structure"`
57621
57622	// The day of the month on which the scheduled audit is run (if the frequency
57623	// is "MONTHLY"). If days 29-31 are specified, and the month does not have that
57624	// many days, the audit takes place on the "LAST" day of the month.
57625	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
57626
57627	// The day of the week on which the scheduled audit is run (if the frequency
57628	// is "WEEKLY" or "BIWEEKLY").
57629	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
57630
57631	// How often the scheduled audit occurs.
57632	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
57633
57634	// The ARN of the scheduled audit.
57635	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
57636
57637	// The name of the scheduled audit.
57638	ScheduledAuditName *string `locationName:"scheduledAuditName" min:"1" type:"string"`
57639}
57640
57641// String returns the string representation.
57642//
57643// API parameter values that are decorated as "sensitive" in the API will not
57644// be included in the string output. The member name will be present, but the
57645// value will be replaced with "sensitive".
57646func (s ScheduledAuditMetadata) String() string {
57647	return awsutil.Prettify(s)
57648}
57649
57650// GoString returns the string representation.
57651//
57652// API parameter values that are decorated as "sensitive" in the API will not
57653// be included in the string output. The member name will be present, but the
57654// value will be replaced with "sensitive".
57655func (s ScheduledAuditMetadata) GoString() string {
57656	return s.String()
57657}
57658
57659// SetDayOfMonth sets the DayOfMonth field's value.
57660func (s *ScheduledAuditMetadata) SetDayOfMonth(v string) *ScheduledAuditMetadata {
57661	s.DayOfMonth = &v
57662	return s
57663}
57664
57665// SetDayOfWeek sets the DayOfWeek field's value.
57666func (s *ScheduledAuditMetadata) SetDayOfWeek(v string) *ScheduledAuditMetadata {
57667	s.DayOfWeek = &v
57668	return s
57669}
57670
57671// SetFrequency sets the Frequency field's value.
57672func (s *ScheduledAuditMetadata) SetFrequency(v string) *ScheduledAuditMetadata {
57673	s.Frequency = &v
57674	return s
57675}
57676
57677// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
57678func (s *ScheduledAuditMetadata) SetScheduledAuditArn(v string) *ScheduledAuditMetadata {
57679	s.ScheduledAuditArn = &v
57680	return s
57681}
57682
57683// SetScheduledAuditName sets the ScheduledAuditName field's value.
57684func (s *ScheduledAuditMetadata) SetScheduledAuditName(v string) *ScheduledAuditMetadata {
57685	s.ScheduledAuditName = &v
57686	return s
57687}
57688
57689type SearchIndexInput struct {
57690	_ struct{} `type:"structure"`
57691
57692	// The search index name.
57693	IndexName *string `locationName:"indexName" min:"1" type:"string"`
57694
57695	// The maximum number of results to return at one time.
57696	MaxResults *int64 `locationName:"maxResults" min:"1" type:"integer"`
57697
57698	// The token used to get the next set of results, or null if there are no additional
57699	// results.
57700	NextToken *string `locationName:"nextToken" type:"string"`
57701
57702	// The search query string.
57703	//
57704	// QueryString is a required field
57705	QueryString *string `locationName:"queryString" min:"1" type:"string" required:"true"`
57706
57707	// The query version.
57708	QueryVersion *string `locationName:"queryVersion" type:"string"`
57709}
57710
57711// String returns the string representation.
57712//
57713// API parameter values that are decorated as "sensitive" in the API will not
57714// be included in the string output. The member name will be present, but the
57715// value will be replaced with "sensitive".
57716func (s SearchIndexInput) String() string {
57717	return awsutil.Prettify(s)
57718}
57719
57720// GoString returns the string representation.
57721//
57722// API parameter values that are decorated as "sensitive" in the API will not
57723// be included in the string output. The member name will be present, but the
57724// value will be replaced with "sensitive".
57725func (s SearchIndexInput) GoString() string {
57726	return s.String()
57727}
57728
57729// Validate inspects the fields of the type to determine if they are valid.
57730func (s *SearchIndexInput) Validate() error {
57731	invalidParams := request.ErrInvalidParams{Context: "SearchIndexInput"}
57732	if s.IndexName != nil && len(*s.IndexName) < 1 {
57733		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
57734	}
57735	if s.MaxResults != nil && *s.MaxResults < 1 {
57736		invalidParams.Add(request.NewErrParamMinValue("MaxResults", 1))
57737	}
57738	if s.QueryString == nil {
57739		invalidParams.Add(request.NewErrParamRequired("QueryString"))
57740	}
57741	if s.QueryString != nil && len(*s.QueryString) < 1 {
57742		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
57743	}
57744
57745	if invalidParams.Len() > 0 {
57746		return invalidParams
57747	}
57748	return nil
57749}
57750
57751// SetIndexName sets the IndexName field's value.
57752func (s *SearchIndexInput) SetIndexName(v string) *SearchIndexInput {
57753	s.IndexName = &v
57754	return s
57755}
57756
57757// SetMaxResults sets the MaxResults field's value.
57758func (s *SearchIndexInput) SetMaxResults(v int64) *SearchIndexInput {
57759	s.MaxResults = &v
57760	return s
57761}
57762
57763// SetNextToken sets the NextToken field's value.
57764func (s *SearchIndexInput) SetNextToken(v string) *SearchIndexInput {
57765	s.NextToken = &v
57766	return s
57767}
57768
57769// SetQueryString sets the QueryString field's value.
57770func (s *SearchIndexInput) SetQueryString(v string) *SearchIndexInput {
57771	s.QueryString = &v
57772	return s
57773}
57774
57775// SetQueryVersion sets the QueryVersion field's value.
57776func (s *SearchIndexInput) SetQueryVersion(v string) *SearchIndexInput {
57777	s.QueryVersion = &v
57778	return s
57779}
57780
57781type SearchIndexOutput struct {
57782	_ struct{} `type:"structure"`
57783
57784	// The token used to get the next set of results, or null if there are no additional
57785	// results.
57786	NextToken *string `locationName:"nextToken" type:"string"`
57787
57788	// The thing groups that match the search query.
57789	ThingGroups []*ThingGroupDocument `locationName:"thingGroups" type:"list"`
57790
57791	// The things that match the search query.
57792	Things []*ThingDocument `locationName:"things" type:"list"`
57793}
57794
57795// String returns the string representation.
57796//
57797// API parameter values that are decorated as "sensitive" in the API will not
57798// be included in the string output. The member name will be present, but the
57799// value will be replaced with "sensitive".
57800func (s SearchIndexOutput) String() string {
57801	return awsutil.Prettify(s)
57802}
57803
57804// GoString returns the string representation.
57805//
57806// API parameter values that are decorated as "sensitive" in the API will not
57807// be included in the string output. The member name will be present, but the
57808// value will be replaced with "sensitive".
57809func (s SearchIndexOutput) GoString() string {
57810	return s.String()
57811}
57812
57813// SetNextToken sets the NextToken field's value.
57814func (s *SearchIndexOutput) SetNextToken(v string) *SearchIndexOutput {
57815	s.NextToken = &v
57816	return s
57817}
57818
57819// SetThingGroups sets the ThingGroups field's value.
57820func (s *SearchIndexOutput) SetThingGroups(v []*ThingGroupDocument) *SearchIndexOutput {
57821	s.ThingGroups = v
57822	return s
57823}
57824
57825// SetThings sets the Things field's value.
57826func (s *SearchIndexOutput) SetThings(v []*ThingDocument) *SearchIndexOutput {
57827	s.Things = v
57828	return s
57829}
57830
57831// Identifying information for a Device Defender security profile.
57832type SecurityProfileIdentifier struct {
57833	_ struct{} `type:"structure"`
57834
57835	// The ARN of the security profile.
57836	//
57837	// Arn is a required field
57838	Arn *string `locationName:"arn" type:"string" required:"true"`
57839
57840	// The name you've given to the security profile.
57841	//
57842	// Name is a required field
57843	Name *string `locationName:"name" min:"1" type:"string" required:"true"`
57844}
57845
57846// String returns the string representation.
57847//
57848// API parameter values that are decorated as "sensitive" in the API will not
57849// be included in the string output. The member name will be present, but the
57850// value will be replaced with "sensitive".
57851func (s SecurityProfileIdentifier) String() string {
57852	return awsutil.Prettify(s)
57853}
57854
57855// GoString returns the string representation.
57856//
57857// API parameter values that are decorated as "sensitive" in the API will not
57858// be included in the string output. The member name will be present, but the
57859// value will be replaced with "sensitive".
57860func (s SecurityProfileIdentifier) GoString() string {
57861	return s.String()
57862}
57863
57864// SetArn sets the Arn field's value.
57865func (s *SecurityProfileIdentifier) SetArn(v string) *SecurityProfileIdentifier {
57866	s.Arn = &v
57867	return s
57868}
57869
57870// SetName sets the Name field's value.
57871func (s *SecurityProfileIdentifier) SetName(v string) *SecurityProfileIdentifier {
57872	s.Name = &v
57873	return s
57874}
57875
57876// A target to which an alert is sent when a security profile behavior is violated.
57877type SecurityProfileTarget struct {
57878	_ struct{} `type:"structure"`
57879
57880	// The ARN of the security profile.
57881	//
57882	// Arn is a required field
57883	Arn *string `locationName:"arn" type:"string" required:"true"`
57884}
57885
57886// String returns the string representation.
57887//
57888// API parameter values that are decorated as "sensitive" in the API will not
57889// be included in the string output. The member name will be present, but the
57890// value will be replaced with "sensitive".
57891func (s SecurityProfileTarget) String() string {
57892	return awsutil.Prettify(s)
57893}
57894
57895// GoString returns the string representation.
57896//
57897// API parameter values that are decorated as "sensitive" in the API will not
57898// be included in the string output. The member name will be present, but the
57899// value will be replaced with "sensitive".
57900func (s SecurityProfileTarget) GoString() string {
57901	return s.String()
57902}
57903
57904// SetArn sets the Arn field's value.
57905func (s *SecurityProfileTarget) SetArn(v string) *SecurityProfileTarget {
57906	s.Arn = &v
57907	return s
57908}
57909
57910// Information about a security profile and the target associated with it.
57911type SecurityProfileTargetMapping struct {
57912	_ struct{} `type:"structure"`
57913
57914	// Information that identifies the security profile.
57915	SecurityProfileIdentifier *SecurityProfileIdentifier `locationName:"securityProfileIdentifier" type:"structure"`
57916
57917	// Information about the target (thing group) associated with the security profile.
57918	Target *SecurityProfileTarget `locationName:"target" type:"structure"`
57919}
57920
57921// String returns the string representation.
57922//
57923// API parameter values that are decorated as "sensitive" in the API will not
57924// be included in the string output. The member name will be present, but the
57925// value will be replaced with "sensitive".
57926func (s SecurityProfileTargetMapping) String() string {
57927	return awsutil.Prettify(s)
57928}
57929
57930// GoString returns the string representation.
57931//
57932// API parameter values that are decorated as "sensitive" in the API will not
57933// be included in the string output. The member name will be present, but the
57934// value will be replaced with "sensitive".
57935func (s SecurityProfileTargetMapping) GoString() string {
57936	return s.String()
57937}
57938
57939// SetSecurityProfileIdentifier sets the SecurityProfileIdentifier field's value.
57940func (s *SecurityProfileTargetMapping) SetSecurityProfileIdentifier(v *SecurityProfileIdentifier) *SecurityProfileTargetMapping {
57941	s.SecurityProfileIdentifier = v
57942	return s
57943}
57944
57945// SetTarget sets the Target field's value.
57946func (s *SecurityProfileTargetMapping) SetTarget(v *SecurityProfileTarget) *SecurityProfileTargetMapping {
57947	s.Target = v
57948	return s
57949}
57950
57951// An object that contains information about a server certificate.
57952type ServerCertificateSummary struct {
57953	_ struct{} `type:"structure"`
57954
57955	// The ARN of the server certificate.
57956	ServerCertificateArn *string `locationName:"serverCertificateArn" min:"1" type:"string"`
57957
57958	// The status of the server certificate.
57959	ServerCertificateStatus *string `locationName:"serverCertificateStatus" type:"string" enum:"ServerCertificateStatus"`
57960
57961	// Details that explain the status of the server certificate.
57962	ServerCertificateStatusDetail *string `locationName:"serverCertificateStatusDetail" type:"string"`
57963}
57964
57965// String returns the string representation.
57966//
57967// API parameter values that are decorated as "sensitive" in the API will not
57968// be included in the string output. The member name will be present, but the
57969// value will be replaced with "sensitive".
57970func (s ServerCertificateSummary) String() string {
57971	return awsutil.Prettify(s)
57972}
57973
57974// GoString returns the string representation.
57975//
57976// API parameter values that are decorated as "sensitive" in the API will not
57977// be included in the string output. The member name will be present, but the
57978// value will be replaced with "sensitive".
57979func (s ServerCertificateSummary) GoString() string {
57980	return s.String()
57981}
57982
57983// SetServerCertificateArn sets the ServerCertificateArn field's value.
57984func (s *ServerCertificateSummary) SetServerCertificateArn(v string) *ServerCertificateSummary {
57985	s.ServerCertificateArn = &v
57986	return s
57987}
57988
57989// SetServerCertificateStatus sets the ServerCertificateStatus field's value.
57990func (s *ServerCertificateSummary) SetServerCertificateStatus(v string) *ServerCertificateSummary {
57991	s.ServerCertificateStatus = &v
57992	return s
57993}
57994
57995// SetServerCertificateStatusDetail sets the ServerCertificateStatusDetail field's value.
57996func (s *ServerCertificateSummary) SetServerCertificateStatusDetail(v string) *ServerCertificateSummary {
57997	s.ServerCertificateStatusDetail = &v
57998	return s
57999}
58000
58001// The service is temporarily unavailable.
58002type ServiceUnavailableException struct {
58003	_            struct{}                  `type:"structure"`
58004	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
58005
58006	// The message for the exception.
58007	Message_ *string `locationName:"message" type:"string"`
58008}
58009
58010// String returns the string representation.
58011//
58012// API parameter values that are decorated as "sensitive" in the API will not
58013// be included in the string output. The member name will be present, but the
58014// value will be replaced with "sensitive".
58015func (s ServiceUnavailableException) String() string {
58016	return awsutil.Prettify(s)
58017}
58018
58019// GoString returns the string representation.
58020//
58021// API parameter values that are decorated as "sensitive" in the API will not
58022// be included in the string output. The member name will be present, but the
58023// value will be replaced with "sensitive".
58024func (s ServiceUnavailableException) GoString() string {
58025	return s.String()
58026}
58027
58028func newErrorServiceUnavailableException(v protocol.ResponseMetadata) error {
58029	return &ServiceUnavailableException{
58030		RespMetadata: v,
58031	}
58032}
58033
58034// Code returns the exception type name.
58035func (s *ServiceUnavailableException) Code() string {
58036	return "ServiceUnavailableException"
58037}
58038
58039// Message returns the exception's message.
58040func (s *ServiceUnavailableException) Message() string {
58041	if s.Message_ != nil {
58042		return *s.Message_
58043	}
58044	return ""
58045}
58046
58047// OrigErr always returns nil, satisfies awserr.Error interface.
58048func (s *ServiceUnavailableException) OrigErr() error {
58049	return nil
58050}
58051
58052func (s *ServiceUnavailableException) Error() string {
58053	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
58054}
58055
58056// Status code returns the HTTP status code for the request's response error.
58057func (s *ServiceUnavailableException) StatusCode() int {
58058	return s.RespMetadata.StatusCode
58059}
58060
58061// RequestID returns the service's response RequestID for request.
58062func (s *ServiceUnavailableException) RequestID() string {
58063	return s.RespMetadata.RequestID
58064}
58065
58066type SetDefaultAuthorizerInput struct {
58067	_ struct{} `type:"structure"`
58068
58069	// The authorizer name.
58070	//
58071	// AuthorizerName is a required field
58072	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string" required:"true"`
58073}
58074
58075// String returns the string representation.
58076//
58077// API parameter values that are decorated as "sensitive" in the API will not
58078// be included in the string output. The member name will be present, but the
58079// value will be replaced with "sensitive".
58080func (s SetDefaultAuthorizerInput) String() string {
58081	return awsutil.Prettify(s)
58082}
58083
58084// GoString returns the string representation.
58085//
58086// API parameter values that are decorated as "sensitive" in the API will not
58087// be included in the string output. The member name will be present, but the
58088// value will be replaced with "sensitive".
58089func (s SetDefaultAuthorizerInput) GoString() string {
58090	return s.String()
58091}
58092
58093// Validate inspects the fields of the type to determine if they are valid.
58094func (s *SetDefaultAuthorizerInput) Validate() error {
58095	invalidParams := request.ErrInvalidParams{Context: "SetDefaultAuthorizerInput"}
58096	if s.AuthorizerName == nil {
58097		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
58098	}
58099	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
58100		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
58101	}
58102
58103	if invalidParams.Len() > 0 {
58104		return invalidParams
58105	}
58106	return nil
58107}
58108
58109// SetAuthorizerName sets the AuthorizerName field's value.
58110func (s *SetDefaultAuthorizerInput) SetAuthorizerName(v string) *SetDefaultAuthorizerInput {
58111	s.AuthorizerName = &v
58112	return s
58113}
58114
58115type SetDefaultAuthorizerOutput struct {
58116	_ struct{} `type:"structure"`
58117
58118	// The authorizer ARN.
58119	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
58120
58121	// The authorizer name.
58122	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
58123}
58124
58125// String returns the string representation.
58126//
58127// API parameter values that are decorated as "sensitive" in the API will not
58128// be included in the string output. The member name will be present, but the
58129// value will be replaced with "sensitive".
58130func (s SetDefaultAuthorizerOutput) String() string {
58131	return awsutil.Prettify(s)
58132}
58133
58134// GoString returns the string representation.
58135//
58136// API parameter values that are decorated as "sensitive" in the API will not
58137// be included in the string output. The member name will be present, but the
58138// value will be replaced with "sensitive".
58139func (s SetDefaultAuthorizerOutput) GoString() string {
58140	return s.String()
58141}
58142
58143// SetAuthorizerArn sets the AuthorizerArn field's value.
58144func (s *SetDefaultAuthorizerOutput) SetAuthorizerArn(v string) *SetDefaultAuthorizerOutput {
58145	s.AuthorizerArn = &v
58146	return s
58147}
58148
58149// SetAuthorizerName sets the AuthorizerName field's value.
58150func (s *SetDefaultAuthorizerOutput) SetAuthorizerName(v string) *SetDefaultAuthorizerOutput {
58151	s.AuthorizerName = &v
58152	return s
58153}
58154
58155// The input for the SetDefaultPolicyVersion operation.
58156type SetDefaultPolicyVersionInput struct {
58157	_ struct{} `type:"structure" nopayload:"true"`
58158
58159	// The policy name.
58160	//
58161	// PolicyName is a required field
58162	PolicyName *string `location:"uri" locationName:"policyName" min:"1" type:"string" required:"true"`
58163
58164	// The policy version ID.
58165	//
58166	// PolicyVersionId is a required field
58167	PolicyVersionId *string `location:"uri" locationName:"policyVersionId" type:"string" required:"true"`
58168}
58169
58170// String returns the string representation.
58171//
58172// API parameter values that are decorated as "sensitive" in the API will not
58173// be included in the string output. The member name will be present, but the
58174// value will be replaced with "sensitive".
58175func (s SetDefaultPolicyVersionInput) String() string {
58176	return awsutil.Prettify(s)
58177}
58178
58179// GoString returns the string representation.
58180//
58181// API parameter values that are decorated as "sensitive" in the API will not
58182// be included in the string output. The member name will be present, but the
58183// value will be replaced with "sensitive".
58184func (s SetDefaultPolicyVersionInput) GoString() string {
58185	return s.String()
58186}
58187
58188// Validate inspects the fields of the type to determine if they are valid.
58189func (s *SetDefaultPolicyVersionInput) Validate() error {
58190	invalidParams := request.ErrInvalidParams{Context: "SetDefaultPolicyVersionInput"}
58191	if s.PolicyName == nil {
58192		invalidParams.Add(request.NewErrParamRequired("PolicyName"))
58193	}
58194	if s.PolicyName != nil && len(*s.PolicyName) < 1 {
58195		invalidParams.Add(request.NewErrParamMinLen("PolicyName", 1))
58196	}
58197	if s.PolicyVersionId == nil {
58198		invalidParams.Add(request.NewErrParamRequired("PolicyVersionId"))
58199	}
58200	if s.PolicyVersionId != nil && len(*s.PolicyVersionId) < 1 {
58201		invalidParams.Add(request.NewErrParamMinLen("PolicyVersionId", 1))
58202	}
58203
58204	if invalidParams.Len() > 0 {
58205		return invalidParams
58206	}
58207	return nil
58208}
58209
58210// SetPolicyName sets the PolicyName field's value.
58211func (s *SetDefaultPolicyVersionInput) SetPolicyName(v string) *SetDefaultPolicyVersionInput {
58212	s.PolicyName = &v
58213	return s
58214}
58215
58216// SetPolicyVersionId sets the PolicyVersionId field's value.
58217func (s *SetDefaultPolicyVersionInput) SetPolicyVersionId(v string) *SetDefaultPolicyVersionInput {
58218	s.PolicyVersionId = &v
58219	return s
58220}
58221
58222type SetDefaultPolicyVersionOutput struct {
58223	_ struct{} `type:"structure"`
58224}
58225
58226// String returns the string representation.
58227//
58228// API parameter values that are decorated as "sensitive" in the API will not
58229// be included in the string output. The member name will be present, but the
58230// value will be replaced with "sensitive".
58231func (s SetDefaultPolicyVersionOutput) String() string {
58232	return awsutil.Prettify(s)
58233}
58234
58235// GoString returns the string representation.
58236//
58237// API parameter values that are decorated as "sensitive" in the API will not
58238// be included in the string output. The member name will be present, but the
58239// value will be replaced with "sensitive".
58240func (s SetDefaultPolicyVersionOutput) GoString() string {
58241	return s.String()
58242}
58243
58244// The input for the SetLoggingOptions operation.
58245type SetLoggingOptionsInput struct {
58246	_ struct{} `type:"structure" payload:"LoggingOptionsPayload"`
58247
58248	// The logging options payload.
58249	//
58250	// LoggingOptionsPayload is a required field
58251	LoggingOptionsPayload *LoggingOptionsPayload `locationName:"loggingOptionsPayload" type:"structure" required:"true"`
58252}
58253
58254// String returns the string representation.
58255//
58256// API parameter values that are decorated as "sensitive" in the API will not
58257// be included in the string output. The member name will be present, but the
58258// value will be replaced with "sensitive".
58259func (s SetLoggingOptionsInput) String() string {
58260	return awsutil.Prettify(s)
58261}
58262
58263// GoString returns the string representation.
58264//
58265// API parameter values that are decorated as "sensitive" in the API will not
58266// be included in the string output. The member name will be present, but the
58267// value will be replaced with "sensitive".
58268func (s SetLoggingOptionsInput) GoString() string {
58269	return s.String()
58270}
58271
58272// Validate inspects the fields of the type to determine if they are valid.
58273func (s *SetLoggingOptionsInput) Validate() error {
58274	invalidParams := request.ErrInvalidParams{Context: "SetLoggingOptionsInput"}
58275	if s.LoggingOptionsPayload == nil {
58276		invalidParams.Add(request.NewErrParamRequired("LoggingOptionsPayload"))
58277	}
58278	if s.LoggingOptionsPayload != nil {
58279		if err := s.LoggingOptionsPayload.Validate(); err != nil {
58280			invalidParams.AddNested("LoggingOptionsPayload", err.(request.ErrInvalidParams))
58281		}
58282	}
58283
58284	if invalidParams.Len() > 0 {
58285		return invalidParams
58286	}
58287	return nil
58288}
58289
58290// SetLoggingOptionsPayload sets the LoggingOptionsPayload field's value.
58291func (s *SetLoggingOptionsInput) SetLoggingOptionsPayload(v *LoggingOptionsPayload) *SetLoggingOptionsInput {
58292	s.LoggingOptionsPayload = v
58293	return s
58294}
58295
58296type SetLoggingOptionsOutput struct {
58297	_ struct{} `type:"structure"`
58298}
58299
58300// String returns the string representation.
58301//
58302// API parameter values that are decorated as "sensitive" in the API will not
58303// be included in the string output. The member name will be present, but the
58304// value will be replaced with "sensitive".
58305func (s SetLoggingOptionsOutput) String() string {
58306	return awsutil.Prettify(s)
58307}
58308
58309// GoString returns the string representation.
58310//
58311// API parameter values that are decorated as "sensitive" in the API will not
58312// be included in the string output. The member name will be present, but the
58313// value will be replaced with "sensitive".
58314func (s SetLoggingOptionsOutput) GoString() string {
58315	return s.String()
58316}
58317
58318type SetV2LoggingLevelInput struct {
58319	_ struct{} `type:"structure"`
58320
58321	// The log level.
58322	//
58323	// LogLevel is a required field
58324	LogLevel *string `locationName:"logLevel" type:"string" required:"true" enum:"LogLevel"`
58325
58326	// The log target.
58327	//
58328	// LogTarget is a required field
58329	LogTarget *LogTarget `locationName:"logTarget" type:"structure" required:"true"`
58330}
58331
58332// String returns the string representation.
58333//
58334// API parameter values that are decorated as "sensitive" in the API will not
58335// be included in the string output. The member name will be present, but the
58336// value will be replaced with "sensitive".
58337func (s SetV2LoggingLevelInput) String() string {
58338	return awsutil.Prettify(s)
58339}
58340
58341// GoString returns the string representation.
58342//
58343// API parameter values that are decorated as "sensitive" in the API will not
58344// be included in the string output. The member name will be present, but the
58345// value will be replaced with "sensitive".
58346func (s SetV2LoggingLevelInput) GoString() string {
58347	return s.String()
58348}
58349
58350// Validate inspects the fields of the type to determine if they are valid.
58351func (s *SetV2LoggingLevelInput) Validate() error {
58352	invalidParams := request.ErrInvalidParams{Context: "SetV2LoggingLevelInput"}
58353	if s.LogLevel == nil {
58354		invalidParams.Add(request.NewErrParamRequired("LogLevel"))
58355	}
58356	if s.LogTarget == nil {
58357		invalidParams.Add(request.NewErrParamRequired("LogTarget"))
58358	}
58359	if s.LogTarget != nil {
58360		if err := s.LogTarget.Validate(); err != nil {
58361			invalidParams.AddNested("LogTarget", err.(request.ErrInvalidParams))
58362		}
58363	}
58364
58365	if invalidParams.Len() > 0 {
58366		return invalidParams
58367	}
58368	return nil
58369}
58370
58371// SetLogLevel sets the LogLevel field's value.
58372func (s *SetV2LoggingLevelInput) SetLogLevel(v string) *SetV2LoggingLevelInput {
58373	s.LogLevel = &v
58374	return s
58375}
58376
58377// SetLogTarget sets the LogTarget field's value.
58378func (s *SetV2LoggingLevelInput) SetLogTarget(v *LogTarget) *SetV2LoggingLevelInput {
58379	s.LogTarget = v
58380	return s
58381}
58382
58383type SetV2LoggingLevelOutput struct {
58384	_ struct{} `type:"structure"`
58385}
58386
58387// String returns the string representation.
58388//
58389// API parameter values that are decorated as "sensitive" in the API will not
58390// be included in the string output. The member name will be present, but the
58391// value will be replaced with "sensitive".
58392func (s SetV2LoggingLevelOutput) String() string {
58393	return awsutil.Prettify(s)
58394}
58395
58396// GoString returns the string representation.
58397//
58398// API parameter values that are decorated as "sensitive" in the API will not
58399// be included in the string output. The member name will be present, but the
58400// value will be replaced with "sensitive".
58401func (s SetV2LoggingLevelOutput) GoString() string {
58402	return s.String()
58403}
58404
58405type SetV2LoggingOptionsInput struct {
58406	_ struct{} `type:"structure"`
58407
58408	// The default logging level.
58409	DefaultLogLevel *string `locationName:"defaultLogLevel" type:"string" enum:"LogLevel"`
58410
58411	// If true all logs are disabled. The default is false.
58412	DisableAllLogs *bool `locationName:"disableAllLogs" type:"boolean"`
58413
58414	// The ARN of the role that allows IoT to write to Cloudwatch logs.
58415	RoleArn *string `locationName:"roleArn" type:"string"`
58416}
58417
58418// String returns the string representation.
58419//
58420// API parameter values that are decorated as "sensitive" in the API will not
58421// be included in the string output. The member name will be present, but the
58422// value will be replaced with "sensitive".
58423func (s SetV2LoggingOptionsInput) String() string {
58424	return awsutil.Prettify(s)
58425}
58426
58427// GoString returns the string representation.
58428//
58429// API parameter values that are decorated as "sensitive" in the API will not
58430// be included in the string output. The member name will be present, but the
58431// value will be replaced with "sensitive".
58432func (s SetV2LoggingOptionsInput) GoString() string {
58433	return s.String()
58434}
58435
58436// SetDefaultLogLevel sets the DefaultLogLevel field's value.
58437func (s *SetV2LoggingOptionsInput) SetDefaultLogLevel(v string) *SetV2LoggingOptionsInput {
58438	s.DefaultLogLevel = &v
58439	return s
58440}
58441
58442// SetDisableAllLogs sets the DisableAllLogs field's value.
58443func (s *SetV2LoggingOptionsInput) SetDisableAllLogs(v bool) *SetV2LoggingOptionsInput {
58444	s.DisableAllLogs = &v
58445	return s
58446}
58447
58448// SetRoleArn sets the RoleArn field's value.
58449func (s *SetV2LoggingOptionsInput) SetRoleArn(v string) *SetV2LoggingOptionsInput {
58450	s.RoleArn = &v
58451	return s
58452}
58453
58454type SetV2LoggingOptionsOutput struct {
58455	_ struct{} `type:"structure"`
58456}
58457
58458// String returns the string representation.
58459//
58460// API parameter values that are decorated as "sensitive" in the API will not
58461// be included in the string output. The member name will be present, but the
58462// value will be replaced with "sensitive".
58463func (s SetV2LoggingOptionsOutput) String() string {
58464	return awsutil.Prettify(s)
58465}
58466
58467// GoString returns the string representation.
58468//
58469// API parameter values that are decorated as "sensitive" in the API will not
58470// be included in the string output. The member name will be present, but the
58471// value will be replaced with "sensitive".
58472func (s SetV2LoggingOptionsOutput) GoString() string {
58473	return s.String()
58474}
58475
58476// For more information, see Signature Version 4 signing process (https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html).
58477type SigV4Authorization struct {
58478	_ struct{} `type:"structure"`
58479
58480	// The ARN of the signing role.
58481	//
58482	// RoleArn is a required field
58483	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
58484
58485	// The service name to use while signing with Sig V4.
58486	//
58487	// ServiceName is a required field
58488	ServiceName *string `locationName:"serviceName" type:"string" required:"true"`
58489
58490	// The signing region.
58491	//
58492	// SigningRegion is a required field
58493	SigningRegion *string `locationName:"signingRegion" type:"string" required:"true"`
58494}
58495
58496// String returns the string representation.
58497//
58498// API parameter values that are decorated as "sensitive" in the API will not
58499// be included in the string output. The member name will be present, but the
58500// value will be replaced with "sensitive".
58501func (s SigV4Authorization) String() string {
58502	return awsutil.Prettify(s)
58503}
58504
58505// GoString returns the string representation.
58506//
58507// API parameter values that are decorated as "sensitive" in the API will not
58508// be included in the string output. The member name will be present, but the
58509// value will be replaced with "sensitive".
58510func (s SigV4Authorization) GoString() string {
58511	return s.String()
58512}
58513
58514// Validate inspects the fields of the type to determine if they are valid.
58515func (s *SigV4Authorization) Validate() error {
58516	invalidParams := request.ErrInvalidParams{Context: "SigV4Authorization"}
58517	if s.RoleArn == nil {
58518		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
58519	}
58520	if s.ServiceName == nil {
58521		invalidParams.Add(request.NewErrParamRequired("ServiceName"))
58522	}
58523	if s.SigningRegion == nil {
58524		invalidParams.Add(request.NewErrParamRequired("SigningRegion"))
58525	}
58526
58527	if invalidParams.Len() > 0 {
58528		return invalidParams
58529	}
58530	return nil
58531}
58532
58533// SetRoleArn sets the RoleArn field's value.
58534func (s *SigV4Authorization) SetRoleArn(v string) *SigV4Authorization {
58535	s.RoleArn = &v
58536	return s
58537}
58538
58539// SetServiceName sets the ServiceName field's value.
58540func (s *SigV4Authorization) SetServiceName(v string) *SigV4Authorization {
58541	s.ServiceName = &v
58542	return s
58543}
58544
58545// SetSigningRegion sets the SigningRegion field's value.
58546func (s *SigV4Authorization) SetSigningRegion(v string) *SigV4Authorization {
58547	s.SigningRegion = &v
58548	return s
58549}
58550
58551// Describes the code-signing profile.
58552type SigningProfileParameter struct {
58553	_ struct{} `type:"structure"`
58554
58555	// Certificate ARN.
58556	CertificateArn *string `locationName:"certificateArn" type:"string"`
58557
58558	// The location of the code-signing certificate on your device.
58559	CertificatePathOnDevice *string `locationName:"certificatePathOnDevice" type:"string"`
58560
58561	// The hardware platform of your device.
58562	Platform *string `locationName:"platform" type:"string"`
58563}
58564
58565// String returns the string representation.
58566//
58567// API parameter values that are decorated as "sensitive" in the API will not
58568// be included in the string output. The member name will be present, but the
58569// value will be replaced with "sensitive".
58570func (s SigningProfileParameter) String() string {
58571	return awsutil.Prettify(s)
58572}
58573
58574// GoString returns the string representation.
58575//
58576// API parameter values that are decorated as "sensitive" in the API will not
58577// be included in the string output. The member name will be present, but the
58578// value will be replaced with "sensitive".
58579func (s SigningProfileParameter) GoString() string {
58580	return s.String()
58581}
58582
58583// SetCertificateArn sets the CertificateArn field's value.
58584func (s *SigningProfileParameter) SetCertificateArn(v string) *SigningProfileParameter {
58585	s.CertificateArn = &v
58586	return s
58587}
58588
58589// SetCertificatePathOnDevice sets the CertificatePathOnDevice field's value.
58590func (s *SigningProfileParameter) SetCertificatePathOnDevice(v string) *SigningProfileParameter {
58591	s.CertificatePathOnDevice = &v
58592	return s
58593}
58594
58595// SetPlatform sets the Platform field's value.
58596func (s *SigningProfileParameter) SetPlatform(v string) *SigningProfileParameter {
58597	s.Platform = &v
58598	return s
58599}
58600
58601// Describes an action to publish to an Amazon SNS topic.
58602type SnsAction struct {
58603	_ struct{} `type:"structure"`
58604
58605	// (Optional) The message format of the message to publish. Accepted values
58606	// are "JSON" and "RAW". The default value of the attribute is "RAW". SNS uses
58607	// this setting to determine if the payload should be parsed and relevant platform-specific
58608	// bits of the payload should be extracted. To read more about SNS message formats,
58609	// see https://docs.aws.amazon.com/sns/latest/dg/json-formats.html (https://docs.aws.amazon.com/sns/latest/dg/json-formats.html)
58610	// refer to their official documentation.
58611	MessageFormat *string `locationName:"messageFormat" type:"string" enum:"MessageFormat"`
58612
58613	// The ARN of the IAM role that grants access.
58614	//
58615	// RoleArn is a required field
58616	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
58617
58618	// The ARN of the SNS topic.
58619	//
58620	// TargetArn is a required field
58621	TargetArn *string `locationName:"targetArn" type:"string" required:"true"`
58622}
58623
58624// String returns the string representation.
58625//
58626// API parameter values that are decorated as "sensitive" in the API will not
58627// be included in the string output. The member name will be present, but the
58628// value will be replaced with "sensitive".
58629func (s SnsAction) String() string {
58630	return awsutil.Prettify(s)
58631}
58632
58633// GoString returns the string representation.
58634//
58635// API parameter values that are decorated as "sensitive" in the API will not
58636// be included in the string output. The member name will be present, but the
58637// value will be replaced with "sensitive".
58638func (s SnsAction) GoString() string {
58639	return s.String()
58640}
58641
58642// Validate inspects the fields of the type to determine if they are valid.
58643func (s *SnsAction) Validate() error {
58644	invalidParams := request.ErrInvalidParams{Context: "SnsAction"}
58645	if s.RoleArn == nil {
58646		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
58647	}
58648	if s.TargetArn == nil {
58649		invalidParams.Add(request.NewErrParamRequired("TargetArn"))
58650	}
58651
58652	if invalidParams.Len() > 0 {
58653		return invalidParams
58654	}
58655	return nil
58656}
58657
58658// SetMessageFormat sets the MessageFormat field's value.
58659func (s *SnsAction) SetMessageFormat(v string) *SnsAction {
58660	s.MessageFormat = &v
58661	return s
58662}
58663
58664// SetRoleArn sets the RoleArn field's value.
58665func (s *SnsAction) SetRoleArn(v string) *SnsAction {
58666	s.RoleArn = &v
58667	return s
58668}
58669
58670// SetTargetArn sets the TargetArn field's value.
58671func (s *SnsAction) SetTargetArn(v string) *SnsAction {
58672	s.TargetArn = &v
58673	return s
58674}
58675
58676// The Rule-SQL expression can't be parsed correctly.
58677type SqlParseException struct {
58678	_            struct{}                  `type:"structure"`
58679	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
58680
58681	// The message for the exception.
58682	Message_ *string `locationName:"message" type:"string"`
58683}
58684
58685// String returns the string representation.
58686//
58687// API parameter values that are decorated as "sensitive" in the API will not
58688// be included in the string output. The member name will be present, but the
58689// value will be replaced with "sensitive".
58690func (s SqlParseException) String() string {
58691	return awsutil.Prettify(s)
58692}
58693
58694// GoString returns the string representation.
58695//
58696// API parameter values that are decorated as "sensitive" in the API will not
58697// be included in the string output. The member name will be present, but the
58698// value will be replaced with "sensitive".
58699func (s SqlParseException) GoString() string {
58700	return s.String()
58701}
58702
58703func newErrorSqlParseException(v protocol.ResponseMetadata) error {
58704	return &SqlParseException{
58705		RespMetadata: v,
58706	}
58707}
58708
58709// Code returns the exception type name.
58710func (s *SqlParseException) Code() string {
58711	return "SqlParseException"
58712}
58713
58714// Message returns the exception's message.
58715func (s *SqlParseException) Message() string {
58716	if s.Message_ != nil {
58717		return *s.Message_
58718	}
58719	return ""
58720}
58721
58722// OrigErr always returns nil, satisfies awserr.Error interface.
58723func (s *SqlParseException) OrigErr() error {
58724	return nil
58725}
58726
58727func (s *SqlParseException) Error() string {
58728	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
58729}
58730
58731// Status code returns the HTTP status code for the request's response error.
58732func (s *SqlParseException) StatusCode() int {
58733	return s.RespMetadata.StatusCode
58734}
58735
58736// RequestID returns the service's response RequestID for request.
58737func (s *SqlParseException) RequestID() string {
58738	return s.RespMetadata.RequestID
58739}
58740
58741// Describes an action to publish data to an Amazon SQS queue.
58742type SqsAction struct {
58743	_ struct{} `type:"structure"`
58744
58745	// The URL of the Amazon SQS queue.
58746	//
58747	// QueueUrl is a required field
58748	QueueUrl *string `locationName:"queueUrl" type:"string" required:"true"`
58749
58750	// The ARN of the IAM role that grants access.
58751	//
58752	// RoleArn is a required field
58753	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
58754
58755	// Specifies whether to use Base64 encoding.
58756	UseBase64 *bool `locationName:"useBase64" type:"boolean"`
58757}
58758
58759// String returns the string representation.
58760//
58761// API parameter values that are decorated as "sensitive" in the API will not
58762// be included in the string output. The member name will be present, but the
58763// value will be replaced with "sensitive".
58764func (s SqsAction) String() string {
58765	return awsutil.Prettify(s)
58766}
58767
58768// GoString returns the string representation.
58769//
58770// API parameter values that are decorated as "sensitive" in the API will not
58771// be included in the string output. The member name will be present, but the
58772// value will be replaced with "sensitive".
58773func (s SqsAction) GoString() string {
58774	return s.String()
58775}
58776
58777// Validate inspects the fields of the type to determine if they are valid.
58778func (s *SqsAction) Validate() error {
58779	invalidParams := request.ErrInvalidParams{Context: "SqsAction"}
58780	if s.QueueUrl == nil {
58781		invalidParams.Add(request.NewErrParamRequired("QueueUrl"))
58782	}
58783	if s.RoleArn == nil {
58784		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
58785	}
58786
58787	if invalidParams.Len() > 0 {
58788		return invalidParams
58789	}
58790	return nil
58791}
58792
58793// SetQueueUrl sets the QueueUrl field's value.
58794func (s *SqsAction) SetQueueUrl(v string) *SqsAction {
58795	s.QueueUrl = &v
58796	return s
58797}
58798
58799// SetRoleArn sets the RoleArn field's value.
58800func (s *SqsAction) SetRoleArn(v string) *SqsAction {
58801	s.RoleArn = &v
58802	return s
58803}
58804
58805// SetUseBase64 sets the UseBase64 field's value.
58806func (s *SqsAction) SetUseBase64(v bool) *SqsAction {
58807	s.UseBase64 = &v
58808	return s
58809}
58810
58811type StartAuditMitigationActionsTaskInput struct {
58812	_ struct{} `type:"structure"`
58813
58814	// For an audit check, specifies which mitigation actions to apply. Those actions
58815	// must be defined in your Amazon Web Services accounts.
58816	//
58817	// AuditCheckToActionsMapping is a required field
58818	AuditCheckToActionsMapping map[string][]*string `locationName:"auditCheckToActionsMapping" type:"map" required:"true"`
58819
58820	// Each audit mitigation task must have a unique client request token. If you
58821	// try to start a new task with the same token as a task that already exists,
58822	// an exception occurs. If you omit this value, a unique client request token
58823	// is generated automatically.
58824	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
58825
58826	// Specifies the audit findings to which the mitigation actions are applied.
58827	// You can apply them to a type of audit check, to all findings from an audit,
58828	// or to a specific set of findings.
58829	//
58830	// Target is a required field
58831	Target *AuditMitigationActionsTaskTarget `locationName:"target" type:"structure" required:"true"`
58832
58833	// A unique identifier for the task. You can use this identifier to check the
58834	// status of the task or to cancel it.
58835	//
58836	// TaskId is a required field
58837	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
58838}
58839
58840// String returns the string representation.
58841//
58842// API parameter values that are decorated as "sensitive" in the API will not
58843// be included in the string output. The member name will be present, but the
58844// value will be replaced with "sensitive".
58845func (s StartAuditMitigationActionsTaskInput) String() string {
58846	return awsutil.Prettify(s)
58847}
58848
58849// GoString returns the string representation.
58850//
58851// API parameter values that are decorated as "sensitive" in the API will not
58852// be included in the string output. The member name will be present, but the
58853// value will be replaced with "sensitive".
58854func (s StartAuditMitigationActionsTaskInput) GoString() string {
58855	return s.String()
58856}
58857
58858// Validate inspects the fields of the type to determine if they are valid.
58859func (s *StartAuditMitigationActionsTaskInput) Validate() error {
58860	invalidParams := request.ErrInvalidParams{Context: "StartAuditMitigationActionsTaskInput"}
58861	if s.AuditCheckToActionsMapping == nil {
58862		invalidParams.Add(request.NewErrParamRequired("AuditCheckToActionsMapping"))
58863	}
58864	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
58865		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
58866	}
58867	if s.Target == nil {
58868		invalidParams.Add(request.NewErrParamRequired("Target"))
58869	}
58870	if s.TaskId == nil {
58871		invalidParams.Add(request.NewErrParamRequired("TaskId"))
58872	}
58873	if s.TaskId != nil && len(*s.TaskId) < 1 {
58874		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
58875	}
58876	if s.Target != nil {
58877		if err := s.Target.Validate(); err != nil {
58878			invalidParams.AddNested("Target", err.(request.ErrInvalidParams))
58879		}
58880	}
58881
58882	if invalidParams.Len() > 0 {
58883		return invalidParams
58884	}
58885	return nil
58886}
58887
58888// SetAuditCheckToActionsMapping sets the AuditCheckToActionsMapping field's value.
58889func (s *StartAuditMitigationActionsTaskInput) SetAuditCheckToActionsMapping(v map[string][]*string) *StartAuditMitigationActionsTaskInput {
58890	s.AuditCheckToActionsMapping = v
58891	return s
58892}
58893
58894// SetClientRequestToken sets the ClientRequestToken field's value.
58895func (s *StartAuditMitigationActionsTaskInput) SetClientRequestToken(v string) *StartAuditMitigationActionsTaskInput {
58896	s.ClientRequestToken = &v
58897	return s
58898}
58899
58900// SetTarget sets the Target field's value.
58901func (s *StartAuditMitigationActionsTaskInput) SetTarget(v *AuditMitigationActionsTaskTarget) *StartAuditMitigationActionsTaskInput {
58902	s.Target = v
58903	return s
58904}
58905
58906// SetTaskId sets the TaskId field's value.
58907func (s *StartAuditMitigationActionsTaskInput) SetTaskId(v string) *StartAuditMitigationActionsTaskInput {
58908	s.TaskId = &v
58909	return s
58910}
58911
58912type StartAuditMitigationActionsTaskOutput struct {
58913	_ struct{} `type:"structure"`
58914
58915	// The unique identifier for the audit mitigation task. This matches the taskId
58916	// that you specified in the request.
58917	TaskId *string `locationName:"taskId" min:"1" type:"string"`
58918}
58919
58920// String returns the string representation.
58921//
58922// API parameter values that are decorated as "sensitive" in the API will not
58923// be included in the string output. The member name will be present, but the
58924// value will be replaced with "sensitive".
58925func (s StartAuditMitigationActionsTaskOutput) String() string {
58926	return awsutil.Prettify(s)
58927}
58928
58929// GoString returns the string representation.
58930//
58931// API parameter values that are decorated as "sensitive" in the API will not
58932// be included in the string output. The member name will be present, but the
58933// value will be replaced with "sensitive".
58934func (s StartAuditMitigationActionsTaskOutput) GoString() string {
58935	return s.String()
58936}
58937
58938// SetTaskId sets the TaskId field's value.
58939func (s *StartAuditMitigationActionsTaskOutput) SetTaskId(v string) *StartAuditMitigationActionsTaskOutput {
58940	s.TaskId = &v
58941	return s
58942}
58943
58944type StartDetectMitigationActionsTaskInput struct {
58945	_ struct{} `type:"structure"`
58946
58947	// The actions to be performed when a device has unexpected behavior.
58948	//
58949	// Actions is a required field
58950	Actions []*string `locationName:"actions" min:"1" type:"list" required:"true"`
58951
58952	// Each mitigation action task must have a unique client request token. If you
58953	// try to create a new task with the same token as a task that already exists,
58954	// an exception occurs. If you omit this value, Amazon Web Services SDKs will
58955	// automatically generate a unique client request.
58956	ClientRequestToken *string `locationName:"clientRequestToken" min:"1" type:"string" idempotencyToken:"true"`
58957
58958	// Specifies to list only active violations.
58959	IncludeOnlyActiveViolations *bool `locationName:"includeOnlyActiveViolations" type:"boolean"`
58960
58961	// Specifies to include suppressed alerts.
58962	IncludeSuppressedAlerts *bool `locationName:"includeSuppressedAlerts" type:"boolean"`
58963
58964	// Specifies the ML Detect findings to which the mitigation actions are applied.
58965	//
58966	// Target is a required field
58967	Target *DetectMitigationActionsTaskTarget `locationName:"target" type:"structure" required:"true"`
58968
58969	// The unique identifier of the task.
58970	//
58971	// TaskId is a required field
58972	TaskId *string `location:"uri" locationName:"taskId" min:"1" type:"string" required:"true"`
58973
58974	// Specifies the time period of which violation events occurred between.
58975	ViolationEventOccurrenceRange *ViolationEventOccurrenceRange `locationName:"violationEventOccurrenceRange" type:"structure"`
58976}
58977
58978// String returns the string representation.
58979//
58980// API parameter values that are decorated as "sensitive" in the API will not
58981// be included in the string output. The member name will be present, but the
58982// value will be replaced with "sensitive".
58983func (s StartDetectMitigationActionsTaskInput) String() string {
58984	return awsutil.Prettify(s)
58985}
58986
58987// GoString returns the string representation.
58988//
58989// API parameter values that are decorated as "sensitive" in the API will not
58990// be included in the string output. The member name will be present, but the
58991// value will be replaced with "sensitive".
58992func (s StartDetectMitigationActionsTaskInput) GoString() string {
58993	return s.String()
58994}
58995
58996// Validate inspects the fields of the type to determine if they are valid.
58997func (s *StartDetectMitigationActionsTaskInput) Validate() error {
58998	invalidParams := request.ErrInvalidParams{Context: "StartDetectMitigationActionsTaskInput"}
58999	if s.Actions == nil {
59000		invalidParams.Add(request.NewErrParamRequired("Actions"))
59001	}
59002	if s.Actions != nil && len(s.Actions) < 1 {
59003		invalidParams.Add(request.NewErrParamMinLen("Actions", 1))
59004	}
59005	if s.ClientRequestToken != nil && len(*s.ClientRequestToken) < 1 {
59006		invalidParams.Add(request.NewErrParamMinLen("ClientRequestToken", 1))
59007	}
59008	if s.Target == nil {
59009		invalidParams.Add(request.NewErrParamRequired("Target"))
59010	}
59011	if s.TaskId == nil {
59012		invalidParams.Add(request.NewErrParamRequired("TaskId"))
59013	}
59014	if s.TaskId != nil && len(*s.TaskId) < 1 {
59015		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
59016	}
59017	if s.Target != nil {
59018		if err := s.Target.Validate(); err != nil {
59019			invalidParams.AddNested("Target", err.(request.ErrInvalidParams))
59020		}
59021	}
59022	if s.ViolationEventOccurrenceRange != nil {
59023		if err := s.ViolationEventOccurrenceRange.Validate(); err != nil {
59024			invalidParams.AddNested("ViolationEventOccurrenceRange", err.(request.ErrInvalidParams))
59025		}
59026	}
59027
59028	if invalidParams.Len() > 0 {
59029		return invalidParams
59030	}
59031	return nil
59032}
59033
59034// SetActions sets the Actions field's value.
59035func (s *StartDetectMitigationActionsTaskInput) SetActions(v []*string) *StartDetectMitigationActionsTaskInput {
59036	s.Actions = v
59037	return s
59038}
59039
59040// SetClientRequestToken sets the ClientRequestToken field's value.
59041func (s *StartDetectMitigationActionsTaskInput) SetClientRequestToken(v string) *StartDetectMitigationActionsTaskInput {
59042	s.ClientRequestToken = &v
59043	return s
59044}
59045
59046// SetIncludeOnlyActiveViolations sets the IncludeOnlyActiveViolations field's value.
59047func (s *StartDetectMitigationActionsTaskInput) SetIncludeOnlyActiveViolations(v bool) *StartDetectMitigationActionsTaskInput {
59048	s.IncludeOnlyActiveViolations = &v
59049	return s
59050}
59051
59052// SetIncludeSuppressedAlerts sets the IncludeSuppressedAlerts field's value.
59053func (s *StartDetectMitigationActionsTaskInput) SetIncludeSuppressedAlerts(v bool) *StartDetectMitigationActionsTaskInput {
59054	s.IncludeSuppressedAlerts = &v
59055	return s
59056}
59057
59058// SetTarget sets the Target field's value.
59059func (s *StartDetectMitigationActionsTaskInput) SetTarget(v *DetectMitigationActionsTaskTarget) *StartDetectMitigationActionsTaskInput {
59060	s.Target = v
59061	return s
59062}
59063
59064// SetTaskId sets the TaskId field's value.
59065func (s *StartDetectMitigationActionsTaskInput) SetTaskId(v string) *StartDetectMitigationActionsTaskInput {
59066	s.TaskId = &v
59067	return s
59068}
59069
59070// SetViolationEventOccurrenceRange sets the ViolationEventOccurrenceRange field's value.
59071func (s *StartDetectMitigationActionsTaskInput) SetViolationEventOccurrenceRange(v *ViolationEventOccurrenceRange) *StartDetectMitigationActionsTaskInput {
59072	s.ViolationEventOccurrenceRange = v
59073	return s
59074}
59075
59076type StartDetectMitigationActionsTaskOutput struct {
59077	_ struct{} `type:"structure"`
59078
59079	// The unique identifier of the task.
59080	TaskId *string `locationName:"taskId" min:"1" type:"string"`
59081}
59082
59083// String returns the string representation.
59084//
59085// API parameter values that are decorated as "sensitive" in the API will not
59086// be included in the string output. The member name will be present, but the
59087// value will be replaced with "sensitive".
59088func (s StartDetectMitigationActionsTaskOutput) String() string {
59089	return awsutil.Prettify(s)
59090}
59091
59092// GoString returns the string representation.
59093//
59094// API parameter values that are decorated as "sensitive" in the API will not
59095// be included in the string output. The member name will be present, but the
59096// value will be replaced with "sensitive".
59097func (s StartDetectMitigationActionsTaskOutput) GoString() string {
59098	return s.String()
59099}
59100
59101// SetTaskId sets the TaskId field's value.
59102func (s *StartDetectMitigationActionsTaskOutput) SetTaskId(v string) *StartDetectMitigationActionsTaskOutput {
59103	s.TaskId = &v
59104	return s
59105}
59106
59107type StartOnDemandAuditTaskInput struct {
59108	_ struct{} `type:"structure"`
59109
59110	// Which checks are performed during the audit. The checks you specify must
59111	// be enabled for your account or an exception occurs. Use DescribeAccountAuditConfiguration
59112	// to see the list of all checks, including those that are enabled or UpdateAccountAuditConfiguration
59113	// to select which checks are enabled.
59114	//
59115	// TargetCheckNames is a required field
59116	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list" required:"true"`
59117}
59118
59119// String returns the string representation.
59120//
59121// API parameter values that are decorated as "sensitive" in the API will not
59122// be included in the string output. The member name will be present, but the
59123// value will be replaced with "sensitive".
59124func (s StartOnDemandAuditTaskInput) String() string {
59125	return awsutil.Prettify(s)
59126}
59127
59128// GoString returns the string representation.
59129//
59130// API parameter values that are decorated as "sensitive" in the API will not
59131// be included in the string output. The member name will be present, but the
59132// value will be replaced with "sensitive".
59133func (s StartOnDemandAuditTaskInput) GoString() string {
59134	return s.String()
59135}
59136
59137// Validate inspects the fields of the type to determine if they are valid.
59138func (s *StartOnDemandAuditTaskInput) Validate() error {
59139	invalidParams := request.ErrInvalidParams{Context: "StartOnDemandAuditTaskInput"}
59140	if s.TargetCheckNames == nil {
59141		invalidParams.Add(request.NewErrParamRequired("TargetCheckNames"))
59142	}
59143
59144	if invalidParams.Len() > 0 {
59145		return invalidParams
59146	}
59147	return nil
59148}
59149
59150// SetTargetCheckNames sets the TargetCheckNames field's value.
59151func (s *StartOnDemandAuditTaskInput) SetTargetCheckNames(v []*string) *StartOnDemandAuditTaskInput {
59152	s.TargetCheckNames = v
59153	return s
59154}
59155
59156type StartOnDemandAuditTaskOutput struct {
59157	_ struct{} `type:"structure"`
59158
59159	// The ID of the on-demand audit you started.
59160	TaskId *string `locationName:"taskId" min:"1" type:"string"`
59161}
59162
59163// String returns the string representation.
59164//
59165// API parameter values that are decorated as "sensitive" in the API will not
59166// be included in the string output. The member name will be present, but the
59167// value will be replaced with "sensitive".
59168func (s StartOnDemandAuditTaskOutput) String() string {
59169	return awsutil.Prettify(s)
59170}
59171
59172// GoString returns the string representation.
59173//
59174// API parameter values that are decorated as "sensitive" in the API will not
59175// be included in the string output. The member name will be present, but the
59176// value will be replaced with "sensitive".
59177func (s StartOnDemandAuditTaskOutput) GoString() string {
59178	return s.String()
59179}
59180
59181// SetTaskId sets the TaskId field's value.
59182func (s *StartOnDemandAuditTaskOutput) SetTaskId(v string) *StartOnDemandAuditTaskOutput {
59183	s.TaskId = &v
59184	return s
59185}
59186
59187// Information required to start a signing job.
59188type StartSigningJobParameter struct {
59189	_ struct{} `type:"structure"`
59190
59191	// The location to write the code-signed file.
59192	Destination *Destination `locationName:"destination" type:"structure"`
59193
59194	// The code-signing profile name.
59195	SigningProfileName *string `locationName:"signingProfileName" type:"string"`
59196
59197	// Describes the code-signing profile.
59198	SigningProfileParameter *SigningProfileParameter `locationName:"signingProfileParameter" type:"structure"`
59199}
59200
59201// String returns the string representation.
59202//
59203// API parameter values that are decorated as "sensitive" in the API will not
59204// be included in the string output. The member name will be present, but the
59205// value will be replaced with "sensitive".
59206func (s StartSigningJobParameter) String() string {
59207	return awsutil.Prettify(s)
59208}
59209
59210// GoString returns the string representation.
59211//
59212// API parameter values that are decorated as "sensitive" in the API will not
59213// be included in the string output. The member name will be present, but the
59214// value will be replaced with "sensitive".
59215func (s StartSigningJobParameter) GoString() string {
59216	return s.String()
59217}
59218
59219// Validate inspects the fields of the type to determine if they are valid.
59220func (s *StartSigningJobParameter) Validate() error {
59221	invalidParams := request.ErrInvalidParams{Context: "StartSigningJobParameter"}
59222	if s.Destination != nil {
59223		if err := s.Destination.Validate(); err != nil {
59224			invalidParams.AddNested("Destination", err.(request.ErrInvalidParams))
59225		}
59226	}
59227
59228	if invalidParams.Len() > 0 {
59229		return invalidParams
59230	}
59231	return nil
59232}
59233
59234// SetDestination sets the Destination field's value.
59235func (s *StartSigningJobParameter) SetDestination(v *Destination) *StartSigningJobParameter {
59236	s.Destination = v
59237	return s
59238}
59239
59240// SetSigningProfileName sets the SigningProfileName field's value.
59241func (s *StartSigningJobParameter) SetSigningProfileName(v string) *StartSigningJobParameter {
59242	s.SigningProfileName = &v
59243	return s
59244}
59245
59246// SetSigningProfileParameter sets the SigningProfileParameter field's value.
59247func (s *StartSigningJobParameter) SetSigningProfileParameter(v *SigningProfileParameter) *StartSigningJobParameter {
59248	s.SigningProfileParameter = v
59249	return s
59250}
59251
59252type StartThingRegistrationTaskInput struct {
59253	_ struct{} `type:"structure"`
59254
59255	// The S3 bucket that contains the input file.
59256	//
59257	// InputFileBucket is a required field
59258	InputFileBucket *string `locationName:"inputFileBucket" min:"3" type:"string" required:"true"`
59259
59260	// The name of input file within the S3 bucket. This file contains a newline
59261	// delimited JSON file. Each line contains the parameter values to provision
59262	// one device (thing).
59263	//
59264	// InputFileKey is a required field
59265	InputFileKey *string `locationName:"inputFileKey" min:"1" type:"string" required:"true"`
59266
59267	// The IAM role ARN that grants permission the input file.
59268	//
59269	// RoleArn is a required field
59270	RoleArn *string `locationName:"roleArn" min:"20" type:"string" required:"true"`
59271
59272	// The provisioning template.
59273	//
59274	// TemplateBody is a required field
59275	TemplateBody *string `locationName:"templateBody" type:"string" required:"true"`
59276}
59277
59278// String returns the string representation.
59279//
59280// API parameter values that are decorated as "sensitive" in the API will not
59281// be included in the string output. The member name will be present, but the
59282// value will be replaced with "sensitive".
59283func (s StartThingRegistrationTaskInput) String() string {
59284	return awsutil.Prettify(s)
59285}
59286
59287// GoString returns the string representation.
59288//
59289// API parameter values that are decorated as "sensitive" in the API will not
59290// be included in the string output. The member name will be present, but the
59291// value will be replaced with "sensitive".
59292func (s StartThingRegistrationTaskInput) GoString() string {
59293	return s.String()
59294}
59295
59296// Validate inspects the fields of the type to determine if they are valid.
59297func (s *StartThingRegistrationTaskInput) Validate() error {
59298	invalidParams := request.ErrInvalidParams{Context: "StartThingRegistrationTaskInput"}
59299	if s.InputFileBucket == nil {
59300		invalidParams.Add(request.NewErrParamRequired("InputFileBucket"))
59301	}
59302	if s.InputFileBucket != nil && len(*s.InputFileBucket) < 3 {
59303		invalidParams.Add(request.NewErrParamMinLen("InputFileBucket", 3))
59304	}
59305	if s.InputFileKey == nil {
59306		invalidParams.Add(request.NewErrParamRequired("InputFileKey"))
59307	}
59308	if s.InputFileKey != nil && len(*s.InputFileKey) < 1 {
59309		invalidParams.Add(request.NewErrParamMinLen("InputFileKey", 1))
59310	}
59311	if s.RoleArn == nil {
59312		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
59313	}
59314	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
59315		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
59316	}
59317	if s.TemplateBody == nil {
59318		invalidParams.Add(request.NewErrParamRequired("TemplateBody"))
59319	}
59320
59321	if invalidParams.Len() > 0 {
59322		return invalidParams
59323	}
59324	return nil
59325}
59326
59327// SetInputFileBucket sets the InputFileBucket field's value.
59328func (s *StartThingRegistrationTaskInput) SetInputFileBucket(v string) *StartThingRegistrationTaskInput {
59329	s.InputFileBucket = &v
59330	return s
59331}
59332
59333// SetInputFileKey sets the InputFileKey field's value.
59334func (s *StartThingRegistrationTaskInput) SetInputFileKey(v string) *StartThingRegistrationTaskInput {
59335	s.InputFileKey = &v
59336	return s
59337}
59338
59339// SetRoleArn sets the RoleArn field's value.
59340func (s *StartThingRegistrationTaskInput) SetRoleArn(v string) *StartThingRegistrationTaskInput {
59341	s.RoleArn = &v
59342	return s
59343}
59344
59345// SetTemplateBody sets the TemplateBody field's value.
59346func (s *StartThingRegistrationTaskInput) SetTemplateBody(v string) *StartThingRegistrationTaskInput {
59347	s.TemplateBody = &v
59348	return s
59349}
59350
59351type StartThingRegistrationTaskOutput struct {
59352	_ struct{} `type:"structure"`
59353
59354	// The bulk thing provisioning task ID.
59355	TaskId *string `locationName:"taskId" type:"string"`
59356}
59357
59358// String returns the string representation.
59359//
59360// API parameter values that are decorated as "sensitive" in the API will not
59361// be included in the string output. The member name will be present, but the
59362// value will be replaced with "sensitive".
59363func (s StartThingRegistrationTaskOutput) String() string {
59364	return awsutil.Prettify(s)
59365}
59366
59367// GoString returns the string representation.
59368//
59369// API parameter values that are decorated as "sensitive" in the API will not
59370// be included in the string output. The member name will be present, but the
59371// value will be replaced with "sensitive".
59372func (s StartThingRegistrationTaskOutput) GoString() string {
59373	return s.String()
59374}
59375
59376// SetTaskId sets the TaskId field's value.
59377func (s *StartThingRegistrationTaskOutput) SetTaskId(v string) *StartThingRegistrationTaskOutput {
59378	s.TaskId = &v
59379	return s
59380}
59381
59382// A statistical ranking (percentile) that indicates a threshold value by which
59383// a behavior is determined to be in compliance or in violation of the behavior.
59384type StatisticalThreshold struct {
59385	_ struct{} `type:"structure"`
59386
59387	// The percentile that resolves to a threshold value by which compliance with
59388	// a behavior is determined. Metrics are collected over the specified period
59389	// (durationSeconds) from all reporting devices in your account and statistical
59390	// ranks are calculated. Then, the measurements from a device are collected
59391	// over the same period. If the accumulated measurements from the device fall
59392	// above or below (comparisonOperator) the value associated with the percentile
59393	// specified, then the device is considered to be in compliance with the behavior,
59394	// otherwise a violation occurs.
59395	Statistic *string `locationName:"statistic" type:"string"`
59396}
59397
59398// String returns the string representation.
59399//
59400// API parameter values that are decorated as "sensitive" in the API will not
59401// be included in the string output. The member name will be present, but the
59402// value will be replaced with "sensitive".
59403func (s StatisticalThreshold) String() string {
59404	return awsutil.Prettify(s)
59405}
59406
59407// GoString returns the string representation.
59408//
59409// API parameter values that are decorated as "sensitive" in the API will not
59410// be included in the string output. The member name will be present, but the
59411// value will be replaced with "sensitive".
59412func (s StatisticalThreshold) GoString() string {
59413	return s.String()
59414}
59415
59416// SetStatistic sets the Statistic field's value.
59417func (s *StatisticalThreshold) SetStatistic(v string) *StatisticalThreshold {
59418	s.Statistic = &v
59419	return s
59420}
59421
59422// A map of key-value pairs for all supported statistics. Currently, only count
59423// is supported.
59424type Statistics struct {
59425	_ struct{} `type:"structure"`
59426
59427	// The average of the aggregated field values.
59428	Average *float64 `locationName:"average" type:"double"`
59429
59430	// The count of things that match the query.
59431	Count *int64 `locationName:"count" type:"integer"`
59432
59433	// The maximum aggregated field value.
59434	Maximum *float64 `locationName:"maximum" type:"double"`
59435
59436	// The minimum aggregated field value.
59437	Minimum *float64 `locationName:"minimum" type:"double"`
59438
59439	// The standard deviation of the aggregated field values.
59440	StdDeviation *float64 `locationName:"stdDeviation" type:"double"`
59441
59442	// The sum of the aggregated field values.
59443	Sum *float64 `locationName:"sum" type:"double"`
59444
59445	// The sum of the squares of the aggregated field values.
59446	SumOfSquares *float64 `locationName:"sumOfSquares" type:"double"`
59447
59448	// The variance of the aggregated field values.
59449	Variance *float64 `locationName:"variance" type:"double"`
59450}
59451
59452// String returns the string representation.
59453//
59454// API parameter values that are decorated as "sensitive" in the API will not
59455// be included in the string output. The member name will be present, but the
59456// value will be replaced with "sensitive".
59457func (s Statistics) String() string {
59458	return awsutil.Prettify(s)
59459}
59460
59461// GoString returns the string representation.
59462//
59463// API parameter values that are decorated as "sensitive" in the API will not
59464// be included in the string output. The member name will be present, but the
59465// value will be replaced with "sensitive".
59466func (s Statistics) GoString() string {
59467	return s.String()
59468}
59469
59470// SetAverage sets the Average field's value.
59471func (s *Statistics) SetAverage(v float64) *Statistics {
59472	s.Average = &v
59473	return s
59474}
59475
59476// SetCount sets the Count field's value.
59477func (s *Statistics) SetCount(v int64) *Statistics {
59478	s.Count = &v
59479	return s
59480}
59481
59482// SetMaximum sets the Maximum field's value.
59483func (s *Statistics) SetMaximum(v float64) *Statistics {
59484	s.Maximum = &v
59485	return s
59486}
59487
59488// SetMinimum sets the Minimum field's value.
59489func (s *Statistics) SetMinimum(v float64) *Statistics {
59490	s.Minimum = &v
59491	return s
59492}
59493
59494// SetStdDeviation sets the StdDeviation field's value.
59495func (s *Statistics) SetStdDeviation(v float64) *Statistics {
59496	s.StdDeviation = &v
59497	return s
59498}
59499
59500// SetSum sets the Sum field's value.
59501func (s *Statistics) SetSum(v float64) *Statistics {
59502	s.Sum = &v
59503	return s
59504}
59505
59506// SetSumOfSquares sets the SumOfSquares field's value.
59507func (s *Statistics) SetSumOfSquares(v float64) *Statistics {
59508	s.SumOfSquares = &v
59509	return s
59510}
59511
59512// SetVariance sets the Variance field's value.
59513func (s *Statistics) SetVariance(v float64) *Statistics {
59514	s.Variance = &v
59515	return s
59516}
59517
59518// Starts execution of a Step Functions state machine.
59519type StepFunctionsAction struct {
59520	_ struct{} `type:"structure"`
59521
59522	// (Optional) A name will be given to the state machine execution consisting
59523	// of this prefix followed by a UUID. Step Functions automatically creates a
59524	// unique name for each state machine execution if one is not provided.
59525	ExecutionNamePrefix *string `locationName:"executionNamePrefix" type:"string"`
59526
59527	// The ARN of the role that grants IoT permission to start execution of a state
59528	// machine ("Action":"states:StartExecution").
59529	//
59530	// RoleArn is a required field
59531	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
59532
59533	// The name of the Step Functions state machine whose execution will be started.
59534	//
59535	// StateMachineName is a required field
59536	StateMachineName *string `locationName:"stateMachineName" type:"string" required:"true"`
59537}
59538
59539// String returns the string representation.
59540//
59541// API parameter values that are decorated as "sensitive" in the API will not
59542// be included in the string output. The member name will be present, but the
59543// value will be replaced with "sensitive".
59544func (s StepFunctionsAction) String() string {
59545	return awsutil.Prettify(s)
59546}
59547
59548// GoString returns the string representation.
59549//
59550// API parameter values that are decorated as "sensitive" in the API will not
59551// be included in the string output. The member name will be present, but the
59552// value will be replaced with "sensitive".
59553func (s StepFunctionsAction) GoString() string {
59554	return s.String()
59555}
59556
59557// Validate inspects the fields of the type to determine if they are valid.
59558func (s *StepFunctionsAction) Validate() error {
59559	invalidParams := request.ErrInvalidParams{Context: "StepFunctionsAction"}
59560	if s.RoleArn == nil {
59561		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
59562	}
59563	if s.StateMachineName == nil {
59564		invalidParams.Add(request.NewErrParamRequired("StateMachineName"))
59565	}
59566
59567	if invalidParams.Len() > 0 {
59568		return invalidParams
59569	}
59570	return nil
59571}
59572
59573// SetExecutionNamePrefix sets the ExecutionNamePrefix field's value.
59574func (s *StepFunctionsAction) SetExecutionNamePrefix(v string) *StepFunctionsAction {
59575	s.ExecutionNamePrefix = &v
59576	return s
59577}
59578
59579// SetRoleArn sets the RoleArn field's value.
59580func (s *StepFunctionsAction) SetRoleArn(v string) *StepFunctionsAction {
59581	s.RoleArn = &v
59582	return s
59583}
59584
59585// SetStateMachineName sets the StateMachineName field's value.
59586func (s *StepFunctionsAction) SetStateMachineName(v string) *StepFunctionsAction {
59587	s.StateMachineName = &v
59588	return s
59589}
59590
59591type StopThingRegistrationTaskInput struct {
59592	_ struct{} `type:"structure" nopayload:"true"`
59593
59594	// The bulk thing provisioning task ID.
59595	//
59596	// TaskId is a required field
59597	TaskId *string `location:"uri" locationName:"taskId" type:"string" required:"true"`
59598}
59599
59600// String returns the string representation.
59601//
59602// API parameter values that are decorated as "sensitive" in the API will not
59603// be included in the string output. The member name will be present, but the
59604// value will be replaced with "sensitive".
59605func (s StopThingRegistrationTaskInput) String() string {
59606	return awsutil.Prettify(s)
59607}
59608
59609// GoString returns the string representation.
59610//
59611// API parameter values that are decorated as "sensitive" in the API will not
59612// be included in the string output. The member name will be present, but the
59613// value will be replaced with "sensitive".
59614func (s StopThingRegistrationTaskInput) GoString() string {
59615	return s.String()
59616}
59617
59618// Validate inspects the fields of the type to determine if they are valid.
59619func (s *StopThingRegistrationTaskInput) Validate() error {
59620	invalidParams := request.ErrInvalidParams{Context: "StopThingRegistrationTaskInput"}
59621	if s.TaskId == nil {
59622		invalidParams.Add(request.NewErrParamRequired("TaskId"))
59623	}
59624	if s.TaskId != nil && len(*s.TaskId) < 1 {
59625		invalidParams.Add(request.NewErrParamMinLen("TaskId", 1))
59626	}
59627
59628	if invalidParams.Len() > 0 {
59629		return invalidParams
59630	}
59631	return nil
59632}
59633
59634// SetTaskId sets the TaskId field's value.
59635func (s *StopThingRegistrationTaskInput) SetTaskId(v string) *StopThingRegistrationTaskInput {
59636	s.TaskId = &v
59637	return s
59638}
59639
59640type StopThingRegistrationTaskOutput struct {
59641	_ struct{} `type:"structure"`
59642}
59643
59644// String returns the string representation.
59645//
59646// API parameter values that are decorated as "sensitive" in the API will not
59647// be included in the string output. The member name will be present, but the
59648// value will be replaced with "sensitive".
59649func (s StopThingRegistrationTaskOutput) String() string {
59650	return awsutil.Prettify(s)
59651}
59652
59653// GoString returns the string representation.
59654//
59655// API parameter values that are decorated as "sensitive" in the API will not
59656// be included in the string output. The member name will be present, but the
59657// value will be replaced with "sensitive".
59658func (s StopThingRegistrationTaskOutput) GoString() string {
59659	return s.String()
59660}
59661
59662// Describes a group of files that can be streamed.
59663type Stream struct {
59664	_ struct{} `type:"structure"`
59665
59666	// The ID of a file associated with a stream.
59667	FileId *int64 `locationName:"fileId" type:"integer"`
59668
59669	// The stream ID.
59670	StreamId *string `locationName:"streamId" min:"1" type:"string"`
59671}
59672
59673// String returns the string representation.
59674//
59675// API parameter values that are decorated as "sensitive" in the API will not
59676// be included in the string output. The member name will be present, but the
59677// value will be replaced with "sensitive".
59678func (s Stream) String() string {
59679	return awsutil.Prettify(s)
59680}
59681
59682// GoString returns the string representation.
59683//
59684// API parameter values that are decorated as "sensitive" in the API will not
59685// be included in the string output. The member name will be present, but the
59686// value will be replaced with "sensitive".
59687func (s Stream) GoString() string {
59688	return s.String()
59689}
59690
59691// Validate inspects the fields of the type to determine if they are valid.
59692func (s *Stream) Validate() error {
59693	invalidParams := request.ErrInvalidParams{Context: "Stream"}
59694	if s.StreamId != nil && len(*s.StreamId) < 1 {
59695		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
59696	}
59697
59698	if invalidParams.Len() > 0 {
59699		return invalidParams
59700	}
59701	return nil
59702}
59703
59704// SetFileId sets the FileId field's value.
59705func (s *Stream) SetFileId(v int64) *Stream {
59706	s.FileId = &v
59707	return s
59708}
59709
59710// SetStreamId sets the StreamId field's value.
59711func (s *Stream) SetStreamId(v string) *Stream {
59712	s.StreamId = &v
59713	return s
59714}
59715
59716// Represents a file to stream.
59717type StreamFile struct {
59718	_ struct{} `type:"structure"`
59719
59720	// The file ID.
59721	FileId *int64 `locationName:"fileId" type:"integer"`
59722
59723	// The location of the file in S3.
59724	S3Location *S3Location `locationName:"s3Location" type:"structure"`
59725}
59726
59727// String returns the string representation.
59728//
59729// API parameter values that are decorated as "sensitive" in the API will not
59730// be included in the string output. The member name will be present, but the
59731// value will be replaced with "sensitive".
59732func (s StreamFile) String() string {
59733	return awsutil.Prettify(s)
59734}
59735
59736// GoString returns the string representation.
59737//
59738// API parameter values that are decorated as "sensitive" in the API will not
59739// be included in the string output. The member name will be present, but the
59740// value will be replaced with "sensitive".
59741func (s StreamFile) GoString() string {
59742	return s.String()
59743}
59744
59745// Validate inspects the fields of the type to determine if they are valid.
59746func (s *StreamFile) Validate() error {
59747	invalidParams := request.ErrInvalidParams{Context: "StreamFile"}
59748	if s.S3Location != nil {
59749		if err := s.S3Location.Validate(); err != nil {
59750			invalidParams.AddNested("S3Location", err.(request.ErrInvalidParams))
59751		}
59752	}
59753
59754	if invalidParams.Len() > 0 {
59755		return invalidParams
59756	}
59757	return nil
59758}
59759
59760// SetFileId sets the FileId field's value.
59761func (s *StreamFile) SetFileId(v int64) *StreamFile {
59762	s.FileId = &v
59763	return s
59764}
59765
59766// SetS3Location sets the S3Location field's value.
59767func (s *StreamFile) SetS3Location(v *S3Location) *StreamFile {
59768	s.S3Location = v
59769	return s
59770}
59771
59772// Information about a stream.
59773type StreamInfo struct {
59774	_ struct{} `type:"structure"`
59775
59776	// The date when the stream was created.
59777	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
59778
59779	// The description of the stream.
59780	Description *string `locationName:"description" type:"string"`
59781
59782	// The files to stream.
59783	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
59784
59785	// The date when the stream was last updated.
59786	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
59787
59788	// An IAM role IoT assumes to access your S3 files.
59789	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
59790
59791	// The stream ARN.
59792	StreamArn *string `locationName:"streamArn" type:"string"`
59793
59794	// The stream ID.
59795	StreamId *string `locationName:"streamId" min:"1" type:"string"`
59796
59797	// The stream version.
59798	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
59799}
59800
59801// String returns the string representation.
59802//
59803// API parameter values that are decorated as "sensitive" in the API will not
59804// be included in the string output. The member name will be present, but the
59805// value will be replaced with "sensitive".
59806func (s StreamInfo) String() string {
59807	return awsutil.Prettify(s)
59808}
59809
59810// GoString returns the string representation.
59811//
59812// API parameter values that are decorated as "sensitive" in the API will not
59813// be included in the string output. The member name will be present, but the
59814// value will be replaced with "sensitive".
59815func (s StreamInfo) GoString() string {
59816	return s.String()
59817}
59818
59819// SetCreatedAt sets the CreatedAt field's value.
59820func (s *StreamInfo) SetCreatedAt(v time.Time) *StreamInfo {
59821	s.CreatedAt = &v
59822	return s
59823}
59824
59825// SetDescription sets the Description field's value.
59826func (s *StreamInfo) SetDescription(v string) *StreamInfo {
59827	s.Description = &v
59828	return s
59829}
59830
59831// SetFiles sets the Files field's value.
59832func (s *StreamInfo) SetFiles(v []*StreamFile) *StreamInfo {
59833	s.Files = v
59834	return s
59835}
59836
59837// SetLastUpdatedAt sets the LastUpdatedAt field's value.
59838func (s *StreamInfo) SetLastUpdatedAt(v time.Time) *StreamInfo {
59839	s.LastUpdatedAt = &v
59840	return s
59841}
59842
59843// SetRoleArn sets the RoleArn field's value.
59844func (s *StreamInfo) SetRoleArn(v string) *StreamInfo {
59845	s.RoleArn = &v
59846	return s
59847}
59848
59849// SetStreamArn sets the StreamArn field's value.
59850func (s *StreamInfo) SetStreamArn(v string) *StreamInfo {
59851	s.StreamArn = &v
59852	return s
59853}
59854
59855// SetStreamId sets the StreamId field's value.
59856func (s *StreamInfo) SetStreamId(v string) *StreamInfo {
59857	s.StreamId = &v
59858	return s
59859}
59860
59861// SetStreamVersion sets the StreamVersion field's value.
59862func (s *StreamInfo) SetStreamVersion(v int64) *StreamInfo {
59863	s.StreamVersion = &v
59864	return s
59865}
59866
59867// A summary of a stream.
59868type StreamSummary struct {
59869	_ struct{} `type:"structure"`
59870
59871	// A description of the stream.
59872	Description *string `locationName:"description" type:"string"`
59873
59874	// The stream ARN.
59875	StreamArn *string `locationName:"streamArn" type:"string"`
59876
59877	// The stream ID.
59878	StreamId *string `locationName:"streamId" min:"1" type:"string"`
59879
59880	// The stream version.
59881	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
59882}
59883
59884// String returns the string representation.
59885//
59886// API parameter values that are decorated as "sensitive" in the API will not
59887// be included in the string output. The member name will be present, but the
59888// value will be replaced with "sensitive".
59889func (s StreamSummary) String() string {
59890	return awsutil.Prettify(s)
59891}
59892
59893// GoString returns the string representation.
59894//
59895// API parameter values that are decorated as "sensitive" in the API will not
59896// be included in the string output. The member name will be present, but the
59897// value will be replaced with "sensitive".
59898func (s StreamSummary) GoString() string {
59899	return s.String()
59900}
59901
59902// SetDescription sets the Description field's value.
59903func (s *StreamSummary) SetDescription(v string) *StreamSummary {
59904	s.Description = &v
59905	return s
59906}
59907
59908// SetStreamArn sets the StreamArn field's value.
59909func (s *StreamSummary) SetStreamArn(v string) *StreamSummary {
59910	s.StreamArn = &v
59911	return s
59912}
59913
59914// SetStreamId sets the StreamId field's value.
59915func (s *StreamSummary) SetStreamId(v string) *StreamSummary {
59916	s.StreamId = &v
59917	return s
59918}
59919
59920// SetStreamVersion sets the StreamVersion field's value.
59921func (s *StreamSummary) SetStreamVersion(v int64) *StreamSummary {
59922	s.StreamVersion = &v
59923	return s
59924}
59925
59926// A set of key/value pairs that are used to manage the resource.
59927type Tag struct {
59928	_ struct{} `type:"structure"`
59929
59930	// The tag's key.
59931	//
59932	// Key is a required field
59933	Key *string `min:"1" type:"string" required:"true"`
59934
59935	// The tag's value.
59936	Value *string `min:"1" type:"string"`
59937}
59938
59939// String returns the string representation.
59940//
59941// API parameter values that are decorated as "sensitive" in the API will not
59942// be included in the string output. The member name will be present, but the
59943// value will be replaced with "sensitive".
59944func (s Tag) String() string {
59945	return awsutil.Prettify(s)
59946}
59947
59948// GoString returns the string representation.
59949//
59950// API parameter values that are decorated as "sensitive" in the API will not
59951// be included in the string output. The member name will be present, but the
59952// value will be replaced with "sensitive".
59953func (s Tag) GoString() string {
59954	return s.String()
59955}
59956
59957// Validate inspects the fields of the type to determine if they are valid.
59958func (s *Tag) Validate() error {
59959	invalidParams := request.ErrInvalidParams{Context: "Tag"}
59960	if s.Key == nil {
59961		invalidParams.Add(request.NewErrParamRequired("Key"))
59962	}
59963	if s.Key != nil && len(*s.Key) < 1 {
59964		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
59965	}
59966	if s.Value != nil && len(*s.Value) < 1 {
59967		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
59968	}
59969
59970	if invalidParams.Len() > 0 {
59971		return invalidParams
59972	}
59973	return nil
59974}
59975
59976// SetKey sets the Key field's value.
59977func (s *Tag) SetKey(v string) *Tag {
59978	s.Key = &v
59979	return s
59980}
59981
59982// SetValue sets the Value field's value.
59983func (s *Tag) SetValue(v string) *Tag {
59984	s.Value = &v
59985	return s
59986}
59987
59988type TagResourceInput struct {
59989	_ struct{} `type:"structure"`
59990
59991	// The ARN of the resource.
59992	//
59993	// ResourceArn is a required field
59994	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
59995
59996	// The new or modified tags for the resource.
59997	//
59998	// Tags is a required field
59999	Tags []*Tag `locationName:"tags" type:"list" required:"true"`
60000}
60001
60002// String returns the string representation.
60003//
60004// API parameter values that are decorated as "sensitive" in the API will not
60005// be included in the string output. The member name will be present, but the
60006// value will be replaced with "sensitive".
60007func (s TagResourceInput) String() string {
60008	return awsutil.Prettify(s)
60009}
60010
60011// GoString returns the string representation.
60012//
60013// API parameter values that are decorated as "sensitive" in the API will not
60014// be included in the string output. The member name will be present, but the
60015// value will be replaced with "sensitive".
60016func (s TagResourceInput) GoString() string {
60017	return s.String()
60018}
60019
60020// Validate inspects the fields of the type to determine if they are valid.
60021func (s *TagResourceInput) Validate() error {
60022	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
60023	if s.ResourceArn == nil {
60024		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
60025	}
60026	if s.Tags == nil {
60027		invalidParams.Add(request.NewErrParamRequired("Tags"))
60028	}
60029	if s.Tags != nil {
60030		for i, v := range s.Tags {
60031			if v == nil {
60032				continue
60033			}
60034			if err := v.Validate(); err != nil {
60035				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
60036			}
60037		}
60038	}
60039
60040	if invalidParams.Len() > 0 {
60041		return invalidParams
60042	}
60043	return nil
60044}
60045
60046// SetResourceArn sets the ResourceArn field's value.
60047func (s *TagResourceInput) SetResourceArn(v string) *TagResourceInput {
60048	s.ResourceArn = &v
60049	return s
60050}
60051
60052// SetTags sets the Tags field's value.
60053func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
60054	s.Tags = v
60055	return s
60056}
60057
60058type TagResourceOutput struct {
60059	_ struct{} `type:"structure"`
60060}
60061
60062// String returns the string representation.
60063//
60064// API parameter values that are decorated as "sensitive" in the API will not
60065// be included in the string output. The member name will be present, but the
60066// value will be replaced with "sensitive".
60067func (s TagResourceOutput) String() string {
60068	return awsutil.Prettify(s)
60069}
60070
60071// GoString returns the string representation.
60072//
60073// API parameter values that are decorated as "sensitive" in the API will not
60074// be included in the string output. The member name will be present, but the
60075// value will be replaced with "sensitive".
60076func (s TagResourceOutput) GoString() string {
60077	return s.String()
60078}
60079
60080// This exception occurs if you attempt to start a task with the same task-id
60081// as an existing task but with a different clientRequestToken.
60082type TaskAlreadyExistsException struct {
60083	_            struct{}                  `type:"structure"`
60084	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
60085
60086	Message_ *string `locationName:"message" type:"string"`
60087}
60088
60089// String returns the string representation.
60090//
60091// API parameter values that are decorated as "sensitive" in the API will not
60092// be included in the string output. The member name will be present, but the
60093// value will be replaced with "sensitive".
60094func (s TaskAlreadyExistsException) String() string {
60095	return awsutil.Prettify(s)
60096}
60097
60098// GoString returns the string representation.
60099//
60100// API parameter values that are decorated as "sensitive" in the API will not
60101// be included in the string output. The member name will be present, but the
60102// value will be replaced with "sensitive".
60103func (s TaskAlreadyExistsException) GoString() string {
60104	return s.String()
60105}
60106
60107func newErrorTaskAlreadyExistsException(v protocol.ResponseMetadata) error {
60108	return &TaskAlreadyExistsException{
60109		RespMetadata: v,
60110	}
60111}
60112
60113// Code returns the exception type name.
60114func (s *TaskAlreadyExistsException) Code() string {
60115	return "TaskAlreadyExistsException"
60116}
60117
60118// Message returns the exception's message.
60119func (s *TaskAlreadyExistsException) Message() string {
60120	if s.Message_ != nil {
60121		return *s.Message_
60122	}
60123	return ""
60124}
60125
60126// OrigErr always returns nil, satisfies awserr.Error interface.
60127func (s *TaskAlreadyExistsException) OrigErr() error {
60128	return nil
60129}
60130
60131func (s *TaskAlreadyExistsException) Error() string {
60132	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
60133}
60134
60135// Status code returns the HTTP status code for the request's response error.
60136func (s *TaskAlreadyExistsException) StatusCode() int {
60137	return s.RespMetadata.StatusCode
60138}
60139
60140// RequestID returns the service's response RequestID for request.
60141func (s *TaskAlreadyExistsException) RequestID() string {
60142	return s.RespMetadata.RequestID
60143}
60144
60145// Statistics for the checks performed during the audit.
60146type TaskStatistics struct {
60147	_ struct{} `type:"structure"`
60148
60149	// The number of checks that did not run because the audit was canceled.
60150	CanceledChecks *int64 `locationName:"canceledChecks" type:"integer"`
60151
60152	// The number of checks that found compliant resources.
60153	CompliantChecks *int64 `locationName:"compliantChecks" type:"integer"`
60154
60155	// The number of checks.
60156	FailedChecks *int64 `locationName:"failedChecks" type:"integer"`
60157
60158	// The number of checks in progress.
60159	InProgressChecks *int64 `locationName:"inProgressChecks" type:"integer"`
60160
60161	// The number of checks that found noncompliant resources.
60162	NonCompliantChecks *int64 `locationName:"nonCompliantChecks" type:"integer"`
60163
60164	// The number of checks in this audit.
60165	TotalChecks *int64 `locationName:"totalChecks" type:"integer"`
60166
60167	// The number of checks waiting for data collection.
60168	WaitingForDataCollectionChecks *int64 `locationName:"waitingForDataCollectionChecks" type:"integer"`
60169}
60170
60171// String returns the string representation.
60172//
60173// API parameter values that are decorated as "sensitive" in the API will not
60174// be included in the string output. The member name will be present, but the
60175// value will be replaced with "sensitive".
60176func (s TaskStatistics) String() string {
60177	return awsutil.Prettify(s)
60178}
60179
60180// GoString returns the string representation.
60181//
60182// API parameter values that are decorated as "sensitive" in the API will not
60183// be included in the string output. The member name will be present, but the
60184// value will be replaced with "sensitive".
60185func (s TaskStatistics) GoString() string {
60186	return s.String()
60187}
60188
60189// SetCanceledChecks sets the CanceledChecks field's value.
60190func (s *TaskStatistics) SetCanceledChecks(v int64) *TaskStatistics {
60191	s.CanceledChecks = &v
60192	return s
60193}
60194
60195// SetCompliantChecks sets the CompliantChecks field's value.
60196func (s *TaskStatistics) SetCompliantChecks(v int64) *TaskStatistics {
60197	s.CompliantChecks = &v
60198	return s
60199}
60200
60201// SetFailedChecks sets the FailedChecks field's value.
60202func (s *TaskStatistics) SetFailedChecks(v int64) *TaskStatistics {
60203	s.FailedChecks = &v
60204	return s
60205}
60206
60207// SetInProgressChecks sets the InProgressChecks field's value.
60208func (s *TaskStatistics) SetInProgressChecks(v int64) *TaskStatistics {
60209	s.InProgressChecks = &v
60210	return s
60211}
60212
60213// SetNonCompliantChecks sets the NonCompliantChecks field's value.
60214func (s *TaskStatistics) SetNonCompliantChecks(v int64) *TaskStatistics {
60215	s.NonCompliantChecks = &v
60216	return s
60217}
60218
60219// SetTotalChecks sets the TotalChecks field's value.
60220func (s *TaskStatistics) SetTotalChecks(v int64) *TaskStatistics {
60221	s.TotalChecks = &v
60222	return s
60223}
60224
60225// SetWaitingForDataCollectionChecks sets the WaitingForDataCollectionChecks field's value.
60226func (s *TaskStatistics) SetWaitingForDataCollectionChecks(v int64) *TaskStatistics {
60227	s.WaitingForDataCollectionChecks = &v
60228	return s
60229}
60230
60231// Provides summary counts of how many tasks for findings are in a particular
60232// state. This information is included in the response from DescribeAuditMitigationActionsTask.
60233type TaskStatisticsForAuditCheck struct {
60234	_ struct{} `type:"structure"`
60235
60236	// The number of findings to which the mitigation action task was canceled when
60237	// applied.
60238	CanceledFindingsCount *int64 `locationName:"canceledFindingsCount" type:"long"`
60239
60240	// The number of findings for which at least one of the actions failed when
60241	// applied.
60242	FailedFindingsCount *int64 `locationName:"failedFindingsCount" type:"long"`
60243
60244	// The number of findings skipped because of filter conditions provided in the
60245	// parameters to the command.
60246	SkippedFindingsCount *int64 `locationName:"skippedFindingsCount" type:"long"`
60247
60248	// The number of findings for which all mitigation actions succeeded when applied.
60249	SucceededFindingsCount *int64 `locationName:"succeededFindingsCount" type:"long"`
60250
60251	// The total number of findings to which a task is being applied.
60252	TotalFindingsCount *int64 `locationName:"totalFindingsCount" type:"long"`
60253}
60254
60255// String returns the string representation.
60256//
60257// API parameter values that are decorated as "sensitive" in the API will not
60258// be included in the string output. The member name will be present, but the
60259// value will be replaced with "sensitive".
60260func (s TaskStatisticsForAuditCheck) String() string {
60261	return awsutil.Prettify(s)
60262}
60263
60264// GoString returns the string representation.
60265//
60266// API parameter values that are decorated as "sensitive" in the API will not
60267// be included in the string output. The member name will be present, but the
60268// value will be replaced with "sensitive".
60269func (s TaskStatisticsForAuditCheck) GoString() string {
60270	return s.String()
60271}
60272
60273// SetCanceledFindingsCount sets the CanceledFindingsCount field's value.
60274func (s *TaskStatisticsForAuditCheck) SetCanceledFindingsCount(v int64) *TaskStatisticsForAuditCheck {
60275	s.CanceledFindingsCount = &v
60276	return s
60277}
60278
60279// SetFailedFindingsCount sets the FailedFindingsCount field's value.
60280func (s *TaskStatisticsForAuditCheck) SetFailedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
60281	s.FailedFindingsCount = &v
60282	return s
60283}
60284
60285// SetSkippedFindingsCount sets the SkippedFindingsCount field's value.
60286func (s *TaskStatisticsForAuditCheck) SetSkippedFindingsCount(v int64) *TaskStatisticsForAuditCheck {
60287	s.SkippedFindingsCount = &v
60288	return s
60289}
60290
60291// SetSucceededFindingsCount sets the SucceededFindingsCount field's value.
60292func (s *TaskStatisticsForAuditCheck) SetSucceededFindingsCount(v int64) *TaskStatisticsForAuditCheck {
60293	s.SucceededFindingsCount = &v
60294	return s
60295}
60296
60297// SetTotalFindingsCount sets the TotalFindingsCount field's value.
60298func (s *TaskStatisticsForAuditCheck) SetTotalFindingsCount(v int64) *TaskStatisticsForAuditCheck {
60299	s.TotalFindingsCount = &v
60300	return s
60301}
60302
60303// Performs an aggregation that will return a list of buckets. The list of buckets
60304// is a ranked list of the number of occurrences of an aggregation field value.
60305type TermsAggregation struct {
60306	_ struct{} `type:"structure"`
60307
60308	// The number of buckets to return in the response. Default to 10.
60309	MaxBuckets *int64 `locationName:"maxBuckets" min:"1" type:"integer"`
60310}
60311
60312// String returns the string representation.
60313//
60314// API parameter values that are decorated as "sensitive" in the API will not
60315// be included in the string output. The member name will be present, but the
60316// value will be replaced with "sensitive".
60317func (s TermsAggregation) String() string {
60318	return awsutil.Prettify(s)
60319}
60320
60321// GoString returns the string representation.
60322//
60323// API parameter values that are decorated as "sensitive" in the API will not
60324// be included in the string output. The member name will be present, but the
60325// value will be replaced with "sensitive".
60326func (s TermsAggregation) GoString() string {
60327	return s.String()
60328}
60329
60330// Validate inspects the fields of the type to determine if they are valid.
60331func (s *TermsAggregation) Validate() error {
60332	invalidParams := request.ErrInvalidParams{Context: "TermsAggregation"}
60333	if s.MaxBuckets != nil && *s.MaxBuckets < 1 {
60334		invalidParams.Add(request.NewErrParamMinValue("MaxBuckets", 1))
60335	}
60336
60337	if invalidParams.Len() > 0 {
60338		return invalidParams
60339	}
60340	return nil
60341}
60342
60343// SetMaxBuckets sets the MaxBuckets field's value.
60344func (s *TermsAggregation) SetMaxBuckets(v int64) *TermsAggregation {
60345	s.MaxBuckets = &v
60346	return s
60347}
60348
60349type TestAuthorizationInput struct {
60350	_ struct{} `type:"structure"`
60351
60352	// A list of authorization info objects. Simulating authorization will create
60353	// a response for each authInfo object in the list.
60354	//
60355	// AuthInfos is a required field
60356	AuthInfos []*AuthInfo `locationName:"authInfos" min:"1" type:"list" required:"true"`
60357
60358	// The MQTT client ID.
60359	ClientId *string `location:"querystring" locationName:"clientId" type:"string"`
60360
60361	// The Cognito identity pool ID.
60362	CognitoIdentityPoolId *string `locationName:"cognitoIdentityPoolId" type:"string"`
60363
60364	// When testing custom authorization, the policies specified here are treated
60365	// as if they are attached to the principal being authorized.
60366	PolicyNamesToAdd []*string `locationName:"policyNamesToAdd" type:"list"`
60367
60368	// When testing custom authorization, the policies specified here are treated
60369	// as if they are not attached to the principal being authorized.
60370	PolicyNamesToSkip []*string `locationName:"policyNamesToSkip" type:"list"`
60371
60372	// The principal. Valid principals are CertificateArn (arn:aws:iot:region:accountId:cert/certificateId),
60373	// thingGroupArn (arn:aws:iot:region:accountId:thinggroup/groupName) and CognitoId
60374	// (region:id).
60375	Principal *string `locationName:"principal" type:"string"`
60376}
60377
60378// String returns the string representation.
60379//
60380// API parameter values that are decorated as "sensitive" in the API will not
60381// be included in the string output. The member name will be present, but the
60382// value will be replaced with "sensitive".
60383func (s TestAuthorizationInput) String() string {
60384	return awsutil.Prettify(s)
60385}
60386
60387// GoString returns the string representation.
60388//
60389// API parameter values that are decorated as "sensitive" in the API will not
60390// be included in the string output. The member name will be present, but the
60391// value will be replaced with "sensitive".
60392func (s TestAuthorizationInput) GoString() string {
60393	return s.String()
60394}
60395
60396// Validate inspects the fields of the type to determine if they are valid.
60397func (s *TestAuthorizationInput) Validate() error {
60398	invalidParams := request.ErrInvalidParams{Context: "TestAuthorizationInput"}
60399	if s.AuthInfos == nil {
60400		invalidParams.Add(request.NewErrParamRequired("AuthInfos"))
60401	}
60402	if s.AuthInfos != nil && len(s.AuthInfos) < 1 {
60403		invalidParams.Add(request.NewErrParamMinLen("AuthInfos", 1))
60404	}
60405	if s.AuthInfos != nil {
60406		for i, v := range s.AuthInfos {
60407			if v == nil {
60408				continue
60409			}
60410			if err := v.Validate(); err != nil {
60411				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuthInfos", i), err.(request.ErrInvalidParams))
60412			}
60413		}
60414	}
60415
60416	if invalidParams.Len() > 0 {
60417		return invalidParams
60418	}
60419	return nil
60420}
60421
60422// SetAuthInfos sets the AuthInfos field's value.
60423func (s *TestAuthorizationInput) SetAuthInfos(v []*AuthInfo) *TestAuthorizationInput {
60424	s.AuthInfos = v
60425	return s
60426}
60427
60428// SetClientId sets the ClientId field's value.
60429func (s *TestAuthorizationInput) SetClientId(v string) *TestAuthorizationInput {
60430	s.ClientId = &v
60431	return s
60432}
60433
60434// SetCognitoIdentityPoolId sets the CognitoIdentityPoolId field's value.
60435func (s *TestAuthorizationInput) SetCognitoIdentityPoolId(v string) *TestAuthorizationInput {
60436	s.CognitoIdentityPoolId = &v
60437	return s
60438}
60439
60440// SetPolicyNamesToAdd sets the PolicyNamesToAdd field's value.
60441func (s *TestAuthorizationInput) SetPolicyNamesToAdd(v []*string) *TestAuthorizationInput {
60442	s.PolicyNamesToAdd = v
60443	return s
60444}
60445
60446// SetPolicyNamesToSkip sets the PolicyNamesToSkip field's value.
60447func (s *TestAuthorizationInput) SetPolicyNamesToSkip(v []*string) *TestAuthorizationInput {
60448	s.PolicyNamesToSkip = v
60449	return s
60450}
60451
60452// SetPrincipal sets the Principal field's value.
60453func (s *TestAuthorizationInput) SetPrincipal(v string) *TestAuthorizationInput {
60454	s.Principal = &v
60455	return s
60456}
60457
60458type TestAuthorizationOutput struct {
60459	_ struct{} `type:"structure"`
60460
60461	// The authentication results.
60462	AuthResults []*AuthResult `locationName:"authResults" type:"list"`
60463}
60464
60465// String returns the string representation.
60466//
60467// API parameter values that are decorated as "sensitive" in the API will not
60468// be included in the string output. The member name will be present, but the
60469// value will be replaced with "sensitive".
60470func (s TestAuthorizationOutput) String() string {
60471	return awsutil.Prettify(s)
60472}
60473
60474// GoString returns the string representation.
60475//
60476// API parameter values that are decorated as "sensitive" in the API will not
60477// be included in the string output. The member name will be present, but the
60478// value will be replaced with "sensitive".
60479func (s TestAuthorizationOutput) GoString() string {
60480	return s.String()
60481}
60482
60483// SetAuthResults sets the AuthResults field's value.
60484func (s *TestAuthorizationOutput) SetAuthResults(v []*AuthResult) *TestAuthorizationOutput {
60485	s.AuthResults = v
60486	return s
60487}
60488
60489type TestInvokeAuthorizerInput struct {
60490	_ struct{} `type:"structure"`
60491
60492	// The custom authorizer name.
60493	//
60494	// AuthorizerName is a required field
60495	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
60496
60497	// Specifies a test HTTP authorization request.
60498	HttpContext *HttpContext `locationName:"httpContext" type:"structure"`
60499
60500	// Specifies a test MQTT authorization request.
60501	MqttContext *MqttContext `locationName:"mqttContext" type:"structure"`
60502
60503	// Specifies a test TLS authorization request.
60504	TlsContext *TlsContext `locationName:"tlsContext" type:"structure"`
60505
60506	// The token returned by your custom authentication service.
60507	Token *string `locationName:"token" min:"1" type:"string"`
60508
60509	// The signature made with the token and your custom authentication service's
60510	// private key. This value must be Base-64-encoded.
60511	TokenSignature *string `locationName:"tokenSignature" min:"1" type:"string"`
60512}
60513
60514// String returns the string representation.
60515//
60516// API parameter values that are decorated as "sensitive" in the API will not
60517// be included in the string output. The member name will be present, but the
60518// value will be replaced with "sensitive".
60519func (s TestInvokeAuthorizerInput) String() string {
60520	return awsutil.Prettify(s)
60521}
60522
60523// GoString returns the string representation.
60524//
60525// API parameter values that are decorated as "sensitive" in the API will not
60526// be included in the string output. The member name will be present, but the
60527// value will be replaced with "sensitive".
60528func (s TestInvokeAuthorizerInput) GoString() string {
60529	return s.String()
60530}
60531
60532// Validate inspects the fields of the type to determine if they are valid.
60533func (s *TestInvokeAuthorizerInput) Validate() error {
60534	invalidParams := request.ErrInvalidParams{Context: "TestInvokeAuthorizerInput"}
60535	if s.AuthorizerName == nil {
60536		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
60537	}
60538	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
60539		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
60540	}
60541	if s.Token != nil && len(*s.Token) < 1 {
60542		invalidParams.Add(request.NewErrParamMinLen("Token", 1))
60543	}
60544	if s.TokenSignature != nil && len(*s.TokenSignature) < 1 {
60545		invalidParams.Add(request.NewErrParamMinLen("TokenSignature", 1))
60546	}
60547	if s.HttpContext != nil {
60548		if err := s.HttpContext.Validate(); err != nil {
60549			invalidParams.AddNested("HttpContext", err.(request.ErrInvalidParams))
60550		}
60551	}
60552	if s.MqttContext != nil {
60553		if err := s.MqttContext.Validate(); err != nil {
60554			invalidParams.AddNested("MqttContext", err.(request.ErrInvalidParams))
60555		}
60556	}
60557	if s.TlsContext != nil {
60558		if err := s.TlsContext.Validate(); err != nil {
60559			invalidParams.AddNested("TlsContext", err.(request.ErrInvalidParams))
60560		}
60561	}
60562
60563	if invalidParams.Len() > 0 {
60564		return invalidParams
60565	}
60566	return nil
60567}
60568
60569// SetAuthorizerName sets the AuthorizerName field's value.
60570func (s *TestInvokeAuthorizerInput) SetAuthorizerName(v string) *TestInvokeAuthorizerInput {
60571	s.AuthorizerName = &v
60572	return s
60573}
60574
60575// SetHttpContext sets the HttpContext field's value.
60576func (s *TestInvokeAuthorizerInput) SetHttpContext(v *HttpContext) *TestInvokeAuthorizerInput {
60577	s.HttpContext = v
60578	return s
60579}
60580
60581// SetMqttContext sets the MqttContext field's value.
60582func (s *TestInvokeAuthorizerInput) SetMqttContext(v *MqttContext) *TestInvokeAuthorizerInput {
60583	s.MqttContext = v
60584	return s
60585}
60586
60587// SetTlsContext sets the TlsContext field's value.
60588func (s *TestInvokeAuthorizerInput) SetTlsContext(v *TlsContext) *TestInvokeAuthorizerInput {
60589	s.TlsContext = v
60590	return s
60591}
60592
60593// SetToken sets the Token field's value.
60594func (s *TestInvokeAuthorizerInput) SetToken(v string) *TestInvokeAuthorizerInput {
60595	s.Token = &v
60596	return s
60597}
60598
60599// SetTokenSignature sets the TokenSignature field's value.
60600func (s *TestInvokeAuthorizerInput) SetTokenSignature(v string) *TestInvokeAuthorizerInput {
60601	s.TokenSignature = &v
60602	return s
60603}
60604
60605type TestInvokeAuthorizerOutput struct {
60606	_ struct{} `type:"structure"`
60607
60608	// The number of seconds after which the connection is terminated.
60609	DisconnectAfterInSeconds *int64 `locationName:"disconnectAfterInSeconds" type:"integer"`
60610
60611	// True if the token is authenticated, otherwise false.
60612	IsAuthenticated *bool `locationName:"isAuthenticated" type:"boolean"`
60613
60614	// IAM policy documents.
60615	PolicyDocuments []*string `locationName:"policyDocuments" type:"list"`
60616
60617	// The principal ID.
60618	PrincipalId *string `locationName:"principalId" min:"1" type:"string"`
60619
60620	// The number of seconds after which the temporary credentials are refreshed.
60621	RefreshAfterInSeconds *int64 `locationName:"refreshAfterInSeconds" type:"integer"`
60622}
60623
60624// String returns the string representation.
60625//
60626// API parameter values that are decorated as "sensitive" in the API will not
60627// be included in the string output. The member name will be present, but the
60628// value will be replaced with "sensitive".
60629func (s TestInvokeAuthorizerOutput) String() string {
60630	return awsutil.Prettify(s)
60631}
60632
60633// GoString returns the string representation.
60634//
60635// API parameter values that are decorated as "sensitive" in the API will not
60636// be included in the string output. The member name will be present, but the
60637// value will be replaced with "sensitive".
60638func (s TestInvokeAuthorizerOutput) GoString() string {
60639	return s.String()
60640}
60641
60642// SetDisconnectAfterInSeconds sets the DisconnectAfterInSeconds field's value.
60643func (s *TestInvokeAuthorizerOutput) SetDisconnectAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
60644	s.DisconnectAfterInSeconds = &v
60645	return s
60646}
60647
60648// SetIsAuthenticated sets the IsAuthenticated field's value.
60649func (s *TestInvokeAuthorizerOutput) SetIsAuthenticated(v bool) *TestInvokeAuthorizerOutput {
60650	s.IsAuthenticated = &v
60651	return s
60652}
60653
60654// SetPolicyDocuments sets the PolicyDocuments field's value.
60655func (s *TestInvokeAuthorizerOutput) SetPolicyDocuments(v []*string) *TestInvokeAuthorizerOutput {
60656	s.PolicyDocuments = v
60657	return s
60658}
60659
60660// SetPrincipalId sets the PrincipalId field's value.
60661func (s *TestInvokeAuthorizerOutput) SetPrincipalId(v string) *TestInvokeAuthorizerOutput {
60662	s.PrincipalId = &v
60663	return s
60664}
60665
60666// SetRefreshAfterInSeconds sets the RefreshAfterInSeconds field's value.
60667func (s *TestInvokeAuthorizerOutput) SetRefreshAfterInSeconds(v int64) *TestInvokeAuthorizerOutput {
60668	s.RefreshAfterInSeconds = &v
60669	return s
60670}
60671
60672// The properties of the thing, including thing name, thing type name, and a
60673// list of thing attributes.
60674type ThingAttribute struct {
60675	_ struct{} `type:"structure"`
60676
60677	// A list of thing attributes which are name-value pairs.
60678	Attributes map[string]*string `locationName:"attributes" type:"map"`
60679
60680	// The thing ARN.
60681	ThingArn *string `locationName:"thingArn" type:"string"`
60682
60683	// The name of the thing.
60684	ThingName *string `locationName:"thingName" min:"1" type:"string"`
60685
60686	// The name of the thing type, if the thing has been associated with a type.
60687	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
60688
60689	// The version of the thing record in the registry.
60690	Version *int64 `locationName:"version" type:"long"`
60691}
60692
60693// String returns the string representation.
60694//
60695// API parameter values that are decorated as "sensitive" in the API will not
60696// be included in the string output. The member name will be present, but the
60697// value will be replaced with "sensitive".
60698func (s ThingAttribute) String() string {
60699	return awsutil.Prettify(s)
60700}
60701
60702// GoString returns the string representation.
60703//
60704// API parameter values that are decorated as "sensitive" in the API will not
60705// be included in the string output. The member name will be present, but the
60706// value will be replaced with "sensitive".
60707func (s ThingAttribute) GoString() string {
60708	return s.String()
60709}
60710
60711// SetAttributes sets the Attributes field's value.
60712func (s *ThingAttribute) SetAttributes(v map[string]*string) *ThingAttribute {
60713	s.Attributes = v
60714	return s
60715}
60716
60717// SetThingArn sets the ThingArn field's value.
60718func (s *ThingAttribute) SetThingArn(v string) *ThingAttribute {
60719	s.ThingArn = &v
60720	return s
60721}
60722
60723// SetThingName sets the ThingName field's value.
60724func (s *ThingAttribute) SetThingName(v string) *ThingAttribute {
60725	s.ThingName = &v
60726	return s
60727}
60728
60729// SetThingTypeName sets the ThingTypeName field's value.
60730func (s *ThingAttribute) SetThingTypeName(v string) *ThingAttribute {
60731	s.ThingTypeName = &v
60732	return s
60733}
60734
60735// SetVersion sets the Version field's value.
60736func (s *ThingAttribute) SetVersion(v int64) *ThingAttribute {
60737	s.Version = &v
60738	return s
60739}
60740
60741// The connectivity status of the thing.
60742type ThingConnectivity struct {
60743	_ struct{} `type:"structure"`
60744
60745	// True if the thing is connected to the Amazon Web Services IoT Core service;
60746	// false if it is not connected.
60747	Connected *bool `locationName:"connected" type:"boolean"`
60748
60749	// The reason why the client is disconnected. If the thing has been disconnected
60750	// for approximately an hour, the disconnectReason value might be missing.
60751	DisconnectReason *string `locationName:"disconnectReason" type:"string"`
60752
60753	// The epoch time (in milliseconds) when the thing last connected or disconnected.
60754	// If the thing has been disconnected for approximately an hour, the time value
60755	// might be missing.
60756	Timestamp *int64 `locationName:"timestamp" type:"long"`
60757}
60758
60759// String returns the string representation.
60760//
60761// API parameter values that are decorated as "sensitive" in the API will not
60762// be included in the string output. The member name will be present, but the
60763// value will be replaced with "sensitive".
60764func (s ThingConnectivity) String() string {
60765	return awsutil.Prettify(s)
60766}
60767
60768// GoString returns the string representation.
60769//
60770// API parameter values that are decorated as "sensitive" in the API will not
60771// be included in the string output. The member name will be present, but the
60772// value will be replaced with "sensitive".
60773func (s ThingConnectivity) GoString() string {
60774	return s.String()
60775}
60776
60777// SetConnected sets the Connected field's value.
60778func (s *ThingConnectivity) SetConnected(v bool) *ThingConnectivity {
60779	s.Connected = &v
60780	return s
60781}
60782
60783// SetDisconnectReason sets the DisconnectReason field's value.
60784func (s *ThingConnectivity) SetDisconnectReason(v string) *ThingConnectivity {
60785	s.DisconnectReason = &v
60786	return s
60787}
60788
60789// SetTimestamp sets the Timestamp field's value.
60790func (s *ThingConnectivity) SetTimestamp(v int64) *ThingConnectivity {
60791	s.Timestamp = &v
60792	return s
60793}
60794
60795// The thing search index document.
60796type ThingDocument struct {
60797	_ struct{} `type:"structure"`
60798
60799	// The attributes.
60800	Attributes map[string]*string `locationName:"attributes" type:"map"`
60801
60802	// Indicates whether the thing is connected to the Amazon Web Services IoT Core
60803	// service.
60804	Connectivity *ThingConnectivity `locationName:"connectivity" type:"structure"`
60805
60806	// The shadow.
60807	Shadow *string `locationName:"shadow" type:"string"`
60808
60809	// Thing group names.
60810	ThingGroupNames []*string `locationName:"thingGroupNames" type:"list"`
60811
60812	// The thing ID.
60813	ThingId *string `locationName:"thingId" type:"string"`
60814
60815	// The thing name.
60816	ThingName *string `locationName:"thingName" min:"1" type:"string"`
60817
60818	// The thing type name.
60819	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
60820}
60821
60822// String returns the string representation.
60823//
60824// API parameter values that are decorated as "sensitive" in the API will not
60825// be included in the string output. The member name will be present, but the
60826// value will be replaced with "sensitive".
60827func (s ThingDocument) String() string {
60828	return awsutil.Prettify(s)
60829}
60830
60831// GoString returns the string representation.
60832//
60833// API parameter values that are decorated as "sensitive" in the API will not
60834// be included in the string output. The member name will be present, but the
60835// value will be replaced with "sensitive".
60836func (s ThingDocument) GoString() string {
60837	return s.String()
60838}
60839
60840// SetAttributes sets the Attributes field's value.
60841func (s *ThingDocument) SetAttributes(v map[string]*string) *ThingDocument {
60842	s.Attributes = v
60843	return s
60844}
60845
60846// SetConnectivity sets the Connectivity field's value.
60847func (s *ThingDocument) SetConnectivity(v *ThingConnectivity) *ThingDocument {
60848	s.Connectivity = v
60849	return s
60850}
60851
60852// SetShadow sets the Shadow field's value.
60853func (s *ThingDocument) SetShadow(v string) *ThingDocument {
60854	s.Shadow = &v
60855	return s
60856}
60857
60858// SetThingGroupNames sets the ThingGroupNames field's value.
60859func (s *ThingDocument) SetThingGroupNames(v []*string) *ThingDocument {
60860	s.ThingGroupNames = v
60861	return s
60862}
60863
60864// SetThingId sets the ThingId field's value.
60865func (s *ThingDocument) SetThingId(v string) *ThingDocument {
60866	s.ThingId = &v
60867	return s
60868}
60869
60870// SetThingName sets the ThingName field's value.
60871func (s *ThingDocument) SetThingName(v string) *ThingDocument {
60872	s.ThingName = &v
60873	return s
60874}
60875
60876// SetThingTypeName sets the ThingTypeName field's value.
60877func (s *ThingDocument) SetThingTypeName(v string) *ThingDocument {
60878	s.ThingTypeName = &v
60879	return s
60880}
60881
60882// The thing group search index document.
60883type ThingGroupDocument struct {
60884	_ struct{} `type:"structure"`
60885
60886	// The thing group attributes.
60887	Attributes map[string]*string `locationName:"attributes" type:"map"`
60888
60889	// Parent group names.
60890	ParentGroupNames []*string `locationName:"parentGroupNames" type:"list"`
60891
60892	// The thing group description.
60893	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
60894
60895	// The thing group ID.
60896	ThingGroupId *string `locationName:"thingGroupId" min:"1" type:"string"`
60897
60898	// The thing group name.
60899	ThingGroupName *string `locationName:"thingGroupName" min:"1" type:"string"`
60900}
60901
60902// String returns the string representation.
60903//
60904// API parameter values that are decorated as "sensitive" in the API will not
60905// be included in the string output. The member name will be present, but the
60906// value will be replaced with "sensitive".
60907func (s ThingGroupDocument) String() string {
60908	return awsutil.Prettify(s)
60909}
60910
60911// GoString returns the string representation.
60912//
60913// API parameter values that are decorated as "sensitive" in the API will not
60914// be included in the string output. The member name will be present, but the
60915// value will be replaced with "sensitive".
60916func (s ThingGroupDocument) GoString() string {
60917	return s.String()
60918}
60919
60920// SetAttributes sets the Attributes field's value.
60921func (s *ThingGroupDocument) SetAttributes(v map[string]*string) *ThingGroupDocument {
60922	s.Attributes = v
60923	return s
60924}
60925
60926// SetParentGroupNames sets the ParentGroupNames field's value.
60927func (s *ThingGroupDocument) SetParentGroupNames(v []*string) *ThingGroupDocument {
60928	s.ParentGroupNames = v
60929	return s
60930}
60931
60932// SetThingGroupDescription sets the ThingGroupDescription field's value.
60933func (s *ThingGroupDocument) SetThingGroupDescription(v string) *ThingGroupDocument {
60934	s.ThingGroupDescription = &v
60935	return s
60936}
60937
60938// SetThingGroupId sets the ThingGroupId field's value.
60939func (s *ThingGroupDocument) SetThingGroupId(v string) *ThingGroupDocument {
60940	s.ThingGroupId = &v
60941	return s
60942}
60943
60944// SetThingGroupName sets the ThingGroupName field's value.
60945func (s *ThingGroupDocument) SetThingGroupName(v string) *ThingGroupDocument {
60946	s.ThingGroupName = &v
60947	return s
60948}
60949
60950// Thing group indexing configuration.
60951type ThingGroupIndexingConfiguration struct {
60952	_ struct{} `type:"structure"`
60953
60954	// A list of thing group fields to index. This list cannot contain any managed
60955	// fields. Use the GetIndexingConfiguration API to get a list of managed fields.
60956	//
60957	// Contains custom field names and their data type.
60958	CustomFields []*Field `locationName:"customFields" type:"list"`
60959
60960	// Contains fields that are indexed and whose types are already known by the
60961	// Fleet Indexing service.
60962	ManagedFields []*Field `locationName:"managedFields" type:"list"`
60963
60964	// Thing group indexing mode.
60965	//
60966	// ThingGroupIndexingMode is a required field
60967	ThingGroupIndexingMode *string `locationName:"thingGroupIndexingMode" type:"string" required:"true" enum:"ThingGroupIndexingMode"`
60968}
60969
60970// String returns the string representation.
60971//
60972// API parameter values that are decorated as "sensitive" in the API will not
60973// be included in the string output. The member name will be present, but the
60974// value will be replaced with "sensitive".
60975func (s ThingGroupIndexingConfiguration) String() string {
60976	return awsutil.Prettify(s)
60977}
60978
60979// GoString returns the string representation.
60980//
60981// API parameter values that are decorated as "sensitive" in the API will not
60982// be included in the string output. The member name will be present, but the
60983// value will be replaced with "sensitive".
60984func (s ThingGroupIndexingConfiguration) GoString() string {
60985	return s.String()
60986}
60987
60988// Validate inspects the fields of the type to determine if they are valid.
60989func (s *ThingGroupIndexingConfiguration) Validate() error {
60990	invalidParams := request.ErrInvalidParams{Context: "ThingGroupIndexingConfiguration"}
60991	if s.ThingGroupIndexingMode == nil {
60992		invalidParams.Add(request.NewErrParamRequired("ThingGroupIndexingMode"))
60993	}
60994
60995	if invalidParams.Len() > 0 {
60996		return invalidParams
60997	}
60998	return nil
60999}
61000
61001// SetCustomFields sets the CustomFields field's value.
61002func (s *ThingGroupIndexingConfiguration) SetCustomFields(v []*Field) *ThingGroupIndexingConfiguration {
61003	s.CustomFields = v
61004	return s
61005}
61006
61007// SetManagedFields sets the ManagedFields field's value.
61008func (s *ThingGroupIndexingConfiguration) SetManagedFields(v []*Field) *ThingGroupIndexingConfiguration {
61009	s.ManagedFields = v
61010	return s
61011}
61012
61013// SetThingGroupIndexingMode sets the ThingGroupIndexingMode field's value.
61014func (s *ThingGroupIndexingConfiguration) SetThingGroupIndexingMode(v string) *ThingGroupIndexingConfiguration {
61015	s.ThingGroupIndexingMode = &v
61016	return s
61017}
61018
61019// Thing group metadata.
61020type ThingGroupMetadata struct {
61021	_ struct{} `type:"structure"`
61022
61023	// The UNIX timestamp of when the thing group was created.
61024	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
61025
61026	// The parent thing group name.
61027	ParentGroupName *string `locationName:"parentGroupName" min:"1" type:"string"`
61028
61029	// The root parent thing group.
61030	RootToParentThingGroups []*GroupNameAndArn `locationName:"rootToParentThingGroups" type:"list"`
61031}
61032
61033// String returns the string representation.
61034//
61035// API parameter values that are decorated as "sensitive" in the API will not
61036// be included in the string output. The member name will be present, but the
61037// value will be replaced with "sensitive".
61038func (s ThingGroupMetadata) String() string {
61039	return awsutil.Prettify(s)
61040}
61041
61042// GoString returns the string representation.
61043//
61044// API parameter values that are decorated as "sensitive" in the API will not
61045// be included in the string output. The member name will be present, but the
61046// value will be replaced with "sensitive".
61047func (s ThingGroupMetadata) GoString() string {
61048	return s.String()
61049}
61050
61051// SetCreationDate sets the CreationDate field's value.
61052func (s *ThingGroupMetadata) SetCreationDate(v time.Time) *ThingGroupMetadata {
61053	s.CreationDate = &v
61054	return s
61055}
61056
61057// SetParentGroupName sets the ParentGroupName field's value.
61058func (s *ThingGroupMetadata) SetParentGroupName(v string) *ThingGroupMetadata {
61059	s.ParentGroupName = &v
61060	return s
61061}
61062
61063// SetRootToParentThingGroups sets the RootToParentThingGroups field's value.
61064func (s *ThingGroupMetadata) SetRootToParentThingGroups(v []*GroupNameAndArn) *ThingGroupMetadata {
61065	s.RootToParentThingGroups = v
61066	return s
61067}
61068
61069// Thing group properties.
61070type ThingGroupProperties struct {
61071	_ struct{} `type:"structure"`
61072
61073	// The thing group attributes in JSON format.
61074	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
61075
61076	// The thing group description.
61077	ThingGroupDescription *string `locationName:"thingGroupDescription" type:"string"`
61078}
61079
61080// String returns the string representation.
61081//
61082// API parameter values that are decorated as "sensitive" in the API will not
61083// be included in the string output. The member name will be present, but the
61084// value will be replaced with "sensitive".
61085func (s ThingGroupProperties) String() string {
61086	return awsutil.Prettify(s)
61087}
61088
61089// GoString returns the string representation.
61090//
61091// API parameter values that are decorated as "sensitive" in the API will not
61092// be included in the string output. The member name will be present, but the
61093// value will be replaced with "sensitive".
61094func (s ThingGroupProperties) GoString() string {
61095	return s.String()
61096}
61097
61098// SetAttributePayload sets the AttributePayload field's value.
61099func (s *ThingGroupProperties) SetAttributePayload(v *AttributePayload) *ThingGroupProperties {
61100	s.AttributePayload = v
61101	return s
61102}
61103
61104// SetThingGroupDescription sets the ThingGroupDescription field's value.
61105func (s *ThingGroupProperties) SetThingGroupDescription(v string) *ThingGroupProperties {
61106	s.ThingGroupDescription = &v
61107	return s
61108}
61109
61110// The thing indexing configuration. For more information, see Managing Thing
61111// Indexing (https://docs.aws.amazon.com/iot/latest/developerguide/managing-index.html).
61112type ThingIndexingConfiguration struct {
61113	_ struct{} `type:"structure"`
61114
61115	// Contains custom field names and their data type.
61116	CustomFields []*Field `locationName:"customFields" type:"list"`
61117
61118	// Contains fields that are indexed and whose types are already known by the
61119	// Fleet Indexing service.
61120	ManagedFields []*Field `locationName:"managedFields" type:"list"`
61121
61122	// Thing connectivity indexing mode. Valid values are:
61123	//
61124	//    * STATUS – Your thing index contains connectivity status. To enable
61125	//    thing connectivity indexing, thingIndexMode must not be set to OFF.
61126	//
61127	//    * OFF - Thing connectivity status indexing is disabled.
61128	ThingConnectivityIndexingMode *string `locationName:"thingConnectivityIndexingMode" type:"string" enum:"ThingConnectivityIndexingMode"`
61129
61130	// Thing indexing mode. Valid values are:
61131	//
61132	//    * REGISTRY – Your thing index contains registry data only.
61133	//
61134	//    * REGISTRY_AND_SHADOW - Your thing index contains registry and shadow
61135	//    data.
61136	//
61137	//    * OFF - Thing indexing is disabled.
61138	//
61139	// ThingIndexingMode is a required field
61140	ThingIndexingMode *string `locationName:"thingIndexingMode" type:"string" required:"true" enum:"ThingIndexingMode"`
61141}
61142
61143// String returns the string representation.
61144//
61145// API parameter values that are decorated as "sensitive" in the API will not
61146// be included in the string output. The member name will be present, but the
61147// value will be replaced with "sensitive".
61148func (s ThingIndexingConfiguration) String() string {
61149	return awsutil.Prettify(s)
61150}
61151
61152// GoString returns the string representation.
61153//
61154// API parameter values that are decorated as "sensitive" in the API will not
61155// be included in the string output. The member name will be present, but the
61156// value will be replaced with "sensitive".
61157func (s ThingIndexingConfiguration) GoString() string {
61158	return s.String()
61159}
61160
61161// Validate inspects the fields of the type to determine if they are valid.
61162func (s *ThingIndexingConfiguration) Validate() error {
61163	invalidParams := request.ErrInvalidParams{Context: "ThingIndexingConfiguration"}
61164	if s.ThingIndexingMode == nil {
61165		invalidParams.Add(request.NewErrParamRequired("ThingIndexingMode"))
61166	}
61167
61168	if invalidParams.Len() > 0 {
61169		return invalidParams
61170	}
61171	return nil
61172}
61173
61174// SetCustomFields sets the CustomFields field's value.
61175func (s *ThingIndexingConfiguration) SetCustomFields(v []*Field) *ThingIndexingConfiguration {
61176	s.CustomFields = v
61177	return s
61178}
61179
61180// SetManagedFields sets the ManagedFields field's value.
61181func (s *ThingIndexingConfiguration) SetManagedFields(v []*Field) *ThingIndexingConfiguration {
61182	s.ManagedFields = v
61183	return s
61184}
61185
61186// SetThingConnectivityIndexingMode sets the ThingConnectivityIndexingMode field's value.
61187func (s *ThingIndexingConfiguration) SetThingConnectivityIndexingMode(v string) *ThingIndexingConfiguration {
61188	s.ThingConnectivityIndexingMode = &v
61189	return s
61190}
61191
61192// SetThingIndexingMode sets the ThingIndexingMode field's value.
61193func (s *ThingIndexingConfiguration) SetThingIndexingMode(v string) *ThingIndexingConfiguration {
61194	s.ThingIndexingMode = &v
61195	return s
61196}
61197
61198// The definition of the thing type, including thing type name and description.
61199type ThingTypeDefinition struct {
61200	_ struct{} `type:"structure"`
61201
61202	// The thing type ARN.
61203	ThingTypeArn *string `locationName:"thingTypeArn" type:"string"`
61204
61205	// The ThingTypeMetadata contains additional information about the thing type
61206	// including: creation date and time, a value indicating whether the thing type
61207	// is deprecated, and a date and time when it was deprecated.
61208	ThingTypeMetadata *ThingTypeMetadata `locationName:"thingTypeMetadata" type:"structure"`
61209
61210	// The name of the thing type.
61211	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
61212
61213	// The ThingTypeProperties for the thing type.
61214	ThingTypeProperties *ThingTypeProperties `locationName:"thingTypeProperties" type:"structure"`
61215}
61216
61217// String returns the string representation.
61218//
61219// API parameter values that are decorated as "sensitive" in the API will not
61220// be included in the string output. The member name will be present, but the
61221// value will be replaced with "sensitive".
61222func (s ThingTypeDefinition) String() string {
61223	return awsutil.Prettify(s)
61224}
61225
61226// GoString returns the string representation.
61227//
61228// API parameter values that are decorated as "sensitive" in the API will not
61229// be included in the string output. The member name will be present, but the
61230// value will be replaced with "sensitive".
61231func (s ThingTypeDefinition) GoString() string {
61232	return s.String()
61233}
61234
61235// SetThingTypeArn sets the ThingTypeArn field's value.
61236func (s *ThingTypeDefinition) SetThingTypeArn(v string) *ThingTypeDefinition {
61237	s.ThingTypeArn = &v
61238	return s
61239}
61240
61241// SetThingTypeMetadata sets the ThingTypeMetadata field's value.
61242func (s *ThingTypeDefinition) SetThingTypeMetadata(v *ThingTypeMetadata) *ThingTypeDefinition {
61243	s.ThingTypeMetadata = v
61244	return s
61245}
61246
61247// SetThingTypeName sets the ThingTypeName field's value.
61248func (s *ThingTypeDefinition) SetThingTypeName(v string) *ThingTypeDefinition {
61249	s.ThingTypeName = &v
61250	return s
61251}
61252
61253// SetThingTypeProperties sets the ThingTypeProperties field's value.
61254func (s *ThingTypeDefinition) SetThingTypeProperties(v *ThingTypeProperties) *ThingTypeDefinition {
61255	s.ThingTypeProperties = v
61256	return s
61257}
61258
61259// The ThingTypeMetadata contains additional information about the thing type
61260// including: creation date and time, a value indicating whether the thing type
61261// is deprecated, and a date and time when time was deprecated.
61262type ThingTypeMetadata struct {
61263	_ struct{} `type:"structure"`
61264
61265	// The date and time when the thing type was created.
61266	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
61267
61268	// Whether the thing type is deprecated. If true, no new things could be associated
61269	// with this type.
61270	Deprecated *bool `locationName:"deprecated" type:"boolean"`
61271
61272	// The date and time when the thing type was deprecated.
61273	DeprecationDate *time.Time `locationName:"deprecationDate" type:"timestamp"`
61274}
61275
61276// String returns the string representation.
61277//
61278// API parameter values that are decorated as "sensitive" in the API will not
61279// be included in the string output. The member name will be present, but the
61280// value will be replaced with "sensitive".
61281func (s ThingTypeMetadata) String() string {
61282	return awsutil.Prettify(s)
61283}
61284
61285// GoString returns the string representation.
61286//
61287// API parameter values that are decorated as "sensitive" in the API will not
61288// be included in the string output. The member name will be present, but the
61289// value will be replaced with "sensitive".
61290func (s ThingTypeMetadata) GoString() string {
61291	return s.String()
61292}
61293
61294// SetCreationDate sets the CreationDate field's value.
61295func (s *ThingTypeMetadata) SetCreationDate(v time.Time) *ThingTypeMetadata {
61296	s.CreationDate = &v
61297	return s
61298}
61299
61300// SetDeprecated sets the Deprecated field's value.
61301func (s *ThingTypeMetadata) SetDeprecated(v bool) *ThingTypeMetadata {
61302	s.Deprecated = &v
61303	return s
61304}
61305
61306// SetDeprecationDate sets the DeprecationDate field's value.
61307func (s *ThingTypeMetadata) SetDeprecationDate(v time.Time) *ThingTypeMetadata {
61308	s.DeprecationDate = &v
61309	return s
61310}
61311
61312// The ThingTypeProperties contains information about the thing type including:
61313// a thing type description, and a list of searchable thing attribute names.
61314type ThingTypeProperties struct {
61315	_ struct{} `type:"structure"`
61316
61317	// A list of searchable thing attribute names.
61318	SearchableAttributes []*string `locationName:"searchableAttributes" type:"list"`
61319
61320	// The description of the thing type.
61321	ThingTypeDescription *string `locationName:"thingTypeDescription" type:"string"`
61322}
61323
61324// String returns the string representation.
61325//
61326// API parameter values that are decorated as "sensitive" in the API will not
61327// be included in the string output. The member name will be present, but the
61328// value will be replaced with "sensitive".
61329func (s ThingTypeProperties) String() string {
61330	return awsutil.Prettify(s)
61331}
61332
61333// GoString returns the string representation.
61334//
61335// API parameter values that are decorated as "sensitive" in the API will not
61336// be included in the string output. The member name will be present, but the
61337// value will be replaced with "sensitive".
61338func (s ThingTypeProperties) GoString() string {
61339	return s.String()
61340}
61341
61342// SetSearchableAttributes sets the SearchableAttributes field's value.
61343func (s *ThingTypeProperties) SetSearchableAttributes(v []*string) *ThingTypeProperties {
61344	s.SearchableAttributes = v
61345	return s
61346}
61347
61348// SetThingTypeDescription sets the ThingTypeDescription field's value.
61349func (s *ThingTypeProperties) SetThingTypeDescription(v string) *ThingTypeProperties {
61350	s.ThingTypeDescription = &v
61351	return s
61352}
61353
61354// The rate exceeds the limit.
61355type ThrottlingException struct {
61356	_            struct{}                  `type:"structure"`
61357	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
61358
61359	// The message for the exception.
61360	Message_ *string `locationName:"message" type:"string"`
61361}
61362
61363// String returns the string representation.
61364//
61365// API parameter values that are decorated as "sensitive" in the API will not
61366// be included in the string output. The member name will be present, but the
61367// value will be replaced with "sensitive".
61368func (s ThrottlingException) String() string {
61369	return awsutil.Prettify(s)
61370}
61371
61372// GoString returns the string representation.
61373//
61374// API parameter values that are decorated as "sensitive" in the API will not
61375// be included in the string output. The member name will be present, but the
61376// value will be replaced with "sensitive".
61377func (s ThrottlingException) GoString() string {
61378	return s.String()
61379}
61380
61381func newErrorThrottlingException(v protocol.ResponseMetadata) error {
61382	return &ThrottlingException{
61383		RespMetadata: v,
61384	}
61385}
61386
61387// Code returns the exception type name.
61388func (s *ThrottlingException) Code() string {
61389	return "ThrottlingException"
61390}
61391
61392// Message returns the exception's message.
61393func (s *ThrottlingException) Message() string {
61394	if s.Message_ != nil {
61395		return *s.Message_
61396	}
61397	return ""
61398}
61399
61400// OrigErr always returns nil, satisfies awserr.Error interface.
61401func (s *ThrottlingException) OrigErr() error {
61402	return nil
61403}
61404
61405func (s *ThrottlingException) Error() string {
61406	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
61407}
61408
61409// Status code returns the HTTP status code for the request's response error.
61410func (s *ThrottlingException) StatusCode() int {
61411	return s.RespMetadata.StatusCode
61412}
61413
61414// RequestID returns the service's response RequestID for request.
61415func (s *ThrottlingException) RequestID() string {
61416	return s.RespMetadata.RequestID
61417}
61418
61419// Specifies the amount of time each device has to finish its execution of the
61420// job. A timer is started when the job execution status is set to IN_PROGRESS.
61421// If the job execution status is not set to another terminal state before the
61422// timer expires, it will be automatically set to TIMED_OUT.
61423type TimeoutConfig struct {
61424	_ struct{} `type:"structure"`
61425
61426	// Specifies the amount of time, in minutes, this device has to finish execution
61427	// of this job. The timeout interval can be anywhere between 1 minute and 7
61428	// days (1 to 10080 minutes). The in progress timer can't be updated and will
61429	// apply to all job executions for the job. Whenever a job execution remains
61430	// in the IN_PROGRESS status for longer than this interval, the job execution
61431	// will fail and switch to the terminal TIMED_OUT status.
61432	InProgressTimeoutInMinutes *int64 `locationName:"inProgressTimeoutInMinutes" type:"long"`
61433}
61434
61435// String returns the string representation.
61436//
61437// API parameter values that are decorated as "sensitive" in the API will not
61438// be included in the string output. The member name will be present, but the
61439// value will be replaced with "sensitive".
61440func (s TimeoutConfig) String() string {
61441	return awsutil.Prettify(s)
61442}
61443
61444// GoString returns the string representation.
61445//
61446// API parameter values that are decorated as "sensitive" in the API will not
61447// be included in the string output. The member name will be present, but the
61448// value will be replaced with "sensitive".
61449func (s TimeoutConfig) GoString() string {
61450	return s.String()
61451}
61452
61453// SetInProgressTimeoutInMinutes sets the InProgressTimeoutInMinutes field's value.
61454func (s *TimeoutConfig) SetInProgressTimeoutInMinutes(v int64) *TimeoutConfig {
61455	s.InProgressTimeoutInMinutes = &v
61456	return s
61457}
61458
61459// The Timestream rule action writes attributes (measures) from an MQTT message
61460// into an Amazon Timestream table. For more information, see the Timestream
61461// (https://docs.aws.amazon.com/iot/latest/developerguide/timestream-rule-action.html)
61462// topic rule action documentation.
61463type TimestreamAction struct {
61464	_ struct{} `type:"structure"`
61465
61466	// The name of an Amazon Timestream database.
61467	//
61468	// DatabaseName is a required field
61469	DatabaseName *string `locationName:"databaseName" type:"string" required:"true"`
61470
61471	// Metadata attributes of the time series that are written in each measure record.
61472	//
61473	// Dimensions is a required field
61474	Dimensions []*TimestreamDimension `locationName:"dimensions" min:"1" type:"list" required:"true"`
61475
61476	// The ARN of the role that grants permission to write to the Amazon Timestream
61477	// database table.
61478	//
61479	// RoleArn is a required field
61480	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
61481
61482	// The name of the database table into which to write the measure records.
61483	//
61484	// TableName is a required field
61485	TableName *string `locationName:"tableName" type:"string" required:"true"`
61486
61487	// Specifies an application-defined value to replace the default value assigned
61488	// to the Timestream record's timestamp in the time column.
61489	//
61490	// You can use this property to specify the value and the precision of the Timestream
61491	// record's timestamp. You can specify a value from the message payload or a
61492	// value computed by a substitution template.
61493	//
61494	// If omitted, the topic rule action assigns the timestamp, in milliseconds,
61495	// at the time it processed the rule.
61496	Timestamp *TimestreamTimestamp `locationName:"timestamp" type:"structure"`
61497}
61498
61499// String returns the string representation.
61500//
61501// API parameter values that are decorated as "sensitive" in the API will not
61502// be included in the string output. The member name will be present, but the
61503// value will be replaced with "sensitive".
61504func (s TimestreamAction) String() string {
61505	return awsutil.Prettify(s)
61506}
61507
61508// GoString returns the string representation.
61509//
61510// API parameter values that are decorated as "sensitive" in the API will not
61511// be included in the string output. The member name will be present, but the
61512// value will be replaced with "sensitive".
61513func (s TimestreamAction) GoString() string {
61514	return s.String()
61515}
61516
61517// Validate inspects the fields of the type to determine if they are valid.
61518func (s *TimestreamAction) Validate() error {
61519	invalidParams := request.ErrInvalidParams{Context: "TimestreamAction"}
61520	if s.DatabaseName == nil {
61521		invalidParams.Add(request.NewErrParamRequired("DatabaseName"))
61522	}
61523	if s.Dimensions == nil {
61524		invalidParams.Add(request.NewErrParamRequired("Dimensions"))
61525	}
61526	if s.Dimensions != nil && len(s.Dimensions) < 1 {
61527		invalidParams.Add(request.NewErrParamMinLen("Dimensions", 1))
61528	}
61529	if s.RoleArn == nil {
61530		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
61531	}
61532	if s.TableName == nil {
61533		invalidParams.Add(request.NewErrParamRequired("TableName"))
61534	}
61535	if s.Dimensions != nil {
61536		for i, v := range s.Dimensions {
61537			if v == nil {
61538				continue
61539			}
61540			if err := v.Validate(); err != nil {
61541				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Dimensions", i), err.(request.ErrInvalidParams))
61542			}
61543		}
61544	}
61545	if s.Timestamp != nil {
61546		if err := s.Timestamp.Validate(); err != nil {
61547			invalidParams.AddNested("Timestamp", err.(request.ErrInvalidParams))
61548		}
61549	}
61550
61551	if invalidParams.Len() > 0 {
61552		return invalidParams
61553	}
61554	return nil
61555}
61556
61557// SetDatabaseName sets the DatabaseName field's value.
61558func (s *TimestreamAction) SetDatabaseName(v string) *TimestreamAction {
61559	s.DatabaseName = &v
61560	return s
61561}
61562
61563// SetDimensions sets the Dimensions field's value.
61564func (s *TimestreamAction) SetDimensions(v []*TimestreamDimension) *TimestreamAction {
61565	s.Dimensions = v
61566	return s
61567}
61568
61569// SetRoleArn sets the RoleArn field's value.
61570func (s *TimestreamAction) SetRoleArn(v string) *TimestreamAction {
61571	s.RoleArn = &v
61572	return s
61573}
61574
61575// SetTableName sets the TableName field's value.
61576func (s *TimestreamAction) SetTableName(v string) *TimestreamAction {
61577	s.TableName = &v
61578	return s
61579}
61580
61581// SetTimestamp sets the Timestamp field's value.
61582func (s *TimestreamAction) SetTimestamp(v *TimestreamTimestamp) *TimestreamAction {
61583	s.Timestamp = v
61584	return s
61585}
61586
61587// Metadata attributes of the time series that are written in each measure record.
61588type TimestreamDimension struct {
61589	_ struct{} `type:"structure"`
61590
61591	// The metadata dimension name. This is the name of the column in the Amazon
61592	// Timestream database table record.
61593	//
61594	// Dimensions cannot be named: measure_name, measure_value, or time. These names
61595	// are reserved. Dimension names cannot start with ts_ or measure_value and
61596	// they cannot contain the colon (:) character.
61597	//
61598	// Name is a required field
61599	Name *string `locationName:"name" type:"string" required:"true"`
61600
61601	// The value to write in this column of the database record.
61602	//
61603	// Value is a required field
61604	Value *string `locationName:"value" type:"string" required:"true"`
61605}
61606
61607// String returns the string representation.
61608//
61609// API parameter values that are decorated as "sensitive" in the API will not
61610// be included in the string output. The member name will be present, but the
61611// value will be replaced with "sensitive".
61612func (s TimestreamDimension) String() string {
61613	return awsutil.Prettify(s)
61614}
61615
61616// GoString returns the string representation.
61617//
61618// API parameter values that are decorated as "sensitive" in the API will not
61619// be included in the string output. The member name will be present, but the
61620// value will be replaced with "sensitive".
61621func (s TimestreamDimension) GoString() string {
61622	return s.String()
61623}
61624
61625// Validate inspects the fields of the type to determine if they are valid.
61626func (s *TimestreamDimension) Validate() error {
61627	invalidParams := request.ErrInvalidParams{Context: "TimestreamDimension"}
61628	if s.Name == nil {
61629		invalidParams.Add(request.NewErrParamRequired("Name"))
61630	}
61631	if s.Value == nil {
61632		invalidParams.Add(request.NewErrParamRequired("Value"))
61633	}
61634
61635	if invalidParams.Len() > 0 {
61636		return invalidParams
61637	}
61638	return nil
61639}
61640
61641// SetName sets the Name field's value.
61642func (s *TimestreamDimension) SetName(v string) *TimestreamDimension {
61643	s.Name = &v
61644	return s
61645}
61646
61647// SetValue sets the Value field's value.
61648func (s *TimestreamDimension) SetValue(v string) *TimestreamDimension {
61649	s.Value = &v
61650	return s
61651}
61652
61653// Describes how to interpret an application-defined timestamp value from an
61654// MQTT message payload and the precision of that value.
61655type TimestreamTimestamp struct {
61656	_ struct{} `type:"structure"`
61657
61658	// The precision of the timestamp value that results from the expression described
61659	// in value.
61660	//
61661	// Valid values: SECONDS | MILLISECONDS | MICROSECONDS | NANOSECONDS. The default
61662	// is MILLISECONDS.
61663	//
61664	// Unit is a required field
61665	Unit *string `locationName:"unit" type:"string" required:"true"`
61666
61667	// An expression that returns a long epoch time value.
61668	//
61669	// Value is a required field
61670	Value *string `locationName:"value" type:"string" required:"true"`
61671}
61672
61673// String returns the string representation.
61674//
61675// API parameter values that are decorated as "sensitive" in the API will not
61676// be included in the string output. The member name will be present, but the
61677// value will be replaced with "sensitive".
61678func (s TimestreamTimestamp) String() string {
61679	return awsutil.Prettify(s)
61680}
61681
61682// GoString returns the string representation.
61683//
61684// API parameter values that are decorated as "sensitive" in the API will not
61685// be included in the string output. The member name will be present, but the
61686// value will be replaced with "sensitive".
61687func (s TimestreamTimestamp) GoString() string {
61688	return s.String()
61689}
61690
61691// Validate inspects the fields of the type to determine if they are valid.
61692func (s *TimestreamTimestamp) Validate() error {
61693	invalidParams := request.ErrInvalidParams{Context: "TimestreamTimestamp"}
61694	if s.Unit == nil {
61695		invalidParams.Add(request.NewErrParamRequired("Unit"))
61696	}
61697	if s.Value == nil {
61698		invalidParams.Add(request.NewErrParamRequired("Value"))
61699	}
61700
61701	if invalidParams.Len() > 0 {
61702		return invalidParams
61703	}
61704	return nil
61705}
61706
61707// SetUnit sets the Unit field's value.
61708func (s *TimestreamTimestamp) SetUnit(v string) *TimestreamTimestamp {
61709	s.Unit = &v
61710	return s
61711}
61712
61713// SetValue sets the Value field's value.
61714func (s *TimestreamTimestamp) SetValue(v string) *TimestreamTimestamp {
61715	s.Value = &v
61716	return s
61717}
61718
61719// Specifies the TLS context to use for the test authorizer request.
61720type TlsContext struct {
61721	_ struct{} `type:"structure"`
61722
61723	// The value of the serverName key in a TLS authorization request.
61724	ServerName *string `locationName:"serverName" min:"1" type:"string"`
61725}
61726
61727// String returns the string representation.
61728//
61729// API parameter values that are decorated as "sensitive" in the API will not
61730// be included in the string output. The member name will be present, but the
61731// value will be replaced with "sensitive".
61732func (s TlsContext) String() string {
61733	return awsutil.Prettify(s)
61734}
61735
61736// GoString returns the string representation.
61737//
61738// API parameter values that are decorated as "sensitive" in the API will not
61739// be included in the string output. The member name will be present, but the
61740// value will be replaced with "sensitive".
61741func (s TlsContext) GoString() string {
61742	return s.String()
61743}
61744
61745// Validate inspects the fields of the type to determine if they are valid.
61746func (s *TlsContext) Validate() error {
61747	invalidParams := request.ErrInvalidParams{Context: "TlsContext"}
61748	if s.ServerName != nil && len(*s.ServerName) < 1 {
61749		invalidParams.Add(request.NewErrParamMinLen("ServerName", 1))
61750	}
61751
61752	if invalidParams.Len() > 0 {
61753		return invalidParams
61754	}
61755	return nil
61756}
61757
61758// SetServerName sets the ServerName field's value.
61759func (s *TlsContext) SetServerName(v string) *TlsContext {
61760	s.ServerName = &v
61761	return s
61762}
61763
61764// Describes a rule.
61765type TopicRule struct {
61766	_ struct{} `type:"structure"`
61767
61768	// The actions associated with the rule.
61769	Actions []*Action `locationName:"actions" type:"list"`
61770
61771	// The version of the SQL rules engine to use when evaluating the rule.
61772	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
61773
61774	// The date and time the rule was created.
61775	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
61776
61777	// The description of the rule.
61778	Description *string `locationName:"description" type:"string"`
61779
61780	// The action to perform when an error occurs.
61781	ErrorAction *Action `locationName:"errorAction" type:"structure"`
61782
61783	// Specifies whether the rule is disabled.
61784	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
61785
61786	// The name of the rule.
61787	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
61788
61789	// The SQL statement used to query the topic. When using a SQL query with multiple
61790	// lines, be sure to escape the newline characters.
61791	Sql *string `locationName:"sql" type:"string"`
61792}
61793
61794// String returns the string representation.
61795//
61796// API parameter values that are decorated as "sensitive" in the API will not
61797// be included in the string output. The member name will be present, but the
61798// value will be replaced with "sensitive".
61799func (s TopicRule) String() string {
61800	return awsutil.Prettify(s)
61801}
61802
61803// GoString returns the string representation.
61804//
61805// API parameter values that are decorated as "sensitive" in the API will not
61806// be included in the string output. The member name will be present, but the
61807// value will be replaced with "sensitive".
61808func (s TopicRule) GoString() string {
61809	return s.String()
61810}
61811
61812// SetActions sets the Actions field's value.
61813func (s *TopicRule) SetActions(v []*Action) *TopicRule {
61814	s.Actions = v
61815	return s
61816}
61817
61818// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
61819func (s *TopicRule) SetAwsIotSqlVersion(v string) *TopicRule {
61820	s.AwsIotSqlVersion = &v
61821	return s
61822}
61823
61824// SetCreatedAt sets the CreatedAt field's value.
61825func (s *TopicRule) SetCreatedAt(v time.Time) *TopicRule {
61826	s.CreatedAt = &v
61827	return s
61828}
61829
61830// SetDescription sets the Description field's value.
61831func (s *TopicRule) SetDescription(v string) *TopicRule {
61832	s.Description = &v
61833	return s
61834}
61835
61836// SetErrorAction sets the ErrorAction field's value.
61837func (s *TopicRule) SetErrorAction(v *Action) *TopicRule {
61838	s.ErrorAction = v
61839	return s
61840}
61841
61842// SetRuleDisabled sets the RuleDisabled field's value.
61843func (s *TopicRule) SetRuleDisabled(v bool) *TopicRule {
61844	s.RuleDisabled = &v
61845	return s
61846}
61847
61848// SetRuleName sets the RuleName field's value.
61849func (s *TopicRule) SetRuleName(v string) *TopicRule {
61850	s.RuleName = &v
61851	return s
61852}
61853
61854// SetSql sets the Sql field's value.
61855func (s *TopicRule) SetSql(v string) *TopicRule {
61856	s.Sql = &v
61857	return s
61858}
61859
61860// A topic rule destination.
61861type TopicRuleDestination struct {
61862	_ struct{} `type:"structure"`
61863
61864	// The topic rule destination URL.
61865	Arn *string `locationName:"arn" type:"string"`
61866
61867	// The date and time when the topic rule destination was created.
61868	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
61869
61870	// Properties of the HTTP URL.
61871	HttpUrlProperties *HttpUrlDestinationProperties `locationName:"httpUrlProperties" type:"structure"`
61872
61873	// The date and time when the topic rule destination was last updated.
61874	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
61875
61876	// The status of the topic rule destination. Valid values are:
61877	//
61878	// IN_PROGRESS
61879	//
61880	// A topic rule destination was created but has not been confirmed. You can
61881	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
61882	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
61883	// to your confirmation endpoint.
61884	//
61885	// ENABLED
61886	//
61887	// Confirmation was completed, and traffic to this destination is allowed. You
61888	// can set status to DISABLED by calling UpdateTopicRuleDestination.
61889	//
61890	// DISABLED
61891	//
61892	// Confirmation was completed, and traffic to this destination is not allowed.
61893	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
61894	//
61895	// ERROR
61896	//
61897	// Confirmation could not be completed, for example if the confirmation timed
61898	// out. You can call GetTopicRuleDestination for details about the error. You
61899	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
61900	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
61901	// to your confirmation endpoint.
61902	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
61903
61904	// Additional details or reason why the topic rule destination is in the current
61905	// status.
61906	StatusReason *string `locationName:"statusReason" type:"string"`
61907
61908	// Properties of the virtual private cloud (VPC) connection.
61909	VpcProperties *VpcDestinationProperties `locationName:"vpcProperties" type:"structure"`
61910}
61911
61912// String returns the string representation.
61913//
61914// API parameter values that are decorated as "sensitive" in the API will not
61915// be included in the string output. The member name will be present, but the
61916// value will be replaced with "sensitive".
61917func (s TopicRuleDestination) String() string {
61918	return awsutil.Prettify(s)
61919}
61920
61921// GoString returns the string representation.
61922//
61923// API parameter values that are decorated as "sensitive" in the API will not
61924// be included in the string output. The member name will be present, but the
61925// value will be replaced with "sensitive".
61926func (s TopicRuleDestination) GoString() string {
61927	return s.String()
61928}
61929
61930// SetArn sets the Arn field's value.
61931func (s *TopicRuleDestination) SetArn(v string) *TopicRuleDestination {
61932	s.Arn = &v
61933	return s
61934}
61935
61936// SetCreatedAt sets the CreatedAt field's value.
61937func (s *TopicRuleDestination) SetCreatedAt(v time.Time) *TopicRuleDestination {
61938	s.CreatedAt = &v
61939	return s
61940}
61941
61942// SetHttpUrlProperties sets the HttpUrlProperties field's value.
61943func (s *TopicRuleDestination) SetHttpUrlProperties(v *HttpUrlDestinationProperties) *TopicRuleDestination {
61944	s.HttpUrlProperties = v
61945	return s
61946}
61947
61948// SetLastUpdatedAt sets the LastUpdatedAt field's value.
61949func (s *TopicRuleDestination) SetLastUpdatedAt(v time.Time) *TopicRuleDestination {
61950	s.LastUpdatedAt = &v
61951	return s
61952}
61953
61954// SetStatus sets the Status field's value.
61955func (s *TopicRuleDestination) SetStatus(v string) *TopicRuleDestination {
61956	s.Status = &v
61957	return s
61958}
61959
61960// SetStatusReason sets the StatusReason field's value.
61961func (s *TopicRuleDestination) SetStatusReason(v string) *TopicRuleDestination {
61962	s.StatusReason = &v
61963	return s
61964}
61965
61966// SetVpcProperties sets the VpcProperties field's value.
61967func (s *TopicRuleDestination) SetVpcProperties(v *VpcDestinationProperties) *TopicRuleDestination {
61968	s.VpcProperties = v
61969	return s
61970}
61971
61972// Configuration of the topic rule destination.
61973type TopicRuleDestinationConfiguration struct {
61974	_ struct{} `type:"structure"`
61975
61976	// Configuration of the HTTP URL.
61977	HttpUrlConfiguration *HttpUrlDestinationConfiguration `locationName:"httpUrlConfiguration" type:"structure"`
61978
61979	// Configuration of the virtual private cloud (VPC) connection.
61980	VpcConfiguration *VpcDestinationConfiguration `locationName:"vpcConfiguration" type:"structure"`
61981}
61982
61983// String returns the string representation.
61984//
61985// API parameter values that are decorated as "sensitive" in the API will not
61986// be included in the string output. The member name will be present, but the
61987// value will be replaced with "sensitive".
61988func (s TopicRuleDestinationConfiguration) String() string {
61989	return awsutil.Prettify(s)
61990}
61991
61992// GoString returns the string representation.
61993//
61994// API parameter values that are decorated as "sensitive" in the API will not
61995// be included in the string output. The member name will be present, but the
61996// value will be replaced with "sensitive".
61997func (s TopicRuleDestinationConfiguration) GoString() string {
61998	return s.String()
61999}
62000
62001// Validate inspects the fields of the type to determine if they are valid.
62002func (s *TopicRuleDestinationConfiguration) Validate() error {
62003	invalidParams := request.ErrInvalidParams{Context: "TopicRuleDestinationConfiguration"}
62004	if s.HttpUrlConfiguration != nil {
62005		if err := s.HttpUrlConfiguration.Validate(); err != nil {
62006			invalidParams.AddNested("HttpUrlConfiguration", err.(request.ErrInvalidParams))
62007		}
62008	}
62009	if s.VpcConfiguration != nil {
62010		if err := s.VpcConfiguration.Validate(); err != nil {
62011			invalidParams.AddNested("VpcConfiguration", err.(request.ErrInvalidParams))
62012		}
62013	}
62014
62015	if invalidParams.Len() > 0 {
62016		return invalidParams
62017	}
62018	return nil
62019}
62020
62021// SetHttpUrlConfiguration sets the HttpUrlConfiguration field's value.
62022func (s *TopicRuleDestinationConfiguration) SetHttpUrlConfiguration(v *HttpUrlDestinationConfiguration) *TopicRuleDestinationConfiguration {
62023	s.HttpUrlConfiguration = v
62024	return s
62025}
62026
62027// SetVpcConfiguration sets the VpcConfiguration field's value.
62028func (s *TopicRuleDestinationConfiguration) SetVpcConfiguration(v *VpcDestinationConfiguration) *TopicRuleDestinationConfiguration {
62029	s.VpcConfiguration = v
62030	return s
62031}
62032
62033// Information about the topic rule destination.
62034type TopicRuleDestinationSummary struct {
62035	_ struct{} `type:"structure"`
62036
62037	// The topic rule destination ARN.
62038	Arn *string `locationName:"arn" type:"string"`
62039
62040	// The date and time when the topic rule destination was created.
62041	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
62042
62043	// Information about the HTTP URL.
62044	HttpUrlSummary *HttpUrlDestinationSummary `locationName:"httpUrlSummary" type:"structure"`
62045
62046	// The date and time when the topic rule destination was last updated.
62047	LastUpdatedAt *time.Time `locationName:"lastUpdatedAt" type:"timestamp"`
62048
62049	// The status of the topic rule destination. Valid values are:
62050	//
62051	// IN_PROGRESS
62052	//
62053	// A topic rule destination was created but has not been confirmed. You can
62054	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
62055	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
62056	// to your confirmation endpoint.
62057	//
62058	// ENABLED
62059	//
62060	// Confirmation was completed, and traffic to this destination is allowed. You
62061	// can set status to DISABLED by calling UpdateTopicRuleDestination.
62062	//
62063	// DISABLED
62064	//
62065	// Confirmation was completed, and traffic to this destination is not allowed.
62066	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
62067	//
62068	// ERROR
62069	//
62070	// Confirmation could not be completed, for example if the confirmation timed
62071	// out. You can call GetTopicRuleDestination for details about the error. You
62072	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
62073	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
62074	// to your confirmation endpoint.
62075	Status *string `locationName:"status" type:"string" enum:"TopicRuleDestinationStatus"`
62076
62077	// The reason the topic rule destination is in the current status.
62078	StatusReason *string `locationName:"statusReason" type:"string"`
62079
62080	// Information about the virtual private cloud (VPC) connection.
62081	VpcDestinationSummary *VpcDestinationSummary `locationName:"vpcDestinationSummary" type:"structure"`
62082}
62083
62084// String returns the string representation.
62085//
62086// API parameter values that are decorated as "sensitive" in the API will not
62087// be included in the string output. The member name will be present, but the
62088// value will be replaced with "sensitive".
62089func (s TopicRuleDestinationSummary) String() string {
62090	return awsutil.Prettify(s)
62091}
62092
62093// GoString returns the string representation.
62094//
62095// API parameter values that are decorated as "sensitive" in the API will not
62096// be included in the string output. The member name will be present, but the
62097// value will be replaced with "sensitive".
62098func (s TopicRuleDestinationSummary) GoString() string {
62099	return s.String()
62100}
62101
62102// SetArn sets the Arn field's value.
62103func (s *TopicRuleDestinationSummary) SetArn(v string) *TopicRuleDestinationSummary {
62104	s.Arn = &v
62105	return s
62106}
62107
62108// SetCreatedAt sets the CreatedAt field's value.
62109func (s *TopicRuleDestinationSummary) SetCreatedAt(v time.Time) *TopicRuleDestinationSummary {
62110	s.CreatedAt = &v
62111	return s
62112}
62113
62114// SetHttpUrlSummary sets the HttpUrlSummary field's value.
62115func (s *TopicRuleDestinationSummary) SetHttpUrlSummary(v *HttpUrlDestinationSummary) *TopicRuleDestinationSummary {
62116	s.HttpUrlSummary = v
62117	return s
62118}
62119
62120// SetLastUpdatedAt sets the LastUpdatedAt field's value.
62121func (s *TopicRuleDestinationSummary) SetLastUpdatedAt(v time.Time) *TopicRuleDestinationSummary {
62122	s.LastUpdatedAt = &v
62123	return s
62124}
62125
62126// SetStatus sets the Status field's value.
62127func (s *TopicRuleDestinationSummary) SetStatus(v string) *TopicRuleDestinationSummary {
62128	s.Status = &v
62129	return s
62130}
62131
62132// SetStatusReason sets the StatusReason field's value.
62133func (s *TopicRuleDestinationSummary) SetStatusReason(v string) *TopicRuleDestinationSummary {
62134	s.StatusReason = &v
62135	return s
62136}
62137
62138// SetVpcDestinationSummary sets the VpcDestinationSummary field's value.
62139func (s *TopicRuleDestinationSummary) SetVpcDestinationSummary(v *VpcDestinationSummary) *TopicRuleDestinationSummary {
62140	s.VpcDestinationSummary = v
62141	return s
62142}
62143
62144// Describes a rule.
62145type TopicRuleListItem struct {
62146	_ struct{} `type:"structure"`
62147
62148	// The date and time the rule was created.
62149	CreatedAt *time.Time `locationName:"createdAt" type:"timestamp"`
62150
62151	// The rule ARN.
62152	RuleArn *string `locationName:"ruleArn" type:"string"`
62153
62154	// Specifies whether the rule is disabled.
62155	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
62156
62157	// The name of the rule.
62158	RuleName *string `locationName:"ruleName" min:"1" type:"string"`
62159
62160	// The pattern for the topic names that apply.
62161	TopicPattern *string `locationName:"topicPattern" type:"string"`
62162}
62163
62164// String returns the string representation.
62165//
62166// API parameter values that are decorated as "sensitive" in the API will not
62167// be included in the string output. The member name will be present, but the
62168// value will be replaced with "sensitive".
62169func (s TopicRuleListItem) String() string {
62170	return awsutil.Prettify(s)
62171}
62172
62173// GoString returns the string representation.
62174//
62175// API parameter values that are decorated as "sensitive" in the API will not
62176// be included in the string output. The member name will be present, but the
62177// value will be replaced with "sensitive".
62178func (s TopicRuleListItem) GoString() string {
62179	return s.String()
62180}
62181
62182// SetCreatedAt sets the CreatedAt field's value.
62183func (s *TopicRuleListItem) SetCreatedAt(v time.Time) *TopicRuleListItem {
62184	s.CreatedAt = &v
62185	return s
62186}
62187
62188// SetRuleArn sets the RuleArn field's value.
62189func (s *TopicRuleListItem) SetRuleArn(v string) *TopicRuleListItem {
62190	s.RuleArn = &v
62191	return s
62192}
62193
62194// SetRuleDisabled sets the RuleDisabled field's value.
62195func (s *TopicRuleListItem) SetRuleDisabled(v bool) *TopicRuleListItem {
62196	s.RuleDisabled = &v
62197	return s
62198}
62199
62200// SetRuleName sets the RuleName field's value.
62201func (s *TopicRuleListItem) SetRuleName(v string) *TopicRuleListItem {
62202	s.RuleName = &v
62203	return s
62204}
62205
62206// SetTopicPattern sets the TopicPattern field's value.
62207func (s *TopicRuleListItem) SetTopicPattern(v string) *TopicRuleListItem {
62208	s.TopicPattern = &v
62209	return s
62210}
62211
62212// Describes a rule.
62213type TopicRulePayload struct {
62214	_ struct{} `type:"structure"`
62215
62216	// The actions associated with the rule.
62217	//
62218	// Actions is a required field
62219	Actions []*Action `locationName:"actions" type:"list" required:"true"`
62220
62221	// The version of the SQL rules engine to use when evaluating the rule.
62222	AwsIotSqlVersion *string `locationName:"awsIotSqlVersion" type:"string"`
62223
62224	// The description of the rule.
62225	Description *string `locationName:"description" type:"string"`
62226
62227	// The action to take when an error occurs.
62228	ErrorAction *Action `locationName:"errorAction" type:"structure"`
62229
62230	// Specifies whether the rule is disabled.
62231	RuleDisabled *bool `locationName:"ruleDisabled" type:"boolean"`
62232
62233	// The SQL statement used to query the topic. For more information, see IoT
62234	// SQL Reference (https://docs.aws.amazon.com/iot/latest/developerguide/iot-sql-reference.html)
62235	// in the IoT Developer Guide.
62236	//
62237	// Sql is a required field
62238	Sql *string `locationName:"sql" type:"string" required:"true"`
62239}
62240
62241// String returns the string representation.
62242//
62243// API parameter values that are decorated as "sensitive" in the API will not
62244// be included in the string output. The member name will be present, but the
62245// value will be replaced with "sensitive".
62246func (s TopicRulePayload) String() string {
62247	return awsutil.Prettify(s)
62248}
62249
62250// GoString returns the string representation.
62251//
62252// API parameter values that are decorated as "sensitive" in the API will not
62253// be included in the string output. The member name will be present, but the
62254// value will be replaced with "sensitive".
62255func (s TopicRulePayload) GoString() string {
62256	return s.String()
62257}
62258
62259// Validate inspects the fields of the type to determine if they are valid.
62260func (s *TopicRulePayload) Validate() error {
62261	invalidParams := request.ErrInvalidParams{Context: "TopicRulePayload"}
62262	if s.Actions == nil {
62263		invalidParams.Add(request.NewErrParamRequired("Actions"))
62264	}
62265	if s.Sql == nil {
62266		invalidParams.Add(request.NewErrParamRequired("Sql"))
62267	}
62268	if s.Actions != nil {
62269		for i, v := range s.Actions {
62270			if v == nil {
62271				continue
62272			}
62273			if err := v.Validate(); err != nil {
62274				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Actions", i), err.(request.ErrInvalidParams))
62275			}
62276		}
62277	}
62278	if s.ErrorAction != nil {
62279		if err := s.ErrorAction.Validate(); err != nil {
62280			invalidParams.AddNested("ErrorAction", err.(request.ErrInvalidParams))
62281		}
62282	}
62283
62284	if invalidParams.Len() > 0 {
62285		return invalidParams
62286	}
62287	return nil
62288}
62289
62290// SetActions sets the Actions field's value.
62291func (s *TopicRulePayload) SetActions(v []*Action) *TopicRulePayload {
62292	s.Actions = v
62293	return s
62294}
62295
62296// SetAwsIotSqlVersion sets the AwsIotSqlVersion field's value.
62297func (s *TopicRulePayload) SetAwsIotSqlVersion(v string) *TopicRulePayload {
62298	s.AwsIotSqlVersion = &v
62299	return s
62300}
62301
62302// SetDescription sets the Description field's value.
62303func (s *TopicRulePayload) SetDescription(v string) *TopicRulePayload {
62304	s.Description = &v
62305	return s
62306}
62307
62308// SetErrorAction sets the ErrorAction field's value.
62309func (s *TopicRulePayload) SetErrorAction(v *Action) *TopicRulePayload {
62310	s.ErrorAction = v
62311	return s
62312}
62313
62314// SetRuleDisabled sets the RuleDisabled field's value.
62315func (s *TopicRulePayload) SetRuleDisabled(v bool) *TopicRulePayload {
62316	s.RuleDisabled = &v
62317	return s
62318}
62319
62320// SetSql sets the Sql field's value.
62321func (s *TopicRulePayload) SetSql(v string) *TopicRulePayload {
62322	s.Sql = &v
62323	return s
62324}
62325
62326// You can't revert the certificate transfer because the transfer is already
62327// complete.
62328type TransferAlreadyCompletedException struct {
62329	_            struct{}                  `type:"structure"`
62330	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
62331
62332	// The message for the exception.
62333	Message_ *string `locationName:"message" type:"string"`
62334}
62335
62336// String returns the string representation.
62337//
62338// API parameter values that are decorated as "sensitive" in the API will not
62339// be included in the string output. The member name will be present, but the
62340// value will be replaced with "sensitive".
62341func (s TransferAlreadyCompletedException) String() string {
62342	return awsutil.Prettify(s)
62343}
62344
62345// GoString returns the string representation.
62346//
62347// API parameter values that are decorated as "sensitive" in the API will not
62348// be included in the string output. The member name will be present, but the
62349// value will be replaced with "sensitive".
62350func (s TransferAlreadyCompletedException) GoString() string {
62351	return s.String()
62352}
62353
62354func newErrorTransferAlreadyCompletedException(v protocol.ResponseMetadata) error {
62355	return &TransferAlreadyCompletedException{
62356		RespMetadata: v,
62357	}
62358}
62359
62360// Code returns the exception type name.
62361func (s *TransferAlreadyCompletedException) Code() string {
62362	return "TransferAlreadyCompletedException"
62363}
62364
62365// Message returns the exception's message.
62366func (s *TransferAlreadyCompletedException) Message() string {
62367	if s.Message_ != nil {
62368		return *s.Message_
62369	}
62370	return ""
62371}
62372
62373// OrigErr always returns nil, satisfies awserr.Error interface.
62374func (s *TransferAlreadyCompletedException) OrigErr() error {
62375	return nil
62376}
62377
62378func (s *TransferAlreadyCompletedException) Error() string {
62379	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
62380}
62381
62382// Status code returns the HTTP status code for the request's response error.
62383func (s *TransferAlreadyCompletedException) StatusCode() int {
62384	return s.RespMetadata.StatusCode
62385}
62386
62387// RequestID returns the service's response RequestID for request.
62388func (s *TransferAlreadyCompletedException) RequestID() string {
62389	return s.RespMetadata.RequestID
62390}
62391
62392// The input for the TransferCertificate operation.
62393type TransferCertificateInput struct {
62394	_ struct{} `type:"structure"`
62395
62396	// The ID of the certificate. (The last part of the certificate ARN contains
62397	// the certificate ID.)
62398	//
62399	// CertificateId is a required field
62400	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
62401
62402	// The Amazon Web Services account.
62403	//
62404	// TargetAwsAccount is a required field
62405	TargetAwsAccount *string `location:"querystring" locationName:"targetAwsAccount" min:"12" type:"string" required:"true"`
62406
62407	// The transfer message.
62408	TransferMessage *string `locationName:"transferMessage" type:"string"`
62409}
62410
62411// String returns the string representation.
62412//
62413// API parameter values that are decorated as "sensitive" in the API will not
62414// be included in the string output. The member name will be present, but the
62415// value will be replaced with "sensitive".
62416func (s TransferCertificateInput) String() string {
62417	return awsutil.Prettify(s)
62418}
62419
62420// GoString returns the string representation.
62421//
62422// API parameter values that are decorated as "sensitive" in the API will not
62423// be included in the string output. The member name will be present, but the
62424// value will be replaced with "sensitive".
62425func (s TransferCertificateInput) GoString() string {
62426	return s.String()
62427}
62428
62429// Validate inspects the fields of the type to determine if they are valid.
62430func (s *TransferCertificateInput) Validate() error {
62431	invalidParams := request.ErrInvalidParams{Context: "TransferCertificateInput"}
62432	if s.CertificateId == nil {
62433		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
62434	}
62435	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
62436		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
62437	}
62438	if s.TargetAwsAccount == nil {
62439		invalidParams.Add(request.NewErrParamRequired("TargetAwsAccount"))
62440	}
62441	if s.TargetAwsAccount != nil && len(*s.TargetAwsAccount) < 12 {
62442		invalidParams.Add(request.NewErrParamMinLen("TargetAwsAccount", 12))
62443	}
62444
62445	if invalidParams.Len() > 0 {
62446		return invalidParams
62447	}
62448	return nil
62449}
62450
62451// SetCertificateId sets the CertificateId field's value.
62452func (s *TransferCertificateInput) SetCertificateId(v string) *TransferCertificateInput {
62453	s.CertificateId = &v
62454	return s
62455}
62456
62457// SetTargetAwsAccount sets the TargetAwsAccount field's value.
62458func (s *TransferCertificateInput) SetTargetAwsAccount(v string) *TransferCertificateInput {
62459	s.TargetAwsAccount = &v
62460	return s
62461}
62462
62463// SetTransferMessage sets the TransferMessage field's value.
62464func (s *TransferCertificateInput) SetTransferMessage(v string) *TransferCertificateInput {
62465	s.TransferMessage = &v
62466	return s
62467}
62468
62469// The output from the TransferCertificate operation.
62470type TransferCertificateOutput struct {
62471	_ struct{} `type:"structure"`
62472
62473	// The ARN of the certificate.
62474	TransferredCertificateArn *string `locationName:"transferredCertificateArn" type:"string"`
62475}
62476
62477// String returns the string representation.
62478//
62479// API parameter values that are decorated as "sensitive" in the API will not
62480// be included in the string output. The member name will be present, but the
62481// value will be replaced with "sensitive".
62482func (s TransferCertificateOutput) String() string {
62483	return awsutil.Prettify(s)
62484}
62485
62486// GoString returns the string representation.
62487//
62488// API parameter values that are decorated as "sensitive" in the API will not
62489// be included in the string output. The member name will be present, but the
62490// value will be replaced with "sensitive".
62491func (s TransferCertificateOutput) GoString() string {
62492	return s.String()
62493}
62494
62495// SetTransferredCertificateArn sets the TransferredCertificateArn field's value.
62496func (s *TransferCertificateOutput) SetTransferredCertificateArn(v string) *TransferCertificateOutput {
62497	s.TransferredCertificateArn = &v
62498	return s
62499}
62500
62501// You can't transfer the certificate because authorization policies are still
62502// attached.
62503type TransferConflictException struct {
62504	_            struct{}                  `type:"structure"`
62505	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
62506
62507	// The message for the exception.
62508	Message_ *string `locationName:"message" type:"string"`
62509}
62510
62511// String returns the string representation.
62512//
62513// API parameter values that are decorated as "sensitive" in the API will not
62514// be included in the string output. The member name will be present, but the
62515// value will be replaced with "sensitive".
62516func (s TransferConflictException) String() string {
62517	return awsutil.Prettify(s)
62518}
62519
62520// GoString returns the string representation.
62521//
62522// API parameter values that are decorated as "sensitive" in the API will not
62523// be included in the string output. The member name will be present, but the
62524// value will be replaced with "sensitive".
62525func (s TransferConflictException) GoString() string {
62526	return s.String()
62527}
62528
62529func newErrorTransferConflictException(v protocol.ResponseMetadata) error {
62530	return &TransferConflictException{
62531		RespMetadata: v,
62532	}
62533}
62534
62535// Code returns the exception type name.
62536func (s *TransferConflictException) Code() string {
62537	return "TransferConflictException"
62538}
62539
62540// Message returns the exception's message.
62541func (s *TransferConflictException) Message() string {
62542	if s.Message_ != nil {
62543		return *s.Message_
62544	}
62545	return ""
62546}
62547
62548// OrigErr always returns nil, satisfies awserr.Error interface.
62549func (s *TransferConflictException) OrigErr() error {
62550	return nil
62551}
62552
62553func (s *TransferConflictException) Error() string {
62554	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
62555}
62556
62557// Status code returns the HTTP status code for the request's response error.
62558func (s *TransferConflictException) StatusCode() int {
62559	return s.RespMetadata.StatusCode
62560}
62561
62562// RequestID returns the service's response RequestID for request.
62563func (s *TransferConflictException) RequestID() string {
62564	return s.RespMetadata.RequestID
62565}
62566
62567// Data used to transfer a certificate to an Amazon Web Services account.
62568type TransferData struct {
62569	_ struct{} `type:"structure"`
62570
62571	// The date the transfer was accepted.
62572	AcceptDate *time.Time `locationName:"acceptDate" type:"timestamp"`
62573
62574	// The date the transfer was rejected.
62575	RejectDate *time.Time `locationName:"rejectDate" type:"timestamp"`
62576
62577	// The reason why the transfer was rejected.
62578	RejectReason *string `locationName:"rejectReason" type:"string"`
62579
62580	// The date the transfer took place.
62581	TransferDate *time.Time `locationName:"transferDate" type:"timestamp"`
62582
62583	// The transfer message.
62584	TransferMessage *string `locationName:"transferMessage" type:"string"`
62585}
62586
62587// String returns the string representation.
62588//
62589// API parameter values that are decorated as "sensitive" in the API will not
62590// be included in the string output. The member name will be present, but the
62591// value will be replaced with "sensitive".
62592func (s TransferData) String() string {
62593	return awsutil.Prettify(s)
62594}
62595
62596// GoString returns the string representation.
62597//
62598// API parameter values that are decorated as "sensitive" in the API will not
62599// be included in the string output. The member name will be present, but the
62600// value will be replaced with "sensitive".
62601func (s TransferData) GoString() string {
62602	return s.String()
62603}
62604
62605// SetAcceptDate sets the AcceptDate field's value.
62606func (s *TransferData) SetAcceptDate(v time.Time) *TransferData {
62607	s.AcceptDate = &v
62608	return s
62609}
62610
62611// SetRejectDate sets the RejectDate field's value.
62612func (s *TransferData) SetRejectDate(v time.Time) *TransferData {
62613	s.RejectDate = &v
62614	return s
62615}
62616
62617// SetRejectReason sets the RejectReason field's value.
62618func (s *TransferData) SetRejectReason(v string) *TransferData {
62619	s.RejectReason = &v
62620	return s
62621}
62622
62623// SetTransferDate sets the TransferDate field's value.
62624func (s *TransferData) SetTransferDate(v time.Time) *TransferData {
62625	s.TransferDate = &v
62626	return s
62627}
62628
62629// SetTransferMessage sets the TransferMessage field's value.
62630func (s *TransferData) SetTransferMessage(v string) *TransferData {
62631	s.TransferMessage = &v
62632	return s
62633}
62634
62635// You are not authorized to perform this operation.
62636type UnauthorizedException struct {
62637	_            struct{}                  `type:"structure"`
62638	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
62639
62640	// The message for the exception.
62641	Message_ *string `locationName:"message" type:"string"`
62642}
62643
62644// String returns the string representation.
62645//
62646// API parameter values that are decorated as "sensitive" in the API will not
62647// be included in the string output. The member name will be present, but the
62648// value will be replaced with "sensitive".
62649func (s UnauthorizedException) String() string {
62650	return awsutil.Prettify(s)
62651}
62652
62653// GoString returns the string representation.
62654//
62655// API parameter values that are decorated as "sensitive" in the API will not
62656// be included in the string output. The member name will be present, but the
62657// value will be replaced with "sensitive".
62658func (s UnauthorizedException) GoString() string {
62659	return s.String()
62660}
62661
62662func newErrorUnauthorizedException(v protocol.ResponseMetadata) error {
62663	return &UnauthorizedException{
62664		RespMetadata: v,
62665	}
62666}
62667
62668// Code returns the exception type name.
62669func (s *UnauthorizedException) Code() string {
62670	return "UnauthorizedException"
62671}
62672
62673// Message returns the exception's message.
62674func (s *UnauthorizedException) Message() string {
62675	if s.Message_ != nil {
62676		return *s.Message_
62677	}
62678	return ""
62679}
62680
62681// OrigErr always returns nil, satisfies awserr.Error interface.
62682func (s *UnauthorizedException) OrigErr() error {
62683	return nil
62684}
62685
62686func (s *UnauthorizedException) Error() string {
62687	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
62688}
62689
62690// Status code returns the HTTP status code for the request's response error.
62691func (s *UnauthorizedException) StatusCode() int {
62692	return s.RespMetadata.StatusCode
62693}
62694
62695// RequestID returns the service's response RequestID for request.
62696func (s *UnauthorizedException) RequestID() string {
62697	return s.RespMetadata.RequestID
62698}
62699
62700type UntagResourceInput struct {
62701	_ struct{} `type:"structure"`
62702
62703	// The ARN of the resource.
62704	//
62705	// ResourceArn is a required field
62706	ResourceArn *string `locationName:"resourceArn" type:"string" required:"true"`
62707
62708	// A list of the keys of the tags to be removed from the resource.
62709	//
62710	// TagKeys is a required field
62711	TagKeys []*string `locationName:"tagKeys" type:"list" required:"true"`
62712}
62713
62714// String returns the string representation.
62715//
62716// API parameter values that are decorated as "sensitive" in the API will not
62717// be included in the string output. The member name will be present, but the
62718// value will be replaced with "sensitive".
62719func (s UntagResourceInput) String() string {
62720	return awsutil.Prettify(s)
62721}
62722
62723// GoString returns the string representation.
62724//
62725// API parameter values that are decorated as "sensitive" in the API will not
62726// be included in the string output. The member name will be present, but the
62727// value will be replaced with "sensitive".
62728func (s UntagResourceInput) GoString() string {
62729	return s.String()
62730}
62731
62732// Validate inspects the fields of the type to determine if they are valid.
62733func (s *UntagResourceInput) Validate() error {
62734	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
62735	if s.ResourceArn == nil {
62736		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
62737	}
62738	if s.TagKeys == nil {
62739		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
62740	}
62741
62742	if invalidParams.Len() > 0 {
62743		return invalidParams
62744	}
62745	return nil
62746}
62747
62748// SetResourceArn sets the ResourceArn field's value.
62749func (s *UntagResourceInput) SetResourceArn(v string) *UntagResourceInput {
62750	s.ResourceArn = &v
62751	return s
62752}
62753
62754// SetTagKeys sets the TagKeys field's value.
62755func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
62756	s.TagKeys = v
62757	return s
62758}
62759
62760type UntagResourceOutput struct {
62761	_ struct{} `type:"structure"`
62762}
62763
62764// String returns the string representation.
62765//
62766// API parameter values that are decorated as "sensitive" in the API will not
62767// be included in the string output. The member name will be present, but the
62768// value will be replaced with "sensitive".
62769func (s UntagResourceOutput) String() string {
62770	return awsutil.Prettify(s)
62771}
62772
62773// GoString returns the string representation.
62774//
62775// API parameter values that are decorated as "sensitive" in the API will not
62776// be included in the string output. The member name will be present, but the
62777// value will be replaced with "sensitive".
62778func (s UntagResourceOutput) GoString() string {
62779	return s.String()
62780}
62781
62782type UpdateAccountAuditConfigurationInput struct {
62783	_ struct{} `type:"structure"`
62784
62785	// Specifies which audit checks are enabled and disabled for this account. Use
62786	// DescribeAccountAuditConfiguration to see the list of all checks, including
62787	// those that are currently enabled.
62788	//
62789	// Some data collection might start immediately when certain checks are enabled.
62790	// When a check is disabled, any data collected so far in relation to the check
62791	// is deleted.
62792	//
62793	// You cannot disable a check if it's used by any scheduled audit. You must
62794	// first delete the check from the scheduled audit or delete the scheduled audit
62795	// itself.
62796	//
62797	// On the first call to UpdateAccountAuditConfiguration, this parameter is required
62798	// and must specify at least one enabled check.
62799	AuditCheckConfigurations map[string]*AuditCheckConfiguration `locationName:"auditCheckConfigurations" type:"map"`
62800
62801	// Information about the targets to which audit notifications are sent.
62802	AuditNotificationTargetConfigurations map[string]*AuditNotificationTarget `locationName:"auditNotificationTargetConfigurations" type:"map"`
62803
62804	// The Amazon Resource Name (ARN) of the role that grants permission to IoT
62805	// to access information about your devices, policies, certificates, and other
62806	// items as required when performing an audit.
62807	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
62808}
62809
62810// String returns the string representation.
62811//
62812// API parameter values that are decorated as "sensitive" in the API will not
62813// be included in the string output. The member name will be present, but the
62814// value will be replaced with "sensitive".
62815func (s UpdateAccountAuditConfigurationInput) String() string {
62816	return awsutil.Prettify(s)
62817}
62818
62819// GoString returns the string representation.
62820//
62821// API parameter values that are decorated as "sensitive" in the API will not
62822// be included in the string output. The member name will be present, but the
62823// value will be replaced with "sensitive".
62824func (s UpdateAccountAuditConfigurationInput) GoString() string {
62825	return s.String()
62826}
62827
62828// Validate inspects the fields of the type to determine if they are valid.
62829func (s *UpdateAccountAuditConfigurationInput) Validate() error {
62830	invalidParams := request.ErrInvalidParams{Context: "UpdateAccountAuditConfigurationInput"}
62831	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
62832		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
62833	}
62834	if s.AuditNotificationTargetConfigurations != nil {
62835		for i, v := range s.AuditNotificationTargetConfigurations {
62836			if v == nil {
62837				continue
62838			}
62839			if err := v.Validate(); err != nil {
62840				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AuditNotificationTargetConfigurations", i), err.(request.ErrInvalidParams))
62841			}
62842		}
62843	}
62844
62845	if invalidParams.Len() > 0 {
62846		return invalidParams
62847	}
62848	return nil
62849}
62850
62851// SetAuditCheckConfigurations sets the AuditCheckConfigurations field's value.
62852func (s *UpdateAccountAuditConfigurationInput) SetAuditCheckConfigurations(v map[string]*AuditCheckConfiguration) *UpdateAccountAuditConfigurationInput {
62853	s.AuditCheckConfigurations = v
62854	return s
62855}
62856
62857// SetAuditNotificationTargetConfigurations sets the AuditNotificationTargetConfigurations field's value.
62858func (s *UpdateAccountAuditConfigurationInput) SetAuditNotificationTargetConfigurations(v map[string]*AuditNotificationTarget) *UpdateAccountAuditConfigurationInput {
62859	s.AuditNotificationTargetConfigurations = v
62860	return s
62861}
62862
62863// SetRoleArn sets the RoleArn field's value.
62864func (s *UpdateAccountAuditConfigurationInput) SetRoleArn(v string) *UpdateAccountAuditConfigurationInput {
62865	s.RoleArn = &v
62866	return s
62867}
62868
62869type UpdateAccountAuditConfigurationOutput struct {
62870	_ struct{} `type:"structure"`
62871}
62872
62873// String returns the string representation.
62874//
62875// API parameter values that are decorated as "sensitive" in the API will not
62876// be included in the string output. The member name will be present, but the
62877// value will be replaced with "sensitive".
62878func (s UpdateAccountAuditConfigurationOutput) String() string {
62879	return awsutil.Prettify(s)
62880}
62881
62882// GoString returns the string representation.
62883//
62884// API parameter values that are decorated as "sensitive" in the API will not
62885// be included in the string output. The member name will be present, but the
62886// value will be replaced with "sensitive".
62887func (s UpdateAccountAuditConfigurationOutput) GoString() string {
62888	return s.String()
62889}
62890
62891type UpdateAuditSuppressionInput struct {
62892	_ struct{} `type:"structure"`
62893
62894	// An audit check name. Checks must be enabled for your account. (Use DescribeAccountAuditConfiguration
62895	// to see the list of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
62896	// to select which checks are enabled.)
62897	//
62898	// CheckName is a required field
62899	CheckName *string `locationName:"checkName" type:"string" required:"true"`
62900
62901	// The description of the audit suppression.
62902	Description *string `locationName:"description" type:"string"`
62903
62904	// The expiration date (epoch timestamp in seconds) that you want the suppression
62905	// to adhere to.
62906	ExpirationDate *time.Time `locationName:"expirationDate" type:"timestamp"`
62907
62908	// Information that identifies the noncompliant resource.
62909	//
62910	// ResourceIdentifier is a required field
62911	ResourceIdentifier *ResourceIdentifier `locationName:"resourceIdentifier" type:"structure" required:"true"`
62912
62913	// Indicates whether a suppression should exist indefinitely or not.
62914	SuppressIndefinitely *bool `locationName:"suppressIndefinitely" type:"boolean"`
62915}
62916
62917// String returns the string representation.
62918//
62919// API parameter values that are decorated as "sensitive" in the API will not
62920// be included in the string output. The member name will be present, but the
62921// value will be replaced with "sensitive".
62922func (s UpdateAuditSuppressionInput) String() string {
62923	return awsutil.Prettify(s)
62924}
62925
62926// GoString returns the string representation.
62927//
62928// API parameter values that are decorated as "sensitive" in the API will not
62929// be included in the string output. The member name will be present, but the
62930// value will be replaced with "sensitive".
62931func (s UpdateAuditSuppressionInput) GoString() string {
62932	return s.String()
62933}
62934
62935// Validate inspects the fields of the type to determine if they are valid.
62936func (s *UpdateAuditSuppressionInput) Validate() error {
62937	invalidParams := request.ErrInvalidParams{Context: "UpdateAuditSuppressionInput"}
62938	if s.CheckName == nil {
62939		invalidParams.Add(request.NewErrParamRequired("CheckName"))
62940	}
62941	if s.ResourceIdentifier == nil {
62942		invalidParams.Add(request.NewErrParamRequired("ResourceIdentifier"))
62943	}
62944	if s.ResourceIdentifier != nil {
62945		if err := s.ResourceIdentifier.Validate(); err != nil {
62946			invalidParams.AddNested("ResourceIdentifier", err.(request.ErrInvalidParams))
62947		}
62948	}
62949
62950	if invalidParams.Len() > 0 {
62951		return invalidParams
62952	}
62953	return nil
62954}
62955
62956// SetCheckName sets the CheckName field's value.
62957func (s *UpdateAuditSuppressionInput) SetCheckName(v string) *UpdateAuditSuppressionInput {
62958	s.CheckName = &v
62959	return s
62960}
62961
62962// SetDescription sets the Description field's value.
62963func (s *UpdateAuditSuppressionInput) SetDescription(v string) *UpdateAuditSuppressionInput {
62964	s.Description = &v
62965	return s
62966}
62967
62968// SetExpirationDate sets the ExpirationDate field's value.
62969func (s *UpdateAuditSuppressionInput) SetExpirationDate(v time.Time) *UpdateAuditSuppressionInput {
62970	s.ExpirationDate = &v
62971	return s
62972}
62973
62974// SetResourceIdentifier sets the ResourceIdentifier field's value.
62975func (s *UpdateAuditSuppressionInput) SetResourceIdentifier(v *ResourceIdentifier) *UpdateAuditSuppressionInput {
62976	s.ResourceIdentifier = v
62977	return s
62978}
62979
62980// SetSuppressIndefinitely sets the SuppressIndefinitely field's value.
62981func (s *UpdateAuditSuppressionInput) SetSuppressIndefinitely(v bool) *UpdateAuditSuppressionInput {
62982	s.SuppressIndefinitely = &v
62983	return s
62984}
62985
62986type UpdateAuditSuppressionOutput struct {
62987	_ struct{} `type:"structure"`
62988}
62989
62990// String returns the string representation.
62991//
62992// API parameter values that are decorated as "sensitive" in the API will not
62993// be included in the string output. The member name will be present, but the
62994// value will be replaced with "sensitive".
62995func (s UpdateAuditSuppressionOutput) String() string {
62996	return awsutil.Prettify(s)
62997}
62998
62999// GoString returns the string representation.
63000//
63001// API parameter values that are decorated as "sensitive" in the API will not
63002// be included in the string output. The member name will be present, but the
63003// value will be replaced with "sensitive".
63004func (s UpdateAuditSuppressionOutput) GoString() string {
63005	return s.String()
63006}
63007
63008type UpdateAuthorizerInput struct {
63009	_ struct{} `type:"structure"`
63010
63011	// The ARN of the authorizer's Lambda function.
63012	AuthorizerFunctionArn *string `locationName:"authorizerFunctionArn" type:"string"`
63013
63014	// The authorizer name.
63015	//
63016	// AuthorizerName is a required field
63017	AuthorizerName *string `location:"uri" locationName:"authorizerName" min:"1" type:"string" required:"true"`
63018
63019	// The status of the update authorizer request.
63020	Status *string `locationName:"status" type:"string" enum:"AuthorizerStatus"`
63021
63022	// The key used to extract the token from the HTTP headers.
63023	TokenKeyName *string `locationName:"tokenKeyName" min:"1" type:"string"`
63024
63025	// The public keys used to verify the token signature.
63026	TokenSigningPublicKeys map[string]*string `locationName:"tokenSigningPublicKeys" type:"map"`
63027}
63028
63029// String returns the string representation.
63030//
63031// API parameter values that are decorated as "sensitive" in the API will not
63032// be included in the string output. The member name will be present, but the
63033// value will be replaced with "sensitive".
63034func (s UpdateAuthorizerInput) String() string {
63035	return awsutil.Prettify(s)
63036}
63037
63038// GoString returns the string representation.
63039//
63040// API parameter values that are decorated as "sensitive" in the API will not
63041// be included in the string output. The member name will be present, but the
63042// value will be replaced with "sensitive".
63043func (s UpdateAuthorizerInput) GoString() string {
63044	return s.String()
63045}
63046
63047// Validate inspects the fields of the type to determine if they are valid.
63048func (s *UpdateAuthorizerInput) Validate() error {
63049	invalidParams := request.ErrInvalidParams{Context: "UpdateAuthorizerInput"}
63050	if s.AuthorizerName == nil {
63051		invalidParams.Add(request.NewErrParamRequired("AuthorizerName"))
63052	}
63053	if s.AuthorizerName != nil && len(*s.AuthorizerName) < 1 {
63054		invalidParams.Add(request.NewErrParamMinLen("AuthorizerName", 1))
63055	}
63056	if s.TokenKeyName != nil && len(*s.TokenKeyName) < 1 {
63057		invalidParams.Add(request.NewErrParamMinLen("TokenKeyName", 1))
63058	}
63059
63060	if invalidParams.Len() > 0 {
63061		return invalidParams
63062	}
63063	return nil
63064}
63065
63066// SetAuthorizerFunctionArn sets the AuthorizerFunctionArn field's value.
63067func (s *UpdateAuthorizerInput) SetAuthorizerFunctionArn(v string) *UpdateAuthorizerInput {
63068	s.AuthorizerFunctionArn = &v
63069	return s
63070}
63071
63072// SetAuthorizerName sets the AuthorizerName field's value.
63073func (s *UpdateAuthorizerInput) SetAuthorizerName(v string) *UpdateAuthorizerInput {
63074	s.AuthorizerName = &v
63075	return s
63076}
63077
63078// SetStatus sets the Status field's value.
63079func (s *UpdateAuthorizerInput) SetStatus(v string) *UpdateAuthorizerInput {
63080	s.Status = &v
63081	return s
63082}
63083
63084// SetTokenKeyName sets the TokenKeyName field's value.
63085func (s *UpdateAuthorizerInput) SetTokenKeyName(v string) *UpdateAuthorizerInput {
63086	s.TokenKeyName = &v
63087	return s
63088}
63089
63090// SetTokenSigningPublicKeys sets the TokenSigningPublicKeys field's value.
63091func (s *UpdateAuthorizerInput) SetTokenSigningPublicKeys(v map[string]*string) *UpdateAuthorizerInput {
63092	s.TokenSigningPublicKeys = v
63093	return s
63094}
63095
63096type UpdateAuthorizerOutput struct {
63097	_ struct{} `type:"structure"`
63098
63099	// The authorizer ARN.
63100	AuthorizerArn *string `locationName:"authorizerArn" type:"string"`
63101
63102	// The authorizer name.
63103	AuthorizerName *string `locationName:"authorizerName" min:"1" type:"string"`
63104}
63105
63106// String returns the string representation.
63107//
63108// API parameter values that are decorated as "sensitive" in the API will not
63109// be included in the string output. The member name will be present, but the
63110// value will be replaced with "sensitive".
63111func (s UpdateAuthorizerOutput) String() string {
63112	return awsutil.Prettify(s)
63113}
63114
63115// GoString returns the string representation.
63116//
63117// API parameter values that are decorated as "sensitive" in the API will not
63118// be included in the string output. The member name will be present, but the
63119// value will be replaced with "sensitive".
63120func (s UpdateAuthorizerOutput) GoString() string {
63121	return s.String()
63122}
63123
63124// SetAuthorizerArn sets the AuthorizerArn field's value.
63125func (s *UpdateAuthorizerOutput) SetAuthorizerArn(v string) *UpdateAuthorizerOutput {
63126	s.AuthorizerArn = &v
63127	return s
63128}
63129
63130// SetAuthorizerName sets the AuthorizerName field's value.
63131func (s *UpdateAuthorizerOutput) SetAuthorizerName(v string) *UpdateAuthorizerOutput {
63132	s.AuthorizerName = &v
63133	return s
63134}
63135
63136type UpdateBillingGroupInput struct {
63137	_ struct{} `type:"structure"`
63138
63139	// The name of the billing group.
63140	//
63141	// BillingGroupName is a required field
63142	BillingGroupName *string `location:"uri" locationName:"billingGroupName" min:"1" type:"string" required:"true"`
63143
63144	// The properties of the billing group.
63145	//
63146	// BillingGroupProperties is a required field
63147	BillingGroupProperties *BillingGroupProperties `locationName:"billingGroupProperties" type:"structure" required:"true"`
63148
63149	// The expected version of the billing group. If the version of the billing
63150	// group does not match the expected version specified in the request, the UpdateBillingGroup
63151	// request is rejected with a VersionConflictException.
63152	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
63153}
63154
63155// String returns the string representation.
63156//
63157// API parameter values that are decorated as "sensitive" in the API will not
63158// be included in the string output. The member name will be present, but the
63159// value will be replaced with "sensitive".
63160func (s UpdateBillingGroupInput) String() string {
63161	return awsutil.Prettify(s)
63162}
63163
63164// GoString returns the string representation.
63165//
63166// API parameter values that are decorated as "sensitive" in the API will not
63167// be included in the string output. The member name will be present, but the
63168// value will be replaced with "sensitive".
63169func (s UpdateBillingGroupInput) GoString() string {
63170	return s.String()
63171}
63172
63173// Validate inspects the fields of the type to determine if they are valid.
63174func (s *UpdateBillingGroupInput) Validate() error {
63175	invalidParams := request.ErrInvalidParams{Context: "UpdateBillingGroupInput"}
63176	if s.BillingGroupName == nil {
63177		invalidParams.Add(request.NewErrParamRequired("BillingGroupName"))
63178	}
63179	if s.BillingGroupName != nil && len(*s.BillingGroupName) < 1 {
63180		invalidParams.Add(request.NewErrParamMinLen("BillingGroupName", 1))
63181	}
63182	if s.BillingGroupProperties == nil {
63183		invalidParams.Add(request.NewErrParamRequired("BillingGroupProperties"))
63184	}
63185
63186	if invalidParams.Len() > 0 {
63187		return invalidParams
63188	}
63189	return nil
63190}
63191
63192// SetBillingGroupName sets the BillingGroupName field's value.
63193func (s *UpdateBillingGroupInput) SetBillingGroupName(v string) *UpdateBillingGroupInput {
63194	s.BillingGroupName = &v
63195	return s
63196}
63197
63198// SetBillingGroupProperties sets the BillingGroupProperties field's value.
63199func (s *UpdateBillingGroupInput) SetBillingGroupProperties(v *BillingGroupProperties) *UpdateBillingGroupInput {
63200	s.BillingGroupProperties = v
63201	return s
63202}
63203
63204// SetExpectedVersion sets the ExpectedVersion field's value.
63205func (s *UpdateBillingGroupInput) SetExpectedVersion(v int64) *UpdateBillingGroupInput {
63206	s.ExpectedVersion = &v
63207	return s
63208}
63209
63210type UpdateBillingGroupOutput struct {
63211	_ struct{} `type:"structure"`
63212
63213	// The latest version of the billing group.
63214	Version *int64 `locationName:"version" type:"long"`
63215}
63216
63217// String returns the string representation.
63218//
63219// API parameter values that are decorated as "sensitive" in the API will not
63220// be included in the string output. The member name will be present, but the
63221// value will be replaced with "sensitive".
63222func (s UpdateBillingGroupOutput) String() string {
63223	return awsutil.Prettify(s)
63224}
63225
63226// GoString returns the string representation.
63227//
63228// API parameter values that are decorated as "sensitive" in the API will not
63229// be included in the string output. The member name will be present, but the
63230// value will be replaced with "sensitive".
63231func (s UpdateBillingGroupOutput) GoString() string {
63232	return s.String()
63233}
63234
63235// SetVersion sets the Version field's value.
63236func (s *UpdateBillingGroupOutput) SetVersion(v int64) *UpdateBillingGroupOutput {
63237	s.Version = &v
63238	return s
63239}
63240
63241// The input to the UpdateCACertificate operation.
63242type UpdateCACertificateInput struct {
63243	_ struct{} `type:"structure"`
63244
63245	// The CA certificate identifier.
63246	//
63247	// CertificateId is a required field
63248	CertificateId *string `location:"uri" locationName:"caCertificateId" min:"64" type:"string" required:"true"`
63249
63250	// The new value for the auto registration status. Valid values are: "ENABLE"
63251	// or "DISABLE".
63252	NewAutoRegistrationStatus *string `location:"querystring" locationName:"newAutoRegistrationStatus" type:"string" enum:"AutoRegistrationStatus"`
63253
63254	// The updated status of the CA certificate.
63255	//
63256	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
63257	// used.
63258	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" enum:"CACertificateStatus"`
63259
63260	// Information about the registration configuration.
63261	RegistrationConfig *RegistrationConfig `locationName:"registrationConfig" type:"structure"`
63262
63263	// If true, removes auto registration.
63264	RemoveAutoRegistration *bool `locationName:"removeAutoRegistration" type:"boolean"`
63265}
63266
63267// String returns the string representation.
63268//
63269// API parameter values that are decorated as "sensitive" in the API will not
63270// be included in the string output. The member name will be present, but the
63271// value will be replaced with "sensitive".
63272func (s UpdateCACertificateInput) String() string {
63273	return awsutil.Prettify(s)
63274}
63275
63276// GoString returns the string representation.
63277//
63278// API parameter values that are decorated as "sensitive" in the API will not
63279// be included in the string output. The member name will be present, but the
63280// value will be replaced with "sensitive".
63281func (s UpdateCACertificateInput) GoString() string {
63282	return s.String()
63283}
63284
63285// Validate inspects the fields of the type to determine if they are valid.
63286func (s *UpdateCACertificateInput) Validate() error {
63287	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateInput"}
63288	if s.CertificateId == nil {
63289		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
63290	}
63291	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
63292		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
63293	}
63294	if s.RegistrationConfig != nil {
63295		if err := s.RegistrationConfig.Validate(); err != nil {
63296			invalidParams.AddNested("RegistrationConfig", err.(request.ErrInvalidParams))
63297		}
63298	}
63299
63300	if invalidParams.Len() > 0 {
63301		return invalidParams
63302	}
63303	return nil
63304}
63305
63306// SetCertificateId sets the CertificateId field's value.
63307func (s *UpdateCACertificateInput) SetCertificateId(v string) *UpdateCACertificateInput {
63308	s.CertificateId = &v
63309	return s
63310}
63311
63312// SetNewAutoRegistrationStatus sets the NewAutoRegistrationStatus field's value.
63313func (s *UpdateCACertificateInput) SetNewAutoRegistrationStatus(v string) *UpdateCACertificateInput {
63314	s.NewAutoRegistrationStatus = &v
63315	return s
63316}
63317
63318// SetNewStatus sets the NewStatus field's value.
63319func (s *UpdateCACertificateInput) SetNewStatus(v string) *UpdateCACertificateInput {
63320	s.NewStatus = &v
63321	return s
63322}
63323
63324// SetRegistrationConfig sets the RegistrationConfig field's value.
63325func (s *UpdateCACertificateInput) SetRegistrationConfig(v *RegistrationConfig) *UpdateCACertificateInput {
63326	s.RegistrationConfig = v
63327	return s
63328}
63329
63330// SetRemoveAutoRegistration sets the RemoveAutoRegistration field's value.
63331func (s *UpdateCACertificateInput) SetRemoveAutoRegistration(v bool) *UpdateCACertificateInput {
63332	s.RemoveAutoRegistration = &v
63333	return s
63334}
63335
63336type UpdateCACertificateOutput struct {
63337	_ struct{} `type:"structure"`
63338}
63339
63340// String returns the string representation.
63341//
63342// API parameter values that are decorated as "sensitive" in the API will not
63343// be included in the string output. The member name will be present, but the
63344// value will be replaced with "sensitive".
63345func (s UpdateCACertificateOutput) String() string {
63346	return awsutil.Prettify(s)
63347}
63348
63349// GoString returns the string representation.
63350//
63351// API parameter values that are decorated as "sensitive" in the API will not
63352// be included in the string output. The member name will be present, but the
63353// value will be replaced with "sensitive".
63354func (s UpdateCACertificateOutput) GoString() string {
63355	return s.String()
63356}
63357
63358// Parameters to define a mitigation action that changes the state of the CA
63359// certificate to inactive.
63360type UpdateCACertificateParams struct {
63361	_ struct{} `type:"structure"`
63362
63363	// The action that you want to apply to the CA certificate. The only supported
63364	// value is DEACTIVATE.
63365	//
63366	// Action is a required field
63367	Action *string `locationName:"action" type:"string" required:"true" enum:"CACertificateUpdateAction"`
63368}
63369
63370// String returns the string representation.
63371//
63372// API parameter values that are decorated as "sensitive" in the API will not
63373// be included in the string output. The member name will be present, but the
63374// value will be replaced with "sensitive".
63375func (s UpdateCACertificateParams) String() string {
63376	return awsutil.Prettify(s)
63377}
63378
63379// GoString returns the string representation.
63380//
63381// API parameter values that are decorated as "sensitive" in the API will not
63382// be included in the string output. The member name will be present, but the
63383// value will be replaced with "sensitive".
63384func (s UpdateCACertificateParams) GoString() string {
63385	return s.String()
63386}
63387
63388// Validate inspects the fields of the type to determine if they are valid.
63389func (s *UpdateCACertificateParams) Validate() error {
63390	invalidParams := request.ErrInvalidParams{Context: "UpdateCACertificateParams"}
63391	if s.Action == nil {
63392		invalidParams.Add(request.NewErrParamRequired("Action"))
63393	}
63394
63395	if invalidParams.Len() > 0 {
63396		return invalidParams
63397	}
63398	return nil
63399}
63400
63401// SetAction sets the Action field's value.
63402func (s *UpdateCACertificateParams) SetAction(v string) *UpdateCACertificateParams {
63403	s.Action = &v
63404	return s
63405}
63406
63407// The input for the UpdateCertificate operation.
63408type UpdateCertificateInput struct {
63409	_ struct{} `type:"structure" nopayload:"true"`
63410
63411	// The ID of the certificate. (The last part of the certificate ARN contains
63412	// the certificate ID.)
63413	//
63414	// CertificateId is a required field
63415	CertificateId *string `location:"uri" locationName:"certificateId" min:"64" type:"string" required:"true"`
63416
63417	// The new status.
63418	//
63419	// Note: Setting the status to PENDING_TRANSFER or PENDING_ACTIVATION will result
63420	// in an exception being thrown. PENDING_TRANSFER and PENDING_ACTIVATION are
63421	// statuses used internally by IoT. They are not intended for developer use.
63422	//
63423	// Note: The status value REGISTER_INACTIVE is deprecated and should not be
63424	// used.
63425	//
63426	// NewStatus is a required field
63427	NewStatus *string `location:"querystring" locationName:"newStatus" type:"string" required:"true" enum:"CertificateStatus"`
63428}
63429
63430// String returns the string representation.
63431//
63432// API parameter values that are decorated as "sensitive" in the API will not
63433// be included in the string output. The member name will be present, but the
63434// value will be replaced with "sensitive".
63435func (s UpdateCertificateInput) String() string {
63436	return awsutil.Prettify(s)
63437}
63438
63439// GoString returns the string representation.
63440//
63441// API parameter values that are decorated as "sensitive" in the API will not
63442// be included in the string output. The member name will be present, but the
63443// value will be replaced with "sensitive".
63444func (s UpdateCertificateInput) GoString() string {
63445	return s.String()
63446}
63447
63448// Validate inspects the fields of the type to determine if they are valid.
63449func (s *UpdateCertificateInput) Validate() error {
63450	invalidParams := request.ErrInvalidParams{Context: "UpdateCertificateInput"}
63451	if s.CertificateId == nil {
63452		invalidParams.Add(request.NewErrParamRequired("CertificateId"))
63453	}
63454	if s.CertificateId != nil && len(*s.CertificateId) < 64 {
63455		invalidParams.Add(request.NewErrParamMinLen("CertificateId", 64))
63456	}
63457	if s.NewStatus == nil {
63458		invalidParams.Add(request.NewErrParamRequired("NewStatus"))
63459	}
63460
63461	if invalidParams.Len() > 0 {
63462		return invalidParams
63463	}
63464	return nil
63465}
63466
63467// SetCertificateId sets the CertificateId field's value.
63468func (s *UpdateCertificateInput) SetCertificateId(v string) *UpdateCertificateInput {
63469	s.CertificateId = &v
63470	return s
63471}
63472
63473// SetNewStatus sets the NewStatus field's value.
63474func (s *UpdateCertificateInput) SetNewStatus(v string) *UpdateCertificateInput {
63475	s.NewStatus = &v
63476	return s
63477}
63478
63479type UpdateCertificateOutput struct {
63480	_ struct{} `type:"structure"`
63481}
63482
63483// String returns the string representation.
63484//
63485// API parameter values that are decorated as "sensitive" in the API will not
63486// be included in the string output. The member name will be present, but the
63487// value will be replaced with "sensitive".
63488func (s UpdateCertificateOutput) String() string {
63489	return awsutil.Prettify(s)
63490}
63491
63492// GoString returns the string representation.
63493//
63494// API parameter values that are decorated as "sensitive" in the API will not
63495// be included in the string output. The member name will be present, but the
63496// value will be replaced with "sensitive".
63497func (s UpdateCertificateOutput) GoString() string {
63498	return s.String()
63499}
63500
63501type UpdateCustomMetricInput struct {
63502	_ struct{} `type:"structure"`
63503
63504	// Field represents a friendly name in the console for the custom metric, it
63505	// doesn't have to be unique. Don't use this name as the metric identifier in
63506	// the device metric report. Can be updated.
63507	//
63508	// DisplayName is a required field
63509	DisplayName *string `locationName:"displayName" type:"string" required:"true"`
63510
63511	// The name of the custom metric. Cannot be updated.
63512	//
63513	// MetricName is a required field
63514	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
63515}
63516
63517// String returns the string representation.
63518//
63519// API parameter values that are decorated as "sensitive" in the API will not
63520// be included in the string output. The member name will be present, but the
63521// value will be replaced with "sensitive".
63522func (s UpdateCustomMetricInput) String() string {
63523	return awsutil.Prettify(s)
63524}
63525
63526// GoString returns the string representation.
63527//
63528// API parameter values that are decorated as "sensitive" in the API will not
63529// be included in the string output. The member name will be present, but the
63530// value will be replaced with "sensitive".
63531func (s UpdateCustomMetricInput) GoString() string {
63532	return s.String()
63533}
63534
63535// Validate inspects the fields of the type to determine if they are valid.
63536func (s *UpdateCustomMetricInput) Validate() error {
63537	invalidParams := request.ErrInvalidParams{Context: "UpdateCustomMetricInput"}
63538	if s.DisplayName == nil {
63539		invalidParams.Add(request.NewErrParamRequired("DisplayName"))
63540	}
63541	if s.MetricName == nil {
63542		invalidParams.Add(request.NewErrParamRequired("MetricName"))
63543	}
63544	if s.MetricName != nil && len(*s.MetricName) < 1 {
63545		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
63546	}
63547
63548	if invalidParams.Len() > 0 {
63549		return invalidParams
63550	}
63551	return nil
63552}
63553
63554// SetDisplayName sets the DisplayName field's value.
63555func (s *UpdateCustomMetricInput) SetDisplayName(v string) *UpdateCustomMetricInput {
63556	s.DisplayName = &v
63557	return s
63558}
63559
63560// SetMetricName sets the MetricName field's value.
63561func (s *UpdateCustomMetricInput) SetMetricName(v string) *UpdateCustomMetricInput {
63562	s.MetricName = &v
63563	return s
63564}
63565
63566type UpdateCustomMetricOutput struct {
63567	_ struct{} `type:"structure"`
63568
63569	// The creation date of the custom metric in milliseconds since epoch.
63570	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
63571
63572	// A friendly name in the console for the custom metric
63573	DisplayName *string `locationName:"displayName" type:"string"`
63574
63575	// The time the custom metric was last modified in milliseconds since epoch.
63576	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
63577
63578	// The Amazon Resource Number (ARN) of the custom metric.
63579	MetricArn *string `locationName:"metricArn" type:"string"`
63580
63581	// The name of the custom metric.
63582	MetricName *string `locationName:"metricName" min:"1" type:"string"`
63583
63584	// The type of the custom metric. Types include string-list, ip-address-list,
63585	// number-list, and number.
63586	MetricType *string `locationName:"metricType" type:"string" enum:"CustomMetricType"`
63587}
63588
63589// String returns the string representation.
63590//
63591// API parameter values that are decorated as "sensitive" in the API will not
63592// be included in the string output. The member name will be present, but the
63593// value will be replaced with "sensitive".
63594func (s UpdateCustomMetricOutput) String() string {
63595	return awsutil.Prettify(s)
63596}
63597
63598// GoString returns the string representation.
63599//
63600// API parameter values that are decorated as "sensitive" in the API will not
63601// be included in the string output. The member name will be present, but the
63602// value will be replaced with "sensitive".
63603func (s UpdateCustomMetricOutput) GoString() string {
63604	return s.String()
63605}
63606
63607// SetCreationDate sets the CreationDate field's value.
63608func (s *UpdateCustomMetricOutput) SetCreationDate(v time.Time) *UpdateCustomMetricOutput {
63609	s.CreationDate = &v
63610	return s
63611}
63612
63613// SetDisplayName sets the DisplayName field's value.
63614func (s *UpdateCustomMetricOutput) SetDisplayName(v string) *UpdateCustomMetricOutput {
63615	s.DisplayName = &v
63616	return s
63617}
63618
63619// SetLastModifiedDate sets the LastModifiedDate field's value.
63620func (s *UpdateCustomMetricOutput) SetLastModifiedDate(v time.Time) *UpdateCustomMetricOutput {
63621	s.LastModifiedDate = &v
63622	return s
63623}
63624
63625// SetMetricArn sets the MetricArn field's value.
63626func (s *UpdateCustomMetricOutput) SetMetricArn(v string) *UpdateCustomMetricOutput {
63627	s.MetricArn = &v
63628	return s
63629}
63630
63631// SetMetricName sets the MetricName field's value.
63632func (s *UpdateCustomMetricOutput) SetMetricName(v string) *UpdateCustomMetricOutput {
63633	s.MetricName = &v
63634	return s
63635}
63636
63637// SetMetricType sets the MetricType field's value.
63638func (s *UpdateCustomMetricOutput) SetMetricType(v string) *UpdateCustomMetricOutput {
63639	s.MetricType = &v
63640	return s
63641}
63642
63643// Parameters to define a mitigation action that changes the state of the device
63644// certificate to inactive.
63645type UpdateDeviceCertificateParams struct {
63646	_ struct{} `type:"structure"`
63647
63648	// The action that you want to apply to the device certificate. The only supported
63649	// value is DEACTIVATE.
63650	//
63651	// Action is a required field
63652	Action *string `locationName:"action" type:"string" required:"true" enum:"DeviceCertificateUpdateAction"`
63653}
63654
63655// String returns the string representation.
63656//
63657// API parameter values that are decorated as "sensitive" in the API will not
63658// be included in the string output. The member name will be present, but the
63659// value will be replaced with "sensitive".
63660func (s UpdateDeviceCertificateParams) String() string {
63661	return awsutil.Prettify(s)
63662}
63663
63664// GoString returns the string representation.
63665//
63666// API parameter values that are decorated as "sensitive" in the API will not
63667// be included in the string output. The member name will be present, but the
63668// value will be replaced with "sensitive".
63669func (s UpdateDeviceCertificateParams) GoString() string {
63670	return s.String()
63671}
63672
63673// Validate inspects the fields of the type to determine if they are valid.
63674func (s *UpdateDeviceCertificateParams) Validate() error {
63675	invalidParams := request.ErrInvalidParams{Context: "UpdateDeviceCertificateParams"}
63676	if s.Action == nil {
63677		invalidParams.Add(request.NewErrParamRequired("Action"))
63678	}
63679
63680	if invalidParams.Len() > 0 {
63681		return invalidParams
63682	}
63683	return nil
63684}
63685
63686// SetAction sets the Action field's value.
63687func (s *UpdateDeviceCertificateParams) SetAction(v string) *UpdateDeviceCertificateParams {
63688	s.Action = &v
63689	return s
63690}
63691
63692type UpdateDimensionInput struct {
63693	_ struct{} `type:"structure"`
63694
63695	// A unique identifier for the dimension. Choose something that describes the
63696	// type and value to make it easy to remember what it does.
63697	//
63698	// Name is a required field
63699	Name *string `location:"uri" locationName:"name" min:"1" type:"string" required:"true"`
63700
63701	// Specifies the value or list of values for the dimension. For TOPIC_FILTER
63702	// dimensions, this is a pattern used to match the MQTT topic (for example,
63703	// "admin/#").
63704	//
63705	// StringValues is a required field
63706	StringValues []*string `locationName:"stringValues" min:"1" type:"list" required:"true"`
63707}
63708
63709// String returns the string representation.
63710//
63711// API parameter values that are decorated as "sensitive" in the API will not
63712// be included in the string output. The member name will be present, but the
63713// value will be replaced with "sensitive".
63714func (s UpdateDimensionInput) String() string {
63715	return awsutil.Prettify(s)
63716}
63717
63718// GoString returns the string representation.
63719//
63720// API parameter values that are decorated as "sensitive" in the API will not
63721// be included in the string output. The member name will be present, but the
63722// value will be replaced with "sensitive".
63723func (s UpdateDimensionInput) GoString() string {
63724	return s.String()
63725}
63726
63727// Validate inspects the fields of the type to determine if they are valid.
63728func (s *UpdateDimensionInput) Validate() error {
63729	invalidParams := request.ErrInvalidParams{Context: "UpdateDimensionInput"}
63730	if s.Name == nil {
63731		invalidParams.Add(request.NewErrParamRequired("Name"))
63732	}
63733	if s.Name != nil && len(*s.Name) < 1 {
63734		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
63735	}
63736	if s.StringValues == nil {
63737		invalidParams.Add(request.NewErrParamRequired("StringValues"))
63738	}
63739	if s.StringValues != nil && len(s.StringValues) < 1 {
63740		invalidParams.Add(request.NewErrParamMinLen("StringValues", 1))
63741	}
63742
63743	if invalidParams.Len() > 0 {
63744		return invalidParams
63745	}
63746	return nil
63747}
63748
63749// SetName sets the Name field's value.
63750func (s *UpdateDimensionInput) SetName(v string) *UpdateDimensionInput {
63751	s.Name = &v
63752	return s
63753}
63754
63755// SetStringValues sets the StringValues field's value.
63756func (s *UpdateDimensionInput) SetStringValues(v []*string) *UpdateDimensionInput {
63757	s.StringValues = v
63758	return s
63759}
63760
63761type UpdateDimensionOutput struct {
63762	_ struct{} `type:"structure"`
63763
63764	// The Amazon Resource Name (ARN)of the created dimension.
63765	Arn *string `locationName:"arn" type:"string"`
63766
63767	// The date and time, in milliseconds since epoch, when the dimension was initially
63768	// created.
63769	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
63770
63771	// The date and time, in milliseconds since epoch, when the dimension was most
63772	// recently updated.
63773	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
63774
63775	// A unique identifier for the dimension.
63776	Name *string `locationName:"name" min:"1" type:"string"`
63777
63778	// The value or list of values used to scope the dimension. For example, for
63779	// topic filters, this is the pattern used to match the MQTT topic name.
63780	StringValues []*string `locationName:"stringValues" min:"1" type:"list"`
63781
63782	// The type of the dimension.
63783	Type *string `locationName:"type" type:"string" enum:"DimensionType"`
63784}
63785
63786// String returns the string representation.
63787//
63788// API parameter values that are decorated as "sensitive" in the API will not
63789// be included in the string output. The member name will be present, but the
63790// value will be replaced with "sensitive".
63791func (s UpdateDimensionOutput) String() string {
63792	return awsutil.Prettify(s)
63793}
63794
63795// GoString returns the string representation.
63796//
63797// API parameter values that are decorated as "sensitive" in the API will not
63798// be included in the string output. The member name will be present, but the
63799// value will be replaced with "sensitive".
63800func (s UpdateDimensionOutput) GoString() string {
63801	return s.String()
63802}
63803
63804// SetArn sets the Arn field's value.
63805func (s *UpdateDimensionOutput) SetArn(v string) *UpdateDimensionOutput {
63806	s.Arn = &v
63807	return s
63808}
63809
63810// SetCreationDate sets the CreationDate field's value.
63811func (s *UpdateDimensionOutput) SetCreationDate(v time.Time) *UpdateDimensionOutput {
63812	s.CreationDate = &v
63813	return s
63814}
63815
63816// SetLastModifiedDate sets the LastModifiedDate field's value.
63817func (s *UpdateDimensionOutput) SetLastModifiedDate(v time.Time) *UpdateDimensionOutput {
63818	s.LastModifiedDate = &v
63819	return s
63820}
63821
63822// SetName sets the Name field's value.
63823func (s *UpdateDimensionOutput) SetName(v string) *UpdateDimensionOutput {
63824	s.Name = &v
63825	return s
63826}
63827
63828// SetStringValues sets the StringValues field's value.
63829func (s *UpdateDimensionOutput) SetStringValues(v []*string) *UpdateDimensionOutput {
63830	s.StringValues = v
63831	return s
63832}
63833
63834// SetType sets the Type field's value.
63835func (s *UpdateDimensionOutput) SetType(v string) *UpdateDimensionOutput {
63836	s.Type = &v
63837	return s
63838}
63839
63840type UpdateDomainConfigurationInput struct {
63841	_ struct{} `type:"structure"`
63842
63843	// An object that specifies the authorization service for a domain.
63844	AuthorizerConfig *AuthorizerConfig `locationName:"authorizerConfig" type:"structure"`
63845
63846	// The name of the domain configuration to be updated.
63847	//
63848	// DomainConfigurationName is a required field
63849	DomainConfigurationName *string `location:"uri" locationName:"domainConfigurationName" min:"1" type:"string" required:"true"`
63850
63851	// The status to which the domain configuration should be updated.
63852	DomainConfigurationStatus *string `locationName:"domainConfigurationStatus" type:"string" enum:"DomainConfigurationStatus"`
63853
63854	// Removes the authorization configuration from a domain.
63855	RemoveAuthorizerConfig *bool `locationName:"removeAuthorizerConfig" type:"boolean"`
63856}
63857
63858// String returns the string representation.
63859//
63860// API parameter values that are decorated as "sensitive" in the API will not
63861// be included in the string output. The member name will be present, but the
63862// value will be replaced with "sensitive".
63863func (s UpdateDomainConfigurationInput) String() string {
63864	return awsutil.Prettify(s)
63865}
63866
63867// GoString returns the string representation.
63868//
63869// API parameter values that are decorated as "sensitive" in the API will not
63870// be included in the string output. The member name will be present, but the
63871// value will be replaced with "sensitive".
63872func (s UpdateDomainConfigurationInput) GoString() string {
63873	return s.String()
63874}
63875
63876// Validate inspects the fields of the type to determine if they are valid.
63877func (s *UpdateDomainConfigurationInput) Validate() error {
63878	invalidParams := request.ErrInvalidParams{Context: "UpdateDomainConfigurationInput"}
63879	if s.DomainConfigurationName == nil {
63880		invalidParams.Add(request.NewErrParamRequired("DomainConfigurationName"))
63881	}
63882	if s.DomainConfigurationName != nil && len(*s.DomainConfigurationName) < 1 {
63883		invalidParams.Add(request.NewErrParamMinLen("DomainConfigurationName", 1))
63884	}
63885	if s.AuthorizerConfig != nil {
63886		if err := s.AuthorizerConfig.Validate(); err != nil {
63887			invalidParams.AddNested("AuthorizerConfig", err.(request.ErrInvalidParams))
63888		}
63889	}
63890
63891	if invalidParams.Len() > 0 {
63892		return invalidParams
63893	}
63894	return nil
63895}
63896
63897// SetAuthorizerConfig sets the AuthorizerConfig field's value.
63898func (s *UpdateDomainConfigurationInput) SetAuthorizerConfig(v *AuthorizerConfig) *UpdateDomainConfigurationInput {
63899	s.AuthorizerConfig = v
63900	return s
63901}
63902
63903// SetDomainConfigurationName sets the DomainConfigurationName field's value.
63904func (s *UpdateDomainConfigurationInput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationInput {
63905	s.DomainConfigurationName = &v
63906	return s
63907}
63908
63909// SetDomainConfigurationStatus sets the DomainConfigurationStatus field's value.
63910func (s *UpdateDomainConfigurationInput) SetDomainConfigurationStatus(v string) *UpdateDomainConfigurationInput {
63911	s.DomainConfigurationStatus = &v
63912	return s
63913}
63914
63915// SetRemoveAuthorizerConfig sets the RemoveAuthorizerConfig field's value.
63916func (s *UpdateDomainConfigurationInput) SetRemoveAuthorizerConfig(v bool) *UpdateDomainConfigurationInput {
63917	s.RemoveAuthorizerConfig = &v
63918	return s
63919}
63920
63921type UpdateDomainConfigurationOutput struct {
63922	_ struct{} `type:"structure"`
63923
63924	// The ARN of the domain configuration that was updated.
63925	DomainConfigurationArn *string `locationName:"domainConfigurationArn" type:"string"`
63926
63927	// The name of the domain configuration that was updated.
63928	DomainConfigurationName *string `locationName:"domainConfigurationName" min:"1" type:"string"`
63929}
63930
63931// String returns the string representation.
63932//
63933// API parameter values that are decorated as "sensitive" in the API will not
63934// be included in the string output. The member name will be present, but the
63935// value will be replaced with "sensitive".
63936func (s UpdateDomainConfigurationOutput) String() string {
63937	return awsutil.Prettify(s)
63938}
63939
63940// GoString returns the string representation.
63941//
63942// API parameter values that are decorated as "sensitive" in the API will not
63943// be included in the string output. The member name will be present, but the
63944// value will be replaced with "sensitive".
63945func (s UpdateDomainConfigurationOutput) GoString() string {
63946	return s.String()
63947}
63948
63949// SetDomainConfigurationArn sets the DomainConfigurationArn field's value.
63950func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationArn(v string) *UpdateDomainConfigurationOutput {
63951	s.DomainConfigurationArn = &v
63952	return s
63953}
63954
63955// SetDomainConfigurationName sets the DomainConfigurationName field's value.
63956func (s *UpdateDomainConfigurationOutput) SetDomainConfigurationName(v string) *UpdateDomainConfigurationOutput {
63957	s.DomainConfigurationName = &v
63958	return s
63959}
63960
63961type UpdateDynamicThingGroupInput struct {
63962	_ struct{} `type:"structure"`
63963
63964	// The expected version of the dynamic thing group to update.
63965	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
63966
63967	// The dynamic thing group index to update.
63968	//
63969	// Currently one index is supported: AWS_Things.
63970	IndexName *string `locationName:"indexName" min:"1" type:"string"`
63971
63972	// The dynamic thing group search query string to update.
63973	QueryString *string `locationName:"queryString" min:"1" type:"string"`
63974
63975	// The dynamic thing group query version to update.
63976	//
63977	// Currently one query version is supported: "2017-09-30". If not specified,
63978	// the query version defaults to this value.
63979	QueryVersion *string `locationName:"queryVersion" type:"string"`
63980
63981	// The name of the dynamic thing group to update.
63982	//
63983	// ThingGroupName is a required field
63984	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
63985
63986	// The dynamic thing group properties to update.
63987	//
63988	// ThingGroupProperties is a required field
63989	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
63990}
63991
63992// String returns the string representation.
63993//
63994// API parameter values that are decorated as "sensitive" in the API will not
63995// be included in the string output. The member name will be present, but the
63996// value will be replaced with "sensitive".
63997func (s UpdateDynamicThingGroupInput) String() string {
63998	return awsutil.Prettify(s)
63999}
64000
64001// GoString returns the string representation.
64002//
64003// API parameter values that are decorated as "sensitive" in the API will not
64004// be included in the string output. The member name will be present, but the
64005// value will be replaced with "sensitive".
64006func (s UpdateDynamicThingGroupInput) GoString() string {
64007	return s.String()
64008}
64009
64010// Validate inspects the fields of the type to determine if they are valid.
64011func (s *UpdateDynamicThingGroupInput) Validate() error {
64012	invalidParams := request.ErrInvalidParams{Context: "UpdateDynamicThingGroupInput"}
64013	if s.IndexName != nil && len(*s.IndexName) < 1 {
64014		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
64015	}
64016	if s.QueryString != nil && len(*s.QueryString) < 1 {
64017		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
64018	}
64019	if s.ThingGroupName == nil {
64020		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
64021	}
64022	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
64023		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
64024	}
64025	if s.ThingGroupProperties == nil {
64026		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
64027	}
64028
64029	if invalidParams.Len() > 0 {
64030		return invalidParams
64031	}
64032	return nil
64033}
64034
64035// SetExpectedVersion sets the ExpectedVersion field's value.
64036func (s *UpdateDynamicThingGroupInput) SetExpectedVersion(v int64) *UpdateDynamicThingGroupInput {
64037	s.ExpectedVersion = &v
64038	return s
64039}
64040
64041// SetIndexName sets the IndexName field's value.
64042func (s *UpdateDynamicThingGroupInput) SetIndexName(v string) *UpdateDynamicThingGroupInput {
64043	s.IndexName = &v
64044	return s
64045}
64046
64047// SetQueryString sets the QueryString field's value.
64048func (s *UpdateDynamicThingGroupInput) SetQueryString(v string) *UpdateDynamicThingGroupInput {
64049	s.QueryString = &v
64050	return s
64051}
64052
64053// SetQueryVersion sets the QueryVersion field's value.
64054func (s *UpdateDynamicThingGroupInput) SetQueryVersion(v string) *UpdateDynamicThingGroupInput {
64055	s.QueryVersion = &v
64056	return s
64057}
64058
64059// SetThingGroupName sets the ThingGroupName field's value.
64060func (s *UpdateDynamicThingGroupInput) SetThingGroupName(v string) *UpdateDynamicThingGroupInput {
64061	s.ThingGroupName = &v
64062	return s
64063}
64064
64065// SetThingGroupProperties sets the ThingGroupProperties field's value.
64066func (s *UpdateDynamicThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateDynamicThingGroupInput {
64067	s.ThingGroupProperties = v
64068	return s
64069}
64070
64071type UpdateDynamicThingGroupOutput struct {
64072	_ struct{} `type:"structure"`
64073
64074	// The dynamic thing group version.
64075	Version *int64 `locationName:"version" type:"long"`
64076}
64077
64078// String returns the string representation.
64079//
64080// API parameter values that are decorated as "sensitive" in the API will not
64081// be included in the string output. The member name will be present, but the
64082// value will be replaced with "sensitive".
64083func (s UpdateDynamicThingGroupOutput) String() string {
64084	return awsutil.Prettify(s)
64085}
64086
64087// GoString returns the string representation.
64088//
64089// API parameter values that are decorated as "sensitive" in the API will not
64090// be included in the string output. The member name will be present, but the
64091// value will be replaced with "sensitive".
64092func (s UpdateDynamicThingGroupOutput) GoString() string {
64093	return s.String()
64094}
64095
64096// SetVersion sets the Version field's value.
64097func (s *UpdateDynamicThingGroupOutput) SetVersion(v int64) *UpdateDynamicThingGroupOutput {
64098	s.Version = &v
64099	return s
64100}
64101
64102type UpdateEventConfigurationsInput struct {
64103	_ struct{} `type:"structure"`
64104
64105	// The new event configuration values.
64106	EventConfigurations map[string]*Configuration `locationName:"eventConfigurations" type:"map"`
64107}
64108
64109// String returns the string representation.
64110//
64111// API parameter values that are decorated as "sensitive" in the API will not
64112// be included in the string output. The member name will be present, but the
64113// value will be replaced with "sensitive".
64114func (s UpdateEventConfigurationsInput) String() string {
64115	return awsutil.Prettify(s)
64116}
64117
64118// GoString returns the string representation.
64119//
64120// API parameter values that are decorated as "sensitive" in the API will not
64121// be included in the string output. The member name will be present, but the
64122// value will be replaced with "sensitive".
64123func (s UpdateEventConfigurationsInput) GoString() string {
64124	return s.String()
64125}
64126
64127// SetEventConfigurations sets the EventConfigurations field's value.
64128func (s *UpdateEventConfigurationsInput) SetEventConfigurations(v map[string]*Configuration) *UpdateEventConfigurationsInput {
64129	s.EventConfigurations = v
64130	return s
64131}
64132
64133type UpdateEventConfigurationsOutput struct {
64134	_ struct{} `type:"structure"`
64135}
64136
64137// String returns the string representation.
64138//
64139// API parameter values that are decorated as "sensitive" in the API will not
64140// be included in the string output. The member name will be present, but the
64141// value will be replaced with "sensitive".
64142func (s UpdateEventConfigurationsOutput) String() string {
64143	return awsutil.Prettify(s)
64144}
64145
64146// GoString returns the string representation.
64147//
64148// API parameter values that are decorated as "sensitive" in the API will not
64149// be included in the string output. The member name will be present, but the
64150// value will be replaced with "sensitive".
64151func (s UpdateEventConfigurationsOutput) GoString() string {
64152	return s.String()
64153}
64154
64155type UpdateFleetMetricInput struct {
64156	_ struct{} `type:"structure"`
64157
64158	// The field to aggregate.
64159	AggregationField *string `locationName:"aggregationField" min:"1" type:"string"`
64160
64161	// The type of the aggregation query.
64162	AggregationType *AggregationType `locationName:"aggregationType" type:"structure"`
64163
64164	// The description of the fleet metric.
64165	Description *string `locationName:"description" type:"string"`
64166
64167	// The expected version of the fleet metric record in the registry.
64168	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
64169
64170	// The name of the index to search.
64171	//
64172	// IndexName is a required field
64173	IndexName *string `locationName:"indexName" min:"1" type:"string" required:"true"`
64174
64175	// The name of the fleet metric to update.
64176	//
64177	// MetricName is a required field
64178	MetricName *string `location:"uri" locationName:"metricName" min:"1" type:"string" required:"true"`
64179
64180	// The time in seconds between fleet metric emissions. Range [60(1 min), 86400(1
64181	// day)] and must be multiple of 60.
64182	Period *int64 `locationName:"period" min:"60" type:"integer"`
64183
64184	// The search query string.
64185	QueryString *string `locationName:"queryString" min:"1" type:"string"`
64186
64187	// The version of the query.
64188	QueryVersion *string `locationName:"queryVersion" type:"string"`
64189
64190	// Used to support unit transformation such as milliseconds to seconds. The
64191	// unit must be supported by CW metric (https://docs.aws.amazon.com/https:/docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_MetricDatum.html).
64192	Unit *string `locationName:"unit" type:"string" enum:"FleetMetricUnit"`
64193}
64194
64195// String returns the string representation.
64196//
64197// API parameter values that are decorated as "sensitive" in the API will not
64198// be included in the string output. The member name will be present, but the
64199// value will be replaced with "sensitive".
64200func (s UpdateFleetMetricInput) String() string {
64201	return awsutil.Prettify(s)
64202}
64203
64204// GoString returns the string representation.
64205//
64206// API parameter values that are decorated as "sensitive" in the API will not
64207// be included in the string output. The member name will be present, but the
64208// value will be replaced with "sensitive".
64209func (s UpdateFleetMetricInput) GoString() string {
64210	return s.String()
64211}
64212
64213// Validate inspects the fields of the type to determine if they are valid.
64214func (s *UpdateFleetMetricInput) Validate() error {
64215	invalidParams := request.ErrInvalidParams{Context: "UpdateFleetMetricInput"}
64216	if s.AggregationField != nil && len(*s.AggregationField) < 1 {
64217		invalidParams.Add(request.NewErrParamMinLen("AggregationField", 1))
64218	}
64219	if s.IndexName == nil {
64220		invalidParams.Add(request.NewErrParamRequired("IndexName"))
64221	}
64222	if s.IndexName != nil && len(*s.IndexName) < 1 {
64223		invalidParams.Add(request.NewErrParamMinLen("IndexName", 1))
64224	}
64225	if s.MetricName == nil {
64226		invalidParams.Add(request.NewErrParamRequired("MetricName"))
64227	}
64228	if s.MetricName != nil && len(*s.MetricName) < 1 {
64229		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
64230	}
64231	if s.Period != nil && *s.Period < 60 {
64232		invalidParams.Add(request.NewErrParamMinValue("Period", 60))
64233	}
64234	if s.QueryString != nil && len(*s.QueryString) < 1 {
64235		invalidParams.Add(request.NewErrParamMinLen("QueryString", 1))
64236	}
64237	if s.AggregationType != nil {
64238		if err := s.AggregationType.Validate(); err != nil {
64239			invalidParams.AddNested("AggregationType", err.(request.ErrInvalidParams))
64240		}
64241	}
64242
64243	if invalidParams.Len() > 0 {
64244		return invalidParams
64245	}
64246	return nil
64247}
64248
64249// SetAggregationField sets the AggregationField field's value.
64250func (s *UpdateFleetMetricInput) SetAggregationField(v string) *UpdateFleetMetricInput {
64251	s.AggregationField = &v
64252	return s
64253}
64254
64255// SetAggregationType sets the AggregationType field's value.
64256func (s *UpdateFleetMetricInput) SetAggregationType(v *AggregationType) *UpdateFleetMetricInput {
64257	s.AggregationType = v
64258	return s
64259}
64260
64261// SetDescription sets the Description field's value.
64262func (s *UpdateFleetMetricInput) SetDescription(v string) *UpdateFleetMetricInput {
64263	s.Description = &v
64264	return s
64265}
64266
64267// SetExpectedVersion sets the ExpectedVersion field's value.
64268func (s *UpdateFleetMetricInput) SetExpectedVersion(v int64) *UpdateFleetMetricInput {
64269	s.ExpectedVersion = &v
64270	return s
64271}
64272
64273// SetIndexName sets the IndexName field's value.
64274func (s *UpdateFleetMetricInput) SetIndexName(v string) *UpdateFleetMetricInput {
64275	s.IndexName = &v
64276	return s
64277}
64278
64279// SetMetricName sets the MetricName field's value.
64280func (s *UpdateFleetMetricInput) SetMetricName(v string) *UpdateFleetMetricInput {
64281	s.MetricName = &v
64282	return s
64283}
64284
64285// SetPeriod sets the Period field's value.
64286func (s *UpdateFleetMetricInput) SetPeriod(v int64) *UpdateFleetMetricInput {
64287	s.Period = &v
64288	return s
64289}
64290
64291// SetQueryString sets the QueryString field's value.
64292func (s *UpdateFleetMetricInput) SetQueryString(v string) *UpdateFleetMetricInput {
64293	s.QueryString = &v
64294	return s
64295}
64296
64297// SetQueryVersion sets the QueryVersion field's value.
64298func (s *UpdateFleetMetricInput) SetQueryVersion(v string) *UpdateFleetMetricInput {
64299	s.QueryVersion = &v
64300	return s
64301}
64302
64303// SetUnit sets the Unit field's value.
64304func (s *UpdateFleetMetricInput) SetUnit(v string) *UpdateFleetMetricInput {
64305	s.Unit = &v
64306	return s
64307}
64308
64309type UpdateFleetMetricOutput struct {
64310	_ struct{} `type:"structure"`
64311}
64312
64313// String returns the string representation.
64314//
64315// API parameter values that are decorated as "sensitive" in the API will not
64316// be included in the string output. The member name will be present, but the
64317// value will be replaced with "sensitive".
64318func (s UpdateFleetMetricOutput) String() string {
64319	return awsutil.Prettify(s)
64320}
64321
64322// GoString returns the string representation.
64323//
64324// API parameter values that are decorated as "sensitive" in the API will not
64325// be included in the string output. The member name will be present, but the
64326// value will be replaced with "sensitive".
64327func (s UpdateFleetMetricOutput) GoString() string {
64328	return s.String()
64329}
64330
64331type UpdateIndexingConfigurationInput struct {
64332	_ struct{} `type:"structure"`
64333
64334	// Thing group indexing configuration.
64335	ThingGroupIndexingConfiguration *ThingGroupIndexingConfiguration `locationName:"thingGroupIndexingConfiguration" type:"structure"`
64336
64337	// Thing indexing configuration.
64338	ThingIndexingConfiguration *ThingIndexingConfiguration `locationName:"thingIndexingConfiguration" type:"structure"`
64339}
64340
64341// String returns the string representation.
64342//
64343// API parameter values that are decorated as "sensitive" in the API will not
64344// be included in the string output. The member name will be present, but the
64345// value will be replaced with "sensitive".
64346func (s UpdateIndexingConfigurationInput) String() string {
64347	return awsutil.Prettify(s)
64348}
64349
64350// GoString returns the string representation.
64351//
64352// API parameter values that are decorated as "sensitive" in the API will not
64353// be included in the string output. The member name will be present, but the
64354// value will be replaced with "sensitive".
64355func (s UpdateIndexingConfigurationInput) GoString() string {
64356	return s.String()
64357}
64358
64359// Validate inspects the fields of the type to determine if they are valid.
64360func (s *UpdateIndexingConfigurationInput) Validate() error {
64361	invalidParams := request.ErrInvalidParams{Context: "UpdateIndexingConfigurationInput"}
64362	if s.ThingGroupIndexingConfiguration != nil {
64363		if err := s.ThingGroupIndexingConfiguration.Validate(); err != nil {
64364			invalidParams.AddNested("ThingGroupIndexingConfiguration", err.(request.ErrInvalidParams))
64365		}
64366	}
64367	if s.ThingIndexingConfiguration != nil {
64368		if err := s.ThingIndexingConfiguration.Validate(); err != nil {
64369			invalidParams.AddNested("ThingIndexingConfiguration", err.(request.ErrInvalidParams))
64370		}
64371	}
64372
64373	if invalidParams.Len() > 0 {
64374		return invalidParams
64375	}
64376	return nil
64377}
64378
64379// SetThingGroupIndexingConfiguration sets the ThingGroupIndexingConfiguration field's value.
64380func (s *UpdateIndexingConfigurationInput) SetThingGroupIndexingConfiguration(v *ThingGroupIndexingConfiguration) *UpdateIndexingConfigurationInput {
64381	s.ThingGroupIndexingConfiguration = v
64382	return s
64383}
64384
64385// SetThingIndexingConfiguration sets the ThingIndexingConfiguration field's value.
64386func (s *UpdateIndexingConfigurationInput) SetThingIndexingConfiguration(v *ThingIndexingConfiguration) *UpdateIndexingConfigurationInput {
64387	s.ThingIndexingConfiguration = v
64388	return s
64389}
64390
64391type UpdateIndexingConfigurationOutput struct {
64392	_ struct{} `type:"structure"`
64393}
64394
64395// String returns the string representation.
64396//
64397// API parameter values that are decorated as "sensitive" in the API will not
64398// be included in the string output. The member name will be present, but the
64399// value will be replaced with "sensitive".
64400func (s UpdateIndexingConfigurationOutput) String() string {
64401	return awsutil.Prettify(s)
64402}
64403
64404// GoString returns the string representation.
64405//
64406// API parameter values that are decorated as "sensitive" in the API will not
64407// be included in the string output. The member name will be present, but the
64408// value will be replaced with "sensitive".
64409func (s UpdateIndexingConfigurationOutput) GoString() string {
64410	return s.String()
64411}
64412
64413type UpdateJobInput struct {
64414	_ struct{} `type:"structure"`
64415
64416	// Allows you to create criteria to abort a job.
64417	AbortConfig *AbortConfig `locationName:"abortConfig" type:"structure"`
64418
64419	// A short text description of the job.
64420	Description *string `locationName:"description" type:"string"`
64421
64422	// Allows you to create a staged rollout of the job.
64423	JobExecutionsRolloutConfig *JobExecutionsRolloutConfig `locationName:"jobExecutionsRolloutConfig" type:"structure"`
64424
64425	// The ID of the job to be updated.
64426	//
64427	// JobId is a required field
64428	JobId *string `location:"uri" locationName:"jobId" min:"1" type:"string" required:"true"`
64429
64430	// The namespace used to indicate that a job is a customer-managed job.
64431	//
64432	// When you specify a value for this parameter, Amazon Web Services IoT Core
64433	// sends jobs notifications to MQTT topics that contain the value in the following
64434	// format.
64435	//
64436	// $aws/things/THING_NAME/jobs/JOB_ID/notify-namespace-NAMESPACE_ID/
64437	//
64438	// The namespaceId feature is in public preview.
64439	NamespaceId *string `location:"querystring" locationName:"namespaceId" min:"1" type:"string"`
64440
64441	// Configuration information for pre-signed S3 URLs.
64442	PresignedUrlConfig *PresignedUrlConfig `locationName:"presignedUrlConfig" type:"structure"`
64443
64444	// Specifies the amount of time each device has to finish its execution of the
64445	// job. The timer is started when the job execution status is set to IN_PROGRESS.
64446	// If the job execution status is not set to another terminal state before the
64447	// time expires, it will be automatically set to TIMED_OUT.
64448	TimeoutConfig *TimeoutConfig `locationName:"timeoutConfig" type:"structure"`
64449}
64450
64451// String returns the string representation.
64452//
64453// API parameter values that are decorated as "sensitive" in the API will not
64454// be included in the string output. The member name will be present, but the
64455// value will be replaced with "sensitive".
64456func (s UpdateJobInput) String() string {
64457	return awsutil.Prettify(s)
64458}
64459
64460// GoString returns the string representation.
64461//
64462// API parameter values that are decorated as "sensitive" in the API will not
64463// be included in the string output. The member name will be present, but the
64464// value will be replaced with "sensitive".
64465func (s UpdateJobInput) GoString() string {
64466	return s.String()
64467}
64468
64469// Validate inspects the fields of the type to determine if they are valid.
64470func (s *UpdateJobInput) Validate() error {
64471	invalidParams := request.ErrInvalidParams{Context: "UpdateJobInput"}
64472	if s.JobId == nil {
64473		invalidParams.Add(request.NewErrParamRequired("JobId"))
64474	}
64475	if s.JobId != nil && len(*s.JobId) < 1 {
64476		invalidParams.Add(request.NewErrParamMinLen("JobId", 1))
64477	}
64478	if s.NamespaceId != nil && len(*s.NamespaceId) < 1 {
64479		invalidParams.Add(request.NewErrParamMinLen("NamespaceId", 1))
64480	}
64481	if s.AbortConfig != nil {
64482		if err := s.AbortConfig.Validate(); err != nil {
64483			invalidParams.AddNested("AbortConfig", err.(request.ErrInvalidParams))
64484		}
64485	}
64486	if s.JobExecutionsRolloutConfig != nil {
64487		if err := s.JobExecutionsRolloutConfig.Validate(); err != nil {
64488			invalidParams.AddNested("JobExecutionsRolloutConfig", err.(request.ErrInvalidParams))
64489		}
64490	}
64491	if s.PresignedUrlConfig != nil {
64492		if err := s.PresignedUrlConfig.Validate(); err != nil {
64493			invalidParams.AddNested("PresignedUrlConfig", err.(request.ErrInvalidParams))
64494		}
64495	}
64496
64497	if invalidParams.Len() > 0 {
64498		return invalidParams
64499	}
64500	return nil
64501}
64502
64503// SetAbortConfig sets the AbortConfig field's value.
64504func (s *UpdateJobInput) SetAbortConfig(v *AbortConfig) *UpdateJobInput {
64505	s.AbortConfig = v
64506	return s
64507}
64508
64509// SetDescription sets the Description field's value.
64510func (s *UpdateJobInput) SetDescription(v string) *UpdateJobInput {
64511	s.Description = &v
64512	return s
64513}
64514
64515// SetJobExecutionsRolloutConfig sets the JobExecutionsRolloutConfig field's value.
64516func (s *UpdateJobInput) SetJobExecutionsRolloutConfig(v *JobExecutionsRolloutConfig) *UpdateJobInput {
64517	s.JobExecutionsRolloutConfig = v
64518	return s
64519}
64520
64521// SetJobId sets the JobId field's value.
64522func (s *UpdateJobInput) SetJobId(v string) *UpdateJobInput {
64523	s.JobId = &v
64524	return s
64525}
64526
64527// SetNamespaceId sets the NamespaceId field's value.
64528func (s *UpdateJobInput) SetNamespaceId(v string) *UpdateJobInput {
64529	s.NamespaceId = &v
64530	return s
64531}
64532
64533// SetPresignedUrlConfig sets the PresignedUrlConfig field's value.
64534func (s *UpdateJobInput) SetPresignedUrlConfig(v *PresignedUrlConfig) *UpdateJobInput {
64535	s.PresignedUrlConfig = v
64536	return s
64537}
64538
64539// SetTimeoutConfig sets the TimeoutConfig field's value.
64540func (s *UpdateJobInput) SetTimeoutConfig(v *TimeoutConfig) *UpdateJobInput {
64541	s.TimeoutConfig = v
64542	return s
64543}
64544
64545type UpdateJobOutput struct {
64546	_ struct{} `type:"structure"`
64547}
64548
64549// String returns the string representation.
64550//
64551// API parameter values that are decorated as "sensitive" in the API will not
64552// be included in the string output. The member name will be present, but the
64553// value will be replaced with "sensitive".
64554func (s UpdateJobOutput) String() string {
64555	return awsutil.Prettify(s)
64556}
64557
64558// GoString returns the string representation.
64559//
64560// API parameter values that are decorated as "sensitive" in the API will not
64561// be included in the string output. The member name will be present, but the
64562// value will be replaced with "sensitive".
64563func (s UpdateJobOutput) GoString() string {
64564	return s.String()
64565}
64566
64567type UpdateMitigationActionInput struct {
64568	_ struct{} `type:"structure"`
64569
64570	// The friendly name for the mitigation action. You cannot change the name by
64571	// using UpdateMitigationAction. Instead, you must delete and recreate the mitigation
64572	// action with the new name.
64573	//
64574	// ActionName is a required field
64575	ActionName *string `location:"uri" locationName:"actionName" type:"string" required:"true"`
64576
64577	// Defines the type of action and the parameters for that action.
64578	ActionParams *MitigationActionParams `locationName:"actionParams" type:"structure"`
64579
64580	// The ARN of the IAM role that is used to apply the mitigation action.
64581	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
64582}
64583
64584// String returns the string representation.
64585//
64586// API parameter values that are decorated as "sensitive" in the API will not
64587// be included in the string output. The member name will be present, but the
64588// value will be replaced with "sensitive".
64589func (s UpdateMitigationActionInput) String() string {
64590	return awsutil.Prettify(s)
64591}
64592
64593// GoString returns the string representation.
64594//
64595// API parameter values that are decorated as "sensitive" in the API will not
64596// be included in the string output. The member name will be present, but the
64597// value will be replaced with "sensitive".
64598func (s UpdateMitigationActionInput) GoString() string {
64599	return s.String()
64600}
64601
64602// Validate inspects the fields of the type to determine if they are valid.
64603func (s *UpdateMitigationActionInput) Validate() error {
64604	invalidParams := request.ErrInvalidParams{Context: "UpdateMitigationActionInput"}
64605	if s.ActionName == nil {
64606		invalidParams.Add(request.NewErrParamRequired("ActionName"))
64607	}
64608	if s.ActionName != nil && len(*s.ActionName) < 1 {
64609		invalidParams.Add(request.NewErrParamMinLen("ActionName", 1))
64610	}
64611	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
64612		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
64613	}
64614	if s.ActionParams != nil {
64615		if err := s.ActionParams.Validate(); err != nil {
64616			invalidParams.AddNested("ActionParams", err.(request.ErrInvalidParams))
64617		}
64618	}
64619
64620	if invalidParams.Len() > 0 {
64621		return invalidParams
64622	}
64623	return nil
64624}
64625
64626// SetActionName sets the ActionName field's value.
64627func (s *UpdateMitigationActionInput) SetActionName(v string) *UpdateMitigationActionInput {
64628	s.ActionName = &v
64629	return s
64630}
64631
64632// SetActionParams sets the ActionParams field's value.
64633func (s *UpdateMitigationActionInput) SetActionParams(v *MitigationActionParams) *UpdateMitigationActionInput {
64634	s.ActionParams = v
64635	return s
64636}
64637
64638// SetRoleArn sets the RoleArn field's value.
64639func (s *UpdateMitigationActionInput) SetRoleArn(v string) *UpdateMitigationActionInput {
64640	s.RoleArn = &v
64641	return s
64642}
64643
64644type UpdateMitigationActionOutput struct {
64645	_ struct{} `type:"structure"`
64646
64647	// The ARN for the new mitigation action.
64648	ActionArn *string `locationName:"actionArn" type:"string"`
64649
64650	// A unique identifier for the mitigation action.
64651	ActionId *string `locationName:"actionId" type:"string"`
64652}
64653
64654// String returns the string representation.
64655//
64656// API parameter values that are decorated as "sensitive" in the API will not
64657// be included in the string output. The member name will be present, but the
64658// value will be replaced with "sensitive".
64659func (s UpdateMitigationActionOutput) String() string {
64660	return awsutil.Prettify(s)
64661}
64662
64663// GoString returns the string representation.
64664//
64665// API parameter values that are decorated as "sensitive" in the API will not
64666// be included in the string output. The member name will be present, but the
64667// value will be replaced with "sensitive".
64668func (s UpdateMitigationActionOutput) GoString() string {
64669	return s.String()
64670}
64671
64672// SetActionArn sets the ActionArn field's value.
64673func (s *UpdateMitigationActionOutput) SetActionArn(v string) *UpdateMitigationActionOutput {
64674	s.ActionArn = &v
64675	return s
64676}
64677
64678// SetActionId sets the ActionId field's value.
64679func (s *UpdateMitigationActionOutput) SetActionId(v string) *UpdateMitigationActionOutput {
64680	s.ActionId = &v
64681	return s
64682}
64683
64684type UpdateProvisioningTemplateInput struct {
64685	_ struct{} `type:"structure"`
64686
64687	// The ID of the default provisioning template version.
64688	DefaultVersionId *int64 `locationName:"defaultVersionId" type:"integer"`
64689
64690	// The description of the fleet provisioning template.
64691	Description *string `locationName:"description" type:"string"`
64692
64693	// True to enable the fleet provisioning template, otherwise false.
64694	Enabled *bool `locationName:"enabled" type:"boolean"`
64695
64696	// Updates the pre-provisioning hook template.
64697	PreProvisioningHook *ProvisioningHook `locationName:"preProvisioningHook" type:"structure"`
64698
64699	// The ARN of the role associated with the provisioning template. This IoT role
64700	// grants permission to provision a device.
64701	ProvisioningRoleArn *string `locationName:"provisioningRoleArn" min:"20" type:"string"`
64702
64703	// Removes pre-provisioning hook template.
64704	RemovePreProvisioningHook *bool `locationName:"removePreProvisioningHook" type:"boolean"`
64705
64706	// The name of the fleet provisioning template.
64707	//
64708	// TemplateName is a required field
64709	TemplateName *string `location:"uri" locationName:"templateName" min:"1" type:"string" required:"true"`
64710}
64711
64712// String returns the string representation.
64713//
64714// API parameter values that are decorated as "sensitive" in the API will not
64715// be included in the string output. The member name will be present, but the
64716// value will be replaced with "sensitive".
64717func (s UpdateProvisioningTemplateInput) String() string {
64718	return awsutil.Prettify(s)
64719}
64720
64721// GoString returns the string representation.
64722//
64723// API parameter values that are decorated as "sensitive" in the API will not
64724// be included in the string output. The member name will be present, but the
64725// value will be replaced with "sensitive".
64726func (s UpdateProvisioningTemplateInput) GoString() string {
64727	return s.String()
64728}
64729
64730// Validate inspects the fields of the type to determine if they are valid.
64731func (s *UpdateProvisioningTemplateInput) Validate() error {
64732	invalidParams := request.ErrInvalidParams{Context: "UpdateProvisioningTemplateInput"}
64733	if s.ProvisioningRoleArn != nil && len(*s.ProvisioningRoleArn) < 20 {
64734		invalidParams.Add(request.NewErrParamMinLen("ProvisioningRoleArn", 20))
64735	}
64736	if s.TemplateName == nil {
64737		invalidParams.Add(request.NewErrParamRequired("TemplateName"))
64738	}
64739	if s.TemplateName != nil && len(*s.TemplateName) < 1 {
64740		invalidParams.Add(request.NewErrParamMinLen("TemplateName", 1))
64741	}
64742	if s.PreProvisioningHook != nil {
64743		if err := s.PreProvisioningHook.Validate(); err != nil {
64744			invalidParams.AddNested("PreProvisioningHook", err.(request.ErrInvalidParams))
64745		}
64746	}
64747
64748	if invalidParams.Len() > 0 {
64749		return invalidParams
64750	}
64751	return nil
64752}
64753
64754// SetDefaultVersionId sets the DefaultVersionId field's value.
64755func (s *UpdateProvisioningTemplateInput) SetDefaultVersionId(v int64) *UpdateProvisioningTemplateInput {
64756	s.DefaultVersionId = &v
64757	return s
64758}
64759
64760// SetDescription sets the Description field's value.
64761func (s *UpdateProvisioningTemplateInput) SetDescription(v string) *UpdateProvisioningTemplateInput {
64762	s.Description = &v
64763	return s
64764}
64765
64766// SetEnabled sets the Enabled field's value.
64767func (s *UpdateProvisioningTemplateInput) SetEnabled(v bool) *UpdateProvisioningTemplateInput {
64768	s.Enabled = &v
64769	return s
64770}
64771
64772// SetPreProvisioningHook sets the PreProvisioningHook field's value.
64773func (s *UpdateProvisioningTemplateInput) SetPreProvisioningHook(v *ProvisioningHook) *UpdateProvisioningTemplateInput {
64774	s.PreProvisioningHook = v
64775	return s
64776}
64777
64778// SetProvisioningRoleArn sets the ProvisioningRoleArn field's value.
64779func (s *UpdateProvisioningTemplateInput) SetProvisioningRoleArn(v string) *UpdateProvisioningTemplateInput {
64780	s.ProvisioningRoleArn = &v
64781	return s
64782}
64783
64784// SetRemovePreProvisioningHook sets the RemovePreProvisioningHook field's value.
64785func (s *UpdateProvisioningTemplateInput) SetRemovePreProvisioningHook(v bool) *UpdateProvisioningTemplateInput {
64786	s.RemovePreProvisioningHook = &v
64787	return s
64788}
64789
64790// SetTemplateName sets the TemplateName field's value.
64791func (s *UpdateProvisioningTemplateInput) SetTemplateName(v string) *UpdateProvisioningTemplateInput {
64792	s.TemplateName = &v
64793	return s
64794}
64795
64796type UpdateProvisioningTemplateOutput struct {
64797	_ struct{} `type:"structure"`
64798}
64799
64800// String returns the string representation.
64801//
64802// API parameter values that are decorated as "sensitive" in the API will not
64803// be included in the string output. The member name will be present, but the
64804// value will be replaced with "sensitive".
64805func (s UpdateProvisioningTemplateOutput) String() string {
64806	return awsutil.Prettify(s)
64807}
64808
64809// GoString returns the string representation.
64810//
64811// API parameter values that are decorated as "sensitive" in the API will not
64812// be included in the string output. The member name will be present, but the
64813// value will be replaced with "sensitive".
64814func (s UpdateProvisioningTemplateOutput) GoString() string {
64815	return s.String()
64816}
64817
64818type UpdateRoleAliasInput struct {
64819	_ struct{} `type:"structure"`
64820
64821	// The number of seconds the credential will be valid.
64822	CredentialDurationSeconds *int64 `locationName:"credentialDurationSeconds" min:"900" type:"integer"`
64823
64824	// The role alias to update.
64825	//
64826	// RoleAlias is a required field
64827	RoleAlias *string `location:"uri" locationName:"roleAlias" min:"1" type:"string" required:"true"`
64828
64829	// The role ARN.
64830	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
64831}
64832
64833// String returns the string representation.
64834//
64835// API parameter values that are decorated as "sensitive" in the API will not
64836// be included in the string output. The member name will be present, but the
64837// value will be replaced with "sensitive".
64838func (s UpdateRoleAliasInput) String() string {
64839	return awsutil.Prettify(s)
64840}
64841
64842// GoString returns the string representation.
64843//
64844// API parameter values that are decorated as "sensitive" in the API will not
64845// be included in the string output. The member name will be present, but the
64846// value will be replaced with "sensitive".
64847func (s UpdateRoleAliasInput) GoString() string {
64848	return s.String()
64849}
64850
64851// Validate inspects the fields of the type to determine if they are valid.
64852func (s *UpdateRoleAliasInput) Validate() error {
64853	invalidParams := request.ErrInvalidParams{Context: "UpdateRoleAliasInput"}
64854	if s.CredentialDurationSeconds != nil && *s.CredentialDurationSeconds < 900 {
64855		invalidParams.Add(request.NewErrParamMinValue("CredentialDurationSeconds", 900))
64856	}
64857	if s.RoleAlias == nil {
64858		invalidParams.Add(request.NewErrParamRequired("RoleAlias"))
64859	}
64860	if s.RoleAlias != nil && len(*s.RoleAlias) < 1 {
64861		invalidParams.Add(request.NewErrParamMinLen("RoleAlias", 1))
64862	}
64863	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
64864		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
64865	}
64866
64867	if invalidParams.Len() > 0 {
64868		return invalidParams
64869	}
64870	return nil
64871}
64872
64873// SetCredentialDurationSeconds sets the CredentialDurationSeconds field's value.
64874func (s *UpdateRoleAliasInput) SetCredentialDurationSeconds(v int64) *UpdateRoleAliasInput {
64875	s.CredentialDurationSeconds = &v
64876	return s
64877}
64878
64879// SetRoleAlias sets the RoleAlias field's value.
64880func (s *UpdateRoleAliasInput) SetRoleAlias(v string) *UpdateRoleAliasInput {
64881	s.RoleAlias = &v
64882	return s
64883}
64884
64885// SetRoleArn sets the RoleArn field's value.
64886func (s *UpdateRoleAliasInput) SetRoleArn(v string) *UpdateRoleAliasInput {
64887	s.RoleArn = &v
64888	return s
64889}
64890
64891type UpdateRoleAliasOutput struct {
64892	_ struct{} `type:"structure"`
64893
64894	// The role alias.
64895	RoleAlias *string `locationName:"roleAlias" min:"1" type:"string"`
64896
64897	// The role alias ARN.
64898	RoleAliasArn *string `locationName:"roleAliasArn" min:"1" type:"string"`
64899}
64900
64901// String returns the string representation.
64902//
64903// API parameter values that are decorated as "sensitive" in the API will not
64904// be included in the string output. The member name will be present, but the
64905// value will be replaced with "sensitive".
64906func (s UpdateRoleAliasOutput) String() string {
64907	return awsutil.Prettify(s)
64908}
64909
64910// GoString returns the string representation.
64911//
64912// API parameter values that are decorated as "sensitive" in the API will not
64913// be included in the string output. The member name will be present, but the
64914// value will be replaced with "sensitive".
64915func (s UpdateRoleAliasOutput) GoString() string {
64916	return s.String()
64917}
64918
64919// SetRoleAlias sets the RoleAlias field's value.
64920func (s *UpdateRoleAliasOutput) SetRoleAlias(v string) *UpdateRoleAliasOutput {
64921	s.RoleAlias = &v
64922	return s
64923}
64924
64925// SetRoleAliasArn sets the RoleAliasArn field's value.
64926func (s *UpdateRoleAliasOutput) SetRoleAliasArn(v string) *UpdateRoleAliasOutput {
64927	s.RoleAliasArn = &v
64928	return s
64929}
64930
64931type UpdateScheduledAuditInput struct {
64932	_ struct{} `type:"structure"`
64933
64934	// The day of the month on which the scheduled audit takes place. This can be
64935	// 1 through 31 or LAST. This field is required if the frequency parameter is
64936	// set to MONTHLY. If days 29-31 are specified, and the month does not have
64937	// that many days, the audit takes place on the "LAST" day of the month.
64938	DayOfMonth *string `locationName:"dayOfMonth" type:"string"`
64939
64940	// The day of the week on which the scheduled audit takes place. This can be
64941	// one of SUN, MON, TUE, WED, THU, FRI, or SAT. This field is required if the
64942	// "frequency" parameter is set to WEEKLY or BIWEEKLY.
64943	DayOfWeek *string `locationName:"dayOfWeek" type:"string" enum:"DayOfWeek"`
64944
64945	// How often the scheduled audit takes place, either DAILY, WEEKLY, BIWEEKLY,
64946	// or MONTHLY. The start time of each audit is determined by the system.
64947	Frequency *string `locationName:"frequency" type:"string" enum:"AuditFrequency"`
64948
64949	// The name of the scheduled audit. (Max. 128 chars)
64950	//
64951	// ScheduledAuditName is a required field
64952	ScheduledAuditName *string `location:"uri" locationName:"scheduledAuditName" min:"1" type:"string" required:"true"`
64953
64954	// Which checks are performed during the scheduled audit. Checks must be enabled
64955	// for your account. (Use DescribeAccountAuditConfiguration to see the list
64956	// of all checks, including those that are enabled or use UpdateAccountAuditConfiguration
64957	// to select which checks are enabled.)
64958	TargetCheckNames []*string `locationName:"targetCheckNames" type:"list"`
64959}
64960
64961// String returns the string representation.
64962//
64963// API parameter values that are decorated as "sensitive" in the API will not
64964// be included in the string output. The member name will be present, but the
64965// value will be replaced with "sensitive".
64966func (s UpdateScheduledAuditInput) String() string {
64967	return awsutil.Prettify(s)
64968}
64969
64970// GoString returns the string representation.
64971//
64972// API parameter values that are decorated as "sensitive" in the API will not
64973// be included in the string output. The member name will be present, but the
64974// value will be replaced with "sensitive".
64975func (s UpdateScheduledAuditInput) GoString() string {
64976	return s.String()
64977}
64978
64979// Validate inspects the fields of the type to determine if they are valid.
64980func (s *UpdateScheduledAuditInput) Validate() error {
64981	invalidParams := request.ErrInvalidParams{Context: "UpdateScheduledAuditInput"}
64982	if s.ScheduledAuditName == nil {
64983		invalidParams.Add(request.NewErrParamRequired("ScheduledAuditName"))
64984	}
64985	if s.ScheduledAuditName != nil && len(*s.ScheduledAuditName) < 1 {
64986		invalidParams.Add(request.NewErrParamMinLen("ScheduledAuditName", 1))
64987	}
64988
64989	if invalidParams.Len() > 0 {
64990		return invalidParams
64991	}
64992	return nil
64993}
64994
64995// SetDayOfMonth sets the DayOfMonth field's value.
64996func (s *UpdateScheduledAuditInput) SetDayOfMonth(v string) *UpdateScheduledAuditInput {
64997	s.DayOfMonth = &v
64998	return s
64999}
65000
65001// SetDayOfWeek sets the DayOfWeek field's value.
65002func (s *UpdateScheduledAuditInput) SetDayOfWeek(v string) *UpdateScheduledAuditInput {
65003	s.DayOfWeek = &v
65004	return s
65005}
65006
65007// SetFrequency sets the Frequency field's value.
65008func (s *UpdateScheduledAuditInput) SetFrequency(v string) *UpdateScheduledAuditInput {
65009	s.Frequency = &v
65010	return s
65011}
65012
65013// SetScheduledAuditName sets the ScheduledAuditName field's value.
65014func (s *UpdateScheduledAuditInput) SetScheduledAuditName(v string) *UpdateScheduledAuditInput {
65015	s.ScheduledAuditName = &v
65016	return s
65017}
65018
65019// SetTargetCheckNames sets the TargetCheckNames field's value.
65020func (s *UpdateScheduledAuditInput) SetTargetCheckNames(v []*string) *UpdateScheduledAuditInput {
65021	s.TargetCheckNames = v
65022	return s
65023}
65024
65025type UpdateScheduledAuditOutput struct {
65026	_ struct{} `type:"structure"`
65027
65028	// The ARN of the scheduled audit.
65029	ScheduledAuditArn *string `locationName:"scheduledAuditArn" type:"string"`
65030}
65031
65032// String returns the string representation.
65033//
65034// API parameter values that are decorated as "sensitive" in the API will not
65035// be included in the string output. The member name will be present, but the
65036// value will be replaced with "sensitive".
65037func (s UpdateScheduledAuditOutput) String() string {
65038	return awsutil.Prettify(s)
65039}
65040
65041// GoString returns the string representation.
65042//
65043// API parameter values that are decorated as "sensitive" in the API will not
65044// be included in the string output. The member name will be present, but the
65045// value will be replaced with "sensitive".
65046func (s UpdateScheduledAuditOutput) GoString() string {
65047	return s.String()
65048}
65049
65050// SetScheduledAuditArn sets the ScheduledAuditArn field's value.
65051func (s *UpdateScheduledAuditOutput) SetScheduledAuditArn(v string) *UpdateScheduledAuditOutput {
65052	s.ScheduledAuditArn = &v
65053	return s
65054}
65055
65056type UpdateSecurityProfileInput struct {
65057	_ struct{} `type:"structure"`
65058
65059	// Please use UpdateSecurityProfileRequest$additionalMetricsToRetainV2 instead.
65060	//
65061	// A list of metrics whose data is retained (stored). By default, data is retained
65062	// for any metric used in the profile's behaviors, but it is also retained for
65063	// any metric specified here. Can be used with custom metrics; cannot be used
65064	// with dimensions.
65065	//
65066	// Deprecated: Use additionalMetricsToRetainV2.
65067	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
65068
65069	// A list of metrics whose data is retained (stored). By default, data is retained
65070	// for any metric used in the profile's behaviors, but it is also retained for
65071	// any metric specified here. Can be used with custom metrics; cannot be used
65072	// with dimensions.
65073	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
65074
65075	// Where the alerts are sent. (Alerts are always sent to the console.)
65076	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
65077
65078	// Specifies the behaviors that, when violated by a device (thing), cause an
65079	// alert.
65080	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
65081
65082	// If true, delete all additionalMetricsToRetain defined for this security profile.
65083	// If any additionalMetricsToRetain are defined in the current invocation, an
65084	// exception occurs.
65085	DeleteAdditionalMetricsToRetain *bool `locationName:"deleteAdditionalMetricsToRetain" type:"boolean"`
65086
65087	// If true, delete all alertTargets defined for this security profile. If any
65088	// alertTargets are defined in the current invocation, an exception occurs.
65089	DeleteAlertTargets *bool `locationName:"deleteAlertTargets" type:"boolean"`
65090
65091	// If true, delete all behaviors defined for this security profile. If any behaviors
65092	// are defined in the current invocation, an exception occurs.
65093	DeleteBehaviors *bool `locationName:"deleteBehaviors" type:"boolean"`
65094
65095	// The expected version of the security profile. A new version is generated
65096	// whenever the security profile is updated. If you specify a value that is
65097	// different from the actual version, a VersionConflictException is thrown.
65098	ExpectedVersion *int64 `location:"querystring" locationName:"expectedVersion" type:"long"`
65099
65100	// A description of the security profile.
65101	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
65102
65103	// The name of the security profile you want to update.
65104	//
65105	// SecurityProfileName is a required field
65106	SecurityProfileName *string `location:"uri" locationName:"securityProfileName" min:"1" type:"string" required:"true"`
65107}
65108
65109// String returns the string representation.
65110//
65111// API parameter values that are decorated as "sensitive" in the API will not
65112// be included in the string output. The member name will be present, but the
65113// value will be replaced with "sensitive".
65114func (s UpdateSecurityProfileInput) String() string {
65115	return awsutil.Prettify(s)
65116}
65117
65118// GoString returns the string representation.
65119//
65120// API parameter values that are decorated as "sensitive" in the API will not
65121// be included in the string output. The member name will be present, but the
65122// value will be replaced with "sensitive".
65123func (s UpdateSecurityProfileInput) GoString() string {
65124	return s.String()
65125}
65126
65127// Validate inspects the fields of the type to determine if they are valid.
65128func (s *UpdateSecurityProfileInput) Validate() error {
65129	invalidParams := request.ErrInvalidParams{Context: "UpdateSecurityProfileInput"}
65130	if s.SecurityProfileName == nil {
65131		invalidParams.Add(request.NewErrParamRequired("SecurityProfileName"))
65132	}
65133	if s.SecurityProfileName != nil && len(*s.SecurityProfileName) < 1 {
65134		invalidParams.Add(request.NewErrParamMinLen("SecurityProfileName", 1))
65135	}
65136	if s.AdditionalMetricsToRetainV2 != nil {
65137		for i, v := range s.AdditionalMetricsToRetainV2 {
65138			if v == nil {
65139				continue
65140			}
65141			if err := v.Validate(); err != nil {
65142				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AdditionalMetricsToRetainV2", i), err.(request.ErrInvalidParams))
65143			}
65144		}
65145	}
65146	if s.AlertTargets != nil {
65147		for i, v := range s.AlertTargets {
65148			if v == nil {
65149				continue
65150			}
65151			if err := v.Validate(); err != nil {
65152				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "AlertTargets", i), err.(request.ErrInvalidParams))
65153			}
65154		}
65155	}
65156	if s.Behaviors != nil {
65157		for i, v := range s.Behaviors {
65158			if v == nil {
65159				continue
65160			}
65161			if err := v.Validate(); err != nil {
65162				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
65163			}
65164		}
65165	}
65166
65167	if invalidParams.Len() > 0 {
65168		return invalidParams
65169	}
65170	return nil
65171}
65172
65173// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
65174func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileInput {
65175	s.AdditionalMetricsToRetain = v
65176	return s
65177}
65178
65179// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
65180func (s *UpdateSecurityProfileInput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileInput {
65181	s.AdditionalMetricsToRetainV2 = v
65182	return s
65183}
65184
65185// SetAlertTargets sets the AlertTargets field's value.
65186func (s *UpdateSecurityProfileInput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileInput {
65187	s.AlertTargets = v
65188	return s
65189}
65190
65191// SetBehaviors sets the Behaviors field's value.
65192func (s *UpdateSecurityProfileInput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileInput {
65193	s.Behaviors = v
65194	return s
65195}
65196
65197// SetDeleteAdditionalMetricsToRetain sets the DeleteAdditionalMetricsToRetain field's value.
65198func (s *UpdateSecurityProfileInput) SetDeleteAdditionalMetricsToRetain(v bool) *UpdateSecurityProfileInput {
65199	s.DeleteAdditionalMetricsToRetain = &v
65200	return s
65201}
65202
65203// SetDeleteAlertTargets sets the DeleteAlertTargets field's value.
65204func (s *UpdateSecurityProfileInput) SetDeleteAlertTargets(v bool) *UpdateSecurityProfileInput {
65205	s.DeleteAlertTargets = &v
65206	return s
65207}
65208
65209// SetDeleteBehaviors sets the DeleteBehaviors field's value.
65210func (s *UpdateSecurityProfileInput) SetDeleteBehaviors(v bool) *UpdateSecurityProfileInput {
65211	s.DeleteBehaviors = &v
65212	return s
65213}
65214
65215// SetExpectedVersion sets the ExpectedVersion field's value.
65216func (s *UpdateSecurityProfileInput) SetExpectedVersion(v int64) *UpdateSecurityProfileInput {
65217	s.ExpectedVersion = &v
65218	return s
65219}
65220
65221// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
65222func (s *UpdateSecurityProfileInput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileInput {
65223	s.SecurityProfileDescription = &v
65224	return s
65225}
65226
65227// SetSecurityProfileName sets the SecurityProfileName field's value.
65228func (s *UpdateSecurityProfileInput) SetSecurityProfileName(v string) *UpdateSecurityProfileInput {
65229	s.SecurityProfileName = &v
65230	return s
65231}
65232
65233type UpdateSecurityProfileOutput struct {
65234	_ struct{} `type:"structure"`
65235
65236	// Please use UpdateSecurityProfileResponse$additionalMetricsToRetainV2 instead.
65237	//
65238	// A list of metrics whose data is retained (stored). By default, data is retained
65239	// for any metric used in the security profile's behaviors, but it is also retained
65240	// for any metric specified here.
65241	//
65242	// Deprecated: Use additionalMetricsToRetainV2.
65243	AdditionalMetricsToRetain []*string `locationName:"additionalMetricsToRetain" deprecated:"true" type:"list"`
65244
65245	// A list of metrics whose data is retained (stored). By default, data is retained
65246	// for any metric used in the profile's behaviors, but it is also retained for
65247	// any metric specified here. Can be used with custom metrics; cannot be used
65248	// with dimensions.
65249	AdditionalMetricsToRetainV2 []*MetricToRetain `locationName:"additionalMetricsToRetainV2" type:"list"`
65250
65251	// Where the alerts are sent. (Alerts are always sent to the console.)
65252	AlertTargets map[string]*AlertTarget `locationName:"alertTargets" type:"map"`
65253
65254	// Specifies the behaviors that, when violated by a device (thing), cause an
65255	// alert.
65256	Behaviors []*Behavior `locationName:"behaviors" type:"list"`
65257
65258	// The time the security profile was created.
65259	CreationDate *time.Time `locationName:"creationDate" type:"timestamp"`
65260
65261	// The time the security profile was last modified.
65262	LastModifiedDate *time.Time `locationName:"lastModifiedDate" type:"timestamp"`
65263
65264	// The ARN of the security profile that was updated.
65265	SecurityProfileArn *string `locationName:"securityProfileArn" type:"string"`
65266
65267	// The description of the security profile.
65268	SecurityProfileDescription *string `locationName:"securityProfileDescription" type:"string"`
65269
65270	// The name of the security profile that was updated.
65271	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
65272
65273	// The updated version of the security profile.
65274	Version *int64 `locationName:"version" type:"long"`
65275}
65276
65277// String returns the string representation.
65278//
65279// API parameter values that are decorated as "sensitive" in the API will not
65280// be included in the string output. The member name will be present, but the
65281// value will be replaced with "sensitive".
65282func (s UpdateSecurityProfileOutput) String() string {
65283	return awsutil.Prettify(s)
65284}
65285
65286// GoString returns the string representation.
65287//
65288// API parameter values that are decorated as "sensitive" in the API will not
65289// be included in the string output. The member name will be present, but the
65290// value will be replaced with "sensitive".
65291func (s UpdateSecurityProfileOutput) GoString() string {
65292	return s.String()
65293}
65294
65295// SetAdditionalMetricsToRetain sets the AdditionalMetricsToRetain field's value.
65296func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetain(v []*string) *UpdateSecurityProfileOutput {
65297	s.AdditionalMetricsToRetain = v
65298	return s
65299}
65300
65301// SetAdditionalMetricsToRetainV2 sets the AdditionalMetricsToRetainV2 field's value.
65302func (s *UpdateSecurityProfileOutput) SetAdditionalMetricsToRetainV2(v []*MetricToRetain) *UpdateSecurityProfileOutput {
65303	s.AdditionalMetricsToRetainV2 = v
65304	return s
65305}
65306
65307// SetAlertTargets sets the AlertTargets field's value.
65308func (s *UpdateSecurityProfileOutput) SetAlertTargets(v map[string]*AlertTarget) *UpdateSecurityProfileOutput {
65309	s.AlertTargets = v
65310	return s
65311}
65312
65313// SetBehaviors sets the Behaviors field's value.
65314func (s *UpdateSecurityProfileOutput) SetBehaviors(v []*Behavior) *UpdateSecurityProfileOutput {
65315	s.Behaviors = v
65316	return s
65317}
65318
65319// SetCreationDate sets the CreationDate field's value.
65320func (s *UpdateSecurityProfileOutput) SetCreationDate(v time.Time) *UpdateSecurityProfileOutput {
65321	s.CreationDate = &v
65322	return s
65323}
65324
65325// SetLastModifiedDate sets the LastModifiedDate field's value.
65326func (s *UpdateSecurityProfileOutput) SetLastModifiedDate(v time.Time) *UpdateSecurityProfileOutput {
65327	s.LastModifiedDate = &v
65328	return s
65329}
65330
65331// SetSecurityProfileArn sets the SecurityProfileArn field's value.
65332func (s *UpdateSecurityProfileOutput) SetSecurityProfileArn(v string) *UpdateSecurityProfileOutput {
65333	s.SecurityProfileArn = &v
65334	return s
65335}
65336
65337// SetSecurityProfileDescription sets the SecurityProfileDescription field's value.
65338func (s *UpdateSecurityProfileOutput) SetSecurityProfileDescription(v string) *UpdateSecurityProfileOutput {
65339	s.SecurityProfileDescription = &v
65340	return s
65341}
65342
65343// SetSecurityProfileName sets the SecurityProfileName field's value.
65344func (s *UpdateSecurityProfileOutput) SetSecurityProfileName(v string) *UpdateSecurityProfileOutput {
65345	s.SecurityProfileName = &v
65346	return s
65347}
65348
65349// SetVersion sets the Version field's value.
65350func (s *UpdateSecurityProfileOutput) SetVersion(v int64) *UpdateSecurityProfileOutput {
65351	s.Version = &v
65352	return s
65353}
65354
65355type UpdateStreamInput struct {
65356	_ struct{} `type:"structure"`
65357
65358	// The description of the stream.
65359	Description *string `locationName:"description" type:"string"`
65360
65361	// The files associated with the stream.
65362	Files []*StreamFile `locationName:"files" min:"1" type:"list"`
65363
65364	// An IAM role that allows the IoT service principal assumes to access your
65365	// S3 files.
65366	RoleArn *string `locationName:"roleArn" min:"20" type:"string"`
65367
65368	// The stream ID.
65369	//
65370	// StreamId is a required field
65371	StreamId *string `location:"uri" locationName:"streamId" min:"1" type:"string" required:"true"`
65372}
65373
65374// String returns the string representation.
65375//
65376// API parameter values that are decorated as "sensitive" in the API will not
65377// be included in the string output. The member name will be present, but the
65378// value will be replaced with "sensitive".
65379func (s UpdateStreamInput) String() string {
65380	return awsutil.Prettify(s)
65381}
65382
65383// GoString returns the string representation.
65384//
65385// API parameter values that are decorated as "sensitive" in the API will not
65386// be included in the string output. The member name will be present, but the
65387// value will be replaced with "sensitive".
65388func (s UpdateStreamInput) GoString() string {
65389	return s.String()
65390}
65391
65392// Validate inspects the fields of the type to determine if they are valid.
65393func (s *UpdateStreamInput) Validate() error {
65394	invalidParams := request.ErrInvalidParams{Context: "UpdateStreamInput"}
65395	if s.Files != nil && len(s.Files) < 1 {
65396		invalidParams.Add(request.NewErrParamMinLen("Files", 1))
65397	}
65398	if s.RoleArn != nil && len(*s.RoleArn) < 20 {
65399		invalidParams.Add(request.NewErrParamMinLen("RoleArn", 20))
65400	}
65401	if s.StreamId == nil {
65402		invalidParams.Add(request.NewErrParamRequired("StreamId"))
65403	}
65404	if s.StreamId != nil && len(*s.StreamId) < 1 {
65405		invalidParams.Add(request.NewErrParamMinLen("StreamId", 1))
65406	}
65407	if s.Files != nil {
65408		for i, v := range s.Files {
65409			if v == nil {
65410				continue
65411			}
65412			if err := v.Validate(); err != nil {
65413				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Files", i), err.(request.ErrInvalidParams))
65414			}
65415		}
65416	}
65417
65418	if invalidParams.Len() > 0 {
65419		return invalidParams
65420	}
65421	return nil
65422}
65423
65424// SetDescription sets the Description field's value.
65425func (s *UpdateStreamInput) SetDescription(v string) *UpdateStreamInput {
65426	s.Description = &v
65427	return s
65428}
65429
65430// SetFiles sets the Files field's value.
65431func (s *UpdateStreamInput) SetFiles(v []*StreamFile) *UpdateStreamInput {
65432	s.Files = v
65433	return s
65434}
65435
65436// SetRoleArn sets the RoleArn field's value.
65437func (s *UpdateStreamInput) SetRoleArn(v string) *UpdateStreamInput {
65438	s.RoleArn = &v
65439	return s
65440}
65441
65442// SetStreamId sets the StreamId field's value.
65443func (s *UpdateStreamInput) SetStreamId(v string) *UpdateStreamInput {
65444	s.StreamId = &v
65445	return s
65446}
65447
65448type UpdateStreamOutput struct {
65449	_ struct{} `type:"structure"`
65450
65451	// A description of the stream.
65452	Description *string `locationName:"description" type:"string"`
65453
65454	// The stream ARN.
65455	StreamArn *string `locationName:"streamArn" type:"string"`
65456
65457	// The stream ID.
65458	StreamId *string `locationName:"streamId" min:"1" type:"string"`
65459
65460	// The stream version.
65461	StreamVersion *int64 `locationName:"streamVersion" type:"integer"`
65462}
65463
65464// String returns the string representation.
65465//
65466// API parameter values that are decorated as "sensitive" in the API will not
65467// be included in the string output. The member name will be present, but the
65468// value will be replaced with "sensitive".
65469func (s UpdateStreamOutput) String() string {
65470	return awsutil.Prettify(s)
65471}
65472
65473// GoString returns the string representation.
65474//
65475// API parameter values that are decorated as "sensitive" in the API will not
65476// be included in the string output. The member name will be present, but the
65477// value will be replaced with "sensitive".
65478func (s UpdateStreamOutput) GoString() string {
65479	return s.String()
65480}
65481
65482// SetDescription sets the Description field's value.
65483func (s *UpdateStreamOutput) SetDescription(v string) *UpdateStreamOutput {
65484	s.Description = &v
65485	return s
65486}
65487
65488// SetStreamArn sets the StreamArn field's value.
65489func (s *UpdateStreamOutput) SetStreamArn(v string) *UpdateStreamOutput {
65490	s.StreamArn = &v
65491	return s
65492}
65493
65494// SetStreamId sets the StreamId field's value.
65495func (s *UpdateStreamOutput) SetStreamId(v string) *UpdateStreamOutput {
65496	s.StreamId = &v
65497	return s
65498}
65499
65500// SetStreamVersion sets the StreamVersion field's value.
65501func (s *UpdateStreamOutput) SetStreamVersion(v int64) *UpdateStreamOutput {
65502	s.StreamVersion = &v
65503	return s
65504}
65505
65506type UpdateThingGroupInput struct {
65507	_ struct{} `type:"structure"`
65508
65509	// The expected version of the thing group. If this does not match the version
65510	// of the thing group being updated, the update will fail.
65511	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
65512
65513	// The thing group to update.
65514	//
65515	// ThingGroupName is a required field
65516	ThingGroupName *string `location:"uri" locationName:"thingGroupName" min:"1" type:"string" required:"true"`
65517
65518	// The thing group properties.
65519	//
65520	// ThingGroupProperties is a required field
65521	ThingGroupProperties *ThingGroupProperties `locationName:"thingGroupProperties" type:"structure" required:"true"`
65522}
65523
65524// String returns the string representation.
65525//
65526// API parameter values that are decorated as "sensitive" in the API will not
65527// be included in the string output. The member name will be present, but the
65528// value will be replaced with "sensitive".
65529func (s UpdateThingGroupInput) String() string {
65530	return awsutil.Prettify(s)
65531}
65532
65533// GoString returns the string representation.
65534//
65535// API parameter values that are decorated as "sensitive" in the API will not
65536// be included in the string output. The member name will be present, but the
65537// value will be replaced with "sensitive".
65538func (s UpdateThingGroupInput) GoString() string {
65539	return s.String()
65540}
65541
65542// Validate inspects the fields of the type to determine if they are valid.
65543func (s *UpdateThingGroupInput) Validate() error {
65544	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupInput"}
65545	if s.ThingGroupName == nil {
65546		invalidParams.Add(request.NewErrParamRequired("ThingGroupName"))
65547	}
65548	if s.ThingGroupName != nil && len(*s.ThingGroupName) < 1 {
65549		invalidParams.Add(request.NewErrParamMinLen("ThingGroupName", 1))
65550	}
65551	if s.ThingGroupProperties == nil {
65552		invalidParams.Add(request.NewErrParamRequired("ThingGroupProperties"))
65553	}
65554
65555	if invalidParams.Len() > 0 {
65556		return invalidParams
65557	}
65558	return nil
65559}
65560
65561// SetExpectedVersion sets the ExpectedVersion field's value.
65562func (s *UpdateThingGroupInput) SetExpectedVersion(v int64) *UpdateThingGroupInput {
65563	s.ExpectedVersion = &v
65564	return s
65565}
65566
65567// SetThingGroupName sets the ThingGroupName field's value.
65568func (s *UpdateThingGroupInput) SetThingGroupName(v string) *UpdateThingGroupInput {
65569	s.ThingGroupName = &v
65570	return s
65571}
65572
65573// SetThingGroupProperties sets the ThingGroupProperties field's value.
65574func (s *UpdateThingGroupInput) SetThingGroupProperties(v *ThingGroupProperties) *UpdateThingGroupInput {
65575	s.ThingGroupProperties = v
65576	return s
65577}
65578
65579type UpdateThingGroupOutput struct {
65580	_ struct{} `type:"structure"`
65581
65582	// The version of the updated thing group.
65583	Version *int64 `locationName:"version" type:"long"`
65584}
65585
65586// String returns the string representation.
65587//
65588// API parameter values that are decorated as "sensitive" in the API will not
65589// be included in the string output. The member name will be present, but the
65590// value will be replaced with "sensitive".
65591func (s UpdateThingGroupOutput) String() string {
65592	return awsutil.Prettify(s)
65593}
65594
65595// GoString returns the string representation.
65596//
65597// API parameter values that are decorated as "sensitive" in the API will not
65598// be included in the string output. The member name will be present, but the
65599// value will be replaced with "sensitive".
65600func (s UpdateThingGroupOutput) GoString() string {
65601	return s.String()
65602}
65603
65604// SetVersion sets the Version field's value.
65605func (s *UpdateThingGroupOutput) SetVersion(v int64) *UpdateThingGroupOutput {
65606	s.Version = &v
65607	return s
65608}
65609
65610type UpdateThingGroupsForThingInput struct {
65611	_ struct{} `type:"structure"`
65612
65613	// Override dynamic thing groups with static thing groups when 10-group limit
65614	// is reached. If a thing belongs to 10 thing groups, and one or more of those
65615	// groups are dynamic thing groups, adding a thing to a static group removes
65616	// the thing from the last dynamic group.
65617	OverrideDynamicGroups *bool `locationName:"overrideDynamicGroups" type:"boolean"`
65618
65619	// The groups to which the thing will be added.
65620	ThingGroupsToAdd []*string `locationName:"thingGroupsToAdd" type:"list"`
65621
65622	// The groups from which the thing will be removed.
65623	ThingGroupsToRemove []*string `locationName:"thingGroupsToRemove" type:"list"`
65624
65625	// The thing whose group memberships will be updated.
65626	ThingName *string `locationName:"thingName" min:"1" type:"string"`
65627}
65628
65629// String returns the string representation.
65630//
65631// API parameter values that are decorated as "sensitive" in the API will not
65632// be included in the string output. The member name will be present, but the
65633// value will be replaced with "sensitive".
65634func (s UpdateThingGroupsForThingInput) String() string {
65635	return awsutil.Prettify(s)
65636}
65637
65638// GoString returns the string representation.
65639//
65640// API parameter values that are decorated as "sensitive" in the API will not
65641// be included in the string output. The member name will be present, but the
65642// value will be replaced with "sensitive".
65643func (s UpdateThingGroupsForThingInput) GoString() string {
65644	return s.String()
65645}
65646
65647// Validate inspects the fields of the type to determine if they are valid.
65648func (s *UpdateThingGroupsForThingInput) Validate() error {
65649	invalidParams := request.ErrInvalidParams{Context: "UpdateThingGroupsForThingInput"}
65650	if s.ThingName != nil && len(*s.ThingName) < 1 {
65651		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
65652	}
65653
65654	if invalidParams.Len() > 0 {
65655		return invalidParams
65656	}
65657	return nil
65658}
65659
65660// SetOverrideDynamicGroups sets the OverrideDynamicGroups field's value.
65661func (s *UpdateThingGroupsForThingInput) SetOverrideDynamicGroups(v bool) *UpdateThingGroupsForThingInput {
65662	s.OverrideDynamicGroups = &v
65663	return s
65664}
65665
65666// SetThingGroupsToAdd sets the ThingGroupsToAdd field's value.
65667func (s *UpdateThingGroupsForThingInput) SetThingGroupsToAdd(v []*string) *UpdateThingGroupsForThingInput {
65668	s.ThingGroupsToAdd = v
65669	return s
65670}
65671
65672// SetThingGroupsToRemove sets the ThingGroupsToRemove field's value.
65673func (s *UpdateThingGroupsForThingInput) SetThingGroupsToRemove(v []*string) *UpdateThingGroupsForThingInput {
65674	s.ThingGroupsToRemove = v
65675	return s
65676}
65677
65678// SetThingName sets the ThingName field's value.
65679func (s *UpdateThingGroupsForThingInput) SetThingName(v string) *UpdateThingGroupsForThingInput {
65680	s.ThingName = &v
65681	return s
65682}
65683
65684type UpdateThingGroupsForThingOutput struct {
65685	_ struct{} `type:"structure"`
65686}
65687
65688// String returns the string representation.
65689//
65690// API parameter values that are decorated as "sensitive" in the API will not
65691// be included in the string output. The member name will be present, but the
65692// value will be replaced with "sensitive".
65693func (s UpdateThingGroupsForThingOutput) String() string {
65694	return awsutil.Prettify(s)
65695}
65696
65697// GoString returns the string representation.
65698//
65699// API parameter values that are decorated as "sensitive" in the API will not
65700// be included in the string output. The member name will be present, but the
65701// value will be replaced with "sensitive".
65702func (s UpdateThingGroupsForThingOutput) GoString() string {
65703	return s.String()
65704}
65705
65706// The input for the UpdateThing operation.
65707type UpdateThingInput struct {
65708	_ struct{} `type:"structure"`
65709
65710	// A list of thing attributes, a JSON string containing name-value pairs. For
65711	// example:
65712	//
65713	// {\"attributes\":{\"name1\":\"value2\"}}
65714	//
65715	// This data is used to add new attributes or update existing attributes.
65716	AttributePayload *AttributePayload `locationName:"attributePayload" type:"structure"`
65717
65718	// The expected version of the thing record in the registry. If the version
65719	// of the record in the registry does not match the expected version specified
65720	// in the request, the UpdateThing request is rejected with a VersionConflictException.
65721	ExpectedVersion *int64 `locationName:"expectedVersion" type:"long"`
65722
65723	// Remove a thing type association. If true, the association is removed.
65724	RemoveThingType *bool `locationName:"removeThingType" type:"boolean"`
65725
65726	// The name of the thing to update.
65727	//
65728	// You can't change a thing's name. To change a thing's name, you must create
65729	// a new thing, give it the new name, and then delete the old thing.
65730	//
65731	// ThingName is a required field
65732	ThingName *string `location:"uri" locationName:"thingName" min:"1" type:"string" required:"true"`
65733
65734	// The name of the thing type.
65735	ThingTypeName *string `locationName:"thingTypeName" min:"1" type:"string"`
65736}
65737
65738// String returns the string representation.
65739//
65740// API parameter values that are decorated as "sensitive" in the API will not
65741// be included in the string output. The member name will be present, but the
65742// value will be replaced with "sensitive".
65743func (s UpdateThingInput) String() string {
65744	return awsutil.Prettify(s)
65745}
65746
65747// GoString returns the string representation.
65748//
65749// API parameter values that are decorated as "sensitive" in the API will not
65750// be included in the string output. The member name will be present, but the
65751// value will be replaced with "sensitive".
65752func (s UpdateThingInput) GoString() string {
65753	return s.String()
65754}
65755
65756// Validate inspects the fields of the type to determine if they are valid.
65757func (s *UpdateThingInput) Validate() error {
65758	invalidParams := request.ErrInvalidParams{Context: "UpdateThingInput"}
65759	if s.ThingName == nil {
65760		invalidParams.Add(request.NewErrParamRequired("ThingName"))
65761	}
65762	if s.ThingName != nil && len(*s.ThingName) < 1 {
65763		invalidParams.Add(request.NewErrParamMinLen("ThingName", 1))
65764	}
65765	if s.ThingTypeName != nil && len(*s.ThingTypeName) < 1 {
65766		invalidParams.Add(request.NewErrParamMinLen("ThingTypeName", 1))
65767	}
65768
65769	if invalidParams.Len() > 0 {
65770		return invalidParams
65771	}
65772	return nil
65773}
65774
65775// SetAttributePayload sets the AttributePayload field's value.
65776func (s *UpdateThingInput) SetAttributePayload(v *AttributePayload) *UpdateThingInput {
65777	s.AttributePayload = v
65778	return s
65779}
65780
65781// SetExpectedVersion sets the ExpectedVersion field's value.
65782func (s *UpdateThingInput) SetExpectedVersion(v int64) *UpdateThingInput {
65783	s.ExpectedVersion = &v
65784	return s
65785}
65786
65787// SetRemoveThingType sets the RemoveThingType field's value.
65788func (s *UpdateThingInput) SetRemoveThingType(v bool) *UpdateThingInput {
65789	s.RemoveThingType = &v
65790	return s
65791}
65792
65793// SetThingName sets the ThingName field's value.
65794func (s *UpdateThingInput) SetThingName(v string) *UpdateThingInput {
65795	s.ThingName = &v
65796	return s
65797}
65798
65799// SetThingTypeName sets the ThingTypeName field's value.
65800func (s *UpdateThingInput) SetThingTypeName(v string) *UpdateThingInput {
65801	s.ThingTypeName = &v
65802	return s
65803}
65804
65805// The output from the UpdateThing operation.
65806type UpdateThingOutput struct {
65807	_ struct{} `type:"structure"`
65808}
65809
65810// String returns the string representation.
65811//
65812// API parameter values that are decorated as "sensitive" in the API will not
65813// be included in the string output. The member name will be present, but the
65814// value will be replaced with "sensitive".
65815func (s UpdateThingOutput) String() string {
65816	return awsutil.Prettify(s)
65817}
65818
65819// GoString returns the string representation.
65820//
65821// API parameter values that are decorated as "sensitive" in the API will not
65822// be included in the string output. The member name will be present, but the
65823// value will be replaced with "sensitive".
65824func (s UpdateThingOutput) GoString() string {
65825	return s.String()
65826}
65827
65828type UpdateTopicRuleDestinationInput struct {
65829	_ struct{} `type:"structure"`
65830
65831	// The ARN of the topic rule destination.
65832	//
65833	// Arn is a required field
65834	Arn *string `locationName:"arn" type:"string" required:"true"`
65835
65836	// The status of the topic rule destination. Valid values are:
65837	//
65838	// IN_PROGRESS
65839	//
65840	// A topic rule destination was created but has not been confirmed. You can
65841	// set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
65842	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
65843	// to your confirmation endpoint.
65844	//
65845	// ENABLED
65846	//
65847	// Confirmation was completed, and traffic to this destination is allowed. You
65848	// can set status to DISABLED by calling UpdateTopicRuleDestination.
65849	//
65850	// DISABLED
65851	//
65852	// Confirmation was completed, and traffic to this destination is not allowed.
65853	// You can set status to ENABLED by calling UpdateTopicRuleDestination.
65854	//
65855	// ERROR
65856	//
65857	// Confirmation could not be completed, for example if the confirmation timed
65858	// out. You can call GetTopicRuleDestination for details about the error. You
65859	// can set status to IN_PROGRESS by calling UpdateTopicRuleDestination. Calling
65860	// UpdateTopicRuleDestination causes a new confirmation challenge to be sent
65861	// to your confirmation endpoint.
65862	//
65863	// Status is a required field
65864	Status *string `locationName:"status" type:"string" required:"true" enum:"TopicRuleDestinationStatus"`
65865}
65866
65867// String returns the string representation.
65868//
65869// API parameter values that are decorated as "sensitive" in the API will not
65870// be included in the string output. The member name will be present, but the
65871// value will be replaced with "sensitive".
65872func (s UpdateTopicRuleDestinationInput) String() string {
65873	return awsutil.Prettify(s)
65874}
65875
65876// GoString returns the string representation.
65877//
65878// API parameter values that are decorated as "sensitive" in the API will not
65879// be included in the string output. The member name will be present, but the
65880// value will be replaced with "sensitive".
65881func (s UpdateTopicRuleDestinationInput) GoString() string {
65882	return s.String()
65883}
65884
65885// Validate inspects the fields of the type to determine if they are valid.
65886func (s *UpdateTopicRuleDestinationInput) Validate() error {
65887	invalidParams := request.ErrInvalidParams{Context: "UpdateTopicRuleDestinationInput"}
65888	if s.Arn == nil {
65889		invalidParams.Add(request.NewErrParamRequired("Arn"))
65890	}
65891	if s.Status == nil {
65892		invalidParams.Add(request.NewErrParamRequired("Status"))
65893	}
65894
65895	if invalidParams.Len() > 0 {
65896		return invalidParams
65897	}
65898	return nil
65899}
65900
65901// SetArn sets the Arn field's value.
65902func (s *UpdateTopicRuleDestinationInput) SetArn(v string) *UpdateTopicRuleDestinationInput {
65903	s.Arn = &v
65904	return s
65905}
65906
65907// SetStatus sets the Status field's value.
65908func (s *UpdateTopicRuleDestinationInput) SetStatus(v string) *UpdateTopicRuleDestinationInput {
65909	s.Status = &v
65910	return s
65911}
65912
65913type UpdateTopicRuleDestinationOutput struct {
65914	_ struct{} `type:"structure"`
65915}
65916
65917// String returns the string representation.
65918//
65919// API parameter values that are decorated as "sensitive" in the API will not
65920// be included in the string output. The member name will be present, but the
65921// value will be replaced with "sensitive".
65922func (s UpdateTopicRuleDestinationOutput) String() string {
65923	return awsutil.Prettify(s)
65924}
65925
65926// GoString returns the string representation.
65927//
65928// API parameter values that are decorated as "sensitive" in the API will not
65929// be included in the string output. The member name will be present, but the
65930// value will be replaced with "sensitive".
65931func (s UpdateTopicRuleDestinationOutput) GoString() string {
65932	return s.String()
65933}
65934
65935type ValidateSecurityProfileBehaviorsInput struct {
65936	_ struct{} `type:"structure"`
65937
65938	// Specifies the behaviors that, when violated by a device (thing), cause an
65939	// alert.
65940	//
65941	// Behaviors is a required field
65942	Behaviors []*Behavior `locationName:"behaviors" type:"list" required:"true"`
65943}
65944
65945// String returns the string representation.
65946//
65947// API parameter values that are decorated as "sensitive" in the API will not
65948// be included in the string output. The member name will be present, but the
65949// value will be replaced with "sensitive".
65950func (s ValidateSecurityProfileBehaviorsInput) String() string {
65951	return awsutil.Prettify(s)
65952}
65953
65954// GoString returns the string representation.
65955//
65956// API parameter values that are decorated as "sensitive" in the API will not
65957// be included in the string output. The member name will be present, but the
65958// value will be replaced with "sensitive".
65959func (s ValidateSecurityProfileBehaviorsInput) GoString() string {
65960	return s.String()
65961}
65962
65963// Validate inspects the fields of the type to determine if they are valid.
65964func (s *ValidateSecurityProfileBehaviorsInput) Validate() error {
65965	invalidParams := request.ErrInvalidParams{Context: "ValidateSecurityProfileBehaviorsInput"}
65966	if s.Behaviors == nil {
65967		invalidParams.Add(request.NewErrParamRequired("Behaviors"))
65968	}
65969	if s.Behaviors != nil {
65970		for i, v := range s.Behaviors {
65971			if v == nil {
65972				continue
65973			}
65974			if err := v.Validate(); err != nil {
65975				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Behaviors", i), err.(request.ErrInvalidParams))
65976			}
65977		}
65978	}
65979
65980	if invalidParams.Len() > 0 {
65981		return invalidParams
65982	}
65983	return nil
65984}
65985
65986// SetBehaviors sets the Behaviors field's value.
65987func (s *ValidateSecurityProfileBehaviorsInput) SetBehaviors(v []*Behavior) *ValidateSecurityProfileBehaviorsInput {
65988	s.Behaviors = v
65989	return s
65990}
65991
65992type ValidateSecurityProfileBehaviorsOutput struct {
65993	_ struct{} `type:"structure"`
65994
65995	// True if the behaviors were valid.
65996	Valid *bool `locationName:"valid" type:"boolean"`
65997
65998	// The list of any errors found in the behaviors.
65999	ValidationErrors []*ValidationError `locationName:"validationErrors" type:"list"`
66000}
66001
66002// String returns the string representation.
66003//
66004// API parameter values that are decorated as "sensitive" in the API will not
66005// be included in the string output. The member name will be present, but the
66006// value will be replaced with "sensitive".
66007func (s ValidateSecurityProfileBehaviorsOutput) String() string {
66008	return awsutil.Prettify(s)
66009}
66010
66011// GoString returns the string representation.
66012//
66013// API parameter values that are decorated as "sensitive" in the API will not
66014// be included in the string output. The member name will be present, but the
66015// value will be replaced with "sensitive".
66016func (s ValidateSecurityProfileBehaviorsOutput) GoString() string {
66017	return s.String()
66018}
66019
66020// SetValid sets the Valid field's value.
66021func (s *ValidateSecurityProfileBehaviorsOutput) SetValid(v bool) *ValidateSecurityProfileBehaviorsOutput {
66022	s.Valid = &v
66023	return s
66024}
66025
66026// SetValidationErrors sets the ValidationErrors field's value.
66027func (s *ValidateSecurityProfileBehaviorsOutput) SetValidationErrors(v []*ValidationError) *ValidateSecurityProfileBehaviorsOutput {
66028	s.ValidationErrors = v
66029	return s
66030}
66031
66032// Information about an error found in a behavior specification.
66033type ValidationError struct {
66034	_ struct{} `type:"structure"`
66035
66036	// The description of an error found in the behaviors.
66037	ErrorMessage *string `locationName:"errorMessage" type:"string"`
66038}
66039
66040// String returns the string representation.
66041//
66042// API parameter values that are decorated as "sensitive" in the API will not
66043// be included in the string output. The member name will be present, but the
66044// value will be replaced with "sensitive".
66045func (s ValidationError) String() string {
66046	return awsutil.Prettify(s)
66047}
66048
66049// GoString returns the string representation.
66050//
66051// API parameter values that are decorated as "sensitive" in the API will not
66052// be included in the string output. The member name will be present, but the
66053// value will be replaced with "sensitive".
66054func (s ValidationError) GoString() string {
66055	return s.String()
66056}
66057
66058// SetErrorMessage sets the ErrorMessage field's value.
66059func (s *ValidationError) SetErrorMessage(v string) *ValidationError {
66060	s.ErrorMessage = &v
66061	return s
66062}
66063
66064// An exception thrown when the version of an entity specified with the expectedVersion
66065// parameter does not match the latest version in the system.
66066type VersionConflictException struct {
66067	_            struct{}                  `type:"structure"`
66068	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
66069
66070	// The message for the exception.
66071	Message_ *string `locationName:"message" type:"string"`
66072}
66073
66074// String returns the string representation.
66075//
66076// API parameter values that are decorated as "sensitive" in the API will not
66077// be included in the string output. The member name will be present, but the
66078// value will be replaced with "sensitive".
66079func (s VersionConflictException) String() string {
66080	return awsutil.Prettify(s)
66081}
66082
66083// GoString returns the string representation.
66084//
66085// API parameter values that are decorated as "sensitive" in the API will not
66086// be included in the string output. The member name will be present, but the
66087// value will be replaced with "sensitive".
66088func (s VersionConflictException) GoString() string {
66089	return s.String()
66090}
66091
66092func newErrorVersionConflictException(v protocol.ResponseMetadata) error {
66093	return &VersionConflictException{
66094		RespMetadata: v,
66095	}
66096}
66097
66098// Code returns the exception type name.
66099func (s *VersionConflictException) Code() string {
66100	return "VersionConflictException"
66101}
66102
66103// Message returns the exception's message.
66104func (s *VersionConflictException) Message() string {
66105	if s.Message_ != nil {
66106		return *s.Message_
66107	}
66108	return ""
66109}
66110
66111// OrigErr always returns nil, satisfies awserr.Error interface.
66112func (s *VersionConflictException) OrigErr() error {
66113	return nil
66114}
66115
66116func (s *VersionConflictException) Error() string {
66117	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
66118}
66119
66120// Status code returns the HTTP status code for the request's response error.
66121func (s *VersionConflictException) StatusCode() int {
66122	return s.RespMetadata.StatusCode
66123}
66124
66125// RequestID returns the service's response RequestID for request.
66126func (s *VersionConflictException) RequestID() string {
66127	return s.RespMetadata.RequestID
66128}
66129
66130// The number of policy versions exceeds the limit.
66131type VersionsLimitExceededException struct {
66132	_            struct{}                  `type:"structure"`
66133	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
66134
66135	// The message for the exception.
66136	Message_ *string `locationName:"message" type:"string"`
66137}
66138
66139// String returns the string representation.
66140//
66141// API parameter values that are decorated as "sensitive" in the API will not
66142// be included in the string output. The member name will be present, but the
66143// value will be replaced with "sensitive".
66144func (s VersionsLimitExceededException) String() string {
66145	return awsutil.Prettify(s)
66146}
66147
66148// GoString returns the string representation.
66149//
66150// API parameter values that are decorated as "sensitive" in the API will not
66151// be included in the string output. The member name will be present, but the
66152// value will be replaced with "sensitive".
66153func (s VersionsLimitExceededException) GoString() string {
66154	return s.String()
66155}
66156
66157func newErrorVersionsLimitExceededException(v protocol.ResponseMetadata) error {
66158	return &VersionsLimitExceededException{
66159		RespMetadata: v,
66160	}
66161}
66162
66163// Code returns the exception type name.
66164func (s *VersionsLimitExceededException) Code() string {
66165	return "VersionsLimitExceededException"
66166}
66167
66168// Message returns the exception's message.
66169func (s *VersionsLimitExceededException) Message() string {
66170	if s.Message_ != nil {
66171		return *s.Message_
66172	}
66173	return ""
66174}
66175
66176// OrigErr always returns nil, satisfies awserr.Error interface.
66177func (s *VersionsLimitExceededException) OrigErr() error {
66178	return nil
66179}
66180
66181func (s *VersionsLimitExceededException) Error() string {
66182	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
66183}
66184
66185// Status code returns the HTTP status code for the request's response error.
66186func (s *VersionsLimitExceededException) StatusCode() int {
66187	return s.RespMetadata.StatusCode
66188}
66189
66190// RequestID returns the service's response RequestID for request.
66191func (s *VersionsLimitExceededException) RequestID() string {
66192	return s.RespMetadata.RequestID
66193}
66194
66195// Information about a Device Defender security profile behavior violation.
66196type ViolationEvent struct {
66197	_ struct{} `type:"structure"`
66198
66199	// The behavior that was violated.
66200	Behavior *Behavior `locationName:"behavior" type:"structure"`
66201
66202	// The value of the metric (the measurement).
66203	MetricValue *MetricValue `locationName:"metricValue" type:"structure"`
66204
66205	// The name of the security profile whose behavior was violated.
66206	SecurityProfileName *string `locationName:"securityProfileName" min:"1" type:"string"`
66207
66208	// The name of the thing responsible for the violation event.
66209	ThingName *string `locationName:"thingName" min:"1" type:"string"`
66210
66211	// The verification state of the violation (detect alarm).
66212	VerificationState *string `locationName:"verificationState" type:"string" enum:"VerificationState"`
66213
66214	// The description of the verification state of the violation.
66215	VerificationStateDescription *string `locationName:"verificationStateDescription" type:"string"`
66216
66217	// The details of a violation event.
66218	ViolationEventAdditionalInfo *ViolationEventAdditionalInfo `locationName:"violationEventAdditionalInfo" type:"structure"`
66219
66220	// The time the violation event occurred.
66221	ViolationEventTime *time.Time `locationName:"violationEventTime" type:"timestamp"`
66222
66223	// The type of violation event.
66224	ViolationEventType *string `locationName:"violationEventType" type:"string" enum:"ViolationEventType"`
66225
66226	// The ID of the violation event.
66227	ViolationId *string `locationName:"violationId" min:"1" type:"string"`
66228}
66229
66230// String returns the string representation.
66231//
66232// API parameter values that are decorated as "sensitive" in the API will not
66233// be included in the string output. The member name will be present, but the
66234// value will be replaced with "sensitive".
66235func (s ViolationEvent) String() string {
66236	return awsutil.Prettify(s)
66237}
66238
66239// GoString returns the string representation.
66240//
66241// API parameter values that are decorated as "sensitive" in the API will not
66242// be included in the string output. The member name will be present, but the
66243// value will be replaced with "sensitive".
66244func (s ViolationEvent) GoString() string {
66245	return s.String()
66246}
66247
66248// SetBehavior sets the Behavior field's value.
66249func (s *ViolationEvent) SetBehavior(v *Behavior) *ViolationEvent {
66250	s.Behavior = v
66251	return s
66252}
66253
66254// SetMetricValue sets the MetricValue field's value.
66255func (s *ViolationEvent) SetMetricValue(v *MetricValue) *ViolationEvent {
66256	s.MetricValue = v
66257	return s
66258}
66259
66260// SetSecurityProfileName sets the SecurityProfileName field's value.
66261func (s *ViolationEvent) SetSecurityProfileName(v string) *ViolationEvent {
66262	s.SecurityProfileName = &v
66263	return s
66264}
66265
66266// SetThingName sets the ThingName field's value.
66267func (s *ViolationEvent) SetThingName(v string) *ViolationEvent {
66268	s.ThingName = &v
66269	return s
66270}
66271
66272// SetVerificationState sets the VerificationState field's value.
66273func (s *ViolationEvent) SetVerificationState(v string) *ViolationEvent {
66274	s.VerificationState = &v
66275	return s
66276}
66277
66278// SetVerificationStateDescription sets the VerificationStateDescription field's value.
66279func (s *ViolationEvent) SetVerificationStateDescription(v string) *ViolationEvent {
66280	s.VerificationStateDescription = &v
66281	return s
66282}
66283
66284// SetViolationEventAdditionalInfo sets the ViolationEventAdditionalInfo field's value.
66285func (s *ViolationEvent) SetViolationEventAdditionalInfo(v *ViolationEventAdditionalInfo) *ViolationEvent {
66286	s.ViolationEventAdditionalInfo = v
66287	return s
66288}
66289
66290// SetViolationEventTime sets the ViolationEventTime field's value.
66291func (s *ViolationEvent) SetViolationEventTime(v time.Time) *ViolationEvent {
66292	s.ViolationEventTime = &v
66293	return s
66294}
66295
66296// SetViolationEventType sets the ViolationEventType field's value.
66297func (s *ViolationEvent) SetViolationEventType(v string) *ViolationEvent {
66298	s.ViolationEventType = &v
66299	return s
66300}
66301
66302// SetViolationId sets the ViolationId field's value.
66303func (s *ViolationEvent) SetViolationId(v string) *ViolationEvent {
66304	s.ViolationId = &v
66305	return s
66306}
66307
66308// The details of a violation event.
66309type ViolationEventAdditionalInfo struct {
66310	_ struct{} `type:"structure"`
66311
66312	// The sensitivity of anomalous behavior evaluation. Can be Low, Medium, or
66313	// High.
66314	ConfidenceLevel *string `locationName:"confidenceLevel" type:"string" enum:"ConfidenceLevel"`
66315}
66316
66317// String returns the string representation.
66318//
66319// API parameter values that are decorated as "sensitive" in the API will not
66320// be included in the string output. The member name will be present, but the
66321// value will be replaced with "sensitive".
66322func (s ViolationEventAdditionalInfo) String() string {
66323	return awsutil.Prettify(s)
66324}
66325
66326// GoString returns the string representation.
66327//
66328// API parameter values that are decorated as "sensitive" in the API will not
66329// be included in the string output. The member name will be present, but the
66330// value will be replaced with "sensitive".
66331func (s ViolationEventAdditionalInfo) GoString() string {
66332	return s.String()
66333}
66334
66335// SetConfidenceLevel sets the ConfidenceLevel field's value.
66336func (s *ViolationEventAdditionalInfo) SetConfidenceLevel(v string) *ViolationEventAdditionalInfo {
66337	s.ConfidenceLevel = &v
66338	return s
66339}
66340
66341// Specifies the time period of which violation events occurred between.
66342type ViolationEventOccurrenceRange struct {
66343	_ struct{} `type:"structure"`
66344
66345	// The end date and time of a time period in which violation events occurred.
66346	//
66347	// EndTime is a required field
66348	EndTime *time.Time `locationName:"endTime" type:"timestamp" required:"true"`
66349
66350	// The start date and time of a time period in which violation events occurred.
66351	//
66352	// StartTime is a required field
66353	StartTime *time.Time `locationName:"startTime" type:"timestamp" required:"true"`
66354}
66355
66356// String returns the string representation.
66357//
66358// API parameter values that are decorated as "sensitive" in the API will not
66359// be included in the string output. The member name will be present, but the
66360// value will be replaced with "sensitive".
66361func (s ViolationEventOccurrenceRange) String() string {
66362	return awsutil.Prettify(s)
66363}
66364
66365// GoString returns the string representation.
66366//
66367// API parameter values that are decorated as "sensitive" in the API will not
66368// be included in the string output. The member name will be present, but the
66369// value will be replaced with "sensitive".
66370func (s ViolationEventOccurrenceRange) GoString() string {
66371	return s.String()
66372}
66373
66374// Validate inspects the fields of the type to determine if they are valid.
66375func (s *ViolationEventOccurrenceRange) Validate() error {
66376	invalidParams := request.ErrInvalidParams{Context: "ViolationEventOccurrenceRange"}
66377	if s.EndTime == nil {
66378		invalidParams.Add(request.NewErrParamRequired("EndTime"))
66379	}
66380	if s.StartTime == nil {
66381		invalidParams.Add(request.NewErrParamRequired("StartTime"))
66382	}
66383
66384	if invalidParams.Len() > 0 {
66385		return invalidParams
66386	}
66387	return nil
66388}
66389
66390// SetEndTime sets the EndTime field's value.
66391func (s *ViolationEventOccurrenceRange) SetEndTime(v time.Time) *ViolationEventOccurrenceRange {
66392	s.EndTime = &v
66393	return s
66394}
66395
66396// SetStartTime sets the StartTime field's value.
66397func (s *ViolationEventOccurrenceRange) SetStartTime(v time.Time) *ViolationEventOccurrenceRange {
66398	s.StartTime = &v
66399	return s
66400}
66401
66402// The configuration information for a virtual private cloud (VPC) destination.
66403type VpcDestinationConfiguration struct {
66404	_ struct{} `type:"structure"`
66405
66406	// The ARN of a role that has permission to create and attach to elastic network
66407	// interfaces (ENIs).
66408	//
66409	// RoleArn is a required field
66410	RoleArn *string `locationName:"roleArn" type:"string" required:"true"`
66411
66412	// The security groups of the VPC destination.
66413	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
66414
66415	// The subnet IDs of the VPC destination.
66416	//
66417	// SubnetIds is a required field
66418	SubnetIds []*string `locationName:"subnetIds" type:"list" required:"true"`
66419
66420	// The ID of the VPC.
66421	//
66422	// VpcId is a required field
66423	VpcId *string `locationName:"vpcId" type:"string" required:"true"`
66424}
66425
66426// String returns the string representation.
66427//
66428// API parameter values that are decorated as "sensitive" in the API will not
66429// be included in the string output. The member name will be present, but the
66430// value will be replaced with "sensitive".
66431func (s VpcDestinationConfiguration) String() string {
66432	return awsutil.Prettify(s)
66433}
66434
66435// GoString returns the string representation.
66436//
66437// API parameter values that are decorated as "sensitive" in the API will not
66438// be included in the string output. The member name will be present, but the
66439// value will be replaced with "sensitive".
66440func (s VpcDestinationConfiguration) GoString() string {
66441	return s.String()
66442}
66443
66444// Validate inspects the fields of the type to determine if they are valid.
66445func (s *VpcDestinationConfiguration) Validate() error {
66446	invalidParams := request.ErrInvalidParams{Context: "VpcDestinationConfiguration"}
66447	if s.RoleArn == nil {
66448		invalidParams.Add(request.NewErrParamRequired("RoleArn"))
66449	}
66450	if s.SubnetIds == nil {
66451		invalidParams.Add(request.NewErrParamRequired("SubnetIds"))
66452	}
66453	if s.VpcId == nil {
66454		invalidParams.Add(request.NewErrParamRequired("VpcId"))
66455	}
66456
66457	if invalidParams.Len() > 0 {
66458		return invalidParams
66459	}
66460	return nil
66461}
66462
66463// SetRoleArn sets the RoleArn field's value.
66464func (s *VpcDestinationConfiguration) SetRoleArn(v string) *VpcDestinationConfiguration {
66465	s.RoleArn = &v
66466	return s
66467}
66468
66469// SetSecurityGroups sets the SecurityGroups field's value.
66470func (s *VpcDestinationConfiguration) SetSecurityGroups(v []*string) *VpcDestinationConfiguration {
66471	s.SecurityGroups = v
66472	return s
66473}
66474
66475// SetSubnetIds sets the SubnetIds field's value.
66476func (s *VpcDestinationConfiguration) SetSubnetIds(v []*string) *VpcDestinationConfiguration {
66477	s.SubnetIds = v
66478	return s
66479}
66480
66481// SetVpcId sets the VpcId field's value.
66482func (s *VpcDestinationConfiguration) SetVpcId(v string) *VpcDestinationConfiguration {
66483	s.VpcId = &v
66484	return s
66485}
66486
66487// The properties of a virtual private cloud (VPC) destination.
66488type VpcDestinationProperties struct {
66489	_ struct{} `type:"structure"`
66490
66491	// The ARN of a role that has permission to create and attach to elastic network
66492	// interfaces (ENIs).
66493	RoleArn *string `locationName:"roleArn" type:"string"`
66494
66495	// The security groups of the VPC destination.
66496	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
66497
66498	// The subnet IDs of the VPC destination.
66499	SubnetIds []*string `locationName:"subnetIds" type:"list"`
66500
66501	// The ID of the VPC.
66502	VpcId *string `locationName:"vpcId" type:"string"`
66503}
66504
66505// String returns the string representation.
66506//
66507// API parameter values that are decorated as "sensitive" in the API will not
66508// be included in the string output. The member name will be present, but the
66509// value will be replaced with "sensitive".
66510func (s VpcDestinationProperties) String() string {
66511	return awsutil.Prettify(s)
66512}
66513
66514// GoString returns the string representation.
66515//
66516// API parameter values that are decorated as "sensitive" in the API will not
66517// be included in the string output. The member name will be present, but the
66518// value will be replaced with "sensitive".
66519func (s VpcDestinationProperties) GoString() string {
66520	return s.String()
66521}
66522
66523// SetRoleArn sets the RoleArn field's value.
66524func (s *VpcDestinationProperties) SetRoleArn(v string) *VpcDestinationProperties {
66525	s.RoleArn = &v
66526	return s
66527}
66528
66529// SetSecurityGroups sets the SecurityGroups field's value.
66530func (s *VpcDestinationProperties) SetSecurityGroups(v []*string) *VpcDestinationProperties {
66531	s.SecurityGroups = v
66532	return s
66533}
66534
66535// SetSubnetIds sets the SubnetIds field's value.
66536func (s *VpcDestinationProperties) SetSubnetIds(v []*string) *VpcDestinationProperties {
66537	s.SubnetIds = v
66538	return s
66539}
66540
66541// SetVpcId sets the VpcId field's value.
66542func (s *VpcDestinationProperties) SetVpcId(v string) *VpcDestinationProperties {
66543	s.VpcId = &v
66544	return s
66545}
66546
66547// The summary of a virtual private cloud (VPC) destination.
66548type VpcDestinationSummary struct {
66549	_ struct{} `type:"structure"`
66550
66551	// The ARN of a role that has permission to create and attach to elastic network
66552	// interfaces (ENIs).
66553	RoleArn *string `locationName:"roleArn" type:"string"`
66554
66555	// The security groups of the VPC destination.
66556	SecurityGroups []*string `locationName:"securityGroups" type:"list"`
66557
66558	// The subnet IDs of the VPC destination.
66559	SubnetIds []*string `locationName:"subnetIds" type:"list"`
66560
66561	// The ID of the VPC.
66562	VpcId *string `locationName:"vpcId" type:"string"`
66563}
66564
66565// String returns the string representation.
66566//
66567// API parameter values that are decorated as "sensitive" in the API will not
66568// be included in the string output. The member name will be present, but the
66569// value will be replaced with "sensitive".
66570func (s VpcDestinationSummary) String() string {
66571	return awsutil.Prettify(s)
66572}
66573
66574// GoString returns the string representation.
66575//
66576// API parameter values that are decorated as "sensitive" in the API will not
66577// be included in the string output. The member name will be present, but the
66578// value will be replaced with "sensitive".
66579func (s VpcDestinationSummary) GoString() string {
66580	return s.String()
66581}
66582
66583// SetRoleArn sets the RoleArn field's value.
66584func (s *VpcDestinationSummary) SetRoleArn(v string) *VpcDestinationSummary {
66585	s.RoleArn = &v
66586	return s
66587}
66588
66589// SetSecurityGroups sets the SecurityGroups field's value.
66590func (s *VpcDestinationSummary) SetSecurityGroups(v []*string) *VpcDestinationSummary {
66591	s.SecurityGroups = v
66592	return s
66593}
66594
66595// SetSubnetIds sets the SubnetIds field's value.
66596func (s *VpcDestinationSummary) SetSubnetIds(v []*string) *VpcDestinationSummary {
66597	s.SubnetIds = v
66598	return s
66599}
66600
66601// SetVpcId sets the VpcId field's value.
66602func (s *VpcDestinationSummary) SetVpcId(v string) *VpcDestinationSummary {
66603	s.VpcId = &v
66604	return s
66605}
66606
66607const (
66608	// AbortActionCancel is a AbortAction enum value
66609	AbortActionCancel = "CANCEL"
66610)
66611
66612// AbortAction_Values returns all elements of the AbortAction enum
66613func AbortAction_Values() []string {
66614	return []string{
66615		AbortActionCancel,
66616	}
66617}
66618
66619const (
66620	// ActionTypePublish is a ActionType enum value
66621	ActionTypePublish = "PUBLISH"
66622
66623	// ActionTypeSubscribe is a ActionType enum value
66624	ActionTypeSubscribe = "SUBSCRIBE"
66625
66626	// ActionTypeReceive is a ActionType enum value
66627	ActionTypeReceive = "RECEIVE"
66628
66629	// ActionTypeConnect is a ActionType enum value
66630	ActionTypeConnect = "CONNECT"
66631)
66632
66633// ActionType_Values returns all elements of the ActionType enum
66634func ActionType_Values() []string {
66635	return []string{
66636		ActionTypePublish,
66637		ActionTypeSubscribe,
66638		ActionTypeReceive,
66639		ActionTypeConnect,
66640	}
66641}
66642
66643const (
66644	// AggregationTypeNameStatistics is a AggregationTypeName enum value
66645	AggregationTypeNameStatistics = "Statistics"
66646
66647	// AggregationTypeNamePercentiles is a AggregationTypeName enum value
66648	AggregationTypeNamePercentiles = "Percentiles"
66649
66650	// AggregationTypeNameCardinality is a AggregationTypeName enum value
66651	AggregationTypeNameCardinality = "Cardinality"
66652)
66653
66654// AggregationTypeName_Values returns all elements of the AggregationTypeName enum
66655func AggregationTypeName_Values() []string {
66656	return []string{
66657		AggregationTypeNameStatistics,
66658		AggregationTypeNamePercentiles,
66659		AggregationTypeNameCardinality,
66660	}
66661}
66662
66663// The type of alert target: one of "SNS".
66664const (
66665	// AlertTargetTypeSns is a AlertTargetType enum value
66666	AlertTargetTypeSns = "SNS"
66667)
66668
66669// AlertTargetType_Values returns all elements of the AlertTargetType enum
66670func AlertTargetType_Values() []string {
66671	return []string{
66672		AlertTargetTypeSns,
66673	}
66674}
66675
66676const (
66677	// AuditCheckRunStatusInProgress is a AuditCheckRunStatus enum value
66678	AuditCheckRunStatusInProgress = "IN_PROGRESS"
66679
66680	// AuditCheckRunStatusWaitingForDataCollection is a AuditCheckRunStatus enum value
66681	AuditCheckRunStatusWaitingForDataCollection = "WAITING_FOR_DATA_COLLECTION"
66682
66683	// AuditCheckRunStatusCanceled is a AuditCheckRunStatus enum value
66684	AuditCheckRunStatusCanceled = "CANCELED"
66685
66686	// AuditCheckRunStatusCompletedCompliant is a AuditCheckRunStatus enum value
66687	AuditCheckRunStatusCompletedCompliant = "COMPLETED_COMPLIANT"
66688
66689	// AuditCheckRunStatusCompletedNonCompliant is a AuditCheckRunStatus enum value
66690	AuditCheckRunStatusCompletedNonCompliant = "COMPLETED_NON_COMPLIANT"
66691
66692	// AuditCheckRunStatusFailed is a AuditCheckRunStatus enum value
66693	AuditCheckRunStatusFailed = "FAILED"
66694)
66695
66696// AuditCheckRunStatus_Values returns all elements of the AuditCheckRunStatus enum
66697func AuditCheckRunStatus_Values() []string {
66698	return []string{
66699		AuditCheckRunStatusInProgress,
66700		AuditCheckRunStatusWaitingForDataCollection,
66701		AuditCheckRunStatusCanceled,
66702		AuditCheckRunStatusCompletedCompliant,
66703		AuditCheckRunStatusCompletedNonCompliant,
66704		AuditCheckRunStatusFailed,
66705	}
66706}
66707
66708const (
66709	// AuditFindingSeverityCritical is a AuditFindingSeverity enum value
66710	AuditFindingSeverityCritical = "CRITICAL"
66711
66712	// AuditFindingSeverityHigh is a AuditFindingSeverity enum value
66713	AuditFindingSeverityHigh = "HIGH"
66714
66715	// AuditFindingSeverityMedium is a AuditFindingSeverity enum value
66716	AuditFindingSeverityMedium = "MEDIUM"
66717
66718	// AuditFindingSeverityLow is a AuditFindingSeverity enum value
66719	AuditFindingSeverityLow = "LOW"
66720)
66721
66722// AuditFindingSeverity_Values returns all elements of the AuditFindingSeverity enum
66723func AuditFindingSeverity_Values() []string {
66724	return []string{
66725		AuditFindingSeverityCritical,
66726		AuditFindingSeverityHigh,
66727		AuditFindingSeverityMedium,
66728		AuditFindingSeverityLow,
66729	}
66730}
66731
66732const (
66733	// AuditFrequencyDaily is a AuditFrequency enum value
66734	AuditFrequencyDaily = "DAILY"
66735
66736	// AuditFrequencyWeekly is a AuditFrequency enum value
66737	AuditFrequencyWeekly = "WEEKLY"
66738
66739	// AuditFrequencyBiweekly is a AuditFrequency enum value
66740	AuditFrequencyBiweekly = "BIWEEKLY"
66741
66742	// AuditFrequencyMonthly is a AuditFrequency enum value
66743	AuditFrequencyMonthly = "MONTHLY"
66744)
66745
66746// AuditFrequency_Values returns all elements of the AuditFrequency enum
66747func AuditFrequency_Values() []string {
66748	return []string{
66749		AuditFrequencyDaily,
66750		AuditFrequencyWeekly,
66751		AuditFrequencyBiweekly,
66752		AuditFrequencyMonthly,
66753	}
66754}
66755
66756const (
66757	// AuditMitigationActionsExecutionStatusInProgress is a AuditMitigationActionsExecutionStatus enum value
66758	AuditMitigationActionsExecutionStatusInProgress = "IN_PROGRESS"
66759
66760	// AuditMitigationActionsExecutionStatusCompleted is a AuditMitigationActionsExecutionStatus enum value
66761	AuditMitigationActionsExecutionStatusCompleted = "COMPLETED"
66762
66763	// AuditMitigationActionsExecutionStatusFailed is a AuditMitigationActionsExecutionStatus enum value
66764	AuditMitigationActionsExecutionStatusFailed = "FAILED"
66765
66766	// AuditMitigationActionsExecutionStatusCanceled is a AuditMitigationActionsExecutionStatus enum value
66767	AuditMitigationActionsExecutionStatusCanceled = "CANCELED"
66768
66769	// AuditMitigationActionsExecutionStatusSkipped is a AuditMitigationActionsExecutionStatus enum value
66770	AuditMitigationActionsExecutionStatusSkipped = "SKIPPED"
66771
66772	// AuditMitigationActionsExecutionStatusPending is a AuditMitigationActionsExecutionStatus enum value
66773	AuditMitigationActionsExecutionStatusPending = "PENDING"
66774)
66775
66776// AuditMitigationActionsExecutionStatus_Values returns all elements of the AuditMitigationActionsExecutionStatus enum
66777func AuditMitigationActionsExecutionStatus_Values() []string {
66778	return []string{
66779		AuditMitigationActionsExecutionStatusInProgress,
66780		AuditMitigationActionsExecutionStatusCompleted,
66781		AuditMitigationActionsExecutionStatusFailed,
66782		AuditMitigationActionsExecutionStatusCanceled,
66783		AuditMitigationActionsExecutionStatusSkipped,
66784		AuditMitigationActionsExecutionStatusPending,
66785	}
66786}
66787
66788const (
66789	// AuditMitigationActionsTaskStatusInProgress is a AuditMitigationActionsTaskStatus enum value
66790	AuditMitigationActionsTaskStatusInProgress = "IN_PROGRESS"
66791
66792	// AuditMitigationActionsTaskStatusCompleted is a AuditMitigationActionsTaskStatus enum value
66793	AuditMitigationActionsTaskStatusCompleted = "COMPLETED"
66794
66795	// AuditMitigationActionsTaskStatusFailed is a AuditMitigationActionsTaskStatus enum value
66796	AuditMitigationActionsTaskStatusFailed = "FAILED"
66797
66798	// AuditMitigationActionsTaskStatusCanceled is a AuditMitigationActionsTaskStatus enum value
66799	AuditMitigationActionsTaskStatusCanceled = "CANCELED"
66800)
66801
66802// AuditMitigationActionsTaskStatus_Values returns all elements of the AuditMitigationActionsTaskStatus enum
66803func AuditMitigationActionsTaskStatus_Values() []string {
66804	return []string{
66805		AuditMitigationActionsTaskStatusInProgress,
66806		AuditMitigationActionsTaskStatusCompleted,
66807		AuditMitigationActionsTaskStatusFailed,
66808		AuditMitigationActionsTaskStatusCanceled,
66809	}
66810}
66811
66812const (
66813	// AuditNotificationTypeSns is a AuditNotificationType enum value
66814	AuditNotificationTypeSns = "SNS"
66815)
66816
66817// AuditNotificationType_Values returns all elements of the AuditNotificationType enum
66818func AuditNotificationType_Values() []string {
66819	return []string{
66820		AuditNotificationTypeSns,
66821	}
66822}
66823
66824const (
66825	// AuditTaskStatusInProgress is a AuditTaskStatus enum value
66826	AuditTaskStatusInProgress = "IN_PROGRESS"
66827
66828	// AuditTaskStatusCompleted is a AuditTaskStatus enum value
66829	AuditTaskStatusCompleted = "COMPLETED"
66830
66831	// AuditTaskStatusFailed is a AuditTaskStatus enum value
66832	AuditTaskStatusFailed = "FAILED"
66833
66834	// AuditTaskStatusCanceled is a AuditTaskStatus enum value
66835	AuditTaskStatusCanceled = "CANCELED"
66836)
66837
66838// AuditTaskStatus_Values returns all elements of the AuditTaskStatus enum
66839func AuditTaskStatus_Values() []string {
66840	return []string{
66841		AuditTaskStatusInProgress,
66842		AuditTaskStatusCompleted,
66843		AuditTaskStatusFailed,
66844		AuditTaskStatusCanceled,
66845	}
66846}
66847
66848const (
66849	// AuditTaskTypeOnDemandAuditTask is a AuditTaskType enum value
66850	AuditTaskTypeOnDemandAuditTask = "ON_DEMAND_AUDIT_TASK"
66851
66852	// AuditTaskTypeScheduledAuditTask is a AuditTaskType enum value
66853	AuditTaskTypeScheduledAuditTask = "SCHEDULED_AUDIT_TASK"
66854)
66855
66856// AuditTaskType_Values returns all elements of the AuditTaskType enum
66857func AuditTaskType_Values() []string {
66858	return []string{
66859		AuditTaskTypeOnDemandAuditTask,
66860		AuditTaskTypeScheduledAuditTask,
66861	}
66862}
66863
66864const (
66865	// AuthDecisionAllowed is a AuthDecision enum value
66866	AuthDecisionAllowed = "ALLOWED"
66867
66868	// AuthDecisionExplicitDeny is a AuthDecision enum value
66869	AuthDecisionExplicitDeny = "EXPLICIT_DENY"
66870
66871	// AuthDecisionImplicitDeny is a AuthDecision enum value
66872	AuthDecisionImplicitDeny = "IMPLICIT_DENY"
66873)
66874
66875// AuthDecision_Values returns all elements of the AuthDecision enum
66876func AuthDecision_Values() []string {
66877	return []string{
66878		AuthDecisionAllowed,
66879		AuthDecisionExplicitDeny,
66880		AuthDecisionImplicitDeny,
66881	}
66882}
66883
66884const (
66885	// AuthorizerStatusActive is a AuthorizerStatus enum value
66886	AuthorizerStatusActive = "ACTIVE"
66887
66888	// AuthorizerStatusInactive is a AuthorizerStatus enum value
66889	AuthorizerStatusInactive = "INACTIVE"
66890)
66891
66892// AuthorizerStatus_Values returns all elements of the AuthorizerStatus enum
66893func AuthorizerStatus_Values() []string {
66894	return []string{
66895		AuthorizerStatusActive,
66896		AuthorizerStatusInactive,
66897	}
66898}
66899
66900const (
66901	// AutoRegistrationStatusEnable is a AutoRegistrationStatus enum value
66902	AutoRegistrationStatusEnable = "ENABLE"
66903
66904	// AutoRegistrationStatusDisable is a AutoRegistrationStatus enum value
66905	AutoRegistrationStatusDisable = "DISABLE"
66906)
66907
66908// AutoRegistrationStatus_Values returns all elements of the AutoRegistrationStatus enum
66909func AutoRegistrationStatus_Values() []string {
66910	return []string{
66911		AutoRegistrationStatusEnable,
66912		AutoRegistrationStatusDisable,
66913	}
66914}
66915
66916const (
66917	// AwsJobAbortCriteriaAbortActionCancel is a AwsJobAbortCriteriaAbortAction enum value
66918	AwsJobAbortCriteriaAbortActionCancel = "CANCEL"
66919)
66920
66921// AwsJobAbortCriteriaAbortAction_Values returns all elements of the AwsJobAbortCriteriaAbortAction enum
66922func AwsJobAbortCriteriaAbortAction_Values() []string {
66923	return []string{
66924		AwsJobAbortCriteriaAbortActionCancel,
66925	}
66926}
66927
66928const (
66929	// AwsJobAbortCriteriaFailureTypeFailed is a AwsJobAbortCriteriaFailureType enum value
66930	AwsJobAbortCriteriaFailureTypeFailed = "FAILED"
66931
66932	// AwsJobAbortCriteriaFailureTypeRejected is a AwsJobAbortCriteriaFailureType enum value
66933	AwsJobAbortCriteriaFailureTypeRejected = "REJECTED"
66934
66935	// AwsJobAbortCriteriaFailureTypeTimedOut is a AwsJobAbortCriteriaFailureType enum value
66936	AwsJobAbortCriteriaFailureTypeTimedOut = "TIMED_OUT"
66937
66938	// AwsJobAbortCriteriaFailureTypeAll is a AwsJobAbortCriteriaFailureType enum value
66939	AwsJobAbortCriteriaFailureTypeAll = "ALL"
66940)
66941
66942// AwsJobAbortCriteriaFailureType_Values returns all elements of the AwsJobAbortCriteriaFailureType enum
66943func AwsJobAbortCriteriaFailureType_Values() []string {
66944	return []string{
66945		AwsJobAbortCriteriaFailureTypeFailed,
66946		AwsJobAbortCriteriaFailureTypeRejected,
66947		AwsJobAbortCriteriaFailureTypeTimedOut,
66948		AwsJobAbortCriteriaFailureTypeAll,
66949	}
66950}
66951
66952const (
66953	// BehaviorCriteriaTypeStatic is a BehaviorCriteriaType enum value
66954	BehaviorCriteriaTypeStatic = "STATIC"
66955
66956	// BehaviorCriteriaTypeStatistical is a BehaviorCriteriaType enum value
66957	BehaviorCriteriaTypeStatistical = "STATISTICAL"
66958
66959	// BehaviorCriteriaTypeMachineLearning is a BehaviorCriteriaType enum value
66960	BehaviorCriteriaTypeMachineLearning = "MACHINE_LEARNING"
66961)
66962
66963// BehaviorCriteriaType_Values returns all elements of the BehaviorCriteriaType enum
66964func BehaviorCriteriaType_Values() []string {
66965	return []string{
66966		BehaviorCriteriaTypeStatic,
66967		BehaviorCriteriaTypeStatistical,
66968		BehaviorCriteriaTypeMachineLearning,
66969	}
66970}
66971
66972const (
66973	// CACertificateStatusActive is a CACertificateStatus enum value
66974	CACertificateStatusActive = "ACTIVE"
66975
66976	// CACertificateStatusInactive is a CACertificateStatus enum value
66977	CACertificateStatusInactive = "INACTIVE"
66978)
66979
66980// CACertificateStatus_Values returns all elements of the CACertificateStatus enum
66981func CACertificateStatus_Values() []string {
66982	return []string{
66983		CACertificateStatusActive,
66984		CACertificateStatusInactive,
66985	}
66986}
66987
66988const (
66989	// CACertificateUpdateActionDeactivate is a CACertificateUpdateAction enum value
66990	CACertificateUpdateActionDeactivate = "DEACTIVATE"
66991)
66992
66993// CACertificateUpdateAction_Values returns all elements of the CACertificateUpdateAction enum
66994func CACertificateUpdateAction_Values() []string {
66995	return []string{
66996		CACertificateUpdateActionDeactivate,
66997	}
66998}
66999
67000const (
67001	// CannedAccessControlListPrivate is a CannedAccessControlList enum value
67002	CannedAccessControlListPrivate = "private"
67003
67004	// CannedAccessControlListPublicRead is a CannedAccessControlList enum value
67005	CannedAccessControlListPublicRead = "public-read"
67006
67007	// CannedAccessControlListPublicReadWrite is a CannedAccessControlList enum value
67008	CannedAccessControlListPublicReadWrite = "public-read-write"
67009
67010	// CannedAccessControlListAwsExecRead is a CannedAccessControlList enum value
67011	CannedAccessControlListAwsExecRead = "aws-exec-read"
67012
67013	// CannedAccessControlListAuthenticatedRead is a CannedAccessControlList enum value
67014	CannedAccessControlListAuthenticatedRead = "authenticated-read"
67015
67016	// CannedAccessControlListBucketOwnerRead is a CannedAccessControlList enum value
67017	CannedAccessControlListBucketOwnerRead = "bucket-owner-read"
67018
67019	// CannedAccessControlListBucketOwnerFullControl is a CannedAccessControlList enum value
67020	CannedAccessControlListBucketOwnerFullControl = "bucket-owner-full-control"
67021
67022	// CannedAccessControlListLogDeliveryWrite is a CannedAccessControlList enum value
67023	CannedAccessControlListLogDeliveryWrite = "log-delivery-write"
67024)
67025
67026// CannedAccessControlList_Values returns all elements of the CannedAccessControlList enum
67027func CannedAccessControlList_Values() []string {
67028	return []string{
67029		CannedAccessControlListPrivate,
67030		CannedAccessControlListPublicRead,
67031		CannedAccessControlListPublicReadWrite,
67032		CannedAccessControlListAwsExecRead,
67033		CannedAccessControlListAuthenticatedRead,
67034		CannedAccessControlListBucketOwnerRead,
67035		CannedAccessControlListBucketOwnerFullControl,
67036		CannedAccessControlListLogDeliveryWrite,
67037	}
67038}
67039
67040const (
67041	// CertificateModeDefault is a CertificateMode enum value
67042	CertificateModeDefault = "DEFAULT"
67043
67044	// CertificateModeSniOnly is a CertificateMode enum value
67045	CertificateModeSniOnly = "SNI_ONLY"
67046)
67047
67048// CertificateMode_Values returns all elements of the CertificateMode enum
67049func CertificateMode_Values() []string {
67050	return []string{
67051		CertificateModeDefault,
67052		CertificateModeSniOnly,
67053	}
67054}
67055
67056const (
67057	// CertificateStatusActive is a CertificateStatus enum value
67058	CertificateStatusActive = "ACTIVE"
67059
67060	// CertificateStatusInactive is a CertificateStatus enum value
67061	CertificateStatusInactive = "INACTIVE"
67062
67063	// CertificateStatusRevoked is a CertificateStatus enum value
67064	CertificateStatusRevoked = "REVOKED"
67065
67066	// CertificateStatusPendingTransfer is a CertificateStatus enum value
67067	CertificateStatusPendingTransfer = "PENDING_TRANSFER"
67068
67069	// CertificateStatusRegisterInactive is a CertificateStatus enum value
67070	CertificateStatusRegisterInactive = "REGISTER_INACTIVE"
67071
67072	// CertificateStatusPendingActivation is a CertificateStatus enum value
67073	CertificateStatusPendingActivation = "PENDING_ACTIVATION"
67074)
67075
67076// CertificateStatus_Values returns all elements of the CertificateStatus enum
67077func CertificateStatus_Values() []string {
67078	return []string{
67079		CertificateStatusActive,
67080		CertificateStatusInactive,
67081		CertificateStatusRevoked,
67082		CertificateStatusPendingTransfer,
67083		CertificateStatusRegisterInactive,
67084		CertificateStatusPendingActivation,
67085	}
67086}
67087
67088const (
67089	// ComparisonOperatorLessThan is a ComparisonOperator enum value
67090	ComparisonOperatorLessThan = "less-than"
67091
67092	// ComparisonOperatorLessThanEquals is a ComparisonOperator enum value
67093	ComparisonOperatorLessThanEquals = "less-than-equals"
67094
67095	// ComparisonOperatorGreaterThan is a ComparisonOperator enum value
67096	ComparisonOperatorGreaterThan = "greater-than"
67097
67098	// ComparisonOperatorGreaterThanEquals is a ComparisonOperator enum value
67099	ComparisonOperatorGreaterThanEquals = "greater-than-equals"
67100
67101	// ComparisonOperatorInCidrSet is a ComparisonOperator enum value
67102	ComparisonOperatorInCidrSet = "in-cidr-set"
67103
67104	// ComparisonOperatorNotInCidrSet is a ComparisonOperator enum value
67105	ComparisonOperatorNotInCidrSet = "not-in-cidr-set"
67106
67107	// ComparisonOperatorInPortSet is a ComparisonOperator enum value
67108	ComparisonOperatorInPortSet = "in-port-set"
67109
67110	// ComparisonOperatorNotInPortSet is a ComparisonOperator enum value
67111	ComparisonOperatorNotInPortSet = "not-in-port-set"
67112
67113	// ComparisonOperatorInSet is a ComparisonOperator enum value
67114	ComparisonOperatorInSet = "in-set"
67115
67116	// ComparisonOperatorNotInSet is a ComparisonOperator enum value
67117	ComparisonOperatorNotInSet = "not-in-set"
67118)
67119
67120// ComparisonOperator_Values returns all elements of the ComparisonOperator enum
67121func ComparisonOperator_Values() []string {
67122	return []string{
67123		ComparisonOperatorLessThan,
67124		ComparisonOperatorLessThanEquals,
67125		ComparisonOperatorGreaterThan,
67126		ComparisonOperatorGreaterThanEquals,
67127		ComparisonOperatorInCidrSet,
67128		ComparisonOperatorNotInCidrSet,
67129		ComparisonOperatorInPortSet,
67130		ComparisonOperatorNotInPortSet,
67131		ComparisonOperatorInSet,
67132		ComparisonOperatorNotInSet,
67133	}
67134}
67135
67136const (
67137	// ConfidenceLevelLow is a ConfidenceLevel enum value
67138	ConfidenceLevelLow = "LOW"
67139
67140	// ConfidenceLevelMedium is a ConfidenceLevel enum value
67141	ConfidenceLevelMedium = "MEDIUM"
67142
67143	// ConfidenceLevelHigh is a ConfidenceLevel enum value
67144	ConfidenceLevelHigh = "HIGH"
67145)
67146
67147// ConfidenceLevel_Values returns all elements of the ConfidenceLevel enum
67148func ConfidenceLevel_Values() []string {
67149	return []string{
67150		ConfidenceLevelLow,
67151		ConfidenceLevelMedium,
67152		ConfidenceLevelHigh,
67153	}
67154}
67155
67156const (
67157	// CustomMetricTypeStringList is a CustomMetricType enum value
67158	CustomMetricTypeStringList = "string-list"
67159
67160	// CustomMetricTypeIpAddressList is a CustomMetricType enum value
67161	CustomMetricTypeIpAddressList = "ip-address-list"
67162
67163	// CustomMetricTypeNumberList is a CustomMetricType enum value
67164	CustomMetricTypeNumberList = "number-list"
67165
67166	// CustomMetricTypeNumber is a CustomMetricType enum value
67167	CustomMetricTypeNumber = "number"
67168)
67169
67170// CustomMetricType_Values returns all elements of the CustomMetricType enum
67171func CustomMetricType_Values() []string {
67172	return []string{
67173		CustomMetricTypeStringList,
67174		CustomMetricTypeIpAddressList,
67175		CustomMetricTypeNumberList,
67176		CustomMetricTypeNumber,
67177	}
67178}
67179
67180const (
67181	// DayOfWeekSun is a DayOfWeek enum value
67182	DayOfWeekSun = "SUN"
67183
67184	// DayOfWeekMon is a DayOfWeek enum value
67185	DayOfWeekMon = "MON"
67186
67187	// DayOfWeekTue is a DayOfWeek enum value
67188	DayOfWeekTue = "TUE"
67189
67190	// DayOfWeekWed is a DayOfWeek enum value
67191	DayOfWeekWed = "WED"
67192
67193	// DayOfWeekThu is a DayOfWeek enum value
67194	DayOfWeekThu = "THU"
67195
67196	// DayOfWeekFri is a DayOfWeek enum value
67197	DayOfWeekFri = "FRI"
67198
67199	// DayOfWeekSat is a DayOfWeek enum value
67200	DayOfWeekSat = "SAT"
67201)
67202
67203// DayOfWeek_Values returns all elements of the DayOfWeek enum
67204func DayOfWeek_Values() []string {
67205	return []string{
67206		DayOfWeekSun,
67207		DayOfWeekMon,
67208		DayOfWeekTue,
67209		DayOfWeekWed,
67210		DayOfWeekThu,
67211		DayOfWeekFri,
67212		DayOfWeekSat,
67213	}
67214}
67215
67216const (
67217	// DetectMitigationActionExecutionStatusInProgress is a DetectMitigationActionExecutionStatus enum value
67218	DetectMitigationActionExecutionStatusInProgress = "IN_PROGRESS"
67219
67220	// DetectMitigationActionExecutionStatusSuccessful is a DetectMitigationActionExecutionStatus enum value
67221	DetectMitigationActionExecutionStatusSuccessful = "SUCCESSFUL"
67222
67223	// DetectMitigationActionExecutionStatusFailed is a DetectMitigationActionExecutionStatus enum value
67224	DetectMitigationActionExecutionStatusFailed = "FAILED"
67225
67226	// DetectMitigationActionExecutionStatusSkipped is a DetectMitigationActionExecutionStatus enum value
67227	DetectMitigationActionExecutionStatusSkipped = "SKIPPED"
67228)
67229
67230// DetectMitigationActionExecutionStatus_Values returns all elements of the DetectMitigationActionExecutionStatus enum
67231func DetectMitigationActionExecutionStatus_Values() []string {
67232	return []string{
67233		DetectMitigationActionExecutionStatusInProgress,
67234		DetectMitigationActionExecutionStatusSuccessful,
67235		DetectMitigationActionExecutionStatusFailed,
67236		DetectMitigationActionExecutionStatusSkipped,
67237	}
67238}
67239
67240const (
67241	// DetectMitigationActionsTaskStatusInProgress is a DetectMitigationActionsTaskStatus enum value
67242	DetectMitigationActionsTaskStatusInProgress = "IN_PROGRESS"
67243
67244	// DetectMitigationActionsTaskStatusSuccessful is a DetectMitigationActionsTaskStatus enum value
67245	DetectMitigationActionsTaskStatusSuccessful = "SUCCESSFUL"
67246
67247	// DetectMitigationActionsTaskStatusFailed is a DetectMitigationActionsTaskStatus enum value
67248	DetectMitigationActionsTaskStatusFailed = "FAILED"
67249
67250	// DetectMitigationActionsTaskStatusCanceled is a DetectMitigationActionsTaskStatus enum value
67251	DetectMitigationActionsTaskStatusCanceled = "CANCELED"
67252)
67253
67254// DetectMitigationActionsTaskStatus_Values returns all elements of the DetectMitigationActionsTaskStatus enum
67255func DetectMitigationActionsTaskStatus_Values() []string {
67256	return []string{
67257		DetectMitigationActionsTaskStatusInProgress,
67258		DetectMitigationActionsTaskStatusSuccessful,
67259		DetectMitigationActionsTaskStatusFailed,
67260		DetectMitigationActionsTaskStatusCanceled,
67261	}
67262}
67263
67264const (
67265	// DeviceCertificateUpdateActionDeactivate is a DeviceCertificateUpdateAction enum value
67266	DeviceCertificateUpdateActionDeactivate = "DEACTIVATE"
67267)
67268
67269// DeviceCertificateUpdateAction_Values returns all elements of the DeviceCertificateUpdateAction enum
67270func DeviceCertificateUpdateAction_Values() []string {
67271	return []string{
67272		DeviceCertificateUpdateActionDeactivate,
67273	}
67274}
67275
67276const (
67277	// DimensionTypeTopicFilter is a DimensionType enum value
67278	DimensionTypeTopicFilter = "TOPIC_FILTER"
67279)
67280
67281// DimensionType_Values returns all elements of the DimensionType enum
67282func DimensionType_Values() []string {
67283	return []string{
67284		DimensionTypeTopicFilter,
67285	}
67286}
67287
67288const (
67289	// DimensionValueOperatorIn is a DimensionValueOperator enum value
67290	DimensionValueOperatorIn = "IN"
67291
67292	// DimensionValueOperatorNotIn is a DimensionValueOperator enum value
67293	DimensionValueOperatorNotIn = "NOT_IN"
67294)
67295
67296// DimensionValueOperator_Values returns all elements of the DimensionValueOperator enum
67297func DimensionValueOperator_Values() []string {
67298	return []string{
67299		DimensionValueOperatorIn,
67300		DimensionValueOperatorNotIn,
67301	}
67302}
67303
67304const (
67305	// DomainConfigurationStatusEnabled is a DomainConfigurationStatus enum value
67306	DomainConfigurationStatusEnabled = "ENABLED"
67307
67308	// DomainConfigurationStatusDisabled is a DomainConfigurationStatus enum value
67309	DomainConfigurationStatusDisabled = "DISABLED"
67310)
67311
67312// DomainConfigurationStatus_Values returns all elements of the DomainConfigurationStatus enum
67313func DomainConfigurationStatus_Values() []string {
67314	return []string{
67315		DomainConfigurationStatusEnabled,
67316		DomainConfigurationStatusDisabled,
67317	}
67318}
67319
67320const (
67321	// DomainTypeEndpoint is a DomainType enum value
67322	DomainTypeEndpoint = "ENDPOINT"
67323
67324	// DomainTypeAwsManaged is a DomainType enum value
67325	DomainTypeAwsManaged = "AWS_MANAGED"
67326
67327	// DomainTypeCustomerManaged is a DomainType enum value
67328	DomainTypeCustomerManaged = "CUSTOMER_MANAGED"
67329)
67330
67331// DomainType_Values returns all elements of the DomainType enum
67332func DomainType_Values() []string {
67333	return []string{
67334		DomainTypeEndpoint,
67335		DomainTypeAwsManaged,
67336		DomainTypeCustomerManaged,
67337	}
67338}
67339
67340const (
67341	// DynamicGroupStatusActive is a DynamicGroupStatus enum value
67342	DynamicGroupStatusActive = "ACTIVE"
67343
67344	// DynamicGroupStatusBuilding is a DynamicGroupStatus enum value
67345	DynamicGroupStatusBuilding = "BUILDING"
67346
67347	// DynamicGroupStatusRebuilding is a DynamicGroupStatus enum value
67348	DynamicGroupStatusRebuilding = "REBUILDING"
67349)
67350
67351// DynamicGroupStatus_Values returns all elements of the DynamicGroupStatus enum
67352func DynamicGroupStatus_Values() []string {
67353	return []string{
67354		DynamicGroupStatusActive,
67355		DynamicGroupStatusBuilding,
67356		DynamicGroupStatusRebuilding,
67357	}
67358}
67359
67360const (
67361	// DynamoKeyTypeString is a DynamoKeyType enum value
67362	DynamoKeyTypeString = "STRING"
67363
67364	// DynamoKeyTypeNumber is a DynamoKeyType enum value
67365	DynamoKeyTypeNumber = "NUMBER"
67366)
67367
67368// DynamoKeyType_Values returns all elements of the DynamoKeyType enum
67369func DynamoKeyType_Values() []string {
67370	return []string{
67371		DynamoKeyTypeString,
67372		DynamoKeyTypeNumber,
67373	}
67374}
67375
67376const (
67377	// EventTypeThing is a EventType enum value
67378	EventTypeThing = "THING"
67379
67380	// EventTypeThingGroup is a EventType enum value
67381	EventTypeThingGroup = "THING_GROUP"
67382
67383	// EventTypeThingType is a EventType enum value
67384	EventTypeThingType = "THING_TYPE"
67385
67386	// EventTypeThingGroupMembership is a EventType enum value
67387	EventTypeThingGroupMembership = "THING_GROUP_MEMBERSHIP"
67388
67389	// EventTypeThingGroupHierarchy is a EventType enum value
67390	EventTypeThingGroupHierarchy = "THING_GROUP_HIERARCHY"
67391
67392	// EventTypeThingTypeAssociation is a EventType enum value
67393	EventTypeThingTypeAssociation = "THING_TYPE_ASSOCIATION"
67394
67395	// EventTypeJob is a EventType enum value
67396	EventTypeJob = "JOB"
67397
67398	// EventTypeJobExecution is a EventType enum value
67399	EventTypeJobExecution = "JOB_EXECUTION"
67400
67401	// EventTypePolicy is a EventType enum value
67402	EventTypePolicy = "POLICY"
67403
67404	// EventTypeCertificate is a EventType enum value
67405	EventTypeCertificate = "CERTIFICATE"
67406
67407	// EventTypeCaCertificate is a EventType enum value
67408	EventTypeCaCertificate = "CA_CERTIFICATE"
67409)
67410
67411// EventType_Values returns all elements of the EventType enum
67412func EventType_Values() []string {
67413	return []string{
67414		EventTypeThing,
67415		EventTypeThingGroup,
67416		EventTypeThingType,
67417		EventTypeThingGroupMembership,
67418		EventTypeThingGroupHierarchy,
67419		EventTypeThingTypeAssociation,
67420		EventTypeJob,
67421		EventTypeJobExecution,
67422		EventTypePolicy,
67423		EventTypeCertificate,
67424		EventTypeCaCertificate,
67425	}
67426}
67427
67428const (
67429	// FieldTypeNumber is a FieldType enum value
67430	FieldTypeNumber = "Number"
67431
67432	// FieldTypeString is a FieldType enum value
67433	FieldTypeString = "String"
67434
67435	// FieldTypeBoolean is a FieldType enum value
67436	FieldTypeBoolean = "Boolean"
67437)
67438
67439// FieldType_Values returns all elements of the FieldType enum
67440func FieldType_Values() []string {
67441	return []string{
67442		FieldTypeNumber,
67443		FieldTypeString,
67444		FieldTypeBoolean,
67445	}
67446}
67447
67448const (
67449	// FleetMetricUnitSeconds is a FleetMetricUnit enum value
67450	FleetMetricUnitSeconds = "Seconds"
67451
67452	// FleetMetricUnitMicroseconds is a FleetMetricUnit enum value
67453	FleetMetricUnitMicroseconds = "Microseconds"
67454
67455	// FleetMetricUnitMilliseconds is a FleetMetricUnit enum value
67456	FleetMetricUnitMilliseconds = "Milliseconds"
67457
67458	// FleetMetricUnitBytes is a FleetMetricUnit enum value
67459	FleetMetricUnitBytes = "Bytes"
67460
67461	// FleetMetricUnitKilobytes is a FleetMetricUnit enum value
67462	FleetMetricUnitKilobytes = "Kilobytes"
67463
67464	// FleetMetricUnitMegabytes is a FleetMetricUnit enum value
67465	FleetMetricUnitMegabytes = "Megabytes"
67466
67467	// FleetMetricUnitGigabytes is a FleetMetricUnit enum value
67468	FleetMetricUnitGigabytes = "Gigabytes"
67469
67470	// FleetMetricUnitTerabytes is a FleetMetricUnit enum value
67471	FleetMetricUnitTerabytes = "Terabytes"
67472
67473	// FleetMetricUnitBits is a FleetMetricUnit enum value
67474	FleetMetricUnitBits = "Bits"
67475
67476	// FleetMetricUnitKilobits is a FleetMetricUnit enum value
67477	FleetMetricUnitKilobits = "Kilobits"
67478
67479	// FleetMetricUnitMegabits is a FleetMetricUnit enum value
67480	FleetMetricUnitMegabits = "Megabits"
67481
67482	// FleetMetricUnitGigabits is a FleetMetricUnit enum value
67483	FleetMetricUnitGigabits = "Gigabits"
67484
67485	// FleetMetricUnitTerabits is a FleetMetricUnit enum value
67486	FleetMetricUnitTerabits = "Terabits"
67487
67488	// FleetMetricUnitPercent is a FleetMetricUnit enum value
67489	FleetMetricUnitPercent = "Percent"
67490
67491	// FleetMetricUnitCount is a FleetMetricUnit enum value
67492	FleetMetricUnitCount = "Count"
67493
67494	// FleetMetricUnitBytesSecond is a FleetMetricUnit enum value
67495	FleetMetricUnitBytesSecond = "Bytes/Second"
67496
67497	// FleetMetricUnitKilobytesSecond is a FleetMetricUnit enum value
67498	FleetMetricUnitKilobytesSecond = "Kilobytes/Second"
67499
67500	// FleetMetricUnitMegabytesSecond is a FleetMetricUnit enum value
67501	FleetMetricUnitMegabytesSecond = "Megabytes/Second"
67502
67503	// FleetMetricUnitGigabytesSecond is a FleetMetricUnit enum value
67504	FleetMetricUnitGigabytesSecond = "Gigabytes/Second"
67505
67506	// FleetMetricUnitTerabytesSecond is a FleetMetricUnit enum value
67507	FleetMetricUnitTerabytesSecond = "Terabytes/Second"
67508
67509	// FleetMetricUnitBitsSecond is a FleetMetricUnit enum value
67510	FleetMetricUnitBitsSecond = "Bits/Second"
67511
67512	// FleetMetricUnitKilobitsSecond is a FleetMetricUnit enum value
67513	FleetMetricUnitKilobitsSecond = "Kilobits/Second"
67514
67515	// FleetMetricUnitMegabitsSecond is a FleetMetricUnit enum value
67516	FleetMetricUnitMegabitsSecond = "Megabits/Second"
67517
67518	// FleetMetricUnitGigabitsSecond is a FleetMetricUnit enum value
67519	FleetMetricUnitGigabitsSecond = "Gigabits/Second"
67520
67521	// FleetMetricUnitTerabitsSecond is a FleetMetricUnit enum value
67522	FleetMetricUnitTerabitsSecond = "Terabits/Second"
67523
67524	// FleetMetricUnitCountSecond is a FleetMetricUnit enum value
67525	FleetMetricUnitCountSecond = "Count/Second"
67526
67527	// FleetMetricUnitNone is a FleetMetricUnit enum value
67528	FleetMetricUnitNone = "None"
67529)
67530
67531// FleetMetricUnit_Values returns all elements of the FleetMetricUnit enum
67532func FleetMetricUnit_Values() []string {
67533	return []string{
67534		FleetMetricUnitSeconds,
67535		FleetMetricUnitMicroseconds,
67536		FleetMetricUnitMilliseconds,
67537		FleetMetricUnitBytes,
67538		FleetMetricUnitKilobytes,
67539		FleetMetricUnitMegabytes,
67540		FleetMetricUnitGigabytes,
67541		FleetMetricUnitTerabytes,
67542		FleetMetricUnitBits,
67543		FleetMetricUnitKilobits,
67544		FleetMetricUnitMegabits,
67545		FleetMetricUnitGigabits,
67546		FleetMetricUnitTerabits,
67547		FleetMetricUnitPercent,
67548		FleetMetricUnitCount,
67549		FleetMetricUnitBytesSecond,
67550		FleetMetricUnitKilobytesSecond,
67551		FleetMetricUnitMegabytesSecond,
67552		FleetMetricUnitGigabytesSecond,
67553		FleetMetricUnitTerabytesSecond,
67554		FleetMetricUnitBitsSecond,
67555		FleetMetricUnitKilobitsSecond,
67556		FleetMetricUnitMegabitsSecond,
67557		FleetMetricUnitGigabitsSecond,
67558		FleetMetricUnitTerabitsSecond,
67559		FleetMetricUnitCountSecond,
67560		FleetMetricUnitNone,
67561	}
67562}
67563
67564const (
67565	// IndexStatusActive is a IndexStatus enum value
67566	IndexStatusActive = "ACTIVE"
67567
67568	// IndexStatusBuilding is a IndexStatus enum value
67569	IndexStatusBuilding = "BUILDING"
67570
67571	// IndexStatusRebuilding is a IndexStatus enum value
67572	IndexStatusRebuilding = "REBUILDING"
67573)
67574
67575// IndexStatus_Values returns all elements of the IndexStatus enum
67576func IndexStatus_Values() []string {
67577	return []string{
67578		IndexStatusActive,
67579		IndexStatusBuilding,
67580		IndexStatusRebuilding,
67581	}
67582}
67583
67584const (
67585	// JobExecutionFailureTypeFailed is a JobExecutionFailureType enum value
67586	JobExecutionFailureTypeFailed = "FAILED"
67587
67588	// JobExecutionFailureTypeRejected is a JobExecutionFailureType enum value
67589	JobExecutionFailureTypeRejected = "REJECTED"
67590
67591	// JobExecutionFailureTypeTimedOut is a JobExecutionFailureType enum value
67592	JobExecutionFailureTypeTimedOut = "TIMED_OUT"
67593
67594	// JobExecutionFailureTypeAll is a JobExecutionFailureType enum value
67595	JobExecutionFailureTypeAll = "ALL"
67596)
67597
67598// JobExecutionFailureType_Values returns all elements of the JobExecutionFailureType enum
67599func JobExecutionFailureType_Values() []string {
67600	return []string{
67601		JobExecutionFailureTypeFailed,
67602		JobExecutionFailureTypeRejected,
67603		JobExecutionFailureTypeTimedOut,
67604		JobExecutionFailureTypeAll,
67605	}
67606}
67607
67608const (
67609	// JobExecutionStatusQueued is a JobExecutionStatus enum value
67610	JobExecutionStatusQueued = "QUEUED"
67611
67612	// JobExecutionStatusInProgress is a JobExecutionStatus enum value
67613	JobExecutionStatusInProgress = "IN_PROGRESS"
67614
67615	// JobExecutionStatusSucceeded is a JobExecutionStatus enum value
67616	JobExecutionStatusSucceeded = "SUCCEEDED"
67617
67618	// JobExecutionStatusFailed is a JobExecutionStatus enum value
67619	JobExecutionStatusFailed = "FAILED"
67620
67621	// JobExecutionStatusTimedOut is a JobExecutionStatus enum value
67622	JobExecutionStatusTimedOut = "TIMED_OUT"
67623
67624	// JobExecutionStatusRejected is a JobExecutionStatus enum value
67625	JobExecutionStatusRejected = "REJECTED"
67626
67627	// JobExecutionStatusRemoved is a JobExecutionStatus enum value
67628	JobExecutionStatusRemoved = "REMOVED"
67629
67630	// JobExecutionStatusCanceled is a JobExecutionStatus enum value
67631	JobExecutionStatusCanceled = "CANCELED"
67632)
67633
67634// JobExecutionStatus_Values returns all elements of the JobExecutionStatus enum
67635func JobExecutionStatus_Values() []string {
67636	return []string{
67637		JobExecutionStatusQueued,
67638		JobExecutionStatusInProgress,
67639		JobExecutionStatusSucceeded,
67640		JobExecutionStatusFailed,
67641		JobExecutionStatusTimedOut,
67642		JobExecutionStatusRejected,
67643		JobExecutionStatusRemoved,
67644		JobExecutionStatusCanceled,
67645	}
67646}
67647
67648const (
67649	// JobStatusInProgress is a JobStatus enum value
67650	JobStatusInProgress = "IN_PROGRESS"
67651
67652	// JobStatusCanceled is a JobStatus enum value
67653	JobStatusCanceled = "CANCELED"
67654
67655	// JobStatusCompleted is a JobStatus enum value
67656	JobStatusCompleted = "COMPLETED"
67657
67658	// JobStatusDeletionInProgress is a JobStatus enum value
67659	JobStatusDeletionInProgress = "DELETION_IN_PROGRESS"
67660)
67661
67662// JobStatus_Values returns all elements of the JobStatus enum
67663func JobStatus_Values() []string {
67664	return []string{
67665		JobStatusInProgress,
67666		JobStatusCanceled,
67667		JobStatusCompleted,
67668		JobStatusDeletionInProgress,
67669	}
67670}
67671
67672const (
67673	// LogLevelDebug is a LogLevel enum value
67674	LogLevelDebug = "DEBUG"
67675
67676	// LogLevelInfo is a LogLevel enum value
67677	LogLevelInfo = "INFO"
67678
67679	// LogLevelError is a LogLevel enum value
67680	LogLevelError = "ERROR"
67681
67682	// LogLevelWarn is a LogLevel enum value
67683	LogLevelWarn = "WARN"
67684
67685	// LogLevelDisabled is a LogLevel enum value
67686	LogLevelDisabled = "DISABLED"
67687)
67688
67689// LogLevel_Values returns all elements of the LogLevel enum
67690func LogLevel_Values() []string {
67691	return []string{
67692		LogLevelDebug,
67693		LogLevelInfo,
67694		LogLevelError,
67695		LogLevelWarn,
67696		LogLevelDisabled,
67697	}
67698}
67699
67700const (
67701	// LogTargetTypeDefault is a LogTargetType enum value
67702	LogTargetTypeDefault = "DEFAULT"
67703
67704	// LogTargetTypeThingGroup is a LogTargetType enum value
67705	LogTargetTypeThingGroup = "THING_GROUP"
67706)
67707
67708// LogTargetType_Values returns all elements of the LogTargetType enum
67709func LogTargetType_Values() []string {
67710	return []string{
67711		LogTargetTypeDefault,
67712		LogTargetTypeThingGroup,
67713	}
67714}
67715
67716const (
67717	// MessageFormatRaw is a MessageFormat enum value
67718	MessageFormatRaw = "RAW"
67719
67720	// MessageFormatJson is a MessageFormat enum value
67721	MessageFormatJson = "JSON"
67722)
67723
67724// MessageFormat_Values returns all elements of the MessageFormat enum
67725func MessageFormat_Values() []string {
67726	return []string{
67727		MessageFormatRaw,
67728		MessageFormatJson,
67729	}
67730}
67731
67732const (
67733	// MitigationActionTypeUpdateDeviceCertificate is a MitigationActionType enum value
67734	MitigationActionTypeUpdateDeviceCertificate = "UPDATE_DEVICE_CERTIFICATE"
67735
67736	// MitigationActionTypeUpdateCaCertificate is a MitigationActionType enum value
67737	MitigationActionTypeUpdateCaCertificate = "UPDATE_CA_CERTIFICATE"
67738
67739	// MitigationActionTypeAddThingsToThingGroup is a MitigationActionType enum value
67740	MitigationActionTypeAddThingsToThingGroup = "ADD_THINGS_TO_THING_GROUP"
67741
67742	// MitigationActionTypeReplaceDefaultPolicyVersion is a MitigationActionType enum value
67743	MitigationActionTypeReplaceDefaultPolicyVersion = "REPLACE_DEFAULT_POLICY_VERSION"
67744
67745	// MitigationActionTypeEnableIotLogging is a MitigationActionType enum value
67746	MitigationActionTypeEnableIotLogging = "ENABLE_IOT_LOGGING"
67747
67748	// MitigationActionTypePublishFindingToSns is a MitigationActionType enum value
67749	MitigationActionTypePublishFindingToSns = "PUBLISH_FINDING_TO_SNS"
67750)
67751
67752// MitigationActionType_Values returns all elements of the MitigationActionType enum
67753func MitigationActionType_Values() []string {
67754	return []string{
67755		MitigationActionTypeUpdateDeviceCertificate,
67756		MitigationActionTypeUpdateCaCertificate,
67757		MitigationActionTypeAddThingsToThingGroup,
67758		MitigationActionTypeReplaceDefaultPolicyVersion,
67759		MitigationActionTypeEnableIotLogging,
67760		MitigationActionTypePublishFindingToSns,
67761	}
67762}
67763
67764const (
67765	// ModelStatusPendingBuild is a ModelStatus enum value
67766	ModelStatusPendingBuild = "PENDING_BUILD"
67767
67768	// ModelStatusActive is a ModelStatus enum value
67769	ModelStatusActive = "ACTIVE"
67770
67771	// ModelStatusExpired is a ModelStatus enum value
67772	ModelStatusExpired = "EXPIRED"
67773)
67774
67775// ModelStatus_Values returns all elements of the ModelStatus enum
67776func ModelStatus_Values() []string {
67777	return []string{
67778		ModelStatusPendingBuild,
67779		ModelStatusActive,
67780		ModelStatusExpired,
67781	}
67782}
67783
67784const (
67785	// OTAUpdateStatusCreatePending is a OTAUpdateStatus enum value
67786	OTAUpdateStatusCreatePending = "CREATE_PENDING"
67787
67788	// OTAUpdateStatusCreateInProgress is a OTAUpdateStatus enum value
67789	OTAUpdateStatusCreateInProgress = "CREATE_IN_PROGRESS"
67790
67791	// OTAUpdateStatusCreateComplete is a OTAUpdateStatus enum value
67792	OTAUpdateStatusCreateComplete = "CREATE_COMPLETE"
67793
67794	// OTAUpdateStatusCreateFailed is a OTAUpdateStatus enum value
67795	OTAUpdateStatusCreateFailed = "CREATE_FAILED"
67796)
67797
67798// OTAUpdateStatus_Values returns all elements of the OTAUpdateStatus enum
67799func OTAUpdateStatus_Values() []string {
67800	return []string{
67801		OTAUpdateStatusCreatePending,
67802		OTAUpdateStatusCreateInProgress,
67803		OTAUpdateStatusCreateComplete,
67804		OTAUpdateStatusCreateFailed,
67805	}
67806}
67807
67808const (
67809	// PolicyTemplateNameBlankPolicy is a PolicyTemplateName enum value
67810	PolicyTemplateNameBlankPolicy = "BLANK_POLICY"
67811)
67812
67813// PolicyTemplateName_Values returns all elements of the PolicyTemplateName enum
67814func PolicyTemplateName_Values() []string {
67815	return []string{
67816		PolicyTemplateNameBlankPolicy,
67817	}
67818}
67819
67820const (
67821	// ProtocolMqtt is a Protocol enum value
67822	ProtocolMqtt = "MQTT"
67823
67824	// ProtocolHttp is a Protocol enum value
67825	ProtocolHttp = "HTTP"
67826)
67827
67828// Protocol_Values returns all elements of the Protocol enum
67829func Protocol_Values() []string {
67830	return []string{
67831		ProtocolMqtt,
67832		ProtocolHttp,
67833	}
67834}
67835
67836const (
67837	// ReportTypeErrors is a ReportType enum value
67838	ReportTypeErrors = "ERRORS"
67839
67840	// ReportTypeResults is a ReportType enum value
67841	ReportTypeResults = "RESULTS"
67842)
67843
67844// ReportType_Values returns all elements of the ReportType enum
67845func ReportType_Values() []string {
67846	return []string{
67847		ReportTypeErrors,
67848		ReportTypeResults,
67849	}
67850}
67851
67852const (
67853	// ResourceTypeDeviceCertificate is a ResourceType enum value
67854	ResourceTypeDeviceCertificate = "DEVICE_CERTIFICATE"
67855
67856	// ResourceTypeCaCertificate is a ResourceType enum value
67857	ResourceTypeCaCertificate = "CA_CERTIFICATE"
67858
67859	// ResourceTypeIotPolicy is a ResourceType enum value
67860	ResourceTypeIotPolicy = "IOT_POLICY"
67861
67862	// ResourceTypeCognitoIdentityPool is a ResourceType enum value
67863	ResourceTypeCognitoIdentityPool = "COGNITO_IDENTITY_POOL"
67864
67865	// ResourceTypeClientId is a ResourceType enum value
67866	ResourceTypeClientId = "CLIENT_ID"
67867
67868	// ResourceTypeAccountSettings is a ResourceType enum value
67869	ResourceTypeAccountSettings = "ACCOUNT_SETTINGS"
67870
67871	// ResourceTypeRoleAlias is a ResourceType enum value
67872	ResourceTypeRoleAlias = "ROLE_ALIAS"
67873
67874	// ResourceTypeIamRole is a ResourceType enum value
67875	ResourceTypeIamRole = "IAM_ROLE"
67876)
67877
67878// ResourceType_Values returns all elements of the ResourceType enum
67879func ResourceType_Values() []string {
67880	return []string{
67881		ResourceTypeDeviceCertificate,
67882		ResourceTypeCaCertificate,
67883		ResourceTypeIotPolicy,
67884		ResourceTypeCognitoIdentityPool,
67885		ResourceTypeClientId,
67886		ResourceTypeAccountSettings,
67887		ResourceTypeRoleAlias,
67888		ResourceTypeIamRole,
67889	}
67890}
67891
67892const (
67893	// ServerCertificateStatusInvalid is a ServerCertificateStatus enum value
67894	ServerCertificateStatusInvalid = "INVALID"
67895
67896	// ServerCertificateStatusValid is a ServerCertificateStatus enum value
67897	ServerCertificateStatusValid = "VALID"
67898)
67899
67900// ServerCertificateStatus_Values returns all elements of the ServerCertificateStatus enum
67901func ServerCertificateStatus_Values() []string {
67902	return []string{
67903		ServerCertificateStatusInvalid,
67904		ServerCertificateStatusValid,
67905	}
67906}
67907
67908const (
67909	// ServiceTypeData is a ServiceType enum value
67910	ServiceTypeData = "DATA"
67911
67912	// ServiceTypeCredentialProvider is a ServiceType enum value
67913	ServiceTypeCredentialProvider = "CREDENTIAL_PROVIDER"
67914
67915	// ServiceTypeJobs is a ServiceType enum value
67916	ServiceTypeJobs = "JOBS"
67917)
67918
67919// ServiceType_Values returns all elements of the ServiceType enum
67920func ServiceType_Values() []string {
67921	return []string{
67922		ServiceTypeData,
67923		ServiceTypeCredentialProvider,
67924		ServiceTypeJobs,
67925	}
67926}
67927
67928const (
67929	// StatusInProgress is a Status enum value
67930	StatusInProgress = "InProgress"
67931
67932	// StatusCompleted is a Status enum value
67933	StatusCompleted = "Completed"
67934
67935	// StatusFailed is a Status enum value
67936	StatusFailed = "Failed"
67937
67938	// StatusCancelled is a Status enum value
67939	StatusCancelled = "Cancelled"
67940
67941	// StatusCancelling is a Status enum value
67942	StatusCancelling = "Cancelling"
67943)
67944
67945// Status_Values returns all elements of the Status enum
67946func Status_Values() []string {
67947	return []string{
67948		StatusInProgress,
67949		StatusCompleted,
67950		StatusFailed,
67951		StatusCancelled,
67952		StatusCancelling,
67953	}
67954}
67955
67956const (
67957	// TargetSelectionContinuous is a TargetSelection enum value
67958	TargetSelectionContinuous = "CONTINUOUS"
67959
67960	// TargetSelectionSnapshot is a TargetSelection enum value
67961	TargetSelectionSnapshot = "SNAPSHOT"
67962)
67963
67964// TargetSelection_Values returns all elements of the TargetSelection enum
67965func TargetSelection_Values() []string {
67966	return []string{
67967		TargetSelectionContinuous,
67968		TargetSelectionSnapshot,
67969	}
67970}
67971
67972const (
67973	// ThingConnectivityIndexingModeOff is a ThingConnectivityIndexingMode enum value
67974	ThingConnectivityIndexingModeOff = "OFF"
67975
67976	// ThingConnectivityIndexingModeStatus is a ThingConnectivityIndexingMode enum value
67977	ThingConnectivityIndexingModeStatus = "STATUS"
67978)
67979
67980// ThingConnectivityIndexingMode_Values returns all elements of the ThingConnectivityIndexingMode enum
67981func ThingConnectivityIndexingMode_Values() []string {
67982	return []string{
67983		ThingConnectivityIndexingModeOff,
67984		ThingConnectivityIndexingModeStatus,
67985	}
67986}
67987
67988const (
67989	// ThingGroupIndexingModeOff is a ThingGroupIndexingMode enum value
67990	ThingGroupIndexingModeOff = "OFF"
67991
67992	// ThingGroupIndexingModeOn is a ThingGroupIndexingMode enum value
67993	ThingGroupIndexingModeOn = "ON"
67994)
67995
67996// ThingGroupIndexingMode_Values returns all elements of the ThingGroupIndexingMode enum
67997func ThingGroupIndexingMode_Values() []string {
67998	return []string{
67999		ThingGroupIndexingModeOff,
68000		ThingGroupIndexingModeOn,
68001	}
68002}
68003
68004const (
68005	// ThingIndexingModeOff is a ThingIndexingMode enum value
68006	ThingIndexingModeOff = "OFF"
68007
68008	// ThingIndexingModeRegistry is a ThingIndexingMode enum value
68009	ThingIndexingModeRegistry = "REGISTRY"
68010
68011	// ThingIndexingModeRegistryAndShadow is a ThingIndexingMode enum value
68012	ThingIndexingModeRegistryAndShadow = "REGISTRY_AND_SHADOW"
68013)
68014
68015// ThingIndexingMode_Values returns all elements of the ThingIndexingMode enum
68016func ThingIndexingMode_Values() []string {
68017	return []string{
68018		ThingIndexingModeOff,
68019		ThingIndexingModeRegistry,
68020		ThingIndexingModeRegistryAndShadow,
68021	}
68022}
68023
68024const (
68025	// TopicRuleDestinationStatusEnabled is a TopicRuleDestinationStatus enum value
68026	TopicRuleDestinationStatusEnabled = "ENABLED"
68027
68028	// TopicRuleDestinationStatusInProgress is a TopicRuleDestinationStatus enum value
68029	TopicRuleDestinationStatusInProgress = "IN_PROGRESS"
68030
68031	// TopicRuleDestinationStatusDisabled is a TopicRuleDestinationStatus enum value
68032	TopicRuleDestinationStatusDisabled = "DISABLED"
68033
68034	// TopicRuleDestinationStatusError is a TopicRuleDestinationStatus enum value
68035	TopicRuleDestinationStatusError = "ERROR"
68036
68037	// TopicRuleDestinationStatusDeleting is a TopicRuleDestinationStatus enum value
68038	TopicRuleDestinationStatusDeleting = "DELETING"
68039)
68040
68041// TopicRuleDestinationStatus_Values returns all elements of the TopicRuleDestinationStatus enum
68042func TopicRuleDestinationStatus_Values() []string {
68043	return []string{
68044		TopicRuleDestinationStatusEnabled,
68045		TopicRuleDestinationStatusInProgress,
68046		TopicRuleDestinationStatusDisabled,
68047		TopicRuleDestinationStatusError,
68048		TopicRuleDestinationStatusDeleting,
68049	}
68050}
68051
68052const (
68053	// VerificationStateFalsePositive is a VerificationState enum value
68054	VerificationStateFalsePositive = "FALSE_POSITIVE"
68055
68056	// VerificationStateBenignPositive is a VerificationState enum value
68057	VerificationStateBenignPositive = "BENIGN_POSITIVE"
68058
68059	// VerificationStateTruePositive is a VerificationState enum value
68060	VerificationStateTruePositive = "TRUE_POSITIVE"
68061
68062	// VerificationStateUnknown is a VerificationState enum value
68063	VerificationStateUnknown = "UNKNOWN"
68064)
68065
68066// VerificationState_Values returns all elements of the VerificationState enum
68067func VerificationState_Values() []string {
68068	return []string{
68069		VerificationStateFalsePositive,
68070		VerificationStateBenignPositive,
68071		VerificationStateTruePositive,
68072		VerificationStateUnknown,
68073	}
68074}
68075
68076const (
68077	// ViolationEventTypeInAlarm is a ViolationEventType enum value
68078	ViolationEventTypeInAlarm = "in-alarm"
68079
68080	// ViolationEventTypeAlarmCleared is a ViolationEventType enum value
68081	ViolationEventTypeAlarmCleared = "alarm-cleared"
68082
68083	// ViolationEventTypeAlarmInvalidated is a ViolationEventType enum value
68084	ViolationEventTypeAlarmInvalidated = "alarm-invalidated"
68085)
68086
68087// ViolationEventType_Values returns all elements of the ViolationEventType enum
68088func ViolationEventType_Values() []string {
68089	return []string{
68090		ViolationEventTypeInAlarm,
68091		ViolationEventTypeAlarmCleared,
68092		ViolationEventTypeAlarmInvalidated,
68093	}
68094}
68095